Welcome to Flare EVM Transaction Verifier server.
This verifier is based on the Verifier Server Template according to the attestation type EVMTransaction. It is implemented using Nest framework.
$ yarn
Configuration of the verifier server is carried out through environment variables, specifically by using standard ConfigModule
from Nest.js, which gets configured from .env
file in the root of the repository (working directory when run).
See details here.
PORT
specifies the port that is used for HTTP (default is port number 3000).
API_KEYS
are keys that allow connection to the HTTP service.
RPC
is an optional parameter for a RPC connection (default is https://flare-api.flare.network/ext/C/rpc
).
# Use the default env
cp .env.example .env
# Or configure your by editing the .env file
# development
$ yarn start
# watch mode
$ yarn start:dev
# production mode
$ yarn start:prod
Copy .env.example
file and rename it to .env
.
Run the code with yarn start:dev
.
Check the Swagger interface in browser at http://localhost:4500/api
.
Use Authorize
button to enter API key abc123
.
Test API routes /EVMTransaction/prepareResponse
, /EVMTransaction/mic
and /EVMTransaction/prepareRequest
with the following parsed request for a transaction on Flare network.
{
"attestationType": "0x45564d5472616e73616374696f6e000000000000000000000000000000000000",
"sourceId": "0x4554480000000000000000000000000000000000000000000000000000000000",
"requestBody": {
"transactionHash": "0xe1ad057e71ac82cd2eaaee0dc8700a2c1b6cff4f295a7674b9e97a5f8dd9b51c",
"requiredConfirmations": "1",
"provideInput": true,
"listEvents": true,
"logIndices": ["0"]
}
}
In order to test the API route ETH/EVMTransaction
, use the output of ETH/EVMTransaction/prepareRequest
.
Locally you can check the service with curl
:
curl -X 'POST' \
'http://localhost:4500/ETH/EVMTransaction/prepareResponse' \
-H 'accept: */*' \
-H 'X-API-KEY: 12345' \
-H 'Content-Type: application/json' \
-d '{
"attestationType": "0x45564d5472616e73616374696f6e000000000000000000000000000000000000",
"sourceId": "0x4554480000000000000000000000000000000000000000000000000000000000",
"requestBody": {
"transactionHash": "0xe1ad057e71ac82cd2eaaee0dc8700a2c1b6cff4f295a7674b9e97a5f8dd9b51c",
"requiredConfirmations": "1",
"provideInput": true,
"listEvents": true,
"logIndices": ["0"]
}
}
'
# unit tests
$ yarn test
# e2e tests
$ yarn test:e2e
# test coverage
$ yarn test:cov
This template is under MIT licensed.