Skip to content

Commit

Permalink
new price oracle
Browse files Browse the repository at this point in the history
  • Loading branch information
callmephilip committed Jan 28, 2025
1 parent 30330de commit 440a07c
Show file tree
Hide file tree
Showing 9 changed files with 32 additions and 178 deletions.
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ SUGAR_CONTRACT_ADDR=0x3B919747B46B13CFfd9f16629cFf951C0b7ea1e2
SUGAR_PROTOCOL_NAME=velo
SUGAR_PAGINATION_LIMIT=2000
SUGAR_PRICE_BATCH_SIZE=40
SUGAR_PRICE_ORACLE_ADDR=0xcA97e5653d775cA689BED5D0B4164b7656677011
SUGAR_PRICE_ORACLE_ADDR=0x59114D308C6DE4A84F5F8cD80485a5481047b99f
SUGAR_TOKEN_ADDR=0x9560e827aF36c94D2Ac33a39bCE1Fe78631088Db
SUGAR_CONNECTOR_TOKENS_ADDRS=CONNECTOR_TOKENS_ADDRESSES=0x9560e827aF36c94D2Ac33a39bCE1Fe78631088Db,0x4200000000000000000000000000000000000042,0x4200000000000000000000000000000000000006,0x8c6f28f2f1a3c87f0f938b96d27520d9751ec8d9,0x1f32b1c2345538c0c6f582fcb022739c4a194ebb,0xbfd291da8a403daaf7e5e9dc1ec0aceacd4848b9,0xc3864f98f2a61a7caeb95b039d031b4e2f55e0e9,0x9485aca5bbbe1667ad97c7fe7c4531a624c8b1ed,0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1
SUGAR_STABLE_TOKEN_ADDR=0x7F5c764cBc14f9669B88837ca1490cCa17c31607
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ SugarConfig.get_config()
connector_tokens_addrs: ['0x9560e827aF36c94D2Ac33a39bCE1Fe78631088Db', '0x4200000000000000000000000000000000000042', '0x4200000000000000000000000000000000000006', '0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9', '0x1F32b1c2345538c0c6f582fCB022739c4A194Ebb', '0xbfD291DA8A403DAAF7e5E9DC1ec0aCEaCd4848B9', '0xc3864f98f2a61A7cAeb95b039D031b4E2f55e0e9', '0x9485aca5bbBE1667AD97c7fE7C4531a624C8b1ED', '0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1']
pagination_limit: 2000
price_batch_size: 40
price_oracle_contract_addr: 0xcA97e5653d775cA689BED5D0B4164b7656677011
price_oracle_contract_addr: 0x59114D308C6DE4A84F5F8cD80485a5481047b99f
protocol_name: velo
rpc_uri: https://optimism-mainnet.wallet.coinbase.com
stable_token_addr: 0x7F5c764cBc14f9669B88837ca1490cCa17c31607
Expand All @@ -43,7 +43,7 @@ Sugar can be configured using env variables:
| price_oracle_contract_addr | `SUGAR_PRICE_ORACLE_ADDR` | 0xcA97e5653d775cA689BED5D0B4164b7656677011 |
| token_addr | `SUGAR_TOKEN_ADDR` | 0x9560e827aF36c94D2Ac33a39bCE1Fe78631088Db |
| stable_token_addr | `SUGAR_STABLE_TOKEN_ADDR` | 0x7F5c764cBc14f9669B88837ca1490cCa17c31607 |
| connector_tokens_addrs | `SUGAR_CONNECTOR_TOKENS_ADDRS` | 0x9560e827aF36c94D2Ac33a39bCE1Fe78631088Db,0x4200000000000000000000000000000000000042,0x4200000000000000000000000000000000000006,0x8c6f28f2f1a3c87f0f938b96d27520d9751ec8d9,0x1f32b1c2345538c0c6f582fcb022739c4a194ebb,0xbfd291da8a403daaf7e5e9dc1ec0aceacd4848b9,0xc3864f98f2a61a7caeb95b039d031b4e2f55e0e9,0x9485aca5bbbe1667ad97c7fe7c4531a624c8b1ed,0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1 |
| connector_tokens_addrs | `SUGAR_CONNECTOR_TOKENS_ADDRS` | 0x9560e827aF36c94D2Ac33a39bCE1Fe78631088Db,0x4200000000000000000000000000000000000042,0x4200000000000000000000000000000000000006,0x9bcef72be871e61ed4fbbc7630889bee758eb81d,0x2e3d870790dc77a83dd1d18184acc7439a53f475,0x8c6f28f2f1a3c87f0f938b96d27520d9751ec8d9,0x1f32b1c2345538c0c6f582fcb022739c4a194ebb,0xbfd291da8a403daaf7e5e9dc1ec0aceacd4848b9,0xc3864f98f2a61a7caeb95b039d031b4e2f55e0e9,0x9485aca5bbbe1667ad97c7fe7c4531a624c8b1ed,0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1,0x73cb180bf0521828d8849bc8cf2b920918e23032,0x6806411765af15bddd26f8f544a34cc40cb9838b,0x6c2f7b6110a37b3b0fbdd811876be368df02e8b0,0xc5b001dc33727f8f26880b184090d3e252470d45,0x6c84a8f1c29108f47a79964b5fe888d4f4d0de40,0xc40f949f8a4e094d1b49a23ea9241d289b7b2819,0x94b008aa00579c1307b0ef2c499ad98a8ce58e58,0x0b2c639c533813f4aa9d7837caf62653d097ff85 |
| price_batch_size | `SUGAR_PRICE_BATCH_SIZE` | 40 |
| protocol_name | `SUGAR_PROTOCOL_NAME` | velo |
| pagination_limit | `SUGAR_PAGINATION_LIMIT` | 2000 |
Expand Down Expand Up @@ -78,7 +78,7 @@ velo = [t for t in await Token.get_all_listed_tokens() if t.symbol == 'VELO']
await Price.get_prices(velo)
```

[Price(token=Token(token_address='0x9560e827aF36c94D2Ac33a39bCE1Fe78631088Db', symbol='VELO', decimals=18, listed=True), price=0.0975855465743476)]
[Price(token=Token(token_address='0x9560e827aF36c94D2Ac33a39bCE1Fe78631088Db', symbol='VELO', decimals=18, listed=True), price=0.099353)]

## Contributing to Sugar

Expand Down
53 changes: 1 addition & 52 deletions src/abi.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -841,58 +841,7 @@
"#| export\n",
"\n",
"price_oracle = \"\"\"\n",
"[\n",
" {\n",
" \"inputs\": [\n",
" { \"internalType\": \"address\", \"name\": \"_factoryV1\", \"type\": \"address\" },\n",
" { \"internalType\": \"address\", \"name\": \"_factoryV2\", \"type\": \"address\" },\n",
" {\n",
" \"internalType\": \"bytes32\",\n",
" \"name\": \"_initcodeHashV1\",\n",
" \"type\": \"bytes32\"\n",
" }\n",
" ],\n",
" \"stateMutability\": \"nonpayable\",\n",
" \"type\": \"constructor\"\n",
" },\n",
" {\n",
" \"inputs\": [],\n",
" \"name\": \"factoryV1\",\n",
" \"outputs\": [{ \"internalType\": \"address\", \"name\": \"\", \"type\": \"address\" }],\n",
" \"stateMutability\": \"view\",\n",
" \"type\": \"function\"\n",
" },\n",
" {\n",
" \"inputs\": [],\n",
" \"name\": \"factoryV2\",\n",
" \"outputs\": [{ \"internalType\": \"address\", \"name\": \"\", \"type\": \"address\" }],\n",
" \"stateMutability\": \"view\",\n",
" \"type\": \"function\"\n",
" },\n",
" {\n",
" \"inputs\": [\n",
" { \"internalType\": \"uint8\", \"name\": \"src_len\", \"type\": \"uint8\" },\n",
" {\n",
" \"internalType\": \"contract IERC20Metadata[]\",\n",
" \"name\": \"connectors\",\n",
" \"type\": \"address[]\"\n",
" }\n",
" ],\n",
" \"name\": \"getManyRatesWithConnectors\",\n",
" \"outputs\": [\n",
" { \"internalType\": \"uint256[]\", \"name\": \"rates\", \"type\": \"uint256[]\" }\n",
" ],\n",
" \"stateMutability\": \"view\",\n",
" \"type\": \"function\"\n",
" },\n",
" {\n",
" \"inputs\": [],\n",
" \"name\": \"initcodeHashV1\",\n",
" \"outputs\": [{ \"internalType\": \"bytes32\", \"name\": \"\", \"type\": \"bytes32\" }],\n",
" \"stateMutability\": \"view\",\n",
" \"type\": \"function\"\n",
" }\n",
"]\n",
"[{\"inputs\":[{\"internalType\":\"contract MultiWrapper\",\"name\":\"_multiWrapper\",\"type\":\"address\"},{\"internalType\":\"contract IOracle[]\",\"name\":\"existingOracles\",\"type\":\"address[]\"},{\"internalType\":\"enum OffchainOracle.OracleType[]\",\"name\":\"oracleTypes\",\"type\":\"uint8[]\"},{\"internalType\":\"contract IERC20[]\",\"name\":\"existingConnectors\",\"type\":\"address[]\"},{\"internalType\":\"contract IERC20\",\"name\":\"wBase\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner_\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ArraysLengthMismatch\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ConnectorAlreadyAdded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidOracleTokenKind\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MathOverflowedMulDiv\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OracleAlreadyAdded\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SameTokens\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TooBigThreshold\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownConnector\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UnknownOracle\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"connector\",\"type\":\"address\"}],\"name\":\"ConnectorAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract IERC20\",\"name\":\"connector\",\"type\":\"address\"}],\"name\":\"ConnectorRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract MultiWrapper\",\"name\":\"multiWrapper\",\"type\":\"address\"}],\"name\":\"MultiWrapperUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract IOracle\",\"name\":\"oracle\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum OffchainOracle.OracleType\",\"name\":\"oracleType\",\"type\":\"uint8\"}],\"name\":\"OracleAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"contract IOracle\",\"name\":\"oracle\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"enum OffchainOracle.OracleType\",\"name\":\"oracleType\",\"type\":\"uint8\"}],\"name\":\"OracleRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"connector\",\"type\":\"address\"}],\"name\":\"addConnector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"enum OffchainOracle.OracleType\",\"name\":\"oracleKind\",\"type\":\"uint8\"}],\"name\":\"addOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"connectors\",\"outputs\":[{\"internalType\":\"contract IERC20[]\",\"name\":\"allConnectors\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20[]\",\"name\":\"srcTokens\",\"type\":\"address[]\"},{\"internalType\":\"bool\",\"name\":\"useWrappers\",\"type\":\"bool\"},{\"internalType\":\"contract IERC20[]\",\"name\":\"customConnectors\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"thresholdFilter\",\"type\":\"uint256\"}],\"name\":\"getManyRatesToEthWithCustomConnectors\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"weightedRates\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20[]\",\"name\":\"srcTokens\",\"type\":\"address[]\"},{\"internalType\":\"contract IERC20\",\"name\":\"dstToken\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useWrappers\",\"type\":\"bool\"},{\"internalType\":\"contract IERC20[]\",\"name\":\"customConnectors\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"thresholdFilter\",\"type\":\"uint256\"}],\"name\":\"getManyRatesWithCustomConnectors\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"weightedRates\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20[]\",\"name\":\"srcTokens\",\"type\":\"address[]\"},{\"internalType\":\"contract IERC20\",\"name\":\"dstToken\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useWrappers\",\"type\":\"bool\"},{\"internalType\":\"contract IERC20[]\",\"name\":\"customConnectors\",\"type\":\"address[]\"},{\"internalType\":\"contract IOracle[]\",\"name\":\"customOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"thresholdFilter\",\"type\":\"uint256\"}],\"name\":\"getManyRatesWithCustomConnectorsAndOracles\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"weightedRates\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"srcToken\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"dstToken\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useWrappers\",\"type\":\"bool\"}],\"name\":\"getRate\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"weightedRate\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"srcToken\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useSrcWrappers\",\"type\":\"bool\"}],\"name\":\"getRateToEth\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"weightedRate\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"srcToken\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useSrcWrappers\",\"type\":\"bool\"},{\"internalType\":\"contract IERC20[]\",\"name\":\"customConnectors\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"thresholdFilter\",\"type\":\"uint256\"}],\"name\":\"getRateToEthWithCustomConnectors\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"weightedRate\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"srcToken\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useSrcWrappers\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"thresholdFilter\",\"type\":\"uint256\"}],\"name\":\"getRateToEthWithThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"weightedRate\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"srcToken\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"dstToken\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useWrappers\",\"type\":\"bool\"},{\"internalType\":\"contract IERC20[]\",\"name\":\"customConnectors\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"thresholdFilter\",\"type\":\"uint256\"}],\"name\":\"getRateWithCustomConnectors\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"weightedRate\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"srcToken\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"dstToken\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useWrappers\",\"type\":\"bool\"},{\"internalType\":\"contract IERC20[]\",\"name\":\"customConnectors\",\"type\":\"address[]\"},{\"internalType\":\"contract IOracle[]\",\"name\":\"customOracles\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"thresholdFilter\",\"type\":\"uint256\"}],\"name\":\"getRateWithCustomConnectorsAndOracles\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"weightedRate\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"srcToken\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"dstToken\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"useWrappers\",\"type\":\"bool\"},{\"internalType\":\"uint256\",\"name\":\"thresholdFilter\",\"type\":\"uint256\"}],\"name\":\"getRateWithThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"weightedRate\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"multiWrapper\",\"outputs\":[{\"internalType\":\"contract MultiWrapper\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oracles\",\"outputs\":[{\"internalType\":\"contract IOracle[]\",\"name\":\"allOracles\",\"type\":\"address[]\"},{\"internalType\":\"enum OffchainOracle.OracleType[]\",\"name\":\"oracleTypes\",\"type\":\"uint8[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"connector\",\"type\":\"address\"}],\"name\":\"removeConnector\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IOracle\",\"name\":\"oracle\",\"type\":\"address\"},{\"internalType\":\"enum OffchainOracle.OracleType\",\"name\":\"oracleKind\",\"type\":\"uint8\"}],\"name\":\"removeOracle\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract MultiWrapper\",\"name\":\"_multiWrapper\",\"type\":\"address\"}],\"name\":\"setMultiWrapper\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]\n",
"\"\"\""
]
},
Expand Down
Loading

0 comments on commit 440a07c

Please sign in to comment.