everest-chainlink-consumer

An interface for the everest consumer contract


License
MIT
Install
npm install everest-chainlink-consumer@1.0.0

Documentation

everest-chainlink-consumer

Consumer contract & chainlink job & external adapter for KYC data.

0. Required fields

externalJobId: "14f84981-6fac-426a-bda2-992cbf47d2cd", // gen by the chainlink node
oracleAddr: "0xB9756312523826A566e222a34793E414A81c88E1", // Operator.sol
payment: "100000000000000000", // job/job.toml/minContractPaymentLinkJuels
linktoken: "0x53E0bca35eC356BD5ddDFebbD1Fc0fD03FaBad39" // LinkTokenInterface.sol

1. Contracts deployments

In this example we will use metamask & remix.

  • Open everest-chainlink-consumer/contracts, copy LinkTokenInterface.sol, Operator.sol, EverestConsumer.sol files to remix, choose polygon network.
  • Compile LinkTokenInterface.sol and add it using "linktoken" address.
  • Compile Operator.sol and add it using "oracleAddr".
  • Compile EverestConsumer.sol and deploy it using the next params:
constructor(
    address _link, // "linktoken"
    address _oracle, // "oracleAddr"
    string memory _jobId, // "externalJobId"
    uint256 _oraclePayment, // "payment"
    string memory _signUpURL // desired signUp URL
)

2. How to make a request

  • Allow EverestConsumer contract spend your link tokens:
LinkTokenInterface.approve(
    address spender, // everest consumer contract
    uint256 value // more than "payment"
)
  • Request the status (this method also makes transferFrom):
EverestConsumer.requestStatus(
    address _revealee // desired address
)
  • Retrieve your latest requestId calling this method:
EverestConsumer.getLatestSentRequestId()
  • Wait about 2-3 minutes before the request will be fulfilled.
  • You can get any request by ID or the latest fulfilled request by the address using the following methods:
EverestConsumer.getRequest(bytes32 _requestId)
EverestConsumer.getLatestFulfilledRequest(address _revealee)
  • If getRequest method returns isFulfilled=false for 5 minutes, you can cancel your request and return funds using:
EverestConsumer.cancelRequest(bytes32 _requestId)

3. Withdraw paid link tokens

  • To withdraw tokens we need an ownership of the operator (oracle) contract.
  • Call withdraw function:
Operator.withdraw(address recipient, uint256 amount)