From 7a64a0ce4520587f96479e81adae59210c12b8e5 Mon Sep 17 00:00:00 2001 From: Kirill Demidov Date: Mon, 15 Apr 2024 14:50:32 +0300 Subject: [PATCH 1/6] added zkLink network --- package.json | 2 +- src/common/tokens/constants/native-tokens.ts | 7 +++++++ src/common/tokens/constants/wrapped-addresses.ts | 1 + src/common/tokens/constants/wrapped-native-tokens.ts | 7 +++++++ src/core/blockchain/models/blockchain-name.ts | 3 ++- .../utils/blockchains-info/constants/blockchain-id.ts | 1 + 6 files changed, 19 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index e2bca92660..81f1346de5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rubic-sdk", - "version": "5.15.3", + "version": "5.16.0-alpha-zkLink.0", "description": "Simplify dApp creation", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/src/common/tokens/constants/native-tokens.ts b/src/common/tokens/constants/native-tokens.ts index f68b87f08c..fa6b49fe1a 100644 --- a/src/common/tokens/constants/native-tokens.ts +++ b/src/common/tokens/constants/native-tokens.ts @@ -446,5 +446,12 @@ export const nativeTokensList: Record = { name: 'USDC', symbol: 'USDC', decimals: 18 + }), + [BLOCKCHAIN_NAME.ZK_LINK]: new Token({ + blockchain: BLOCKCHAIN_NAME.ZK_LINK, + address: EvmWeb3Pure.nativeTokenAddress, + name: 'ETH', + symbol: 'ETH', + decimals: 18 }) }; diff --git a/src/common/tokens/constants/wrapped-addresses.ts b/src/common/tokens/constants/wrapped-addresses.ts index fc8b3ae97e..adf84868c0 100644 --- a/src/common/tokens/constants/wrapped-addresses.ts +++ b/src/common/tokens/constants/wrapped-addresses.ts @@ -46,6 +46,7 @@ export const wrappedAddress: Partial> = { [BLOCKCHAIN_NAME.ROOTSTOCK]: '0x542fda317318ebf1d3deaf76e0b632741a7e677d', [BLOCKCHAIN_NAME.MODE]: '0x4200000000000000000000000000000000000006', [BLOCKCHAIN_NAME.ZK_FAIR]: '0xD33Db7EC50A98164cC865dfaa64666906d79319C', + [BLOCKCHAIN_NAME.ZK_LINK]: '0x8280a4e7d5b3b658ec4580d3bc30f5e50454f169', // Testnet [BLOCKCHAIN_NAME.GOERLI]: '0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6', [BLOCKCHAIN_NAME.SCROLL_SEPOLIA]: '0x5300000000000000000000000000000000000004', diff --git a/src/common/tokens/constants/wrapped-native-tokens.ts b/src/common/tokens/constants/wrapped-native-tokens.ts index 5981443e81..db9dedcb58 100644 --- a/src/common/tokens/constants/wrapped-native-tokens.ts +++ b/src/common/tokens/constants/wrapped-native-tokens.ts @@ -429,5 +429,12 @@ export const wrappedNativeTokensList: Partial> name: 'Wrapped USDC', symbol: 'WUSDC', decimals: 18 + }), + [BLOCKCHAIN_NAME.ZK_LINK]: new Token({ + blockchain: BLOCKCHAIN_NAME.ZK_LINK, + address: '0x8280a4e7d5b3b658ec4580d3bc30f5e50454f169', + name: 'Wrapped Ether', + symbol: 'WETH', + decimals: 18 }) }; diff --git a/src/core/blockchain/models/blockchain-name.ts b/src/core/blockchain/models/blockchain-name.ts index 429d869fb9..8dc56b35cd 100644 --- a/src/core/blockchain/models/blockchain-name.ts +++ b/src/core/blockchain/models/blockchain-name.ts @@ -64,7 +64,8 @@ export const EVM_BLOCKCHAIN_NAME = { MERLIN: 'MERLIN', ROOTSTOCK: 'ROOTSTOCK', MODE: 'MODE', - ZK_FAIR: 'ZK_FAIR' + ZK_FAIR: 'ZK_FAIR', + ZK_LINK: 'ZK_LINK' } as const; export const BLOCKCHAIN_NAME = { diff --git a/src/core/blockchain/utils/blockchains-info/constants/blockchain-id.ts b/src/core/blockchain/utils/blockchains-info/constants/blockchain-id.ts index e3f4af3d76..1f377b2a9b 100644 --- a/src/core/blockchain/utils/blockchains-info/constants/blockchain-id.ts +++ b/src/core/blockchain/utils/blockchains-info/constants/blockchain-id.ts @@ -62,6 +62,7 @@ export const blockchainId: Record = { [BLOCKCHAIN_NAME.ROOTSTOCK]: 30, [BLOCKCHAIN_NAME.MODE]: 34443, [BLOCKCHAIN_NAME.ZK_FAIR]: 42766, + [BLOCKCHAIN_NAME.ZK_LINK]: 810180, // Tesnents [BLOCKCHAIN_NAME.GOERLI]: 5, [BLOCKCHAIN_NAME.BINANCE_SMART_CHAIN_TESTNET]: 87, From 3bc32a57e7a3892c09cfccdf401bd899ab4d336d Mon Sep 17 00:00:00 2001 From: Kirill Demidov Date: Mon, 15 Apr 2024 14:51:27 +0300 Subject: [PATCH 2/6] added symbiosis supporting --- .../models/symbiosis-cross-chain-supported-blockchains.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/features/cross-chain/calculation-manager/providers/symbiosis-provider/models/symbiosis-cross-chain-supported-blockchains.ts b/src/features/cross-chain/calculation-manager/providers/symbiosis-provider/models/symbiosis-cross-chain-supported-blockchains.ts index df5949fbf7..fd8fd41f02 100644 --- a/src/features/cross-chain/calculation-manager/providers/symbiosis-provider/models/symbiosis-cross-chain-supported-blockchains.ts +++ b/src/features/cross-chain/calculation-manager/providers/symbiosis-provider/models/symbiosis-cross-chain-supported-blockchains.ts @@ -23,6 +23,7 @@ export const symbiosisCrossChainSupportedBlockchains = [ BLOCKCHAIN_NAME.MERLIN, BLOCKCHAIN_NAME.ROOTSTOCK, BLOCKCHAIN_NAME.MODE, + BLOCKCHAIN_NAME.ZK_LINK, // Testnets BLOCKCHAIN_NAME.GOERLI, BLOCKCHAIN_NAME.BINANCE_SMART_CHAIN_TESTNET, From 6d41fb3a2a23ae8e7f0879564775a8986fe04515 Mon Sep 17 00:00:00 2001 From: Kirill Demidov Date: Mon, 15 Apr 2024 14:51:37 +0300 Subject: [PATCH 3/6] added izumi supporting --- .../trade-providers/izumi-trade-providers.ts | 4 +++- .../izumi-zklink/izumi-zklink-provider.ts | 22 +++++++++++++++++++ 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 src/features/on-chain/calculation-manager/providers/dexes/zklink/izumi-zklink/izumi-zklink-provider.ts diff --git a/src/features/on-chain/calculation-manager/constants/trade-providers/izumi-trade-providers.ts b/src/features/on-chain/calculation-manager/constants/trade-providers/izumi-trade-providers.ts index 96cadd13b2..9a1decf668 100644 --- a/src/features/on-chain/calculation-manager/constants/trade-providers/izumi-trade-providers.ts +++ b/src/features/on-chain/calculation-manager/constants/trade-providers/izumi-trade-providers.ts @@ -6,6 +6,7 @@ import { IzumiMantleProvider } from 'src/features/on-chain/calculation-manager/p import { MerlinSwapMerlinProvider } from 'src/features/on-chain/calculation-manager/providers/dexes/merlin/merlin-swap/merlin-swap-merlin-provider'; import { IzumiZetachainProvider } from 'src/features/on-chain/calculation-manager/providers/dexes/zetachain/izumi-zetachain/izumi-zetachain-provider'; import { IzumiZkfairProvider } from 'src/features/on-chain/calculation-manager/providers/dexes/zkfair/izumi-zkfair/izumi-zkfair-provider'; +import { IzumiZkLinkProvider } from 'src/features/on-chain/calculation-manager/providers/dexes/zklink/izumi-zklink/izumi-zklink-provider'; import { IzumiZksyncProvider } from 'src/features/on-chain/calculation-manager/providers/dexes/zksync/izumi-zksync/izumi-zksync-provider'; import { IzumiArbitrumProvider } from '../../providers/dexes/arbitrum/izumi-arbitrum/izumi-arbitrum-provider'; @@ -22,6 +23,7 @@ export const izumiTradeProviders = [ IzumiKromaProvider, IzumiArbitrumProvider, MerlinSwapMerlinProvider, - IzumiZkfairProvider + IzumiZkfairProvider, + IzumiZkLinkProvider // IzumiBlastProvider ]; diff --git a/src/features/on-chain/calculation-manager/providers/dexes/zklink/izumi-zklink/izumi-zklink-provider.ts b/src/features/on-chain/calculation-manager/providers/dexes/zklink/izumi-zklink/izumi-zklink-provider.ts new file mode 100644 index 0000000000..dc6dbfa307 --- /dev/null +++ b/src/features/on-chain/calculation-manager/providers/dexes/zklink/izumi-zklink/izumi-zklink-provider.ts @@ -0,0 +1,22 @@ +import { wrappedNativeTokensList } from 'src/common/tokens/constants/wrapped-native-tokens'; +import { BLOCKCHAIN_NAME } from 'src/core/blockchain/models/blockchain-name'; +import { IzumiProvider } from 'src/features/on-chain/calculation-manager/providers/dexes/common/izumi-abstract/izumi-provider'; + +export class IzumiZkLinkProvider extends IzumiProvider { + public readonly blockchain = BLOCKCHAIN_NAME.ZK_LINK; + + protected readonly dexAddress = '0x377EC7c9ae5a0787F384668788a1654249059dD6'; + + protected readonly config = { + maxTransitTokens: 2, + quoterAddress: '0x7dEe7de9814ed6C1e20B3E4E2fA9b1B96E15FDe1', + liquidityManagerAddress: '0x936c9A1B8f88BFDbd5066ad08e5d773BC82EB15F', + routingTokenAddresses: [ + wrappedNativeTokensList[BLOCKCHAIN_NAME.ZK_LINK]!.address, // WRAP + '0x1a1A3b2ff016332e866787B311fcB63928464509', // USDC + '0x2F8A25ac62179B31D62D7F80884AE57464699059' // USDT + ], + multicallAddress: 'fd5f0acaaa666f3d816fe3dd54a96dacd6e7bb16', + supportedFees: [10000, 3000, 500] + }; +} From 96e620dac79e1e326186c427eff54caa7bfa5bbf Mon Sep 17 00:00:00 2001 From: Kirill Demidov Date: Tue, 16 Apr 2024 13:08:20 +0300 Subject: [PATCH 4/6] added multicall address --- package.json | 2 +- .../web3-public/constants/multicall-addresses.ts | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 81f1346de5..d95627987d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rubic-sdk", - "version": "5.16.0-alpha-zkLink.0", + "version": "5.16.0-alpha-zkLink.1", "description": "Simplify dApp creation", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/src/core/blockchain/web3-public-service/web3-public/constants/multicall-addresses.ts b/src/core/blockchain/web3-public-service/web3-public/constants/multicall-addresses.ts index 599e3cd6ca..def6c3615c 100644 --- a/src/core/blockchain/web3-public-service/web3-public/constants/multicall-addresses.ts +++ b/src/core/blockchain/web3-public-service/web3-public/constants/multicall-addresses.ts @@ -61,5 +61,6 @@ export const MULTICALL_ADDRESSES: Record [BLOCKCHAIN_NAME.HORIZEN_EON]: '0x4ea6779581bDAcd376724A52070bE89FfB74eC39', [BLOCKCHAIN_NAME.MERLIN]: '0x45CFd6FB7999328F189aaD2739Fba4Be6C45E5bf', [BLOCKCHAIN_NAME.MODE]: '0xcA11bde05977b3631167028862bE2a173976CA11', - [BLOCKCHAIN_NAME.ZK_FAIR]: '0xcA11bde05977b3631167028862bE2a173976CA11' + [BLOCKCHAIN_NAME.ZK_FAIR]: '0xcA11bde05977b3631167028862bE2a173976CA11', + [BLOCKCHAIN_NAME.ZK_LINK]: '0x7E06D0CD8D3fDDBB875345dF389d986f810A49F6' }; From 06f388fb700959abac381ff1ea0e4077d3e6bb3a Mon Sep 17 00:00:00 2001 From: Kirill Demidov Date: Wed, 17 Apr 2024 13:45:38 +0300 Subject: [PATCH 5/6] update izumi sdk --- package.json | 4 ++-- yarn.lock | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index d95627987d..3002c7d4c3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rubic-sdk", - "version": "5.16.0-alpha-zkLink.1", + "version": "5.16.0-alpha-zkLink.2", "description": "Simplify dApp creation", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -93,7 +93,7 @@ "ethers": "^5.6.8", "graphql-request": "^6.1.0", "grpc-web": "^1.4.2", - "iziswap-sdk": "1.4.9", + "iziswap-sdk": "1.4.11", "lodash.clonedeep": "^4.5.0", "rxjs": "7.8.1", "tronweb": "^5.3.2", diff --git a/yarn.lock b/yarn.lock index d064cf601a..cdc6d3f4ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7098,10 +7098,10 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -iziswap-sdk@1.4.9: - version "1.4.9" - resolved "https://registry.yarnpkg.com/iziswap-sdk/-/iziswap-sdk-1.4.9.tgz#4534081803addc6149d618b5971f715d3db74c89" - integrity sha512-0GkEkDBSksZ4lSSFHZD3ExzwLgffpoVOx3GLkpeKmFqOEn7HISk6IxG35aWI6pv7aRqijAXk8NH07KGoP6y9gQ== +iziswap-sdk@1.4.11: + version "1.4.11" + resolved "https://registry.yarnpkg.com/iziswap-sdk/-/iziswap-sdk-1.4.11.tgz#730fe48a42e451cb842be91926fea135b6a6adbc" + integrity sha512-ddbzKSLuWtCYOszNUFgMOaBNISo4E4mbz3aWcv78W2k6CKzk4Vvbssd764S4GrifuV15hayttDNKZuGOVE348g== dependencies: bignumber.js "^9.0.2" http "^0.0.1-security" From 238652c0e4f16839dd8d8a053cc5bcd8fec99328 Mon Sep 17 00:00:00 2001 From: Kirill Demidov Date: Wed, 17 Apr 2024 14:50:40 +0300 Subject: [PATCH 6/6] set 5.16.0 version --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3002c7d4c3..26df36b8fd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rubic-sdk", - "version": "5.16.0-alpha-zkLink.2", + "version": "5.16.0", "description": "Simplify dApp creation", "main": "lib/index.js", "types": "lib/index.d.ts",