Oracle Address/ID: 0x17A8182DBF79427801573A3D75d42eB9B1215DEF
Get > Bytes32 jobId: 1349eaee74fd40cba66f1a466eee80a7
Oracle Address/ID: 0xD0691a51e3C6c562691D3C44C2944Bd9D368Ec1f
Get > Bytes32 jobId: cc01528b2baf400e9386cf84b6daa9f2
| contract MyContract { | |
| string public lastMarket; | |
| function requestEthereumLastMarket(address _oracle, string memory _jobId) | |
| public | |
| onlyOwner | |
| { | |
| Chainlink.Request memory req = buildChainlinkRequest(stringToBytes32(_jobId), address(this), this.fulfillEthereumLastMarket.selector); | |
| req.add("get", "https://min-api.cryptocompare.com/data/pricemultifull?fsyms=ETH&tsyms=USD"); | |
| req.add("path", "RAW,ETH,USD,LASTMARKET"); // Chainlink nodes 1.0.0 and later support this format | |
| sendChainlinkRequestTo(_oracle, req, ORACLE_PAYMENT); | |
| } | |
| function fulfillEthereumLastMarket(bytes32 _requestId, bytes32 _market) | |
| public | |
| recordChainlinkFulfillment(_requestId) | |
| { | |
| emit RequestEthereumLastMarket(_requestId, _market); | |
| // _market will contain a bytes32-encoded string value | |
| // e.g. the value of "Coinbase" will be encoded as | |
| // 0x436f696e62617365000000000000000000000000000000000000000000000000 | |
| lastMarket = string(abi.encodePacked(_market)); | |
| } | |
| } |
| type = "directrequest" | |
| schemaVersion = 1 | |
| name = "Get > Bytes32 v14" | |
| externalJobID = "1349eaee-74fd-40cb-a66f-1a466eee80a7" | |
| maxTaskDuration = "0s" | |
| contractAddress = "0x17A8182DBF79427801573A3D75d42eB9B1215DEF" | |
| minIncomingConfirmations = 0 | |
| observationSource = """ | |
| decode_log [type="ethabidecodelog" | |
| abi="OracleRequest(bytes32 indexed specId, address requester, bytes32 requestId, uint256 payment, address callbackAddr, bytes4 callbackFunctionId, uint256 cancelExpiration, uint256 dataVersion, bytes data)" | |
| data="$(jobRun.logData)" | |
| topics="$(jobRun.logTopics)"] | |
| decode_cbor [type="cborparse" data="$(decode_log.data)"] | |
| fetch [type="http" method=GET url="$(decode_cbor.get)"] | |
| parse [type="jsonparse" path="$(decode_cbor.path)" data="$(fetch)"] | |
| encode_data [type="ethabiencode" abi="(bytes8 value)" data="{ \\"value\\": $(parse) }"] | |
| encode_tx [type="ethabiencode" | |
| abi="fulfillOracleRequest(bytes32 requestId, uint256 payment, address callbackAddress, bytes4 callbackFunctionId, uint256 expiration, bytes32 data)" | |
| data="{\\"requestId\\": $(decode_log.requestId), \\"payment\\": $(decode_log.payment), \\"callbackAddress\\": $(decode_log.callbackAddr), \\"callbackFunctionId\\": $(decode_log.callbackFunctionId), \\"expiration\\": $(decode_log.cancelExpiration), \\"data\\": $(encode_data)}" | |
| ] | |
| submit_tx [type="ethtx" to="0x17A8182DBF79427801573A3D75d42eB9B1215DEF" data="$(encode_tx)"] | |
| decode_log -> decode_cbor -> fetch -> parse -> encode_data -> encode_tx -> submit_tx | |
| """ |