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.
$ yarnConfiguration 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:prodCopy .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:covThis template is under MIT licensed.