From 179f06464c503b39b6715b4382ca4270677ba099 Mon Sep 17 00:00:00 2001 From: Lukas Date: Wed, 14 Feb 2024 20:39:13 +0100 Subject: [PATCH] fix: remove arbitrum goerli (#361) goerli.abiscan no longer exists and alchemy no longer allows creating endpoint. therefore we consider it deprecated. goerli mainnet will follow shortly. --- README.md | 14 +- scripts/configs/pools/arbitrum.ts | 14 -- scripts/generateAddresses.ts | 3 +- scripts/generator/governanceV2Generator.ts | 5 +- src/AaveAddressBook.sol | 1 - src/ts/AaveAddressBook.ts | 1 - src/ts/AaveV3ArbitrumGoerli.ts | 140 ------------------ tokenlist.json | 164 +-------------------- 8 files changed, 13 insertions(+), 329 deletions(-) delete mode 100644 src/ts/AaveV3ArbitrumGoerli.ts diff --git a/README.md b/README.md index bece4eec..c41c4529 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ This repository contains an up-to-date registry of all addresses of the Aave eco The goal is for Solidity developers to have the most integrated environment possible when they want to develop on top of Aave, by just importing a package with all the necessary addresses to interact with. +You can find a searchable version of the address book on [https://book.onaave.com/](https://book.onaave.com/). + ## Usage with foundry With Foundry installed and being in a Git repository: @@ -69,7 +71,7 @@ console.log(AaveV2Avalanche.CHAIN_ID); ### Generate files -The library is generated based on the config file located in `scripts/generateAddresses.ts` and `scripts/generateABIs.ts`. You can regenerate the files by running `yarn start`. +The library is generated based on the `scripts/generateAddresses.ts` and `scripts/generateABIs.ts` scripts. You can regenerate the files by running `yarn start`. ### Dependencies @@ -91,7 +93,7 @@ forge test ### Adding a new Pool -To list a new pool in the address book, you simply need to add a new pool in the respective [pools config](./scripts/configs//) and run `yarn start`. +To list a new pool in the address book, you simply need to add a new pool in the respective [pools config](./scripts/configs//) and run `yarn generate:addresses`. ### Adding new Addresses @@ -101,10 +103,6 @@ To achieve an addition here you need to add the address to the respective [v2 ty b) Adding an address that **cannot be obtained via onchain calls** so it needs to be manually maintained: -To achieve an addition here, you need to alter the [additionalAddresses section](https://github.com/bgd-labs/aave-address-book/blob/main/scripts/config.ts#L46) on the pool type and add your address to the respecive pools. Additional addresses will currently be exported as type `address`. There's currently no possibility to define a custom type. - -In any case you need to run `yarn start` afterwards and commit the altered artifacts. - -## Sample projects +To achieve an addition here, you need to alter the [additionalAddresses section](https://github.com/bgd-labs/aave-address-book/blob/main/scripts/config.ts#L46) on the pool type and add your address to the respective pools. Additional addresses will currently be exported as type `address`. There's currently no possibility to define a custom type. -- [aave v2 asset listing template](https://github.com/bgd-labs/example-aave-v2-listing) +In any case you need to run `yarn generate:addresses` afterwards and commit the altered artifacts. diff --git a/scripts/configs/pools/arbitrum.ts b/scripts/configs/pools/arbitrum.ts index a2794bc3..98618875 100644 --- a/scripts/configs/pools/arbitrum.ts +++ b/scripts/configs/pools/arbitrum.ts @@ -1,20 +1,6 @@ import {ChainId} from '@bgd-labs/js-utils'; import {PoolConfig} from '../types'; -export const arbitrumGoerliProtoV3: PoolConfig = { - name: 'ArbitrumGoerli', - chainId: ChainId.arbitrum_goerli, - POOL_ADDRESSES_PROVIDER: '0xD64dDe119f11C88850FD596BE11CE398CC5893e6', - additionalAddresses: { - FAUCET: '0xc1b3cc37cf2f922abDFE7F01A17bc932F4078665', - L2_ENCODER: '0x46605375317C3E8bd19E0ED70987354Cb6D16720', - UI_INCENTIVE_DATA_PROVIDER: '0x159E642e34ad712242F6057477277b093eb43950', - UI_POOL_DATA_PROVIDER: '0x1d5a0287E4ac7Ff805D8399D0177c75C8C95d4dC', - WALLET_BALANCE_PROVIDER: '0x8c7914af3926CfA5131Ce294c48E03C6d3aDc916', - WETH_GATEWAY: '0xcD1065F2c3A0e0a94d543Ce41720BFF515f753B7', - }, -}; - export const arbitrumProtoV3: PoolConfig = { name: 'Arbitrum', chainId: ChainId.arbitrum_one, diff --git a/scripts/generateAddresses.ts b/scripts/generateAddresses.ts index 5c0a64bb..a6650f93 100644 --- a/scripts/generateAddresses.ts +++ b/scripts/generateAddresses.ts @@ -1,6 +1,6 @@ import {appendFileSync, existsSync, mkdirSync, readdirSync, rmSync, writeFileSync} from 'fs'; import {governanceConfigMainnet, governanceConfigGoerli} from './configs/governance/ethereum'; -import {arbitrumGoerliProtoV3, arbitrumProtoV3} from './configs/pools/arbitrum'; +import {arbitrumProtoV3} from './configs/pools/arbitrum'; import { avalancheProtoV2, avalancheProtoV3, @@ -120,7 +120,6 @@ async function main() { gnosisProtoV3, polygonZkEvmProtoV3, bnbProtoV3, - arbitrumGoerliProtoV3, arbitrumProtoV3, optimismGoerliProtoV3, optimismProtoV3, diff --git a/scripts/generator/governanceV2Generator.ts b/scripts/generator/governanceV2Generator.ts index 743939c6..b9b26be2 100644 --- a/scripts/generator/governanceV2Generator.ts +++ b/scripts/generator/governanceV2Generator.ts @@ -67,7 +67,10 @@ export function generateGovV2() { fs.writeFileSync( `./src/ts/AaveGovernanceV2.ts`, prefixWithGeneratedWarning( - generateJsConstants({chainId: ChainId.mainnet, addresses: govV2Addresses}).join('\n'), + generateJsConstants({ + chainId: ChainId.mainnet, + addresses: {...govV2Addresses, CHAIN_ID: {value: 1, type: 'uint256'}}, + }).join('\n'), ), ); diff --git a/src/AaveAddressBook.sol b/src/AaveAddressBook.sol index 742889fa..c7005971 100644 --- a/src/AaveAddressBook.sol +++ b/src/AaveAddressBook.sol @@ -36,7 +36,6 @@ import {AaveV3Metis} from './AaveV3Metis.sol'; import {AaveV3Gnosis} from './AaveV3Gnosis.sol'; import {AaveV3PolygonZkEvm} from './AaveV3PolygonZkEvm.sol'; import {AaveV3BNB} from './AaveV3BNB.sol'; -import {AaveV3ArbitrumGoerli} from './AaveV3ArbitrumGoerli.sol'; import {AaveV3Arbitrum} from './AaveV3Arbitrum.sol'; import {AaveV3OptimismGoerli} from './AaveV3OptimismGoerli.sol'; import {AaveV3Optimism} from './AaveV3Optimism.sol'; diff --git a/src/ts/AaveAddressBook.ts b/src/ts/AaveAddressBook.ts index 89c045db..619e1bbd 100644 --- a/src/ts/AaveAddressBook.ts +++ b/src/ts/AaveAddressBook.ts @@ -33,7 +33,6 @@ export * as AaveV3Metis from './AaveV3Metis'; export * as AaveV3Gnosis from './AaveV3Gnosis'; export * as AaveV3PolygonZkEvm from './AaveV3PolygonZkEvm'; export * as AaveV3BNB from './AaveV3BNB'; -export * as AaveV3ArbitrumGoerli from './AaveV3ArbitrumGoerli'; export * as AaveV3Arbitrum from './AaveV3Arbitrum'; export * as AaveV3OptimismGoerli from './AaveV3OptimismGoerli'; export * as AaveV3Optimism from './AaveV3Optimism'; diff --git a/src/ts/AaveV3ArbitrumGoerli.ts b/src/ts/AaveV3ArbitrumGoerli.ts deleted file mode 100644 index a0285648..00000000 --- a/src/ts/AaveV3ArbitrumGoerli.ts +++ /dev/null @@ -1,140 +0,0 @@ -// AUTOGENERATED - MANUALLY CHANGES WILL BE REVERTED BY THE GENERATOR -// IPoolAddressesProvider https://goerli.arbiscan.io/address/0xD64dDe119f11C88850FD596BE11CE398CC5893e6 -export const POOL_ADDRESSES_PROVIDER = '0xD64dDe119f11C88850FD596BE11CE398CC5893e6'; - -// IPool https://goerli.arbiscan.io/address/0x20fa38a4f8Af2E36f1Cc14caad2E603fbA5C535c -export const POOL = '0x20fa38a4f8Af2E36f1Cc14caad2E603fbA5C535c'; - -// IPoolConfigurator https://goerli.arbiscan.io/address/0x4850e2E7c92Fe5cC80E64FD9FA32216E0C30E2E9 -export const POOL_CONFIGURATOR = '0x4850e2E7c92Fe5cC80E64FD9FA32216E0C30E2E9'; - -// IAaveOracle https://goerli.arbiscan.io/address/0x4C0EBa43c13ac25885fE0edf3E8Fd4fe32b528dE -export const ORACLE = '0x4C0EBa43c13ac25885fE0edf3E8Fd4fe32b528dE'; - -// https://goerli.arbiscan.io/address/0x0000000000000000000000000000000000000000 -export const PRICE_ORACLE_SENTINEL = '0x0000000000000000000000000000000000000000'; - -// IPoolDataProvider https://goerli.arbiscan.io/address/0x7E4025a4e9Ae4e7EcA533cDFF1ba269eDD31146F -export const AAVE_PROTOCOL_DATA_PROVIDER = '0x7E4025a4e9Ae4e7EcA533cDFF1ba269eDD31146F'; - -// IACLManager https://goerli.arbiscan.io/address/0xFBeB1c59e7aBb71A93ddc36359e57a116E602668 -export const ACL_MANAGER = '0xFBeB1c59e7aBb71A93ddc36359e57a116E602668'; - -// https://goerli.arbiscan.io/address/0x9973Ce75946D56fA3B0C6aa3647d67D440BDAec8 -export const ACL_ADMIN = '0x9973Ce75946D56fA3B0C6aa3647d67D440BDAec8'; - -// ICollector https://goerli.arbiscan.io/address/0xbE46486f69fc2882e5E4769CFBCe704E3EfecD25 -export const COLLECTOR = '0xbE46486f69fc2882e5E4769CFBCe704E3EfecD25'; - -// https://goerli.arbiscan.io/address/0xC8283AA1fAD9cc32f13334B914a602037772984D -export const DEFAULT_INCENTIVES_CONTROLLER = '0xC8283AA1fAD9cc32f13334B914a602037772984D'; - -// https://goerli.arbiscan.io/address/0x23eA12332Ef09AF8C30799D299A1085a09149d4D -export const DEFAULT_A_TOKEN_IMPL_REV_1 = '0x23eA12332Ef09AF8C30799D299A1085a09149d4D'; - -// https://goerli.arbiscan.io/address/0x4579e891f735E4d3C0B10aEE041E4672f04636cb -export const DEFAULT_VARIABLE_DEBT_TOKEN_IMPL_REV_1 = '0x4579e891f735E4d3C0B10aEE041E4672f04636cb'; - -// https://goerli.arbiscan.io/address/0x64be7D8Aed08c7adAEeBBCcca7eC41d5E49f9e74 -export const DEFAULT_STABLE_DEBT_TOKEN_IMPL_REV_1 = '0x64be7D8Aed08c7adAEeBBCcca7eC41d5E49f9e74'; - -// https://goerli.arbiscan.io/address/0xEF6a0951fE054F78Adc90ee9181297e40637C061 -export const EMISSION_MANAGER = '0xEF6a0951fE054F78Adc90ee9181297e40637C061'; - -// https://goerli.arbiscan.io/address/0xc1b3cc37cf2f922abDFE7F01A17bc932F4078665 -export const FAUCET = '0xc1b3cc37cf2f922abDFE7F01A17bc932F4078665'; - -// https://goerli.arbiscan.io/address/0x46605375317C3E8bd19E0ED70987354Cb6D16720 -export const L2_ENCODER = '0x46605375317C3E8bd19E0ED70987354Cb6D16720'; - -// https://goerli.arbiscan.io/address/0x159E642e34ad712242F6057477277b093eb43950 -export const UI_INCENTIVE_DATA_PROVIDER = '0x159E642e34ad712242F6057477277b093eb43950'; - -// https://goerli.arbiscan.io/address/0x1d5a0287E4ac7Ff805D8399D0177c75C8C95d4dC -export const UI_POOL_DATA_PROVIDER = '0x1d5a0287E4ac7Ff805D8399D0177c75C8C95d4dC'; - -// https://goerli.arbiscan.io/address/0x8c7914af3926CfA5131Ce294c48E03C6d3aDc916 -export const WALLET_BALANCE_PROVIDER = '0x8c7914af3926CfA5131Ce294c48E03C6d3aDc916'; - -// https://goerli.arbiscan.io/address/0xcD1065F2c3A0e0a94d543Ce41720BFF515f753B7 -export const WETH_GATEWAY = '0xcD1065F2c3A0e0a94d543Ce41720BFF515f753B7'; - -export const CHAIN_ID = 421613; -export const ASSETS = { - DAI: { - decimals: 18, - UNDERLYING: '0xe73C6dA65337ef99dBBc014C7858973Eba40a10b', - A_TOKEN: '0x48d70B5EF8aBF23944322c291D183EdCb3d1d09e', - S_TOKEN: '0x9326836cb60D287f45E6c1F0f12494A2FB8f6884', - V_TOKEN: '0x5eDfaf5467A8d68F0069d58c208DE24aB331cE8d', - INTEREST_RATE_STRATEGY: '0x8a93EEFc0E92451277B572173fCB22bB5545134d', - ORACLE: '0x3FF18768FeC4f61428a4D9188408cc8a96BeA7d0', - }, - LINK: { - decimals: 18, - UNDERLYING: '0xB35Ec24CACC44C5F161bF098Ed5320BCbcda34FD', - A_TOKEN: '0xB7C5a28bE43543eccE023A63d69b88d441cB6a28', - S_TOKEN: '0x8B6003c72D161Bd74123217CD3c240973aB42F3D', - V_TOKEN: '0x16A9DCf2DF1C73B95B7aB3BD60dEB59d98BD0d56', - INTEREST_RATE_STRATEGY: '0x2E8FE952067C7f4e9782bA0743620bDEa6a14004', - ORACLE: '0xaD714A38D2348Cf62e9f375BD8eE79c2F9d717A5', - }, - USDC: { - decimals: 6, - UNDERLYING: '0xd513E4537510C75E24f941f159B7CAFA74E7B3B9', - A_TOKEN: '0xC68eE187eb44227dCEaB89ce789193027887a30d', - S_TOKEN: '0xA1c1094877EF91e400697D5104cd9a7cA6a529f8', - V_TOKEN: '0xeF7D160a47bbe2dF4c2Ca893036e7Cf690415466', - INTEREST_RATE_STRATEGY: '0x1949f5dE0F6D5a57918734B659c112616fCb7af7', - ORACLE: '0x1E82Cd5eE25223247a2dDB69f1954626EB7DA315', - }, - WBTC: { - decimals: 8, - UNDERLYING: '0x1377b75237a9ee83aC0C76dE258E68e875d96334', - A_TOKEN: '0x65Ae5B31CDC763F58cc70fC8780E07DEBccB4D4e', - S_TOKEN: '0xCb0Bf8E233b611D51100E1Bf97F6265daCf5e011', - V_TOKEN: '0xC60a4b631e9057193daf1C96DF9ea917EC9AC0F1', - INTEREST_RATE_STRATEGY: '0x2E8FE952067C7f4e9782bA0743620bDEa6a14004', - ORACLE: '0x6fBa7439D9D7c902C485D0373b189431aC230240', - }, - WETH: { - decimals: 18, - UNDERLYING: '0x4284186b053ACdBA28E8B26E99475d891533086a', - A_TOKEN: '0x878092a3313bD2437ffbb6dC43638C0a1Cd0A8D2', - S_TOKEN: '0xe164EA80aB17C5f8D61286943b42F69c8FAA7Ca4', - V_TOKEN: '0x644E7aA021E14fE3cE8F973464B58A0935259D25', - INTEREST_RATE_STRATEGY: '0x2E8FE952067C7f4e9782bA0743620bDEa6a14004', - ORACLE: '0xabF81FF65097be8f19977D5fEEA6f58a90E5ea1f', - }, - USDT: { - decimals: 6, - UNDERLYING: '0x8dA9412AbB78db20d0B496573D9066C474eA21B8', - A_TOKEN: '0xcDA8CEF39c407c2C00818C9A1aD99067fF06c142', - S_TOKEN: '0xda68dC7F3B64710a7F1C4BBc77D80Af322A6e50c', - V_TOKEN: '0x1f0Cec2f0dFDb673CD894450224d911A8FB4D80a', - INTEREST_RATE_STRATEGY: '0x1949f5dE0F6D5a57918734B659c112616fCb7af7', - ORACLE: '0xF60e69a57461257A873a8f3C5B66B54c9191567a', - }, - AAVE: { - decimals: 18, - UNDERLYING: '0xD8A70FC58BC069CFE6529EBF0c1Db067f2b5347E', - A_TOKEN: '0xA4be980CE12b9bfe1C2976bD7Fc923b516Dcd4Ec', - S_TOKEN: '0x0dF6Aac6a80C1759C40b486e9DC7Ad71E7a9e666', - V_TOKEN: '0x0aDeE8D5d63aa67F9e03BD51ea23Fbbc8D11A804', - INTEREST_RATE_STRATEGY: '0x2E8FE952067C7f4e9782bA0743620bDEa6a14004', - ORACLE: '0x13dFCEfeB04fAbCB221D0f3d6122CFfd69B8b3d3', - }, - EURS: { - decimals: 2, - UNDERLYING: '0x322bCff7b69F832B1a1F56E6BC600C9229CFb907', - A_TOKEN: '0x1dbe58049F741b78B87700C979e72C666f63c525', - S_TOKEN: '0xa8D2A9E7527dB0DED64E418C905627A0B2f5A255', - V_TOKEN: '0x5D975D3EB5f8b7472F0FEa5a12A977ad23500B1C', - INTEREST_RATE_STRATEGY: '0x1949f5dE0F6D5a57918734B659c112616fCb7af7', - ORACLE: '0x796F08fA985C4AA91CB6da871cc8eCd8410375eC', - }, -} as const; -export const E_MODES = { - NONE: 0, - STABLECOINS: 1, -} as const; diff --git a/tokenlist.json b/tokenlist.json index 1dff9bf8..6833a9ff 100644 --- a/tokenlist.json +++ b/tokenlist.json @@ -22,8 +22,8 @@ "description": "Tokens that are wrapped into a 4626 Vault" } }, - "timestamp": "2024-02-14T08:04:11.845Z", - "version": { "major": 3, "minor": 0, "patch": 2 }, + "timestamp": "2024-02-14T19:30:30.913Z", + "version": { "major": 3, "minor": 0, "patch": 3 }, "tokens": [ { "chainId": 1, @@ -5460,166 +5460,6 @@ "underlying": "0xc5f0f7b66764F6ec8C8Dff7BA683102295E16409" } }, - { - "chainId": 421613, - "address": "0xe73C6dA65337ef99dBBc014C7858973Eba40a10b", - "name": "DAI", - "decimals": 18, - "symbol": "DAI", - "tags": ["underlying"] - }, - { - "chainId": 421613, - "address": "0x48d70B5EF8aBF23944322c291D183EdCb3d1d09e", - "name": "Aave Arbitrum DAI", - "decimals": 18, - "symbol": "aArbDAI", - "tags": ["aTokenV3", "aaveV3"], - "extensions": { - "pool": "AaveV3ArbitrumGoerli", - "underlying": "0xe73C6dA65337ef99dBBc014C7858973Eba40a10b" - } - }, - { - "chainId": 421613, - "address": "0xB35Ec24CACC44C5F161bF098Ed5320BCbcda34FD", - "name": "LINK", - "decimals": 18, - "symbol": "LINK", - "tags": ["underlying"] - }, - { - "chainId": 421613, - "address": "0xB7C5a28bE43543eccE023A63d69b88d441cB6a28", - "name": "Aave Arbitrum LINK", - "decimals": 18, - "symbol": "aArbLINK", - "tags": ["aTokenV3", "aaveV3"], - "extensions": { - "pool": "AaveV3ArbitrumGoerli", - "underlying": "0xB35Ec24CACC44C5F161bF098Ed5320BCbcda34FD" - } - }, - { - "chainId": 421613, - "address": "0xd513E4537510C75E24f941f159B7CAFA74E7B3B9", - "name": "USDC", - "decimals": 6, - "symbol": "USDC", - "tags": ["underlying"] - }, - { - "chainId": 421613, - "address": "0xC68eE187eb44227dCEaB89ce789193027887a30d", - "name": "Aave Arbitrum USDC", - "decimals": 6, - "symbol": "aArbUSDC", - "tags": ["aTokenV3", "aaveV3"], - "extensions": { - "pool": "AaveV3ArbitrumGoerli", - "underlying": "0xd513E4537510C75E24f941f159B7CAFA74E7B3B9" - } - }, - { - "chainId": 421613, - "address": "0x1377b75237a9ee83aC0C76dE258E68e875d96334", - "name": "WBTC", - "decimals": 8, - "symbol": "WBTC", - "tags": ["underlying"] - }, - { - "chainId": 421613, - "address": "0x65Ae5B31CDC763F58cc70fC8780E07DEBccB4D4e", - "name": "Aave Arbitrum WBTC", - "decimals": 8, - "symbol": "aArbWBTC", - "tags": ["aTokenV3", "aaveV3"], - "extensions": { - "pool": "AaveV3ArbitrumGoerli", - "underlying": "0x1377b75237a9ee83aC0C76dE258E68e875d96334" - } - }, - { - "chainId": 421613, - "address": "0x4284186b053ACdBA28E8B26E99475d891533086a", - "name": "WETH", - "decimals": 18, - "symbol": "WETH", - "tags": ["underlying"] - }, - { - "chainId": 421613, - "address": "0x878092a3313bD2437ffbb6dC43638C0a1Cd0A8D2", - "name": "Aave Arbitrum WETH", - "decimals": 18, - "symbol": "aArbWETH", - "tags": ["aTokenV3", "aaveV3"], - "extensions": { - "pool": "AaveV3ArbitrumGoerli", - "underlying": "0x4284186b053ACdBA28E8B26E99475d891533086a" - } - }, - { - "chainId": 421613, - "address": "0x8dA9412AbB78db20d0B496573D9066C474eA21B8", - "name": "USDT", - "decimals": 6, - "symbol": "USDT", - "tags": ["underlying"] - }, - { - "chainId": 421613, - "address": "0xcDA8CEF39c407c2C00818C9A1aD99067fF06c142", - "name": "Aave Arbitrum USDT", - "decimals": 6, - "symbol": "aArbUSDT", - "tags": ["aTokenV3", "aaveV3"], - "extensions": { - "pool": "AaveV3ArbitrumGoerli", - "underlying": "0x8dA9412AbB78db20d0B496573D9066C474eA21B8" - } - }, - { - "chainId": 421613, - "address": "0xD8A70FC58BC069CFE6529EBF0c1Db067f2b5347E", - "name": "AAVE", - "decimals": 18, - "symbol": "AAVE", - "tags": ["underlying"] - }, - { - "chainId": 421613, - "address": "0xA4be980CE12b9bfe1C2976bD7Fc923b516Dcd4Ec", - "name": "Aave Arbitrum AAVE", - "decimals": 18, - "symbol": "aArbAAVE", - "tags": ["aTokenV3", "aaveV3"], - "extensions": { - "pool": "AaveV3ArbitrumGoerli", - "underlying": "0xD8A70FC58BC069CFE6529EBF0c1Db067f2b5347E" - } - }, - { - "chainId": 421613, - "address": "0x322bCff7b69F832B1a1F56E6BC600C9229CFb907", - "name": "EURS", - "decimals": 2, - "symbol": "EURS", - "tags": ["underlying"] - }, - { - "chainId": 421613, - "address": "0x1dbe58049F741b78B87700C979e72C666f63c525", - "name": "Aave Arbitrum EURS", - "decimals": 2, - "symbol": "aArbEURS", - "tags": ["aTokenV3", "aaveV3"], - "extensions": { - "pool": "AaveV3ArbitrumGoerli", - "underlying": "0x322bCff7b69F832B1a1F56E6BC600C9229CFb907" - } - }, { "chainId": 42161, "address": "0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1",