EACAggregatorProxy Reads
From Chainlink Community Wiki
EACAggregatorProxy
LINK / USD EAC AggregatorProxy contract address: 0x2c1d072e956affc0d435cb7ac38ef18d24d9127c
The Access Controlled Aggregator Proxy is a proxy contract that enables the owner to point it to other contracts as needed/desired.
This prevents the users from having to update anything if they wanted to move to a new contract version/release
Read Calls accessController
The accessController is a smart contract that acts as a whitelist for which addresses are able to call the contract. For the LINK / USD price feed, the referenced accessController smart contract is a null value set to 0x0000000000000000000000000000000000000000
Example Query: ACCESS_CONTROLLER=$(curl -s -H "Content-Type: application/json" https://$YOUR_RPC_ENDPOINT -d '{"jsonrpc": "2.0", "id": 123, "method": "eth_call", "params":[{"from":null,"to":"0x2c1d072e956AFFC0D435Cb7AC38EF18d24d9127c","data":"0xbc43cbaf"}, "latest"]}' | jq -r .result) && echo "$ACCESS_CONTROLLER" Example Response: 0x0000000000000000000000000000000000000000000000000000000000000000 (remove leading 24 0's) aggregator
The aggregator is the on-chain contract that each of the Chainlink Nodes responds to. The AggregatorProxy contract points to the configured Aggregator as it's primary source of information
Example Query: AGGREGATOR=$(curl -s -H "Content-Type: application/json" https://$YOUR_RPC_ENDPOINT -d '{"jsonrpc": "2.0", "id": 123, "method": "eth_call", "params":[{"from":null,"to":"0x2c1d072e956AFFC0D435Cb7AC38EF18d24d9127c","data":"0x245a7bfc"}, "latest"]}' | jq -r .result) && echo "$AGGREGATOR" Example Response: 0x000000000000000000000000dfd03bfc3465107ce570a0397b247f546a42d0fa (remove leading 24 0's) decimals
The decimals value tells the reader of the contract how many decimal places they need to adjust to get the proper value.
For example, if the LINK / USD price feed has a decimlas value of 8, and the latest round shows a response of 726792272, then we would shift the decimal 8 places to end with a value of 7.26792272.
Example Query: DECIMALS=$(curl -s -H "Content-Type: application/json" https://$YOUR_RPC_ENDPOINT -d '{"jsonrpc": "2.0", "id": 123, "method": "eth_call", "params":[{"from":null,"to":"0x2c1d072e956AFFC0D435Cb7AC38EF18d24d9127c","data":"0x313ce567"}, "latest"]}' | jq -r .result) && echo "$((DECIMALS))" Example Response: 8 description
The desctiption of the Proxy is just a friendly name, in this case displaying LINK / USD
Example Query: DESCRIPTION=$(curl -s -H "Content-Type: application/json" https://$YOUR_RPC_ENDPOINT -d '{"jsonrpc": "2.0", "id": 123, "method": "eth_call", "params":[{"from":null,"to":"0x2c1d072e956AFFC0D435Cb7AC38EF18d24d9127c","data":"0x7284e416"}, "latest"]}' | jq -r .result) && echo $DESCRIPTION | xxd -r -p Example Response: LINK / USD getAnswer
This call will provide you with the data for the round you have specified.
Example Query: GET_ANSWER=$(curl -s -H "Content-Type: application/json" https://mainnet.infura.io/v3/8b07d2973270487998be1a0c2dbfdffb -d '{"jsonrpc": "2.0", "id": 123, "method": "eth_call", "params":[{"from":null,"to":"0x2c1d072e956AFFC0D435Cb7AC38EF18d24d9127c","data":"0xb5ab58dc000000000000000000000000000000000000000000000005000000000000347a"}, "latest"]}' | jq -r .result) && echo "$((GET_ANSWER))" Example Response 726792272 getRoundData
Similar to the above getAnswer call, this call will get additional information from the round you have specified.
Example Query: curl Example Response asdf getTimestamp
This getTimestamp call will provide you with the timestamp of the block containing the data from the round you have specified.
Example Query: curl Example Response asdf latestAnswer
The latestAnswer call provides you with the value that was written to chain during the most recent completed round
Example Query: curl Example Response asdf latestRound
This call will provide you with the most recent completed round number.
Example Query: curl Example Response asdf latestRoundData
This call is similar to getRoundData, but it will automatically get the round data for the most recently completed round.
Example Query: curl Example Response asdf latestTimestamp
Similar to latestRoundData and getTimestamp, the latestTimestamp call will provide you with the timestamp of the block containing the response from the latest completed round.
Example Query: curl Example Response asdf owner
The owner query will respond with the address that has ownership of the contract you query.
Example Query: curl Example Response asdf phaseAggregators phaseId proposedAggregator
The proposedAggregator query will give you the address of the proposed aggregator, if there is one.
Example Query: curl Example Response asdf proposedGetRoundData
This call provides you with the round data for the requested round from the proposed aggregator, if there is one.
Example Query: curl Example Response asdf proposedLatestRoundData
Similar to the above, this call will get you the data from the latest round of the proposed aggregator.
Example Query: curl Example Response asdf version
This gets you the version of the contract you're querying.
Example Query: curl Example Response asdf