@allbridge/bridge-core-sdk 3.20.0 → 3.21.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/index.js +1 -1
- package/dist/browser/index.js.map +4 -4
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +4 -4
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +4 -4
- package/dist/src/chains/chain.enums.d.ts +7 -2
- package/dist/src/chains/chain.enums.js +5 -0
- package/dist/src/chains/chain.enums.js.map +1 -1
- package/dist/src/chains/index.js +6 -0
- package/dist/src/chains/index.js.map +1 -1
- package/dist/src/client/core-api/api-client.js.map +1 -1
- package/dist/src/client/core-api/core-api-mapper.js +1 -0
- package/dist/src/client/core-api/core-api-mapper.js.map +1 -1
- package/dist/src/client/core-api/core-api.model.d.ts +2 -1
- package/dist/src/client/core-api/core-api.model.js.map +1 -1
- package/dist/src/client/core-api/core-client-filtered.js.map +1 -1
- package/dist/src/client/core-api/core-client-pool-info-caching.js.map +1 -1
- package/dist/src/configs/mainnet.js +2 -1
- package/dist/src/configs/mainnet.js.map +1 -1
- package/dist/src/exceptions/exceptions.js.map +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/models/index.d.ts +1 -1
- package/dist/src/models/index.js.map +1 -1
- package/dist/src/services/bridge/evm/index.js +4 -57
- package/dist/src/services/bridge/evm/index.js.map +1 -1
- package/dist/src/services/bridge/get-cctp-sol-token-recipient-address.d.ts +5 -0
- package/dist/src/services/bridge/get-cctp-sol-token-recipient-address.js +66 -0
- package/dist/src/services/bridge/get-cctp-sol-token-recipient-address.js.map +1 -0
- package/dist/src/services/bridge/index.js +4 -0
- package/dist/src/services/bridge/index.js.map +1 -1
- package/dist/src/services/bridge/models/bridge.model.d.ts +4 -2
- package/dist/src/services/bridge/models/bridge.model.js.map +1 -1
- package/dist/src/services/bridge/raw-bridge-transaction-builder.js.map +1 -1
- package/dist/src/services/bridge/sol/index.js.map +1 -1
- package/dist/src/services/bridge/sol/jupiter.js.map +1 -1
- package/dist/src/services/bridge/srb/index.js.map +1 -1
- package/dist/src/services/bridge/sui/index.d.ts +20 -0
- package/dist/src/services/bridge/sui/index.js +238 -0
- package/dist/src/services/bridge/sui/index.js.map +1 -0
- package/dist/src/services/bridge/trx/index.js.map +1 -1
- package/dist/src/services/bridge/utils.d.ts +5 -4
- package/dist/src/services/bridge/utils.js +41 -4
- package/dist/src/services/bridge/utils.js.map +1 -1
- package/dist/src/services/index.js.map +1 -1
- package/dist/src/services/liquidity-pool/evm/index.js.map +1 -1
- package/dist/src/services/liquidity-pool/index.js +4 -0
- package/dist/src/services/liquidity-pool/index.js.map +1 -1
- package/dist/src/services/liquidity-pool/raw-pool-transaction-builder.js.map +1 -1
- package/dist/src/services/liquidity-pool/sol/index.js.map +1 -1
- package/dist/src/services/liquidity-pool/srb/index.js.map +1 -1
- package/dist/src/services/liquidity-pool/sui/index.d.ts +19 -0
- package/dist/src/services/liquidity-pool/sui/index.js +216 -0
- package/dist/src/services/liquidity-pool/sui/index.js.map +1 -0
- package/dist/src/services/liquidity-pool/trx/index.js.map +1 -1
- package/dist/src/services/models/index.d.ts +1 -0
- package/dist/src/services/models/index.js.map +1 -1
- package/dist/src/services/models/srb/bridge-contract.js.map +1 -1
- package/dist/src/services/models/srb/gas-oracle-contract.js.map +1 -1
- package/dist/src/services/models/srb/messenger-contract.js.map +1 -1
- package/dist/src/services/models/srb/pool-contract.js.map +1 -1
- package/dist/src/services/models/srb/token-contract.js.map +1 -1
- package/dist/src/services/models/sui/_dependencies/source/0x1/ascii/structs.d.ts +91 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/ascii/structs.js +292 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/ascii/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/bit-vector/structs.d.ts +55 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/bit-vector/structs.js +172 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/bit-vector/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/fixed-point32/structs.d.ts +45 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/fixed-point32/structs.js +141 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/fixed-point32/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/index.d.ts +3 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/index.js +8 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/index.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/init.d.ts +2 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/init.js +47 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/init.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/option/structs.d.ts +51 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/option/structs.js +178 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/option/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/string/structs.d.ts +49 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/string/structs.js +165 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/string/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/type-name/structs.d.ts +52 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/type-name/structs.js +142 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/type-name/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/uq32-32/structs.d.ts +45 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/uq32-32/structs.js +141 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/uq32-32/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/uq64-64/structs.d.ts +45 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/uq64-64/structs.js +141 -0
- package/dist/src/services/models/sui/_dependencies/source/0x1/uq64-64/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/burn-message/structs.d.ts +69 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/burn-message/structs.js +178 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/burn-message/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/deposit-for-burn/structs.d.ts +186 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/deposit-for-burn/structs.js +381 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/deposit-for-burn/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/handle-receive-message/structs.d.ts +142 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/handle-receive-message/structs.js +151 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/handle-receive-message/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/index.d.ts +3 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/index.js +8 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/index.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/init.d.ts +2 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/init.js +41 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/init.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/message-transmitter-authenticator/structs.d.ts +45 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/message-transmitter-authenticator/structs.js +141 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/message-transmitter-authenticator/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/state/structs.d.ts +190 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/state/structs.js +218 -0
- package/dist/src/services/models/sui/_dependencies/source/0x31cc14d80c175ae39777c0238f20594c6d4869cfab199f40b69f3319956b8beb/state/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/index.d.ts +3 -0
- package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/index.js +8 -0
- package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/index.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/init.d.ts +2 -0
- package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/init.js +37 -0
- package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/init.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/mint-allowance/structs.d.ts +45 -0
- package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/mint-allowance/structs.js +154 -0
- package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/mint-allowance/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/treasury/structs.d.ts +270 -0
- package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/treasury/structs.js +623 -0
- package/dist/src/services/models/sui/_dependencies/source/0x346e3233f61eb0055713417bfaddda7dc3bf26816faad1f7606994a368b92917/treasury/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/index.d.ts +3 -0
- package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/index.js +8 -0
- package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/index.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/init.d.ts +2 -0
- package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/init.js +38 -0
- package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/init.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/message/structs.d.ts +91 -0
- package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/message/structs.js +223 -0
- package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/message/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/receive-message/structs.d.ts +275 -0
- package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/receive-message/structs.js +500 -0
- package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/receive-message/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/state/structs.d.ts +151 -0
- package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/state/structs.js +234 -0
- package/dist/src/services/models/sui/_dependencies/source/0x4931e06dce648b3931f890035bd196920770e913e43e45990b383f6486fdd0a5/state/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes20/structs.d.ts +49 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes20/structs.js +165 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes20/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32/structs.d.ts +49 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32/structs.js +165 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/bytes32/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed-vaas/structs.d.ts +76 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed-vaas/structs.js +167 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/consumed-vaas/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/cursor/structs.d.ts +50 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/cursor/structs.js +177 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/cursor/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/emitter/structs.d.ts +106 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/emitter/structs.js +280 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/emitter/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external-address/structs.d.ts +56 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external-address/structs.js +142 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/external-address/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/fee-collector/structs.d.ts +62 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/fee-collector/structs.js +174 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/fee-collector/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/guardian/structs.d.ts +56 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/guardian/structs.js +142 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/guardian/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/guardian-set/structs.d.ts +80 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/guardian-set/structs.js +180 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/guardian-set/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/index.d.ts +3 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/index.js +8 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/index.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/init.d.ts +2 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/init.js +59 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/init.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/publish-message/structs.d.ts +150 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/publish-message/structs.js +353 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/publish-message/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set/structs.d.ts +109 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set/structs.js +308 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/set/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/state/structs.d.ts +235 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/state/structs.js +228 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/state/structs.js.map +1 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/vaa/structs.d.ts +127 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/vaa/structs.js +223 -0
- package/dist/src/services/models/sui/_dependencies/source/0xf47329f4344f3bf0f8e436e2f7b485466cff300f12a166563995d3888c296a94/vaa/structs.js.map +1 -0
- package/dist/src/services/models/sui/_framework/init-loader.d.ts +2 -0
- package/dist/src/services/models/sui/_framework/init-loader.js +57 -0
- package/dist/src/services/models/sui/_framework/init-loader.js.map +1 -0
- package/dist/src/services/models/sui/_framework/loader.d.ts +17 -0
- package/dist/src/services/models/sui/_framework/loader.js +56 -0
- package/dist/src/services/models/sui/_framework/loader.js.map +1 -0
- package/dist/src/services/models/sui/_framework/reified.d.ts +108 -0
- package/dist/src/services/models/sui/_framework/reified.js +239 -0
- package/dist/src/services/models/sui/_framework/reified.js.map +1 -0
- package/dist/src/services/models/sui/_framework/util.d.ts +86 -0
- package/dist/src/services/models/sui/_framework/util.js +333 -0
- package/dist/src/services/models/sui/_framework/util.js.map +1 -0
- package/dist/src/services/models/sui/_framework/vector.d.ts +35 -0
- package/dist/src/services/models/sui/_framework/vector.js +82 -0
- package/dist/src/services/models/sui/_framework/vector.js.map +1 -0
- package/dist/src/services/models/sui/bridge/another-bridge/functions.d.ts +30 -0
- package/dist/src/services/models/sui/bridge/another-bridge/functions.js +69 -0
- package/dist/src/services/models/sui/bridge/another-bridge/functions.js.map +1 -0
- package/dist/src/services/models/sui/bridge/another-bridge/structs.d.ts +98 -0
- package/dist/src/services/models/sui/bridge/another-bridge/structs.js +181 -0
- package/dist/src/services/models/sui/bridge/another-bridge/structs.js.map +1 -0
- package/dist/src/services/models/sui/bridge/bridge/functions.d.ts +153 -0
- package/dist/src/services/models/sui/bridge/bridge/functions.js +284 -0
- package/dist/src/services/models/sui/bridge/bridge/functions.js.map +1 -0
- package/dist/src/services/models/sui/bridge/bridge/structs.d.ts +383 -0
- package/dist/src/services/models/sui/bridge/bridge/structs.js +624 -0
- package/dist/src/services/models/sui/bridge/bridge/structs.js.map +1 -0
- package/dist/src/services/models/sui/bridge/bridge-interface/functions.d.ts +257 -0
- package/dist/src/services/models/sui/bridge/bridge-interface/functions.js +486 -0
- package/dist/src/services/models/sui/bridge/bridge-interface/functions.js.map +1 -0
- package/dist/src/services/models/sui/bridge/events/functions.d.ts +58 -0
- package/dist/src/services/models/sui/bridge/events/functions.js +103 -0
- package/dist/src/services/models/sui/bridge/events/functions.js.map +1 -0
- package/dist/src/services/models/sui/bridge/events/structs.d.ts +652 -0
- package/dist/src/services/models/sui/bridge/events/structs.js +1430 -0
- package/dist/src/services/models/sui/bridge/events/structs.js.map +1 -0
- package/dist/src/services/models/sui/bridge/index.d.ts +14 -0
- package/dist/src/services/models/sui/bridge/index.js +34 -0
- package/dist/src/services/models/sui/bridge/index.js.map +1 -0
- package/dist/src/services/models/sui/bridge/init.d.ts +2 -0
- package/dist/src/services/models/sui/bridge/init.js +57 -0
- package/dist/src/services/models/sui/bridge/init.js.map +1 -0
- package/dist/src/services/models/sui/bridge/pool/functions.d.ts +86 -0
- package/dist/src/services/models/sui/bridge/pool/functions.js +215 -0
- package/dist/src/services/models/sui/bridge/pool/functions.js.map +1 -0
- package/dist/src/services/models/sui/bridge/pool/structs.d.ts +271 -0
- package/dist/src/services/models/sui/bridge/pool/structs.js +467 -0
- package/dist/src/services/models/sui/bridge/pool/structs.js.map +1 -0
- package/dist/src/services/models/sui/bridge/pool-rewards/functions.d.ts +37 -0
- package/dist/src/services/models/sui/bridge/pool-rewards/functions.js +86 -0
- package/dist/src/services/models/sui/bridge/pool-rewards/functions.js.map +1 -0
- package/dist/src/services/models/sui/bridge/pool-rewards/structs.d.ts +86 -0
- package/dist/src/services/models/sui/bridge/pool-rewards/structs.js +181 -0
- package/dist/src/services/models/sui/bridge/pool-rewards/structs.js.map +1 -0
- package/dist/src/services/models/sui/bridge/pool-state/functions.d.ts +59 -0
- package/dist/src/services/models/sui/bridge/pool-state/functions.js +171 -0
- package/dist/src/services/models/sui/bridge/pool-state/functions.js.map +1 -0
- package/dist/src/services/models/sui/bridge/pool-state/structs.d.ts +69 -0
- package/dist/src/services/models/sui/bridge/pool-state/structs.js +180 -0
- package/dist/src/services/models/sui/bridge/pool-state/structs.js.map +1 -0
- package/dist/src/services/models/sui/bridge/user-deposit/functions.d.ts +22 -0
- package/dist/src/services/models/sui/bridge/user-deposit/functions.js +62 -0
- package/dist/src/services/models/sui/bridge/user-deposit/functions.js.map +1 -0
- package/dist/src/services/models/sui/bridge/user-deposit/structs.d.ts +66 -0
- package/dist/src/services/models/sui/bridge/user-deposit/structs.js +167 -0
- package/dist/src/services/models/sui/bridge/user-deposit/structs.js.map +1 -0
- package/dist/src/services/models/sui/cctp-bridge/cctp-bridge/functions.d.ts +102 -0
- package/dist/src/services/models/sui/cctp-bridge/cctp-bridge/functions.js +178 -0
- package/dist/src/services/models/sui/cctp-bridge/cctp-bridge/functions.js.map +1 -0
- package/dist/src/services/models/sui/cctp-bridge/cctp-bridge/structs.d.ts +281 -0
- package/dist/src/services/models/sui/cctp-bridge/cctp-bridge/structs.js +472 -0
- package/dist/src/services/models/sui/cctp-bridge/cctp-bridge/structs.js.map +1 -0
- package/dist/src/services/models/sui/cctp-bridge/cctp-bridge-interface/functions.d.ts +103 -0
- package/dist/src/services/models/sui/cctp-bridge/cctp-bridge-interface/functions.js +160 -0
- package/dist/src/services/models/sui/cctp-bridge/cctp-bridge-interface/functions.js.map +1 -0
- package/dist/src/services/models/sui/cctp-bridge/events/functions.d.ts +30 -0
- package/dist/src/services/models/sui/cctp-bridge/events/functions.js +54 -0
- package/dist/src/services/models/sui/cctp-bridge/events/functions.js.map +1 -0
- package/dist/src/services/models/sui/cctp-bridge/events/structs.d.ts +310 -0
- package/dist/src/services/models/sui/cctp-bridge/events/structs.js +656 -0
- package/dist/src/services/models/sui/cctp-bridge/events/structs.js.map +1 -0
- package/dist/src/services/models/sui/cctp-bridge/index.d.ts +14 -0
- package/dist/src/services/models/sui/cctp-bridge/index.js +34 -0
- package/dist/src/services/models/sui/cctp-bridge/index.js.map +1 -0
- package/dist/src/services/models/sui/cctp-bridge/init.d.ts +2 -0
- package/dist/src/services/models/sui/cctp-bridge/init.js +41 -0
- package/dist/src/services/models/sui/cctp-bridge/init.js.map +1 -0
- package/dist/src/services/models/sui/cctp-bridge/message-transmitter-authenticator/functions.d.ts +2 -0
- package/dist/src/services/models/sui/cctp-bridge/message-transmitter-authenticator/functions.js +12 -0
- package/dist/src/services/models/sui/cctp-bridge/message-transmitter-authenticator/functions.js.map +1 -0
- package/dist/src/services/models/sui/cctp-bridge/message-transmitter-authenticator/structs.d.ts +45 -0
- package/dist/src/services/models/sui/cctp-bridge/message-transmitter-authenticator/structs.js +141 -0
- package/dist/src/services/models/sui/cctp-bridge/message-transmitter-authenticator/structs.js.map +1 -0
- package/dist/src/services/models/sui/gas-oracle/gas-oracle/functions.d.ts +61 -0
- package/dist/src/services/models/sui/gas-oracle/gas-oracle/functions.js +128 -0
- package/dist/src/services/models/sui/gas-oracle/gas-oracle/functions.js.map +1 -0
- package/dist/src/services/models/sui/gas-oracle/gas-oracle/structs.d.ts +180 -0
- package/dist/src/services/models/sui/gas-oracle/gas-oracle/structs.js +443 -0
- package/dist/src/services/models/sui/gas-oracle/gas-oracle/structs.js.map +1 -0
- package/dist/src/services/models/sui/gas-oracle/gas-oracle-interface/functions.d.ts +69 -0
- package/dist/src/services/models/sui/gas-oracle/gas-oracle-interface/functions.js +118 -0
- package/dist/src/services/models/sui/gas-oracle/gas-oracle-interface/functions.js.map +1 -0
- package/dist/src/services/models/sui/gas-oracle/index.d.ts +14 -0
- package/dist/src/services/models/sui/gas-oracle/index.js +34 -0
- package/dist/src/services/models/sui/gas-oracle/index.js.map +1 -0
- package/dist/src/services/models/sui/gas-oracle/init.d.ts +2 -0
- package/dist/src/services/models/sui/gas-oracle/init.js +34 -0
- package/dist/src/services/models/sui/gas-oracle/init.js.map +1 -0
- package/dist/src/services/models/sui/messenger/events/functions.d.ts +3 -0
- package/dist/src/services/models/sui/messenger/events/functions.js +20 -0
- package/dist/src/services/models/sui/messenger/events/functions.js.map +1 -0
- package/dist/src/services/models/sui/messenger/events/structs.d.ts +100 -0
- package/dist/src/services/models/sui/messenger/events/structs.js +273 -0
- package/dist/src/services/models/sui/messenger/events/structs.js.map +1 -0
- package/dist/src/services/models/sui/messenger/index.d.ts +14 -0
- package/dist/src/services/models/sui/messenger/index.js +34 -0
- package/dist/src/services/models/sui/messenger/index.js.map +1 -0
- package/dist/src/services/models/sui/messenger/init.d.ts +2 -0
- package/dist/src/services/models/sui/messenger/init.js +36 -0
- package/dist/src/services/models/sui/messenger/init.js.map +1 -0
- package/dist/src/services/models/sui/messenger/messenger/functions.d.ts +66 -0
- package/dist/src/services/models/sui/messenger/messenger/functions.js +143 -0
- package/dist/src/services/models/sui/messenger/messenger/functions.js.map +1 -0
- package/dist/src/services/models/sui/messenger/messenger/structs.d.ts +269 -0
- package/dist/src/services/models/sui/messenger/messenger/structs.js +351 -0
- package/dist/src/services/models/sui/messenger/messenger/structs.js.map +1 -0
- package/dist/src/services/models/sui/messenger/messenger-interface/functions.d.ts +81 -0
- package/dist/src/services/models/sui/messenger/messenger-interface/functions.js +127 -0
- package/dist/src/services/models/sui/messenger/messenger-interface/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/address/functions.d.ts +11 -0
- package/dist/src/services/models/sui/sui/address/functions.js +76 -0
- package/dist/src/services/models/sui/sui/address/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/authenticator-state/functions.d.ts +42 -0
- package/dist/src/services/models/sui/sui/authenticator-state/functions.js +99 -0
- package/dist/src/services/models/sui/sui/authenticator-state/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/authenticator-state/structs.d.ts +463 -0
- package/dist/src/services/models/sui/sui/authenticator-state/structs.js +747 -0
- package/dist/src/services/models/sui/sui/authenticator-state/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/bag/functions.d.ts +37 -0
- package/dist/src/services/models/sui/sui/bag/functions.js +79 -0
- package/dist/src/services/models/sui/sui/bag/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/bag/structs.d.ts +60 -0
- package/dist/src/services/models/sui/sui/bag/structs.js +149 -0
- package/dist/src/services/models/sui/sui/bag/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/balance/functions.d.ts +31 -0
- package/dist/src/services/models/sui/sui/balance/functions.js +110 -0
- package/dist/src/services/models/sui/sui/balance/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/balance/structs.d.ts +87 -0
- package/dist/src/services/models/sui/sui/balance/structs.js +294 -0
- package/dist/src/services/models/sui/sui/balance/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/bcs/functions.d.ts +31 -0
- package/dist/src/services/models/sui/sui/bcs/functions.js +210 -0
- package/dist/src/services/models/sui/sui/bcs/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/bcs/structs.d.ts +49 -0
- package/dist/src/services/models/sui/sui/bcs/structs.js +165 -0
- package/dist/src/services/models/sui/sui/bcs/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/bls12381/functions.d.ts +130 -0
- package/dist/src/services/models/sui/sui/bls12381/functions.js +323 -0
- package/dist/src/services/models/sui/sui/bls12381/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/bls12381/structs.d.ts +213 -0
- package/dist/src/services/models/sui/sui/bls12381/structs.js +665 -0
- package/dist/src/services/models/sui/sui/bls12381/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/borrow/functions.d.ts +11 -0
- package/dist/src/services/models/sui/sui/borrow/functions.js +38 -0
- package/dist/src/services/models/sui/sui/borrow/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/borrow/structs.d.ts +116 -0
- package/dist/src/services/models/sui/sui/borrow/structs.js +306 -0
- package/dist/src/services/models/sui/sui/borrow/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/clock/functions.d.ts +8 -0
- package/dist/src/services/models/sui/sui/clock/functions.js +27 -0
- package/dist/src/services/models/sui/sui/clock/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/clock/structs.d.ts +60 -0
- package/dist/src/services/models/sui/sui/clock/structs.js +149 -0
- package/dist/src/services/models/sui/sui/clock/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/coin/functions.d.ts +174 -0
- package/dist/src/services/models/sui/sui/coin/functions.js +391 -0
- package/dist/src/services/models/sui/sui/coin/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/coin/structs.d.ts +467 -0
- package/dist/src/services/models/sui/sui/coin/structs.js +1084 -0
- package/dist/src/services/models/sui/sui/coin/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/config/functions.d.ts +54 -0
- package/dist/src/services/models/sui/sui/config/functions.js +108 -0
- package/dist/src/services/models/sui/sui/config/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/config/structs.d.ts +198 -0
- package/dist/src/services/models/sui/sui/config/structs.js +454 -0
- package/dist/src/services/models/sui/sui/config/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/deny-list/functions.d.ts +124 -0
- package/dist/src/services/models/sui/sui/deny-list/functions.js +188 -0
- package/dist/src/services/models/sui/sui/deny-list/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/deny-list/structs.d.ts +429 -0
- package/dist/src/services/models/sui/sui/deny-list/structs.js +993 -0
- package/dist/src/services/models/sui/sui/deny-list/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/display/functions.d.ts +43 -0
- package/dist/src/services/models/sui/sui/display/functions.js +131 -0
- package/dist/src/services/models/sui/sui/display/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/display/structs.d.ts +256 -0
- package/dist/src/services/models/sui/sui/display/structs.js +471 -0
- package/dist/src/services/models/sui/sui/display/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/dynamic-field/functions.d.ts +83 -0
- package/dist/src/services/models/sui/sui/dynamic-field/functions.js +137 -0
- package/dist/src/services/models/sui/sui/dynamic-field/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/dynamic-field/structs.d.ts +67 -0
- package/dist/src/services/models/sui/sui/dynamic-field/structs.js +169 -0
- package/dist/src/services/models/sui/sui/dynamic-field/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/dynamic-object-field/functions.d.ts +64 -0
- package/dist/src/services/models/sui/sui/dynamic-object-field/functions.js +110 -0
- package/dist/src/services/models/sui/sui/dynamic-object-field/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/dynamic-object-field/structs.d.ts +46 -0
- package/dist/src/services/models/sui/sui/dynamic-object-field/structs.js +153 -0
- package/dist/src/services/models/sui/sui/dynamic-object-field/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/ecdsa-k1/functions.d.ts +15 -0
- package/dist/src/services/models/sui/sui/ecdsa-k1/functions.js +32 -0
- package/dist/src/services/models/sui/sui/ecdsa-k1/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/ecdsa-r1/functions.d.ts +14 -0
- package/dist/src/services/models/sui/sui/ecdsa-r1/functions.js +25 -0
- package/dist/src/services/models/sui/sui/ecdsa-r1/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/ecvrf/functions.d.ts +8 -0
- package/dist/src/services/models/sui/sui/ecvrf/functions.js +18 -0
- package/dist/src/services/models/sui/sui/ecvrf/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/ed25519/functions.d.ts +7 -0
- package/dist/src/services/models/sui/sui/ed25519/functions.js +17 -0
- package/dist/src/services/models/sui/sui/ed25519/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/event/functions.d.ts +3 -0
- package/dist/src/services/models/sui/sui/event/functions.js +14 -0
- package/dist/src/services/models/sui/sui/event/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/groth16/functions.d.ts +40 -0
- package/dist/src/services/models/sui/sui/groth16/functions.js +94 -0
- package/dist/src/services/models/sui/sui/groth16/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/groth16/structs.d.ts +203 -0
- package/dist/src/services/models/sui/sui/groth16/structs.js +575 -0
- package/dist/src/services/models/sui/sui/groth16/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/group-ops/functions.d.ts +128 -0
- package/dist/src/services/models/sui/sui/group-ops/functions.js +184 -0
- package/dist/src/services/models/sui/sui/group-ops/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/group-ops/structs.d.ts +49 -0
- package/dist/src/services/models/sui/sui/group-ops/structs.js +176 -0
- package/dist/src/services/models/sui/sui/group-ops/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/hash/functions.d.ts +3 -0
- package/dist/src/services/models/sui/sui/hash/functions.js +20 -0
- package/dist/src/services/models/sui/sui/hash/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/hex/functions.d.ts +4 -0
- package/dist/src/services/models/sui/sui/hex/functions.js +27 -0
- package/dist/src/services/models/sui/sui/hex/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/hmac/functions.d.ts +6 -0
- package/dist/src/services/models/sui/sui/hmac/functions.js +13 -0
- package/dist/src/services/models/sui/sui/hmac/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/index.d.ts +3 -0
- package/dist/src/services/models/sui/sui/index.js +8 -0
- package/dist/src/services/models/sui/sui/index.js.map +1 -0
- package/dist/src/services/models/sui/sui/init.d.ts +2 -0
- package/dist/src/services/models/sui/sui/init.js +163 -0
- package/dist/src/services/models/sui/sui/init.js.map +1 -0
- package/dist/src/services/models/sui/sui/kiosk/functions.d.ts +179 -0
- package/dist/src/services/models/sui/sui/kiosk/functions.js +327 -0
- package/dist/src/services/models/sui/sui/kiosk/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/kiosk/structs.d.ts +605 -0
- package/dist/src/services/models/sui/sui/kiosk/structs.js +1501 -0
- package/dist/src/services/models/sui/sui/kiosk/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/kiosk-extension/functions.d.ts +54 -0
- package/dist/src/services/models/sui/sui/kiosk-extension/functions.js +133 -0
- package/dist/src/services/models/sui/sui/kiosk-extension/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/kiosk-extension/structs.d.ts +120 -0
- package/dist/src/services/models/sui/sui/kiosk-extension/structs.js +298 -0
- package/dist/src/services/models/sui/sui/kiosk-extension/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/linked-table/functions.d.ts +53 -0
- package/dist/src/services/models/sui/sui/linked-table/functions.js +142 -0
- package/dist/src/services/models/sui/sui/linked-table/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/linked-table/structs.d.ts +168 -0
- package/dist/src/services/models/sui/sui/linked-table/structs.js +335 -0
- package/dist/src/services/models/sui/sui/linked-table/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/math/functions.d.ts +28 -0
- package/dist/src/services/models/sui/sui/math/functions.js +55 -0
- package/dist/src/services/models/sui/sui/math/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/object/functions.d.ts +26 -0
- package/dist/src/services/models/sui/sui/object/functions.js +177 -0
- package/dist/src/services/models/sui/sui/object/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/object/structs.d.ts +91 -0
- package/dist/src/services/models/sui/sui/object/structs.js +273 -0
- package/dist/src/services/models/sui/sui/object/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/object-bag/functions.d.ts +42 -0
- package/dist/src/services/models/sui/sui/object-bag/functions.js +90 -0
- package/dist/src/services/models/sui/sui/object-bag/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/object-bag/structs.d.ts +60 -0
- package/dist/src/services/models/sui/sui/object-bag/structs.js +149 -0
- package/dist/src/services/models/sui/sui/object-bag/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/object-table/functions.d.ts +37 -0
- package/dist/src/services/models/sui/sui/object-table/functions.js +86 -0
- package/dist/src/services/models/sui/sui/object-table/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/object-table/structs.d.ts +60 -0
- package/dist/src/services/models/sui/sui/object-table/structs.js +162 -0
- package/dist/src/services/models/sui/sui/object-table/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/package/functions.d.ts +39 -0
- package/dist/src/services/models/sui/sui/package/functions.js +178 -0
- package/dist/src/services/models/sui/sui/package/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/package/structs.d.ts +279 -0
- package/dist/src/services/models/sui/sui/package/structs.js +623 -0
- package/dist/src/services/models/sui/sui/package/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/pay/functions.d.ts +38 -0
- package/dist/src/services/models/sui/sui/pay/functions.js +71 -0
- package/dist/src/services/models/sui/sui/pay/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/poseidon/functions.d.ts +3 -0
- package/dist/src/services/models/sui/sui/poseidon/functions.js +20 -0
- package/dist/src/services/models/sui/sui/poseidon/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/priority-queue/functions.d.ts +32 -0
- package/dist/src/services/models/sui/sui/priority-queue/functions.js +75 -0
- package/dist/src/services/models/sui/sui/priority-queue/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/priority-queue/structs.d.ts +110 -0
- package/dist/src/services/models/sui/sui/priority-queue/structs.js +329 -0
- package/dist/src/services/models/sui/sui/priority-queue/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/random/functions.d.ts +73 -0
- package/dist/src/services/models/sui/sui/random/functions.js +173 -0
- package/dist/src/services/models/sui/sui/random/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/random/structs.d.ts +203 -0
- package/dist/src/services/models/sui/sui/random/structs.js +471 -0
- package/dist/src/services/models/sui/sui/random/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/sui/functions.d.ts +7 -0
- package/dist/src/services/models/sui/sui/sui/functions.js +17 -0
- package/dist/src/services/models/sui/sui/sui/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/sui/structs.d.ts +45 -0
- package/dist/src/services/models/sui/sui/sui/structs.js +141 -0
- package/dist/src/services/models/sui/sui/sui/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/table/functions.d.ts +33 -0
- package/dist/src/services/models/sui/sui/table/functions.js +86 -0
- package/dist/src/services/models/sui/sui/table/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/table/structs.d.ts +60 -0
- package/dist/src/services/models/sui/sui/table/structs.js +162 -0
- package/dist/src/services/models/sui/sui/table/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/table-vec/functions.d.ts +35 -0
- package/dist/src/services/models/sui/sui/table-vec/functions.js +102 -0
- package/dist/src/services/models/sui/sui/table-vec/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/table-vec/structs.d.ts +67 -0
- package/dist/src/services/models/sui/sui/table-vec/structs.js +177 -0
- package/dist/src/services/models/sui/sui/table-vec/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/token/functions.d.ts +144 -0
- package/dist/src/services/models/sui/sui/token/functions.js +375 -0
- package/dist/src/services/models/sui/sui/token/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/token/structs.d.ts +460 -0
- package/dist/src/services/models/sui/sui/token/structs.js +951 -0
- package/dist/src/services/models/sui/sui/token/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/transfer/functions.d.ts +40 -0
- package/dist/src/services/models/sui/sui/transfer/functions.js +115 -0
- package/dist/src/services/models/sui/sui/transfer/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/transfer/structs.d.ts +56 -0
- package/dist/src/services/models/sui/sui/transfer/structs.js +160 -0
- package/dist/src/services/models/sui/sui/transfer/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/transfer-policy/functions.d.ts +65 -0
- package/dist/src/services/models/sui/sui/transfer-policy/functions.js +161 -0
- package/dist/src/services/models/sui/sui/transfer-policy/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/transfer-policy/structs.d.ts +369 -0
- package/dist/src/services/models/sui/sui/transfer-policy/structs.js +941 -0
- package/dist/src/services/models/sui/sui/transfer-policy/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/tx-context/functions.d.ts +12 -0
- package/dist/src/services/models/sui/sui/tx-context/functions.js +55 -0
- package/dist/src/services/models/sui/sui/tx-context/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/tx-context/structs.d.ts +73 -0
- package/dist/src/services/models/sui/sui/tx-context/structs.js +196 -0
- package/dist/src/services/models/sui/sui/tx-context/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/types/functions.d.ts +3 -0
- package/dist/src/services/models/sui/sui/types/functions.js +14 -0
- package/dist/src/services/models/sui/sui/types/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/url/functions.d.ts +9 -0
- package/dist/src/services/models/sui/sui/url/functions.js +35 -0
- package/dist/src/services/models/sui/sui/url/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/url/structs.d.ts +52 -0
- package/dist/src/services/models/sui/sui/url/structs.js +142 -0
- package/dist/src/services/models/sui/sui/url/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/vdf/functions.d.ts +17 -0
- package/dist/src/services/models/sui/sui/vdf/functions.js +44 -0
- package/dist/src/services/models/sui/sui/vdf/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/vec-map/functions.d.ts +70 -0
- package/dist/src/services/models/sui/sui/vec-map/functions.js +158 -0
- package/dist/src/services/models/sui/sui/vec-map/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/vec-map/structs.d.ts +110 -0
- package/dist/src/services/models/sui/sui/vec-map/structs.js +329 -0
- package/dist/src/services/models/sui/sui/vec-map/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/vec-set/functions.d.ts +34 -0
- package/dist/src/services/models/sui/sui/vec-set/functions.js +102 -0
- package/dist/src/services/models/sui/sui/vec-set/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/vec-set/structs.d.ts +50 -0
- package/dist/src/services/models/sui/sui/vec-set/structs.js +177 -0
- package/dist/src/services/models/sui/sui/vec-set/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/versioned/functions.d.ts +19 -0
- package/dist/src/services/models/sui/sui/versioned/functions.js +66 -0
- package/dist/src/services/models/sui/sui/versioned/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/versioned/structs.d.ts +112 -0
- package/dist/src/services/models/sui/sui/versioned/structs.js +287 -0
- package/dist/src/services/models/sui/sui/versioned/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/zklogin-verified-id/functions.d.ts +33 -0
- package/dist/src/services/models/sui/sui/zklogin-verified-id/functions.js +90 -0
- package/dist/src/services/models/sui/sui/zklogin-verified-id/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/zklogin-verified-id/structs.d.ts +109 -0
- package/dist/src/services/models/sui/sui/zklogin-verified-id/structs.js +181 -0
- package/dist/src/services/models/sui/sui/zklogin-verified-id/structs.js.map +1 -0
- package/dist/src/services/models/sui/sui/zklogin-verified-issuer/functions.d.ts +21 -0
- package/dist/src/services/models/sui/sui/zklogin-verified-issuer/functions.js +57 -0
- package/dist/src/services/models/sui/sui/zklogin-verified-issuer/functions.js.map +1 -0
- package/dist/src/services/models/sui/sui/zklogin-verified-issuer/structs.d.ts +73 -0
- package/dist/src/services/models/sui/sui/zklogin-verified-issuer/structs.js +160 -0
- package/dist/src/services/models/sui/sui/zklogin-verified-issuer/structs.js.map +1 -0
- package/dist/src/services/models/sui/utils/bytes32/functions.d.ts +15 -0
- package/dist/src/services/models/sui/utils/bytes32/functions.js +107 -0
- package/dist/src/services/models/sui/utils/bytes32/functions.js.map +1 -0
- package/dist/src/services/models/sui/utils/bytes32/structs.d.ts +49 -0
- package/dist/src/services/models/sui/utils/bytes32/structs.js +165 -0
- package/dist/src/services/models/sui/utils/bytes32/structs.js.map +1 -0
- package/dist/src/services/models/sui/utils/fee-collector/functions.d.ts +16 -0
- package/dist/src/services/models/sui/utils/fee-collector/functions.js +46 -0
- package/dist/src/services/models/sui/utils/fee-collector/functions.js.map +1 -0
- package/dist/src/services/models/sui/utils/fee-collector/structs.d.ts +66 -0
- package/dist/src/services/models/sui/utils/fee-collector/structs.js +153 -0
- package/dist/src/services/models/sui/utils/fee-collector/structs.js.map +1 -0
- package/dist/src/services/models/sui/utils/index.d.ts +14 -0
- package/dist/src/services/models/sui/utils/index.js +34 -0
- package/dist/src/services/models/sui/utils/index.js.map +1 -0
- package/dist/src/services/models/sui/utils/init.d.ts +2 -0
- package/dist/src/services/models/sui/utils/init.js +43 -0
- package/dist/src/services/models/sui/utils/init.js.map +1 -0
- package/dist/src/services/models/sui/utils/message/functions.d.ts +33 -0
- package/dist/src/services/models/sui/utils/message/functions.js +87 -0
- package/dist/src/services/models/sui/utils/message/functions.js.map +1 -0
- package/dist/src/services/models/sui/utils/message/structs.d.ts +56 -0
- package/dist/src/services/models/sui/utils/message/structs.js +142 -0
- package/dist/src/services/models/sui/utils/message/structs.js.map +1 -0
- package/dist/src/services/models/sui/utils/messenger-protocol/functions.d.ts +4 -0
- package/dist/src/services/models/sui/utils/messenger-protocol/functions.js +27 -0
- package/dist/src/services/models/sui/utils/messenger-protocol/functions.js.map +1 -0
- package/dist/src/services/models/sui/utils/messenger-protocol/structs.d.ts +45 -0
- package/dist/src/services/models/sui/utils/messenger-protocol/structs.js +141 -0
- package/dist/src/services/models/sui/utils/messenger-protocol/structs.js.map +1 -0
- package/dist/src/services/models/sui/utils/set/functions.d.ts +19 -0
- package/dist/src/services/models/sui/utils/set/functions.js +46 -0
- package/dist/src/services/models/sui/utils/set/functions.js.map +1 -0
- package/dist/src/services/models/sui/utils/set/structs.d.ts +109 -0
- package/dist/src/services/models/sui/utils/set/structs.js +308 -0
- package/dist/src/services/models/sui/utils/set/structs.js.map +1 -0
- package/dist/src/services/models/sui/utils/version/functions.d.ts +19 -0
- package/dist/src/services/models/sui/utils/version/functions.js +30 -0
- package/dist/src/services/models/sui/utils/version/functions.js.map +1 -0
- package/dist/src/services/models/sui/utils/version/structs.d.ts +45 -0
- package/dist/src/services/models/sui/utils/version/structs.js +154 -0
- package/dist/src/services/models/sui/utils/version/structs.js.map +1 -0
- package/dist/src/services/models/sui/wormhole-messenger/events/functions.d.ts +11 -0
- package/dist/src/services/models/sui/wormhole-messenger/events/functions.js +20 -0
- package/dist/src/services/models/sui/wormhole-messenger/events/functions.js.map +1 -0
- package/dist/src/services/models/sui/wormhole-messenger/events/structs.d.ts +112 -0
- package/dist/src/services/models/sui/wormhole-messenger/events/structs.js +287 -0
- package/dist/src/services/models/sui/wormhole-messenger/events/structs.js.map +1 -0
- package/dist/src/services/models/sui/wormhole-messenger/index.d.ts +14 -0
- package/dist/src/services/models/sui/wormhole-messenger/index.js +34 -0
- package/dist/src/services/models/sui/wormhole-messenger/index.js.map +1 -0
- package/dist/src/services/models/sui/wormhole-messenger/init.d.ts +2 -0
- package/dist/src/services/models/sui/wormhole-messenger/init.js +36 -0
- package/dist/src/services/models/sui/wormhole-messenger/init.js.map +1 -0
- package/dist/src/services/models/sui/wormhole-messenger/wh-messenger-interface/functions.d.ts +85 -0
- package/dist/src/services/models/sui/wormhole-messenger/wh-messenger-interface/functions.js +139 -0
- package/dist/src/services/models/sui/wormhole-messenger/wh-messenger-interface/functions.js.map +1 -0
- package/dist/src/services/models/sui/wormhole-messenger/wormhole-messenger/functions.d.ts +79 -0
- package/dist/src/services/models/sui/wormhole-messenger/wormhole-messenger/functions.js +170 -0
- package/dist/src/services/models/sui/wormhole-messenger/wormhole-messenger/functions.js.map +1 -0
- package/dist/src/services/models/sui/wormhole-messenger/wormhole-messenger/structs.d.ts +278 -0
- package/dist/src/services/models/sui/wormhole-messenger/wormhole-messenger/structs.js +354 -0
- package/dist/src/services/models/sui/wormhole-messenger/wormhole-messenger/structs.js.map +1 -0
- package/dist/src/services/token/evm/index.js.map +1 -1
- package/dist/src/services/token/index.js +4 -0
- package/dist/src/services/token/index.js.map +1 -1
- package/dist/src/services/token/sol/index.js.map +1 -1
- package/dist/src/services/token/srb/index.js.map +1 -1
- package/dist/src/services/token/sui/index.d.ts +17 -0
- package/dist/src/services/token/sui/index.js +54 -0
- package/dist/src/services/token/sui/index.js.map +1 -0
- package/dist/src/services/token/trx/index.js.map +1 -1
- package/dist/src/services/utils/calculation/index.js.map +1 -1
- package/dist/src/services/utils/sol/accounts.js.map +1 -1
- package/dist/src/services/utils/sol/anchor-provider.js.map +1 -1
- package/dist/src/services/utils/sol/compute-budget.js.map +1 -1
- package/dist/src/services/utils/sol/index.js.map +1 -1
- package/dist/src/services/utils/sui/coins.d.ts +9 -0
- package/dist/src/services/utils/sui/coins.js +38 -0
- package/dist/src/services/utils/sui/coins.js.map +1 -0
- package/dist/src/services/utils/sui/paginated.d.ts +7 -0
- package/dist/src/services/utils/sui/paginated.js +14 -0
- package/dist/src/services/utils/sui/paginated.js.map +1 -0
- package/dist/src/services/utils/sui/view.d.ts +4 -0
- package/dist/src/services/utils/sui/view.js +26 -0
- package/dist/src/services/utils/sui/view.js.map +1 -0
- package/dist/src/tokens-info/tokens-info.model.d.ts +33 -0
- package/dist/src/tokens-info/tokens-info.model.js.map +1 -1
- package/dist/src/utils/calculation/index.js.map +1 -1
- package/dist/src/utils/calculation/swap-and-bridge-details.js.map +1 -1
- package/dist/src/utils/calculation/swap-and-bridge-fee-calc.js.map +1 -1
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/sol/index.js.map +1 -1
- package/dist/src/utils/sol/utils.js.map +1 -1
- package/dist/src/utils/srb/index.js.map +1 -1
- package/dist/src/utils/utils.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/dist/src/version.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/evm/index.ts"],"names":[],"mappings":";;;;;;AAAA,+BAAsC;AACtC,6DAAwD;AAGxD,4DAAwE;AACxE,gDAAwF;AAExF,iEAAyC;AACzC,sCAMmB;AAEnB,MAAa,cAAe,SAAQ,yBAAgB;IAKzC;IACA;IALT,SAAS,GAAkB,uBAAS,CAAC,GAAG,CAAC;IACjC,CAAC,GAAG,EAAE,CAAC;IAEf,YACS,IAAmB,EACnB,GAAwB;QAE/B,KAAK,EAAE,CAAC;QAHD,SAAI,GAAJ,IAAI,CAAe;QACnB,QAAG,GAAH,GAAG,CAAqB;IAGjC,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,cAAsB,EAAE,KAA4B;QAC3E,IAAI,eAAe,CAAC;QACpB,IAAI,CAAC;YACH,eAAe,GAAG,MAAM,IAAA,0BAAkB,EACxC,IAAI,CAAC,yBAAyB,CAAC,cAAc,EAAE,KAAK,CAAC,EACrD,kCAAkC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,EAAE,EACtE,IAAI,CACL,CAAC;QACJ,CAAC;QAAC,OAAO,WAAW,EAAE,CAAC;YACrB,eAAe,GAAG,MAAM,IAAA,oCAA4B,EAClD,GAAG,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,cAAc,EAAE,KAAK,CAAC,EAC/D,kCAAkC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,EAAE,EACtE,CAAC,EACD,IAAI,CACL,CAAC;QACJ,CAAC;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,KAA4B;QACrD,IAAI,QAAQ,CAAC;QACb,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAA,0BAAkB,EACjC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAC9B,2BAA2B,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,EAAE,EAC/D,IAAI,CACL,CAAC;QACJ,CAAC;QAAC,OAAO,WAAW,EAAE,CAAC;YACrB,QAAQ,GAAG,MAAM,IAAA,oCAA4B,EAC3C,GAAG,EAAE,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EACxC,2BAA2B,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,WAAW,EAAE,EAC/D,CAAC,EACD,IAAI,CACL,CAAC;QACJ,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,yBAAyB,CACrC,cAAsB,EACtB,KAA4B;QAE5B,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE7D,MAAM,iBAAiB,GAAG,YAAY,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,SAAS,EAAE,CAAC;QAC1F,MAAM,YAAY,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,SAAS,EAAE,CAAC;QAEhF,KAAK,CAAC,GAAG,CAAC;YACR,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,QAAQ,CAAC;SACvE,CAAC,CAAC;QACH,KAAK,CAAC,GAAG,CAAC;YACR,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,QAAQ,CAAC;SAClE,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,EAAE,cAAc,CAAC,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAEjE,IAAI,gBAAgB,IAAI,cAAc,IAAI,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;YAC3F,OAAO,IAAI,oBAAW,CAAC;gBACrB,QAAQ,EAAE,WAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;gBAC/D,UAAU,EAAE,WAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;aACpE,CAAC,CAAC;QACL,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC;IAEO,KAAK,CAAC,6BAA6B,CACzC,cAAsB,EACtB,KAA4B;QAE5B,MAAM,UAAU,GAAG,CACjB,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CAC5F,CAAC,QAAQ,EAAE,CAAC;QACb,MAAM,QAAQ,GAAG,CACf,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,IAAI,EAAE,CACvF,CAAC,QAAQ,EAAE,CAAC;QACb,OAAO,IAAI,oBAAW,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;IACnD,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,KAA4B;QAC3D,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;QAC/C,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE7D,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;QAClD,MAAM,eAAe,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE,CAAC;QACxE,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,CAAC;QACtE,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE,CAAC;QACtE,MAAM,qBAAqB,GAAG,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,SAAS,EAAE,CAAC;QAEpF,KAAK,CAAC,GAAG,CAAC;YACR,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;SAC1D,CAAC,CAAC;QACH,KAAK,CAAC,GAAG,CAAC;YACR,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,QAAQ,CAAC;SAC1D,CAAC,CAAC;QACH,KAAK,CAAC,GAAG,CAAC;YACR,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,QAAQ,CAAC;SACrE,CAAC,CAAC;QACH,KAAK,CAAC,GAAG,CAAC;YACR,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,QAAQ,CAAC;SACpE,CAAC,CAAC;QACH,KAAK,CAAC,GAAG,CAAC;YACR,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,QAAQ,CAAC;SACpE,CAAC,CAAC;QACH,KAAK,CAAC,GAAG,CAAC;YACR,MAAM,EAAE,UAAU;YAClB,MAAM,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,QAAQ,CAAC;SAC3E,CAAC,CAAC;QAEH,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,GAC1G,MAAM,KAAK,CAAC,OAAO,EAAE,CAAC;QAExB,IACE,OAAO;YACP,OAAO;YACP,kBAAkB;YAClB,iBAAiB;YACjB,iBAAiB;YACjB,wBAAwB;YACxB,CAAC,OAAO,CAAC,KAAK;YACd,CAAC,OAAO,CAAC,KAAK;YACd,CAAC,kBAAkB,CAAC,KAAK;YACzB,CAAC,iBAAiB,CAAC,KAAK;YACxB,CAAC,iBAAiB,CAAC,KAAK;YACxB,CAAC,wBAAwB,CAAC,KAAK,EAC/B,CAAC;YACD,MAAM,eAAe,GAAG,WAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAClF,MAAM,cAAc,GAAG,WAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;YAChF,MAAM,SAAS,GAAG,IAAA,wCAA0B,EAAC,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC;YAC7G,OAAO;gBACL,MAAM,EAAE,WAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;gBACtD,MAAM,EAAE,WAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;gBACtD,YAAY,EAAE,eAAe;gBAC7B,WAAW,EAAE,cAAc;gBAC3B,aAAa,EAAE,WAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;gBACvE,kBAAkB,EAAE,WAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;gBACnF,CAAC,EAAE,IAAI,CAAC,CAAC;gBACT,SAAS;aACV,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACpC,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,KAA4B;QAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAE7D,MAAM,MAAM,GAAG,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClE,MAAM,MAAM,GAAG,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAClE,MAAM,YAAY,GAAG,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnF,MAAM,WAAW,GAAG,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjF,MAAM,aAAa,GAAG,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QACnF,MAAM,kBAAkB,GAAG,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC;QAE/F,MAAM,SAAS,GAAG,IAAA,wCAA0B,EAAC,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC;QAE5E,OAAO;YACL,MAAM;YACN,MAAM;YACN,YAAY;YACZ,WAAW;YACX,aAAa;YACb,kBAAkB;YAClB,CAAC,EAAE,IAAI,CAAC,CAAC;YACT,SAAS;SACV,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,0BAA0B,CAAC,MAAsC;QACrE,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAC7B,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;SAChG,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,2BAA2B,CAAC,MAAsC;QACtE,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAC7B,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE;SACjG,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,+BAA+B,CAAC,MAA4B;QAChE,OAAO,OAAO,CAAC,OAAO,CAAC;YACrB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;YAC7B,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,SAAS,EAAE;SACxF,CAAC,CAAC;IACL,CAAC;IAED,aAAa,CAAC,MAA4B;QACxC,OAAO;YACL,IAAI,EAAE,MAAM,CAAC,cAAc;YAC3B,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW;YAC5B,KAAK,EAAE,GAAG;SACX,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,eAAuB;QAC7C,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAI,CAAC,GAAG,EAAE,eAAe,CAA8B,CAAC;IAC5F,CAAC;CACF;AA1ND,wCA0NC","sourcesContent":["import { Contract, Web3 } from \"web3\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../../tokens-info\";\nimport { calculatePoolInfoImbalance } from \"../../../utils/calculation\";\nimport { promiseWithTimeout, promiseWithTimeoutAndRetries } from \"../../../utils/utils\";\nimport { EssentialWeb3, RawTransaction } from \"../../models\";\nimport Pool from \"../../models/abi/Pool\";\nimport {\n ChainPoolService,\n LiquidityPoolsParams,\n LiquidityPoolsParamsWithAmount,\n UserBalance,\n UserBalanceInfo,\n} from \"../models\";\n\nexport class EvmPoolService extends ChainPoolService {\n chainType: ChainType.EVM = ChainType.EVM;\n private P = 52;\n\n constructor(\n public web3: EssentialWeb3,\n public api: AllbridgeCoreClient,\n ) {\n super();\n }\n\n async getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo> {\n let userBalanceInfo;\n try {\n userBalanceInfo = await promiseWithTimeout(\n this.getUserBalanceInfoByBatch(accountAddress, token),\n `Cannot get UserBalanceInfo for ${token.name} on ${token.chainSymbol}`,\n 5000,\n );\n } catch (ignoreError) {\n userBalanceInfo = await promiseWithTimeoutAndRetries(\n () => this.getUserBalanceInfoPerProperty(accountAddress, token),\n `Cannot get UserBalanceInfo for ${token.name} on ${token.chainSymbol}`,\n 5,\n 2000,\n );\n }\n return userBalanceInfo;\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo> {\n let poolInfo;\n try {\n poolInfo = await promiseWithTimeout(\n this.getPoolInfoByBatch(token),\n `Cannot get PoolInfo for ${token.name} on ${token.chainSymbol}`,\n 5000,\n );\n } catch (ignoreError) {\n poolInfo = await promiseWithTimeoutAndRetries(\n () => this.getPoolInfoPerProperty(token),\n `Cannot get PoolInfo for ${token.name} on ${token.chainSymbol}`,\n 5,\n 2000,\n );\n }\n return poolInfo;\n }\n\n private async getUserBalanceInfoByBatch(\n accountAddress: string,\n token: TokenWithChainDetails,\n ): Promise<UserBalanceInfo> {\n const batch = new this.web3.eth.BatchRequest();\n const poolContract = this.getPoolContract(token.poolAddress);\n\n const userRewardDebtAbi = poolContract.methods.userRewardDebt(accountAddress).encodeABI();\n const balanceOfAbi = poolContract.methods.balanceOf(accountAddress).encodeABI();\n\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: userRewardDebtAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: balanceOfAbi }, \"latest\"],\n });\n\n const [rewardDebtResult, lpAmountResult] = await batch.execute();\n\n if (rewardDebtResult && lpAmountResult && !rewardDebtResult.error && !lpAmountResult.error) {\n return new UserBalance({\n lpAmount: Web3.utils.toBigInt(lpAmountResult.result).toString(),\n rewardDebt: Web3.utils.toBigInt(rewardDebtResult.result).toString(),\n });\n }\n throw new Error(\"Batched failed\");\n }\n\n private async getUserBalanceInfoPerProperty(\n accountAddress: string,\n token: TokenWithChainDetails,\n ): Promise<UserBalanceInfo> {\n const rewardDebt = (\n await this.getPoolContract(token.poolAddress).methods.userRewardDebt(accountAddress).call()\n ).toString();\n const lpAmount = (\n await this.getPoolContract(token.poolAddress).methods.balanceOf(accountAddress).call()\n ).toString();\n return new UserBalance({ lpAmount, rewardDebt });\n }\n\n private async getPoolInfoByBatch(token: TokenWithChainDetails): Promise<PoolInfo> {\n const batch = new this.web3.eth.BatchRequest();\n const poolContract = this.getPoolContract(token.poolAddress);\n\n const aAbi = poolContract.methods.a().encodeABI();\n const dAbi = poolContract.methods.d().encodeABI();\n const tokenBalanceAbi = poolContract.methods.tokenBalance().encodeABI();\n const vUsdBalanceAbi = poolContract.methods.vUsdBalance().encodeABI();\n const totalSupplyAbi = poolContract.methods.totalSupply().encodeABI();\n const accRewardPerSharePAbi = poolContract.methods.accRewardPerShareP().encodeABI();\n\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: aAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: dAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: tokenBalanceAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: vUsdBalanceAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: totalSupplyAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: accRewardPerSharePAbi }, \"latest\"],\n });\n\n const [aResult, dResult, tokenBalanceResult, vUsdBalanceResult, totalSupplyResult, accRewardPerSharePResult] =\n await batch.execute();\n\n if (\n aResult &&\n dResult &&\n tokenBalanceResult &&\n vUsdBalanceResult &&\n totalSupplyResult &&\n accRewardPerSharePResult &&\n !aResult.error &&\n !dResult.error &&\n !tokenBalanceResult.error &&\n !vUsdBalanceResult.error &&\n !totalSupplyResult.error &&\n !accRewardPerSharePResult.error\n ) {\n const tokenBalanceStr = Web3.utils.toBigInt(tokenBalanceResult.result).toString();\n const vUsdBalanceStr = Web3.utils.toBigInt(vUsdBalanceResult.result).toString();\n const imbalance = calculatePoolInfoImbalance({ tokenBalance: tokenBalanceStr, vUsdBalance: vUsdBalanceStr });\n return {\n aValue: Web3.utils.toBigInt(aResult.result).toString(),\n dValue: Web3.utils.toBigInt(dResult.result).toString(),\n tokenBalance: tokenBalanceStr,\n vUsdBalance: vUsdBalanceStr,\n totalLpAmount: Web3.utils.toBigInt(totalSupplyResult.result).toString(),\n accRewardPerShareP: Web3.utils.toBigInt(accRewardPerSharePResult.result).toString(),\n p: this.P,\n imbalance,\n };\n }\n throw new Error(\"Batched failed\");\n }\n\n private async getPoolInfoPerProperty(token: TokenWithChainDetails): Promise<PoolInfo> {\n const poolContract = this.getPoolContract(token.poolAddress);\n\n const aValue = (await poolContract.methods.a().call()).toString();\n const dValue = (await poolContract.methods.d().call()).toString();\n const tokenBalance = (await poolContract.methods.tokenBalance().call()).toString();\n const vUsdBalance = (await poolContract.methods.vUsdBalance().call()).toString();\n const totalLpAmount = (await poolContract.methods.totalSupply().call()).toString();\n const accRewardPerShareP = (await poolContract.methods.accRewardPerShareP().call()).toString();\n\n const imbalance = calculatePoolInfoImbalance({ tokenBalance, vUsdBalance });\n\n return {\n aValue,\n dValue,\n tokenBalance,\n vUsdBalance,\n totalLpAmount,\n accRewardPerShareP,\n p: this.P,\n imbalance,\n };\n }\n\n async buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n return Promise.resolve({\n ...this.buildTxParams(params),\n data: this.getPoolContract(params.token.poolAddress).methods.deposit(params.amount).encodeABI(),\n });\n }\n\n async buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n return Promise.resolve({\n ...this.buildTxParams(params),\n data: this.getPoolContract(params.token.poolAddress).methods.withdraw(params.amount).encodeABI(),\n });\n }\n\n async buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawTransaction> {\n return Promise.resolve({\n ...this.buildTxParams(params),\n data: this.getPoolContract(params.token.poolAddress).methods.claimRewards().encodeABI(),\n });\n }\n\n buildTxParams(params: LiquidityPoolsParams) {\n return {\n from: params.accountAddress,\n to: params.token.poolAddress,\n value: \"0\",\n };\n }\n\n private getPoolContract(contractAddress: string) {\n return new this.web3.eth.Contract(Pool.abi, contractAddress) as Contract<typeof Pool.abi>;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/evm/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Contract, Web3 } from \"web3\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../../tokens-info\";\nimport { calculatePoolInfoImbalance } from \"../../../utils/calculation\";\nimport { promiseWithTimeout, promiseWithTimeoutAndRetries } from \"../../../utils/utils\";\nimport { EssentialWeb3, RawTransaction } from \"../../models\";\nimport Pool from \"../../models/abi/Pool\";\nimport {\n ChainPoolService,\n LiquidityPoolsParams,\n LiquidityPoolsParamsWithAmount,\n UserBalance,\n UserBalanceInfo,\n} from \"../models\";\n\nexport class EvmPoolService extends ChainPoolService {\n chainType: ChainType.EVM = ChainType.EVM;\n private P = 52;\n\n constructor(\n public web3: EssentialWeb3,\n public api: AllbridgeCoreClient\n ) {\n super();\n }\n\n async getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo> {\n let userBalanceInfo;\n try {\n userBalanceInfo = await promiseWithTimeout(\n this.getUserBalanceInfoByBatch(accountAddress, token),\n `Cannot get UserBalanceInfo for ${token.name} on ${token.chainSymbol}`,\n 5000\n );\n } catch (ignoreError) {\n userBalanceInfo = await promiseWithTimeoutAndRetries(\n () => this.getUserBalanceInfoPerProperty(accountAddress, token),\n `Cannot get UserBalanceInfo for ${token.name} on ${token.chainSymbol}`,\n 5,\n 2000\n );\n }\n return userBalanceInfo;\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo> {\n let poolInfo;\n try {\n poolInfo = await promiseWithTimeout(\n this.getPoolInfoByBatch(token),\n `Cannot get PoolInfo for ${token.name} on ${token.chainSymbol}`,\n 5000\n );\n } catch (ignoreError) {\n poolInfo = await promiseWithTimeoutAndRetries(\n () => this.getPoolInfoPerProperty(token),\n `Cannot get PoolInfo for ${token.name} on ${token.chainSymbol}`,\n 5,\n 2000\n );\n }\n return poolInfo;\n }\n\n private async getUserBalanceInfoByBatch(\n accountAddress: string,\n token: TokenWithChainDetails\n ): Promise<UserBalanceInfo> {\n const batch = new this.web3.eth.BatchRequest();\n const poolContract = this.getPoolContract(token.poolAddress);\n\n const userRewardDebtAbi = poolContract.methods.userRewardDebt(accountAddress).encodeABI();\n const balanceOfAbi = poolContract.methods.balanceOf(accountAddress).encodeABI();\n\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: userRewardDebtAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: balanceOfAbi }, \"latest\"],\n });\n\n const [rewardDebtResult, lpAmountResult] = await batch.execute();\n\n if (rewardDebtResult && lpAmountResult && !rewardDebtResult.error && !lpAmountResult.error) {\n return new UserBalance({\n lpAmount: Web3.utils.toBigInt(lpAmountResult.result).toString(),\n rewardDebt: Web3.utils.toBigInt(rewardDebtResult.result).toString(),\n });\n }\n throw new Error(\"Batched failed\");\n }\n\n private async getUserBalanceInfoPerProperty(\n accountAddress: string,\n token: TokenWithChainDetails\n ): Promise<UserBalanceInfo> {\n const rewardDebt = (\n await this.getPoolContract(token.poolAddress).methods.userRewardDebt(accountAddress).call()\n ).toString();\n const lpAmount = (\n await this.getPoolContract(token.poolAddress).methods.balanceOf(accountAddress).call()\n ).toString();\n return new UserBalance({ lpAmount, rewardDebt });\n }\n\n private async getPoolInfoByBatch(token: TokenWithChainDetails): Promise<PoolInfo> {\n const batch = new this.web3.eth.BatchRequest();\n const poolContract = this.getPoolContract(token.poolAddress);\n\n const aAbi = poolContract.methods.a().encodeABI();\n const dAbi = poolContract.methods.d().encodeABI();\n const tokenBalanceAbi = poolContract.methods.tokenBalance().encodeABI();\n const vUsdBalanceAbi = poolContract.methods.vUsdBalance().encodeABI();\n const totalSupplyAbi = poolContract.methods.totalSupply().encodeABI();\n const accRewardPerSharePAbi = poolContract.methods.accRewardPerShareP().encodeABI();\n\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: aAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: dAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: tokenBalanceAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: vUsdBalanceAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: totalSupplyAbi }, \"latest\"],\n });\n batch.add({\n method: \"eth_call\",\n params: [{ to: token.poolAddress, data: accRewardPerSharePAbi }, \"latest\"],\n });\n\n const [aResult, dResult, tokenBalanceResult, vUsdBalanceResult, totalSupplyResult, accRewardPerSharePResult] =\n await batch.execute();\n\n if (\n aResult &&\n dResult &&\n tokenBalanceResult &&\n vUsdBalanceResult &&\n totalSupplyResult &&\n accRewardPerSharePResult &&\n !aResult.error &&\n !dResult.error &&\n !tokenBalanceResult.error &&\n !vUsdBalanceResult.error &&\n !totalSupplyResult.error &&\n !accRewardPerSharePResult.error\n ) {\n const tokenBalanceStr = Web3.utils.toBigInt(tokenBalanceResult.result).toString();\n const vUsdBalanceStr = Web3.utils.toBigInt(vUsdBalanceResult.result).toString();\n const imbalance = calculatePoolInfoImbalance({ tokenBalance: tokenBalanceStr, vUsdBalance: vUsdBalanceStr });\n return {\n aValue: Web3.utils.toBigInt(aResult.result).toString(),\n dValue: Web3.utils.toBigInt(dResult.result).toString(),\n tokenBalance: tokenBalanceStr,\n vUsdBalance: vUsdBalanceStr,\n totalLpAmount: Web3.utils.toBigInt(totalSupplyResult.result).toString(),\n accRewardPerShareP: Web3.utils.toBigInt(accRewardPerSharePResult.result).toString(),\n p: this.P,\n imbalance,\n };\n }\n throw new Error(\"Batched failed\");\n }\n\n private async getPoolInfoPerProperty(token: TokenWithChainDetails): Promise<PoolInfo> {\n const poolContract = this.getPoolContract(token.poolAddress);\n\n const aValue = (await poolContract.methods.a().call()).toString();\n const dValue = (await poolContract.methods.d().call()).toString();\n const tokenBalance = (await poolContract.methods.tokenBalance().call()).toString();\n const vUsdBalance = (await poolContract.methods.vUsdBalance().call()).toString();\n const totalLpAmount = (await poolContract.methods.totalSupply().call()).toString();\n const accRewardPerShareP = (await poolContract.methods.accRewardPerShareP().call()).toString();\n\n const imbalance = calculatePoolInfoImbalance({ tokenBalance, vUsdBalance });\n\n return {\n aValue,\n dValue,\n tokenBalance,\n vUsdBalance,\n totalLpAmount,\n accRewardPerShareP,\n p: this.P,\n imbalance,\n };\n }\n\n async buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n return Promise.resolve({\n ...this.buildTxParams(params),\n data: this.getPoolContract(params.token.poolAddress).methods.deposit(params.amount).encodeABI(),\n });\n }\n\n async buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n return Promise.resolve({\n ...this.buildTxParams(params),\n data: this.getPoolContract(params.token.poolAddress).methods.withdraw(params.amount).encodeABI(),\n });\n }\n\n async buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawTransaction> {\n return Promise.resolve({\n ...this.buildTxParams(params),\n data: this.getPoolContract(params.token.poolAddress).methods.claimRewards().encodeABI(),\n });\n }\n\n buildTxParams(params: LiquidityPoolsParams) {\n return {\n from: params.accountAddress,\n to: params.token.poolAddress,\n value: \"0\",\n };\n }\n\n private getPoolContract(contractAddress: string) {\n return new this.web3.eth.Contract(Pool.abi, contractAddress) as Contract<typeof Pool.abi>;\n }\n}\n"]}
|
|
@@ -19,6 +19,7 @@ const evm_1 = require("./evm");
|
|
|
19
19
|
const raw_pool_transaction_builder_1 = require("./raw-pool-transaction-builder");
|
|
20
20
|
const sol_1 = require("./sol");
|
|
21
21
|
const srb_1 = require("./srb");
|
|
22
|
+
const sui_1 = require("./sui");
|
|
22
23
|
const trx_1 = require("./trx");
|
|
23
24
|
class DefaultLiquidityPoolService {
|
|
24
25
|
api;
|
|
@@ -129,6 +130,9 @@ function getChainPoolService(chainSymbol, api, nodeRpcUrlsConfig, params, provid
|
|
|
129
130
|
case index_1.ChainType.SRB: {
|
|
130
131
|
return new srb_1.SrbPoolService(nodeRpcUrlsConfig, params, api);
|
|
131
132
|
}
|
|
133
|
+
case index_1.ChainType.SUI: {
|
|
134
|
+
return new sui_1.SuiPoolService(nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol), api);
|
|
135
|
+
}
|
|
132
136
|
}
|
|
133
137
|
}
|
|
134
138
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/liquidity-pool/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Big } from \"big.js\";\nimport Cache from \"timed-cache\";\nimport { TronWeb } from \"tronweb\";\nimport { FMT_BYTES, FMT_NUMBER, Web3 } from \"web3\";\nimport { NodeRpcUrlsConfig } from \"..\";\nimport { Chains } from \"../../chains\";\nimport { AllbridgeCoreClient } from \"../../client/core-api/core-client-base\";\nimport { AllbridgeCoreClientFiltered } from \"../../client/core-api/core-client-filtered\";\nimport { AllbridgeCoreSdkOptions, ChainType, EssentialWeb3 } from \"../../index\";\nimport { PoolInfo, PoolKeyObject, TokenWithChainDetails } from \"../../tokens-info\";\nimport { convertIntAmountToFloat, fromSystemPrecision } from \"../../utils/calculation\";\nimport { SYSTEM_PRECISION } from \"../../utils/calculation/constants\";\nimport { validateAmountDecimals, validateAmountGtZero } from \"../../utils/utils\";\nimport { Provider, TransactionResponse } from \"../models\";\nimport { TokenService } from \"../token\";\nimport { depositAmountToVUsd, vUsdToWithdrawalAmount } from \"../utils/calculation\";\nimport { EvmPoolService } from \"./evm\";\nimport { ApproveParams, ChainPoolService, CheckAllowanceParams, GetAllowanceParams, UserBalanceInfo } from \"./models\";\nimport { DefaultRawPoolTransactionBuilder, RawPoolTransactionBuilder } from \"./raw-pool-transaction-builder\";\nimport { SolanaPoolService } from \"./sol\";\nimport { SrbPoolService } from \"./srb\";\nimport { TronPoolService } from \"./trx\";\n\nexport interface LiquidityPoolService {\n rawTxBuilder: RawPoolTransactionBuilder;\n\n /**\n * Get amount of tokens approved for poolInfo\n * @param provider - will be used to access the network\n * @param params See {@link GetAllowanceParams}\n * @returns the amount of approved tokens\n */\n getAllowance(provider: Provider, params: GetAllowanceParams): Promise<string>;\n\n /**\n * Get amount of tokens approved for poolInfo\n * @param params See {@link GetAllowanceParams}\n * @returns the amount of approved tokens\n */\n getAllowance(params: GetAllowanceParams): Promise<string>;\n\n /**\n * Check if the amount of approved tokens is enough\n * @param provider - will be used to access the network\n * @param params See {@link CheckAllowanceParams}\n * @returns true if the amount of approved tokens is enough to make a transfer\n */\n checkAllowance(provider: Provider, params: CheckAllowanceParams): Promise<boolean>;\n\n /**\n * Check if the amount of approved tokens is enough\n * @param params See {@link CheckAllowanceParams}\n * @returns true if the amount of approved tokens is enough to make a transfer\n */\n checkAllowance(params: CheckAllowanceParams): Promise<boolean>;\n\n /**\n * @deprecated Use {@link rawTxBuilder}.{@link RawPoolTransactionBuilder.approve}<p>\n * Approve tokens usage by another address on chains\n * <p>\n * For ETH/USDT: due to specificity of the USDT contract:<br/>\n * If the current allowance is not 0, this function will perform an additional transaction to set allowance to 0 before setting the new allowance value.\n * @param provider - will be used to access the network\n * @param approveData\n */\n approve(provider: Provider, approveData: ApproveParams): Promise<TransactionResponse>;\n\n /**\n * Calculates the amount of LP tokens that will be deposited\n * @param amount The float amount of tokens that will be sent\n * @param token\n * @param provider - will be used to access the network\n * @returns amount\n */\n getAmountToBeDeposited(amount: string, token: TokenWithChainDetails, provider?: Provider): Promise<string>;\n\n /**\n * Calculates the amount of tokens will be withdrawn\n * @param amount The float amount of tokens that will be sent\n * @param accountAddress\n * @param token\n * @param provider - will be used to access the network\n * @returns amount\n */\n getAmountToBeWithdrawn(\n amount: string,\n accountAddress: string,\n token: TokenWithChainDetails,\n provider?: Provider,\n ): Promise<string>;\n\n /**\n * Get User Balance Info on Liquidity poolInfo\n * @param accountAddress\n * @param token\n * @param provider\n * @returns UserBalanceInfo\n */\n getUserBalanceInfo(\n accountAddress: string,\n token: TokenWithChainDetails,\n provider?: Provider,\n ): Promise<UserBalanceInfo>;\n\n /**\n * Gets information about the poolInfo from chain\n * @param token\n * @param provider - will be used to access the network\n * @returns poolInfo\n */\n getPoolInfoFromChain(token: TokenWithChainDetails, provider?: Provider): Promise<Required<PoolInfo>>;\n}\n\nexport class DefaultLiquidityPoolService implements LiquidityPoolService {\n public rawTxBuilder: RawPoolTransactionBuilder;\n private cache: Cache<PoolInfo>;\n\n constructor(\n private api: AllbridgeCoreClientFiltered,\n private nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n private params: AllbridgeCoreSdkOptions,\n private tokenService: TokenService,\n ) {\n this.rawTxBuilder = new DefaultRawPoolTransactionBuilder(api, nodeRpcUrlsConfig, this.params, tokenService);\n const ttl = params.cachePoolInfoChainSec > 0 ? params.cachePoolInfoChainSec * 1000 : 20 * 1000;\n this.cache = new Cache<PoolInfo>({ defaultTtl: ttl });\n }\n\n async getAllowance(a: Provider | GetAllowanceParams, b?: GetAllowanceParams): Promise<string> {\n if (b) {\n const provider = a as Provider;\n const params = b;\n return await this.tokenService.getAllowance({ ...params, spender: params.token.poolAddress }, provider);\n } else {\n const params = a as GetAllowanceParams;\n return await this.tokenService.getAllowance({ ...params, spender: params.token.poolAddress });\n }\n }\n\n async checkAllowance(a: Provider | CheckAllowanceParams, b?: CheckAllowanceParams): Promise<boolean> {\n if (b) {\n const provider = a as Provider;\n const params = b;\n return this.tokenService.checkAllowance({ ...params, spender: params.token.poolAddress }, provider);\n } else {\n const params = a as CheckAllowanceParams;\n return this.tokenService.checkAllowance({ ...params, spender: params.token.poolAddress });\n }\n }\n\n async approve(provider: Provider, approveData: ApproveParams): Promise<TransactionResponse> {\n return this.tokenService.approve(provider, { ...approveData, spender: approveData.token.poolAddress });\n }\n\n async getAmountToBeDeposited(amount: string, token: TokenWithChainDetails, provider?: Provider): Promise<string> {\n validateAmountGtZero(amount);\n validateAmountDecimals(\"amount\", amount, token.decimals);\n const pool = await this.getPoolInfoFromChain(token, provider);\n const { vUsdBalance, tokenBalance, aValue, dValue } = pool;\n const vUsd = depositAmountToVUsd(amount, aValue, dValue, tokenBalance, vUsdBalance);\n return convertIntAmountToFloat(vUsd, SYSTEM_PRECISION).toFixed();\n }\n\n async getAmountToBeWithdrawn(\n amount: string,\n accountAddress: string,\n token: TokenWithChainDetails,\n provider?: Provider,\n ): Promise<string> {\n validateAmountGtZero(amount);\n validateAmountDecimals(\"amount\", amount, token.decimals);\n const pool = await this.getPoolInfoFromChain(token, provider);\n const tokenAmountInSP = vUsdToWithdrawalAmount(amount);\n const tokenAmount = fromSystemPrecision(tokenAmountInSP, token.decimals);\n const userBalanceInfo = await this.getUserBalanceInfo(accountAddress, token, provider);\n const earned = userBalanceInfo.earned(pool) || \"0\";\n const commonAmount = Big(tokenAmount).plus(earned).toFixed();\n return convertIntAmountToFloat(commonAmount, token.decimals).toFixed();\n }\n\n async getUserBalanceInfo(\n accountAddress: string,\n token: TokenWithChainDetails,\n provider?: Provider,\n ): Promise<UserBalanceInfo> {\n return getChainPoolService(\n token.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider,\n ).getUserBalanceInfo(accountAddress, token);\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails, provider?: Provider): Promise<PoolInfo> {\n const poolKey: PoolKeyObject = { chainSymbol: token.chainSymbol, poolAddress: token.poolAddress };\n const fromCache = this.cache.get(poolKey);\n if (fromCache) {\n return fromCache;\n } else {\n const poolInfo = await getChainPoolService(\n token.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider,\n ).getPoolInfoFromChain(token);\n this.cache.put(poolKey, poolInfo);\n this.api.cachePut({ chainSymbol: token.chainSymbol, poolAddress: token.poolAddress }, poolInfo);\n return poolInfo;\n }\n }\n}\n\nexport function getChainPoolService(\n chainSymbol: string,\n api: AllbridgeCoreClient,\n nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n params: AllbridgeCoreSdkOptions,\n provider?: Provider,\n): ChainPoolService {\n switch (Chains.getChainProperty(chainSymbol).chainType) {\n case ChainType.EVM: {\n if (provider) {\n return new EvmPoolService(provider as EssentialWeb3, api);\n } else {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n const web3 = new Web3(nodeRpcUrl);\n web3.defaultReturnFormat = { number: FMT_NUMBER.STR, bytes: FMT_BYTES.HEX };\n return new EvmPoolService(web3, api);\n }\n }\n case ChainType.TRX: {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n const tronJsonRpc = params.tronJsonRpc;\n if (provider) {\n return new TronPoolService(provider as TronWeb, api, tronJsonRpc);\n } else {\n const tronWeb = new TronWeb({ fullHost: nodeRpcUrl });\n return new TronPoolService(tronWeb, api, tronJsonRpc);\n }\n }\n case ChainType.SOLANA: {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n return new SolanaPoolService(nodeRpcUrl, api);\n }\n case ChainType.SRB: {\n return new SrbPoolService(nodeRpcUrlsConfig, params, api);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/services/liquidity-pool/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Big } from \"big.js\";\nimport Cache from \"timed-cache\";\nimport { TronWeb } from \"tronweb\";\nimport { FMT_BYTES, FMT_NUMBER, Web3 } from \"web3\";\nimport { NodeRpcUrlsConfig } from \"..\";\nimport { Chains } from \"../../chains\";\nimport { AllbridgeCoreClient } from \"../../client/core-api/core-client-base\";\nimport { AllbridgeCoreClientFiltered } from \"../../client/core-api/core-client-filtered\";\nimport { AllbridgeCoreSdkOptions, ChainType, EssentialWeb3 } from \"../../index\";\nimport { PoolInfo, PoolKeyObject, TokenWithChainDetails } from \"../../tokens-info\";\nimport { convertIntAmountToFloat, fromSystemPrecision } from \"../../utils/calculation\";\nimport { SYSTEM_PRECISION } from \"../../utils/calculation/constants\";\nimport { validateAmountDecimals, validateAmountGtZero } from \"../../utils/utils\";\nimport { Provider, TransactionResponse } from \"../models\";\nimport { TokenService } from \"../token\";\nimport { depositAmountToVUsd, vUsdToWithdrawalAmount } from \"../utils/calculation\";\nimport { EvmPoolService } from \"./evm\";\nimport { ApproveParams, ChainPoolService, CheckAllowanceParams, GetAllowanceParams, UserBalanceInfo } from \"./models\";\nimport { DefaultRawPoolTransactionBuilder, RawPoolTransactionBuilder } from \"./raw-pool-transaction-builder\";\nimport { SolanaPoolService } from \"./sol\";\nimport { SrbPoolService } from \"./srb\";\nimport { SuiPoolService } from \"./sui\";\nimport { TronPoolService } from \"./trx\";\n\nexport interface LiquidityPoolService {\n rawTxBuilder: RawPoolTransactionBuilder;\n\n /**\n * Get amount of tokens approved for poolInfo\n * @param provider - will be used to access the network\n * @param params See {@link GetAllowanceParams}\n * @returns the amount of approved tokens\n */\n getAllowance(provider: Provider, params: GetAllowanceParams): Promise<string>;\n\n /**\n * Get amount of tokens approved for poolInfo\n * @param params See {@link GetAllowanceParams}\n * @returns the amount of approved tokens\n */\n getAllowance(params: GetAllowanceParams): Promise<string>;\n\n /**\n * Check if the amount of approved tokens is enough\n * @param provider - will be used to access the network\n * @param params See {@link CheckAllowanceParams}\n * @returns true if the amount of approved tokens is enough to make a transfer\n */\n checkAllowance(provider: Provider, params: CheckAllowanceParams): Promise<boolean>;\n\n /**\n * Check if the amount of approved tokens is enough\n * @param params See {@link CheckAllowanceParams}\n * @returns true if the amount of approved tokens is enough to make a transfer\n */\n checkAllowance(params: CheckAllowanceParams): Promise<boolean>;\n\n /**\n * @deprecated Use {@link rawTxBuilder}.{@link RawPoolTransactionBuilder.approve}<p>\n * Approve tokens usage by another address on chains\n * <p>\n * For ETH/USDT: due to specificity of the USDT contract:<br/>\n * If the current allowance is not 0, this function will perform an additional transaction to set allowance to 0 before setting the new allowance value.\n * @param provider - will be used to access the network\n * @param approveData\n */\n approve(provider: Provider, approveData: ApproveParams): Promise<TransactionResponse>;\n\n /**\n * Calculates the amount of LP tokens that will be deposited\n * @param amount The float amount of tokens that will be sent\n * @param token\n * @param provider - will be used to access the network\n * @returns amount\n */\n getAmountToBeDeposited(amount: string, token: TokenWithChainDetails, provider?: Provider): Promise<string>;\n\n /**\n * Calculates the amount of tokens will be withdrawn\n * @param amount The float amount of tokens that will be sent\n * @param accountAddress\n * @param token\n * @param provider - will be used to access the network\n * @returns amount\n */\n getAmountToBeWithdrawn(\n amount: string,\n accountAddress: string,\n token: TokenWithChainDetails,\n provider?: Provider\n ): Promise<string>;\n\n /**\n * Get User Balance Info on Liquidity poolInfo\n * @param accountAddress\n * @param token\n * @param provider\n * @returns UserBalanceInfo\n */\n getUserBalanceInfo(\n accountAddress: string,\n token: TokenWithChainDetails,\n provider?: Provider\n ): Promise<UserBalanceInfo>;\n\n /**\n * Gets information about the poolInfo from chain\n * @param token\n * @param provider - will be used to access the network\n * @returns poolInfo\n */\n getPoolInfoFromChain(token: TokenWithChainDetails, provider?: Provider): Promise<Required<PoolInfo>>;\n}\n\nexport class DefaultLiquidityPoolService implements LiquidityPoolService {\n public rawTxBuilder: RawPoolTransactionBuilder;\n private cache: Cache<PoolInfo>;\n\n constructor(\n private api: AllbridgeCoreClientFiltered,\n private nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n private params: AllbridgeCoreSdkOptions,\n private tokenService: TokenService\n ) {\n this.rawTxBuilder = new DefaultRawPoolTransactionBuilder(api, nodeRpcUrlsConfig, this.params, tokenService);\n const ttl = params.cachePoolInfoChainSec > 0 ? params.cachePoolInfoChainSec * 1000 : 20 * 1000;\n this.cache = new Cache<PoolInfo>({ defaultTtl: ttl });\n }\n\n async getAllowance(a: Provider | GetAllowanceParams, b?: GetAllowanceParams): Promise<string> {\n if (b) {\n const provider = a as Provider;\n const params = b;\n return await this.tokenService.getAllowance({ ...params, spender: params.token.poolAddress }, provider);\n } else {\n const params = a as GetAllowanceParams;\n return await this.tokenService.getAllowance({ ...params, spender: params.token.poolAddress });\n }\n }\n\n async checkAllowance(a: Provider | CheckAllowanceParams, b?: CheckAllowanceParams): Promise<boolean> {\n if (b) {\n const provider = a as Provider;\n const params = b;\n return this.tokenService.checkAllowance({ ...params, spender: params.token.poolAddress }, provider);\n } else {\n const params = a as CheckAllowanceParams;\n return this.tokenService.checkAllowance({ ...params, spender: params.token.poolAddress });\n }\n }\n\n async approve(provider: Provider, approveData: ApproveParams): Promise<TransactionResponse> {\n return this.tokenService.approve(provider, { ...approveData, spender: approveData.token.poolAddress });\n }\n\n async getAmountToBeDeposited(amount: string, token: TokenWithChainDetails, provider?: Provider): Promise<string> {\n validateAmountGtZero(amount);\n validateAmountDecimals(\"amount\", amount, token.decimals);\n const pool = await this.getPoolInfoFromChain(token, provider);\n const { vUsdBalance, tokenBalance, aValue, dValue } = pool;\n const vUsd = depositAmountToVUsd(amount, aValue, dValue, tokenBalance, vUsdBalance);\n return convertIntAmountToFloat(vUsd, SYSTEM_PRECISION).toFixed();\n }\n\n async getAmountToBeWithdrawn(\n amount: string,\n accountAddress: string,\n token: TokenWithChainDetails,\n provider?: Provider\n ): Promise<string> {\n validateAmountGtZero(amount);\n validateAmountDecimals(\"amount\", amount, token.decimals);\n const pool = await this.getPoolInfoFromChain(token, provider);\n const tokenAmountInSP = vUsdToWithdrawalAmount(amount);\n const tokenAmount = fromSystemPrecision(tokenAmountInSP, token.decimals);\n const userBalanceInfo = await this.getUserBalanceInfo(accountAddress, token, provider);\n const earned = userBalanceInfo.earned(pool) || \"0\";\n const commonAmount = Big(tokenAmount).plus(earned).toFixed();\n return convertIntAmountToFloat(commonAmount, token.decimals).toFixed();\n }\n\n async getUserBalanceInfo(\n accountAddress: string,\n token: TokenWithChainDetails,\n provider?: Provider\n ): Promise<UserBalanceInfo> {\n return getChainPoolService(\n token.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider\n ).getUserBalanceInfo(accountAddress, token);\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails, provider?: Provider): Promise<PoolInfo> {\n const poolKey: PoolKeyObject = { chainSymbol: token.chainSymbol, poolAddress: token.poolAddress };\n const fromCache = this.cache.get(poolKey);\n if (fromCache) {\n return fromCache;\n } else {\n const poolInfo = await getChainPoolService(\n token.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider\n ).getPoolInfoFromChain(token);\n this.cache.put(poolKey, poolInfo);\n this.api.cachePut({ chainSymbol: token.chainSymbol, poolAddress: token.poolAddress }, poolInfo);\n return poolInfo;\n }\n }\n}\n\nexport function getChainPoolService(\n chainSymbol: string,\n api: AllbridgeCoreClient,\n nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n params: AllbridgeCoreSdkOptions,\n provider?: Provider\n): ChainPoolService {\n switch (Chains.getChainProperty(chainSymbol).chainType) {\n case ChainType.EVM: {\n if (provider) {\n return new EvmPoolService(provider as EssentialWeb3, api);\n } else {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n const web3 = new Web3(nodeRpcUrl);\n web3.defaultReturnFormat = { number: FMT_NUMBER.STR, bytes: FMT_BYTES.HEX };\n return new EvmPoolService(web3, api);\n }\n }\n case ChainType.TRX: {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n const tronJsonRpc = params.tronJsonRpc;\n if (provider) {\n return new TronPoolService(provider as TronWeb, api, tronJsonRpc);\n } else {\n const tronWeb = new TronWeb({ fullHost: nodeRpcUrl });\n return new TronPoolService(tronWeb, api, tronJsonRpc);\n }\n }\n case ChainType.SOLANA: {\n const nodeRpcUrl = nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol);\n return new SolanaPoolService(nodeRpcUrl, api);\n }\n case ChainType.SRB: {\n return new SrbPoolService(nodeRpcUrlsConfig, params, api);\n }\n case ChainType.SUI: {\n return new SuiPoolService(nodeRpcUrlsConfig.getNodeRpcUrl(chainSymbol), api);\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raw-pool-transaction-builder.js","sourceRoot":"","sources":["../../../../src/services/liquidity-pool/raw-pool-transaction-builder.ts"],"names":[],"mappings":";;;AAGA,yDAAkE;AAClE,iEAAqE;AACrE,6CAAiF;AAIjF,mCAA8C;AAqC9C,MAAa,gCAAgC;IAEjC;IACA;IACA;IACA;IAJV,YACU,GAAwB,EACxB,iBAAoC,EACpC,MAA+B,EAC/B,YAA0B;QAH1B,QAAG,GAAH,GAAG,CAAqB;QACxB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,WAAM,GAAN,MAAM,CAAyB;QAC/B,iBAAY,GAAZ,YAAY,CAAc;IACjC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,CAA2B,EAAE,CAAiB;QAC1D,IAAI,CAAC,EAAE,CAAC;YACN,MAAM,QAAQ,GAAG,CAAa,CAAC;YAC/B,MAAM,WAAW,GAAkB,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC,YAAY,CAAC,0BAA0B,CACjD;gBACE,GAAG,WAAW;gBACd,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW;aACvC,EACD,QAAQ,CACT,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAkB,CAAkB,CAAC;YACtD,OAAO,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC;gBAClD,GAAG,WAAW;gBACd,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW;aACvC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAsC,EAAE,QAAmB;QACvE,IAAA,4BAAoB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAA,8BAAsB,EAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,GAAG,IAAA,qCAAuB,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QACxF,OAAO,IAAA,2BAAmB,EACxB,MAAM,CAAC,KAAK,CAAC,WAAW,EACxB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAsC,EAAE,QAAmB;QACxE,IAAA,4BAAoB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAA,8BAAsB,EAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,GAAG,IAAA,qCAAuB,EAAC,MAAM,CAAC,MAAM,EAAE,4BAAgB,CAAC,CAAC,OAAO,EAAE,CAAC;QACnF,OAAO,IAAA,2BAAmB,EACxB,MAAM,CAAC,KAAK,CAAC,WAAW,EACxB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAA4B,EAAE,QAAmB;QAClE,OAAO,IAAA,2BAAmB,EACxB,MAAM,CAAC,KAAK,CAAC,WAAW,EACxB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;CACF;AA/DD,4EA+DC","sourcesContent":["import { NodeRpcUrlsConfig } from \"..\";\nimport { AllbridgeCoreClient } from \"../../client/core-api/core-client-base\";\nimport { AllbridgeCoreSdkOptions } from \"../../index\";\nimport { convertFloatAmountToInt } from \"../../utils/calculation\";\nimport { SYSTEM_PRECISION } from \"../../utils/calculation/constants\";\nimport { validateAmountDecimals, validateAmountGtZero } from \"../../utils/utils\";\nimport { Provider, RawTransaction } from \"../models\";\nimport { TokenService } from \"../token\";\nimport { ApproveParams, LiquidityPoolsParams, LiquidityPoolsParamsWithAmount } from \"./models\";\nimport { getChainPoolService } from \"./index\";\n\nexport interface RawPoolTransactionBuilder {\n /**\n * Creates a Raw Transaction for approving tokens usage by the bridge\n * @param provider - will be used to access the network\n * @param approveData\n */\n approve(provider: Provider, approveData: ApproveParams): Promise<RawTransaction>;\n /**\n * Creates a Raw Transaction for approving tokens usage by the bridge\n * @param approveData\n */\n approve(approveData: ApproveParams): Promise<RawTransaction>;\n\n /**\n * Creates a Raw Transaction for depositing tokens to Liquidity pools\n * @param params\n * @param provider - will be used to access the network\n */\n deposit(params: LiquidityPoolsParamsWithAmount, provider?: Provider): Promise<RawTransaction>;\n\n /**\n * Creates a Raw Transaction for withdrawing tokens from Liquidity pools\n * @param params\n * @param provider - will be used to access the network\n */\n withdraw(params: LiquidityPoolsParamsWithAmount, provider?: Provider): Promise<RawTransaction>;\n\n /**\n * Creates a Raw Transaction for claiming rewards from Liquidity pools\n * @param params\n * @param provider - will be used to access the network\n */\n claimRewards(params: LiquidityPoolsParams, provider?: Provider): Promise<RawTransaction>;\n}\n\nexport class DefaultRawPoolTransactionBuilder implements RawPoolTransactionBuilder {\n constructor(\n private api: AllbridgeCoreClient,\n private nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n private params: AllbridgeCoreSdkOptions,\n private tokenService: TokenService
|
|
1
|
+
{"version":3,"file":"raw-pool-transaction-builder.js","sourceRoot":"","sources":["../../../../src/services/liquidity-pool/raw-pool-transaction-builder.ts"],"names":[],"mappings":";;;AAGA,yDAAkE;AAClE,iEAAqE;AACrE,6CAAiF;AAIjF,mCAA8C;AAqC9C,MAAa,gCAAgC;IAEjC;IACA;IACA;IACA;IAJV,YACU,GAAwB,EACxB,iBAAoC,EACpC,MAA+B,EAC/B,YAA0B;QAH1B,QAAG,GAAH,GAAG,CAAqB;QACxB,sBAAiB,GAAjB,iBAAiB,CAAmB;QACpC,WAAM,GAAN,MAAM,CAAyB;QAC/B,iBAAY,GAAZ,YAAY,CAAc;IACjC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,CAA2B,EAAE,CAAiB;QAC1D,IAAI,CAAC,EAAE,CAAC;YACN,MAAM,QAAQ,GAAG,CAAa,CAAC;YAC/B,MAAM,WAAW,GAAkB,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC,YAAY,CAAC,0BAA0B,CACjD;gBACE,GAAG,WAAW;gBACd,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW;aACvC,EACD,QAAQ,CACT,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,WAAW,GAAkB,CAAkB,CAAC;YACtD,OAAO,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC;gBAClD,GAAG,WAAW;gBACd,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW;aACvC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAsC,EAAE,QAAmB;QACvE,IAAA,4BAAoB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAA,8BAAsB,EAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,GAAG,IAAA,qCAAuB,EAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QACxF,OAAO,IAAA,2BAAmB,EACxB,MAAM,CAAC,KAAK,CAAC,WAAW,EACxB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAsC,EAAE,QAAmB;QACxE,IAAA,4BAAoB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACpC,IAAA,8BAAsB,EAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QACvE,MAAM,CAAC,MAAM,GAAG,IAAA,qCAAuB,EAAC,MAAM,CAAC,MAAM,EAAE,4BAAgB,CAAC,CAAC,OAAO,EAAE,CAAC;QACnF,OAAO,IAAA,2BAAmB,EACxB,MAAM,CAAC,KAAK,CAAC,WAAW,EACxB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CAAC,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAA4B,EAAE,QAAmB;QAClE,OAAO,IAAA,2BAAmB,EACxB,MAAM,CAAC,KAAK,CAAC,WAAW,EACxB,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,iBAAiB,EACtB,IAAI,CAAC,MAAM,EACX,QAAQ,CACT,CAAC,+BAA+B,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;CACF;AA/DD,4EA+DC","sourcesContent":["import { NodeRpcUrlsConfig } from \"..\";\nimport { AllbridgeCoreClient } from \"../../client/core-api/core-client-base\";\nimport { AllbridgeCoreSdkOptions } from \"../../index\";\nimport { convertFloatAmountToInt } from \"../../utils/calculation\";\nimport { SYSTEM_PRECISION } from \"../../utils/calculation/constants\";\nimport { validateAmountDecimals, validateAmountGtZero } from \"../../utils/utils\";\nimport { Provider, RawTransaction } from \"../models\";\nimport { TokenService } from \"../token\";\nimport { ApproveParams, LiquidityPoolsParams, LiquidityPoolsParamsWithAmount } from \"./models\";\nimport { getChainPoolService } from \"./index\";\n\nexport interface RawPoolTransactionBuilder {\n /**\n * Creates a Raw Transaction for approving tokens usage by the bridge\n * @param provider - will be used to access the network\n * @param approveData\n */\n approve(provider: Provider, approveData: ApproveParams): Promise<RawTransaction>;\n /**\n * Creates a Raw Transaction for approving tokens usage by the bridge\n * @param approveData\n */\n approve(approveData: ApproveParams): Promise<RawTransaction>;\n\n /**\n * Creates a Raw Transaction for depositing tokens to Liquidity pools\n * @param params\n * @param provider - will be used to access the network\n */\n deposit(params: LiquidityPoolsParamsWithAmount, provider?: Provider): Promise<RawTransaction>;\n\n /**\n * Creates a Raw Transaction for withdrawing tokens from Liquidity pools\n * @param params\n * @param provider - will be used to access the network\n */\n withdraw(params: LiquidityPoolsParamsWithAmount, provider?: Provider): Promise<RawTransaction>;\n\n /**\n * Creates a Raw Transaction for claiming rewards from Liquidity pools\n * @param params\n * @param provider - will be used to access the network\n */\n claimRewards(params: LiquidityPoolsParams, provider?: Provider): Promise<RawTransaction>;\n}\n\nexport class DefaultRawPoolTransactionBuilder implements RawPoolTransactionBuilder {\n constructor(\n private api: AllbridgeCoreClient,\n private nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n private params: AllbridgeCoreSdkOptions,\n private tokenService: TokenService\n ) {}\n\n async approve(a: Provider | ApproveParams, b?: ApproveParams): Promise<RawTransaction> {\n if (b) {\n const provider = a as Provider;\n const approveData: ApproveParams = b;\n return this.tokenService.buildRawTransactionApprove(\n {\n ...approveData,\n spender: approveData.token.poolAddress,\n },\n provider\n );\n } else {\n const approveData: ApproveParams = a as ApproveParams;\n return this.tokenService.buildRawTransactionApprove({\n ...approveData,\n spender: approveData.token.poolAddress,\n });\n }\n }\n\n async deposit(params: LiquidityPoolsParamsWithAmount, provider?: Provider): Promise<RawTransaction> {\n validateAmountGtZero(params.amount);\n validateAmountDecimals(\"amount\", params.amount, params.token.decimals);\n params.amount = convertFloatAmountToInt(params.amount, params.token.decimals).toFixed();\n return getChainPoolService(\n params.token.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider\n ).buildRawTransactionDeposit(params);\n }\n\n async withdraw(params: LiquidityPoolsParamsWithAmount, provider?: Provider): Promise<RawTransaction> {\n validateAmountGtZero(params.amount);\n validateAmountDecimals(\"amount\", params.amount, params.token.decimals);\n params.amount = convertFloatAmountToInt(params.amount, SYSTEM_PRECISION).toFixed();\n return getChainPoolService(\n params.token.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider\n ).buildRawTransactionWithdraw(params);\n }\n\n async claimRewards(params: LiquidityPoolsParams, provider?: Provider): Promise<RawTransaction> {\n return getChainPoolService(\n params.token.chainSymbol,\n this.api,\n this.nodeRpcUrlsConfig,\n this.params,\n provider\n ).buildRawTransactionClaimRewards(params);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/sol/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { AnchorProvider, BN, Program, Provider, Spl, web3 } from \"@project-serum/anchor\";\nimport { Connection, PublicKey, TransactionInstruction } from \"@solana/web3.js\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../../tokens-info\";\nimport { calculatePoolInfoImbalance } from \"../../../utils/calculation\";\nimport { RawTransaction } from \"../../models\";\nimport { Bridge as BridgeType, IDL as bridgeIdl } from \"../../models/sol/types/bridge\";\nimport { getTokenAccountData } from \"../../utils/sol\";\nimport {\n getAssociatedAccount,\n getAuthorityAccount,\n getBridgeTokenAccount,\n getConfigAccount,\n getUserDepositAccount,\n} from \"../../utils/sol/accounts\";\nimport { addUnitLimitAndUnitPriceToTx } from \"../../utils/sol/compute-budget\";\nimport { LiquidityPoolsParams, LiquidityPoolsParamsWithAmount, UserBalance, UserBalanceInfo } from \"../models\";\nimport { ChainPoolService } from \"../models/pool\";\n\ninterface LPAccounts {\n mint: PublicKey;\n user: PublicKey;\n config: PublicKey;\n pool: PublicKey;\n bridgeAuthority: PublicKey;\n userDeposit: PublicKey;\n userToken: PublicKey;\n bridgeToken: PublicKey;\n}\n\ninterface LPTransactionData {\n accounts: LPAccounts;\n preInstructions: TransactionInstruction[];\n}\n\nexport class SolanaPoolService extends ChainPoolService {\n chainType: ChainType.SOLANA = ChainType.SOLANA;\n private P = 48;\n\n constructor(\n public solanaRpcUrl: string,\n public api: AllbridgeCoreClient,\n ) {\n super();\n }\n\n async getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo> {\n const provider = this.buildAnchorProvider(accountAddress);\n const bridge = this.getBridge(token.bridgeAddress, provider);\n const poolAccount = new PublicKey(token.poolAddress);\n const poolAccountInfo = await bridge.account.pool.fetch(poolAccount);\n try {\n const userDepositAccount = await getUserDepositAccount(\n new PublicKey(accountAddress),\n poolAccountInfo.mint,\n bridge.programId,\n );\n const { lpAmount, rewardDebt } = await bridge.account.userDeposit.fetch(userDepositAccount);\n return new UserBalance({\n lpAmount: lpAmount.toString(),\n rewardDebt: rewardDebt.toString(),\n });\n } catch (ignoreError) {\n return new UserBalance({ lpAmount: \"0\", rewardDebt: \"0\" });\n }\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo> {\n const provider = this.buildAnchorProvider(token.bridgeAddress);\n const pool = await this.getBridge(token.bridgeAddress, provider).account.pool.fetch(token.poolAddress);\n const vUsdBalance = pool.vUsdBalance.toString();\n const tokenBalance = pool.tokenBalance.toString();\n const imbalance = calculatePoolInfoImbalance({ tokenBalance, vUsdBalance });\n return {\n dValue: pool.d.toString(),\n aValue: pool.a.toString(),\n totalLpAmount: pool.totalLpAmount.toString(),\n vUsdBalance,\n tokenBalance,\n accRewardPerShareP: pool.accRewardPerShareP.toString(),\n p: this.P,\n imbalance,\n };\n }\n\n async buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n const { bridge, accounts, preInstructions } = await this.prepareDataForTransaction(params);\n\n const tx = await bridge.methods\n .deposit(new BN(params.amount))\n .accounts(accounts)\n .preInstructions(preInstructions)\n .transaction();\n tx.recentBlockhash = (\n await this.buildAnchorProvider(params.accountAddress).connection.getLatestBlockhash()\n ).blockhash;\n tx.feePayer = new PublicKey(params.accountAddress);\n await addUnitLimitAndUnitPriceToTx(tx, params.txFeeParams, this.solanaRpcUrl);\n return tx;\n }\n\n async buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n const { bridge, accounts, preInstructions } = await this.prepareDataForTransaction(params);\n\n const tx = await bridge.methods\n .withdraw(new BN(params.amount))\n .accounts(accounts)\n .preInstructions(preInstructions)\n .transaction();\n tx.recentBlockhash = (\n await this.buildAnchorProvider(params.accountAddress).connection.getLatestBlockhash()\n ).blockhash;\n tx.feePayer = new PublicKey(params.accountAddress);\n await addUnitLimitAndUnitPriceToTx(tx, params.txFeeParams, this.solanaRpcUrl);\n return tx;\n }\n\n async buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawTransaction> {\n const { bridge, accounts, preInstructions } = await this.prepareDataForTransaction(params);\n\n const tx = await bridge.methods.claimRewards().accounts(accounts).preInstructions(preInstructions).transaction();\n tx.recentBlockhash = (\n await this.buildAnchorProvider(params.accountAddress).connection.getLatestBlockhash()\n ).blockhash;\n tx.feePayer = new PublicKey(params.accountAddress);\n await addUnitLimitAndUnitPriceToTx(tx, params.txFeeParams, this.solanaRpcUrl);\n return tx;\n }\n\n private async prepareDataForTransaction(params: LiquidityPoolsParams) {\n const provider = this.buildAnchorProvider(params.accountAddress);\n const bridge = this.getBridge(params.token.bridgeAddress, provider);\n\n const { accounts, preInstructions } = await this._getLPTransactionData(\n bridge,\n params.token.poolAddress,\n params.accountAddress,\n provider,\n );\n return { bridge, accounts, preInstructions };\n }\n\n private getBridge(bridgeAddress: string, provider: Provider): Program<BridgeType> {\n return new Program<BridgeType>(bridgeIdl, bridgeAddress, provider);\n }\n\n private buildAnchorProvider(accountAddress: string): Provider {\n const connection = new Connection(this.solanaRpcUrl, \"confirmed\");\n\n const publicKey = new PublicKey(accountAddress);\n\n return new AnchorProvider(\n connection,\n // @ts-expect-error enough wallet for fetch actions\n { publicKey: publicKey },\n {\n preflightCommitment: \"confirmed\",\n commitment: \"confirmed\",\n },\n );\n }\n\n private async _getLPTransactionData(\n bridge: Program<BridgeType>,\n poolAddress: string,\n account: string,\n provider: Provider,\n ): Promise<LPTransactionData> {\n const user = new PublicKey(account);\n const configAccount = await getConfigAccount(bridge.programId);\n const bridgeAuthority = await getAuthorityAccount(bridge.programId);\n const poolAccount = new PublicKey(poolAddress);\n const poolAccountInfo = await bridge.account.pool.fetch(poolAccount);\n const tokenMintAccount = poolAccountInfo.mint;\n const userToken = await getAssociatedAccount(user, tokenMintAccount);\n const bridgeTokenAccount = await getBridgeTokenAccount(tokenMintAccount, bridge.programId);\n const userDepositAccount = await getUserDepositAccount(user, tokenMintAccount, bridge.programId);\n\n const preInstructions: TransactionInstruction[] = [\n web3.ComputeBudgetProgram.setComputeUnitLimit({\n units: 1000000,\n }),\n ];\n\n try {\n await getTokenAccountData(userToken, provider);\n } catch (ignoreError) {\n const associatedProgram = Spl.associatedToken(provider);\n const createUserTokenInstruction: TransactionInstruction = await associatedProgram.methods\n .create()\n .accounts({\n mint: tokenMintAccount,\n owner: user,\n associatedAccount: userToken,\n })\n .instruction();\n preInstructions.push(createUserTokenInstruction);\n }\n\n try {\n await bridge.account.userDeposit.fetch(userDepositAccount);\n } catch (ignoreError) {\n const instruction: TransactionInstruction = await bridge.methods\n .initDepositAccount()\n .accounts({\n mint: tokenMintAccount,\n user,\n userDeposit: userDepositAccount,\n })\n .instruction();\n preInstructions.push(instruction);\n }\n\n const accounts: LPAccounts = {\n mint: tokenMintAccount,\n user,\n config: configAccount,\n pool: poolAccount,\n bridgeAuthority: bridgeAuthority,\n userDeposit: userDepositAccount,\n userToken,\n bridgeToken: bridgeTokenAccount,\n };\n\n return { accounts, preInstructions };\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/sol/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { AnchorProvider, BN, Program, Provider, Spl, web3 } from \"@project-serum/anchor\";\nimport { Connection, PublicKey, TransactionInstruction } from \"@solana/web3.js\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../../tokens-info\";\nimport { calculatePoolInfoImbalance } from \"../../../utils/calculation\";\nimport { RawTransaction } from \"../../models\";\nimport { Bridge as BridgeType, IDL as bridgeIdl } from \"../../models/sol/types/bridge\";\nimport { getTokenAccountData } from \"../../utils/sol\";\nimport {\n getAssociatedAccount,\n getAuthorityAccount,\n getBridgeTokenAccount,\n getConfigAccount,\n getUserDepositAccount,\n} from \"../../utils/sol/accounts\";\nimport { addUnitLimitAndUnitPriceToTx } from \"../../utils/sol/compute-budget\";\nimport { LiquidityPoolsParams, LiquidityPoolsParamsWithAmount, UserBalance, UserBalanceInfo } from \"../models\";\nimport { ChainPoolService } from \"../models/pool\";\n\ninterface LPAccounts {\n mint: PublicKey;\n user: PublicKey;\n config: PublicKey;\n pool: PublicKey;\n bridgeAuthority: PublicKey;\n userDeposit: PublicKey;\n userToken: PublicKey;\n bridgeToken: PublicKey;\n}\n\ninterface LPTransactionData {\n accounts: LPAccounts;\n preInstructions: TransactionInstruction[];\n}\n\nexport class SolanaPoolService extends ChainPoolService {\n chainType: ChainType.SOLANA = ChainType.SOLANA;\n private P = 48;\n\n constructor(\n public solanaRpcUrl: string,\n public api: AllbridgeCoreClient\n ) {\n super();\n }\n\n async getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo> {\n const provider = this.buildAnchorProvider(accountAddress);\n const bridge = this.getBridge(token.bridgeAddress, provider);\n const poolAccount = new PublicKey(token.poolAddress);\n const poolAccountInfo = await bridge.account.pool.fetch(poolAccount);\n try {\n const userDepositAccount = await getUserDepositAccount(\n new PublicKey(accountAddress),\n poolAccountInfo.mint,\n bridge.programId\n );\n const { lpAmount, rewardDebt } = await bridge.account.userDeposit.fetch(userDepositAccount);\n return new UserBalance({\n lpAmount: lpAmount.toString(),\n rewardDebt: rewardDebt.toString(),\n });\n } catch (ignoreError) {\n return new UserBalance({ lpAmount: \"0\", rewardDebt: \"0\" });\n }\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo> {\n const provider = this.buildAnchorProvider(token.bridgeAddress);\n const pool = await this.getBridge(token.bridgeAddress, provider).account.pool.fetch(token.poolAddress);\n const vUsdBalance = pool.vUsdBalance.toString();\n const tokenBalance = pool.tokenBalance.toString();\n const imbalance = calculatePoolInfoImbalance({ tokenBalance, vUsdBalance });\n return {\n dValue: pool.d.toString(),\n aValue: pool.a.toString(),\n totalLpAmount: pool.totalLpAmount.toString(),\n vUsdBalance,\n tokenBalance,\n accRewardPerShareP: pool.accRewardPerShareP.toString(),\n p: this.P,\n imbalance,\n };\n }\n\n async buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n const { bridge, accounts, preInstructions } = await this.prepareDataForTransaction(params);\n\n const tx = await bridge.methods\n .deposit(new BN(params.amount))\n .accounts(accounts)\n .preInstructions(preInstructions)\n .transaction();\n tx.recentBlockhash = (\n await this.buildAnchorProvider(params.accountAddress).connection.getLatestBlockhash()\n ).blockhash;\n tx.feePayer = new PublicKey(params.accountAddress);\n await addUnitLimitAndUnitPriceToTx(tx, params.txFeeParams, this.solanaRpcUrl);\n return tx;\n }\n\n async buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n const { bridge, accounts, preInstructions } = await this.prepareDataForTransaction(params);\n\n const tx = await bridge.methods\n .withdraw(new BN(params.amount))\n .accounts(accounts)\n .preInstructions(preInstructions)\n .transaction();\n tx.recentBlockhash = (\n await this.buildAnchorProvider(params.accountAddress).connection.getLatestBlockhash()\n ).blockhash;\n tx.feePayer = new PublicKey(params.accountAddress);\n await addUnitLimitAndUnitPriceToTx(tx, params.txFeeParams, this.solanaRpcUrl);\n return tx;\n }\n\n async buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawTransaction> {\n const { bridge, accounts, preInstructions } = await this.prepareDataForTransaction(params);\n\n const tx = await bridge.methods.claimRewards().accounts(accounts).preInstructions(preInstructions).transaction();\n tx.recentBlockhash = (\n await this.buildAnchorProvider(params.accountAddress).connection.getLatestBlockhash()\n ).blockhash;\n tx.feePayer = new PublicKey(params.accountAddress);\n await addUnitLimitAndUnitPriceToTx(tx, params.txFeeParams, this.solanaRpcUrl);\n return tx;\n }\n\n private async prepareDataForTransaction(params: LiquidityPoolsParams) {\n const provider = this.buildAnchorProvider(params.accountAddress);\n const bridge = this.getBridge(params.token.bridgeAddress, provider);\n\n const { accounts, preInstructions } = await this._getLPTransactionData(\n bridge,\n params.token.poolAddress,\n params.accountAddress,\n provider\n );\n return { bridge, accounts, preInstructions };\n }\n\n private getBridge(bridgeAddress: string, provider: Provider): Program<BridgeType> {\n return new Program<BridgeType>(bridgeIdl, bridgeAddress, provider);\n }\n\n private buildAnchorProvider(accountAddress: string): Provider {\n const connection = new Connection(this.solanaRpcUrl, \"confirmed\");\n\n const publicKey = new PublicKey(accountAddress);\n\n return new AnchorProvider(\n connection,\n // @ts-expect-error enough wallet for fetch actions\n { publicKey: publicKey },\n {\n preflightCommitment: \"confirmed\",\n commitment: \"confirmed\",\n }\n );\n }\n\n private async _getLPTransactionData(\n bridge: Program<BridgeType>,\n poolAddress: string,\n account: string,\n provider: Provider\n ): Promise<LPTransactionData> {\n const user = new PublicKey(account);\n const configAccount = await getConfigAccount(bridge.programId);\n const bridgeAuthority = await getAuthorityAccount(bridge.programId);\n const poolAccount = new PublicKey(poolAddress);\n const poolAccountInfo = await bridge.account.pool.fetch(poolAccount);\n const tokenMintAccount = poolAccountInfo.mint;\n const userToken = await getAssociatedAccount(user, tokenMintAccount);\n const bridgeTokenAccount = await getBridgeTokenAccount(tokenMintAccount, bridge.programId);\n const userDepositAccount = await getUserDepositAccount(user, tokenMintAccount, bridge.programId);\n\n const preInstructions: TransactionInstruction[] = [\n web3.ComputeBudgetProgram.setComputeUnitLimit({\n units: 1000000,\n }),\n ];\n\n try {\n await getTokenAccountData(userToken, provider);\n } catch (ignoreError) {\n const associatedProgram = Spl.associatedToken(provider);\n const createUserTokenInstruction: TransactionInstruction = await associatedProgram.methods\n .create()\n .accounts({\n mint: tokenMintAccount,\n owner: user,\n associatedAccount: userToken,\n })\n .instruction();\n preInstructions.push(createUserTokenInstruction);\n }\n\n try {\n await bridge.account.userDeposit.fetch(userDepositAccount);\n } catch (ignoreError) {\n const instruction: TransactionInstruction = await bridge.methods\n .initDepositAccount()\n .accounts({\n mint: tokenMintAccount,\n user,\n userDeposit: userDepositAccount,\n })\n .instruction();\n preInstructions.push(instruction);\n }\n\n const accounts: LPAccounts = {\n mint: tokenMintAccount,\n user,\n config: configAccount,\n pool: poolAccount,\n bridgeAuthority: bridgeAuthority,\n userDeposit: userDepositAccount,\n userToken,\n bridgeToken: bridgeTokenAccount,\n };\n\n return { accounts, preInstructions };\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/srb/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { contract } from \"@stellar/stellar-sdk\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { AllbridgeCoreSdkOptions, ChainSymbol, ChainType } from \"../../../index\";\nimport {\n LiquidityPoolsParams,\n LiquidityPoolsParamsWithAmount,\n PoolInfo,\n SdkError,\n TokenWithChainDetails,\n UserBalanceInfo,\n} from \"../../../models\";\nimport { calculatePoolInfoImbalance } from \"../../../utils/calculation\";\nimport { NodeRpcUrlsConfig } from \"../../index\";\nimport { RawTransaction } from \"../../models\";\nimport { PoolContract } from \"../../models/srb/pool-contract\";\nimport { ChainPoolService, UserBalance } from \"../models\";\nimport ContractClientOptions = contract.ClientOptions;\n\nexport class SrbPoolService extends ChainPoolService {\n chainType: ChainType.SRB = ChainType.SRB;\n private P = 48;\n\n constructor(\n readonly nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n readonly params: AllbridgeCoreSdkOptions,\n readonly api: AllbridgeCoreClient
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/srb/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { contract } from \"@stellar/stellar-sdk\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { AllbridgeCoreSdkOptions, ChainSymbol, ChainType } from \"../../../index\";\nimport {\n LiquidityPoolsParams,\n LiquidityPoolsParamsWithAmount,\n PoolInfo,\n SdkError,\n TokenWithChainDetails,\n UserBalanceInfo,\n} from \"../../../models\";\nimport { calculatePoolInfoImbalance } from \"../../../utils/calculation\";\nimport { NodeRpcUrlsConfig } from \"../../index\";\nimport { RawTransaction } from \"../../models\";\nimport { PoolContract } from \"../../models/srb/pool-contract\";\nimport { ChainPoolService, UserBalance } from \"../models\";\nimport ContractClientOptions = contract.ClientOptions;\n\nexport class SrbPoolService extends ChainPoolService {\n chainType: ChainType.SRB = ChainType.SRB;\n private P = 48;\n\n constructor(\n readonly nodeRpcUrlsConfig: NodeRpcUrlsConfig,\n readonly params: AllbridgeCoreSdkOptions,\n readonly api: AllbridgeCoreClient\n ) {\n super();\n }\n\n async getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo> {\n const poolContract = this.getContract(token.poolAddress);\n const result = (await poolContract.get_user_deposit({ user: accountAddress })).result;\n if (result.isErr()) {\n throw new SdkError();\n }\n const userDeposit = result.unwrap();\n return new UserBalance({\n lpAmount: userDeposit.lp_amount.toString(),\n rewardDebt: userDeposit.reward_debt.toString(),\n });\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo> {\n const poolContract = this.getContract(token.poolAddress);\n const result = (await poolContract.get_pool()).result;\n if (result.isErr()) {\n throw new SdkError();\n }\n const pool = result.unwrap();\n return {\n aValue: pool.a.toString(),\n accRewardPerShareP: pool.acc_reward_per_share_p.toString(),\n dValue: pool.d.toString(),\n tokenBalance: pool.token_balance.toString(),\n p: this.P,\n totalLpAmount: pool.total_lp_amount.toString(),\n vUsdBalance: pool.v_usd_balance.toString(),\n imbalance: calculatePoolInfoImbalance({\n tokenBalance: pool.token_balance.toString(),\n vUsdBalance: pool.v_usd_balance.toString(),\n }),\n };\n }\n\n async buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n const poolContract = this.getContract(params.token.poolAddress, params.accountAddress);\n return (\n await poolContract.deposit({\n sender: params.accountAddress,\n amount: BigInt(params.amount),\n })\n ).toXDR();\n }\n\n async buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawTransaction> {\n const poolContract = this.getContract(params.token.poolAddress, params.accountAddress);\n return (\n await poolContract.withdraw({\n sender: params.accountAddress,\n amount_lp: BigInt(params.amount),\n })\n ).toXDR();\n }\n\n async buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawTransaction> {\n const poolContract = this.getContract(params.token.poolAddress, params.accountAddress);\n return (\n await poolContract.claim_rewards({\n sender: params.accountAddress,\n })\n ).toXDR();\n }\n\n private getContract(address: string, sender?: string): PoolContract {\n const config: ContractClientOptions = {\n publicKey: sender,\n contractId: address,\n networkPassphrase: this.params.sorobanNetworkPassphrase,\n rpcUrl: this.nodeRpcUrlsConfig.getNodeRpcUrl(ChainSymbol.SRB),\n };\n return new PoolContract(config);\n }\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ChainType } from "../../../chains/chain.enums";
|
|
2
|
+
import { AllbridgeCoreClient } from "../../../client/core-api/core-client-base";
|
|
3
|
+
import { PoolInfo, TokenWithChainDetails } from "../../../tokens-info";
|
|
4
|
+
import { RawSuiTransaction } from "../../models";
|
|
5
|
+
import { ChainPoolService, LiquidityPoolsParams, LiquidityPoolsParamsWithAmount, UserBalanceInfo } from "../models";
|
|
6
|
+
export declare class SuiPoolService extends ChainPoolService {
|
|
7
|
+
suiRpcUrl: string;
|
|
8
|
+
api: AllbridgeCoreClient;
|
|
9
|
+
chainType: ChainType.SUI;
|
|
10
|
+
private readonly client;
|
|
11
|
+
constructor(suiRpcUrl: string, api: AllbridgeCoreClient);
|
|
12
|
+
getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo>;
|
|
13
|
+
private fetchDeposits;
|
|
14
|
+
getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo>;
|
|
15
|
+
buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawSuiTransaction>;
|
|
16
|
+
private getDepositObject;
|
|
17
|
+
buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawSuiTransaction>;
|
|
18
|
+
buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawSuiTransaction>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SuiPoolService = void 0;
|
|
4
|
+
const client_1 = require("@mysten/sui/client");
|
|
5
|
+
const transactions_1 = require("@mysten/sui/transactions");
|
|
6
|
+
const chain_enums_1 = require("../../../chains/chain.enums");
|
|
7
|
+
const exceptions_1 = require("../../../exceptions");
|
|
8
|
+
const calculation_1 = require("../../../utils/calculation");
|
|
9
|
+
const reified_1 = require("../../models/sui/_framework/reified");
|
|
10
|
+
const bridge_1 = require("../../models/sui/bridge");
|
|
11
|
+
const functions_1 = require("../../models/sui/bridge/bridge-interface/functions");
|
|
12
|
+
const structs_1 = require("../../models/sui/bridge/pool/structs");
|
|
13
|
+
const structs_2 = require("../../models/sui/bridge/user-deposit/structs");
|
|
14
|
+
const coins_1 = require("../../utils/sui/coins");
|
|
15
|
+
const paginated_1 = require("../../utils/sui/paginated");
|
|
16
|
+
const view_1 = require("../../utils/sui/view");
|
|
17
|
+
const models_1 = require("../models");
|
|
18
|
+
class SuiPoolService extends models_1.ChainPoolService {
|
|
19
|
+
suiRpcUrl;
|
|
20
|
+
api;
|
|
21
|
+
chainType = chain_enums_1.ChainType.SUI;
|
|
22
|
+
client;
|
|
23
|
+
constructor(suiRpcUrl, api) {
|
|
24
|
+
super();
|
|
25
|
+
this.suiRpcUrl = suiRpcUrl;
|
|
26
|
+
this.api = api;
|
|
27
|
+
this.client = new client_1.SuiClient({
|
|
28
|
+
url: suiRpcUrl,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
async getUserBalanceInfo(accountAddress, token) {
|
|
32
|
+
if (!token.originTokenAddress) {
|
|
33
|
+
throw new exceptions_1.SdkError("SUI token must contain 'originTokenAddress'");
|
|
34
|
+
}
|
|
35
|
+
const suiAddresses = token.suiAddresses;
|
|
36
|
+
if (!suiAddresses) {
|
|
37
|
+
throw new exceptions_1.SdkError("SUI token must contain 'suiAddresses'");
|
|
38
|
+
}
|
|
39
|
+
(0, bridge_1.setAddress)(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);
|
|
40
|
+
const deposits = await this.fetchDeposits(accountAddress, token.originTokenAddress);
|
|
41
|
+
const total = deposits.reduce((total, element) => {
|
|
42
|
+
if (element.data) {
|
|
43
|
+
total.lpAmount += BigInt(element.data.content.fields.lp_amount);
|
|
44
|
+
total.rewardDebt += BigInt(element.data.content.fields.reward_debt);
|
|
45
|
+
return total;
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
throw new exceptions_1.SdkError("Deposits fetch failed");
|
|
49
|
+
}
|
|
50
|
+
}, { lpAmount: BigInt(0), rewardDebt: BigInt(0) });
|
|
51
|
+
return new models_1.UserBalance({ lpAmount: total.lpAmount.toString(), rewardDebt: total.rewardDebt.toString() });
|
|
52
|
+
}
|
|
53
|
+
async fetchDeposits(accountAddress, tokenAddress) {
|
|
54
|
+
return await (0, paginated_1.fetchAllPagesRecursive)((cursor) => this.client.getOwnedObjects({
|
|
55
|
+
owner: accountAddress,
|
|
56
|
+
filter: { StructType: structs_2.UserDeposit.phantom((0, reified_1.phantom)(tokenAddress)).phantomType },
|
|
57
|
+
options: { showContent: true },
|
|
58
|
+
cursor,
|
|
59
|
+
}));
|
|
60
|
+
}
|
|
61
|
+
async getPoolInfoFromChain(token) {
|
|
62
|
+
const suiAddresses = token.suiAddresses;
|
|
63
|
+
if (!suiAddresses) {
|
|
64
|
+
throw new exceptions_1.SdkError("SUI token must contain 'suiAddresses'");
|
|
65
|
+
}
|
|
66
|
+
(0, bridge_1.setAddress)(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);
|
|
67
|
+
if (!token.originTokenAddress) {
|
|
68
|
+
throw new exceptions_1.SdkError("SUI token must contain 'originTokenAddress'");
|
|
69
|
+
}
|
|
70
|
+
const P = 48;
|
|
71
|
+
const tx = new transactions_1.Transaction();
|
|
72
|
+
(0, functions_1.pool)(tx, token.originTokenAddress, suiAddresses.bridgeObjectAddress);
|
|
73
|
+
const res = await (0, view_1.suiView)(this.client, tx, structs_1.Pool.reified((0, reified_1.phantom)(token.originTokenAddress)));
|
|
74
|
+
const tokenBalance = res.state.tokenBalance;
|
|
75
|
+
const vUsdBalance = res.state.vusdBalance;
|
|
76
|
+
const imbalance = (0, calculation_1.calculatePoolInfoImbalance)({ tokenBalance, vUsdBalance });
|
|
77
|
+
return {
|
|
78
|
+
dValue: res.state.d,
|
|
79
|
+
aValue: res.state.a,
|
|
80
|
+
totalLpAmount: res.rewards.lpSupply,
|
|
81
|
+
vUsdBalance: vUsdBalance,
|
|
82
|
+
tokenBalance: tokenBalance,
|
|
83
|
+
accRewardPerShareP: res.rewards.accRewardPerShareP,
|
|
84
|
+
p: P,
|
|
85
|
+
imbalance,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
async buildRawTransactionDeposit(params) {
|
|
89
|
+
const suiAddresses = params.token.suiAddresses;
|
|
90
|
+
if (!suiAddresses) {
|
|
91
|
+
throw new exceptions_1.SdkError("SUI token must contain 'suiAddresses'");
|
|
92
|
+
}
|
|
93
|
+
(0, bridge_1.setAddress)(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);
|
|
94
|
+
if (!params.token.originTokenAddress) {
|
|
95
|
+
throw new exceptions_1.SdkError("SUI token must contain 'originTokenAddress'");
|
|
96
|
+
}
|
|
97
|
+
const coins = await (0, paginated_1.fetchAllPagesRecursive)((cursor) => this.client.getCoins({
|
|
98
|
+
owner: params.accountAddress,
|
|
99
|
+
coinType: params.token.originTokenAddress,
|
|
100
|
+
cursor,
|
|
101
|
+
}));
|
|
102
|
+
if (coins.length === 0 || !coins[0]) {
|
|
103
|
+
throw new exceptions_1.InvalidAmountError("No coins to deposit");
|
|
104
|
+
}
|
|
105
|
+
const firstCoin = coins[0];
|
|
106
|
+
const tx = new transactions_1.Transaction();
|
|
107
|
+
tx.setSender(params.accountAddress);
|
|
108
|
+
const { depositObj, isNewDeposit } = await this.getDepositObject(params.accountAddress, params.token.originTokenAddress, tx);
|
|
109
|
+
const [amountCoin] = (0, coins_1.getCoinsWithAmounts)([params.amount], coins, tx);
|
|
110
|
+
if (!amountCoin) {
|
|
111
|
+
throw new exceptions_1.InvalidAmountError("No coins to deposit");
|
|
112
|
+
}
|
|
113
|
+
if (!params.token.originTokenAddress) {
|
|
114
|
+
throw new exceptions_1.SdkError("SUI token must contain 'originTokenAddress'");
|
|
115
|
+
}
|
|
116
|
+
const rewards = (0, functions_1.deposit)(tx, params.token.originTokenAddress, {
|
|
117
|
+
bridge: suiAddresses.bridgeObjectAddress,
|
|
118
|
+
userDeposit: depositObj,
|
|
119
|
+
coin: amountCoin,
|
|
120
|
+
});
|
|
121
|
+
tx.mergeCoins(firstCoin.coinObjectId, [rewards]);
|
|
122
|
+
if (isNewDeposit) {
|
|
123
|
+
tx.transferObjects([depositObj], params.accountAddress);
|
|
124
|
+
}
|
|
125
|
+
return await tx.toJSON({ client: this.client });
|
|
126
|
+
}
|
|
127
|
+
async getDepositObject(accountAddress, tokenAddress, tx) {
|
|
128
|
+
const deposits = await this.fetchDeposits(accountAddress, tokenAddress);
|
|
129
|
+
if (deposits.length === 0 || !deposits[0]) {
|
|
130
|
+
const tokenType = (0, reified_1.phantom)(tokenAddress).phantomType;
|
|
131
|
+
const depositObj = (0, functions_1.newUserDeposit)(tx, tokenType);
|
|
132
|
+
return { depositObj, isNewDeposit: true };
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
if (deposits[0].data?.objectId) {
|
|
136
|
+
return { depositObj: deposits[0].data.objectId, isNewDeposit: false };
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
throw new exceptions_1.SdkError("Something went wrong while deposit");
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
async buildRawTransactionWithdraw(params) {
|
|
144
|
+
const suiAddresses = params.token.suiAddresses;
|
|
145
|
+
if (!suiAddresses) {
|
|
146
|
+
throw new exceptions_1.SdkError("SUI token must contain 'suiAddresses'");
|
|
147
|
+
}
|
|
148
|
+
(0, bridge_1.setAddress)(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);
|
|
149
|
+
if (!params.token.originTokenAddress) {
|
|
150
|
+
throw new exceptions_1.SdkError("SUI token must contain 'originTokenAddress'");
|
|
151
|
+
}
|
|
152
|
+
const tokenType = (0, reified_1.phantom)(params.token.originTokenAddress).phantomType;
|
|
153
|
+
const tx = new transactions_1.Transaction();
|
|
154
|
+
tx.setSender(params.accountAddress);
|
|
155
|
+
const { depositObj, isNewDeposit } = await this.getDepositObject(params.accountAddress, params.token.originTokenAddress, tx);
|
|
156
|
+
if (isNewDeposit) {
|
|
157
|
+
throw new exceptions_1.InvalidAmountError("No deposit found");
|
|
158
|
+
}
|
|
159
|
+
const rewards = (0, functions_1.withdraw)(tx, tokenType, {
|
|
160
|
+
bridge: suiAddresses.bridgeObjectAddress,
|
|
161
|
+
userDeposit: depositObj,
|
|
162
|
+
amountLp: BigInt(params.amount),
|
|
163
|
+
});
|
|
164
|
+
const coins = await (0, paginated_1.fetchAllPagesRecursive)((cursor) => this.client.getCoins({
|
|
165
|
+
owner: params.accountAddress,
|
|
166
|
+
coinType: params.token.originTokenAddress,
|
|
167
|
+
cursor,
|
|
168
|
+
}));
|
|
169
|
+
if (!rewards[0] || !rewards[1]) {
|
|
170
|
+
throw new exceptions_1.SdkError("No rewards found");
|
|
171
|
+
}
|
|
172
|
+
if (coins[0]) {
|
|
173
|
+
tx.mergeCoins(coins[0].coinObjectId, [rewards[0], rewards[1]]);
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
tx.mergeCoins(rewards[0], [rewards[1]]);
|
|
177
|
+
tx.transferObjects([rewards[0]], params.accountAddress);
|
|
178
|
+
}
|
|
179
|
+
return await tx.toJSON({ client: this.client });
|
|
180
|
+
}
|
|
181
|
+
async buildRawTransactionClaimRewards(params) {
|
|
182
|
+
const suiAddresses = params.token.suiAddresses;
|
|
183
|
+
if (!suiAddresses) {
|
|
184
|
+
throw new exceptions_1.SdkError("SUI token must contain 'suiAddresses'");
|
|
185
|
+
}
|
|
186
|
+
(0, bridge_1.setAddress)(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);
|
|
187
|
+
if (!params.token.originTokenAddress) {
|
|
188
|
+
throw new exceptions_1.SdkError("SUI token must contain 'originTokenAddress'");
|
|
189
|
+
}
|
|
190
|
+
const tokenType = (0, reified_1.phantom)(params.token.originTokenAddress).phantomType;
|
|
191
|
+
const tx = new transactions_1.Transaction();
|
|
192
|
+
tx.setSender(params.accountAddress);
|
|
193
|
+
const { depositObj, isNewDeposit } = await this.getDepositObject(params.accountAddress, params.token.originTokenAddress, tx);
|
|
194
|
+
if (isNewDeposit) {
|
|
195
|
+
throw new exceptions_1.InvalidAmountError("No deposit found");
|
|
196
|
+
}
|
|
197
|
+
const reward = (0, functions_1.claimReward)(tx, tokenType, {
|
|
198
|
+
bridge: suiAddresses.bridgeObjectAddress,
|
|
199
|
+
userDeposit: depositObj,
|
|
200
|
+
});
|
|
201
|
+
const coins = await (0, paginated_1.fetchAllPagesRecursive)((cursor) => this.client.getCoins({
|
|
202
|
+
owner: params.accountAddress,
|
|
203
|
+
coinType: params.token.originTokenAddress,
|
|
204
|
+
cursor,
|
|
205
|
+
}));
|
|
206
|
+
if (coins[0]) {
|
|
207
|
+
tx.mergeCoins(coins[0].coinObjectId, [reward]);
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
tx.transferObjects([reward], params.accountAddress);
|
|
211
|
+
}
|
|
212
|
+
return await tx.toJSON({ client: this.client });
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
exports.SuiPoolService = SuiPoolService;
|
|
216
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/services/liquidity-pool/sui/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { SuiClient } from \"@mysten/sui/client\";\nimport { CoinStruct, SuiObjectResponse } from \"@mysten/sui/src/client/types/generated\";\nimport { Transaction, TransactionResult } from \"@mysten/sui/transactions\";\nimport { ChainType } from \"../../../chains/chain.enums\";\nimport { AllbridgeCoreClient } from \"../../../client/core-api/core-client-base\";\nimport { InvalidAmountError, SdkError } from \"../../../exceptions\";\nimport { PoolInfo, TokenWithChainDetails } from \"../../../tokens-info\";\nimport { calculatePoolInfoImbalance } from \"../../../utils/calculation\";\nimport { RawSuiTransaction } from \"../../models\";\nimport { phantom } from \"../../models/sui/_framework/reified\";\nimport { setAddress } from \"../../models/sui/bridge\";\nimport {\n claimReward,\n deposit,\n newUserDeposit,\n pool,\n withdraw,\n} from \"../../models/sui/bridge/bridge-interface/functions\";\nimport { Pool } from \"../../models/sui/bridge/pool/structs\";\nimport { UserDeposit } from \"../../models/sui/bridge/user-deposit/structs\";\nimport { getCoinsWithAmounts } from \"../../utils/sui/coins\";\nimport { fetchAllPagesRecursive } from \"../../utils/sui/paginated\";\nimport { suiView } from \"../../utils/sui/view\";\nimport {\n ChainPoolService,\n LiquidityPoolsParams,\n LiquidityPoolsParamsWithAmount,\n UserBalance,\n UserBalanceInfo,\n} from \"../models\";\n\nexport class SuiPoolService extends ChainPoolService {\n chainType: ChainType.SUI = ChainType.SUI;\n\n private readonly client: SuiClient;\n\n constructor(\n public suiRpcUrl: string,\n public api: AllbridgeCoreClient\n ) {\n super();\n this.client = new SuiClient({\n url: suiRpcUrl,\n });\n }\n\n async getUserBalanceInfo(accountAddress: string, token: TokenWithChainDetails): Promise<UserBalanceInfo> {\n if (!token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const suiAddresses = token.suiAddresses;\n if (!suiAddresses) {\n throw new SdkError(\"SUI token must contain 'suiAddresses'\");\n }\n setAddress(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);\n\n const deposits = await this.fetchDeposits(accountAddress, token.originTokenAddress);\n const total = deposits.reduce(\n (total, element) => {\n if (element.data) {\n total.lpAmount += BigInt((element.data.content as any).fields.lp_amount);\n total.rewardDebt += BigInt((element.data.content as any).fields.reward_debt);\n return total;\n } else {\n throw new SdkError(\"Deposits fetch failed\");\n }\n },\n { lpAmount: BigInt(0), rewardDebt: BigInt(0) }\n );\n return new UserBalance({ lpAmount: total.lpAmount.toString(), rewardDebt: total.rewardDebt.toString() });\n }\n\n private async fetchDeposits(accountAddress: string, tokenAddress: string): Promise<SuiObjectResponse[]> {\n return await fetchAllPagesRecursive((cursor: string | null | undefined) =>\n this.client.getOwnedObjects({\n owner: accountAddress,\n filter: { StructType: UserDeposit.phantom(phantom(tokenAddress)).phantomType },\n options: { showContent: true },\n cursor,\n })\n );\n }\n\n async getPoolInfoFromChain(token: TokenWithChainDetails): Promise<PoolInfo> {\n const suiAddresses = token.suiAddresses;\n if (!suiAddresses) {\n throw new SdkError(\"SUI token must contain 'suiAddresses'\");\n }\n setAddress(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);\n\n if (!token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n\n const P = 48;\n const tx = new Transaction();\n pool(tx, token.originTokenAddress, suiAddresses.bridgeObjectAddress);\n const res = await suiView(this.client, tx, Pool.reified(phantom(token.originTokenAddress)));\n\n const tokenBalance = res.state.tokenBalance;\n const vUsdBalance = res.state.vusdBalance;\n const imbalance = calculatePoolInfoImbalance({ tokenBalance, vUsdBalance });\n\n return {\n dValue: res.state.d,\n aValue: res.state.a,\n totalLpAmount: res.rewards.lpSupply,\n vUsdBalance: vUsdBalance,\n tokenBalance: tokenBalance,\n accRewardPerShareP: res.rewards.accRewardPerShareP,\n p: P,\n imbalance,\n };\n }\n\n async buildRawTransactionDeposit(params: LiquidityPoolsParamsWithAmount): Promise<RawSuiTransaction> {\n const suiAddresses = params.token.suiAddresses;\n if (!suiAddresses) {\n throw new SdkError(\"SUI token must contain 'suiAddresses'\");\n }\n setAddress(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);\n\n if (!params.token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const coins: CoinStruct[] = await fetchAllPagesRecursive((cursor: string | null | undefined) =>\n this.client.getCoins({\n owner: params.accountAddress,\n coinType: params.token.originTokenAddress,\n cursor,\n })\n );\n if (coins.length === 0 || !coins[0]) {\n throw new InvalidAmountError(\"No coins to deposit\");\n }\n const firstCoin = coins[0];\n\n const tx = new Transaction();\n tx.setSender(params.accountAddress);\n const { depositObj, isNewDeposit } = await this.getDepositObject(\n params.accountAddress,\n params.token.originTokenAddress,\n tx\n );\n const [amountCoin] = getCoinsWithAmounts([params.amount], coins, tx);\n if (!amountCoin) {\n throw new InvalidAmountError(\"No coins to deposit\");\n }\n if (!params.token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const rewards = deposit(tx, params.token.originTokenAddress, {\n bridge: suiAddresses.bridgeObjectAddress,\n userDeposit: depositObj,\n coin: amountCoin,\n });\n tx.mergeCoins(firstCoin.coinObjectId, [rewards]);\n if (isNewDeposit) {\n tx.transferObjects([depositObj], params.accountAddress);\n }\n return await tx.toJSON({ client: this.client });\n }\n\n private async getDepositObject(\n accountAddress: string,\n tokenAddress: string,\n tx: Transaction\n ): Promise<{\n depositObj: string | TransactionResult;\n isNewDeposit: boolean;\n }> {\n const deposits = await this.fetchDeposits(accountAddress, tokenAddress);\n if (deposits.length === 0 || !deposits[0]) {\n const tokenType = phantom(tokenAddress).phantomType;\n const depositObj = newUserDeposit(tx, tokenType);\n return { depositObj, isNewDeposit: true };\n } else {\n if (deposits[0].data?.objectId) {\n return { depositObj: deposits[0].data.objectId, isNewDeposit: false };\n } else {\n throw new SdkError(\"Something went wrong while deposit\");\n }\n }\n }\n\n async buildRawTransactionWithdraw(params: LiquidityPoolsParamsWithAmount): Promise<RawSuiTransaction> {\n const suiAddresses = params.token.suiAddresses;\n if (!suiAddresses) {\n throw new SdkError(\"SUI token must contain 'suiAddresses'\");\n }\n setAddress(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);\n\n if (!params.token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const tokenType = phantom(params.token.originTokenAddress).phantomType;\n\n const tx = new Transaction();\n tx.setSender(params.accountAddress);\n\n const { depositObj, isNewDeposit } = await this.getDepositObject(\n params.accountAddress,\n params.token.originTokenAddress,\n tx\n );\n if (isNewDeposit) {\n throw new InvalidAmountError(\"No deposit found\");\n }\n\n const rewards = withdraw(tx, tokenType, {\n bridge: suiAddresses.bridgeObjectAddress,\n userDeposit: depositObj,\n amountLp: BigInt(params.amount),\n });\n\n const coins: CoinStruct[] = await fetchAllPagesRecursive((cursor: string | null | undefined) =>\n this.client.getCoins({\n owner: params.accountAddress,\n coinType: params.token.originTokenAddress,\n cursor,\n })\n );\n\n if (!rewards[0] || !rewards[1]) {\n throw new SdkError(\"No rewards found\");\n }\n\n if (coins[0]) {\n tx.mergeCoins(coins[0].coinObjectId, [rewards[0], rewards[1]]);\n } else {\n tx.mergeCoins(rewards[0], [rewards[1]]);\n tx.transferObjects([rewards[0]], params.accountAddress);\n }\n return await tx.toJSON({ client: this.client });\n }\n\n async buildRawTransactionClaimRewards(params: LiquidityPoolsParams): Promise<RawSuiTransaction> {\n const suiAddresses = params.token.suiAddresses;\n if (!suiAddresses) {\n throw new SdkError(\"SUI token must contain 'suiAddresses'\");\n }\n setAddress(suiAddresses.bridgeAddress, suiAddresses.bridgeAddressOrigin);\n\n if (!params.token.originTokenAddress) {\n throw new SdkError(\"SUI token must contain 'originTokenAddress'\");\n }\n const tokenType = phantom(params.token.originTokenAddress).phantomType;\n\n const tx = new Transaction();\n tx.setSender(params.accountAddress);\n\n const { depositObj, isNewDeposit } = await this.getDepositObject(\n params.accountAddress,\n params.token.originTokenAddress,\n tx\n );\n if (isNewDeposit) {\n throw new InvalidAmountError(\"No deposit found\");\n }\n\n const reward = claimReward(tx, tokenType, {\n bridge: suiAddresses.bridgeObjectAddress,\n userDeposit: depositObj,\n });\n\n const coins: CoinStruct[] = await fetchAllPagesRecursive((cursor: string | null | undefined) =>\n this.client.getCoins({\n owner: params.accountAddress,\n coinType: params.token.originTokenAddress,\n cursor,\n })\n );\n\n if (coins[0]) {\n tx.mergeCoins(coins[0].coinObjectId, [reward]);\n } else {\n tx.transferObjects([reward], params.accountAddress);\n }\n return await tx.toJSON({ client: this.client });\n }\n}\n"]}
|