diff --git a/package.json b/package.json index 8f82d2a6..0eec5280 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "@uniswap/token-lists": "^1.0.0-beta.31", "ajv": "^8.12.0", "ajv-formats": "^2.1.1", - "axios": "^0.23.0", + "axios": "^1.1.3", "better-ajv-errors": "^1.1.2", "dotenv": "^16.0.3", "dotenv-expand": "^10.0.0", diff --git a/src/ArbTokenLists/arbed_arb_whitelist_era.json b/src/ArbTokenLists/arbed_arb_whitelist_era.json deleted file mode 100644 index 301a5d65..00000000 --- a/src/ArbTokenLists/arbed_arb_whitelist_era.json +++ /dev/null @@ -1 +0,0 @@ -{"name":"Arb Whitelist Era","timestamp":"2023-02-02T23:47:50.595Z","version":{"major":1,"minor":0,"patch":0},"tokens":[{"chainId":42161,"address":"0x7cb16cb78ea464aD35c8a50ABF95dff3c9e09d5d","name":"0xBitcoin Token","symbol":"0xBTC","decimals":8,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/2837.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xb6ed7644c69416d67b522e20bc294a9a9b405b31","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xb6ed7644c69416d67b522e20bc294a9a9b405b31","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x03b95f1C84Af0607afd5dD87ca1FDE7572aa827F","name":"Agave","symbol":"AGVE","decimals":18,"extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x0b006e475620af076915257c6a9e40635abdbbad","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x0b006e475620af076915257c6a9e40635abdbbad","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x0e15258734300290a651FdBAe8dEb039a8E7a2FA","name":"Alchemy","symbol":"ALCH","decimals":18,"logoURI":"https://assets.coingecko.com/coins/images/14719/thumb/sbEW5W8.png?1617939648","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x0000a1c00009a619684135b824ba02f7fbf3a572","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x0000a1c00009a619684135b824ba02f7fbf3a572","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x9b3fa2A7C3EB36d048A5d38d81E7fAFC6bc47B25","name":"Aluna","symbol":"ALN","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5544.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x8185bc4757572da2a610f887561c32298f1a5748","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x8185bc4757572da2a610f887561c32298f1a5748","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xea986d33eF8a20A96120ecc44dBdD49830192043","name":"Auctus Token","symbol":"AUC","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/2653.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xc12d099be31567add4e4e4d0d45691c3f58f5663","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xc12d099be31567add4e4e4d0d45691c3f58f5663","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x6F67043201C903bbCBC129750CB3b328Dd56a0a5","name":"BAC","symbol":"BAC","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7813.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x3449fc1cd036255ba1eb19d65ff4ba2b8903a69a","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x3449fc1cd036255ba1eb19d65ff4ba2b8903a69a","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xBfa641051Ba0a0Ad1b0AcF549a89536A0D76472E","name":"Badger","symbol":"BADGER","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7859.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x3472a5a71965499acd81997a54bba8d852c6e53d","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x3472a5a71965499acd81997a54bba8d852c6e53d","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x040d1EdC9569d4Bab2D15287Dc5A4F10F56a56B8","name":"Balancer","symbol":"BAL","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5728.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xba100000625a3754423978a60c9317c58a424e3d","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xba100000625a3754423978a60c9317c58a424e3d","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xBbFbde08Bf1BE235a3Fa97d6A27fFfA19Ac4a8a8","name":"BarkCoin","symbol":"BARK","decimals":18,"extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x5bd7ef7113a32b56127ac32272609c42c97849ff","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x5bd7ef7113a32b56127ac32272609c42c97849ff","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xA5eC9d64b64b8B9E94FEaA7538c084b38117E7Ba","name":"GoBlank Token","symbol":"BLANK","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8695.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x41a3dba3d677e573636ba691a70ff2d606c29666","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x41a3dba3d677e573636ba691a70ff2d606c29666","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x0D81E50bC677fa67341c44D7eaA9228DEE64A4e1","name":"BarnBridge Governance Token","symbol":"BOND","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7440.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x0391d2021f89dc339f60fff84546ea23e337750f","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x0391d2021f89dc339f60fff84546ea23e337750f","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xd44e8F8768D4ed25119921a53802D8758A5b20dD","name":"Boost","symbol":"BOOST","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/11216.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x4e0fca55a6c3a94720ded91153a27f60e26b9aa8","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x4e0fca55a6c3a94720ded91153a27f60e26b9aa8","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xBA9a5Dd807c9F072850bE15a52dF3408BA25Fd18","name":"BTU Protocol","symbol":"BTU","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/3737.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xb683d83a532e2cb7dfa5275eed3698436371cc9f","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xb683d83a532e2cb7dfa5275eed3698436371cc9f","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x031d35296154279DC1984dCD93E392b1f946737b","name":"Cap","symbol":"CAP","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5809.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x43044f861ec040db59a7e324c40507addb673142","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x43044f861ec040db59a7e324c40507addb673142","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x3a8B787f78D775AECFEEa15706D4221B40F345AB","name":"CelerToken","symbol":"CELR","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/3814.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x4f9254c83eb525f9fcf346490bbb3ed28a81c667","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x4f9254c83eb525f9fcf346490bbb3ed28a81c667","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x989D099d29F62b839C8CbD41c82c6554a5515752","name":"Cryption Network Token","symbol":"CNT","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/9747.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x429876c4a6f89fb470e92456b8313879df98b63c","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x429876c4a6f89fb470e92456b8313879df98b63c","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x354A6dA3fcde098F8389cad84b0182725c6C91dE","name":"Compound","symbol":"COMP","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5692.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xc00e94cb662c3520282e6f5717214004a7f26888","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xc00e94cb662c3520282e6f5717214004a7f26888","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x6FE14d3CC2f7bDdffBa5CdB3BBE7467dd81ea101","name":"COTI Token","symbol":"COTI","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/3992.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xddb3422497e61e13543bea06989c0789117555c5","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xddb3422497e61e13543bea06989c0789117555c5","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xf4D48Ce3ee1Ac3651998971541bAdbb9A14D7234","name":"Cream","symbol":"CREAM","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/6193.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x2ba592f78db6436527729929aaf6c908497cb200","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x2ba592f78db6436527729929aaf6c908497cb200","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x11cDb42B0EB46D95f990BeDD4695A6e3fA034978","name":"Curve DAO Token","symbol":"CRV","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/6538.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xd533a949740bb3306d119cc777fa900ba034cd52","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xd533a949740bb3306d119cc777fa900ba034cd52","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xDA10009cBd5D07dd0CeCc66161FC93D7c9000da1","name":"Dai Stablecoin","symbol":"DAI","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/4943.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x6b175474e89094c44da98b954eedeac495271d0f","originBridgeAddress":"0x467194771dAe2967Aef3ECbEDD3Bf9a310C76C65","destBridgeAddress":"0xd3b5b60020504bc3489d6949d545893982ba3011"}},"l1Address":"0x6b175474e89094c44da98b954eedeac495271d0f","l2GatewayAddress":"0x467194771dAe2967Aef3ECbEDD3Bf9a310C76C65","l1GatewayAddress":"0xd3b5b60020504bc3489d6949d545893982ba3011"}},{"chainId":42161,"address":"0xdeBa25AF35e4097146d7629055E0EC3C71706324","name":"DEFI Top 5 Tokens Index","symbol":"DEFI5","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8430.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xfa6de2697d59e88ed7fc4dfe5a33dac43565ea41","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xfa6de2697d59e88ed7fc4dfe5a33dac43565ea41","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xAE6e3540E97b0b9EA8797B157B510e133afb6282","name":"DEGEN Index","symbol":"DEGEN","decimals":18,"logoURI":"https://assets.coingecko.com/coins/images/14143/thumb/alpha_logo.png?1614651244","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x126c121f99e1e211df2e5f8de2d96fa36647c855","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x126c121f99e1e211df2e5f8de2d96fa36647c855","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xaE6aab43C4f3E0cea4Ab83752C278f8dEbabA689","name":"dForce","symbol":"DF","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/4758.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x431ad2ff6a9c365805ebad47ee021148d6f7dbe0","originBridgeAddress":"0x096760F208390250649E3e8763348E783AEF5562","destBridgeAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},"l1Address":"0x431ad2ff6a9c365805ebad47ee021148d6f7dbe0","l2GatewayAddress":"0x096760F208390250649E3e8763348E783AEF5562","l1GatewayAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},{"chainId":42161,"address":"0x1D54Aa7E322e02A0453c0F2fA21505cE7F2E9E93","name":"DFYN Token","symbol":"DFYN","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/9511.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x9695e0114e12c0d3a3636fab5a18e6b737529023","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x9695e0114e12c0d3a3636fab5a18e6b737529023","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x8038F3C971414FD1FC220bA727F2D4A0fC98cb65","name":"dHedge DAO Token","symbol":"DHT","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7094.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xca1207647ff814039530d7d35df0e1dd2e91fa84","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xca1207647ff814039530d7d35df0e1dd2e91fa84","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x69Eb4FA4a2fbd498C257C57Ea8b7655a2559A581","name":"DODO bird","symbol":"DODO","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7224.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x43dfc4159d86f3a37a5a4b3d4580b888ad7d4ddd","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x43dfc4159d86f3a37a5a4b3d4580b888ad7d4ddd","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x4425742F1EC8D98779690b5A3A6276Db85Ddc01A","name":"The Doge NFT","symbol":"DOG","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/11557.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xbaac2b4491727d78d2b78815144570b9f2fe8899","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xbaac2b4491727d78d2b78815144570b9f2fe8899","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x6C2C06790b3E3E3c38e12Ee22F8183b37a13EE55","name":"Dopex Governance Token","symbol":"DPX","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/11188.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xeec2be5c91ae7f8a338e1e5f3b5de49d07afdc81","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xeec2be5c91ae7f8a338e1e5f3b5de49d07afdc81","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xE212f5E733257ed5628a2FeBcEdBc9222e535F51","name":"Digital Standard Unit","symbol":"DSU","decimals":18,"logoURI":"https://assets.coingecko.com/coins/images/17482/thumb/photo_2021-08-03_09-24-16.png?1627953917","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x605d26fbd5be761089281d5cec2ce86eea667109","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x605d26fbd5be761089281d5cec2ce86eea667109","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xA7Aa2921618e3D63dA433829d448b58C9445A4c3","name":"DeversiFi Token","symbol":"DVF","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/10759.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xdddddd4301a082e62e84e43f474f044423921918","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xdddddd4301a082e62e84e43f474f044423921918","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xC3Ae0333F0F34aa734D5493276223d95B8F9Cb37","name":"DXdao","symbol":"DXD","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5589.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xa1d65e8fb6e87b60feccbc582f7f97804b725521","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xa1d65e8fb6e87b60feccbc582f7f97804b725521","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xCE32aA8d60807182c0003Ef9cc1976Fa10E5d312","name":"Empty Set Share","symbol":"ESS","decimals":18,"logoURI":"https://assets.coingecko.com/coins/images/17481/thumb/photo_2021-08-03_03-26-29.png?1627953584","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x24ae124c4cc33d6791f8e8b63520ed7107ac8b3e","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x24ae124c4cc33d6791f8e8b63520ed7107ac8b3e","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x969131D8ddC06C2Be11a13e6E7fACF22CF57d95e","name":"dForce EUR","symbol":"EUX","decimals":18,"logoURI":"https://etherscan.io/token/images/dforceeur_32.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xb986f3a2d91d3704dc974a24fb735dcc5e3c1e70","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xb986f3a2d91d3704dc974a24fb735dcc5e3c1e70","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xF80D589b3Dbe130c270a69F1a69D050f268786Df","name":"Flux","symbol":"FLUX","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5876.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x469eda64aed3a3ad6f868c44564291aa415cb1d9","originBridgeAddress":"0x096760F208390250649E3e8763348E783AEF5562","destBridgeAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},"l1Address":"0x469eda64aed3a3ad6f868c44564291aa415cb1d9","l2GatewayAddress":"0x096760F208390250649E3e8763348E783AEF5562","l1GatewayAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},{"chainId":42161,"address":"0x2338a5d62E9A766289934e8d2e83a443e8065b83","name":"Flux Protocol","symbol":"FLUX","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/9837.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x7645ddfeeceda57e41f92679c4acd83c56a81d14","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x7645ddfeeceda57e41f92679c4acd83c56a81d14","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x3816e40c1eB106c8fb7c05f901cfD58C7292D051","name":"The Force Token","symbol":"FOR","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/4118.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x1fcdce58959f536621d76f5b7ffb955baa5a672f","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x1fcdce58959f536621d76f5b7ffb955baa5a672f","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x488cc08935458403a0458e45E20c0159c8AB2c92","name":"Futureswap Token","symbol":"FST","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8961.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x0e192d382a36de7011f795acc4391cd302003606","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x0e192d382a36de7011f795acc4391cd302003606","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xBDeF0E9ef12E689F366fe494A7A7D0dad25D9286","name":"Fuse Token","symbol":"FUSE","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5634.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x970b9bb2c0444f5e81e9d0efb84c8ccdcdcaf84d","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x970b9bb2c0444f5e81e9d0efb84c8ccdcdcaf84d","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x590020B1005b8b25f1a2C82c5f743c540dcfa24d","name":"GMX","symbol":"GMX","decimals":18,"extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xbc30049adc73de06d7a98a5189203aac66b2c830","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xbc30049adc73de06d7a98a5189203aac66b2c830","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xa0b862F60edEf4452F25B4160F177db44DeB6Cf1","name":"Gnosis Token","symbol":"GNO","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/1659.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x6810e776880c02933d47db1b9fc05908e5386b96","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x6810e776880c02933d47db1b9fc05908e5386b96","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x07E49d5dE43DDA6162Fa28D24d5935C151875283","name":"GOVI","symbol":"GOVI","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8408.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xeeaa40b28a2d1b0b08f6f97bb1dd4b75316c6107","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xeeaa40b28a2d1b0b08f6f97bb1dd4b75316c6107","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x9623063377AD1B27544C965cCd7342f7EA7e88C7","name":"Graph Token","symbol":"GRT","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/6719.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xc944e90c64b2c07662a292be6244bdf05cda44a7","originBridgeAddress":"0x65E1a5e8946e7E87d9774f5288f41c30a99fD302","destBridgeAddress":"0x01cdc91b0a9ba741903aa3699bf4ce31d6c5cc06"}},"l1Address":"0xc944e90c64b2c07662a292be6244bdf05cda44a7","l2GatewayAddress":"0x65E1a5e8946e7E87d9774f5288f41c30a99fD302","l1GatewayAddress":"0x01cdc91b0a9ba741903aa3699bf4ce31d6c5cc06"}},{"chainId":42161,"address":"0x9c67eE39e3C4954396b9142010653F17257dd39C","name":"Impermax","symbol":"IMX","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/9532.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x7b35ce522cb72e4077baeb96cb923a5529764a00","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x7b35ce522cb72e4077baeb96cb923a5529764a00","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x04cb2d263a7489f02d813eaaB9Ba1bb8466347F2","name":"QIAN governance token","symbol":"KUN","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7721.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x65d9bc970aa9b2413027fa339f7f179b3f3f2604","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x65d9bc970aa9b2413027fa339f7f179b3f3f2604","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x3CD1833Ce959E087D0eF0Cb45ed06BffE60F23Ba","name":"Land","symbol":"LAND","decimals":18,"logoURI":"https://etherscan.io/token/images/farmland_32.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x3258cd8134b6b28e814772dd91d5ecceea512818","originBridgeAddress":"0x096760F208390250649E3e8763348E783AEF5562","destBridgeAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},"l1Address":"0x3258cd8134b6b28e814772dd91d5ecceea512818","l2GatewayAddress":"0x096760F208390250649E3e8763348E783AEF5562","l1GatewayAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},{"chainId":42161,"address":"0xf97f4df75117a78c1A5a0DBb814Af92458539FB4","name":"ChainLink Token","symbol":"LINK","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/1975.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x514910771af9ca656af840dff83e8264ecf986ca","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x514910771af9ca656af840dff83e8264ecf986ca","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x46d0cE7de6247b0A95f67b43B589b4041BaE7fbE","name":"LoopringCoin V2","symbol":"LRC","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/1934.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xbbbbca6a901c926f240b89eacb641d8aec7aeafd","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xbbbbca6a901c926f240b89eacb641d8aec7aeafd","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x539bdE0d7Dbd336b79148AA742883198BBF60342","name":"MAGIC","symbol":"MAGIC","decimals":18,"logoURI":"https://assets.coingecko.com/coins/images/18623/thumb/Magic.png?1635755672","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xb0c7a3ba49c7a6eaba6cd4a96c55a1391070ac9a","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xb0c7a3ba49c7a6eaba6cd4a96c55a1391070ac9a","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xAA086809EFA469631DD90D8C6cB267bAb107E958","name":"My Alpha Leaderboard","symbol":"MAL","decimals":18,"extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x6619078bdd8324e01e9a8d4b3d761b050e5ecf06","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x6619078bdd8324e01e9a8d4b3d761b050e5ecf06","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x99F40b01BA9C469193B360f72740E416B17Ac332","name":"MATH Token","symbol":"MATH","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5616.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x08d967bb0134f2d07f7cfb6e246680c53927dd30","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x08d967bb0134f2d07f7cfb6e246680c53927dd30","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xaaA62D9584Cbe8e4D68A43ec91BfF4fF1fAdB202","name":"Antimatter.Finance Governance Token","symbol":"MATTER","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8603.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x9b99cca871be05119b2012fd4474731dd653febe","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x9b99cca871be05119b2012fd4474731dd653febe","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x4e352cF164E64ADCBad318C3a1e222E9EBa4Ce42","name":"MCDEX Token","symbol":"MCB","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5956.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x4e352cf164e64adcbad318c3a1e222e9eba4ce42","originBridgeAddress":"0x096760F208390250649E3e8763348E783AEF5562","destBridgeAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},"l1Address":"0x4e352cf164e64adcbad318c3a1e222e9eba4ce42","l2GatewayAddress":"0x096760F208390250649E3e8763348E783AEF5562","l1GatewayAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},{"chainId":42161,"address":"0x2e9a6Df78E42a30712c10a9Dc4b1C8656f8F2879","name":"Maker","symbol":"MKR","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/1518.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x5298Ee77A8f9E226898403eBAC33e68a62F770A0","name":"Meta","symbol":"MTA","decimals":18,"logoURI":"https://assets.coingecko.com/coins/images/11846/thumb/mStable.png?1594950533","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xa3bed4e1c75d00fa6f4e5e6922db7261b5e9acd2","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xa3bed4e1c75d00fa6f4e5e6922db7261b5e9acd2","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xB965029343D55189c25a7f3e0c9394DC0F5D41b1","name":"Indexed","symbol":"NDX","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8260.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x86772b1409b61c639eaac9ba0acfbb6e238e5f83","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x86772b1409b61c639eaac9ba0acfbb6e238e5f83","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xd67D9F7E018B4e7613b0251BBe3Ba3988Baf7C16","name":"New era","symbol":"NEC","decimals":18,"extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x1353a77abd236207d0588bcbbb52bc3087f85351","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x1353a77abd236207d0588bcbbb52bc3087f85351","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xc9c2B86CD4cdbAB70cd65D22EB044574c3539F6c","name":"Feisty Doge NFT","symbol":"NFD","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/11368.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xdfdb7f72c1f195c5951a234e8db9806eb0635346","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xdfdb7f72c1f195c5951a234e8db9806eb0635346","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x52f5d9B3a2bB89D3aEC5829A3415c21115aCD633","name":"Octo.fi","symbol":"OCTO","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7202.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x7240ac91f01233baaf8b064248e80feaa5912ba3","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x7240ac91f01233baaf8b064248e80feaa5912ba3","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x6E6a3D8F1AfFAc703B1aEF1F43B8D2321bE40043","name":"Olympus","symbol":"OHM","decimals":9,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/16209.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x383518188c0c6d7730d91b2c03a03c837814a899","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x383518188c0c6d7730d91b2c03a03c837814a899","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x55704A0e9E2eb59E176C5b69655DbD3DCDCFc0F0","name":"OVR","symbol":"OVR","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8144.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x21bfbda47a0b4b5b1248c767ee49f7caa9b23697","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x21bfbda47a0b4b5b1248c767ee49f7caa9b23697","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x753D224bCf9AAFaCD81558c32341416df61D3DAC","name":"Perpetual","symbol":"PERP","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/6950.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xbc396689893d065f41bc2c6ecbee5e0085233447","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xbc396689893d065f41bc2c6ecbee5e0085233447","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x965772e0E9c84b6f359c8597C891108DcF1c5B1A","name":"PickleToken","symbol":"PICKLE","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7022.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x429881672b9ae42b8eba0e26cd9c73711b891ca5","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x429881672b9ae42b8eba0e26cd9c73711b891ca5","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x3642c0680329ae3e103E2B5AB29DDfed4d43CBE5","name":"Plenny","symbol":"PL2","decimals":18,"extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x3642c0680329ae3e103e2b5ab29ddfed4d43cbe5","originBridgeAddress":"0x096760F208390250649E3e8763348E783AEF5562","destBridgeAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},"l1Address":"0x3642c0680329ae3e103e2b5ab29ddfed4d43cbe5","l2GatewayAddress":"0x096760F208390250649E3e8763348E783AEF5562","l1GatewayAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},{"chainId":42161,"address":"0x51fC0f6660482Ea73330E414eFd7808811a57Fa2","name":"Premia","symbol":"PREMIA","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8476.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x6399c842dd2be3de30bf99bc7d1bbf6fa3650e70","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x6399c842dd2be3de30bf99bc7d1bbf6fa3650e70","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xaeF5bbcbFa438519a5ea80B4c7181B4E78d419f2","name":"Rai Reflex Index","symbol":"RAI","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8525.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x03ab458634910aad20ef5f1c8ee96f1d6ac54919","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x03ab458634910aad20ef5f1c8ee96f1d6ac54919","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x32Eb7902D4134bf98A28b963D26de779AF92A212","name":"Dopex Rebate Token","symbol":"RDPX","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/12057.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x0ff5a8451a839f5f0bb3562689d9a44089738d11","originBridgeAddress":"0x096760F208390250649E3e8763348E783AEF5562","destBridgeAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},"l1Address":"0x0ff5a8451a839f5f0bb3562689d9a44089738d11","l2GatewayAddress":"0x096760F208390250649E3e8763348E783AEF5562","l1GatewayAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},{"chainId":42161,"address":"0xef888bcA6AB6B1d26dbeC977C455388ecd794794","name":"Rari Governance Token","symbol":"RGT","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7486.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xd291e7a03283640fdc51b121ac401383a46cc623","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xd291e7a03283640fdc51b121ac401383a46cc623","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x5298060A95205BE6Dd4aBc21910A4bB23D6DCD8b","name":"Route","symbol":"ROUTE","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8292.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x16eccfdbb4ee1a85a33f3a9b21175cd7ae753db4","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x16eccfdbb4ee1a85a33f3a9b21175cd7ae753db4","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x552E4e96A0Ce6D36d161b63984848c8dAC471ea2","name":"SakeToken","symbol":"SAKE","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/6997.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x066798d9ef0833ccc719076dab77199ecbd178b0","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x066798d9ef0833ccc719076dab77199ecbd178b0","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x7bA4a00d54A07461D9DB2aEF539e91409943AdC9","name":"Stake DAO Token","symbol":"SDT","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8299.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x73968b9a57c6e53d41345fd57a6e6ae27d6cdb2f","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x73968b9a57c6e53d41345fd57a6e6ae27d6cdb2f","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x5575552988A3A80504bBaeB1311674fCFd40aD4B","name":"Sperax","symbol":"SPA","decimals":18,"logoURI":"https://etherscan.io/token/images/speraxtoken_32.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x2a95fe4c7e64e09856989f9ea0b57b9ab5f770cb","originBridgeAddress":"0x096760F208390250649E3e8763348E783AEF5562","destBridgeAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},"l1Address":"0x2a95fe4c7e64e09856989f9ea0b57b9ab5f770cb","l2GatewayAddress":"0x096760F208390250649E3e8763348E783AEF5562","l1GatewayAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},{"chainId":42161,"address":"0x3E6648C5a70A150A88bCE65F4aD4d506Fe15d2AF","name":"Spell Token","symbol":"SPELL","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/11289.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x090185f2135308bad17527004364ebcc2d37e5f6","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x090185f2135308bad17527004364ebcc2d37e5f6","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x326c33FD1113c1F29B35B4407F3d6312a8518431","name":"Strips Token","symbol":"STRP","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/11848.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x97872eafd79940c7b24f7bcc1eadb1457347adc9","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x97872eafd79940c7b24f7bcc1eadb1457347adc9","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x20f9628a485ebCc566622314f6e07E7Ee61fF332","name":"SUM","symbol":"SUM","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/11208.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x043c308bb8a5ae96d0093444be7f56459f1340b1","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x043c308bb8a5ae96d0093444be7f56459f1340b1","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xd4d42F0b6DEF4CE0383636770eF773390d85c61A","name":"SushiToken","symbol":"SUSHI","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/6758.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x6b3595068778dd592e39a122f4f5a5cf09c90fe2","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x6b3595068778dd592e39a122f4f5a5cf09c90fe2","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xdE903E2712288A1dA82942DDdF2c20529565aC30","name":"Swapr","symbol":"SWPR","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/12368.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x6cacdb97e3fc8136805a9e7c342d866ab77d0957","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x6cacdb97e3fc8136805a9e7c342d866ab77d0957","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xFa51B42d4C9EA35F1758828226AaEdBeC50DD54E","name":"Taekwondo Access Credit","symbol":"TAC","decimals":18,"logoURI":"https://etherscan.io/token/images/tkdcoop_32.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xdeeb6091a5adc78fa0332bee5a38a8908b6b566e","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xdeeb6091a5adc78fa0332bee5a38a8908b6b566e","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xA72159FC390f0E3C6D415e658264c7c4051E9b87","name":"Tracer","symbol":"TCR","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/12341.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x9c4a4204b79dd291d6b6571c5be8bbcd0622f050","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x9c4a4204b79dd291d6b6571c5be8bbcd0622f050","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x4D15a3A2286D883AF0AA1B3f21367843FAc63E07","name":"TrueUSD","symbol":"TUSD","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/2563.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x0000000000085d4780b73119b644ae5ecd22b376","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x0000000000085d4780b73119b644ae5ecd22b376","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x2aD62674A64E698C24831Faf824973C360430140","name":"UniBright","symbol":"UBT","decimals":8,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/2758.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x8400d94a5cb0fa0d041a3788e395285d61c9ee5e","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x8400d94a5cb0fa0d041a3788e395285d61c9ee5e","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xd5d3aA404D7562d09a848F96a8a8d5D65977bF90","name":"Unlock Discount Token","symbol":"UDT","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/9364.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x90de74265a416e1393a450752175aed98fe11517","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x90de74265a416e1393a450752175aed98fe11517","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xFa7F8980b0f1E64A2062791cc3b0871572f1F7f0","name":"Uniswap","symbol":"UNI","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7083.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x1f9840a85d5af5bf1d1762f925bdaddc4201f984","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x1f9840a85d5af5bf1d1762f925bdaddc4201f984","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x250F471385894fc81183a99d6fDe8CE9C5B142d6","name":"Unity Network","symbol":"UNT","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/14602.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x8d610e20481f4c4f3acb87bba9c46bef7795fdfe","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x8d610e20481f4c4f3acb87bba9c46bef7795fdfe","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8","name":"USD Coin (Arb1)","symbol":"USDC","decimals":6,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/3408.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","originBridgeAddress":"0x096760F208390250649E3e8763348E783AEF5562","destBridgeAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},"l1Address":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","l2GatewayAddress":"0x096760F208390250649E3e8763348E783AEF5562","l1GatewayAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},{"chainId":42161,"address":"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9","name":"Tether USD","symbol":"USDT","decimals":6,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/825.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xdac17f958d2ee523a2206206994597c13d831ec7","originBridgeAddress":"0x096760F208390250649E3e8763348E783AEF5562","destBridgeAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},"l1Address":"0xdac17f958d2ee523a2206206994597c13d831ec7","l2GatewayAddress":"0x096760F208390250649E3e8763348E783AEF5562","l1GatewayAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},{"chainId":42161,"address":"0xcd14C3A2ba27819B352aae73414A26e2b366dC50","name":"dForce USD","symbol":"USX","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/13080.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x0a5e677a6a24b2f1a2bf4f3bffc443231d2fdec8","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x0a5e677a6a24b2f1a2bf4f3bffc443231d2fdec8","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x8d1c89DcF613e3e709AfE9Abecae591D0e2B64Ca","name":"Validator","symbol":"VALX","decimals":18,"logoURI":"https://etherscan.io/token/images/validator_32.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x27c4af9a860c4cadc358005f8b48140b2e434a7b","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x27c4af9a860c4cadc358005f8b48140b2e434a7b","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x995C235521820f2637303Ca1970c7c044583df44","name":"VISOR","symbol":"VISR","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/9170.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xf938424f7210f31df2aee3011291b658f872e91e","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xf938424f7210f31df2aee3011291b658f872e91e","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x2eD14d1788dfB780fD216706096AeD018514ECcd","name":"Vox.Finance","symbol":"VOX","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7465.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x12d102f06da35cc0111eb58017fd2cd28537d0e1","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x12d102f06da35cc0111eb58017fd2cd28537d0e1","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f","name":"Wrapped BTC","symbol":"WBTC","decimals":8,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/3717.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xA64eCCe74F8CdB7a940766B71f1b108BAC69851a","name":"Wrapped CHI","symbol":"WCHI","decimals":8,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5541.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x6dc02164d75651758ac74435806093e421b64605","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x6dc02164d75651758ac74435806093e421b64605","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1","name":"Wrapped Ether","symbol":"WETH","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/2396.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","originBridgeAddress":"0x6c411aD3E74De3E7Bd422b94A27770f5B86C623B","destBridgeAddress":"0xd92023e9d9911199a6711321d1277285e6d4e2db"}},"l1Address":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","l2GatewayAddress":"0x6c411aD3E74De3E7Bd422b94A27770f5B86C623B","l1GatewayAddress":"0xd92023e9d9911199a6711321d1277285e6d4e2db"}},{"chainId":42161,"address":"0xcAFcD85D8ca7Ad1e1C6F82F651fA15E33AEfD07b","name":"Wootrade Network","symbol":"WOO","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7501.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x4691937a7508860f876c9c0a2a617e7d9e945d4b","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x4691937a7508860f876c9c0a2a617e7d9e945d4b","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xF0A5717Ec0883eE56438932b0fe4A20822735fBa","name":"xToken","symbol":"XTK","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8599.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x7f3edcdd180dbe4819bd98fee8929b5cedb3adeb","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x7f3edcdd180dbe4819bd98fee8929b5cedb3adeb","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x82e3A8F066a6989666b031d916c43672085b1582","name":"yearn.finance","symbol":"YFI","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5864.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x0F61B24272AF65EACF6adFe507028957698e032F","name":"Zippie","symbol":"ZIPT","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/2724.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xedd7c94fd7b4971b916d15067bc454b9e1bad980","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xedd7c94fd7b4971b916d15067bc454b9e1bad980","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0x9Ab3FD50FcAe73A1AEDa959468FD0D662c881b42","name":"Interest-Bearing Bitcoin","symbol":"ibBTC","decimals":18,"logoURI":"https://assets.coingecko.com/coins/images/15500/thumb/ibbtc.png?1621077589","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xc4e15973e6ff2a35cc804c2cf9d2a1b817a8b40f","originBridgeAddress":"0x096760F208390250649E3e8763348E783AEF5562","destBridgeAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},"l1Address":"0xc4e15973e6ff2a35cc804c2cf9d2a1b817a8b40f","l2GatewayAddress":"0x096760F208390250649E3e8763348E783AEF5562","l1GatewayAddress":"0xcee284f754e854890e311e3280b767f80797180d"}},{"chainId":42161,"address":"0x4f947b40BEEB9D8130437781a560E5c7D089730f","name":"KAKI USDC","symbol":"kUSDC","decimals":18,"extensions":{"bridgeInfo":{"1":{"tokenAddress":"0xa124ff1e97e7f3e4a796f6a2d3bf5d0e2d41973d","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0xa124ff1e97e7f3e4a796f6a2d3bf5d0e2d41973d","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":42161,"address":"0xA970AF1a584579B618be4d69aD6F73459D112F95","name":"Synth sUSD","symbol":"sUSD","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/2927.png","extensions":{"bridgeInfo":{"1":{"tokenAddress":"0x57ab1ec28d129707052df4df418d58a2d46d5f51","originBridgeAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","destBridgeAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},"l1Address":"0x57ab1ec28d129707052df4df418d58a2d46d5f51","l2GatewayAddress":"0x09e9222E96E7B4AE2a407B98d48e330053351EEe","l1GatewayAddress":"0xa3a7b6f88361f48403514059f1f16c8e78d60eec"}},{"chainId":1,"name":"0xBitcoin","address":"0xb6ed7644c69416d67b522e20bc294a9a9b405b31","symbol":"0xBTC","decimals":8,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/2837.png"},{"chainId":1,"name":"Agave","address":"0x0b006e475620af076915257c6a9e40635abdbbad","symbol":"AGVE","decimals":18},{"chainId":1,"name":"Alchemy","address":"0x0000a1c00009a619684135b824ba02f7fbf3a572","symbol":"ALCH","decimals":18,"logoURI":"https://assets.coingecko.com/coins/images/14719/thumb/sbEW5W8.png?1617939648"},{"chainId":1,"name":"Aluna.Social","address":"0x8185bc4757572da2a610f887561c32298f1a5748","symbol":"ALN","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5544.png"},{"chainId":1,"name":"Auctus","address":"0xc12d099be31567add4e4e4d0d45691c3f58f5663","symbol":"AUC","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/2653.png"},{"chainId":1,"name":"Basis Cash","address":"0x3449FC1Cd036255BA1EB19d65fF4BA2b8903A69a","symbol":"BAC","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7813.png"},{"chainId":1,"name":"Badger DAO","address":"0x3472a5a71965499acd81997a54bba8d852c6e53d","symbol":"BADGER","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7859.png"},{"chainId":1,"name":"Balancer","address":"0xba100000625a3754423978a60c9317c58a424e3D","symbol":"BAL","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5728.png"},{"chainId":1,"name":"BarkCoin","address":"0x5bd7ef7113a32b56127ac32272609c42c97849ff","symbol":"BARK","decimals":18},{"chainId":1,"name":"BlockWallet","address":"0x41a3dba3d677e573636ba691a70ff2d606c29666","symbol":"BLANK","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8695.png"},{"chainId":1,"name":"BarnBridge","address":"0x0391D2021f89DC339F60Fff84546EA23E337750f","symbol":"BOND","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7440.png"},{"chainId":1,"name":"Boost Coin","address":"0x4e0fca55a6c3a94720ded91153a27f60e26b9aa8","symbol":"BOOST","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/11216.png"},{"chainId":1,"name":"BTU Protocol","address":"0xb683d83a532e2cb7dfa5275eed3698436371cc9f","symbol":"BTU","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/3737.png"},{"chainId":1,"name":"Cap","address":"0x43044f861ec040DB59A7e324c40507adDb673142","symbol":"CAP","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5809.png"},{"chainId":1,"name":"Celer Network","address":"0x4f9254c83eb525f9fcf346490bbb3ed28a81c667","symbol":"CELR","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/3814.png"},{"chainId":1,"name":"Cryption Network","address":"0x429876c4a6f89fb470e92456b8313879df98b63c","symbol":"CNT","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/9747.png"},{"chainId":1,"name":"Compound","address":"0xc00e94cb662c3520282e6f5717214004a7f26888","symbol":"COMP","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5692.png"},{"chainId":1,"name":"COTI","address":"0xDDB3422497E61e13543BeA06989C0789117555c5","symbol":"COTI","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/3992.png"},{"chainId":1,"name":"Cream Finance","address":"0x2ba592f78db6436527729929aaf6c908497cb200","symbol":"CREAM","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/6193.png"},{"chainId":1,"name":"Curve DAO Token","address":"0xD533a949740bb3306d119CC777fa900bA034cd52","symbol":"CRV","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/6538.png"},{"chainId":1,"name":"Dai","address":"0x6b175474e89094c44da98b954eedeac495271d0f","symbol":"DAI","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/4943.png"},{"chainId":1,"name":"DEFI Top 5 Tokens Index","address":"0xfa6de2697d59e88ed7fc4dfe5a33dac43565ea41","symbol":"DEFI5","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8430.png"},{"chainId":1,"name":"DEGEN Index","address":"0x126c121f99e1e211df2e5f8de2d96fa36647c855","symbol":"DEGEN","decimals":18,"logoURI":"https://assets.coingecko.com/coins/images/14143/thumb/alpha_logo.png?1614651244"},{"chainId":1,"name":"dForce","address":"0x431ad2ff6a9c365805ebad47ee021148d6f7dbe0","symbol":"DF","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/4758.png"},{"chainId":1,"name":"Dfyn Network","address":"0x9695e0114e12c0d3a3636fab5a18e6b737529023","symbol":"DFYN","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/9511.png"},{"chainId":1,"name":"dHedge DAO","address":"0xca1207647ff814039530d7d35df0e1dd2e91fa84","symbol":"DHT","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7094.png"},{"chainId":1,"name":"DODO","address":"0x43dfc4159d86f3a37a5a4b3d4580b888ad7d4ddd","symbol":"DODO","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7224.png"},{"chainId":1,"name":"The Doge NFT","address":"0xbaac2b4491727d78d2b78815144570b9f2fe8899","symbol":"DOG","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/11557.png"},{"chainId":1,"name":"Dopex","address":"0xeec2be5c91ae7f8a338e1e5f3b5de49d07afdc81","symbol":"DPX","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/11188.png"},{"chainId":1,"name":"Digital Standard Unit","address":"0x605d26fbd5be761089281d5cec2ce86eea667109","symbol":"DSU","decimals":18,"logoURI":"https://assets.coingecko.com/coins/images/17482/thumb/photo_2021-08-03_09-24-16.png?1627953917"},{"chainId":1,"name":"DeversiFi","address":"0xdddddd4301a082e62e84e43f474f044423921918","symbol":"DVF","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/10759.png"},{"chainId":1,"name":"DXdao","address":"0xa1d65e8fb6e87b60feccbc582f7f97804b725521","symbol":"DXD","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5589.png"},{"chainId":1,"name":"Empty Set Share","address":"0x24ae124c4cc33d6791f8e8b63520ed7107ac8b3e","symbol":"ESS","decimals":18,"logoURI":"https://assets.coingecko.com/coins/images/17481/thumb/photo_2021-08-03_03-26-29.png?1627953584"},{"chainId":1,"name":"dForce EUR","address":"0xb986f3a2d91d3704dc974a24fb735dcc5e3c1e70","symbol":"EUX","decimals":18,"logoURI":"https://etherscan.io/token/images/dforceeur_32.png"},{"chainId":1,"name":"Datamine FLUX","address":"0x469eda64aed3a3ad6f868c44564291aa415cb1d9","symbol":"FLUX","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5876.png"},{"chainId":1,"name":"Flux Protocol","address":"0x7645DdfEecedA57e41f92679c4aCd83c56A81D14","symbol":"FLUX","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/9837.png"},{"chainId":1,"name":"ForTube","address":"0x1fcdce58959f536621d76f5b7ffb955baa5a672f","symbol":"FOR","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/4118.png"},{"chainId":1,"name":"Futureswap","address":"0x0e192d382a36de7011f795acc4391cd302003606","symbol":"FST","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8961.png"},{"chainId":1,"name":"Fuse Network","address":"0x970b9bb2c0444f5e81e9d0efb84c8ccdcdcaf84d","symbol":"FUSE","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5634.png"},{"chainId":1,"name":"GMX","address":"0xbc30049adc73de06d7a98a5189203aac66b2c830","symbol":"GMX","decimals":18},{"chainId":1,"name":"Gnosis","address":"0x6810e776880c02933d47db1b9fc05908e5386b96","symbol":"GNO","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/1659.png"},{"chainId":1,"name":"Govi","address":"0xeeaa40b28a2d1b0b08f6f97bb1dd4b75316c6107","symbol":"GOVI","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8408.png"},{"chainId":1,"name":"The Graph","address":"0xc944e90c64b2c07662a292be6244bdf05cda44a7","symbol":"GRT","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/6719.png"},{"chainId":1,"name":"Impermax","address":"0x7b35ce522cb72e4077baeb96cb923a5529764a00","symbol":"IMX","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/9532.png"},{"chainId":1,"name":"Chemix Ecology Governance Token","address":"0x65d9bC970aA9B2413027fA339F7f179B3F3f2604","symbol":"KUN","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7721.png"},{"chainId":1,"name":"Land","address":"0x3258cd8134b6b28e814772dd91d5ecceea512818","symbol":"LAND","decimals":18,"logoURI":"https://etherscan.io/token/images/farmland_32.png"},{"chainId":1,"name":"Chainlink","address":"0x514910771af9ca656af840dff83e8264ecf986ca","symbol":"LINK","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/1975.png"},{"chainId":1,"name":"Loopring","address":"0xbbbbca6a901c926f240b89eacb641d8aec7aeafd","symbol":"LRC","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/1934.png"},{"chainId":1,"name":"MAGIC","address":"0xb0c7a3ba49c7a6eaba6cd4a96c55a1391070ac9a","symbol":"MAGIC","decimals":18,"logoURI":"https://assets.coingecko.com/coins/images/18623/thumb/Magic.png?1635755672"},{"chainId":1,"name":"My Alpha Leaderboard","address":"0x6619078bdd8324e01e9a8d4b3d761b050e5ecf06","symbol":"MAL","decimals":18},{"chainId":1,"name":"MATH","address":"0x08d967bb0134f2d07f7cfb6e246680c53927dd30","symbol":"MATH","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5616.png"},{"chainId":1,"name":"AntiMatter Governance Token","address":"0x9B99CcA871Be05119B2012fd4474731dd653FEBe","symbol":"MATTER","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8603.png"},{"chainId":1,"name":"MCDEX Token","address":"0x4e352cf164e64adcbad318c3a1e222e9eba4ce42","symbol":"MCB","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5956.png"},{"chainId":1,"name":"Maker","address":"0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2","symbol":"MKR","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/1518.png"},{"chainId":1,"name":"Meta","address":"0xa3bed4e1c75d00fa6f4e5e6922db7261b5e9acd2","symbol":"MTA","decimals":18,"logoURI":"https://assets.coingecko.com/coins/images/11846/thumb/mStable.png?1594950533"},{"chainId":1,"name":"Indexed Finance","address":"0x86772b1409b61c639eaac9ba0acfbb6e238e5f83","symbol":"NDX","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8260.png"},{"chainId":1,"name":"New era","address":"0x1353a77abd236207d0588bcbbb52bc3087f85351","symbol":"NEC","decimals":18},{"chainId":1,"name":"Feisty Doge NFT","address":"0xDFDb7f72c1F195C5951a234e8DB9806EB0635346","symbol":"NFD","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/11368.png"},{"chainId":1,"name":"OctoFi","address":"0x7240aC91f01233BaAf8b064248E80feaA5912BA3","symbol":"OCTO","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7202.png"},{"chainId":1,"name":"Olympus v1","address":"0x383518188c0c6d7730d91b2c03a03c837814a899","symbol":"OHM","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/16209.png"},{"chainId":1,"name":"OVR","address":"0x21bfbda47a0b4b5b1248c767ee49f7caa9b23697","symbol":"OVR","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8144.png"},{"chainId":1,"name":"Perpetual Protocol","address":"0xbc396689893d065f41bc2c6ecbee5e0085233447","symbol":"PERP","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/6950.png"},{"chainId":1,"name":"Pickle Finance","address":"0x429881672B9AE42b8EbA0E26cD9C73711b891Ca5","symbol":"PICKLE","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7022.png"},{"chainId":1,"name":"Plenny","address":"0x3642c0680329ae3e103e2b5ab29ddfed4d43cbe5","symbol":"PL2","decimals":18},{"chainId":1,"name":"Premia","address":"0x6399C842dD2bE3dE30BF99Bc7D1bBF6Fa3650E70","symbol":"PREMIA","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8476.png"},{"chainId":1,"name":"Rai Reflex Index","address":"0x03ab458634910aad20ef5f1c8ee96f1d6ac54919","symbol":"RAI","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8525.png"},{"chainId":1,"name":"Dopex Rebate Token","address":"0x0ff5a8451a839f5f0bb3562689d9a44089738d11","symbol":"RDPX","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/12057.png"},{"chainId":1,"name":"Rari Governance Token","address":"0xd291e7a03283640fdc51b121ac401383a46cc623","symbol":"RGT","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7486.png"},{"chainId":1,"name":"Router Protocol","address":"0x16eccfdbb4ee1a85a33f3a9b21175cd7ae753db4","symbol":"ROUTE","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8292.png"},{"chainId":1,"name":"SakeToken","address":"0x066798d9ef0833ccc719076dab77199ecbd178b0","symbol":"SAKE","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/6997.png"},{"chainId":1,"name":"Stake DAO","address":"0x73968b9a57c6e53d41345fd57a6e6ae27d6cdb2f","symbol":"SDT","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8299.png"},{"chainId":1,"name":"Spell Token","address":"0x090185f2135308bad17527004364ebcc2d37e5f6","symbol":"SPELL","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/11289.png"},{"chainId":1,"name":"Strips Finance","address":"0x97872EAfd79940C7b24f7BCc1EADb1457347ADc9","symbol":"STRP","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/11848.png"},{"chainId":1,"name":"SumSwap","address":"0x043c308bb8a5ae96d0093444be7f56459f1340b1","symbol":"SUM","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/11208.png"},{"chainId":1,"name":"SushiSwap","address":"0x6b3595068778dd592e39a122f4f5a5cf09c90fe2","symbol":"SUSHI","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/6758.png"},{"chainId":1,"name":"Swapr","address":"0x6cacdb97e3fc8136805a9e7c342d866ab77d0957","symbol":"SWPR","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/12368.png"},{"chainId":1,"name":"Taekwondo Access Credit","address":"0xdeeb6091a5adc78fa0332bee5a38a8908b6b566e","symbol":"TAC","decimals":18,"logoURI":"https://etherscan.io/token/images/tkdcoop_32.png"},{"chainId":1,"name":"Tracer DAO","address":"0x9c4a4204b79dd291d6b6571c5be8bbcd0622f050","symbol":"TCR","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/12341.png"},{"chainId":1,"name":"TrueUSD","address":"0x0000000000085d4780B73119b644AE5ecd22b376","symbol":"TUSD","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/2563.png"},{"chainId":1,"name":"Unibright","address":"0x8400d94a5cb0fa0d041a3788e395285d61c9ee5e","symbol":"UBT","decimals":8,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/2758.png"},{"chainId":1,"name":"Unlock Protocol","address":"0x90de74265a416e1393a450752175aed98fe11517","symbol":"UDT","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/9364.png"},{"chainId":1,"name":"Uniswap","address":"0x1f9840a85d5af5bf1d1762f925bdaddc4201f984","symbol":"UNI","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7083.png"},{"chainId":1,"name":"Unity Network","address":"0x8d610e20481f4c4f3acb87bba9c46bef7795fdfe","symbol":"UNT","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/14602.png"},{"chainId":1,"name":"USD Coin","address":"0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48","symbol":"USDC","decimals":6,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/3408.png"},{"chainId":1,"name":"Tether","address":"0xdac17f958d2ee523a2206206994597c13d831ec7","symbol":"USDT","decimals":6,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/825.png"},{"chainId":1,"name":"dForce USD","address":"0x0a5e677a6a24b2f1a2bf4f3bffc443231d2fdec8","symbol":"USX","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/13080.png"},{"chainId":1,"name":"Validator","address":"0x27c4af9a860c4cadc358005f8b48140b2e434a7b","symbol":"VALX","decimals":18,"logoURI":"https://etherscan.io/token/images/validator_32.png"},{"chainId":1,"name":"Visor.Finance","address":"0xf938424f7210f31df2aee3011291b658f872e91e","symbol":"VISR","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/9170.png"},{"chainId":1,"name":"Vox.Finance","address":"0x12D102F06da35cC0111EB58017fd2Cd28537d0e1","symbol":"VOX","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7465.png"},{"chainId":1,"name":"Wrapped Bitcoin","address":"0x2260fac5e5542a773aa44fbcfedf7c193bc2c599","symbol":"WBTC","decimals":8,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/3717.png"},{"chainId":1,"name":"Xaya","address":"0x6DC02164d75651758aC74435806093E421b64605","symbol":"CHI","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5541.png"},{"chainId":1,"name":"WETH","address":"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2","symbol":"WETH","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/2396.png"},{"chainId":1,"name":"Sperax","address":"0x2a95FE4c7e64e09856989F9eA0b57B9AB5f770CB","symbol":"SPA","decimals":18,"logoURI":"https://etherscan.io/token/images/speraxtoken_32.png"},{"chainId":1,"name":"WOO Network","address":"0x4691937a7508860f876c9c0a2a617e7d9e945d4b","symbol":"WOO","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/7501.png"},{"chainId":1,"name":"xToken","address":"0x7f3edcdd180dbe4819bd98fee8929b5cedb3adeb","symbol":"XTK","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/8599.png"},{"chainId":1,"name":"yearn.finance","address":"0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e","symbol":"YFI","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/5864.png"},{"chainId":1,"name":"Zippie","address":"0xedd7c94fd7b4971b916d15067bc454b9e1bad980","symbol":"ZIPT","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/2724.png"},{"chainId":1,"name":"Interest-Bearing Bitcoin","address":"0xc4e15973e6ff2a35cc804c2cf9d2a1b817a8b40f","symbol":"ibBTC","decimals":18,"logoURI":"https://assets.coingecko.com/coins/images/15500/thumb/ibbtc.png?1621077589"},{"chainId":1,"name":"KAKI USDC","address":"0xa124ff1e97e7f3e4a796f6a2d3bf5d0e2d41973d","symbol":"kUSDC","decimals":18},{"chainId":1,"name":"sUSD","address":"0x57Ab1ec28D129707052df4dF418D58a2D46d5f51","symbol":"SUSD","decimals":18,"logoURI":"https://s2.coinmarketcap.com/static/img/coins/64x64/2927.png"}],"logoURI":"ipfs://QmTvWJ4kmzq9koK74WJQ594ov8Es1HHurHZmMmhU8VY68y","tags":{"sourceList":{"name":"Source list url","description":"https:__tokenlist.arbitrum.io_ArbTokenLists_arbed_arb_whitelist_era.json replace _ with forwardslash"}}} \ No newline at end of file diff --git a/src/lib/constants.ts b/src/lib/constants.ts index d39d74f1..59311b25 100644 --- a/src/lib/constants.ts +++ b/src/lib/constants.ts @@ -2,12 +2,33 @@ export interface L2ToL1GatewayAddresses { [contractAddress: string]: string; } +export interface GraphEndpoints { + [networkId: number]: string; +} + const objKeyAndValToLowerCase = (obj: { [key: string]: string }) => Object.keys(obj).reduce((acc: { [key: string]: string }, key) => { acc[key.toLowerCase()] = obj[key].toLowerCase(); return acc; }, {}); +export const bridgeGraphEndpoints: GraphEndpoints = { + 42161: + 'https://api.thegraph.com/subgraphs/name/gvladika/arb-bridge-eth-nitro', + 42170: 'https://api.thegraph.com/subgraphs/name/gvladika/arb-bridge-eth-nova', + 421613: + 'https://api.thegraph.com/subgraphs/name/gvladika/arb-bridge-eth-goerli', +}; + +export const tokenGatewayGraphEndpoints: GraphEndpoints = { + 42161: + 'https://api.thegraph.com/subgraphs/name/fredlacs/layer2-token-gateway', + 421611: + 'https://api.thegraph.com/subgraphs/name/fredlacs/layer2-token-gateway-rinkeby', + 421613: + 'https://api.thegraph.com/subgraphs/name/fredlacs/layer2-token-gateway-nitro-goerli', +}; + // TODO: read these values from the gateway or a subgraph export const l2ToL1GatewayAddresses: L2ToL1GatewayAddresses = objKeyAndValToLowerCase({ diff --git a/src/lib/graph.ts b/src/lib/graph.ts index 50c2b5f8..f17001b7 100644 --- a/src/lib/graph.ts +++ b/src/lib/graph.ts @@ -1,27 +1,23 @@ import { request, gql } from 'graphql-request'; import { isNetwork } from './utils'; -import { GraphTokenResult, GraphTokensResult } from './types'; -import { excludeList } from './constants'; +import { + GraphTokenResult, + GraphTokensResult, + GatewaySetsResult, + GatewaySetInfo, +} from './types'; +import { + excludeList, + tokenGatewayGraphEndpoints, + bridgeGraphEndpoints, +} from './constants'; +import { getArgvs } from './options'; -const apolloL2GatewaysRinkebyClient = - 'https://api.thegraph.com/subgraphs/name/fredlacs/layer2-token-gateway-rinkeby'; -const apolloL2GatewaysClient = - 'https://api.thegraph.com/subgraphs/name/fredlacs/layer2-token-gateway'; - -const appoloL2GatewaysGoerliRollupClient = - 'https://api.thegraph.com/subgraphs/name/fredlacs/layer2-token-gateway-nitro-goerli'; - -const chaidIdToGraphClientUrl = (chainID: string) => { - switch (chainID) { - case '42161': - return apolloL2GatewaysClient; - case '421611': - return apolloL2GatewaysRinkebyClient; - case '421613': - return appoloL2GatewaysGoerliRollupClient; - default: - throw new Error('Unsupported chain'); +const sortByTime = (a: GatewaySetInfo, b: GatewaySetInfo): number => { + if (Number(a.blockNumber) === Number(b.blockNumber)) { + return a.logIndex - b.logIndex; } + return Number(a.blockNumber) - Number(b.blockNumber); }; const isGraphTokenResult = (obj: GraphTokenResult) => { @@ -59,7 +55,7 @@ export const getTokens = async ( } const networkID = typeof _networkID === 'number' ? _networkID.toString() : _networkID; - const clientUrl = chaidIdToGraphClientUrl(networkID); + const clientUrl = tokenGatewayGraphEndpoints[Number(networkID)]; // lazy solution for big lists for now; we'll have to paginate once we have > 500 tokens registed if (tokenList.length > 500) { const allTokens = await getAllTokens(networkID); @@ -100,7 +96,7 @@ export const getTokens = async ( } `; - const { tokens } = (await request(clientUrl, query)) as GraphTokensResult; + const { tokens }: GraphTokensResult = await request(clientUrl, query); tokens.map((token) => isGraphTokenResult(token)); return tokens.filter( @@ -113,7 +109,7 @@ export const getAllTokens = async ( ): Promise> => { const networkID = typeof _networkID === 'number' ? _networkID.toString() : _networkID; - const clientUrl = chaidIdToGraphClientUrl(networkID); + const clientUrl = tokenGatewayGraphEndpoints[Number(networkID)]; const blockNumber = graphGatewayBlockNumField(_networkID); const query = gql` { @@ -137,7 +133,7 @@ export const getAllTokens = async ( } `; - const { tokens } = (await request(clientUrl, query)) as GraphTokensResult; + const { tokens }: GraphTokensResult = await request(clientUrl, query); const res = tokens.map((token) => { isGraphTokenResult(token); return { ...token }; @@ -147,3 +143,35 @@ export const getAllTokens = async ( (token) => !excludeList.includes(token.l1TokenAddr.toLowerCase()), ); }; + +export async function getGatewaysets(): Promise { + const eventResult = []; + let currentResult: GatewaySetInfo[]; + let skip = 0; + const clientUrl = bridgeGraphEndpoints[getArgvs().l2NetworkID]; + do { + currentResult = []; + const query = gql`query EventQuery { + gatewaySets(first: 100, orderBy: id, skip: ${skip}) { + id + l1Token + gateway + blockNumber + } + }`; + const { gatewaySets }: GatewaySetsResult = await request(clientUrl, query); + + //get logIndex only + for (let i = 0; i < gatewaySets.length; i++) { + currentResult[i] = { + ...gatewaySets[i], + tx: gatewaySets[i].id.substring(0, 66), //tx length 64 but there is 0x in front so it is 66 + logIndex: 1, + }; + } + eventResult.push(...currentResult); + skip += 100; + } while (currentResult.length == 100); + eventResult.sort(sortByTime); + return eventResult; +} diff --git a/src/lib/token_list_gen.ts b/src/lib/token_list_gen.ts index 598e621c..3a612322 100644 --- a/src/lib/token_list_gen.ts +++ b/src/lib/token_list_gen.ts @@ -30,6 +30,7 @@ import { getChunks, promiseErrorMultiplier, getL1GatewayAddress, + generateGatewayMap, } from './utils'; import { validateTokenListWithErrorThrowing } from './validateTokenList'; import { constants as arbConstants } from '@arbitrum/sdk'; @@ -184,7 +185,11 @@ export const generateTokenList = async ( } const tokenData = intermediateTokenData.flat(1); - + const l2ToL1GatewayAddresses = await generateGatewayMap( + l2.multiCaller, + l2.network, + l1.provider, + ); const _arbifiedTokenList = tokens .map((t, i) => ({ token: t, @@ -201,7 +206,8 @@ export const generateTokenList = async ( const l2GatewayAddress = token.token.joinTableEntry[0].gateway.gatewayAddr; const l1GatewayAddress = - (await getL1GatewayAddress(l2GatewayAddress)) ?? 'N/A'; + (await getL1GatewayAddress(l2GatewayAddress, l2ToL1GatewayAddresses)) ?? + 'N/A'; let { name: _name, decimals, symbol: _symbol } = token.tokenDatum; diff --git a/src/lib/types.ts b/src/lib/types.ts index a5712606..4186efef 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -44,3 +44,19 @@ export interface GraphTokenResult { export interface GraphTokensResult { tokens: GraphTokenResult[]; } + +export interface GatewaySetResult { + id: string; + l1Token: string; + gateway: string; + blockNumber: string; +} + +export interface GatewaySetsResult { + gatewaySets: GatewaySetResult[]; +} + +export interface GatewaySetInfo extends GatewaySetResult { + tx: string; + logIndex: number; +} diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 41db3cde..612bfc07 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,17 +1,17 @@ import { TokenList } from '@uniswap/token-lists'; import { readFileSync, existsSync } from 'fs'; import axios from 'axios'; -import { L2Network, MultiCaller } from '@arbitrum/sdk'; +import { ethers } from 'ethers'; +import { CallInput, L2Network, MultiCaller } from '@arbitrum/sdk'; import { L1GatewayRouter__factory } from '@arbitrum/sdk/dist/lib/abi/factories/L1GatewayRouter__factory'; import { L2GatewayRouter__factory } from '@arbitrum/sdk/dist/lib/abi/factories/L2GatewayRouter__factory'; - +import { TokenGateway__factory } from '@arbitrum/sdk/dist/lib/abi/factories/TokenGateway__factory'; +import { getGatewaysets } from './graph'; import { ArbTokenList, GraphTokenResult } from './types'; import path from 'path'; +import { exit } from 'process'; +import { Provider } from '@ethersproject/providers'; import { tokenListIsValid } from './validateTokenList'; -import { - l2ToL1GatewayAddresses, - l2ToL1GatewayAddressesNova, -} from './constants'; import { getArgvs } from './options'; export const isNetwork = () => { @@ -85,15 +85,176 @@ export const promiseErrorMultiplier = ( }); }; -export const getL1GatewayAddress = async (l2GatewayAddress: string) => { - const { isNova } = isNetwork(); - const l2Gateway = isNova - ? l2ToL1GatewayAddressesNova[l2GatewayAddress.toLowerCase()] - : l2ToL1GatewayAddresses[l2GatewayAddress.toLowerCase()]; +export const generateGatewayMap = async ( + l2Multicaller: MultiCaller, + l2Network: L2Network, + l1Provider: Provider, +) => { + const l1GatewayResults: Map = new Map(); + const l1Token: any[] = []; + const gatewayMap: Map = new Map(); + + //default gateway can be set during initialize call, it does not emit GatewaySet, so we should + //manually set it + const l1GatewayRouter = L1GatewayRouter__factory.connect( + l2Network.tokenBridge.l1GatewayRouter, + l1Provider, + ); + const defaultGateway = await l1GatewayRouter.defaultGateway(); + const defaultGatewayContract = new ethers.Contract( + defaultGateway, + TokenGateway__factory.abi, + ).connect(l1Provider); + const defaultCounterPartGateway = + await defaultGatewayContract.counterpartGateway(); + gatewayMap.set( + defaultCounterPartGateway.toLowerCase(), + defaultGateway.toLowerCase(), + ); + + const gatewaySetsList = await getGatewaysets(); + for (let i = 0; i < gatewaySetsList.length; i++) { + const tokenAddress = gatewaySetsList[i].l1Token; + let l1GatewayAddress = gatewaySetsList[i].gateway; + + // This token on goerli doesn't set correctly, so we should ignore it. + if ( + tokenAddress == '0x208d48e7eb3f316214c28894b3a6aea9e87c59a5' && + l2Network.chainID == 421613 + ) { + console.log(gatewaySetsList[i]); + continue; + } + + //if gateway set to zero, which means it sets back to standard erc20 gateway + if (l1GatewayAddress === ethers.constants.AddressZero) { + l1GatewayAddress = l2Network.tokenBridge.l1ERC20Gateway; + } + l1GatewayResults.set(tokenAddress, l1GatewayAddress); + l1Token.push(tokenAddress); + } + + const l2GatewayMaps = await getL2GatewayAddressesFromL1Token( + l1Token, + l2Multicaller, + l2Network, + ); + + //set gateway map + for (let i = 0; i < l1Token.length; i++) { + if (l2GatewayMaps[i] === ethers.constants.AddressZero) continue; + gatewayMap.set( + l2GatewayMaps[i].toLowerCase(), + l1GatewayResults.get(l1Token[i])!.toLowerCase(), + ); + } + + //edge case: gateway registered on l1 while not on l2 + if (!(await checkMapResultByL2Gateway(gatewayMap, l2Multicaller))) { + exit(1); + } + + console.log('Successfully generate gateway map'); + return gatewayMap; +}; + +export const getL1GatewayAddress = async ( + l2GatewayAddress: string, + l2ToL1GatewayAddresses: Map, +) => { + return l2ToL1GatewayAddresses.get(l2GatewayAddress.toLowerCase()); +}; + +export const checkMapResultByL2Gateway = async ( + l2ToL1GatewayAddresses: Map, + l2Multicaller: MultiCaller, +) => { + const keys = l2ToL1GatewayAddresses.keys(); + const l2Gateways: string[] = [...keys]; + const l1Gateways = await getL1GatewayFromL2Gateway(l2Gateways, l2Multicaller); + for (let i = 0; i < l2Gateways.length; i++) { + if ( + l2ToL1GatewayAddresses.get(l2Gateways[i]) !== l1Gateways[i].toLowerCase() + ) { + console.log( + `Gateway map check invalid, invalid l2 gateway address is ` + + `${l2Gateways[i]}, invalid l1 gateway address is ${l1Gateways[i]}`, + ); + return false; + } + } + return true; +}; + +const getCallInput = ( + addr: string, + standardiFace: ethers.utils.Interface, +): CallInput => { + const { isArbOne, isGoerliRollup } = isNetwork(); + // The graph token (grt) doesn't use our standard interface, we should handle it as this: + if ( + (addr === '0x65e1a5e8946e7e87d9774f5288f41c30a99fd302' && isArbOne) || + (addr === `0xef2757855d2802ba53733901f90c91645973f743` && isGoerliRollup) + ) { + const iFace = new ethers.utils.Interface([ + 'function l1Counterpart() view returns (address)', + ]); + return { + encoder: () => iFace.encodeFunctionData('l1Counterpart'), + decoder: (returnData: string) => + iFace.decodeFunctionResult('l1Counterpart', returnData)[0] as string, + targetAddr: addr, + }; + } + return { + encoder: () => standardiFace.encodeFunctionData('counterpartGateway'), + decoder: (returnData: string) => + standardiFace.decodeFunctionResult( + 'counterpartGateway', + returnData, + )[0] as string, + targetAddr: addr, + }; +}; + +export const getL1GatewayFromL2Gateway = async ( + l2Gateways: string[], + l2Multicaller: MultiCaller, +): Promise => { + const iFace = L2GatewayRouter__factory.createInterface(); - if (l2Gateway) return l2Gateway; + const INC = 500; + let index = 0; + console.info( + 'getL1GatewayFromL2Gateway for', + l2Gateways.length, + 'l2 Gateways', + ); + + let l1Gateways: (string | undefined)[] = []; + + while (index < l2Gateways.length) { + console.log( + 'Getting tokens', + index, + 'through', + Math.min(index + INC, l2Gateways.length), + ); + + const l2GatewaySlice = l2Gateways.slice(index, index + INC); + const result = await l2Multicaller.multiCall( + l2GatewaySlice.map((addr) => getCallInput(addr, iFace)), + ); + l1Gateways = l1Gateways.concat(result); + index += INC; + } + for (const curr of l1Gateways) { + if (typeof curr === 'undefined') { + throw new Error('undefined l1 gateway!'); + } + } - return undefined; + return l1Gateways as string[]; }; export const getL2GatewayAddressesFromL1Token = async ( diff --git a/yarn.lock b/yarn.lock index ddee3230..059572fd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,7 @@ # yarn lockfile v1 -"@ampproject/remapping@^2.1.0": +"@ampproject/remapping@^2.2.0": version "2.2.0" resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== @@ -11,9 +11,9 @@ "@jridgewell/trace-mapping" "^0.3.9" "@arbitrum/sdk@^3.0.0": - version "3.0.0" - resolved "https://registry.yarnpkg.com/@arbitrum/sdk/-/sdk-3.0.0.tgz#a5dc48a00cb8c6e230a2c696c0e880a7f80c637d" - integrity sha512-Mws5WAxxirp3vk8JH3vyQ5H6q1NNUIAAGEd9oEnQYDMyTBHLKU293GA3s9w4w6ZfIq/RZq8YCexhy4D1R+mQng== + version "3.1.0" + resolved "https://registry.yarnpkg.com/@arbitrum/sdk/-/sdk-3.1.0.tgz#7673c31772cc93f6571448445d2657e43f6ef05c" + integrity sha512-pF/tTikxuCU23sVI0phH4/X7tQWwK1VCdK7VlgXzUM0CXpdm60+sKG61k7gKZPUmD6jfFMRo6MM7Gpmbmvsyng== dependencies: "@ethersproject/address" "^5.0.8" "@ethersproject/bignumber" "^5.1.1" @@ -28,38 +28,39 @@ "@babel/highlight" "^7.18.6" "@babel/compat-data@^7.20.5": - version "7.20.10" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.20.10.tgz#9d92fa81b87542fff50e848ed585b4212c1d34ec" - integrity sha512-sEnuDPpOJR/fcafHMjpcpGN5M2jbUGUHwmuWKM/YdPzeEDJg8bgmbcWQFUfE32MQjti1koACvoPVsDe8Uq+idg== + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.0.tgz#c241dc454e5b5917e40d37e525e2f4530c399298" + integrity sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g== "@babel/core@^7.11.6", "@babel/core@^7.12.3": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.20.12.tgz#7930db57443c6714ad216953d1356dac0eb8496d" - integrity sha512-XsMfHovsUYHFMdrIHkZphTN/2Hzzi78R08NuHfDBehym2VsPDL6Zn/JAD/JQdnRvbSsbQc4mVaU1m6JgtTEElg== + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.0.tgz#1341aefdcc14ccc7553fcc688dd8986a2daffc13" + integrity sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA== dependencies: - "@ampproject/remapping" "^2.1.0" + "@ampproject/remapping" "^2.2.0" "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" + "@babel/generator" "^7.21.0" "@babel/helper-compilation-targets" "^7.20.7" - "@babel/helper-module-transforms" "^7.20.11" - "@babel/helpers" "^7.20.7" - "@babel/parser" "^7.20.7" + "@babel/helper-module-transforms" "^7.21.0" + "@babel/helpers" "^7.21.0" + "@babel/parser" "^7.21.0" "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.12" - "@babel/types" "^7.20.7" + "@babel/traverse" "^7.21.0" + "@babel/types" "^7.21.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.2" semver "^6.3.0" -"@babel/generator@^7.20.7", "@babel/generator@^7.7.2": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.20.7.tgz#f8ef57c8242665c5929fe2e8d82ba75460187b4a" - integrity sha512-7wqMOJq8doJMZmP4ApXTzLxSr7+oO2jroJURrVEp6XShrQUObV8Tq/D0NCcoYg2uHqUrjzO0zwBjoYzelxK+sw== +"@babel/generator@^7.21.0", "@babel/generator@^7.21.1", "@babel/generator@^7.7.2": + version "7.21.1" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.1.tgz#951cc626057bc0af2c35cd23e9c64d384dea83dd" + integrity sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA== dependencies: - "@babel/types" "^7.20.7" + "@babel/types" "^7.21.0" "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" "@babel/helper-compilation-targets@^7.20.7": @@ -78,13 +79,13 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== -"@babel/helper-function-name@^7.19.0": - version "7.19.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c" - integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w== +"@babel/helper-function-name@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz#d552829b10ea9f120969304023cd0645fa00b1b4" + integrity sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg== dependencies: - "@babel/template" "^7.18.10" - "@babel/types" "^7.19.0" + "@babel/template" "^7.20.7" + "@babel/types" "^7.21.0" "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" @@ -100,10 +101,10 @@ dependencies: "@babel/types" "^7.18.6" -"@babel/helper-module-transforms@^7.20.11": - version "7.20.11" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.20.11.tgz#df4c7af713c557938c50ea3ad0117a7944b2f1b0" - integrity sha512-uRy78kN4psmji1s2QtbtcCSaj/LILFDp0f/ymhpQH5QY3nljUZCaNWz9X1dEj/8MBdBEFECs7yRhKn8i7NjZgg== +"@babel/helper-module-transforms@^7.21.0": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" + integrity sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ== dependencies: "@babel/helper-environment-visitor" "^7.18.9" "@babel/helper-module-imports" "^7.18.6" @@ -111,8 +112,8 @@ "@babel/helper-split-export-declaration" "^7.18.6" "@babel/helper-validator-identifier" "^7.19.1" "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.10" - "@babel/types" "^7.20.7" + "@babel/traverse" "^7.21.2" + "@babel/types" "^7.21.2" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0": version "7.20.2" @@ -144,18 +145,18 @@ integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== "@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" + integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== -"@babel/helpers@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.20.7.tgz#04502ff0feecc9f20ecfaad120a18f011a8e6dce" - integrity sha512-PBPjs5BppzsGaxHQCDKnZ6Gd9s6xl8bBCluz3vEInLGRJmnZan4F6BYCeqtyXqkk4W5IlPmjK4JlOuZkpJ3xZA== +"@babel/helpers@^7.21.0": + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.21.0.tgz#9dd184fb5599862037917cdc9eecb84577dc4e7e" + integrity sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA== dependencies: "@babel/template" "^7.20.7" - "@babel/traverse" "^7.20.7" - "@babel/types" "^7.20.7" + "@babel/traverse" "^7.21.0" + "@babel/types" "^7.21.0" "@babel/highlight@^7.18.6": version "7.18.6" @@ -166,10 +167,10 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.20.7.tgz#66fe23b3c8569220817d5feb8b9dcdc95bb4f71b" - integrity sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg== +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.0", "@babel/parser@^7.21.2": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.2.tgz#dacafadfc6d7654c3051a66d6fe55b6cb2f2a0b3" + integrity sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ== "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" @@ -270,13 +271,13 @@ "@babel/helper-plugin-utils" "^7.19.0" "@babel/runtime@^7.20.7": - version "7.20.13" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" - integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== + version "7.21.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.0.tgz#5b55c9d394e5fcf304909a8b00c07dc217b56673" + integrity sha512-xwII0//EObnq89Ji5AKYQaRYiW/nZ3llSv29d49IuxPhKbtJoLP+9QUUZ4nVragQVtaVGeZrpB+ZtG/Pdy/POw== dependencies: regenerator-runtime "^0.13.11" -"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.3.3": +"@babel/template@^7.20.7", "@babel/template@^7.3.3": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.20.7.tgz#a15090c2839a83b02aa996c0b4994005841fd5a8" integrity sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw== @@ -285,26 +286,26 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" -"@babel/traverse@^7.20.10", "@babel/traverse@^7.20.12", "@babel/traverse@^7.20.7", "@babel/traverse@^7.7.2": - version "7.20.12" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.20.12.tgz#7f0f787b3a67ca4475adef1f56cb94f6abd4a4b5" - integrity sha512-MsIbFN0u+raeja38qboyF8TIT7K0BFzz/Yd/77ta4MsUsmP2RAnidIlwq7d5HFQrH/OZJecGV6B71C4zAgpoSQ== +"@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.7.2": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.2.tgz#ac7e1f27658750892e815e60ae90f382a46d8e75" + integrity sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw== dependencies: "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.7" + "@babel/generator" "^7.21.1" "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-function-name" "^7.19.0" + "@babel/helper-function-name" "^7.21.0" "@babel/helper-hoist-variables" "^7.18.6" "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/parser" "^7.20.7" - "@babel/types" "^7.20.7" + "@babel/parser" "^7.21.2" + "@babel/types" "^7.21.2" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.19.0", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.3.0", "@babel/types@^7.3.3": - version "7.20.7" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.20.7.tgz#54ec75e252318423fc07fb644dc6a58a64c09b7f" - integrity sha512-69OnhBxSSgK0OzTJai4kyPDiKTIe3j+ctaHdIGVbRahTLAT7L3R9oeXHC2aVSuGYt3cVnoAMDmOCgJ2yaiLMvg== +"@babel/types@^7.0.0", "@babel/types@^7.18.6", "@babel/types@^7.20.2", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3": + version "7.21.2" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.2.tgz#92246f6e00f91755893c2876ad653db70c8310d1" + integrity sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw== dependencies: "@babel/helper-string-parser" "^7.19.4" "@babel/helper-validator-identifier" "^7.19.1" @@ -322,10 +323,10 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@eslint/eslintrc@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" - integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== +"@eslint/eslintrc@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.0.tgz#943309d8697c52fc82c076e90c1c74fbbe69dbff" + integrity sha512-fluIaaV+GyV24CCu/ggiHdV+j4RNh85yQnAYS/G2mZODZgGmmlrgCydjUcV3YvxCm9x8nMAfThsqTni4KiXT4A== dependencies: ajv "^6.12.4" debug "^4.3.2" @@ -337,6 +338,11 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@eslint/js@8.35.0": + version "8.35.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.35.0.tgz#b7569632b0b788a0ca0e438235154e45d42813a7" + integrity sha512-JXdzbRiWclLVoD8sNUjR443VVlYqiYmDVT6rGUEIEHU5YJW0gaVZwV2xgM7D4arkvASqD0IlLUVjHiFuxaftRw== + "@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" @@ -719,109 +725,109 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.3.1.tgz#3e3f876e4e47616ea3b1464b9fbda981872e9583" - integrity sha512-IRE6GD47KwcqA09RIWrabKdHPiKDGgtAL31xDxbi/RjQMsr+lY+ppxmHwY0dUEV3qvvxZzoe5Hl0RXZJOjQNUg== +"@jest/console@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.4.3.tgz#1f25a99f7f860e4c46423b5b1038262466fadde1" + integrity sha512-W/o/34+wQuXlgqlPYTansOSiBnuxrTv61dEVkA6HNmpcgHLUjfaUbdqt6oVvOzaawwo9IdW9QOtMgQ1ScSZC4A== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.3" "@types/node" "*" chalk "^4.0.0" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + jest-message-util "^29.4.3" + jest-util "^29.4.3" slash "^3.0.0" -"@jest/core@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.3.1.tgz#bff00f413ff0128f4debec1099ba7dcd649774a1" - integrity sha512-0ohVjjRex985w5MmO5L3u5GR1O30DexhBSpuwx2P+9ftyqHdJXnk7IUWiP80oHMvt7ubHCJHxV0a0vlKVuZirw== +"@jest/core@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.4.3.tgz#829dd65bffdb490de5b0f69e97de8e3b5eadd94b" + integrity sha512-56QvBq60fS4SPZCuM7T+7scNrkGIe7Mr6PVIXUpu48ouvRaWOFqRPV91eifvFM0ay2HmfswXiGf97NGUN5KofQ== dependencies: - "@jest/console" "^29.3.1" - "@jest/reporters" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.4.3" + "@jest/reporters" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/transform" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" ci-info "^3.2.0" exit "^0.1.2" graceful-fs "^4.2.9" - jest-changed-files "^29.2.0" - jest-config "^29.3.1" - jest-haste-map "^29.3.1" - jest-message-util "^29.3.1" - jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-resolve-dependencies "^29.3.1" - jest-runner "^29.3.1" - jest-runtime "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" - jest-watcher "^29.3.1" + jest-changed-files "^29.4.3" + jest-config "^29.4.3" + jest-haste-map "^29.4.3" + jest-message-util "^29.4.3" + jest-regex-util "^29.4.3" + jest-resolve "^29.4.3" + jest-resolve-dependencies "^29.4.3" + jest-runner "^29.4.3" + jest-runtime "^29.4.3" + jest-snapshot "^29.4.3" + jest-util "^29.4.3" + jest-validate "^29.4.3" + jest-watcher "^29.4.3" micromatch "^4.0.4" - pretty-format "^29.3.1" + pretty-format "^29.4.3" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.3.1.tgz#eb039f726d5fcd14698acd072ac6576d41cfcaa6" - integrity sha512-pMmvfOPmoa1c1QpfFW0nXYtNLpofqo4BrCIk6f2kW4JFeNlHV2t3vd+3iDLf31e2ot2Mec0uqZfmI+U0K2CFag== +"@jest/environment@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.4.3.tgz#9fe2f3169c3b33815dc4bd3960a064a83eba6548" + integrity sha512-dq5S6408IxIa+lr54zeqce+QgI+CJT4nmmA+1yzFgtcsGK8c/EyiUb9XQOgz3BMKrRDfKseeOaxj2eO8LlD3lA== dependencies: - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/fake-timers" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" - jest-mock "^29.3.1" + jest-mock "^29.4.3" -"@jest/expect-utils@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.3.1.tgz#531f737039e9b9e27c42449798acb5bba01935b6" - integrity sha512-wlrznINZI5sMjwvUoLVk617ll/UYfGIZNxmbU+Pa7wmkL4vYzhV9R2pwVqUh4NWWuLQWkI8+8mOkxs//prKQ3g== +"@jest/expect-utils@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.4.3.tgz#95ce4df62952f071bcd618225ac7c47eaa81431e" + integrity sha512-/6JWbkxHOP8EoS8jeeTd9dTfc9Uawi+43oLKHfp6zzux3U2hqOOVnV3ai4RpDYHOccL6g+5nrxpoc8DmJxtXVQ== dependencies: - jest-get-type "^29.2.0" + jest-get-type "^29.4.3" -"@jest/expect@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.3.1.tgz#456385b62894349c1d196f2d183e3716d4c6a6cd" - integrity sha512-QivM7GlSHSsIAWzgfyP8dgeExPRZ9BIe2LsdPyEhCGkZkoyA+kGsoIzbKAfZCvvRzfZioKwPtCZIt5SaoxYCvg== +"@jest/expect@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.4.3.tgz#d31a28492e45a6bcd0f204a81f783fe717045c6e" + integrity sha512-iktRU/YsxEtumI9zsPctYUk7ptpC+AVLLk1Ax3AsA4g1C+8OOnKDkIQBDHtD5hA/+VtgMd5AWI5gNlcAlt2vxQ== dependencies: - expect "^29.3.1" - jest-snapshot "^29.3.1" + expect "^29.4.3" + jest-snapshot "^29.4.3" -"@jest/fake-timers@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.3.1.tgz#b140625095b60a44de820876d4c14da1aa963f67" - integrity sha512-iHTL/XpnDlFki9Tq0Q1GGuVeQ8BHZGIYsvCO5eN/O/oJaRzofG9Xndd9HuSDBI/0ZS79pg0iwn07OMTQ7ngF2A== +"@jest/fake-timers@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.4.3.tgz#31e982638c60fa657d310d4b9d24e023064027b0" + integrity sha512-4Hote2MGcCTWSD2gwl0dwbCpBRHhE6olYEuTj8FMowdg3oQWNKr2YuxenPQYZ7+PfqPY1k98wKDU4Z+Hvd4Tiw== dependencies: - "@jest/types" "^29.3.1" - "@sinonjs/fake-timers" "^9.1.2" + "@jest/types" "^29.4.3" + "@sinonjs/fake-timers" "^10.0.2" "@types/node" "*" - jest-message-util "^29.3.1" - jest-mock "^29.3.1" - jest-util "^29.3.1" + jest-message-util "^29.4.3" + jest-mock "^29.4.3" + jest-util "^29.4.3" -"@jest/globals@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.3.1.tgz#92be078228e82d629df40c3656d45328f134a0c6" - integrity sha512-cTicd134vOcwO59OPaB6AmdHQMCtWOe+/DitpTZVxWgMJ+YvXL1HNAmPyiGbSHmF/mXVBkvlm8YYtQhyHPnV6Q== +"@jest/globals@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.4.3.tgz#63a2c4200d11bc6d46f12bbe25b07f771fce9279" + integrity sha512-8BQ/5EzfOLG7AaMcDh7yFCbfRLtsc+09E1RQmRBI4D6QQk4m6NSK/MXo+3bJrBN0yU8A2/VIcqhvsOLFmziioA== dependencies: - "@jest/environment" "^29.3.1" - "@jest/expect" "^29.3.1" - "@jest/types" "^29.3.1" - jest-mock "^29.3.1" + "@jest/environment" "^29.4.3" + "@jest/expect" "^29.4.3" + "@jest/types" "^29.4.3" + jest-mock "^29.4.3" -"@jest/reporters@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.3.1.tgz#9a6d78c109608e677c25ddb34f907b90e07b4310" - integrity sha512-GhBu3YFuDrcAYW/UESz1JphEAbvUjaY2vShRZRoRY1mxpCMB3yGSJ4j9n0GxVlEOdCf7qjvUfBCrTUUqhVfbRA== +"@jest/reporters@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.4.3.tgz#0a68a0c0f20554760cc2e5443177a0018969e353" + integrity sha512-sr2I7BmOjJhyqj9ANC6CTLsL4emMoka7HkQpcoMRlhCbQJjz2zsRzw0BDPiPyEFDXAbxKgGFYuQZiSJ1Y6YoTg== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/transform" "^29.4.3" + "@jest/types" "^29.4.3" "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" @@ -834,77 +840,77 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.3.1" - jest-util "^29.3.1" - jest-worker "^29.3.1" + jest-message-util "^29.4.3" + jest-util "^29.4.3" + jest-worker "^29.4.3" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.0.0": - version "29.0.0" - resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" - integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== +"@jest/schemas@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" + integrity sha512-VLYKXQmtmuEz6IxJsrZwzG9NvtkQsWNnWMsKxqWNu3+CnfzJQhp0WDDKWLVV9hLKr0l3SLLFRqcYHjhtyuDVxg== dependencies: - "@sinclair/typebox" "^0.24.1" + "@sinclair/typebox" "^0.25.16" -"@jest/source-map@^29.2.0": - version "29.2.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.2.0.tgz#ab3420c46d42508dcc3dc1c6deee0b613c235744" - integrity sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ== +"@jest/source-map@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.4.3.tgz#ff8d05cbfff875d4a791ab679b4333df47951d20" + integrity sha512-qyt/mb6rLyd9j1jUts4EQncvS6Yy3PM9HghnNv86QBlV+zdL2inCdK1tuVlL+J+lpiw2BI67qXOrX3UurBqQ1w== dependencies: "@jridgewell/trace-mapping" "^0.3.15" callsites "^3.0.0" graceful-fs "^4.2.9" -"@jest/test-result@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.3.1.tgz#92cd5099aa94be947560a24610aa76606de78f50" - integrity sha512-qeLa6qc0ddB0kuOZyZIhfN5q0e2htngokyTWsGriedsDhItisW7SDYZ7ceOe57Ii03sL988/03wAcBh3TChMGw== +"@jest/test-result@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.4.3.tgz#e13d973d16c8c7cc0c597082d5f3b9e7f796ccb8" + integrity sha512-Oi4u9NfBolMq9MASPwuWTlC5WvmNRwI4S8YrQg5R5Gi47DYlBe3sh7ILTqi/LGrK1XUE4XY9KZcQJTH1WJCLLA== dependencies: - "@jest/console" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.4.3" + "@jest/types" "^29.4.3" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.3.1.tgz#fa24b3b050f7a59d48f7ef9e0b782ab65123090d" - integrity sha512-IqYvLbieTv20ArgKoAMyhLHNrVHJfzO6ARZAbQRlY4UGWfdDnLlZEF0BvKOMd77uIiIjSZRwq3Jb3Fa3I8+2UA== +"@jest/test-sequencer@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.4.3.tgz#0862e876a22993385a0f3e7ea1cc126f208a2898" + integrity sha512-yi/t2nES4GB4G0mjLc0RInCq/cNr9dNwJxcGg8sslajua5Kb4kmozAc+qPLzplhBgfw1vLItbjyHzUN92UXicw== dependencies: - "@jest/test-result" "^29.3.1" + "@jest/test-result" "^29.4.3" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" + jest-haste-map "^29.4.3" slash "^3.0.0" -"@jest/transform@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.3.1.tgz#1e6bd3da4af50b5c82a539b7b1f3770568d6e36d" - integrity sha512-8wmCFBTVGYqFNLWfcOWoVuMuKYPUBTnTMDkdvFtAYELwDOl9RGwOsvQWGPFxDJ8AWY9xM/8xCXdqmPK3+Q5Lug== +"@jest/transform@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.4.3.tgz#f7d17eac9cb5bb2e1222ea199c7c7e0835e0c037" + integrity sha512-8u0+fBGWolDshsFgPQJESkDa72da/EVwvL+II0trN2DR66wMwiQ9/CihaGfHdlLGFzbBZwMykFtxuwFdZqlKwg== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.3" "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" - jest-regex-util "^29.2.0" - jest-util "^29.3.1" + jest-haste-map "^29.4.3" + jest-regex-util "^29.4.3" + jest-util "^29.4.3" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" - write-file-atomic "^4.0.1" + write-file-atomic "^4.0.2" -"@jest/types@^29.3.1": - version "29.3.1" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.3.1.tgz#7c5a80777cb13e703aeec6788d044150341147e3" - integrity sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA== +"@jest/types@^29.4.3": + version "29.4.3" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.4.3.tgz#9069145f4ef09adf10cec1b2901b2d390031431f" + integrity sha512-bPYfw8V65v17m2Od1cv44FH+SiKW7w2Xu7trhcdTLUmSv85rfKsP+qXSjO4KGJr4dtPSzl/gvslZBXctf1qGEA== dependencies: - "@jest/schemas" "^29.0.0" + "@jest/schemas" "^29.4.3" "@types/istanbul-lib-coverage" "^2.0.0" "@types/istanbul-reports" "^3.0.0" "@types/node" "*" @@ -951,7 +957,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": version "0.3.17" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== @@ -990,24 +996,24 @@ resolved "https://registry.yarnpkg.com/@offchainlabs/prettier-config/-/prettier-config-0.2.0.tgz#7b349a94772655ccca366c43d639839ad5267be4" integrity sha512-6ArtT+Uwin/EjNJk3+KQ+zbl2pWwvCSifjy1NfQa/seOsRwJNiRywjBA6EXEXc+om/MMCNwc8t1MaxFBDpaMXw== -"@sinclair/typebox@^0.24.1": - version "0.24.51" - resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" - integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA== +"@sinclair/typebox@^0.25.16": + version "0.25.24" + resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.25.24.tgz#8c7688559979f7079aacaf31aa881c3aa410b718" + integrity sha512-XJfwUVUKDHF5ugKwIcxEgc9k8b7HbznCp6eUfWgu710hMPNIO4aw4/zB5RogDQz8nd6gyCDpU9O/m6qYEWY6yQ== -"@sinonjs/commons@^1.7.0": - version "1.8.6" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" - integrity sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ== +"@sinonjs/commons@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" + integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^9.1.2": - version "9.1.2" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c" - integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw== +"@sinonjs/fake-timers@^10.0.2": + version "10.0.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.0.2.tgz#d10549ed1f423d80639c528b6c7f5a1017747d0c" + integrity sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw== dependencies: - "@sinonjs/commons" "^1.7.0" + "@sinonjs/commons" "^2.0.0" "@tsconfig/node10@^1.0.7": version "1.0.9" @@ -1030,12 +1036,12 @@ integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== "@types/babel__core@^7.1.14": - version "7.1.20" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.20.tgz#e168cdd612c92a2d335029ed62ac94c95b362359" - integrity sha512-PVb6Bg2QuscZ30FvOU7z4guG6c926D9YRvOxEaelzndpMsvP+YM74Q/dAFASpg2l6+XLalxSGxcq/lrgYWZtyQ== + version "7.20.0" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.0.tgz#61bc5a4cae505ce98e1e36c5445e4bee060d8891" + integrity sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ== dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" "@types/babel__generator" "*" "@types/babel__template" "*" "@types/babel__traverse" "*" @@ -1089,9 +1095,9 @@ "@types/istanbul-lib-report" "*" "@types/jest@^29.2.5": - version "29.2.5" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.2.5.tgz#c27f41a9d6253f288d1910d3c5f09484a56b73c0" - integrity sha512-H2cSxkKgVmqNHXP7TC2L/WUorrZu8ZigyRywfVzv6EyBlxj39n4C00hjXYQWsbwqgElaj/CiAeSRmk5GoaKTgw== + version "29.4.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.4.0.tgz#a8444ad1704493e84dbf07bb05990b275b3b9206" + integrity sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ== dependencies: expect "^29.0.0" pretty-format "^29.0.0" @@ -1102,14 +1108,14 @@ integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== "@types/node@*": - version "18.11.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" - integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== + version "18.14.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.14.2.tgz#c076ed1d7b6095078ad3cf21dfeea951842778b1" + integrity sha512-1uEQxww3DaghA0RxqHx0O0ppVlo43pJhepY51OxuQIKHpjbnYLA7vcdwioNPzIqmC2u3I/dmylcqjlh0e7AyUA== "@types/node@^16.11.1": - version "16.18.11" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.11.tgz#cbb15c12ca7c16c85a72b6bdc4d4b01151bb3cae" - integrity sha512-3oJbGBUWuS6ahSnEq1eN2XrCyf4YsWI8OyCvo7c64zQJNplk3mO84t53o8lfTk+2ji59g5ycfc6qQ3fdHliHuA== + version "16.18.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.13.tgz#c572f8837094c6e3b73918a68674c784f6877fc0" + integrity sha512-l0/3XZ153UTlNOnZK8xSNoJlQda9/WnYgiTdcKKPJSZjdjI9MU+A9oMXOesAWLSnqAaaJhj3qfQsU07Dr8OUwg== "@types/prettier@^2.1.5": version "2.7.2" @@ -1132,20 +1138,20 @@ integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== "@types/yargs@^17.0.4", "@types/yargs@^17.0.8": - version "17.0.19" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.19.tgz#8dbecdc9ab48bee0cb74f6e3327de3fa0d0c98ae" - integrity sha512-cAx3qamwaYX9R0fzOIZAlFpo4A+1uBVCxqpKz9D26uTF4srRXaGTTsikQmaotCtNdbhzyUH7ft6p9ktz9s6UNQ== + version "17.0.22" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.22.tgz#7dd37697691b5f17d020f3c63e7a45971ff71e9a" + integrity sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g== dependencies: "@types/yargs-parser" "*" "@typescript-eslint/eslint-plugin@^5.48.2": - version "5.50.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.50.0.tgz#fb48c31cadc853ffc1dc35373f56b5e2a8908fe9" - integrity sha512-vwksQWSFZiUhgq3Kv7o1Jcj0DUNylwnIlGvKvLLYsq8pAWha6/WCnXUeaSoNNha/K7QSf2+jvmkxggC1u3pIwQ== + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.53.0.tgz#24b8b4a952f3c615fe070e3c461dd852b5056734" + integrity sha512-alFpFWNucPLdUOySmXCJpzr6HKC3bu7XooShWM+3w/EL6J2HIoB2PFxpLnq4JauWVk6DiVeNKzQlFEaE+X9sGw== dependencies: - "@typescript-eslint/scope-manager" "5.50.0" - "@typescript-eslint/type-utils" "5.50.0" - "@typescript-eslint/utils" "5.50.0" + "@typescript-eslint/scope-manager" "5.53.0" + "@typescript-eslint/type-utils" "5.53.0" + "@typescript-eslint/utils" "5.53.0" debug "^4.3.4" grapheme-splitter "^1.0.4" ignore "^5.2.0" @@ -1155,71 +1161,71 @@ tsutils "^3.21.0" "@typescript-eslint/parser@^5.48.2": - version "5.50.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.50.0.tgz#a33f44b2cc83d1b7176ec854fbecd55605b0b032" - integrity sha512-KCcSyNaogUDftK2G9RXfQyOCt51uB5yqC6pkUYqhYh8Kgt+DwR5M0EwEAxGPy/+DH6hnmKeGsNhiZRQxjH71uQ== + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.53.0.tgz#a1f2b9ae73b83181098747e96683f1b249ecab52" + integrity sha512-MKBw9i0DLYlmdOb3Oq/526+al20AJZpANdT6Ct9ffxcV8nKCHz63t/S0IhlTFNsBIHJv+GY5SFJ0XfqVeydQrQ== dependencies: - "@typescript-eslint/scope-manager" "5.50.0" - "@typescript-eslint/types" "5.50.0" - "@typescript-eslint/typescript-estree" "5.50.0" + "@typescript-eslint/scope-manager" "5.53.0" + "@typescript-eslint/types" "5.53.0" + "@typescript-eslint/typescript-estree" "5.53.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.50.0": - version "5.50.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.50.0.tgz#90b8a3b337ad2c52bbfe4eac38f9164614e40584" - integrity sha512-rt03kaX+iZrhssaT974BCmoUikYtZI24Vp/kwTSy841XhiYShlqoshRFDvN1FKKvU2S3gK+kcBW1EA7kNUrogg== +"@typescript-eslint/scope-manager@5.53.0": + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.53.0.tgz#42b54f280e33c82939275a42649701024f3fafef" + integrity sha512-Opy3dqNsp/9kBBeCPhkCNR7fmdSQqA+47r21hr9a14Bx0xnkElEQmhoHga+VoaoQ6uDHjDKmQPIYcUcKJifS7w== dependencies: - "@typescript-eslint/types" "5.50.0" - "@typescript-eslint/visitor-keys" "5.50.0" + "@typescript-eslint/types" "5.53.0" + "@typescript-eslint/visitor-keys" "5.53.0" -"@typescript-eslint/type-utils@5.50.0": - version "5.50.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.50.0.tgz#509d5cc9728d520008f7157b116a42c5460e7341" - integrity sha512-dcnXfZ6OGrNCO7E5UY/i0ktHb7Yx1fV6fnQGGrlnfDhilcs6n19eIRcvLBqx6OQkrPaFlDPk3OJ0WlzQfrV0bQ== +"@typescript-eslint/type-utils@5.53.0": + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.53.0.tgz#41665449935ba9b4e6a1ba6e2a3f4b2c31d6cf97" + integrity sha512-HO2hh0fmtqNLzTAme/KnND5uFNwbsdYhCZghK2SoxGp3Ifn2emv+hi0PBUjzzSh0dstUIFqOj3bp0AwQlK4OWw== dependencies: - "@typescript-eslint/typescript-estree" "5.50.0" - "@typescript-eslint/utils" "5.50.0" + "@typescript-eslint/typescript-estree" "5.53.0" + "@typescript-eslint/utils" "5.53.0" debug "^4.3.4" tsutils "^3.21.0" -"@typescript-eslint/types@5.50.0": - version "5.50.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.50.0.tgz#c461d3671a6bec6c2f41f38ed60bd87aa8a30093" - integrity sha512-atruOuJpir4OtyNdKahiHZobPKFvZnBnfDiyEaBf6d9vy9visE7gDjlmhl+y29uxZ2ZDgvXijcungGFjGGex7w== +"@typescript-eslint/types@5.53.0": + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.53.0.tgz#f79eca62b97e518ee124086a21a24f3be267026f" + integrity sha512-5kcDL9ZUIP756K6+QOAfPkigJmCPHcLN7Zjdz76lQWWDdzfOhZDTj1irs6gPBKiXx5/6O3L0+AvupAut3z7D2A== -"@typescript-eslint/typescript-estree@5.50.0": - version "5.50.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.50.0.tgz#0b9b82975bdfa40db9a81fdabc7f93396867ea97" - integrity sha512-Gq4zapso+OtIZlv8YNAStFtT6d05zyVCK7Fx3h5inlLBx2hWuc/0465C2mg/EQDDU2LKe52+/jN4f0g9bd+kow== +"@typescript-eslint/typescript-estree@5.53.0": + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.53.0.tgz#bc651dc28cf18ab248ecd18a4c886c744aebd690" + integrity sha512-eKmipH7QyScpHSkhbptBBYh9v8FxtngLquq292YTEQ1pxVs39yFBlLC1xeIZcPPz1RWGqb7YgERJRGkjw8ZV7w== dependencies: - "@typescript-eslint/types" "5.50.0" - "@typescript-eslint/visitor-keys" "5.50.0" + "@typescript-eslint/types" "5.53.0" + "@typescript-eslint/visitor-keys" "5.53.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/utils@5.50.0", "@typescript-eslint/utils@^5.10.0": - version "5.50.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.50.0.tgz#807105f5ffb860644d30d201eefad7017b020816" - integrity sha512-v/AnUFImmh8G4PH0NDkf6wA8hujNNcrwtecqW4vtQ1UOSNBaZl49zP1SHoZ/06e+UiwzHpgb5zP5+hwlYYWYAw== +"@typescript-eslint/utils@5.53.0", "@typescript-eslint/utils@^5.10.0": + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.53.0.tgz#e55eaad9d6fffa120575ffaa530c7e802f13bce8" + integrity sha512-VUOOtPv27UNWLxFwQK/8+7kvxVC+hPHNsJjzlJyotlaHjLSIgOCKj9I0DBUjwOOA64qjBwx5afAPjksqOxMO0g== dependencies: "@types/json-schema" "^7.0.9" "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.50.0" - "@typescript-eslint/types" "5.50.0" - "@typescript-eslint/typescript-estree" "5.50.0" + "@typescript-eslint/scope-manager" "5.53.0" + "@typescript-eslint/types" "5.53.0" + "@typescript-eslint/typescript-estree" "5.53.0" eslint-scope "^5.1.1" eslint-utils "^3.0.0" semver "^7.3.7" -"@typescript-eslint/visitor-keys@5.50.0": - version "5.50.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.50.0.tgz#b752ffc143841f3d7bc57d6dd01ac5c40f8c4903" - integrity sha512-cdMeD9HGu6EXIeGOh2yVW6oGf9wq8asBgZx7nsR/D36gTfQ0odE5kcRYe5M81vjEFAcPeugXrHg78Imu55F6gg== +"@typescript-eslint/visitor-keys@5.53.0": + version "5.53.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.53.0.tgz#8a5126623937cdd909c30d8fa72f79fa56cc1a9f" + integrity sha512-JqNLnX3leaHFZEN0gCh81sIvgrp/2GOACZNgO4+Tkf64u51kTpAyWFOY8XHx8XuXr3N2C9zgPPHtcpMg6z1g0w== dependencies: - "@typescript-eslint/types" "5.50.0" + "@typescript-eslint/types" "5.53.0" eslint-visitor-keys "^3.3.0" "@uniswap/token-lists@^1.0.0-beta.31": @@ -1238,9 +1244,9 @@ acorn-walk@^8.1.1: integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== acorn@^8.4.1, acorn@^8.8.0: - version "8.8.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" - integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== aes-js@3.0.0: version "3.0.0" @@ -1394,12 +1400,14 @@ axe-core@^4.6.2: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== -axios@^0.23.0: - version "0.23.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-0.23.0.tgz#b0fa5d0948a8d1d75e3d5635238b6c4625b05149" - integrity sha512-NmvAE4i0YAv5cKq8zlDoPd1VLKAqX5oLuZKs8xkJa4qi6RGn0uhCYFjWtHHC9EM/MwOwYWOs53W+V0aqEXq1sg== +axios@^1.1.3: + version "1.3.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.3.4.tgz#f5760cefd9cfb51fd2481acf88c05f67c4523024" + integrity sha512-toYm+Bsyl6VC5wSkfkbbNB6ROv7KY93PEBBL6xyDczaIHasAiv4wPqQ/c4RjoQzipxRD2W5g21cOqQulZ7rHwQ== dependencies: - follow-redirects "^1.14.4" + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" axobject-query@^3.1.1: version "3.1.1" @@ -1408,15 +1416,15 @@ axobject-query@^3.1.1: dependencies: deep-equal "^2.0.5" -babel-jest@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.3.1.tgz#05c83e0d128cd48c453eea851482a38782249f44" - integrity sha512-aard+xnMoxgjwV70t0L6wkW/3HQQtV+O0PEimxKgzNqCJnbYmroPojdP2tqKSOAt8QAKV/uSZU8851M7B5+fcA== +babel-jest@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.4.3.tgz#478b84d430972b277ad67dd631be94abea676792" + integrity sha512-o45Wyn32svZE+LnMVWv/Z4x0SwtLbh4FyGcYtR20kIWd+rdrDZ9Fzq8Ml3MYLD+mZvEdzCjZsCnYZ2jpJyQ+Nw== dependencies: - "@jest/transform" "^29.3.1" + "@jest/transform" "^29.4.3" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.2.0" + babel-preset-jest "^29.4.3" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -1432,10 +1440,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz#23ee99c37390a98cfddf3ef4a78674180d823094" - integrity sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA== +babel-plugin-jest-hoist@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.4.3.tgz#ad1dfb5d31940957e00410ef7d9b2aa94b216101" + integrity sha512-mB6q2q3oahKphy5V7CpnNqZOCkxxZ9aokf1eh82Dy3jQmg4xvM1tGrh5y6BQUJh4a3Pj9+eLfwvAZ7VNKg7H8Q== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -1460,12 +1468,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz#3048bea3a1af222e3505e4a767a974c95a7620dc" - integrity sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA== +babel-preset-jest@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.4.3.tgz#bb926b66ae253b69c6e3ef87511b8bb5c53c5b52" + integrity sha512-gWx6COtSuma6n9bw+8/F+2PCXrIgxV/D1TJFnp6OyBK2cxPWg0K9p/sriNYeifKjpUkMViWQ09DSWtzJQRETsw== dependencies: - babel-plugin-jest-hoist "^29.2.0" + babel-plugin-jest-hoist "^29.4.3" babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: @@ -1520,14 +1528,14 @@ brorand@^1.1.0: integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== browserslist@^4.21.3: - version "4.21.4" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== + version "4.21.5" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.5.tgz#75c5dae60063ee641f977e00edd3cfb2fb7af6a7" + integrity sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w== dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" + caniuse-lite "^1.0.30001449" + electron-to-chromium "^1.4.284" + node-releases "^2.0.8" + update-browserslist-db "^1.0.10" bs-logger@0.x: version "0.2.6" @@ -1571,10 +1579,10 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001400: - version "1.0.30001445" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001445.tgz#cf2d4eb93f2bcdf0310de9dd6d18be271bc0b447" - integrity sha512-8sdQIdMztYmzfTMO6KfLny878Ln9c2M0fc7EH60IjlP4Dc4PiCy7K2Vl3ITmWgOyPgVQKa5x+UP/KqFsxj4mBg== +caniuse-lite@^1.0.30001449: + version "1.0.30001458" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz#871e35866b4654a7d25eccca86864f411825540c" + integrity sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w== chalk@^2.0.0: version "2.4.2" @@ -1599,9 +1607,9 @@ char-regex@^1.0.2: integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== ci-info@^3.2.0: - version "3.7.1" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.7.1.tgz#708a6cdae38915d597afdf3b145f2f8e1ff55f3f" - integrity sha512-4jYS4MOAaCIStSRwiuxc4B8MYhIe676yO1sYGzARnjXkWpmzZMMYxY6zu8WYWDhSuth5zhrQ1rhNSibyyvv4/w== + version "3.8.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.8.0.tgz#81408265a5380c929f0bc665d62256628ce9ef91" + integrity sha512-eXTggHWSooYhq49F2opQhuHWgzucfF2YgODK4e1566GQs5BIfP30B0oenwBJHfWxAs2fyPB1s7Mg949zLf61Yw== cjs-module-lexer@^1.0.0: version "1.2.2" @@ -1740,14 +1748,14 @@ deep-is@^0.1.3: integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== deepmerge@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" - integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + version "4.3.0" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.0.tgz#65491893ec47756d44719ae520e0e2609233b59b" + integrity sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og== define-properties@^1.1.3, define-properties@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" - integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== dependencies: has-property-descriptors "^1.0.0" object-keys "^1.1.1" @@ -1762,10 +1770,10 @@ detect-newline@^3.0.0: resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.3.1.tgz#104b5b95fe725932421a9c6e5b4bef84c3f2249e" - integrity sha512-hlM3QR272NXCi4pq+N4Kok4kOp6EsgOM3ZSpJI7Da3UAs+Ttsi8MRmB6trM/lhyzUxGfOgnpkHtgqm5Q/CTcfQ== +diff-sequences@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.4.3.tgz#9314bc1fabe09267ffeca9cbafc457d8499a13f2" + integrity sha512-ofrBgwpPhCD85kMKtE9RYFFq6OC1A89oW2vvgWZNCwxrUpRUILopY7lsYyMDSjc8g6U6aiO0Qubg6r4Wgt5ZnA== diff@^4.0.1: version "4.0.2" @@ -1803,10 +1811,10 @@ dotenv@^16.0.3: resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== -electron-to-chromium@^1.4.251: - version "1.4.284" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" - integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== +electron-to-chromium@^1.4.284: + version "1.4.311" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.311.tgz#953bc9a4767f5ce8ec125f9a1ad8e00e8f67e479" + integrity sha512-RoDlZufvrtr2Nx3Yx5MB8jX3aHIxm8nRWPJm3yVvyHmyKaRvn90RjzB6hNnt0AkhS3IInJdyRfQb4mWhPvUjVw== elliptic@6.5.4: version "6.5.4" @@ -2043,11 +2051,12 @@ eslint-visitor-keys@^3.3.0: integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA== eslint@^8.32.0: - version "8.33.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.33.0.tgz#02f110f32998cb598c6461f24f4d306e41ca33d7" - integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA== + version "8.35.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.35.0.tgz#fffad7c7e326bae606f0e8f436a6158566d42323" + integrity sha512-BxAf1fVL7w+JLRQhWl2pzGeSiGqbWumV4WNvc9Rhp6tiCtm4oHnyPBSEtMGZwrQgudFQ+otqzWoPB7x+hxoWsw== dependencies: - "@eslint/eslintrc" "^1.4.1" + "@eslint/eslintrc" "^2.0.0" + "@eslint/js" "8.35.0" "@humanwhocodes/config-array" "^0.11.8" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" @@ -2061,7 +2070,7 @@ eslint@^8.32.0: eslint-utils "^3.0.0" eslint-visitor-keys "^3.3.0" espree "^9.4.0" - esquery "^1.4.0" + esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" @@ -2101,10 +2110,10 @@ esprima@^4.0.0: resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" - integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== +esquery@^1.4.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.2.tgz#c6d3fee05dd665808e2ad870631f221f5617b1d1" + integrity sha512-JVSoLdTlTDkmjFmab7H/9SL9qGSyjElT3myyKp7krqjVFQCDLmj1QFaCLRFBszBKI0XVZaiiXvuPIX3ZwHe1Ng== dependencies: estraverse "^5.1.0" @@ -2186,16 +2195,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^29.0.0, expect@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/expect/-/expect-29.3.1.tgz#92877aad3f7deefc2e3f6430dd195b92295554a6" - integrity sha512-gGb1yTgU30Q0O/tQq+z30KBWv24ApkMgFUpvKBkyLUBL68Wv8dHdJxTBZFl/iT8K/bqDHvUYRH6IIN3rToopPA== +expect@^29.0.0, expect@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.4.3.tgz#5e47757316df744fe3b8926c3ae8a3ebdafff7fe" + integrity sha512-uC05+Q7eXECFpgDrHdXA4k2rpMyStAYPItEDLyQDo5Ta7fVkJnNA/4zh/OIVkVVNZ1oOK1PipQoyNjuZ6sz6Dg== dependencies: - "@jest/expect-utils" "^29.3.1" - jest-get-type "^29.2.0" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + "@jest/expect-utils" "^29.4.3" + jest-get-type "^29.4.3" + jest-matcher-utils "^29.4.3" + jest-message-util "^29.4.3" + jest-util "^29.4.3" extract-files@^9.0.0: version "9.0.0" @@ -2290,7 +2299,7 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== -follow-redirects@^1.14.4: +follow-redirects@^1.15.0: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== @@ -2311,6 +2320,15 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -2351,7 +2369,7 @@ get-caller-file@^2.0.5: resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== @@ -2410,9 +2428,9 @@ globals@^11.1.0: integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.19.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.19.0.tgz#7a42de8e6ad4f7242fbcca27ea5b23aca367b5c8" - integrity sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ== + version "13.20.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" + integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== dependencies: type-fest "^0.20.2" @@ -2579,11 +2597,11 @@ inherits@2, inherits@^2.0.3, inherits@^2.0.4: integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== internal-slot@^1.0.3, internal-slot@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.4.tgz#8551e7baf74a7a6ba5f749cfb16aa60722f0d6f3" - integrity sha512-tA8URYccNzMo94s5MQZgH8NB/XTa6HsOo0MLfXTKKEnHVVdegzaQoFZ7Jp44bdvLvY2waT5dc+j5ICEswhi7UQ== + version "1.0.5" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== dependencies: - get-intrinsic "^1.1.3" + get-intrinsic "^1.2.0" has "^1.0.3" side-channel "^1.0.4" @@ -2814,283 +2832,283 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289" - integrity sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA== +jest-changed-files@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.4.3.tgz#7961fe32536b9b6d5c28dfa0abcfab31abcf50a7" + integrity sha512-Vn5cLuWuwmi2GNNbokPOEcvrXGSGrqVnPEZV7rC6P7ck07Dyw9RFnvWglnupSh+hGys0ajGtw/bc2ZgweljQoQ== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.3.1.tgz#177d07c5c0beae8ef2937a67de68f1e17bbf1b4a" - integrity sha512-wpr26sEvwb3qQQbdlmei+gzp6yoSSoSL6GsLPxnuayZSMrSd5Ka7IjAvatpIernBvT2+Ic6RLTg+jSebScmasg== +jest-circus@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.4.3.tgz#fff7be1cf5f06224dd36a857d52a9efeb005ba04" + integrity sha512-Vw/bVvcexmdJ7MLmgdT3ZjkJ3LKu8IlpefYokxiqoZy6OCQ2VAm6Vk3t/qHiAGUXbdbJKJWnc8gH3ypTbB/OBw== dependencies: - "@jest/environment" "^29.3.1" - "@jest/expect" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/environment" "^29.4.3" + "@jest/expect" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^29.3.1" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-runtime "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" + jest-each "^29.4.3" + jest-matcher-utils "^29.4.3" + jest-message-util "^29.4.3" + jest-runtime "^29.4.3" + jest-snapshot "^29.4.3" + jest-util "^29.4.3" p-limit "^3.1.0" - pretty-format "^29.3.1" + pretty-format "^29.4.3" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.3.1.tgz#e89dff427db3b1df50cea9a393ebd8640790416d" - integrity sha512-TO/ewvwyvPOiBBuWZ0gm04z3WWP8TIK8acgPzE4IxgsLKQgb377NYGrQLc3Wl/7ndWzIH2CDNNsUjGxwLL43VQ== +jest-cli@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.4.3.tgz#fe31fdd0c90c765f392b8b7c97e4845071cd2163" + integrity sha512-PiiAPuFNfWWolCE6t3ZrDXQc6OsAuM3/tVW0u27UWc1KE+n/HSn5dSE6B2juqN7WP+PP0jAcnKtGmI4u8GMYCg== dependencies: - "@jest/core" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/core" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/types" "^29.4.3" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-config "^29.4.3" + jest-util "^29.4.3" + jest-validate "^29.4.3" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.3.1.tgz#0bc3dcb0959ff8662957f1259947aedaefb7f3c6" - integrity sha512-y0tFHdj2WnTEhxmGUK1T7fgLen7YK4RtfvpLFBXfQkh2eMJAQq24Vx9472lvn5wg0MAO6B+iPfJfzdR9hJYalg== +jest-config@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.4.3.tgz#fca9cdfe6298ae6d04beef1624064d455347c978" + integrity sha512-eCIpqhGnIjdUCXGtLhz4gdDoxKSWXKjzNcc5r+0S1GKOp2fwOipx5mRcwa9GB/ArsxJ1jlj2lmlD9bZAsBxaWQ== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.3.1" - "@jest/types" "^29.3.1" - babel-jest "^29.3.1" + "@jest/test-sequencer" "^29.4.3" + "@jest/types" "^29.4.3" + babel-jest "^29.4.3" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^29.3.1" - jest-environment-node "^29.3.1" - jest-get-type "^29.2.0" - jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-runner "^29.3.1" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-circus "^29.4.3" + jest-environment-node "^29.4.3" + jest-get-type "^29.4.3" + jest-regex-util "^29.4.3" + jest-resolve "^29.4.3" + jest-runner "^29.4.3" + jest-util "^29.4.3" + jest-validate "^29.4.3" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^29.3.1" + pretty-format "^29.4.3" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.3.1.tgz#d8215b72fed8f1e647aed2cae6c752a89e757527" - integrity sha512-vU8vyiO7568tmin2lA3r2DP8oRvzhvRcD4DjpXc6uGveQodyk7CKLhQlCSiwgx3g0pFaE88/KLZ0yaTWMc4Uiw== +jest-diff@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.4.3.tgz#42f4eb34d0bf8c0fb08b0501069b87e8e84df347" + integrity sha512-YB+ocenx7FZ3T5O9lMVMeLYV4265socJKtkwgk/6YUz/VsEzYDkiMuMhWzZmxm3wDRQvayJu/PjkjjSkjoHsCA== dependencies: chalk "^4.0.0" - diff-sequences "^29.3.1" - jest-get-type "^29.2.0" - pretty-format "^29.3.1" + diff-sequences "^29.4.3" + jest-get-type "^29.4.3" + pretty-format "^29.4.3" -jest-docblock@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.2.0.tgz#307203e20b637d97cee04809efc1d43afc641e82" - integrity sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A== +jest-docblock@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.4.3.tgz#90505aa89514a1c7dceeac1123df79e414636ea8" + integrity sha512-fzdTftThczeSD9nZ3fzA/4KkHtnmllawWrXO69vtI+L9WjEIuXWs4AmyME7lN5hU7dB0sHhuPfcKofRsUb/2Fg== dependencies: detect-newline "^3.0.0" -jest-each@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.3.1.tgz#bc375c8734f1bb96625d83d1ca03ef508379e132" - integrity sha512-qrZH7PmFB9rEzCSl00BWjZYuS1BSOH8lLuC0azQE9lQrAx3PWGKHTDudQiOSwIy5dGAJh7KA0ScYlCP7JxvFYA== +jest-each@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.4.3.tgz#a434c199a2f6151c5e3dc80b2d54586bdaa72819" + integrity sha512-1ElHNAnKcbJb/b+L+7j0/w7bDvljw4gTv1wL9fYOczeJrbTbkMGQ5iQPFJ3eFQH19VPTx1IyfePdqSpePKss7Q== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.3" chalk "^4.0.0" - jest-get-type "^29.2.0" - jest-util "^29.3.1" - pretty-format "^29.3.1" - -jest-environment-node@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.3.1.tgz#5023b32472b3fba91db5c799a0d5624ad4803e74" - integrity sha512-xm2THL18Xf5sIHoU7OThBPtuH6Lerd+Y1NLYiZJlkE3hbE+7N7r8uvHIl/FkZ5ymKXJe/11SQuf3fv4v6rUMag== - dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/types" "^29.3.1" + jest-get-type "^29.4.3" + jest-util "^29.4.3" + pretty-format "^29.4.3" + +jest-environment-node@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.4.3.tgz#579c4132af478befc1889ddc43c2413a9cdbe014" + integrity sha512-gAiEnSKF104fsGDXNkwk49jD/0N0Bqu2K9+aMQXA6avzsA9H3Fiv1PW2D+gzbOSR705bWd2wJZRFEFpV0tXISg== + dependencies: + "@jest/environment" "^29.4.3" + "@jest/fake-timers" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" - jest-mock "^29.3.1" - jest-util "^29.3.1" + jest-mock "^29.4.3" + jest-util "^29.4.3" -jest-get-type@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408" - integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA== +jest-get-type@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.4.3.tgz#1ab7a5207c995161100b5187159ca82dd48b3dd5" + integrity sha512-J5Xez4nRRMjk8emnTpWrlkyb9pfRQQanDrvWHhsR1+VUfbwxi30eVcZFlcdGInRibU4G5LwHXpI7IRHU0CY+gg== -jest-haste-map@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.3.1.tgz#af83b4347f1dae5ee8c2fb57368dc0bb3e5af843" - integrity sha512-/FFtvoG1xjbbPXQLFef+WSU4yrc0fc0Dds6aRPBojUid7qlPqZvxdUBA03HW0fnVHXVCnCdkuoghYItKNzc/0A== +jest-haste-map@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.4.3.tgz#085a44283269e7ace0645c63a57af0d2af6942e2" + integrity sha512-eZIgAS8tvm5IZMtKlR8Y+feEOMfo2pSQkmNbufdbMzMSn9nitgGxF1waM/+LbryO3OkMcKS98SUb+j/cQxp/vQ== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.3" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^29.2.0" - jest-util "^29.3.1" - jest-worker "^29.3.1" + jest-regex-util "^29.4.3" + jest-util "^29.4.3" + jest-worker "^29.4.3" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.3.1.tgz#95336d020170671db0ee166b75cd8ef647265518" - integrity sha512-3DA/VVXj4zFOPagGkuqHnSQf1GZBmmlagpguxEERO6Pla2g84Q1MaVIB3YMxgUaFIaYag8ZnTyQgiZ35YEqAQA== +jest-leak-detector@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.4.3.tgz#2b35191d6b35aa0256e63a9b79b0f949249cf23a" + integrity sha512-9yw4VC1v2NspMMeV3daQ1yXPNxMgCzwq9BocCwYrRgXe4uaEJPAN0ZK37nFBhcy3cUwEVstFecFLaTHpF7NiGA== dependencies: - jest-get-type "^29.2.0" - pretty-format "^29.3.1" + jest-get-type "^29.4.3" + pretty-format "^29.4.3" -jest-matcher-utils@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.3.1.tgz#6e7f53512f80e817dfa148672bd2d5d04914a572" - integrity sha512-fkRMZUAScup3txIKfMe3AIZZmPEjWEdsPJFK3AIy5qRohWqQFg1qrmKfYXR9qEkNc7OdAu2N4KPHibEmy4HPeQ== +jest-matcher-utils@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.4.3.tgz#ea68ebc0568aebea4c4213b99f169ff786df96a0" + integrity sha512-TTciiXEONycZ03h6R6pYiZlSkvYgT0l8aa49z/DLSGYjex4orMUcafuLXYyyEDWB1RKglq00jzwY00Ei7yFNVg== dependencies: chalk "^4.0.0" - jest-diff "^29.3.1" - jest-get-type "^29.2.0" - pretty-format "^29.3.1" + jest-diff "^29.4.3" + jest-get-type "^29.4.3" + pretty-format "^29.4.3" -jest-message-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.3.1.tgz#37bc5c468dfe5120712053dd03faf0f053bd6adb" - integrity sha512-lMJTbgNcDm5z+6KDxWtqOFWlGQxD6XaYwBqHR8kmpkP+WWWG90I35kdtQHY67Ay5CSuydkTBbJG+tH9JShFCyA== +jest-message-util@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.4.3.tgz#65b5280c0fdc9419503b49d4f48d4999d481cb5b" + integrity sha512-1Y8Zd4ZCN7o/QnWdMmT76If8LuDv23Z1DRovBj/vcSFNlGCJGoO8D1nJDw1AdyAGUk0myDLFGN5RbNeJyCRGCw== dependencies: "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.3" "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" micromatch "^4.0.4" - pretty-format "^29.3.1" + pretty-format "^29.4.3" slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.3.1.tgz#60287d92e5010979d01f218c6b215b688e0f313e" - integrity sha512-H8/qFDtDVMFvFP4X8NuOT3XRDzOUTz+FeACjufHzsOIBAxivLqkB1PoLCaJx9iPPQ8dZThHPp/G3WRWyMgA3JA== +jest-mock@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.4.3.tgz#23d84a20a74cdfff0510fdbeefb841ed57b0fe7e" + integrity sha512-LjFgMg+xed9BdkPMyIJh+r3KeHt1klXPJYBULXVVAkbTaaKjPX1o1uVCAZADMEp/kOxGTwy/Ot8XbvgItOrHEg== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.3" "@types/node" "*" - jest-util "^29.3.1" + jest-util "^29.4.3" jest-pnp-resolver@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== -jest-regex-util@^29.2.0: - version "29.2.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b" - integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA== +jest-regex-util@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.4.3.tgz#a42616141e0cae052cfa32c169945d00c0aa0bb8" + integrity sha512-O4FglZaMmWXbGHSQInfXewIsd1LMn9p3ZXB/6r4FOkyhX2/iP/soMG98jGvk/A3HAN78+5VWcBGO0BJAPRh4kg== -jest-resolve-dependencies@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.3.1.tgz#a6a329708a128e68d67c49f38678a4a4a914c3bf" - integrity sha512-Vk0cYq0byRw2WluNmNWGqPeRnZ3p3hHmjJMp2dyyZeYIfiBskwq4rpiuGFR6QGAdbj58WC7HN4hQHjf2mpvrLA== +jest-resolve-dependencies@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.4.3.tgz#9ad7f23839a6d88cef91416bda9393a6e9fd1da5" + integrity sha512-uvKMZAQ3nmXLH7O8WAOhS5l0iWyT3WmnJBdmIHiV5tBbdaDZ1wqtNX04FONGoaFvSOSHBJxnwAVnSn1WHdGVaw== dependencies: - jest-regex-util "^29.2.0" - jest-snapshot "^29.3.1" + jest-regex-util "^29.4.3" + jest-snapshot "^29.4.3" -jest-resolve@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.3.1.tgz#9a4b6b65387a3141e4a40815535c7f196f1a68a7" - integrity sha512-amXJgH/Ng712w3Uz5gqzFBBjxV8WFLSmNjoreBGMqxgCz5cH7swmBZzgBaCIOsvb0NbpJ0vgaSFdJqMdT+rADw== +jest-resolve@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.4.3.tgz#3c5b5c984fa8a763edf9b3639700e1c7900538e2" + integrity sha512-GPokE1tzguRyT7dkxBim4wSx6E45S3bOQ7ZdKEG+Qj0Oac9+6AwJPCk0TZh5Vu0xzeX4afpb+eDmgbmZFFwpOw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" + jest-haste-map "^29.4.3" jest-pnp-resolver "^1.2.2" - jest-util "^29.3.1" - jest-validate "^29.3.1" + jest-util "^29.4.3" + jest-validate "^29.4.3" resolve "^1.20.0" - resolve.exports "^1.1.0" + resolve.exports "^2.0.0" slash "^3.0.0" -jest-runner@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.3.1.tgz#a92a879a47dd096fea46bb1517b0a99418ee9e2d" - integrity sha512-oFvcwRNrKMtE6u9+AQPMATxFcTySyKfLhvso7Sdk/rNpbhg4g2GAGCopiInk1OP4q6gz3n6MajW4+fnHWlU3bA== +jest-runner@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.4.3.tgz#68dc82c68645eda12bea42b5beece6527d7c1e5e" + integrity sha512-GWPTEiGmtHZv1KKeWlTX9SIFuK19uLXlRQU43ceOQ2hIfA5yPEJC7AMkvFKpdCHx6pNEdOD+2+8zbniEi3v3gA== dependencies: - "@jest/console" "^29.3.1" - "@jest/environment" "^29.3.1" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/console" "^29.4.3" + "@jest/environment" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/transform" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" chalk "^4.0.0" emittery "^0.13.1" graceful-fs "^4.2.9" - jest-docblock "^29.2.0" - jest-environment-node "^29.3.1" - jest-haste-map "^29.3.1" - jest-leak-detector "^29.3.1" - jest-message-util "^29.3.1" - jest-resolve "^29.3.1" - jest-runtime "^29.3.1" - jest-util "^29.3.1" - jest-watcher "^29.3.1" - jest-worker "^29.3.1" + jest-docblock "^29.4.3" + jest-environment-node "^29.4.3" + jest-haste-map "^29.4.3" + jest-leak-detector "^29.4.3" + jest-message-util "^29.4.3" + jest-resolve "^29.4.3" + jest-runtime "^29.4.3" + jest-util "^29.4.3" + jest-watcher "^29.4.3" + jest-worker "^29.4.3" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.3.1.tgz#21efccb1a66911d6d8591276a6182f520b86737a" - integrity sha512-jLzkIxIqXwBEOZx7wx9OO9sxoZmgT2NhmQKzHQm1xwR1kNW/dn0OjxR424VwHHf1SPN6Qwlb5pp1oGCeFTQ62A== - dependencies: - "@jest/environment" "^29.3.1" - "@jest/fake-timers" "^29.3.1" - "@jest/globals" "^29.3.1" - "@jest/source-map" "^29.2.0" - "@jest/test-result" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" +jest-runtime@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.4.3.tgz#f25db9874dcf35a3ab27fdaabca426666cc745bf" + integrity sha512-F5bHvxSH+LvLV24vVB3L8K467dt3y3dio6V3W89dUz9nzvTpqd/HcT9zfYKL2aZPvD63vQFgLvaUX/UpUhrP6Q== + dependencies: + "@jest/environment" "^29.4.3" + "@jest/fake-timers" "^29.4.3" + "@jest/globals" "^29.4.3" + "@jest/source-map" "^29.4.3" + "@jest/test-result" "^29.4.3" + "@jest/transform" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^29.3.1" - jest-message-util "^29.3.1" - jest-mock "^29.3.1" - jest-regex-util "^29.2.0" - jest-resolve "^29.3.1" - jest-snapshot "^29.3.1" - jest-util "^29.3.1" + jest-haste-map "^29.4.3" + jest-message-util "^29.4.3" + jest-mock "^29.4.3" + jest-regex-util "^29.4.3" + jest-resolve "^29.4.3" + jest-snapshot "^29.4.3" + jest-util "^29.4.3" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.3.1.tgz#17bcef71a453adc059a18a32ccbd594b8cc4e45e" - integrity sha512-+3JOc+s28upYLI2OJM4PWRGK9AgpsMs/ekNryUV0yMBClT9B1DF2u2qay8YxcQd338PPYSFNb0lsar1B49sLDA== +jest-snapshot@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.4.3.tgz#183d309371450d9c4a3de7567ed2151eb0e91145" + integrity sha512-NGlsqL0jLPDW91dz304QTM/SNO99lpcSYYAjNiX0Ou+sSGgkanKBcSjCfp/pqmiiO1nQaOyLp6XQddAzRcx3Xw== dependencies: "@babel/core" "^7.11.6" "@babel/generator" "^7.7.2" @@ -3098,87 +3116,87 @@ jest-snapshot@^29.3.1: "@babel/plugin-syntax-typescript" "^7.7.2" "@babel/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.3.1" - "@jest/transform" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/expect-utils" "^29.4.3" + "@jest/transform" "^29.4.3" + "@jest/types" "^29.4.3" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^29.3.1" + expect "^29.4.3" graceful-fs "^4.2.9" - jest-diff "^29.3.1" - jest-get-type "^29.2.0" - jest-haste-map "^29.3.1" - jest-matcher-utils "^29.3.1" - jest-message-util "^29.3.1" - jest-util "^29.3.1" + jest-diff "^29.4.3" + jest-get-type "^29.4.3" + jest-haste-map "^29.4.3" + jest-matcher-utils "^29.4.3" + jest-message-util "^29.4.3" + jest-util "^29.4.3" natural-compare "^1.4.0" - pretty-format "^29.3.1" + pretty-format "^29.4.3" semver "^7.3.5" -jest-util@^29.0.0, jest-util@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.3.1.tgz#1dda51e378bbcb7e3bc9d8ab651445591ed373e1" - integrity sha512-7YOVZaiX7RJLv76ZfHt4nbNEzzTRiMW/IiOG7ZOKmTXmoGBxUDefgMAxQubu6WPVqP5zSzAdZG0FfLcC7HOIFQ== +jest-util@^29.0.0, jest-util@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.4.3.tgz#851a148e23fc2b633c55f6dad2e45d7f4579f496" + integrity sha512-ToSGORAz4SSSoqxDSylWX8JzkOQR7zoBtNRsA7e+1WUX5F8jrOwaNpuh1YfJHJKDHXLHmObv5eOjejUd+/Ws+Q== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.3" "@types/node" "*" chalk "^4.0.0" ci-info "^3.2.0" graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.3.1.tgz#d56fefaa2e7d1fde3ecdc973c7f7f8f25eea704a" - integrity sha512-N9Lr3oYR2Mpzuelp1F8negJR3YE+L1ebk1rYA5qYo9TTY3f9OWdptLoNSPP9itOCBIRBqjt/S5XHlzYglLN67g== +jest-validate@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.4.3.tgz#a13849dec4f9e95446a7080ad5758f58fa88642f" + integrity sha512-J3u5v7aPQoXPzaar6GndAVhdQcZr/3osWSgTeKg5v574I9ybX/dTyH0AJFb5XgXIB7faVhf+rS7t4p3lL9qFaw== dependencies: - "@jest/types" "^29.3.1" + "@jest/types" "^29.4.3" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^29.2.0" + jest-get-type "^29.4.3" leven "^3.1.0" - pretty-format "^29.3.1" + pretty-format "^29.4.3" -jest-watcher@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.3.1.tgz#3341547e14fe3c0f79f9c3a4c62dbc3fc977fd4a" - integrity sha512-RspXG2BQFDsZSRKGCT/NiNa8RkQ1iKAjrO0//soTMWx/QUt+OcxMqMSBxz23PYGqUuWm2+m2mNNsmj0eIoOaFg== +jest-watcher@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.4.3.tgz#e503baa774f0c2f8f3c8db98a22ebf885f19c384" + integrity sha512-zwlXH3DN3iksoIZNk73etl1HzKyi5FuQdYLnkQKm5BW4n8HpoG59xSwpVdFrnh60iRRaRBGw0gcymIxjJENPcA== dependencies: - "@jest/test-result" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/test-result" "^29.4.3" + "@jest/types" "^29.4.3" "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" emittery "^0.13.1" - jest-util "^29.3.1" + jest-util "^29.4.3" string-length "^4.0.1" -jest-worker@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.3.1.tgz#e9462161017a9bb176380d721cab022661da3d6b" - integrity sha512-lY4AnnmsEWeiXirAIA0c9SDPbuCBq8IYuDVL8PMm0MZ2PEs2yPvRA/J64QBXuZp7CYKrDM/rmNrc9/i3KJQncw== +jest-worker@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.4.3.tgz#9a4023e1ea1d306034237c7133d7da4240e8934e" + integrity sha512-GLHN/GTAAMEy5BFdvpUfzr9Dr80zQqBrh0fz1mtRMe05hqP45+HfQltu7oTBfduD0UeZs09d+maFtFYAXFWvAA== dependencies: "@types/node" "*" - jest-util "^29.3.1" + jest-util "^29.4.3" merge-stream "^2.0.0" supports-color "^8.0.0" jest@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/jest/-/jest-29.3.1.tgz#c130c0d551ae6b5459b8963747fed392ddbde122" - integrity sha512-6iWfL5DTT0Np6UYs/y5Niu7WIfNv/wRTtN5RSXt2DIEft3dx3zPuw/3WJQBCJfmEzvDiEKwoqMbGD9n49+qLSA== + version "29.4.3" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.4.3.tgz#1b8be541666c6feb99990fd98adac4737e6e6386" + integrity sha512-XvK65feuEFGZT8OO0fB/QAQS+LGHvQpaadkH5p47/j3Ocqq3xf2pK9R+G0GzgfuhXVxEv76qCOOcMb5efLk6PA== dependencies: - "@jest/core" "^29.3.1" - "@jest/types" "^29.3.1" + "@jest/core" "^29.4.3" + "@jest/types" "^29.4.3" import-local "^3.0.2" - jest-cli "^29.3.1" + jest-cli "^29.4.3" js-sdsl@^4.1.4: - version "4.2.0" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0" - integrity sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ== + version "4.3.0" + resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.3.0.tgz#aeefe32a451f7af88425b11fdb5f58c90ae1d711" + integrity sha512-mifzlm2+5nZ+lEcLJMoBK0/IH/bDg8XnJfd/Wq6IP+xoCjLZsTOnV2QpxlVbX9bMnkl5PdEjNtBJ9Cj1NjifhQ== js-sha3@0.8.0: version "0.8.0" @@ -3426,10 +3444,10 @@ node-int64@^0.4.0: resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.6: - version "2.0.8" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.8.tgz#0f349cdc8fcfa39a92ac0be9bc48b7706292b9ae" - integrity sha512-dFSmB8fFHEH/s81Xi+Y/15DQY6VHW81nXRj86EMSL3lmuTmK1e+aT4wrFCkTbm+gSwkw4KpX+rT/pMM2c1mF+A== +node-releases@^2.0.8: + version "2.0.10" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" + integrity sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w== normalize-path@^3.0.0: version "3.0.0" @@ -3647,16 +3665,16 @@ prettier-linter-helpers@^1.0.0: fast-diff "^1.1.2" prettier@^2.8.3: - version "2.8.3" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.3.tgz#ab697b1d3dd46fb4626fbe2f543afe0cc98d8632" - integrity sha512-tJ/oJ4amDihPoufT5sM0Z1SKEuKay8LfVAMlbbhnnkvt6BUserZylqo2PN+p9KeljLr0OHa2rXHU1T8reeoTrw== + version "2.8.4" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.4.tgz#34dd2595629bfbb79d344ac4a91ff948694463c3" + integrity sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw== -pretty-format@^29.0.0, pretty-format@^29.3.1: - version "29.3.1" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.3.1.tgz#1841cac822b02b4da8971dacb03e8a871b4722da" - integrity sha512-FyLnmb1cYJV8biEIiRyzRFvs2lry7PPIvOqKVe1GCUEYg4YGmlx1qG9EJNMxArYm7piII4qb8UV1Pncq5dxmcg== +pretty-format@^29.0.0, pretty-format@^29.4.3: + version "29.4.3" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.4.3.tgz#25500ada21a53c9e8423205cf0337056b201244c" + integrity sha512-cvpcHTc42lcsvOOAzd3XuNWTcvk1Jmnzqeu+WsOuiPmxUJTnkbAcFNsRKvEpBEUFVUgy/GTZLulZDcDEi+CIlA== dependencies: - "@jest/schemas" "^29.0.0" + "@jest/schemas" "^29.4.3" ansi-styles "^5.0.0" react-is "^18.0.0" @@ -3677,10 +3695,15 @@ prop-types@^15.8.1: object-assign "^4.1.1" react-is "^16.13.1" +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + punycode@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.2.0.tgz#2092cc57cd2582c38e4e7e8bb869dc8d3148bc74" - integrity sha512-LN6QV1IJ9ZhxWTNdktaPClrNfp8xdSAYS0Zk2ddX7XsXZAxckMHPCBcHRo0cTcEIgYPRiGEkmji3Idkh2yFtYw== + version "2.3.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== queue-microtask@^1.2.2: version "1.2.3" @@ -3743,10 +3766,10 @@ resolve-from@^5.0.0: resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve.exports@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.1.tgz#05cfd5b3edf641571fd46fa608b610dda9ead999" - integrity sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ== +resolve.exports@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.0.tgz#c1a0028c2d166ec2fbf7d0644584927e76e7400e" + integrity sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg== resolve@^1.20.0: version "1.22.1" @@ -4089,9 +4112,9 @@ typed-array-length@^1.0.4: is-typed-array "^1.1.9" typescript@^4.7.3: - version "4.9.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.4.tgz#a2a3d2756c079abda241d75f149df9d561091e78" - integrity sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg== + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== unbox-primitive@^1.0.2: version "1.0.2" @@ -4103,7 +4126,7 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -update-browserslist-db@^1.0.9: +update-browserslist-db@^1.0.10: version "1.0.10" resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== @@ -4124,9 +4147,9 @@ v8-compile-cache-lib@^3.0.1: integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== v8-to-istanbul@^9.0.1: - version "9.0.1" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4" - integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w== + version "9.1.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.0.tgz#1b83ed4e397f58c85c266a570fc2558b5feb9265" + integrity sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA== dependencies: "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" @@ -4211,7 +4234,7 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^4.0.1: +write-file-atomic@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== @@ -4245,9 +4268,9 @@ yargs-parser@^21.0.1, yargs-parser@^21.1.1: integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs@^17.2.1, yargs@^17.3.1: - version "17.6.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" - integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== + version "17.7.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.1.tgz#34a77645201d1a8fc5213ace787c220eabbd0967" + integrity sha512-cwiTb08Xuv5fqF4AovYacTFNxk62th7LKJ6BL9IGUpTJrWoU7/7WdQGTP2SjKf1dUNBGzDd28p/Yfs/GI6JrLw== dependencies: cliui "^8.0.1" escalade "^3.1.1"