@allbridge/bridge-core-sdk 3.20.0-alpha.3 → 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
package/dist/browser/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var pt={},qn=!1;function la(){if(qn)return pt;qn=!0,pt.byteLength=g,pt.toByteArray=h,pt.fromByteArray=B;for(var m=[],a=[],i=typeof Uint8Array<"u"?Uint8Array:Array,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",A=0,u=r.length;A<u;++A)m[A]=r[A],a[r.charCodeAt(A)]=A;a[45]=62,a[95]=63;function c(w){var C=w.length;if(C%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var M=w.indexOf("=");M===-1&&(M=C);var I=M===C?0:4-M%4;return[M,I]}function g(w){var C=c(w),M=C[0],I=C[1];return(M+I)*3/4-I}function f(w,C,M){return(C+M)*3/4-M}function h(w){var C,M=c(w),I=M[0],W=M[1],x=new i(f(w,I,W)),F=0,Z=W>0?I-4:I,E;for(E=0;E<Z;E+=4)C=a[w.charCodeAt(E)]<<18|a[w.charCodeAt(E+1)]<<12|a[w.charCodeAt(E+2)]<<6|a[w.charCodeAt(E+3)],x[F++]=C>>16&255,x[F++]=C>>8&255,x[F++]=C&255;return W===2&&(C=a[w.charCodeAt(E)]<<2|a[w.charCodeAt(E+1)]>>4,x[F++]=C&255),W===1&&(C=a[w.charCodeAt(E)]<<10|a[w.charCodeAt(E+1)]<<4|a[w.charCodeAt(E+2)]>>2,x[F++]=C>>8&255,x[F++]=C&255),x}function b(w){return m[w>>18&63]+m[w>>12&63]+m[w>>6&63]+m[w&63]}function T(w,C,M){for(var I,W=[],x=C;x<M;x+=3)I=(w[x]<<16&16711680)+(w[x+1]<<8&65280)+(w[x+2]&255),W.push(b(I));return W.join("")}function B(w){for(var C,M=w.length,I=M%3,W=[],x=16383,F=0,Z=M-I;F<Z;F+=x)W.push(T(w,F,F+x>Z?Z:F+x));return I===1?(C=w[M-1],W.push(m[C>>2]+m[C<<4&63]+"==")):I===2&&(C=(w[M-2]<<8)+w[M-1],W.push(m[C>>10]+m[C>>4&63]+m[C<<2&63]+"=")),W.join("")}return pt}var Dt={},$n=!1;function ma(){if($n)return Dt;$n=!0;return Dt.read=function(m,a,i,r,A){var u,c,g=A*8-r-1,f=(1<<g)-1,h=f>>1,b=-7,T=i?A-1:0,B=i?-1:1,w=m[a+T];for(T+=B,u=w&(1<<-b)-1,w>>=-b,b+=g;b>0;u=u*256+m[a+T],T+=B,b-=8);for(c=u&(1<<-b)-1,u>>=-b,b+=r;b>0;c=c*256+m[a+T],T+=B,b-=8);if(u===0)u=1-h;else{if(u===f)return c?NaN:(w?-1:1)*(1/0);c=c+Math.pow(2,r),u=u-h}return(w?-1:1)*c*Math.pow(2,u-r)},Dt.write=function(m,a,i,r,A,u){var c,g,f,h=u*8-A-1,b=(1<<h)-1,T=b>>1,B=A===23?Math.pow(2,-24)-Math.pow(2,-77):0,w=r?0:u-1,C=r?1:-1,M=a<0||a===0&&1/a<0?1:0;for(a=Math.abs(a),isNaN(a)||a===1/0?(g=isNaN(a)?1:0,c=b):(c=Math.floor(Math.log(a)/Math.LN2),a*(f=Math.pow(2,-c))<1&&(c--,f*=2),c+T>=1?a+=B/f:a+=B*Math.pow(2,1-T),a*f>=2&&(c++,f/=2),c+T>=b?(g=0,c=b):c+T>=1?(g=(a*f-1)*Math.pow(2,A),c=c+T):(g=a*Math.pow(2,T-1)*Math.pow(2,A),c=0));A>=8;m[i+w]=g&255,w+=C,g/=256,A-=8);for(c=c<<A|g,h+=A;h>0;m[i+w]=c&255,w+=C,c/=256,h-=8);m[i+w-C]|=M*128},Dt}var He={},ei=!1;function ti(){if(ei)return He;ei=!0;let m=la(),a=ma(),i=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;He.Buffer=c,He.SlowBuffer=W,He.INSPECT_MAX_BYTES=50;let r=2147483647;He.kMaxLength=r,c.TYPED_ARRAY_SUPPORT=A(),!c.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function A(){try{let l=new Uint8Array(1),s={foo:function(){return 42}};return Object.setPrototypeOf(s,Uint8Array.prototype),Object.setPrototypeOf(l,s),l.foo()===42}catch{return!1}}Object.defineProperty(c.prototype,"parent",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.buffer}}),Object.defineProperty(c.prototype,"offset",{enumerable:!0,get:function(){if(c.isBuffer(this))return this.byteOffset}});function u(l){if(l>r)throw new RangeError('The value "'+l+'" is invalid for option "size"');let s=new Uint8Array(l);return Object.setPrototypeOf(s,c.prototype),s}function c(l,s,o){if(typeof l=="number"){if(typeof s=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return b(l)}return g(l,s,o)}c.poolSize=8192;function g(l,s,o){if(typeof l=="string")return T(l,s);if(ArrayBuffer.isView(l))return w(l);if(l==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l);if(Me(l,ArrayBuffer)||l&&Me(l.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(Me(l,SharedArrayBuffer)||l&&Me(l.buffer,SharedArrayBuffer)))return C(l,s,o);if(typeof l=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let d=l.valueOf&&l.valueOf();if(d!=null&&d!==l)return c.from(d,s,o);let p=M(l);if(p)return p;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof l[Symbol.toPrimitive]=="function")return c.from(l[Symbol.toPrimitive]("string"),s,o);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l)}c.from=function(l,s,o){return g(l,s,o)},Object.setPrototypeOf(c.prototype,Uint8Array.prototype),Object.setPrototypeOf(c,Uint8Array);function f(l){if(typeof l!="number")throw new TypeError('"size" argument must be of type number');if(l<0)throw new RangeError('The value "'+l+'" is invalid for option "size"')}function h(l,s,o){return f(l),l<=0?u(l):s!==void 0?typeof o=="string"?u(l).fill(s,o):u(l).fill(s):u(l)}c.alloc=function(l,s,o){return h(l,s,o)};function b(l){return f(l),u(l<0?0:I(l)|0)}c.allocUnsafe=function(l){return b(l)},c.allocUnsafeSlow=function(l){return b(l)};function T(l,s){if((typeof s!="string"||s==="")&&(s="utf8"),!c.isEncoding(s))throw new TypeError("Unknown encoding: "+s);let o=x(l,s)|0,d=u(o),p=d.write(l,s);return p!==o&&(d=d.slice(0,p)),d}function B(l){let s=l.length<0?0:I(l.length)|0,o=u(s);for(let d=0;d<s;d+=1)o[d]=l[d]&255;return o}function w(l){if(Me(l,Uint8Array)){let s=new Uint8Array(l);return C(s.buffer,s.byteOffset,s.byteLength)}return B(l)}function C(l,s,o){if(s<0||l.byteLength<s)throw new RangeError('"offset" is outside of buffer bounds');if(l.byteLength<s+(o||0))throw new RangeError('"length" is outside of buffer bounds');let d;return s===void 0&&o===void 0?d=new Uint8Array(l):o===void 0?d=new Uint8Array(l,s):d=new Uint8Array(l,s,o),Object.setPrototypeOf(d,c.prototype),d}function M(l){if(c.isBuffer(l)){let s=I(l.length)|0,o=u(s);return o.length===0||l.copy(o,0,0,s),o}if(l.length!==void 0)return typeof l.length!="number"||Rn(l.length)?u(0):B(l);if(l.type==="Buffer"&&Array.isArray(l.data))return B(l.data)}function I(l){if(l>=r)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+r.toString(16)+" bytes");return l|0}function W(l){return+l!=l&&(l=0),c.alloc(+l)}c.isBuffer=function(s){return s!=null&&s._isBuffer===!0&&s!==c.prototype},c.compare=function(s,o){if(Me(s,Uint8Array)&&(s=c.from(s,s.offset,s.byteLength)),Me(o,Uint8Array)&&(o=c.from(o,o.offset,o.byteLength)),!c.isBuffer(s)||!c.isBuffer(o))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(s===o)return 0;let d=s.length,p=o.length;for(let y=0,P=Math.min(d,p);y<P;++y)if(s[y]!==o[y]){d=s[y],p=o[y];break}return d<p?-1:p<d?1:0},c.isEncoding=function(s){switch(String(s).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(s,o){if(!Array.isArray(s))throw new TypeError('"list" argument must be an Array of Buffers');if(s.length===0)return c.alloc(0);let d;if(o===void 0)for(o=0,d=0;d<s.length;++d)o+=s[d].length;let p=c.allocUnsafe(o),y=0;for(d=0;d<s.length;++d){let P=s[d];if(Me(P,Uint8Array))y+P.length>p.length?(c.isBuffer(P)||(P=c.from(P)),P.copy(p,y)):Uint8Array.prototype.set.call(p,P,y);else if(c.isBuffer(P))P.copy(p,y);else throw new TypeError('"list" argument must be an Array of Buffers');y+=P.length}return p};function x(l,s){if(c.isBuffer(l))return l.length;if(ArrayBuffer.isView(l)||Me(l,ArrayBuffer))return l.byteLength;if(typeof l!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof l);let o=l.length,d=arguments.length>2&&arguments[2]===!0;if(!d&&o===0)return 0;let p=!1;for(;;)switch(s){case"ascii":case"latin1":case"binary":return o;case"utf8":case"utf-8":return In(l).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return o*2;case"hex":return o>>>1;case"base64":return jn(l).length;default:if(p)return d?-1:In(l).length;s=(""+s).toLowerCase(),p=!0}}c.byteLength=x;function F(l,s,o){let d=!1;if((s===void 0||s<0)&&(s=0),s>this.length||((o===void 0||o>this.length)&&(o=this.length),o<=0)||(o>>>=0,s>>>=0,o<=s))return"";for(l||(l="utf8");;)switch(l){case"hex":return Te(this,s,o);case"utf8":case"utf-8":return ne(this,s,o);case"ascii":return Ae(this,s,o);case"latin1":case"binary":return be(this,s,o);case"base64":return le(this,s,o);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return de(this,s,o);default:if(d)throw new TypeError("Unknown encoding: "+l);l=(l+"").toLowerCase(),d=!0}}c.prototype._isBuffer=!0;function Z(l,s,o){let d=l[s];l[s]=l[o],l[o]=d}c.prototype.swap16=function(){let s=this.length;if(s%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let o=0;o<s;o+=2)Z(this,o,o+1);return this},c.prototype.swap32=function(){let s=this.length;if(s%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let o=0;o<s;o+=4)Z(this,o,o+3),Z(this,o+1,o+2);return this},c.prototype.swap64=function(){let s=this.length;if(s%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let o=0;o<s;o+=8)Z(this,o,o+7),Z(this,o+1,o+6),Z(this,o+2,o+5),Z(this,o+3,o+4);return this},c.prototype.toString=function(){let s=this.length;return s===0?"":arguments.length===0?ne(this,0,s):F.apply(this,arguments)},c.prototype.toLocaleString=c.prototype.toString,c.prototype.equals=function(s){if(!c.isBuffer(s))throw new TypeError("Argument must be a Buffer");return this===s?!0:c.compare(this,s)===0},c.prototype.inspect=function(){let s="",o=He.INSPECT_MAX_BYTES;return s=this.toString("hex",0,o).replace(/(.{2})/g,"$1 ").trim(),this.length>o&&(s+=" ... "),"<Buffer "+s+">"},i&&(c.prototype[i]=c.prototype.inspect),c.prototype.compare=function(s,o,d,p,y){if(Me(s,Uint8Array)&&(s=c.from(s,s.offset,s.byteLength)),!c.isBuffer(s))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof s);if(o===void 0&&(o=0),d===void 0&&(d=s?s.length:0),p===void 0&&(p=0),y===void 0&&(y=this.length),o<0||d>s.length||p<0||y>this.length)throw new RangeError("out of range index");if(p>=y&&o>=d)return 0;if(p>=y)return-1;if(o>=d)return 1;if(o>>>=0,d>>>=0,p>>>=0,y>>>=0,this===s)return 0;let P=y-p,U=d-o,Q=Math.min(P,U),Y=this.slice(p,y),H=s.slice(o,d);for(let X=0;X<Q;++X)if(Y[X]!==H[X]){P=Y[X],U=H[X];break}return P<U?-1:U<P?1:0};function E(l,s,o,d,p){if(l.length===0)return-1;if(typeof o=="string"?(d=o,o=0):o>2147483647?o=2147483647:o<-2147483648&&(o=-2147483648),o=+o,Rn(o)&&(o=p?0:l.length-1),o<0&&(o=l.length+o),o>=l.length){if(p)return-1;o=l.length-1}else if(o<0)if(p)o=0;else return-1;if(typeof s=="string"&&(s=c.from(s,d)),c.isBuffer(s))return s.length===0?-1:_(l,s,o,d,p);if(typeof s=="number")return s=s&255,typeof Uint8Array.prototype.indexOf=="function"?p?Uint8Array.prototype.indexOf.call(l,s,o):Uint8Array.prototype.lastIndexOf.call(l,s,o):_(l,[s],o,d,p);throw new TypeError("val must be string, number or Buffer")}function _(l,s,o,d,p){let y=1,P=l.length,U=s.length;if(d!==void 0&&(d=String(d).toLowerCase(),d==="ucs2"||d==="ucs-2"||d==="utf16le"||d==="utf-16le")){if(l.length<2||s.length<2)return-1;y=2,P/=2,U/=2,o/=2}function Q(H,X){return y===1?H[X]:H.readUInt16BE(X*y)}let Y;if(p){let H=-1;for(Y=o;Y<P;Y++)if(Q(l,Y)===Q(s,H===-1?0:Y-H)){if(H===-1&&(H=Y),Y-H+1===U)return H*y}else H!==-1&&(Y-=Y-H),H=-1}else for(o+U>P&&(o=P-U),Y=o;Y>=0;Y--){let H=!0;for(let X=0;X<U;X++)if(Q(l,Y+X)!==Q(s,X)){H=!1;break}if(H)return Y}return-1}c.prototype.includes=function(s,o,d){return this.indexOf(s,o,d)!==-1},c.prototype.indexOf=function(s,o,d){return E(this,s,o,d,!0)},c.prototype.lastIndexOf=function(s,o,d){return E(this,s,o,d,!1)};function se(l,s,o,d){o=Number(o)||0;let p=l.length-o;d?(d=Number(d),d>p&&(d=p)):d=p;let y=s.length;d>y/2&&(d=y/2);let P;for(P=0;P<d;++P){let U=parseInt(s.substr(P*2,2),16);if(Rn(U))return P;l[o+P]=U}return P}function z(l,s,o,d){return Et(In(s,l.length-o),l,o,d)}function he(l,s,o,d){return Et(oa(s),l,o,d)}function ye(l,s,o,d){return Et(jn(s),l,o,d)}function Pe(l,s,o,d){return Et(Aa(s,l.length-o),l,o,d)}c.prototype.write=function(s,o,d,p){if(o===void 0)p="utf8",d=this.length,o=0;else if(d===void 0&&typeof o=="string")p=o,d=this.length,o=0;else if(isFinite(o))o=o>>>0,isFinite(d)?(d=d>>>0,p===void 0&&(p="utf8")):(p=d,d=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let y=this.length-o;if((d===void 0||d>y)&&(d=y),s.length>0&&(d<0||o<0)||o>this.length)throw new RangeError("Attempt to write outside buffer bounds");p||(p="utf8");let P=!1;for(;;)switch(p){case"hex":return se(this,s,o,d);case"utf8":case"utf-8":return z(this,s,o,d);case"ascii":case"latin1":case"binary":return he(this,s,o,d);case"base64":return ye(this,s,o,d);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Pe(this,s,o,d);default:if(P)throw new TypeError("Unknown encoding: "+p);p=(""+p).toLowerCase(),P=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function le(l,s,o){return s===0&&o===l.length?m.fromByteArray(l):m.fromByteArray(l.slice(s,o))}function ne(l,s,o){o=Math.min(l.length,o);let d=[],p=s;for(;p<o;){let y=l[p],P=null,U=y>239?4:y>223?3:y>191?2:1;if(p+U<=o){let Q,Y,H,X;switch(U){case 1:y<128&&(P=y);break;case 2:Q=l[p+1],(Q&192)===128&&(X=(y&31)<<6|Q&63,X>127&&(P=X));break;case 3:Q=l[p+1],Y=l[p+2],(Q&192)===128&&(Y&192)===128&&(X=(y&15)<<12|(Q&63)<<6|Y&63,X>2047&&(X<55296||X>57343)&&(P=X));break;case 4:Q=l[p+1],Y=l[p+2],H=l[p+3],(Q&192)===128&&(Y&192)===128&&(H&192)===128&&(X=(y&15)<<18|(Q&63)<<12|(Y&63)<<6|H&63,X>65535&&X<1114112&&(P=X))}}P===null?(P=65533,U=1):P>65535&&(P-=65536,d.push(P>>>10&1023|55296),P=56320|P&1023),d.push(P),p+=U}return me(d)}let oe=4096;function me(l){let s=l.length;if(s<=oe)return String.fromCharCode.apply(String,l);let o="",d=0;for(;d<s;)o+=String.fromCharCode.apply(String,l.slice(d,d+=oe));return o}function Ae(l,s,o){let d="";o=Math.min(l.length,o);for(let p=s;p<o;++p)d+=String.fromCharCode(l[p]&127);return d}function be(l,s,o){let d="";o=Math.min(l.length,o);for(let p=s;p<o;++p)d+=String.fromCharCode(l[p]);return d}function Te(l,s,o){let d=l.length;(!s||s<0)&&(s=0),(!o||o<0||o>d)&&(o=d);let p="";for(let y=s;y<o;++y)p+=ca[l[y]];return p}function de(l,s,o){let d=l.slice(s,o),p="";for(let y=0;y<d.length-1;y+=2)p+=String.fromCharCode(d[y]+d[y+1]*256);return p}c.prototype.slice=function(s,o){let d=this.length;s=~~s,o=o===void 0?d:~~o,s<0?(s+=d,s<0&&(s=0)):s>d&&(s=d),o<0?(o+=d,o<0&&(o=0)):o>d&&(o=d),o<s&&(o=s);let p=this.subarray(s,o);return Object.setPrototypeOf(p,c.prototype),p};function G(l,s,o){if(l%1!==0||l<0)throw new RangeError("offset is not uint");if(l+s>o)throw new RangeError("Trying to access beyond buffer length")}c.prototype.readUintLE=c.prototype.readUIntLE=function(s,o,d){s=s>>>0,o=o>>>0,d||G(s,o,this.length);let p=this[s],y=1,P=0;for(;++P<o&&(y*=256);)p+=this[s+P]*y;return p},c.prototype.readUintBE=c.prototype.readUIntBE=function(s,o,d){s=s>>>0,o=o>>>0,d||G(s,o,this.length);let p=this[s+--o],y=1;for(;o>0&&(y*=256);)p+=this[s+--o]*y;return p},c.prototype.readUint8=c.prototype.readUInt8=function(s,o){return s=s>>>0,o||G(s,1,this.length),this[s]},c.prototype.readUint16LE=c.prototype.readUInt16LE=function(s,o){return s=s>>>0,o||G(s,2,this.length),this[s]|this[s+1]<<8},c.prototype.readUint16BE=c.prototype.readUInt16BE=function(s,o){return s=s>>>0,o||G(s,2,this.length),this[s]<<8|this[s+1]},c.prototype.readUint32LE=c.prototype.readUInt32LE=function(s,o){return s=s>>>0,o||G(s,4,this.length),(this[s]|this[s+1]<<8|this[s+2]<<16)+this[s+3]*16777216},c.prototype.readUint32BE=c.prototype.readUInt32BE=function(s,o){return s=s>>>0,o||G(s,4,this.length),this[s]*16777216+(this[s+1]<<16|this[s+2]<<8|this[s+3])},c.prototype.readBigUInt64LE=Ne(function(s){s=s>>>0,tt(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&dt(s,this.length-8);let p=o+this[++s]*2**8+this[++s]*2**16+this[++s]*2**24,y=this[++s]+this[++s]*2**8+this[++s]*2**16+d*2**24;return BigInt(p)+(BigInt(y)<<BigInt(32))}),c.prototype.readBigUInt64BE=Ne(function(s){s=s>>>0,tt(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&dt(s,this.length-8);let p=o*2**24+this[++s]*2**16+this[++s]*2**8+this[++s],y=this[++s]*2**24+this[++s]*2**16+this[++s]*2**8+d;return(BigInt(p)<<BigInt(32))+BigInt(y)}),c.prototype.readIntLE=function(s,o,d){s=s>>>0,o=o>>>0,d||G(s,o,this.length);let p=this[s],y=1,P=0;for(;++P<o&&(y*=256);)p+=this[s+P]*y;return y*=128,p>=y&&(p-=Math.pow(2,8*o)),p},c.prototype.readIntBE=function(s,o,d){s=s>>>0,o=o>>>0,d||G(s,o,this.length);let p=o,y=1,P=this[s+--p];for(;p>0&&(y*=256);)P+=this[s+--p]*y;return y*=128,P>=y&&(P-=Math.pow(2,8*o)),P},c.prototype.readInt8=function(s,o){return s=s>>>0,o||G(s,1,this.length),this[s]&128?(255-this[s]+1)*-1:this[s]},c.prototype.readInt16LE=function(s,o){s=s>>>0,o||G(s,2,this.length);let d=this[s]|this[s+1]<<8;return d&32768?d|4294901760:d},c.prototype.readInt16BE=function(s,o){s=s>>>0,o||G(s,2,this.length);let d=this[s+1]|this[s]<<8;return d&32768?d|4294901760:d},c.prototype.readInt32LE=function(s,o){return s=s>>>0,o||G(s,4,this.length),this[s]|this[s+1]<<8|this[s+2]<<16|this[s+3]<<24},c.prototype.readInt32BE=function(s,o){return s=s>>>0,o||G(s,4,this.length),this[s]<<24|this[s+1]<<16|this[s+2]<<8|this[s+3]},c.prototype.readBigInt64LE=Ne(function(s){s=s>>>0,tt(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&dt(s,this.length-8);let p=this[s+4]+this[s+5]*2**8+this[s+6]*2**16+(d<<24);return(BigInt(p)<<BigInt(32))+BigInt(o+this[++s]*2**8+this[++s]*2**16+this[++s]*2**24)}),c.prototype.readBigInt64BE=Ne(function(s){s=s>>>0,tt(s,"offset");let o=this[s],d=this[s+7];(o===void 0||d===void 0)&&dt(s,this.length-8);let p=(o<<24)+this[++s]*2**16+this[++s]*2**8+this[++s];return(BigInt(p)<<BigInt(32))+BigInt(this[++s]*2**24+this[++s]*2**16+this[++s]*2**8+d)}),c.prototype.readFloatLE=function(s,o){return s=s>>>0,o||G(s,4,this.length),a.read(this,s,!0,23,4)},c.prototype.readFloatBE=function(s,o){return s=s>>>0,o||G(s,4,this.length),a.read(this,s,!1,23,4)},c.prototype.readDoubleLE=function(s,o){return s=s>>>0,o||G(s,8,this.length),a.read(this,s,!0,52,8)},c.prototype.readDoubleBE=function(s,o){return s=s>>>0,o||G(s,8,this.length),a.read(this,s,!1,52,8)};function $(l,s,o,d,p,y){if(!c.isBuffer(l))throw new TypeError('"buffer" argument must be a Buffer instance');if(s>p||s<y)throw new RangeError('"value" argument is out of bounds');if(o+d>l.length)throw new RangeError("Index out of range")}c.prototype.writeUintLE=c.prototype.writeUIntLE=function(s,o,d,p){if(s=+s,o=o>>>0,d=d>>>0,!p){let U=Math.pow(2,8*d)-1;$(this,s,o,d,U,0)}let y=1,P=0;for(this[o]=s&255;++P<d&&(y*=256);)this[o+P]=s/y&255;return o+d},c.prototype.writeUintBE=c.prototype.writeUIntBE=function(s,o,d,p){if(s=+s,o=o>>>0,d=d>>>0,!p){let U=Math.pow(2,8*d)-1;$(this,s,o,d,U,0)}let y=d-1,P=1;for(this[o+y]=s&255;--y>=0&&(P*=256);)this[o+y]=s/P&255;return o+d},c.prototype.writeUint8=c.prototype.writeUInt8=function(s,o,d){return s=+s,o=o>>>0,d||$(this,s,o,1,255,0),this[o]=s&255,o+1},c.prototype.writeUint16LE=c.prototype.writeUInt16LE=function(s,o,d){return s=+s,o=o>>>0,d||$(this,s,o,2,65535,0),this[o]=s&255,this[o+1]=s>>>8,o+2},c.prototype.writeUint16BE=c.prototype.writeUInt16BE=function(s,o,d){return s=+s,o=o>>>0,d||$(this,s,o,2,65535,0),this[o]=s>>>8,this[o+1]=s&255,o+2},c.prototype.writeUint32LE=c.prototype.writeUInt32LE=function(s,o,d){return s=+s,o=o>>>0,d||$(this,s,o,4,4294967295,0),this[o+3]=s>>>24,this[o+2]=s>>>16,this[o+1]=s>>>8,this[o]=s&255,o+4},c.prototype.writeUint32BE=c.prototype.writeUInt32BE=function(s,o,d){return s=+s,o=o>>>0,d||$(this,s,o,4,4294967295,0),this[o]=s>>>24,this[o+1]=s>>>16,this[o+2]=s>>>8,this[o+3]=s&255,o+4};function Gt(l,s,o,d,p){zn(s,d,p,l,o,7);let y=Number(s&BigInt(4294967295));l[o++]=y,y=y>>8,l[o++]=y,y=y>>8,l[o++]=y,y=y>>8,l[o++]=y;let P=Number(s>>BigInt(32)&BigInt(4294967295));return l[o++]=P,P=P>>8,l[o++]=P,P=P>>8,l[o++]=P,P=P>>8,l[o++]=P,o}function Yn(l,s,o,d,p){zn(s,d,p,l,o,7);let y=Number(s&BigInt(4294967295));l[o+7]=y,y=y>>8,l[o+6]=y,y=y>>8,l[o+5]=y,y=y>>8,l[o+4]=y;let P=Number(s>>BigInt(32)&BigInt(4294967295));return l[o+3]=P,P=P>>8,l[o+2]=P,P=P>>8,l[o+1]=P,P=P>>8,l[o]=P,o+8}c.prototype.writeBigUInt64LE=Ne(function(s,o=0){return Gt(this,s,o,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeBigUInt64BE=Ne(function(s,o=0){return Yn(this,s,o,BigInt(0),BigInt("0xffffffffffffffff"))}),c.prototype.writeIntLE=function(s,o,d,p){if(s=+s,o=o>>>0,!p){let Q=Math.pow(2,8*d-1);$(this,s,o,d,Q-1,-Q)}let y=0,P=1,U=0;for(this[o]=s&255;++y<d&&(P*=256);)s<0&&U===0&&this[o+y-1]!==0&&(U=1),this[o+y]=(s/P>>0)-U&255;return o+d},c.prototype.writeIntBE=function(s,o,d,p){if(s=+s,o=o>>>0,!p){let Q=Math.pow(2,8*d-1);$(this,s,o,d,Q-1,-Q)}let y=d-1,P=1,U=0;for(this[o+y]=s&255;--y>=0&&(P*=256);)s<0&&U===0&&this[o+y+1]!==0&&(U=1),this[o+y]=(s/P>>0)-U&255;return o+d},c.prototype.writeInt8=function(s,o,d){return s=+s,o=o>>>0,d||$(this,s,o,1,127,-128),s<0&&(s=255+s+1),this[o]=s&255,o+1},c.prototype.writeInt16LE=function(s,o,d){return s=+s,o=o>>>0,d||$(this,s,o,2,32767,-32768),this[o]=s&255,this[o+1]=s>>>8,o+2},c.prototype.writeInt16BE=function(s,o,d){return s=+s,o=o>>>0,d||$(this,s,o,2,32767,-32768),this[o]=s>>>8,this[o+1]=s&255,o+2},c.prototype.writeInt32LE=function(s,o,d){return s=+s,o=o>>>0,d||$(this,s,o,4,2147483647,-2147483648),this[o]=s&255,this[o+1]=s>>>8,this[o+2]=s>>>16,this[o+3]=s>>>24,o+4},c.prototype.writeInt32BE=function(s,o,d){return s=+s,o=o>>>0,d||$(this,s,o,4,2147483647,-2147483648),s<0&&(s=4294967295+s+1),this[o]=s>>>24,this[o+1]=s>>>16,this[o+2]=s>>>8,this[o+3]=s&255,o+4},c.prototype.writeBigInt64LE=Ne(function(s,o=0){return Gt(this,s,o,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),c.prototype.writeBigInt64BE=Ne(function(s,o=0){return Yn(this,s,o,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function Jn(l,s,o,d,p,y){if(o+d>l.length)throw new RangeError("Index out of range");if(o<0)throw new RangeError("Index out of range")}function Kn(l,s,o,d,p){return s=+s,o=o>>>0,p||Jn(l,s,o,4),a.write(l,s,o,d,23,4),o+4}c.prototype.writeFloatLE=function(s,o,d){return Kn(this,s,o,!0,d)},c.prototype.writeFloatBE=function(s,o,d){return Kn(this,s,o,!1,d)};function Qn(l,s,o,d,p){return s=+s,o=o>>>0,p||Jn(l,s,o,8),a.write(l,s,o,d,52,8),o+8}c.prototype.writeDoubleLE=function(s,o,d){return Qn(this,s,o,!0,d)},c.prototype.writeDoubleBE=function(s,o,d){return Qn(this,s,o,!1,d)},c.prototype.copy=function(s,o,d,p){if(!c.isBuffer(s))throw new TypeError("argument should be a Buffer");if(d||(d=0),!p&&p!==0&&(p=this.length),o>=s.length&&(o=s.length),o||(o=0),p>0&&p<d&&(p=d),p===d||s.length===0||this.length===0)return 0;if(o<0)throw new RangeError("targetStart out of bounds");if(d<0||d>=this.length)throw new RangeError("Index out of range");if(p<0)throw new RangeError("sourceEnd out of bounds");p>this.length&&(p=this.length),s.length-o<p-d&&(p=s.length-o+d);let y=p-d;return this===s&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(o,d,p):Uint8Array.prototype.set.call(s,this.subarray(d,p),o),y},c.prototype.fill=function(s,o,d,p){if(typeof s=="string"){if(typeof o=="string"?(p=o,o=0,d=this.length):typeof d=="string"&&(p=d,d=this.length),p!==void 0&&typeof p!="string")throw new TypeError("encoding must be a string");if(typeof p=="string"&&!c.isEncoding(p))throw new TypeError("Unknown encoding: "+p);if(s.length===1){let P=s.charCodeAt(0);(p==="utf8"&&P<128||p==="latin1")&&(s=P)}}else typeof s=="number"?s=s&255:typeof s=="boolean"&&(s=Number(s));if(o<0||this.length<o||this.length<d)throw new RangeError("Out of range index");if(d<=o)return this;o=o>>>0,d=d===void 0?this.length:d>>>0,s||(s=0);let y;if(typeof s=="number")for(y=o;y<d;++y)this[y]=s;else{let P=c.isBuffer(s)?s:c.from(s,p),U=P.length;if(U===0)throw new TypeError('The value "'+s+'" is invalid for argument "value"');for(y=0;y<d-o;++y)this[y+o]=P[y%U]}return this};let et={};function Cn(l,s,o){et[l]=class extends o{constructor(){super(),Object.defineProperty(this,"message",{value:s.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${l}]`,this.stack,delete this.name}get code(){return l}set code(p){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:p,writable:!0})}toString(){return`${this.name} [${l}]: ${this.message}`}}}Cn("ERR_BUFFER_OUT_OF_BOUNDS",function(l){return l?`${l} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),Cn("ERR_INVALID_ARG_TYPE",function(l,s){return`The "${l}" argument must be of type number. Received type ${typeof s}`},TypeError),Cn("ERR_OUT_OF_RANGE",function(l,s,o){let d=`The value of "${l}" is out of range.`,p=o;return Number.isInteger(o)&&Math.abs(o)>2**32?p=Hn(String(o)):typeof o=="bigint"&&(p=String(o),(o>BigInt(2)**BigInt(32)||o<-(BigInt(2)**BigInt(32)))&&(p=Hn(p)),p+="n"),d+=` It must be ${s}. Received ${p}`,d},RangeError);function Hn(l){let s="",o=l.length,d=l[0]==="-"?1:0;for(;o>=d+4;o-=3)s=`_${l.slice(o-3,o)}${s}`;return`${l.slice(0,o)}${s}`}function aa(l,s,o){tt(s,"offset"),(l[s]===void 0||l[s+o]===void 0)&&dt(s,l.length-(o+1))}function zn(l,s,o,d,p,y){if(l>o||l<s){let P=typeof s=="bigint"?"n":"",U;throw s===0||s===BigInt(0)?U=`>= 0${P} and < 2${P} ** ${(y+1)*8}${P}`:U=`>= -(2${P} ** ${(y+1)*8-1}${P}) and < 2 ** ${(y+1)*8-1}${P}`,new et.ERR_OUT_OF_RANGE("value",U,l)}aa(d,p,y)}function tt(l,s){if(typeof l!="number")throw new et.ERR_INVALID_ARG_TYPE(s,"number",l)}function dt(l,s,o){throw Math.floor(l)!==l?(tt(l,o),new et.ERR_OUT_OF_RANGE("offset","an integer",l)):s<0?new et.ERR_BUFFER_OUT_OF_BOUNDS:new et.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${s}`,l)}let ra=/[^+/0-9A-Za-z-_]/g;function sa(l){if(l=l.split("=")[0],l=l.trim().replace(ra,""),l.length<2)return"";for(;l.length%4!==0;)l=l+"=";return l}function In(l,s){s=s||1/0;let o,d=l.length,p=null,y=[];for(let P=0;P<d;++P){if(o=l.charCodeAt(P),o>55295&&o<57344){if(!p){if(o>56319){(s-=3)>-1&&y.push(239,191,189);continue}else if(P+1===d){(s-=3)>-1&&y.push(239,191,189);continue}p=o;continue}if(o<56320){(s-=3)>-1&&y.push(239,191,189),p=o;continue}o=(p-55296<<10|o-56320)+65536}else p&&(s-=3)>-1&&y.push(239,191,189);if(p=null,o<128){if((s-=1)<0)break;y.push(o)}else if(o<2048){if((s-=2)<0)break;y.push(o>>6|192,o&63|128)}else if(o<65536){if((s-=3)<0)break;y.push(o>>12|224,o>>6&63|128,o&63|128)}else if(o<1114112){if((s-=4)<0)break;y.push(o>>18|240,o>>12&63|128,o>>6&63|128,o&63|128)}else throw new Error("Invalid code point")}return y}function oa(l){let s=[];for(let o=0;o<l.length;++o)s.push(l.charCodeAt(o)&255);return s}function Aa(l,s){let o,d,p,y=[];for(let P=0;P<l.length&&!((s-=2)<0);++P)o=l.charCodeAt(P),d=o>>8,p=o%256,y.push(p),y.push(d);return y}function jn(l){return m.toByteArray(sa(l))}function Et(l,s,o,d){let p;for(p=0;p<d&&!(p+o>=s.length||p>=l.length);++p)s[p+o]=l[p];return p}function Me(l,s){return l instanceof s||l!=null&&l.constructor!=null&&l.constructor.name!=null&&l.constructor.name===s.name}function Rn(l){return l!==l}let ca=function(){let l="0123456789abcdef",s=new Array(256);for(let o=0;o<16;++o){let d=o*16;for(let p=0;p<16;++p)s[d+p]=l[o]+l[p]}return s}();function Ne(l){return typeof BigInt>"u"?ua:l}function ua(){throw new Error("BigInt not supported")}return He}var ze=ti();ze.Buffer;ze.SlowBuffer;ze.INSPECT_MAX_BYTES;ze.kMaxLength;var S=ze.Buffer,qr=ze.INSPECT_MAX_BYTES,$r=ze.kMaxLength;var Ut={coreApiUrl:"https://core.api.allbridgecoreapi.net",coreApiQueryParams:{},coreApiHeaders:{},jupiterUrl:"https://quote-api.jup.ag/v6",wormholeMessengerProgramId:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",solanaLookUpTable:"2JcBAEVnAwVo4u8d61iqgHPrzZuugur7cVTjWubsVLHj",sorobanNetworkPassphrase:"Public Global Stellar Network ; September 2015",tronJsonRpc:"https://api.trongrid.io/jsonrpc",cctpParams:{cctpTransmitterProgramId:"CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd",cctpTokenMessengerMinter:"CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3",cctpDomains:{ETH:0,AVA:1,OPT:2,ARB:3,SOL:5,BAS:6,POL:7}},cachePoolInfoChainSec:20},ss={solanaRpcUrl:"https://api.mainnet-beta.solana.com",tronRpcUrl:"https://api.trongrid.io"},os={SOL:"https://api.mainnet-beta.solana.com",TRX:"https://api.trongrid.io",SRB:"https://rpc.stellar.org:443",STLR:"https://horizon.stellar.org"};import{Big as We}from"big.js";var q=class extends Error{errorCode;constructor(a,i){super(i),this.errorCode=a}},D=class extends q{constructor(a){super("SdkError",a)}},Zt=class extends q{constructor(a){super("InvalidAmountError",a)}},nt=class extends q{constructor(a){super("AmountNotEnoughError",a)}},Fe=class extends q{constructor(a){super("InsufficientPoolLiquidityError",a)}},ie=class extends q{constructor(a){super("JupiterError",a)}},gt=class extends q{constructor(a){super("InvalidGasFeePaymentOptionError",a)}},ni=class extends q{constructor(a){super("InvalidMessengerOptionError",a)}},ue=class extends q{constructor(a){super("MethodNotSupportedError",a)}},ft=class extends q{constructor(a){super("VerifyTxError",a)}},it=class extends q{constructor(a){super("InvalidTxError",a)}},_t=class extends q{constructor(a){super("ExtraGasMaxLimitExceededError",a)}},Nt=class extends q{constructor(a,i,r){super("ArgumentInvalidDecimalsError",`Argument '${a}' decimals '${i}' cannot be greater than '${r}'`)}},ht=class extends q{constructor(a){super("TimeoutError",a)}},Vt=class extends q{constructor(a){super("NodeRpcUrlNotInitializedError",`For chain '${a}' Node RPC URL not initialized`)}},Se=class extends q{constructor(a){super("CCTPDoesNotSupportedError",a)}},Ot=class extends q{constructor(){super("TxTooLargeError","Transaction too large: try again later or switch to another messenger or pay relayer fee in native gas currency")}},da=(I=>(I.SDK_ERROR="SdkError",I.INVALID_AMOUNT_ERROR="InvalidAmountError",I.AMOUNT_NOT_ENOUGH_ERROR="AmountNotEnoughError",I.INSUFFICIENT_POOL_LIQUIDITY_ERROR="InsufficientPoolLiquidityError",I.JUPITER_ERROR="JupiterError",I.INVALID_GAS_FEE_PAYMENT_OPTION_ERROR="InvalidGasFeePaymentOptionError",I.INVALID_MESSENGER_OPTION_ERROR="InvalidMessengerOptionError",I.METHOD_NOT_SUPPORTED_ERROR="MethodNotSupportedError",I.VERIFY_TX_ERROR="VerifyTxError",I.INVALID_TX_ERROR="InvalidTxError",I.EXTRA_GAS_MAX_LIMIT_EXCEEDED_ERROR="ExtraGasMaxLimitExceededError",I.ARGUMENT_INVALID_DECIMALS_ERROR="ArgumentInvalidDecimalsError",I.TIMEOUT_ERROR="TimeoutError",I.NODE_RPC_URL_NOT_INITIALIZED_ERROR="NodeRpcUrlNotInitializedError",I.CCTP_DOES_NOT_SUPPORTED_ERROR="CCTPDoesNotSupportedError",I.TX_TOO_LARGE="TxTooLargeError",I))(da||{});var we=(B=>(B.BSC="BSC",B.ETH="ETH",B.BAS="BAS",B.SOL="SOL",B.TRX="TRX",B.POL="POL",B.ARB="ARB",B.CEL="CEL",B.AVA="AVA",B.SRB="SRB",B.STLR="STLR",B.OPT="OPT",B))(we||{}),ee=(A=>(A.EVM="EVM",A.SOLANA="SOLANA",A.TRX="TRX",A.SRB="SRB",A))(ee||{});var pa={EVM:18,SOLANA:9,TRX:6,SRB:7},ga={BSC:{chainSymbol:"BSC",chainId:"0x38",name:"BNB Chain",chainType:"EVM"},ETH:{chainSymbol:"ETH",chainId:"0x1",name:"Ethereum",chainType:"EVM"},BAS:{chainSymbol:"BAS",chainId:"0x2105",name:"Base",chainType:"EVM"},ARB:{chainSymbol:"ARB",chainId:"0xa4b1",name:"Arbitrum",chainType:"EVM"},AVA:{chainSymbol:"AVA",chainId:"0xa86a",name:"Avalanche",chainType:"EVM"},CEL:{chainSymbol:"CEL",chainId:"0xa4ec",name:"Celo",chainType:"EVM"},POL:{chainSymbol:"POL",chainId:"0x89",name:"Polygon",chainType:"EVM"},OPT:{chainSymbol:"OPT",chainId:"0xa",name:"OP Mainnet",chainType:"EVM"},SOL:{chainSymbol:"SOL",name:"Solana",chainType:"SOLANA"},TRX:{chainSymbol:"TRX",name:"Tron",chainType:"TRX"},SRB:{chainSymbol:"SRB",name:"Stellar",chainType:"SRB"},STLR:{chainSymbol:"STLR",name:"Stellar",chainType:"SRB"}},V=(()=>{let m={...ga};return{addChainsProperties(a){m={...m,...a}},getChainProperty(a){let i=m[a];if(!i)throw new D(`Cannot find chain properties for ${a}`);return i},getChainsProperties(){return m},getChainDecimalsByType(a){return pa[a]}}})();import Pa from"axios";var ii="3.20.0-alpha.3";import{Big as v}from"big.js";import kn from"bn.js";function Mn(m,a){return v(100).minus(v(100).times(a).div(m)).toNumber()}function je(m,a){return Ve(m,a,3).round(0,v.roundDown)}function pe(m,a){return Ve(m,3,a)}function Ve(m,a,i){let r=v(i).minus(a).toNumber();return v(m).times(yt(r))}function yt(m){return v(10).pow(m)}function O(m,a){return v(m).times(yt(a))}function N(m,a){let i=v(m);return i.eq(0)?v(0):v(i).div(yt(a))}function ge(m){return N(v(m.tokenBalance).minus(m.vUsdBalance).toFixed(),3).div(2).toFixed()}function ve(m,{feeShare:a,decimals:i},r){let A=v(m);if(A.lte(0))return"0";let u=A.times(a),c=A.minus(u),g=je(c,i),f=v(r.tokenBalance).plus(g),h=xe(f,r.aValue,r.dValue);return v(r.vUsdBalance).minus(h).round(0,v.roundDown).toFixed()}function bt(m,{feeShare:a,decimals:i},r){let A=v(m);if(A.lte(0))return v(0).toFixed();let u=A.plus(r.vUsdBalance),c=xe(u,r.aValue,r.dValue),g=pe(v(r.tokenBalance).minus(c),i),f=v(g).times(a);return v(g).minus(f).round(0,v.roundDown).toFixed()}function ai(m,a){let i=v(m);if(i.lte(0))return a;let r=i.plus(a.vUsdBalance),A=xe(r,a.aValue,a.dValue);return{aValue:a.aValue,dValue:a.dValue,tokenBalance:A.toFixed(0),vUsdBalance:r.toFixed(0)}}function ri(m,{feeShare:a,decimals:i},r){if(v(m).lte(0))return v(0);let A=v(r.vUsdBalance).minus(m);if(A.lte(0))throw new Fe;let u=xe(A,r.aValue,r.dValue),c=v(u).minus(r.tokenBalance),g=pe(c,i),f=v(a).div(v(1).minus(a)),h=v(g).times(f).round(0,v.roundUp);return v(g).plus(h).round(0,v.roundDown)}function si(m,{feeShare:a,decimals:i},r){if(v(m).lte(0))return v(0);let A=v(a).div(v(1).minus(a)),u=v(m).times(A).round(0,v.roundUp),c=v(m).plus(u),g=je(c,i),f=v(r.tokenBalance).minus(g);if(f.lte(0))throw new Fe;let h=xe(f,r.aValue,r.dValue);return v(h).minus(r.vUsdBalance).round(0,v.roundDown)}function xe(m,a,i){let r=v(4).times(a).times(v(i).minus(m)).minus(i),A=v(i).pow(3),u=r.pow(2),c=v(m).times(v(m).times(u).plus(v(4).times(a).times(A))).sqrt().round(0,v.roundDown),g=v(8).times(a).times(m),f=r.times(m).plus(c).div(g).round(0,v.roundDown);return f.eq(0)?v(0):f.plus(1)}function oi(m,a,i,r){let A=new kn(m),u=new kn(i),c=new kn(a);return A.mul(u).shrn(r).sub(c).toString()}function Ai(m){return v(m).gt(0)?`${Number(v(m).times(100).toFixed(2)).toLocaleString()}%`:"N/A"}function ci(m,a,i){let r=v(a).times(i),A=v(a).plus(i),u=v(8).times(m).times(r).times(A),c=r.times(v(16).times(m).minus(4)).div(3),g=u.times(u),f=c.times(c).times(c),h=g.plus(f),b=v(h).sqrt(),T=v(Math.cbrt(+u.plus(b).toFixed())),B=v(Math.cbrt(+u.minus(b).toFixed()));return T.plus(B).toFixed()}var vn=(c=>(c.OK="OK",c.INVALID="INVALID",c.FORBIDDEN="FORBIDDEN",c.UNINITIALIZED="UNINITIALIZED",c.CONTRACT_ADDRESS="CONTRACT_ADDRESS",c.WRONG_ASSOCIATED_ACCOUNT_OWNER="WRONG_ASSOCIATED_ACCOUNT_OWNER",c))(vn||{});var Ge=(r=>(r[r.ALLBRIDGE=1]="ALLBRIDGE",r[r.WORMHOLE=2]="WORMHOLE",r[r.CCTP=3]="CCTP",r))(Ge||{});function ui(m){return Object.entries(m).reduce((a,i)=>{let r=i[0],A=i[1],u=Ta(r,A);return u&&(a[r]=u),a},{})}function li(m){let a={};for(let[i,r]of Object.entries(m)){let A=i;for(let u of r.tokens){let c=at({chainSymbol:A,poolAddress:u.poolAddress}),g=ge(u.poolInfo);a[c]={...u.poolInfo,imbalance:g}}}return a}function fa(m,a){let{name:i,...r}=m,{poolInfo:A,...u}=a;return{...u,...r,chainName:i}}function ha(m){switch(m){case"allbridge":return 1;case"wormhole":return 2;case"cctp":return 3;default:return null}}function ya(m){return Object.entries(m).reduce((a,[i,r])=>(a[i]=ba(r),a),{})}function ba(m){return Object.entries(m).reduce((a,[i,r])=>{let A=ha(i);return A&&(a[A]=r),a},{})}function Ta(m,a){let i=V.getChainsProperties()[m];if(!i)return null;let r={...i,allbridgeChainId:a.chainId,bridgeAddress:a.bridgeAddress,transferTime:ya(a.transferTime),txCostAmount:a.txCostAmount,confirmations:a.confirmations};return{...r,tokens:a.tokens.map(A=>fa(r,A))}}function at(m){return m.chainSymbol+"_"+m.poolAddress}function mi(m){let a=[];for(let[i,r]of Object.entries(m)){let A=i;for(let u of r.tokens)a.push({chainSymbol:A,poolAddress:u.poolAddress})}return a}function di(m){let a={};for(let[i,r]of Object.entries(m)){let A=i;for(let[u,c]of Object.entries(r))c.imbalance=ge(c),a[at({chainSymbol:A,poolAddress:u})]=c}return a}var Xt=class{api;constructor(a){this.api=Pa.create({baseURL:a.coreApiUrl,headers:{Accept:"application/json",...a.coreApiHeaders,"x-Sdk-Agent":"AllbridgeCoreSDK/"+ii},params:a.coreApiQueryParams})}async getTokenInfo(){let{data:a}=await this.api.get("/token-info",{params:{filter:"all"}});return{chainDetailsMap:ui(a),poolInfoMap:li(a)}}async getPendingInfo(){let{data:a}=await this.api.get("/pending-info");return a}async getGasBalance(a,i){let{data:r}=await this.api.get(`/check/${a}/${i}`);return r}async getTransferStatus(a,i){let{data:r}=await this.api.get(`/chain/${a}/${i}`);return r}async getReceiveTransactionCost(a){let{data:i}=await this.api.post("/receive-fee",a,{headers:{"Content-Type":"application/json"}});return{exchangeRate:i.exchangeRate,fee:i.fee,sourceNativeTokenPrice:i.sourceNativeTokenPrice}}async getPoolInfoMap(a){let i=a instanceof Array?a:[a],{data:r}=await this.api.post("/pool-info",{pools:i},{headers:{"Content-Type":"application/json"}});return di(r)}};import Lt from"timed-cache";var xn=20*1e3,Sa=55*1e3,Yt=class{constructor(a){this.apiClient=a;this.tokenInfoCache=new Lt({defaultTtl:Sa}),this.receivedTransactionCache=new Lt({defaultTtl:xn}),this.pendingInfoCache=new Lt({defaultTtl:xn}),this.gasBalanceCache=new Lt({defaultTtl:xn})}tokenInfoCache;pendingInfoCache;gasBalanceCache;receivedTransactionCache;getTokenInfo(){let a="TOKEN_INFO_CACHE_KEY",i=this.tokenInfoCache.get(a);if(i)return i;let r=this.apiClient.getTokenInfo();return this.tokenInfoCache.put(a,r),r}async getGasBalance(a,i){let r=`GAS_BALANCE_${a}_${i}`,A=this.gasBalanceCache.get(r);if(A)return A;let u=this.apiClient.getGasBalance(a,i);return this.gasBalanceCache.put(r,u),u}async getPendingInfo(){let a="PENDING_INFO_CACHE_KEY",i=this.pendingInfoCache.get(a);if(i)return i;let r=this.apiClient.getPendingInfo();return this.pendingInfoCache.put(a,r),r}async getReceiveTransactionCost(a){let i=`RECEIVE_TX_COST_${a.sourceChainId}_${a.destinationChainId}_${a.messenger}`,r=this.receivedTransactionCache.get(i);if(r)return r;let A=await this.apiClient.getReceiveTransactionCost(a);return this.receivedTransactionCache.put(i,A),A}async getTransferStatus(a,i){return this.apiClient.getTransferStatus(a,i)}async getPoolInfoMap(a){return this.apiClient.getPoolInfoMap(a)}};var Jt=class{constructor(a){this.apiClient=a}async getChainDetailsMap(){return(await this.apiClient.getTokenInfo()).chainDetailsMap}async tokens(){let a=await this.getChainDetailsMap();return Object.values(a).flatMap(i=>i.tokens)}async getPendingInfo(){return this.apiClient.getPendingInfo()}async getGasBalance(a,i){return this.apiClient.getGasBalance(a,i)}async getChainDetailsMapAndPoolInfoMap(){return await this.apiClient.getTokenInfo()}async getTransferStatus(a,i){return await this.apiClient.getTransferStatus(a,i)}async getReceiveTransactionCost(a){return await this.apiClient.getReceiveTransactionCost(a)}async getPoolInfoMap(a){return await this.apiClient.getPoolInfoMap(a)}};var Kt=class{constructor(a,i){this.client=a;this.isStaging=i.coreApiQueryParams?.staging==="true"}isStaging;async getChainDetailsMap(a){let i=await this.client.getChainDetailsMap(),r={};for(let A in i){let u=i[A];u&&(r[A]={...u,tokens:pi(u.tokens,a,this.isStaging)})}return r}async tokens(a){return pi(await this.client.tokens(),a,this.isStaging)}async getPendingInfo(){return this.client.getPendingInfo()}async getGasBalance(a,i){return this.client.getGasBalance(a,i)}async getTransferStatus(a,i){return await this.client.getTransferStatus(a,i)}async getReceiveTransactionCost(a){return await this.client.getReceiveTransactionCost(a)}cachePut(a,i){return this.client.cachePut(a,i)}getPoolInfoByKey(a){return this.client.getPoolInfoByKey(a)}refreshPoolInfo(a){return this.client.refreshPoolInfo(a)}};function pi(m,a,i){return m.filter(r=>i?!0:r.flags[a]).map(wa)}function wa(m){let{flags:a,...i}=m;return i}import Ba from"timed-cache";var Ca=55*1e3,Qt=class{constructor(a){this.client=a;this.poolInfoCache=new Wn}poolInfoCache;async getChainDetailsMap(){return(await this.client.getChainDetailsMapAndPoolInfoMap()).chainDetailsMap}async tokens(){return await this.client.tokens()}getTransferStatus(a,i){return this.client.getTransferStatus(a,i)}getReceiveTransactionCost(a){return this.client.getReceiveTransactionCost(a)}getPendingInfo(){return this.client.getPendingInfo()}getGasBalance(a,i){return this.client.getGasBalance(a,i)}async getPoolInfoByKey(a){this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap);let i=this.poolInfoCache.get(a);if(i)return i;{let r=await this.client.getPoolInfoMap(a);this.poolInfoCache.putAll(r);let A=r[at(a)];if(A)return A;throw new D("Cannot find pool info for "+a.poolAddress+" on chain "+a.chainSymbol)}}async refreshPoolInfo(a){let i;if(a)this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap),i=await this.client.getPoolInfoMap(a);else{let r=await this.client.getChainDetailsMapAndPoolInfoMap();i=await this.client.getPoolInfoMap(mi(r.chainDetailsMap))}this.poolInfoCache.putAll(i)}cachePut(a,i){this.poolInfoCache.put(at(a),i)}},Wn=class{cache;constructor(){this.cache=new Ba({defaultTtl:Ca})}putAll(a){for(let[i,r]of Object.entries(a))this.cache.put(i,r)}putAllIfNotExists(a){for(let[i,r]of Object.entries(a))this.cache.get(i)||this.cache.put(i,r)}put(a,i){this.cache.put(a,i)}get(a){let i=at(a);return this.cache.get(i)}};import{TronWeb as nr}from"tronweb";import{Web3 as ir}from"web3";import{Big as gi}from"big.js";async function te(m,a){return await m.getPoolInfoByKey({chainSymbol:a.chainSymbol,poolAddress:a.poolAddress})}function L(m){if(gi(m).lte(0))throw new Zt("Amount must be greater than zero")}function J(m,a,i){let r=gi(a).toFixed(),[A,u]=r.split(".");if(u&&u.length>i)throw new Nt(m,u.length,i)}async function Ht(m,a,i){return await Promise.race([m,new Promise((r,A)=>{setTimeout(()=>A(new ht(a)),i)})])}async function Fn(m,a,i,r){if(i<1)throw new Error(`Bad argument: 'maxRetries' must be greater than 0, but ${i} was received.`);let A=0;for(;;)try{return await Ht(m(),a,r)}catch{if(++A>=i)throw new ht(a)}}async function fi(m,a,i,r=1.5,A=!1){let u=[],c=0,g=await m();if(u.push(g),!a(g))return u;let f=new Date(Date.now()+i*1e3).valueOf(),h=1e3,b=h;for(;Date.now()<f;){let T=u[u.length-1];if(T===void 0||!a(T))break;c++,A&&console.info(`Waiting ${h}ms before trying again (bringing the total wait time to ${b}ms so far, of total ${i*1e3}ms)`),await new Promise(w=>setTimeout(w,h)),h=h*r,new Date(Date.now()+h).valueOf()>f&&(h=f-Date.now(),A&&console.info(`was gonna wait too long; new waitTime: ${h}ms`)),b=h+b;let B=await m(T);u.push(B),A&&a(B)&&console.info(`${c}. Called ${m.name}; ${u.length} prev attempts. Most recent: ${JSON.stringify(u[u.length-1],null,2)}`)}return u}import*as $t from"@project-serum/anchor";import{PublicKey as xi}from"@solana/web3.js";import{Big as Za}from"big.js";var Ia={abi:[{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"uint256",name:"_chainPrecision",type:"uint256"},{internalType:"contract Messenger",name:"_allbridgeMessenger",type:"address"},{internalType:"contract WormholeMessenger",name:"_wormholeMessenger",type:"address"},{internalType:"contract IGasOracle",name:"_gasOracle",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"gas",type:"uint256"}],name:"BridgingFeeFromTokens",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"bridgeTransactionCost",type:"uint256"},{indexed:!1,internalType:"uint256",name:"messageTransactionCost",type:"uint256"}],name:"ReceiveFee",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Received",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes32",name:"sendToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"receiveToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"sendAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receiveAmount",type:"uint256"}],name:"Swapped",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{indexed:!1,internalType:"bytes32",name:"message",type:"bytes32"}],name:"TokensReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"receiveToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"}],name:"TokensSent",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"addBridgeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract Pool",name:"pool",type:"address"},{internalType:"bytes32",name:"token",type:"bytes32"}],name:"addPool",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"canSwap",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"gasUsage",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"address",name:"tokenAddress",type:"address"}],name:"getBridgingCostInTokens",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"getMessageCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"getMessageGasUsage",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"getTransactionCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"message",type:"bytes32"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"hasReceivedMessage",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"message",type:"bytes32"}],name:"hasSentMessage",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"}],name:"hashMessage",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"otherBridgeTokens",outputs:[{internalType:"bool",name:"isSupported",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"otherBridges",outputs:[{internalType:"bytes32",name:"bridgeAddress",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"tokenId",type:"bytes32"}],name:"pools",outputs:[{internalType:"contract Pool",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"processedMessages",outputs:[{internalType:"uint256",name:"isProcessed",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"uint256",name:"receiveAmountMin",type:"uint256"}],name:"receiveTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"bridgeAddress",type:"bytes32"}],name:"registerBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"removeBridgeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"sentMessages",outputs:[{internalType:"uint256",name:"isSent",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Messenger",name:"_allbridgeMessenger",type:"address"}],name:"setAllbridgeMessenger",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IGasOracle",name:"_gasOracle",type:"address"}],name:"setGasOracle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"gasAmount",type:"uint256"}],name:"setGasUsage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_rebalancer",type:"address"}],name:"setRebalancer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_stopAuthority",type:"address"}],name:"setStopAuthority",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract WormholeMessenger",name:"_wormholeMessenger",type:"address"}],name:"setWormholeMessenger",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"startSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"stopSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"token",type:"bytes32"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"receiveAmountMin",type:"uint256"}],name:"swap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"token",type:"bytes32"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"uint256",name:"feeTokenAmount",type:"uint256"}],name:"swapAndBridge",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20",name:"token",type:"address"}],name:"withdrawBridgingFeeInTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawGasTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}]},hi=Ia;var Ra={abi:[{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"},{internalType:"uint256",name:"chainPrecision_",type:"uint256"},{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"address",name:"cctpMessenger_",type:"address"},{internalType:"address",name:"cctpTransmitter_",type:"address"},{internalType:"contract IGasOracle",name:"gasOracle_",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ReceivedExtraGas",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ReceivedGas",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"newRecipient",type:"bytes32"}],name:"RecipientReplaced",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"recipientWalletAddress",type:"bytes32"}],name:"TokensSentExtras",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeFromGas",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeFromTokens",type:"uint256"},{indexed:!1,internalType:"uint256",name:"relayerFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeTokenAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"adminFeeTokenAmount",type:"uint256"}],name:"TokensSent",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"adminFeeShareBP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint256",name:"relayerFeeTokenAmount",type:"uint256"}],name:"bridge",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"recipientWalletAddress",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint256",name:"relayerFeeTokenAmount",type:"uint256"}],name:"bridgeWithWalletAddress",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"originalMessage",type:"bytes"},{internalType:"bytes",name:"originalAttestation",type:"bytes"},{internalType:"bytes32",name:"newRecipient",type:"bytes32"}],name:"changeRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"gasUsage",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"destinationChainId",type:"uint256"}],name:"getBridgingCostInTokens",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"}],name:"getDomainByChainId",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"getTransactionCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"uint64",name:"nonce",type:"uint64"}],name:"isMessageProcessed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"receiveTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"},{internalType:"uint32",name:"domain",type:"uint32"}],name:"registerBridgeDestination",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"adminFeeShareBP_",type:"uint256"}],name:"setAdminFeeShare",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IGasOracle",name:"gasOracle_",type:"address"}],name:"setGasOracle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"gasAmount",type:"uint256"}],name:"setGasUsage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"}],name:"unregisterBridgeDestination",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"withdrawFeeInTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawGas",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}]},yi=Ra;import*as re from"@project-serum/anchor";import{PublicKey as ce}from"@solana/web3.js";async function Be(m,a){return re.utils.token.associatedAddress({mint:a,owner:m})}async function Oe(m){let[a]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("config")],m);return a}async function bi(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("lock"),Uint8Array.from(m)],a);return i}async function Tt(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("price_v2"),Uint8Array.from([m])],a);return i}async function rt(m){let a=await Oe(m),[i]=await ce.findProgramAddress([a.toBuffer()],m);return i}async function Ti(m,a){let[i]=await ce.findProgramAddress([m.toBuffer()],a);return i}async function st(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("token"),m.toBytes()],a);return i}async function Pi(m,a,i){let[r]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("other_bridge_token"),S.from([m]),a],i);return r}async function Gn(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("chain_bridge"),Uint8Array.from([m])],a);return i}async function En(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("gas_usage"),Uint8Array.from([m])],a);return i}async function Si(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("sent_message"),m],a);return i}async function Dn(m,a,i){let[r]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("user_deposit"),a.toBytes(),m.toBytes()],i);return r}async function wi(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("cctp_bridge"),m.toBytes()],a);return i}async function Bi(m,a){let[i]=await ce.findProgramAddress([re.utils.bytes.utf8.encode("token"),m.toBytes()],a);return i}function Ci(m,a){let[i]=ce.findProgramAddressSync([re.utils.bytes.utf8.encode("lock"),a.toBuffer()],m);return i}function Ii(m,a,i,r){let A=qe("message_transmitter",i),u=qe("token_messenger",r),c=qe("__event_authority",r),g=qe("token_minter",r),f=qe("local_token",r,[a]),h=qe("remote_token_messenger",r,[m.toString()]),b=qe("sender_authority",r);return{messageTransmitterAccount:A,tokenMessenger:u,tokenMessengerEventAuthority:c,tokenMinter:g,localToken:f,remoteTokenMessengerKey:h,authorityPda:b}}function qe(m,a,i=[]){let r=[S.from(re.utils.bytes.utf8.encode(m))];for(let u of i)typeof u=="string"?r.push(S.from(re.utils.bytes.utf8.encode(u))):Array.isArray(u)?r.push(S.from(Uint8Array.from(u))):S.isBuffer(u)?r.push(S.from(Uint8Array.from(u))):r.push(S.from(Uint8Array.from(u.toBuffer())));return ce.findProgramAddressSync(r,a)[0]}import{AnchorProvider as ka}from"@project-serum/anchor";import{Connection as Ma,PublicKey as va}from"@solana/web3.js";function Xe(m,a){let i=new Ma(m,"confirmed"),r=new va(a);return new ka(i,{publicKey:r},{preflightCommitment:"confirmed",commitment:"confirmed"})}var Ce=class{};import{PublicKey as xa}from"@solana/web3.js";import{Address as Wa}from"@stellar/stellar-sdk";import{Big as Ee}from"big.js";import ki from"randombytes";import{utils as Ri}from"tronweb";function De(m,a,i){let r;switch(a){case"EVM":{r=Fa(m);break}case"SOLANA":{r=new xa(m).toBuffer();break}case"TRX":{r=Ga(m);break}case"SRB":{r=new Wa(m).toBuffer();break}}switch(i){case"EVM":return"0x"+r.toString("hex");case"SOLANA":return Array.from(r);case"TRX":return r;case"SRB":return r.toJSON().data}}function Mi(m){return S.from(m.replace(/^0x/i,""),"hex")}function Fa(m){let i=Mi(m);return S.concat([S.alloc(32-i.length,0),i],32)}function Ga(m){let a=zt(m),i=Mi(a);return Ea(i,32)}function zt(m){let a=Ri.crypto.decodeBase58Address(m);return a?Ri.bytes.byteArray2hexStr(a).replace(/^41/,"0x"):""}function Ea(m,a){if(m.length>=a)return m;let i=S.alloc(a,0);return m.copy(i,a-m.length),i}function jt(){return ki(32)}function Pt(){let m=ki(32).readBigInt64BE();return m<0?m*-1n:m}function Le(m,a){let i={},r=a.sourceToken;return i.amount=O(a.amount,r.decimals).toFixed(),i.contractAddress=r.bridgeAddress,i.fromAccountAddress=a.fromAccountAddress,i.fromTokenAddress=De(r.tokenAddress,m,m),i.toAccountAddress=a.toAccountAddress,i.toTokenAddress=De(a.destinationToken.tokenAddress,m,m),i.minimumReceiveAmount=a.minimumReceiveAmount?O(a.minimumReceiveAmount,a.destinationToken.decimals).toFixed():"0",i}async function Ue(m,a,i){let r={};r.fromChainId=a.sourceToken.allbridgeChainId,r.fromChainSymbol=a.sourceToken.chainSymbol;let A=V.getChainProperty(a.destinationToken.chainSymbol).chainType;r.fromTokenAddress=a.sourceToken.tokenAddress,r.toChainId=a.destinationToken.allbridgeChainId,r.toTokenAddress=a.destinationToken.tokenAddress,a.gasFeePaymentMethod==="stablecoin"?r.gasFeePaymentMethod="stablecoin":r.gasFeePaymentMethod="native";let u=a.sourceToken;if(a.messenger===3){if(!u.cctpAddress||!a.destinationToken.cctpAddress)throw new Se("Such route does not support CCTP protocol");r.contractAddress=u.cctpAddress}else r.contractAddress=u.bridgeAddress;r.messenger=a.messenger,r.fromAccountAddress=a.fromAccountAddress,r.amount=O(a.amount,u.decimals).toFixed();let{fee:c,feeFormat:g}=a;if(!c){let T=(await Un(r.fromChainId,a.sourceToken.chainType,r.toChainId,u.decimals,r.messenger,i))[r.gasFeePaymentMethod];if(!T)throw new gt;c=T.int,g="int"}if(g=="float")switch(r.gasFeePaymentMethod){case"native":r.fee=O(c,V.getChainDecimalsByType(u.chainType)).toFixed(0);break;case"stablecoin":r.fee=O(c,u.decimals).toFixed(0);break}else r.fee=c;let{extraGas:f,extraGasFormat:h}=a;if(f&&+f>0){if(h=="float")switch(r.gasFeePaymentMethod){case"native":r.extraGas=O(f,V.getChainDecimalsByType(u.chainType)).toFixed(0);break;case"stablecoin":r.extraGas=O(f,u.decimals).toFixed(0);break}else r.extraGas=f;await Ua(r.extraGas,r.gasFeePaymentMethod,u,a.destinationToken,i)}return r.fromTokenAddress=De(r.fromTokenAddress,m,m),r.toAccountAddress=De(a.toAccountAddress,A,m),r.toTokenAddress=De(r.toTokenAddress,A,m),r.gasFeePaymentMethod=="stablecoin"&&Da(r.amount,u.decimals,r.fee,r.extraGas),r}function Da(m,a,i,r){let A=Ee(m).minus(i).minus(r??0);if(A.lte(0))throw new nt(`Amount not enough to pay fee, ${N(Ee(A).minus(1).neg(),a).toFixed()} stables is missing`)}async function Un(m,a,i,r,A,u){let c=await u.getReceiveTransactionCost({sourceChainId:m,destinationChainId:i,messenger:A}),g={native:{int:c.fee,float:N(c.fee,V.getChainDecimalsByType(a)).toFixed()}};if(c.sourceNativeTokenPrice){let f=Ve(new Ee(c.fee).mul(c.sourceNativeTokenPrice),V.getChainDecimalsByType(a),r).toFixed(0,Ee.roundUp);g.stablecoin={int:f,float:N(f,r).toFixed()}}return g}async function Ua(m,a,i,r,A){let c=(await Zn(i,r,A)).extraGasMax[a];if(!c)throw new gt(`Impossible to pay extra gas by '${a}' payment method`);let g=c.int;if(Ee(m).gt(g))throw new _t(`Extra gas ${m} in int format, exceeded limit ${g} for '${a}' payment method`)}async function Zn(m,a,i){let r={},A=await i.getReceiveTransactionCost({sourceChainId:m.allbridgeChainId,destinationChainId:a.allbridgeChainId,messenger:1}),u=a.txCostAmount.maxAmount,c=N(u,V.getChainDecimalsByType(a.chainType)).toFixed(),g=Ee(c).div(A.exchangeRate).toFixed(V.getChainDecimalsByType(m.chainType),Ee.roundDown),f=O(g,V.getChainDecimalsByType(m.chainType)).toFixed(0);if(r.native={int:f,float:g},A.sourceNativeTokenPrice){let h=Ee(g).mul(A.sourceNativeTokenPrice).toFixed(m.decimals,Ee.roundDown);r.stablecoin={int:O(h,m.decimals).toFixed(0),float:h}}return{extraGasMax:r,destinationChain:{gasAmountMax:{int:u,float:c},swap:{int:a.txCostAmount.swap,float:N(a.txCostAmount.swap,V.getChainDecimalsByType(a.chainType)).toFixed()},transfer:{int:a.txCostAmount.transfer,float:N(a.txCostAmount.transfer,V.getChainDecimalsByType(a.chainType)).toFixed()}},exchangeRate:A.exchangeRate,sourceNativeTokenPrice:A.sourceNativeTokenPrice}}function vi(m){return m.sourceToken.chainSymbol!==m.destinationToken.chainSymbol}var St=class extends Ce{constructor(i,r,A){super();this.web3=i;this.api=r;this.nodeRpcUrlsConfig=A}chainType="EVM";async send(i){let r=await this.buildRawTransactionSend(i);return this.sendRawTransaction(r)}async buildRawTransactionSwap(i){let r=Le(this.chainType,i);return await this.buildRawTransactionSwapFromParams(r)}async buildRawTransactionSwapFromParams(i){let{amount:r,contractAddress:A,fromAccountAddress:u,fromTokenAddress:c,toAccountAddress:g,toTokenAddress:f,minimumReceiveAmount:h}=i,T=this.getBridgeContract(A).methods.swap(r,c,f,g,h);return Promise.resolve({from:u,to:A,data:T.encodeABI()})}async buildRawTransactionSend(i){let r=await Ue(this.chainType,i,this.api),{amount:A,contractAddress:u,fromAccountAddress:c,fromTokenAddress:g,toChainId:f,toAccountAddress:h,toTokenAddress:b,messenger:T,fee:B,gasFeePaymentMethod:w,extraGas:C}=r,M="0x"+jt().toString("hex"),I,W,x=B;if(C&&(x=Za(x).plus(C).toFixed()),T===3){let F=await this.buildRawTransactionCctpSend(i,r,x);I=F.sendMethod,W=F.value}else{let F=this.getBridgeContract(u);w==="stablecoin"?(I=F.methods.swapAndBridge(g,A,h,f,b,M,T,x),W="0"):(I=F.methods.swapAndBridge(g,A,h,f,b,M,T,0),W=x)}return Promise.resolve({from:c,to:u,value:W,data:I.encodeABI()})}async buildRawTransactionCctpSend(i,r,A){let{amount:u,contractAddress:c,toChainId:g,toAccountAddress:f,gasFeePaymentMethod:h}=r,b=this.getCctpBridgeContract(c),T,B;if(i.destinationToken.chainType==="SOLANA"){let w,C=new xi(i.toAccountAddress),M=new xi(i.destinationToken.tokenAddress),I=await Be(C,M),W=Xe(this.nodeRpcUrlsConfig.getNodeRpcUrl("SOL"),i.toAccountAddress);$t.setProvider(W);let x=await $t.Spl.token(W).account.token.fetchNullable(I);if(x?.authority.equals(C))w=De(I.toBase58(),"SOLANA",this.chainType);else{let F=await W.connection.getTokenAccountsByOwner(C,{mint:M});if(F.value.length===0&&!x)w=De(I.toBase58(),"SOLANA",this.chainType);else if(F.value.length>0){let Z=F.value[0];if(!Z?.pubkey)throw new D("First token account or its public key is undefined");w=De(Z.pubkey.toBase58(),"SOLANA",this.chainType)}else throw new D("Associated account has wrong owner")}h==="stablecoin"?(T=b.methods.bridgeWithWalletAddress(u,w,f,g,A),B="0"):(T=b.methods.bridgeWithWalletAddress(u,w,f,g,0),B=A)}else h==="stablecoin"?(T=b.methods.bridge(u,f,g,A),B="0"):(T=b.methods.bridge(u,f,g,0),B=A);return{sendMethod:T,value:B}}async sendRawTransaction(i){let r=await this.web3.eth.estimateGas(i),A={maxPriorityFeePerGas:null,maxFeePerGas:null},{transactionHash:u}=await this.web3.eth.sendTransaction({...i,gas:r,...A});return{txId:u.toString()}}getBridgeContract(i){return new this.web3.eth.Contract(hi.abi,i)}getCctpBridgeContract(i){return new this.web3.eth.Contract(yi.abi,i)}};var en=class{constructor(a,i,r,A){this.api=a;this.nodeRpcUrlsConfig=i;this.params=r;this.tokenService=A}async approve(a,i){let r,A;i?(r=a,A=i):A=a;let u=wt(A.token,A.messenger);return this.tokenService.buildRawTransactionApprove({...A,spender:u},r)}async send(a,i){return L(a.amount),J("amount",a.amount,a.sourceToken.decimals),vi(a)?tn(a.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionSend(a):tn(a.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionSwap(a)}};import{BN as ut,Program as Vn,Spl as Qa,web3 as Ye}from"@project-serum/anchor";import{Keypair as Xi,PublicKey as K,SystemProgram as Ha}from"@solana/web3.js";import{Big as Ie}from"big.js";var Bt={version:"0.1.0",name:"bridge",instructions:[{name:"initialize",accounts:[{name:"admin",isMut:!0,isSigner:!0},{name:"config",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"InitializeArgs"}}]},{name:"initializePool",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"token",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"InitializePoolArgs"}}]},{name:"initDepositAccount",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"deposit",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"}]},{name:"withdraw",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"amountLp",type:"u64"}]},{name:"swapAndBridge",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"lock",isMut:!0,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1},{name:"otherBridgeToken",isMut:!0,isSigner:!1},{name:"messenger",isMut:!1,isSigner:!1},{name:"messengerConfig",isMut:!0,isSigner:!1},{name:"sentMessageAccount",isMut:!0,isSigner:!1},{name:"messengerGasUsage",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"gasPrice",isMut:!1,isSigner:!1},{name:"thisGasPrice",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"BridgeArgs"}}]},{name:"swapAndBridgeWormhole",accounts:[{name:"user",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"lock",isMut:!0,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1},{name:"otherBridgeToken",isMut:!0,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"gasPrice",isMut:!1,isSigner:!1},{name:"thisGasPrice",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"wormholeMessenger",isMut:!1,isSigner:!1},{name:"wormholeMessengerConfig",isMut:!0,isSigner:!1},{name:"wormholeProgram",isMut:!1,isSigner:!1},{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"messengerGasUsage",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"BridgeArgs"}}]},{name:"swap",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"sendMint",isMut:!1,isSigner:!1},{name:"receiveMint",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1},{name:"sendPool",isMut:!0,isSigner:!1},{name:"receivePool",isMut:!0,isSigner:!1},{name:"sendBridgeToken",isMut:!0,isSigner:!1},{name:"receiveBridgeToken",isMut:!0,isSigner:!1},{name:"sendUserToken",isMut:!0,isSigner:!1},{name:"receiveUserToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"},{name:"receiveAmountMin",type:"u64"}]},{name:"registerChainBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RegisterChainBridgeArgs"}}]},{name:"updateChainBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateChainBridgeArgs"}}]},{name:"receiveAndSwap",accounts:[{name:"user",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"receivedMessageAccount",isMut:!1,isSigner:!1},{name:"unlock",isMut:!0,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"messengerProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UnlockArgs"}}]},{name:"receiveAndSwapWormhole",accounts:[{name:"user",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"receivedMessageAccount",isMut:!1,isSigner:!1},{name:"unlock",isMut:!0,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"messengerProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UnlockArgs"}}]},{name:"withdrawGasToken",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"recipient",isMut:!0,isSigner:!1},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"amount",type:"u64"}]},{name:"claimRewards",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setAdmin",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"newAdmin",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1}],args:[]},{name:"startBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"actionType",type:{defined:"ActionType"}}]},{name:"stopBridge",accounts:[{name:"stopAuthority",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"actionType",type:{defined:"ActionType"}}]},{name:"setRebalancer",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1},{name:"rebalancer",isMut:!1,isSigner:!1}],args:[]},{name:"setStopAuthority",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"newAuthority",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1}],args:[]},{name:"setAllbridgeMessengerProgramId",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]},{name:"setWormholeMessengerProgramId",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]},{name:"setGasOracleProgramId",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]},{name:"setPoolFeeShare",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1}],args:[{name:"feeShareBp",type:"u64"}]},{name:"setBalanceRatioMin",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1}],args:[{name:"balanceRatioMinBp",type:"u16"}]},{name:"setPoolAdminFeeShare",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1}],args:[{name:"feeShareBp",type:"u64"}]},{name:"addOtherBridgeToken",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"otherBridgeToken",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"chainId",type:"u8"},{name:"tokenAddress",type:{array:["u8",32]}}]},{name:"removeOtherBridgeToken",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!0,isSigner:!1},{name:"otherBridgeToken",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"chainId",type:"u8"},{name:"tokenAddress",type:{array:["u8",32]}}]},{name:"withdrawAdminFee",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"adminToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"adjustTotalLpAmount",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[]}],accounts:[{name:"chainBridge",type:{kind:"struct",fields:[{name:"address",type:{array:["u8",32]}},{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"}]}},{name:"config",type:{kind:"struct",fields:[{name:"admin",type:"publicKey"},{name:"allbridgeMessengerProgramId",type:"publicKey"},{name:"wormholeMessengerProgramId",type:"publicKey"},{name:"gasOracleProgramId",type:"publicKey"},{name:"rebalancer",type:"publicKey"},{name:"stopAuthority",type:"publicKey"},{name:"authorityBumpSeed",type:"u8"},{name:"canSwap",type:"bool"},{name:"canDeposit",type:"bool"},{name:"canWithdraw",type:"bool"}]}},{name:"lock",type:{kind:"struct",fields:[{name:"sender",type:"publicKey"},{name:"sentTokenAddress",type:"publicKey"},{name:"amount",type:"u64"},{name:"vusdAmount",type:"u64"},{name:"recipient",type:{array:["u8",32]}},{name:"destinationChainId",type:"u8"},{name:"receiveToken",type:{array:["u8",32]}},{name:"nonce",type:{array:["u8",32]}},{name:"messenger",type:{defined:"Messenger"}},{name:"slot",type:"u64"},{name:"fee",type:"u64"}]}},{name:"otherBridgeToken",type:{kind:"struct",fields:[]}},{name:"pool",type:{kind:"struct",fields:[{name:"mint",type:"publicKey"},{name:"a",type:"u64"},{name:"d",type:"u64"},{name:"tokenBalance",type:"u64"},{name:"vUsdBalance",type:"u64"},{name:"reserves",type:"u64"},{name:"decimals",type:"u8"},{name:"totalLpAmount",type:"u64"},{name:"feeShareBp",type:"u64"},{name:"adminFeeShareBp",type:"u64"},{name:"accRewardPerShareP",type:"u128"},{name:"adminFeeAmount",type:"u64"},{name:"balanceRatioMinBp",type:"u16"}]}},{name:"unlock",type:{kind:"struct",fields:[{name:"hash",type:{array:["u8",32]}},{name:"amount",type:"u64"},{name:"fee",type:"u64"},{name:"vUsdAmount",type:"u64"},{name:"slot",type:"u64"}]}},{name:"userDeposit",type:{kind:"struct",fields:[{name:"userAddress",type:"publicKey"},{name:"mint",type:"publicKey"},{name:"lpAmount",type:"u64"},{name:"rewardDebt",type:"u64"}]}}],types:[{name:"RegisterChainBridgeArgs",type:{kind:"struct",fields:[{name:"chainBridgeAddress",type:{array:["u8",32]}},{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"}]}},{name:"UpdateChainBridgeArgs",type:{kind:"struct",fields:[{name:"chainBridgeAddress",type:{array:["u8",32]}},{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"}]}},{name:"InitializeArgs",type:{kind:"struct",fields:[{name:"allbridgeMessengerProgramId",type:"publicKey"},{name:"wormholeMessengerProgramId",type:"publicKey"},{name:"gasOracleProgramId",type:"publicKey"}]}},{name:"InitializePoolArgs",type:{kind:"struct",fields:[{name:"a",type:"u64"},{name:"feeShareBp",type:"u64"},{name:"adminFeeShareBp",type:"u64"},{name:"balanceRatioMinBp",type:"u16"}]}},{name:"BridgeArgs",type:{kind:"struct",fields:[{name:"nonce",type:{array:["u8",32]}},{name:"recipient",type:{array:["u8",32]}},{name:"destinationChainId",type:"u8"},{name:"receiveToken",type:{array:["u8",32]}},{name:"vusdAmount",type:"u64"}]}},{name:"UnlockArgs",type:{kind:"struct",fields:[{name:"nonce",type:{array:["u8",32]}},{name:"amount",type:"u64"},{name:"recipient",type:"publicKey"},{name:"sourceChainId",type:"u8"},{name:"receiveToken",type:"publicKey"},{name:"messenger",type:{defined:"Messenger"}},{name:"hash",type:{array:["u8",32]}},{name:"receiveAmountMin",type:"u64"}]}},{name:"RewardError",type:{kind:"enum",variants:[{name:"FeeTooHigh"}]}},{name:"Messenger",type:{kind:"enum",variants:[{name:"None"},{name:"Allbridge"},{name:"Wormhole"}]}},{name:"ActionType",type:{kind:"enum",variants:[{name:"Deposit"},{name:"Withdraw"},{name:"Swap"}]}}],errors:[{code:6e3,name:"AccountAlreadyInitialized",msg:"This account has already been initialized"},{code:6001,name:"AdminAuthorityInvalid",msg:"This instruction requires admin authority"},{code:6002,name:"InvalidSignature",msg:"Provided signature has wrong signer or message"},{code:6003,name:"InvalidHash",msg:"Wrong unlock message hash"},{code:6004,name:"PoolOverflow",msg:"PoolInfo overflow"},{code:6005,name:"ReservesExhausted",msg:"Reserves exhausted"},{code:6006,name:"ZeroAmount",msg:"Zero amount"},{code:6007,name:"ZeroChanges",msg:"Zero changes"},{code:6008,name:"HighVusdAmount",msg:"vUSD amount is too high"},{code:6009,name:"BalanceRatioExceeded",msg:"Balance ratio exceeded"},{code:6010,name:"InsufficientReceivedAmount",msg:"Received insufficient amount"},{code:6011,name:"ForbiddenAction",msg:"ForbiddenAction"},{code:6012,name:"ValueTooHigh",msg:"Value is too high"}]};var Wi={version:"0.1.0",name:"cctp_bridge",instructions:[{name:"initialize",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"admin",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"InitializeArgs"}}]},{name:"bridge",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"lock",isMut:!0,isSigner:!1},{name:"mint",isMut:!0,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1},{name:"cctpMessenger",isMut:!1,isSigner:!1},{name:"messageTransmitterProgram",isMut:!1,isSigner:!1},{name:"messageTransmitterAccount",isMut:!0,isSigner:!1},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"remoteTokenMessengerKey",isMut:!1,isSigner:!1},{name:"authorityPda",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"gasPrice",isMut:!1,isSigner:!1},{name:"thisGasPrice",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"BridgeArgs"}}]},{name:"registerChainBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"cctpBridge",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RegisterChainBridgeArgs"}}]},{name:"updateChainBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"cctpBridge",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateChainBridgeArgs"}}]},{name:"setAdminFeeShare",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1}],args:[{name:"feeShareBp",type:"u64"}]},{name:"setGasOracleProgramId",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]},{name:"withdrawGasToken",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"recipient",isMut:!0,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1}],args:[{name:"amount",type:"u64"}]},{name:"withdrawAdminFee",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!1,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"adminToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setCctpTokenMessengerMinter",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]}],accounts:[{name:"cctpBridge",type:{kind:"struct",fields:[{name:"mint",type:"publicKey"},{name:"admin",type:"publicKey"},{name:"cctpTokenMessengerMinter",type:"publicKey"},{name:"gasOracleProgramId",type:"publicKey"},{name:"authorityBumpSeed",type:"u8"},{name:"adminFeeShareBp",type:"u64"},{name:"adminFeeAmount",type:"u64"}]}},{name:"chainBridge",type:{kind:"struct",fields:[{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"},{name:"domain",type:"u32"}]}},{name:"lock",type:{kind:"struct",fields:[{name:"sender",type:"publicKey"},{name:"amount",type:"u64"},{name:"adminFee",type:"u64"},{name:"relayerFee",type:"u64"},{name:"recipient",type:{array:["u8",32]}},{name:"destinationChainId",type:"u8"},{name:"slot",type:"u64"}]}}],types:[{name:"RegisterChainBridgeArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"},{name:"domain",type:"u32"},{name:"mint",type:"publicKey"}]}},{name:"UpdateChainBridgeArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"},{name:"domain",type:"u32"},{name:"mint",type:"publicKey"}]}},{name:"BridgeArgs",type:{kind:"struct",fields:[{name:"recipient",type:{array:["u8",32]}},{name:"destinationChainId",type:"u8"},{name:"receiveToken",type:{array:["u8",32]}},{name:"amount",type:"u64"}]}},{name:"InitializeArgs",type:{kind:"struct",fields:[{name:"gasOracleProgramId",type:"publicKey"},{name:"cctpTokenMessengerMinter",type:"publicKey"}]}}],errors:[{code:6e3,name:"ValueTooHigh",msg:"Value is too high"}]};import{Spl as _a}from"@project-serum/anchor";import Na from"big.js";import{Web3 as nn}from"web3";async function At(m,a){return await _a.token(a).account.token.fetch(m)}async function Fi(m,a,i){let r=await a.account.pool.fetch(i),A=r.decimals,u=Na(r.feeShareBp.toString()).div(1e4).toFixed(),c={aValue:r.a.toString(),dValue:r.d.toString(),totalLpAmount:r.totalLpAmount.toString(),tokenBalance:r.tokenBalance.toString(),vUsdBalance:r.vUsdBalance.toString(),accRewardPerShareP:r.accRewardPerShareP.toString()};return ve(m,{decimals:A,feeShare:u},c)}function Gi(m){let a=m.amount,i="0x"+m.recipient.toString("hex"),r=m.sourceChainId,A=m.destinationChainId,u="0x"+m.receiveToken.toString("hex"),c="0x"+m.nonce.toString("hex"),g=1,f="0x"+m.chainBridge.toString("hex"),h=nn.utils.encodePacked({t:"uint256",v:a},{t:"bytes32",v:i},{t:"uint256",v:r},{t:"bytes32",v:u},{t:"uint256",v:c},{t:"uint8",v:g});if(!h)throw new D("message cannot be undefined");let b=nn.utils.keccak256(S.from(h.replace("0x",""),"hex")),T=S.from(b.replace("0x",""),"hex");T[0]=r,T[1]=A;let B=nn.utils.encodePacked({t:"bytes32",v:"0x"+T.toString("hex")},{t:"bytes32",v:f});if(!B)throw new it("messageWithSigner cannot be undefined");let w=nn.utils.keccak256(S.from(B.replace("0x",""),"hex")),C=S.from(w.replace("0x",""),"hex");return C[0]=T[0],C[1]=T[1],C}import{ComputeBudgetInstruction as Di,ComputeBudgetProgram as an,Connection as Ui,TransactionMessage as Va}from"@solana/web3.js";import{Big as Oa}from"big.js";import{AddressLookupTableAccount as Ei}from"@solana/web3.js";async function $e(m,a){return await Promise.all(m.message.addressTableLookups.map(async i=>new Ei({key:i.accountKey,state:Ei.deserialize(await a.getAccountInfo(i.accountKey).then(r=>{if(!r)throw new D("Cannot get AccountInfo");return r.data}))})))}var _n="AUTO";async function ct(m,a,i){let r=new Ui(i,"confirmed"),A=(await r.simulateTransaction(m)).value.unitsConsumed;await _i(m.instructions,A,a,r)}async function Zi(m,a,i){let r=new Ui(i,"confirmed"),A=await $e(m,r),u=Va.decompile(m.message,{addressLookupTableAccounts:A});if(m.serialize().length>1232)throw new Ot;await _i(u.instructions,769230,a,r),m.message=u.compileToV0Message(A)}async function _i(m,a,i,r){if(a>0){let A=Xa(a,m);if(i?.solana){let u=i.solana;if(u===_n)await Nn(m,r);else if("pricePerUnitInMicroLamports"in u)await Nn(m,r,u.pricePerUnitInMicroLamports);else{let c=Oa(u.extraFeeInLamports).div(A).mul(yt(6)).toFixed(0);await Nn(m,r,c)}}}}function Xa(m,a){let i=a.findIndex(u=>u.programId.equals(an.programId)&&Di.decodeInstructionType(u)==="SetComputeUnitLimit"),r=Number((m*1.3).toFixed(0)),A=an.setComputeUnitLimit({units:r});return i>=0?a[i]=A:a.push(A),r.toString()}async function Nn(m,a,i){let r=m.findIndex(c=>c.programId.equals(an.programId)&&Di.decodeInstructionType(c)==="SetComputeUnitPrice"),A=BigInt(i||await La(a)),u=an.setComputeUnitPrice({microLamports:A});return r>=0?m[r]=u:m.push(u),A.toString()}async function La(m){let a=await m.getRecentPrioritizationFees(),i=0;for(let r of a)i+=r.prioritizationFee;return(i/a.length).toFixed(0)}import{NATIVE_MINT as Ya}from"@solana/spl-token";import{Connection as Ja,TransactionMessage as Ni,VersionedTransaction as Ka}from"@solana/web3.js";import Vi,{AxiosError as Oi}from"axios";var rn=class{connection;jupiterUrl;maxAccounts;constructor(a,i,r){this.connection=new Ja(a),this.jupiterUrl=i.replace(/\/$/,""),this.maxAccounts=r}async getJupiterSwapTx(a,i,r,A){let u;try{let T=A?"ExactOut":"ExactIn",B=`${this.jupiterUrl}/quote?inputMint=${i}&outputMint=${Ya.toString()}&amount=${r}&swapMode=${T}&slippageBps=100&onlyDirectRoutes=true`;this.maxAccounts&&(B+=`&maxAccounts=${this.maxAccounts}`),u=await Vi.get(B)}catch(T){throw T instanceof Oi&&T.response&&T.response.data&&T.response.data.error?new ie(T.response.data.error):new ie("Cannot get route")}let c;if(A&&u?.data?.inAmount)c=u.data.inAmount;else if(A)throw new ie("Cannot get inAmount");let g;try{g=await Vi.post(`${this.jupiterUrl}/swap`,{quoteResponse:u.data,userPublicKey:a,wrapAndUnwrapSol:!0})}catch(T){throw T instanceof Oi&&T.response&&T.response.data&&T.response.data.error?new ie(T.response.data.error):new ie("Cannot get swap transaction")}let f;if(g?.data?.swapTransaction)f=g.data.swapTransaction;else throw new ie("Cannot get swap transaction");let h=S.from(f,"base64"),b=Ka.deserialize(h);return A?{tx:b,amountIn:c}:{tx:b}}async amendJupiterWithSdkTx(a,i){try{let r=await $e(a,this.connection),A=await $e(i,this.connection),u=Ni.decompile(a.message,{addressLookupTableAccounts:r}),c=Ni.decompile(i.message,{addressLookupTableAccounts:A});if(c.instructions.shift(),u.instructions.push(...c.instructions),r.push(...A),a.message=u.compileToV0Message(r),i.message.header.numRequiredSignatures===2&&a.signatures.length===1){let g=i.signatures[0];if(!g)throw new D("Signature is undefined");a.signatures.push(g)}return a}catch(r){throw r instanceof Error&&r.message?new ie(`Some error occurred during creation final swap and bridge transaction. ${r.message}`):new ie("Some error occurred during creation final swap and bridge transaction")}}};var On=1e6,Li=1.1,sn=class extends Ce{constructor(i,r,A){super();this.solanaRpcUrl=i;this.params=r;this.api=A;this.jupiterService=new rn(i,r.jupiterUrl,r.jupiterMaxAccounts)}chainType="SOLANA";jupiterService;async buildRawTransactionSwap(i){let r=Le(this.chainType,i);return await this.buildSwapTransaction(r,i.sourceToken.poolAddress,i.destinationToken.poolAddress,i.txFeeParams)}async buildSwapTransaction(i,r,A,u){let{fromAccountAddress:c,amount:g,contractAddress:f,fromTokenAddress:h,toTokenAddress:b,toAccountAddress:T,minimumReceiveAmount:B}=i,w=c,C=f,M=h,I=b,W=A,x=T,F=new K(w),Z=Xe(this.solanaRpcUrl,F.toString()),E=new Vn(Bt,C,Z),_=await rt(E.programId),se=await Oe(E.programId),z=new K(M),he=await st(z,E.programId),ye=new K(r),Pe=await Be(F,z),le=new K(x),ne=new K(I),oe=await st(ne,E.programId),me=new K(W),Ae=await Be(le,ne),be=[Ye.ComputeBudgetProgram.setComputeUnitLimit({units:On})];try{await At(Ae,Z)}catch{let Gt=await Qa.associatedToken(Z).methods.create().accounts({mint:ne,owner:le,associatedAccount:Ae}).instruction();be.push(Gt)}let Te=await E.methods.swap(new ut(g),new ut(B||0)).accounts({payer:F,config:se,bridgeAuthority:_,user:F,sendBridgeToken:he,sendMint:z,sendPool:ye,sendUserToken:Pe,receiveBridgeToken:oe,receiveMint:ne,receivePool:me,receiveUserToken:Ae}).preInstructions(be).transaction(),de=Z.connection;return Te.recentBlockhash=(await de.getLatestBlockhash()).blockhash,Te.feePayer=F,await ct(Te,u,this.solanaRpcUrl),await this.convertToVersionedTransaction(Te,de)}async buildRawTransactionSend(i){let r=await Ue(this.chainType,i,this.api),A=this.addPoolAddress(i,r),u=A.gasFeePaymentMethod=="stablecoin",c;if(u)try{let{tx:h,solTxSendUpdatedParams:b}=await this.processJup(A,i,!0);c=h,A={...A,...b}}catch{try{let{tx:b,solTxSendUpdatedParams:T}=await this.processJup(A,i,!1);c=b,A={...A,...T}}catch(b){throw b instanceof q?b:b instanceof Error&&b.message?new ie(`Some error occurred during creation Jupiter swap transaction. ${b.message}`):new ie("Some error occurred during creation Jupiter swap transaction")}}let g,f;switch(r.messenger){case 1:{let h=await this.prepareSwapAndBridgeData(A);g=await this.buildSwapAndBridgeAllbridgeTransaction(h);break}case 2:{let h=await this.prepareSwapAndBridgeData(A),{transaction:b,messageAccount:T}=await this.buildSwapAndBridgeWormholeTransaction(h);g=b,f=T;break}case 3:{let h=await this.prepareSwapAndBridgeCctpData(A),{transaction:b,messageSentEventDataKeypair:T}=await this.buildSwapAndBridgeCctpTransaction(i.destinationToken.chainSymbol,h);g=b,f=T;break}}if(u){if(!c)throw new ie("Swap tx is absent");g=await this.jupiterService.amendJupiterWithSdkTx(c,g)}return await Zi(g,i.txFeeParams,this.solanaRpcUrl),f&&g.sign([f]),g}async processJup(i,r,A){let{fee:u,extraGas:c,gasFeePaymentMethod:g}=await this.convertStableCoinFeeAndExtraGasToNativeCurrency(r.sourceToken.decimals,i),f=A?Ie(u):Ie(i.fee);c&&(f=f.plus(c)),A||(f=f.mul(Li));let{tx:h,amountIn:b}=await this.jupiterService.getJupiterSwapTx(r.fromAccountAddress,r.sourceToken.tokenAddress,f.toFixed(0),A),T;if(A){if(!b)throw new ie("Cannot get inAmount");T=Ie(i.amount).minus(Ie(b).mul(Li)).toFixed(0)}else T=Ie(i.amount).minus(f).toFixed(0);if(Ie(T).lte(0))throw new nt(`Amount not enough to pay fee, ${N(Ie(T).minus(1).neg(),r.sourceToken.decimals).toFixed()} stables is missing`);return{tx:h,solTxSendUpdatedParams:{amount:T,fee:u,extraGas:c,gasFeePaymentMethod:g}}}addPoolAddress(i,r){return{...r,poolAddress:i.sourceToken.poolAddress}}async convertStableCoinFeeAndExtraGasToNativeCurrency(i,r){if(r.gasFeePaymentMethod=="stablecoin"){let A=(await this.api.getReceiveTransactionCost({sourceChainId:r.fromChainId,destinationChainId:r.toChainId,messenger:r.messenger})).sourceNativeTokenPrice,u=Ie(r.fee).div(A).mul(Ie(10).pow(V.getChainDecimalsByType("SOLANA")-i)).toFixed(0),c;return r.extraGas&&(c=Ie(r.extraGas).div(A).mul(Ie(10).pow(V.getChainDecimalsByType("SOLANA")-i)).toFixed(0)),{fee:u,extraGas:c,gasFeePaymentMethod:"native"}}return{fee:r.fee,extraGas:r.extraGas,gasFeePaymentMethod:"native"}}getExtraGasInstruction(i,r,A){return Ye.SystemProgram.transfer({fromPubkey:r,toPubkey:A,lamports:+i})}async prepareSwapAndBridgeData(i){let{amount:r,contractAddress:A,fromChainId:u,fromAccountAddress:c,fromTokenAddress:g,toChainId:f,toAccountAddress:h,toTokenAddress:b,poolAddress:T,extraGas:B}=i,w=g,C=c,M=f,I=b,W=h,x=A,F=u,Z=Xe(this.solanaRpcUrl,C),E=new Vn(Bt,x,Z),_=Array.from(jt()),se=new K(T),z=await Fi(r,E,se),he=await bi(_,E.programId),ye=await rt(E.programId),Pe=await Be(new K(C),new K(w)),le=await st(new K(w),E.programId),ne=await Gn(M,E.programId),oe=await Pi(M,S.from(I),E.programId),me=await Oe(E.programId),Ae=await E.account.config.fetch(me),be=await Tt(M,Ae.gasOracleProgramId),Te=await Tt(F,Ae.gasOracleProgramId),de=Gi({amount:z,recipient:S.from(W),nonce:S.from(_),receiveToken:S.from(I),destinationChainId:M,sourceChainId:F,chainBridge:(await rt(E.programId)).toBuffer()}),G={};return G.bridge=E,G.amount=new ut(r),G.vusdAmount=new ut(z),G.nonce=_,G.recipient=Array.from(W),G.receiveToken=Array.from(I),G.poolAccount=se,G.lockAccount=he,G.bridgeAuthority=ye,G.userToken=Pe,G.bridgeTokenAccount=le,G.chainBridgeAccount=ne,G.otherBridgeTokenAccount=oe,G.userAccount=new K(C),G.destinationChainId=M,G.mint=new K(w),G.config=me,G.configAccountInfo=Ae,G.gasPrice=be,G.thisGasPrice=Te,G.message=de,B&&(G.extraGasInstruction=this.getExtraGasInstruction(B,G.userAccount,me)),G}async buildSwapAndBridgeAllbridgeTransaction(i){let{bridge:r,vusdAmount:A,nonce:u,recipient:c,receiveToken:g,poolAccount:f,lockAccount:h,bridgeAuthority:b,userToken:T,bridgeTokenAccount:B,chainBridgeAccount:w,otherBridgeTokenAccount:C,userAccount:M,destinationChainId:I,mint:W,config:x,configAccountInfo:F,gasPrice:Z,thisGasPrice:E,message:_,extraGasInstruction:se}=i,z=F.allbridgeMessengerProgramId,he=await En(I,z),ye=await Oe(z),Pe=await Si(_,z),le=[];se&&le.push(se);let ne=await r.methods.swapAndBridge({vusdAmount:A,nonce:u,destinationChainId:I,recipient:c,receiveToken:g}).accounts({mint:W,user:M,config:x,lock:h,pool:f,gasPrice:Z,thisGasPrice:E,bridgeAuthority:b,userToken:T,bridgeToken:B,chainBridge:w,messenger:z,messengerGasUsage:he,messengerConfig:ye,sentMessageAccount:Pe,otherBridgeToken:C}).preInstructions([Ye.ComputeBudgetProgram.setComputeUnitLimit({units:On})]).postInstructions(le).transaction(),oe=Xe(this.solanaRpcUrl,M.toString()).connection;return ne.recentBlockhash=(await oe.getLatestBlockhash()).blockhash,ne.feePayer=M,await this.convertToVersionedTransaction(ne,oe)}async convertToVersionedTransaction(i,r){let A=await r.getAddressLookupTable(new K(this.params.solanaLookUpTable)).then(c=>c.value);if(!A)throw new D("Cannot find allbridgeLookupTableAccount");let u=new Ye.TransactionMessage({payerKey:i.feePayer,recentBlockhash:i.recentBlockhash,instructions:i.instructions}).compileToV0Message([A]);return new Ye.VersionedTransaction(u)}async buildSwapAndBridgeWormholeTransaction(i){let{bridge:r,vusdAmount:A,nonce:u,recipient:c,receiveToken:g,poolAccount:f,lockAccount:h,bridgeAuthority:b,userToken:T,bridgeTokenAccount:B,chainBridgeAccount:w,otherBridgeTokenAccount:C,userAccount:M,destinationChainId:I,mint:W,config:x,configAccountInfo:F,gasPrice:Z,thisGasPrice:E,message:_,extraGasInstruction:se}=i,z=this.params.wormholeMessengerProgramId,[he]=K.findProgramAddressSync([S.from("Bridge")],new K(z)),[ye]=K.findProgramAddressSync([S.from("fee_collector")],new K(z)),[Pe]=K.findProgramAddressSync([S.from("Sequence"),b.toBuffer()],new K(z)),le=await En(I,F.wormholeMessengerProgramId),ne=await Oe(F.wormholeMessengerProgramId),oe=Xi.generate(),me=Xe(this.solanaRpcUrl,M.toString()),Ae=await me.connection.getAccountInfo(he);if(Ae==null)throw new D("Cannot fetch wormhole bridge account info");let be=new ut(Ae.data.slice(16,24),"le").toString(),Te=Ha.transfer({fromPubkey:M,toPubkey:ye,lamports:+be}),de=[];se&&de.push(se);let G={mint:W,user:M,config:x,lock:h,pool:f,gasPrice:Z,thisGasPrice:E,bridgeAuthority:b,userToken:T,bridgeToken:B,chainBridge:w,otherBridgeToken:C,messengerGasUsage:le,wormholeProgram:z,bridge:he,message:oe.publicKey,wormholeMessenger:F.wormholeMessengerProgramId,sequence:Pe,feeCollector:ye,wormholeMessengerConfig:ne,clock:Ye.SYSVAR_CLOCK_PUBKEY},$=await r.methods.swapAndBridgeWormhole({vusdAmount:A,nonce:u,destinationChainId:I,recipient:c,receiveToken:g}).accounts(G).preInstructions([Ye.ComputeBudgetProgram.setComputeUnitLimit({units:On}),Te]).postInstructions(de).signers([oe]).transaction();return $.recentBlockhash=(await me.connection.getLatestBlockhash()).blockhash,$.feePayer=M,{transaction:await this.convertToVersionedTransaction($,me.connection),messageAccount:oe}}async prepareSwapAndBridgeCctpData(i){let{contractAddress:r,amount:A,fromAccountAddress:u,fromTokenAddress:c,toChainId:g,toAccountAddress:f,toTokenAddress:h,extraGas:b}=i,T=r;if(!T)throw new Se("Such route does not support CCTP protocol");let B=4,w=u,C=h,M=f,I=Xe(this.solanaRpcUrl,w),W=new Vn(Wi,T,I),x=new K(c),F=await wi(x,W.programId),Z=new K(w),E=await W.account.cctpBridge.fetch(F),_={};return _.cctpBridge=W,_.cctpBridgeAccount=F,_.cctpAddressAccount=new K(T),_.amount=new ut(A),_.recipient=Array.from(M),_.receiveToken=Array.from(C),_.userToken=await Be(Z,x),_.bridgeAuthority=await Ti(F,W.programId),_.bridgeTokenAccount=await Bi(x,W.programId),_.chainBridgeAccount=await Gn(g,W.programId),_.userAccount=Z,_.destinationChainId=g,_.mint=x,_.gasPrice=await Tt(g,E.gasOracleProgramId),_.thisGasPrice=await Tt(B,E.gasOracleProgramId),_.provider=I,b&&(_.extraGasInstruction=this.getExtraGasInstruction(b,_.userAccount,F)),_}async buildSwapAndBridgeCctpTransaction(i,r){let{cctpBridge:A,cctpBridgeAccount:u,amount:c,recipient:g,receiveToken:f,bridgeAuthority:h,userToken:b,bridgeTokenAccount:T,chainBridgeAccount:B,userAccount:w,destinationChainId:C,mint:M,gasPrice:I,thisGasPrice:W,extraGasInstruction:x,provider:F}=r,Z=this.params.cctpParams.cctpDomains[i],E=this.params.cctpParams.cctpTransmitterProgramId,_=this.params.cctpParams.cctpTokenMessengerMinter;if(Z==null||!E||!_)throw new D("CCTP is not configured");let se=new K(E),z=new K(_),{messageTransmitterAccount:he,tokenMessenger:ye,tokenMessengerEventAuthority:Pe,tokenMinter:le,localToken:ne,remoteTokenMessengerKey:oe,authorityPda:me}=Ii(Z,M,se,z),Ae=[];x&&Ae.push(x);let be=Xi.generate(),Te=Ci(A.programId,be.publicKey),de=await A.methods.bridge({amount:c,destinationChainId:C,recipient:g,receiveToken:f}).accounts({mint:M,user:w,cctpBridge:u,messageSentEventData:be.publicKey,lock:Te,cctpMessenger:z,messageTransmitterProgram:se,messageTransmitterAccount:he,tokenMessenger:ye,tokenMinter:le,localToken:ne,remoteTokenMessengerKey:oe,authorityPda:me,eventAuthority:Pe,bridgeToken:T,gasPrice:I,thisGasPrice:W,chainBridge:B,userToken:b,bridgeAuthority:h}).preInstructions([Ye.ComputeBudgetProgram.setComputeUnitLimit({units:2e6})]).postInstructions(Ae).transaction(),G=F.connection;return de.recentBlockhash=(await G.getLatestBlockhash()).blockhash,de.feePayer=w,{transaction:await this.convertToVersionedTransaction(de,G),messageSentEventDataKeypair:be}}send(i){throw new ue}};import{Address as Xn,contract as Fb}from"@stellar/stellar-sdk";import{Big as qa}from"big.js";import{contract as n}from"@stellar/stellar-sdk";var za=n.Spec,ja=n.Client;var Ct=class extends ja{constructor(i){super(new za(["AAAAAAAAAAAAAAAKaW5pdGlhbGl6ZQAAAAAABAAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAltZXNzZW5nZXIAAAAAAAATAAAAAAAAAApnYXNfb3JhY2xlAAAAAAATAAAAAAAAAAxuYXRpdmVfdG9rZW4AAAATAAAAAQAAA+kAAAPtAAAAAAAAAAM=","AAAAAAAAAAAAAAAPc3dhcF9hbmRfYnJpZGdlAAAAAAkAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAAAAAAFdG9rZW4AAAAAAAATAAAAAAAAAAZhbW91bnQAAAAAAAoAAAAAAAAACXJlY2lwaWVudAAAAAAAA+4AAAAgAAAAAAAAABRkZXN0aW5hdGlvbl9jaGFpbl9pZAAAAAQAAAAAAAAADXJlY2VpdmVfdG9rZW4AAAAAAAPuAAAAIAAAAAAAAAAFbm9uY2UAAAAAAAAMAAAAAAAAAApnYXNfYW1vdW50AAAAAAAKAAAAAAAAABBmZWVfdG9rZW5fYW1vdW50AAAACgAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAOcmVjZWl2ZV90b2tlbnMAAAAAAAgAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAAKAAAAAAAAAAlyZWNpcGllbnQAAAAAAAATAAAAAAAAAA9zb3VyY2VfY2hhaW5faWQAAAAABAAAAAAAAAANcmVjZWl2ZV90b2tlbgAAAAAAA+4AAAAgAAAAAAAAAAVub25jZQAAAAAAAAwAAAAAAAAAEnJlY2VpdmVfYW1vdW50X21pbgAAAAAACgAAAAAAAAAJZXh0cmFfZ2FzAAAAAAAD6AAAAAoAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAAEc3dhcAAAAAYAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAAKAAAAAAAAAAV0b2tlbgAAAAAAA+4AAAAgAAAAAAAAAA1yZWNlaXZlX3Rva2VuAAAAAAAD7gAAACAAAAAAAAAACXJlY2lwaWVudAAAAAAAABMAAAAAAAAAEnJlY2VpdmVfYW1vdW50X21pbgAAAAAACgAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAJc3RvcF9zd2FwAAAAAAAAAAAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAKc3RhcnRfc3dhcAAAAAAAAAAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAOc2V0X2dhc19vcmFjbGUAAAAAAAEAAAAAAAAAC25ld19hZGRyZXNzAAAAABMAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAASc2V0X3N0b3BfYXV0aG9yaXR5AAAAAAABAAAAAAAAAA5zdG9wX2F1dGhvcml0eQAAAAAAEwAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAOc2V0X3JlYmFsYW5jZXIAAAAAAAEAAAAAAAAACnJlYmFsYW5jZXIAAAAAABMAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAANc2V0X21lc3NlbmdlcgAAAAAAAAEAAAAAAAAACW1lc3NlbmdlcgAAAAAAABMAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAANc2V0X2dhc191c2FnZQAAAAAAAAIAAAAAAAAACGNoYWluX2lkAAAABAAAAAAAAAAJZ2FzX3VzYWdlAAAAAAAACgAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAPcmVnaXN0ZXJfYnJpZGdlAAAAAAIAAAAAAAAACGNoYWluX2lkAAAABAAAAAAAAAAOYnJpZGdlX2FkZHJlc3MAAAAAA+4AAAAgAAAAAQAAA+kAAAPtAAAAAAAAAAM=","AAAAAAAAAAAAAAAQYWRkX2JyaWRnZV90b2tlbgAAAAIAAAAAAAAACGNoYWluX2lkAAAABAAAAAAAAAANdG9rZW5fYWRkcmVzcwAAAAAAA+4AAAAgAAAAAQAAA+kAAAPtAAAAAAAAAAM=","AAAAAAAAAAAAAAATcmVtb3ZlX2JyaWRnZV90b2tlbgAAAAACAAAAAAAAAAhjaGFpbl9pZAAAAAQAAAAAAAAADXRva2VuX2FkZHJlc3MAAAAAAAPuAAAAIAAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAIYWRkX3Bvb2wAAAACAAAAAAAAAARwb29sAAAAEwAAAAAAAAAFdG9rZW4AAAAAAAATAAAAAQAAA+kAAAPtAAAAAAAAAAM=","AAAAAAAAAAAAAAATd2l0aGRyYXdfZ2FzX3Rva2VucwAAAAACAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAABmFtb3VudAAAAAAACgAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAfd2l0aGRyYXdfYnJpZGdpbmdfZmVlX2luX3Rva2VucwAAAAACAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAADXRva2VuX2FkZHJlc3MAAAAAAAATAAAAAQAAA+kAAAPtAAAAAAAAAAM=","AAAAAAAAAAAAAAAVaGFzX3Byb2Nlc3NlZF9tZXNzYWdlAAAAAAAAAQAAAAAAAAAHbWVzc2FnZQAAAAPuAAAAIAAAAAEAAAPpAAAAAQAAAAM=","AAAAAAAAAAAAAAAUaGFzX3JlY2VpdmVkX21lc3NhZ2UAAAABAAAAAAAAAAdtZXNzYWdlAAAAA+4AAAAgAAAAAQAAA+kAAAABAAAAAw==","AAAAAAAAAAAAAAAQZ2V0X3Bvb2xfYWRkcmVzcwAAAAEAAAAAAAAADXRva2VuX2FkZHJlc3MAAAAAAAPuAAAAIAAAAAEAAAPpAAAAEwAAAAM=","AAAAAAAAAAAAAAAKZ2V0X2NvbmZpZwAAAAAAAAAAAAEAAAPpAAAH0AAAAAZCcmlkZ2UAAAAAAAM=","AAAAAAAAAAAAAAASZ2V0X3N0b3BfYXV0aG9yaXR5AAAAAAAAAAAAAQAAA+kAAAATAAAAAw==","AAAAAAAAAAAAAAAUZ2V0X3RyYW5zYWN0aW9uX2Nvc3QAAAABAAAAAAAAAAhjaGFpbl9pZAAAAAQAAAABAAAD6QAAAAoAAAAD","AAAAAAAAAAAAAAANZ2V0X2dhc191c2FnZQAAAAAAAAEAAAAAAAAACGNoYWluX2lkAAAABAAAAAEAAAPpAAAACgAAAAM=","AAAAAAAAAAAAAAAJZ2V0X2FkbWluAAAAAAAAAAAAAAEAAAPpAAAAEwAAAAM=","AAAAAAAAAAAAAAAOZ2V0X2dhc19vcmFjbGUAAAAAAAAAAAABAAAD6QAAABMAAAAD","AAAAAAAAAAAAAAASZ2V0X2Fub3RoZXJfYnJpZGdlAAAAAAABAAAAAAAAAAhjaGFpbl9pZAAAAAQAAAABAAAD6QAAB9AAAAANQW5vdGhlckJyaWRnZQAAAAAAAAM=","AAAAAAAAAAAAAAAJc2V0X2FkbWluAAAAAAAAAQAAAAAAAAAJbmV3X2FkbWluAAAAAAAAEwAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAQAAAAAAAAAAAAAAB1N3YXBwZWQAAAAABgAAAAAAAAAOcmVjZWl2ZV9hbW91bnQAAAAAAAoAAAAAAAAADXJlY2VpdmVfdG9rZW4AAAAAAAPuAAAAIAAAAAAAAAAJcmVjaXBpZW50AAAAAAAAEwAAAAAAAAALc2VuZF9hbW91bnQAAAAACgAAAAAAAAAKc2VuZF90b2tlbgAAAAAD7gAAACAAAAAAAAAABnNlbmRlcgAAAAAAEw==","AAAAAQAAAAAAAAAAAAAAClRva2Vuc1NlbnQAAAAAAAUAAAAAAAAABmFtb3VudAAAAAAACgAAAAAAAAAUZGVzdGluYXRpb25fY2hhaW5faWQAAAAEAAAAAAAAAAVub25jZQAAAAAAAAwAAAAAAAAADXJlY2VpdmVfdG9rZW4AAAAAAAPuAAAAIAAAAAAAAAAJcmVjaXBpZW50AAAAAAAD7gAAACA=","AAAAAQAAAAAAAAAAAAAADlRva2Vuc1JlY2VpdmVkAAAAAAAEAAAAAAAAAAZhbW91bnQAAAAAAAoAAAAAAAAAB21lc3NhZ2UAAAAD7gAAACAAAAAAAAAABW5vbmNlAAAAAAAADAAAAAAAAAAJcmVjaXBpZW50AAAAAAAD7gAAACA=","AAAAAQAAAAAAAAAAAAAAClJlY2VpdmVGZWUAAAAAAAMAAAAAAAAAF2JyaWRnZV90cmFuc2FjdGlvbl9jb3N0AAAAAAoAAAAAAAAACWV4dHJhX2dhcwAAAAAAAAoAAAAAAAAAGG1lc3NhZ2VfdHJhbnNhY3Rpb25fY29zdAAAAAo=","AAAAAQAAAAAAAAAAAAAAFUJyaWRnaW5nRmVlRnJvbVRva2VucwAAAAAAAAIAAAAAAAAAEGZlZV90b2tlbl9hbW91bnQAAAAKAAAAAAAAAANnYXMAAAAACg==","AAAAAQAAAAAAAAAAAAAADUFub3RoZXJCcmlkZ2UAAAAAAAACAAAAAAAAAAdhZGRyZXNzAAAAA+4AAAAgAAAAAAAAAAZ0b2tlbnMAAAAAA+wAAAPuAAAAIAAAAAE=","AAAAAQAAAAAAAAAAAAAABkJyaWRnZQAAAAAABgAAAGBwcmVjb21wdXRlZCB2YWx1ZXMgb2YgdGhlIHNjYWxpbmcgZmFjdG9yIHJlcXVpcmVkIGZvciBwYXlpbmcgdGhlIGJyaWRnaW5nIGZlZSB3aXRoIHN0YWJsZSB0b2tlbnMAAAAeYnJpZGdpbmdfZmVlX2NvbnZlcnNpb25fZmFjdG9yAAAAAAPsAAAAEwAAAAoAAAAAAAAACGNhbl9zd2FwAAAAAQAAAGxwcmVjb21wdXRlZCB2YWx1ZXMgdG8gZGl2aWRlIGJ5IHRvIGNoYW5nZSB0aGUgcHJlY2lzaW9uIGZyb20gdGhlIEdhcyBPcmFjbGUgcHJlY2lzaW9uIHRvIHRoZSB0b2tlbiBwcmVjaXNpb24AAAAWZnJvbV9nYXNfb3JhY2xlX2ZhY3RvcgAAAAAD7AAAABMAAAAKAAAAAAAAAAltZXNzZW5nZXIAAAAAAAATAAAAAAAAAAVwb29scwAAAAAAA+wAAAPuAAAAIAAAABMAAAAAAAAACnJlYmFsYW5jZXIAAAAAABM=","AAAAAgAAAAAAAAAAAAAAB0RhdGFLZXkAAAAAAwAAAAEAAAAAAAAAC090aGVyQnJpZGdlAAAAAAEAAAAEAAAAAQAAAAAAAAALU2VudE1lc3NhZ2UAAAAAAQAAA+4AAAAgAAAAAQAAAAAAAAAPUmVjZWl2ZWRNZXNzYWdlAAAAAAEAAAPuAAAAIA==","AAAAAQAAAAAAAAAAAAAABUFkbWluAAAAAAAAAQAAAAAAAAABMAAAAAAAABM=","AAAAAQAAAAAAAAAAAAAAEEdhc09yYWNsZUFkZHJlc3MAAAABAAAAAAAAAAEwAAAAAAAAEw==","AAAAAQAAAAAAAAAAAAAACEdhc1VzYWdlAAAAAQAAAAAAAAABMAAAAAAAA+wAAAAEAAAACg==","AAAAAQAAAAAAAAAAAAAAC05hdGl2ZVRva2VuAAAAAAEAAAAAAAAAATAAAAAAAAAT","AAAAAQAAAAAAAAAAAAAADVN0b3BBdXRob3JpdHkAAAAAAAABAAAAAAAAAAEwAAAAAAAAEw==","AAAABAAAAAAAAAAAAAAABUVycm9yAAAAAAAAKAAAAAAAAAANVW5pbXBsZW1lbnRlZAAAAAAAAAAAAAAAAAAAC0luaXRpYWxpemVkAAAAAAEAAAAAAAAADVVuaW5pdGlhbGl6ZWQAAAAAAAACAAAAAAAAAAxVbmF1dGhvcml6ZWQAAAADAAAAAAAAAApJbnZhbGlkQXJnAAAAAAAEAAAAAAAAAA5JbnZhbGlkQ2hhaW5JZAAAAAAABQAAAAAAAAATSW52YWxpZE90aGVyQ2hhaW5JZAAAAAAGAAAAAAAAAA5HYXNVc2FnZU5vdFNldAAAAAAABwAAAAAAAAANQnJva2VuQWRkcmVzcwAAAAAAAAgAAAAAAAAACE5vdEZvdW5kAAAACQAAAAAAAAAYVG9rZW5JbnN1ZmZpY2llbnRCYWxhbmNlAAAACgAAAAAAAAAKQ2FzdEZhaWxlZAAAAAAACwAAAAAAAAAMVTI1Nk92ZXJmbG93AAAADAAAAAAAAAAKWmVyb0Ftb3VudAAAAAAAZwAAAAAAAAAMUG9vbE92ZXJmbG93AAAAaAAAAAAAAAALWmVyb0NoYW5nZXMAAAAAaQAAAAAAAAARUmVzZXJ2ZXNFeGhhdXN0ZWQAAAAAAABqAAAAAAAAABpJbnN1ZmZpY2llbnRSZWNlaXZlZEFtb3VudAAAAAAAawAAAAAAAAAUQmFsYW5jZVJhdGlvRXhjZWVkZWQAAABsAAAAAAAAAAlGb3JiaWRkZW4AAAAAAABtAAAAAAAAABlVbmF1dGhvcml6ZWRTdG9wQXV0aG9yaXR5AAAAAAAAywAAAAAAAAAOU3dhcFByb2hpYml0ZWQAAAAAAMwAAAAAAAAAEkFtb3VudFRvb0xvd0ZvckZlZQAAAAAAzQAAAAAAAAAWQnJpZGdlVG9UaGVaZXJvQWRkcmVzcwAAAAAAzgAAAAAAAAAORW1wdHlSZWNpcGllbnQAAAAAAM8AAAAAAAAAE1NvdXJjZU5vdFJlZ2lzdGVyZWQAAAAA0AAAAAAAAAAVV3JvbmdEZXN0aW5hdGlvbkNoYWluAAAAAAAA0QAAAAAAAAATVW5rbm93bkFub3RoZXJDaGFpbgAAAADSAAAAAAAAABFUb2tlbnNBbHJlYWR5U2VudAAAAAAAANMAAAAAAAAAEE1lc3NhZ2VQcm9jZXNzZWQAAADUAAAAAAAAAAxOb3RFbm91Z2hGZWUAAADWAAAAAAAAAAlOb01lc3NhZ2UAAAAAAADXAAAAAAAAAA1Ob1JlY2VpdmVQb29sAAAAAAAA2AAAAAAAAAAGTm9Qb29sAAAAAADZAAAAAAAAABNVbmtub3duQW5vdGhlclRva2VuAAAAANoAAAAAAAAAD1dyb25nQnl0ZUxlbmd0aAAAAAEsAAAAAAAAAApIYXNNZXNzYWdlAAAAAAEtAAAAAAAAABdJbnZhbGlkUHJpbWFyeVNpZ25hdHVyZQAAAAEuAAAAAAAAABlJbnZhbGlkU2Vjb25kYXJ5U2lnbmF0dXJlAAAAAAABLwAAAAAAAAARTm9HYXNEYXRhRm9yQ2hhaW4AAAAAAAGQ"]),i);this.options=i}fromJSON={initialize:this.txFromJSON,swap_and_bridge:this.txFromJSON,receive_tokens:this.txFromJSON,swap:this.txFromJSON,stop_swap:this.txFromJSON,start_swap:this.txFromJSON,set_gas_oracle:this.txFromJSON,set_stop_authority:this.txFromJSON,set_rebalancer:this.txFromJSON,set_messenger:this.txFromJSON,set_gas_usage:this.txFromJSON,register_bridge:this.txFromJSON,add_bridge_token:this.txFromJSON,remove_bridge_token:this.txFromJSON,add_pool:this.txFromJSON,withdraw_gas_tokens:this.txFromJSON,withdraw_bridging_fee_in_tokens:this.txFromJSON,has_processed_message:this.txFromJSON,has_received_message:this.txFromJSON,get_pool_address:this.txFromJSON,get_config:this.txFromJSON,get_stop_authority:this.txFromJSON,get_transaction_cost:this.txFromJSON,get_gas_usage:this.txFromJSON,get_admin:this.txFromJSON,get_gas_oracle:this.txFromJSON,get_another_bridge:this.txFromJSON,set_admin:this.txFromJSON,upgrade:this.txFromJSON}};var on=class extends Ce{constructor(i,r,A){super();this.nodeRpcUrlsConfig=i;this.params=r;this.api=A}chainType="SRB";async buildRawTransactionSend(i){let r=await Ue(this.chainType,i,this.api);return await this.buildRawTransactionSendFromParams(r)}async buildRawTransactionSendFromParams(i){let{amount:r,contractAddress:A,fromAccountAddress:u,fromTokenAddress:c,toChainId:g,toAccountAddress:f,toTokenAddress:h,fee:b,gasFeePaymentMethod:T,extraGas:B}=i,w=b;B&&(w=qa(w).plus(B).toFixed());let C=this.getContract(Ct,A,u),M;return T==="stablecoin"?M=await C.swap_and_bridge({sender:u,token:Xn.contract(S.from(c)).toString(),amount:BigInt(r),recipient:S.from(f),destination_chain_id:+g,receive_token:S.from(h),nonce:Pt(),gas_amount:BigInt(0),fee_token_amount:BigInt(w)}):M=await C.swap_and_bridge({sender:u,token:Xn.contract(S.from(c)).toString(),amount:BigInt(r),recipient:S.from(f),destination_chain_id:+g,receive_token:S.from(h),nonce:Pt(),gas_amount:BigInt(w),fee_token_amount:BigInt(0)}),M.toXDR()}async buildRawTransactionSwap(i){let r=Le(this.chainType,i);return await this.buildRawTransactionSwapFromParams(r)}async buildRawTransactionSwapFromParams(i){let{amount:r,contractAddress:A,fromAccountAddress:u,fromTokenAddress:c,toAccountAddress:g,toTokenAddress:f,minimumReceiveAmount:h}=i;return(await this.getContract(Ct,A,u).swap({sender:u,amount:BigInt(r),token:Xn.contract(S.from(c)).toBuffer(),receive_token:S.from(f),recipient:g,receive_amount_min:BigInt(h)})).toXDR()}send(i){throw new ue}getContract(i,r,A){let u={publicKey:A,contractId:r,networkPassphrase:this.params.sorobanNetworkPassphrase,rpcUrl:this.nodeRpcUrlsConfig.getNodeRpcUrl("SRB")};return new i(u)}};import{Big as tr}from"big.js";import $a from"bn.js";function An(m){return"0x"+new $a(m).toString("hex")}function Yi(m){return new Promise(a=>setTimeout(()=>a(),m))}async function cn(m,a){let i=await m.trx.sign(a);if(!i.signature)throw new it("Transaction was not signed properly");let A=(await m.trx.sendRawTransaction(i)).transaction.txID;return await er(m,A),{txId:A}}async function er(m,a,i=1e4){let r=Date.now();for(;;){if(Date.now()-r>i)throw new ft("Transaction not found");let A=await m.trx.getUnconfirmedTransactionInfo(a);if(!A?.receipt){await Yi(2e3);continue}if(A.receipt.result==="SUCCESS")return A;throw new ft(`Transaction status is ${A.receipt.result}`)}}var It=class extends Ce{constructor(i,r){super();this.tronWeb=i;this.api=r}chainType="TRX";async send(i){let r=await Ue(this.chainType,i,this.api),A=await this.buildRawTransactionSendFromParams(r);return await cn(this.tronWeb,A)}async buildRawTransactionSwap(i){let r=Le(this.chainType,i);return await this.buildRawTransactionSwapFromParams(r)}async buildRawTransactionSwapFromParams(i){let{amount:r,contractAddress:A,fromAccountAddress:u,fromTokenAddress:c,toAccountAddress:g,toTokenAddress:f,minimumReceiveAmount:h}=i,b=[{type:"uint256",value:r},{type:"bytes32",value:c},{type:"bytes32",value:f},{type:"address",value:g},{type:"uint256",value:h}];return this.buildRawTransaction(A,"swap(uint256,bytes32,bytes32,address,uint256)",b,"0",u)}async buildRawTransactionSend(i){let r=await Ue(this.chainType,i,this.api);return this.buildRawTransactionSendFromParams(r)}async buildRawTransactionSendFromParams(i){let{amount:r,contractAddress:A,fromAccountAddress:u,fromTokenAddress:c,toChainId:g,toAccountAddress:f,toTokenAddress:h,messenger:b,fee:T,gasFeePaymentMethod:B,extraGas:w}=i,C=T;w&&(C=tr(C).plus(w).toFixed());let M=Pt().toString(),I,W,x;return b==3?(B==="stablecoin"?(I=[{type:"uint256",value:r},{type:"bytes32",value:f},{type:"uint256",value:g},{type:"uint256",value:C}],W="0"):(I=[{type:"uint256",value:r},{type:"bytes32",value:f},{type:"uint256",value:g},{type:"uint256",value:0}],W=C),x="bridge(uint256,bytes32,uint256,uint256)"):(B==="stablecoin"?(I=[{type:"bytes32",value:c},{type:"uint256",value:r},{type:"bytes32",value:f},{type:"uint256",value:g},{type:"bytes32",value:h},{type:"uint256",value:M},{type:"uint8",value:b},{type:"uint256",value:C}],W="0"):(I=[{type:"bytes32",value:c},{type:"uint256",value:r},{type:"bytes32",value:f},{type:"uint256",value:g},{type:"bytes32",value:h},{type:"uint256",value:M},{type:"uint8",value:b},{type:"uint256",value:0}],W=C),x="swapAndBridge(bytes32,uint256,bytes32,uint256,bytes32,uint256,uint8,uint256)"),this.buildRawTransaction(A,x,I,W,u)}async buildRawTransaction(i,r,A,u,c){let g=await this.tronWeb.transactionBuilder.triggerSmartContract(i,r,{callValue:+u},A,c);if(!g?.result?.result)throw new D("Unknown error: "+JSON.stringify(g,null,2));return g.transaction}};var un=class{constructor(a,i,r,A){this.api=a;this.nodeRpcUrlsConfig=i;this.params=r;this.tokenService=A;this.rawTxBuilder=new en(a,i,r,A)}rawTxBuilder;async getAllowance(a,i){let r,A;i?(r=a,A=i):A=a;let u=wt(A.token,A.messenger);return await this.tokenService.getAllowance({...A,spender:u},r)}async checkAllowance(a,i){let r,A;i?(r=a,A=i):A=a;let u=wt(A.token,A.messenger);return this.tokenService.checkAllowance({...A,spender:u},r)}async approve(a,i){let r=wt(i.token,i.messenger);return this.tokenService.approve(a,{...i,spender:r})}async send(a,i){return L(i.amount),J("amount",i.amount,i.sourceToken.decimals),tn(i.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,a).send(i)}};function wt(m,a){if(a&&a==3){if(m.cctpAddress)return m.cctpAddress;throw new Se("Such route does not support CCTP protocol")}else return m.bridgeAddress}function tn(m,a,i,r,A){switch(V.getChainProperty(m).chainType){case"EVM":{if(A)return new St(A,a,i);{let u=i.getNodeRpcUrl(m);return new St(new ir(u),a,i)}}case"TRX":{if(A)return new It(A,a);{let u=i.getNodeRpcUrl(m);return new It(new nr({fullHost:u,solidityNode:u,eventServer:u}),a)}}case"SOLANA":return new sn(i.getNodeRpcUrl("SOL"),{wormholeMessengerProgramId:r.wormholeMessengerProgramId,solanaLookUpTable:r.solanaLookUpTable,cctpParams:r.cctpParams,jupiterUrl:r.jupiterUrl,jupiterMaxAccounts:r.jupiterMaxAccounts},a);case"SRB":return new on(i,r,a)}}import{Big as mr}from"big.js";import dr from"timed-cache";import{TronWeb as pr}from"tronweb";import{FMT_BYTES as gr,FMT_NUMBER as fr,Web3 as hr}from"web3";import{Big as Ze}from"big.js";function Ji(m,a,i,r,A){let u=O(m,3),c=Ze(u),g=Ze(i),f=Ze(r).plus(A),h,b;if(g.eq(0)||f.eq(0)){let B=c.div(2);h=Ze(r).plus(B),b=Ze(A).plus(B)}else h=Ze(r).plus(c.mul(r).div(f)),b=Ze(A).plus(c.mul(A).div(f));return Ze(ci(a,h.toFixed(),b.toFixed())).minus(g).toFixed()}function Ki(m){let a=O(m,3);return Ze(a).round().toFixed()}import{Web3 as Je}from"web3";var ar={abi:[{inputs:[{internalType:"address",name:"_router",type:"address"},{internalType:"uint256",name:"_a",type:"uint256"},{internalType:"contract ERC20",name:"_token",type:"address"},{internalType:"uint16",name:"_feeShareBP",type:"uint16"},{internalType:"uint256",name:"_balanceRatioMinBP",type:"uint256"},{internalType:"string",name:"lpName",type:"string"},{internalType:"string",name:"lpSymbol",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"RewardsClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"vUsdAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fee",type:"uint256"}],name:"SwappedFromVUsd",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vUsdAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fee",type:"uint256"}],name:"SwappedToVUsd",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Withdraw",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"a",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"accRewardPerShareP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"adjustTotalLpAmount",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"adminFeeAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"adminFeeShareBP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"balanceRatioMinBP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"canDeposit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"canWithdraw",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"claimAdminFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimRewards",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"d",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"feeShareBP",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"getPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"x",type:"uint256"}],name:"getY",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"pendingReward",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"reserves",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"router",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_adminFeeShareBP",type:"uint256"}],name:"setAdminFeeShare",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_balanceRatioMinBP",type:"uint256"}],name:"setBalanceRatioMinBP",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"_feeShareBP",type:"uint16"}],name:"setFeeShare",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_router",type:"address"}],name:"setRouter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_stopAuthority",type:"address"}],name:"setStopAuthority",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"startDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"startWithdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"stopDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"stopWithdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"receiveAmountMin",type:"uint256"},{internalType:"bool",name:"zeroFee",type:"bool"}],name:"swapFromVUsd",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bool",name:"zeroFee",type:"bool"}],name:"swapToVUsd",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"token",outputs:[{internalType:"contract ERC20",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"tokenBalance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"userRewardDebt",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"vUsdBalance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amountLp",type:"uint256"}],name:"withdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}]},lt=ar;var fe=class{lpAmount;rewardDebt;constructor(a){this.lpAmount=a.lpAmount,this.rewardDebt=a.rewardDebt}get userLiquidity(){return N(this.lpAmount,3).toFixed()}earned(a,i){let r=oi(this.lpAmount,this.rewardDebt,a.accRewardPerShareP,a.p);return i?N(r,i).toFixed():r}};var Re=class{};var Rt=class extends Re{constructor(i,r){super();this.web3=i;this.api=r}chainType="EVM";P=52;async getUserBalanceInfo(i,r){let A;try{A=await Ht(this.getUserBalanceInfoByBatch(i,r),`Cannot get UserBalanceInfo for ${r.name} on ${r.chainSymbol}`,5e3)}catch{A=await Fn(()=>this.getUserBalanceInfoPerProperty(i,r),`Cannot get UserBalanceInfo for ${r.name} on ${r.chainSymbol}`,5,2e3)}return A}async getPoolInfoFromChain(i){let r;try{r=await Ht(this.getPoolInfoByBatch(i),`Cannot get PoolInfo for ${i.name} on ${i.chainSymbol}`,5e3)}catch{r=await Fn(()=>this.getPoolInfoPerProperty(i),`Cannot get PoolInfo for ${i.name} on ${i.chainSymbol}`,5,2e3)}return r}async getUserBalanceInfoByBatch(i,r){let A=new this.web3.eth.BatchRequest,u=this.getPoolContract(r.poolAddress),c=u.methods.userRewardDebt(i).encodeABI(),g=u.methods.balanceOf(i).encodeABI();A.add({method:"eth_call",params:[{to:r.poolAddress,data:c},"latest"]}),A.add({method:"eth_call",params:[{to:r.poolAddress,data:g},"latest"]});let[f,h]=await A.execute();if(f&&h&&!f.error&&!h.error)return new fe({lpAmount:Je.utils.toBigInt(h.result).toString(),rewardDebt:Je.utils.toBigInt(f.result).toString()});throw new Error("Batched failed")}async getUserBalanceInfoPerProperty(i,r){let A=(await this.getPoolContract(r.poolAddress).methods.userRewardDebt(i).call()).toString(),u=(await this.getPoolContract(r.poolAddress).methods.balanceOf(i).call()).toString();return new fe({lpAmount:u,rewardDebt:A})}async getPoolInfoByBatch(i){let r=new this.web3.eth.BatchRequest,A=this.getPoolContract(i.poolAddress),u=A.methods.a().encodeABI(),c=A.methods.d().encodeABI(),g=A.methods.tokenBalance().encodeABI(),f=A.methods.vUsdBalance().encodeABI(),h=A.methods.totalSupply().encodeABI(),b=A.methods.accRewardPerShareP().encodeABI();r.add({method:"eth_call",params:[{to:i.poolAddress,data:u},"latest"]}),r.add({method:"eth_call",params:[{to:i.poolAddress,data:c},"latest"]}),r.add({method:"eth_call",params:[{to:i.poolAddress,data:g},"latest"]}),r.add({method:"eth_call",params:[{to:i.poolAddress,data:f},"latest"]}),r.add({method:"eth_call",params:[{to:i.poolAddress,data:h},"latest"]}),r.add({method:"eth_call",params:[{to:i.poolAddress,data:b},"latest"]});let[T,B,w,C,M,I]=await r.execute();if(T&&B&&w&&C&&M&&I&&!T.error&&!B.error&&!w.error&&!C.error&&!M.error&&!I.error){let W=Je.utils.toBigInt(w.result).toString(),x=Je.utils.toBigInt(C.result).toString(),F=ge({tokenBalance:W,vUsdBalance:x});return{aValue:Je.utils.toBigInt(T.result).toString(),dValue:Je.utils.toBigInt(B.result).toString(),tokenBalance:W,vUsdBalance:x,totalLpAmount:Je.utils.toBigInt(M.result).toString(),accRewardPerShareP:Je.utils.toBigInt(I.result).toString(),p:this.P,imbalance:F}}throw new Error("Batched failed")}async getPoolInfoPerProperty(i){let r=this.getPoolContract(i.poolAddress),A=(await r.methods.a().call()).toString(),u=(await r.methods.d().call()).toString(),c=(await r.methods.tokenBalance().call()).toString(),g=(await r.methods.vUsdBalance().call()).toString(),f=(await r.methods.totalSupply().call()).toString(),h=(await r.methods.accRewardPerShareP().call()).toString(),b=ge({tokenBalance:c,vUsdBalance:g});return{aValue:A,dValue:u,tokenBalance:c,vUsdBalance:g,totalLpAmount:f,accRewardPerShareP:h,p:this.P,imbalance:b}}async buildRawTransactionDeposit(i){return Promise.resolve({...this.buildTxParams(i),data:this.getPoolContract(i.token.poolAddress).methods.deposit(i.amount).encodeABI()})}async buildRawTransactionWithdraw(i){return Promise.resolve({...this.buildTxParams(i),data:this.getPoolContract(i.token.poolAddress).methods.withdraw(i.amount).encodeABI()})}async buildRawTransactionClaimRewards(i){return Promise.resolve({...this.buildTxParams(i),data:this.getPoolContract(i.token.poolAddress).methods.claimRewards().encodeABI()})}buildTxParams(i){return{from:i.accountAddress,to:i.token.poolAddress,value:"0"}}getPoolContract(i){return new this.web3.eth.Contract(lt.abi,i)}};var ln=class{constructor(a,i,r,A){this.api=a;this.nodeRpcUrlsConfig=i;this.params=r;this.tokenService=A}async approve(a,i){if(i){let r=a,A=i;return this.tokenService.buildRawTransactionApprove({...A,spender:A.token.poolAddress},r)}else{let r=a;return this.tokenService.buildRawTransactionApprove({...r,spender:r.token.poolAddress})}}async deposit(a,i){return L(a.amount),J("amount",a.amount,a.token.decimals),a.amount=O(a.amount,a.token.decimals).toFixed(),mt(a.token.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionDeposit(a)}async withdraw(a,i){return L(a.amount),J("amount",a.amount,a.token.decimals),a.amount=O(a.amount,3).toFixed(),mt(a.token.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionWithdraw(a)}async claimRewards(a,i){return mt(a.token.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).buildRawTransactionClaimRewards(a)}};import{AnchorProvider as rr,BN as Qi,Program as sr,Spl as or,web3 as Ar}from"@project-serum/anchor";import{Connection as cr,PublicKey as Ke}from"@solana/web3.js";var mn=class extends Re{constructor(i,r){super();this.solanaRpcUrl=i;this.api=r}chainType="SOLANA";P=48;async getUserBalanceInfo(i,r){let A=this.buildAnchorProvider(i),u=this.getBridge(r.bridgeAddress,A),c=new Ke(r.poolAddress),g=await u.account.pool.fetch(c);try{let f=await Dn(new Ke(i),g.mint,u.programId),{lpAmount:h,rewardDebt:b}=await u.account.userDeposit.fetch(f);return new fe({lpAmount:h.toString(),rewardDebt:b.toString()})}catch{return new fe({lpAmount:"0",rewardDebt:"0"})}}async getPoolInfoFromChain(i){let r=this.buildAnchorProvider(i.bridgeAddress),A=await this.getBridge(i.bridgeAddress,r).account.pool.fetch(i.poolAddress),u=A.vUsdBalance.toString(),c=A.tokenBalance.toString(),g=ge({tokenBalance:c,vUsdBalance:u});return{dValue:A.d.toString(),aValue:A.a.toString(),totalLpAmount:A.totalLpAmount.toString(),vUsdBalance:u,tokenBalance:c,accRewardPerShareP:A.accRewardPerShareP.toString(),p:this.P,imbalance:g}}async buildRawTransactionDeposit(i){let{bridge:r,accounts:A,preInstructions:u}=await this.prepareDataForTransaction(i),c=await r.methods.deposit(new Qi(i.amount)).accounts(A).preInstructions(u).transaction();return c.recentBlockhash=(await this.buildAnchorProvider(i.accountAddress).connection.getLatestBlockhash()).blockhash,c.feePayer=new Ke(i.accountAddress),await ct(c,i.txFeeParams,this.solanaRpcUrl),c}async buildRawTransactionWithdraw(i){let{bridge:r,accounts:A,preInstructions:u}=await this.prepareDataForTransaction(i),c=await r.methods.withdraw(new Qi(i.amount)).accounts(A).preInstructions(u).transaction();return c.recentBlockhash=(await this.buildAnchorProvider(i.accountAddress).connection.getLatestBlockhash()).blockhash,c.feePayer=new Ke(i.accountAddress),await ct(c,i.txFeeParams,this.solanaRpcUrl),c}async buildRawTransactionClaimRewards(i){let{bridge:r,accounts:A,preInstructions:u}=await this.prepareDataForTransaction(i),c=await r.methods.claimRewards().accounts(A).preInstructions(u).transaction();return c.recentBlockhash=(await this.buildAnchorProvider(i.accountAddress).connection.getLatestBlockhash()).blockhash,c.feePayer=new Ke(i.accountAddress),await ct(c,i.txFeeParams,this.solanaRpcUrl),c}async prepareDataForTransaction(i){let r=this.buildAnchorProvider(i.accountAddress),A=this.getBridge(i.token.bridgeAddress,r),{accounts:u,preInstructions:c}=await this._getLPTransactionData(A,i.token.poolAddress,i.accountAddress,r);return{bridge:A,accounts:u,preInstructions:c}}getBridge(i,r){return new sr(Bt,i,r)}buildAnchorProvider(i){let r=new cr(this.solanaRpcUrl,"confirmed"),A=new Ke(i);return new rr(r,{publicKey:A},{preflightCommitment:"confirmed",commitment:"confirmed"})}async _getLPTransactionData(i,r,A,u){let c=new Ke(A),g=await Oe(i.programId),f=await rt(i.programId),h=new Ke(r),T=(await i.account.pool.fetch(h)).mint,B=await Be(c,T),w=await st(T,i.programId),C=await Dn(c,T,i.programId),M=[Ar.ComputeBudgetProgram.setComputeUnitLimit({units:1e6})];try{await At(B,u)}catch{let F=await or.associatedToken(u).methods.create().accounts({mint:T,owner:c,associatedAccount:B}).instruction();M.push(F)}try{await i.account.userDeposit.fetch(C)}catch{let x=await i.methods.initDepositAccount().accounts({mint:T,user:c,userDeposit:C}).instruction();M.push(x)}return{accounts:{mint:T,user:c,config:g,pool:h,bridgeAuthority:f,userDeposit:C,userToken:B,bridgeToken:w},preInstructions:M}}};import{contract as Gb}from"@stellar/stellar-sdk";import{contract as t}from"@stellar/stellar-sdk";var ur=t.Spec,lr=t.Client;var dn=class extends lr{constructor(i){super(new ur(["AAAAAAAAAAAAAAAKaW5pdGlhbGl6ZQAAAAAABwAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAZicmlkZ2UAAAAAABMAAAAAAAAAAWEAAAAAAAAKAAAAAAAAAAV0b2tlbgAAAAAAABMAAAAAAAAADGZlZV9zaGFyZV9icAAAAAoAAAAAAAAAFGJhbGFuY2VfcmF0aW9fbWluX2JwAAAACgAAAAAAAAASYWRtaW5fZmVlX3NoYXJlX2JwAAAAAAAKAAAAAQAAA+kAAAPtAAAAAAAAAAM=","AAAAAAAAAAAAAAAHZGVwb3NpdAAAAAACAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAABmFtb3VudAAAAAAACgAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAId2l0aGRyYXcAAAACAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAACWFtb3VudF9scAAAAAAAAAoAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAANc3dhcF90b192X3VzZAAAAAAAAAMAAAAAAAAABHVzZXIAAAATAAAAAAAAAAZhbW91bnQAAAAAAAoAAAAAAAAACHplcm9fZmVlAAAAAQAAAAEAAAPpAAAACgAAAAM=","AAAAAAAAAAAAAAAPc3dhcF9mcm9tX3ZfdXNkAAAAAAQAAAAAAAAABHVzZXIAAAATAAAAAAAAAAt2dXNkX2Ftb3VudAAAAAAKAAAAAAAAABJyZWNlaXZlX2Ftb3VudF9taW4AAAAAAAoAAAAAAAAACHplcm9fZmVlAAAAAQAAAAEAAAPpAAAACgAAAAM=","AAAAAAAAAAAAAAANY2xhaW1fcmV3YXJkcwAAAAAAAAEAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAdgYWRtaW5gAAAAAA1zZXRfZmVlX3NoYXJlAAAAAAAAAQAAAAAAAAAMZmVlX3NoYXJlX2JwAAAACgAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAWYWRqdXN0X3RvdGFsX2xwX2Ftb3VudAAAAAAAAAAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAYc2V0X2JhbGFuY2VfcmF0aW9fbWluX2JwAAAAAQAAAAAAAAAUYmFsYW5jZV9yYXRpb19taW5fYnAAAAAKAAAAAQAAA+kAAAPtAAAAAAAAAAM=","AAAAAAAAAAAAAAAMc3RvcF9kZXBvc2l0AAAAAAAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAANc3RhcnRfZGVwb3NpdAAAAAAAAAAAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAANc3RvcF93aXRoZHJhdwAAAAAAAAAAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAAOc3RhcnRfd2l0aGRyYXcAAAAAAAAAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAASc2V0X3N0b3BfYXV0aG9yaXR5AAAAAAABAAAAAAAAAA5zdG9wX2F1dGhvcml0eQAAAAAAEwAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAKc2V0X2JyaWRnZQAAAAAAAQAAAAAAAAAGYnJpZGdlAAAAAAATAAAAAQAAA+kAAAPtAAAAAAAAAAM=","AAAAAAAAAAAAAAAJc2V0X2FkbWluAAAAAAAAAQAAAAAAAAAJbmV3X2FkbWluAAAAAAAAEwAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAATc2V0X2FkbWluX2ZlZV9zaGFyZQAAAAABAAAAAAAAABJhZG1pbl9mZWVfc2hhcmVfYnAAAAAAAAoAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAAPY2xhaW1fYWRtaW5fZmVlAAAAAAAAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAZgdmlld2AAAAAAAA5wZW5kaW5nX3Jld2FyZAAAAAAAAQAAAAAAAAAEdXNlcgAAABMAAAABAAAD6QAAAAoAAAAD","AAAAAAAAAAAAAAAIZ2V0X3Bvb2wAAAAAAAAAAQAAA+kAAAfQAAAABFBvb2wAAAAD","AAAAAAAAAAAAAAAJZ2V0X2FkbWluAAAAAAAAAAAAAAEAAAPpAAAAEwAAAAM=","AAAAAAAAAAAAAAASZ2V0X3N0b3BfYXV0aG9yaXR5AAAAAAAAAAAAAQAAA+kAAAATAAAAAw==","AAAAAAAAAAAAAAAKZ2V0X2JyaWRnZQAAAAAAAAAAAAEAAAPpAAAAEwAAAAM=","AAAAAAAAAAAAAAAQZ2V0X3VzZXJfZGVwb3NpdAAAAAEAAAAAAAAABHVzZXIAAAATAAAAAQAAA+kAAAfQAAAAC1VzZXJEZXBvc2l0AAAAAAM=","AAAAAAAAAAAAAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAQAAAAAAAAAAAAAAD1N3YXBwZWRGcm9tVlVzZAAAAAAFAAAAAAAAAAZhbW91bnQAAAAAAAoAAAAAAAAAA2ZlZQAAAAAKAAAAAAAAAAlyZWNpcGllbnQAAAAAAAATAAAAAAAAAAV0b2tlbgAAAAAAABMAAAAAAAAAC3Z1c2RfYW1vdW50AAAAAAo=","AAAAAQAAAAAAAAAAAAAADVN3YXBwZWRUb1ZVc2QAAAAAAAAFAAAAAAAAAAZhbW91bnQAAAAAAAoAAAAAAAAAA2ZlZQAAAAAKAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAABXRva2VuAAAAAAAAEwAAAAAAAAALdnVzZF9hbW91bnQAAAAACg==","AAAAAQAAAAAAAAAAAAAAB0RlcG9zaXQAAAAAAgAAAAAAAAAGYW1vdW50AAAAAAAKAAAAAAAAAAR1c2VyAAAAEw==","AAAAAQAAAAAAAAAAAAAACFdpdGhkcmF3AAAAAgAAAAAAAAAGYW1vdW50AAAAAAAKAAAAAAAAAAR1c2VyAAAAEw==","AAAAAQAAAAAAAAAAAAAADlJld2FyZHNDbGFpbWVkAAAAAAACAAAAAAAAAAZhbW91bnQAAAAAAAoAAAAAAAAABHVzZXIAAAAT","AAAAAQAAAAAAAAAAAAAABkJyaWRnZQAAAAAAAQAAAAAAAAABMAAAAAAAABM=","AAAAAgAAAAAAAAAAAAAAB0RhdGFLZXkAAAAAAQAAAAEAAAAAAAAAC1VzZXJEZXBvc2l0AAAAAAEAAAAT","AAAAAQAAAAAAAAAAAAAABFBvb2wAAAAPAAAAAAAAAAFhAAAAAAAACgAAAAAAAAAWYWNjX3Jld2FyZF9wZXJfc2hhcmVfcAAAAAAACgAAAAAAAAAQYWRtaW5fZmVlX2Ftb3VudAAAAAoAAAAAAAAAEmFkbWluX2ZlZV9zaGFyZV9icAAAAAAACgAAAAAAAAAUYmFsYW5jZV9yYXRpb19taW5fYnAAAAAKAAAAAAAAAAtjYW5fZGVwb3NpdAAAAAABAAAAAAAAAAxjYW5fd2l0aGRyYXcAAAABAAAAAAAAAAFkAAAAAAAACgAAAAAAAAAIZGVjaW1hbHMAAAAEAAAAAAAAAAxmZWVfc2hhcmVfYnAAAAAKAAAAAAAAAAhyZXNlcnZlcwAAAAoAAAAAAAAABXRva2VuAAAAAAAAEwAAAAAAAAANdG9rZW5fYmFsYW5jZQAAAAAAAAoAAAAAAAAAD3RvdGFsX2xwX2Ftb3VudAAAAAAKAAAAAAAAAA12X3VzZF9iYWxhbmNlAAAAAAAACg==","AAAAAQAAAAAAAAAAAAAAC1VzZXJEZXBvc2l0AAAAAAIAAAAAAAAACWxwX2Ftb3VudAAAAAAAAAoAAAAAAAAAC3Jld2FyZF9kZWJ0AAAAAAo=","AAAAAQAAAAAAAAAAAAAABUFkbWluAAAAAAAAAQAAAAAAAAABMAAAAAAAABM=","AAAAAQAAAAAAAAAAAAAAEEdhc09yYWNsZUFkZHJlc3MAAAABAAAAAAAAAAEwAAAAAAAAEw==","AAAAAQAAAAAAAAAAAAAACEdhc1VzYWdlAAAAAQAAAAAAAAABMAAAAAAAA+wAAAAEAAAACg==","AAAAAQAAAAAAAAAAAAAAC05hdGl2ZVRva2VuAAAAAAEAAAAAAAAAATAAAAAAAAAT","AAAAAQAAAAAAAAAAAAAADVN0b3BBdXRob3JpdHkAAAAAAAABAAAAAAAAAAEwAAAAAAAAEw==","AAAABAAAAAAAAAAAAAAABUVycm9yAAAAAAAAKAAAAAAAAAANVW5pbXBsZW1lbnRlZAAAAAAAAAAAAAAAAAAAC0luaXRpYWxpemVkAAAAAAEAAAAAAAAADVVuaW5pdGlhbGl6ZWQAAAAAAAACAAAAAAAAAAxVbmF1dGhvcml6ZWQAAAADAAAAAAAAAApJbnZhbGlkQXJnAAAAAAAEAAAAAAAAAA5JbnZhbGlkQ2hhaW5JZAAAAAAABQAAAAAAAAATSW52YWxpZE90aGVyQ2hhaW5JZAAAAAAGAAAAAAAAAA5HYXNVc2FnZU5vdFNldAAAAAAABwAAAAAAAAANQnJva2VuQWRkcmVzcwAAAAAAAAgAAAAAAAAACE5vdEZvdW5kAAAACQAAAAAAAAAYVG9rZW5JbnN1ZmZpY2llbnRCYWxhbmNlAAAACgAAAAAAAAAKQ2FzdEZhaWxlZAAAAAAACwAAAAAAAAAMVTI1Nk92ZXJmbG93AAAADAAAAAAAAAAKWmVyb0Ftb3VudAAAAAAAZwAAAAAAAAAMUG9vbE92ZXJmbG93AAAAaAAAAAAAAAALWmVyb0NoYW5nZXMAAAAAaQAAAAAAAAARUmVzZXJ2ZXNFeGhhdXN0ZWQAAAAAAABqAAAAAAAAABpJbnN1ZmZpY2llbnRSZWNlaXZlZEFtb3VudAAAAAAAawAAAAAAAAAUQmFsYW5jZVJhdGlvRXhjZWVkZWQAAABsAAAAAAAAAAlGb3JiaWRkZW4AAAAAAABtAAAAAAAAABlVbmF1dGhvcml6ZWRTdG9wQXV0aG9yaXR5AAAAAAAAywAAAAAAAAAOU3dhcFByb2hpYml0ZWQAAAAAAMwAAAAAAAAAEkFtb3VudFRvb0xvd0ZvckZlZQAAAAAAzQAAAAAAAAAWQnJpZGdlVG9UaGVaZXJvQWRkcmVzcwAAAAAAzgAAAAAAAAAORW1wdHlSZWNpcGllbnQAAAAAAM8AAAAAAAAAE1NvdXJjZU5vdFJlZ2lzdGVyZWQAAAAA0AAAAAAAAAAVV3JvbmdEZXN0aW5hdGlvbkNoYWluAAAAAAAA0QAAAAAAAAATVW5rbm93bkFub3RoZXJDaGFpbgAAAADSAAAAAAAAABFUb2tlbnNBbHJlYWR5U2VudAAAAAAAANMAAAAAAAAAEE1lc3NhZ2VQcm9jZXNzZWQAAADUAAAAAAAAAAxOb3RFbm91Z2hGZWUAAADWAAAAAAAAAAlOb01lc3NhZ2UAAAAAAADXAAAAAAAAAA1Ob1JlY2VpdmVQb29sAAAAAAAA2AAAAAAAAAAGTm9Qb29sAAAAAADZAAAAAAAAABNVbmtub3duQW5vdGhlclRva2VuAAAAANoAAAAAAAAAD1dyb25nQnl0ZUxlbmd0aAAAAAEsAAAAAAAAAApIYXNNZXNzYWdlAAAAAAEtAAAAAAAAABdJbnZhbGlkUHJpbWFyeVNpZ25hdHVyZQAAAAEuAAAAAAAAABlJbnZhbGlkU2Vjb25kYXJ5U2lnbmF0dXJlAAAAAAABLwAAAAAAAAARTm9HYXNEYXRhRm9yQ2hhaW4AAAAAAAGQ"]),i);this.options=i}fromJSON={initialize:this.txFromJSON,deposit:this.txFromJSON,withdraw:this.txFromJSON,swap_to_v_usd:this.txFromJSON,swap_from_v_usd:this.txFromJSON,claim_rewards:this.txFromJSON,set_fee_share:this.txFromJSON,adjust_total_lp_amount:this.txFromJSON,set_balance_ratio_min_bp:this.txFromJSON,stop_deposit:this.txFromJSON,start_deposit:this.txFromJSON,stop_withdraw:this.txFromJSON,start_withdraw:this.txFromJSON,set_stop_authority:this.txFromJSON,set_bridge:this.txFromJSON,set_admin:this.txFromJSON,set_admin_fee_share:this.txFromJSON,claim_admin_fee:this.txFromJSON,pending_reward:this.txFromJSON,get_pool:this.txFromJSON,get_admin:this.txFromJSON,get_stop_authority:this.txFromJSON,get_bridge:this.txFromJSON,get_user_deposit:this.txFromJSON,upgrade:this.txFromJSON}};var pn=class extends Re{constructor(i,r,A){super();this.nodeRpcUrlsConfig=i;this.params=r;this.api=A}chainType="SRB";P=48;async getUserBalanceInfo(i,r){let u=(await this.getContract(r.poolAddress).get_user_deposit({user:i})).result;if(u.isErr())throw new D;let c=u.unwrap();return new fe({lpAmount:c.lp_amount.toString(),rewardDebt:c.reward_debt.toString()})}async getPoolInfoFromChain(i){let A=(await this.getContract(i.poolAddress).get_pool()).result;if(A.isErr())throw new D;let u=A.unwrap();return{aValue:u.a.toString(),accRewardPerShareP:u.acc_reward_per_share_p.toString(),dValue:u.d.toString(),tokenBalance:u.token_balance.toString(),p:this.P,totalLpAmount:u.total_lp_amount.toString(),vUsdBalance:u.v_usd_balance.toString(),imbalance:ge({tokenBalance:u.token_balance.toString(),vUsdBalance:u.v_usd_balance.toString()})}}async buildRawTransactionDeposit(i){return(await this.getContract(i.token.poolAddress,i.accountAddress).deposit({sender:i.accountAddress,amount:BigInt(i.amount)})).toXDR()}async buildRawTransactionWithdraw(i){return(await this.getContract(i.token.poolAddress,i.accountAddress).withdraw({sender:i.accountAddress,amount_lp:BigInt(i.amount)})).toXDR()}async buildRawTransactionClaimRewards(i){return(await this.getContract(i.token.poolAddress,i.accountAddress).claim_rewards({sender:i.accountAddress})).toXDR()}getContract(i,r){let A={publicKey:r,contractId:i,networkPassphrase:this.params.sorobanNetworkPassphrase,rpcUrl:this.nodeRpcUrlsConfig.getNodeRpcUrl("SRB")};return new dn(A)}};import{Web3 as _e}from"web3";var kt=class extends Re{constructor(i,r,A){super();this.tronWeb=i;this.api=r;A&&(this.web3=new _e(A))}chainType="TRX";P=52;web3;async getUserBalanceInfo(i,r){let A;if(this.web3)try{A=await this.getUserBalanceInfoByBatch(this.web3,i,r)}catch{A=await this.getUserBalanceInfoPerProperty(i,r)}else A=await this.getUserBalanceInfoPerProperty(i,r);return A}async getUserBalanceInfoByBatch(i,r,A){let u=new i.BatchRequest,c=new i.eth.Contract(lt.abi,zt(A.poolAddress)),g=c.methods.userRewardDebt(r).encodeABI(),f=c.methods.balanceOf(r).encodeABI();u.add({method:"eth_call",params:[{to:A.poolAddress,data:g},"latest"]}),u.add({method:"eth_call",params:[{to:A.poolAddress,data:f},"latest"]});let[h,b]=await u.execute();if(h&&b&&!h.error&&!b.error)return new fe({lpAmount:_e.utils.toBigInt(b.result).toString(),rewardDebt:_e.utils.toBigInt(h.result).toString()});throw new Error("Batched failed")}async getUserBalanceInfoPerProperty(i,r){this.tronWeb.defaultAddress.base58||this.tronWeb.setAddress(i);let A=this.getContract(r.poolAddress),u=(await A.methods.userRewardDebt(i).call()).toString(),c=(await A.methods.balanceOf(i).call()).toString();return new fe({lpAmount:c,rewardDebt:u})}async getPoolInfoFromChain(i){let r;if(this.web3)try{r=await this.getPoolInfoByBatch(this.web3,i)}catch{r=await this.getPoolInfoPerProperty(i)}else r=await this.getPoolInfoPerProperty(i);return r}async getPoolInfoByBatch(i,r){let A=new i.BatchRequest,u=new i.eth.Contract(lt.abi,zt(r.poolAddress),this.web3),c=u.methods.a().encodeABI(),g=u.methods.d().encodeABI(),f=u.methods.tokenBalance().encodeABI(),h=u.methods.vUsdBalance().encodeABI(),b=u.methods.totalSupply().encodeABI(),T=u.methods.accRewardPerShareP().encodeABI();A.add({method:"eth_call",params:[{to:r.poolAddress,data:c},"latest"]}),A.add({method:"eth_call",params:[{to:r.poolAddress,data:g},"latest"]}),A.add({method:"eth_call",params:[{to:r.poolAddress,data:f},"latest"]}),A.add({method:"eth_call",params:[{to:r.poolAddress,data:h},"latest"]}),A.add({method:"eth_call",params:[{to:r.poolAddress,data:b},"latest"]}),A.add({method:"eth_call",params:[{to:r.poolAddress,data:T},"latest"]});let[B,w,C,M,I,W]=await A.execute();if(B&&w&&C&&M&&I&&W&&!B.error&&!w.error&&!C.error&&!M.error&&!I.error&&!W.error){let x=_e.utils.toBigInt(C.result).toString(),F=_e.utils.toBigInt(M.result).toString(),Z=ge({tokenBalance:x,vUsdBalance:F});return{aValue:_e.utils.toBigInt(B.result).toString(),dValue:_e.utils.toBigInt(w.result).toString(),tokenBalance:x,vUsdBalance:F,totalLpAmount:_e.utils.toBigInt(I.result).toString(),accRewardPerShareP:_e.utils.toBigInt(W.result).toString(),p:this.P,imbalance:Z}}throw new Error("Batched failed")}async getPoolInfoPerProperty(i){this.tronWeb.defaultAddress.base58||this.tronWeb.setAddress(i.poolAddress);let r=this.getContract(i.poolAddress),[A,u,c,g,f,h]=await Promise.all([r.methods.a().call(),r.methods.d().call(),r.methods.tokenBalance().call(),r.methods.vUsdBalance().call(),r.methods.totalSupply().call(),r.methods.accRewardPerShareP().call()]),b=c.toString(),T=g.toString(),B=ge({tokenBalance:b,vUsdBalance:T});return{aValue:A.toString(),dValue:u.toString(),tokenBalance:b,vUsdBalance:T,totalLpAmount:f.toString(),accRewardPerShareP:h.toString(),p:this.P,imbalance:B}}buildRawTransactionDeposit(i){let{amount:r,accountAddress:A}=i,u=[{type:"uint256",value:r}];return this.buildRawTransaction(i.token.poolAddress,"deposit(uint256)",u,"0",A)}buildRawTransactionWithdraw(i){let{amount:r,accountAddress:A}=i,u=[{type:"uint256",value:r}];return this.buildRawTransaction(i.token.poolAddress,"withdraw(uint256)",u,"0",A)}buildRawTransactionClaimRewards(i){let{accountAddress:r}=i,A=[];return this.buildRawTransaction(i.token.poolAddress,"claimRewards()",A,"0",r)}async buildRawTransaction(i,r,A,u,c){let g=await this.tronWeb.transactionBuilder.triggerSmartContract(i,r,{callValue:+u},A,c);if(!g?.result?.result)throw new D("Unknown error: "+JSON.stringify(g,null,2));return g.transaction}getContract(i){return this.tronWeb.contract(lt.abi,i)}};var gn=class{constructor(a,i,r,A){this.api=a;this.nodeRpcUrlsConfig=i;this.params=r;this.tokenService=A;this.rawTxBuilder=new ln(a,i,this.params,A);let u=r.cachePoolInfoChainSec>0?r.cachePoolInfoChainSec*1e3:20*1e3;this.cache=new dr({defaultTtl:u})}rawTxBuilder;cache;async getAllowance(a,i){if(i){let r=a,A=i;return await this.tokenService.getAllowance({...A,spender:A.token.poolAddress},r)}else{let r=a;return await this.tokenService.getAllowance({...r,spender:r.token.poolAddress})}}async checkAllowance(a,i){if(i){let r=a,A=i;return this.tokenService.checkAllowance({...A,spender:A.token.poolAddress},r)}else{let r=a;return this.tokenService.checkAllowance({...r,spender:r.token.poolAddress})}}async approve(a,i){return this.tokenService.approve(a,{...i,spender:i.token.poolAddress})}async getAmountToBeDeposited(a,i,r){L(a),J("amount",a,i.decimals);let A=await this.getPoolInfoFromChain(i,r),{vUsdBalance:u,tokenBalance:c,aValue:g,dValue:f}=A,h=Ji(a,g,f,c,u);return N(h,3).toFixed()}async getAmountToBeWithdrawn(a,i,r,A){L(a),J("amount",a,r.decimals);let u=await this.getPoolInfoFromChain(r,A),c=Ki(a),g=pe(c,r.decimals),h=(await this.getUserBalanceInfo(i,r,A)).earned(u)||"0",b=mr(g).plus(h).toFixed();return N(b,r.decimals).toFixed()}async getUserBalanceInfo(a,i,r){return mt(i.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,r).getUserBalanceInfo(a,i)}async getPoolInfoFromChain(a,i){let r={chainSymbol:a.chainSymbol,poolAddress:a.poolAddress},A=this.cache.get(r);if(A)return A;{let u=await mt(a.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).getPoolInfoFromChain(a);return this.cache.put(r,u),this.api.cachePut({chainSymbol:a.chainSymbol,poolAddress:a.poolAddress},u),u}}};function mt(m,a,i,r,A){switch(V.getChainProperty(m).chainType){case"EVM":{if(A)return new Rt(A,a);{let u=i.getNodeRpcUrl(m),c=new hr(u);return c.defaultReturnFormat={number:fr.STR,bytes:gr.HEX},new Rt(c,a)}}case"TRX":{let u=i.getNodeRpcUrl(m),c=r.tronJsonRpc;if(A)return new kt(A,a,c);{let g=new pr({fullHost:u});return new kt(g,a,c)}}case"SOLANA":{let u=i.getNodeRpcUrl(m);return new mn(u,a)}case"SRB":return new pn(i,r,a)}}import{Big as j}from"big.js";function ji(m,a,i){let r=yr(m,{decimals:a.decimals,feeShare:a.feeShare},a.poolInfo),A=br(r.amountIncludingCommissionInSystemPrecision,{decimals:i.decimals,feeShare:i.feeShare},i.poolInfo);return{swapToVUsdCalcResult:r,swapFromVUsdCalcResult:A}}function qi(m,a,i){let r=Tr(m,{decimals:i.decimals,feeShare:i.feeShare},i.poolInfo),A=Pr(r.amountIncludingCommissionInSystemPrecision,{decimals:a.decimals,feeShare:a.feeShare},a.poolInfo);return{swapToVUsdCalcResult:r,swapFromVUsdCalcResult:A}}function yr(m,{feeShare:a,decimals:i},r){let A=j(m),u=A.times(a),c=A.minus(u);return{bridgeFeeInTokenPrecision:u.round().toFixed(),amountIncludingCommissionInSystemPrecision:Hi(je(c,i),r),amountExcludingCommissionInSystemPrecision:Hi(je(A,i),r)}}function Hi(m,a){if(m.eq(0))return"0";let i=j(a.tokenBalance).plus(m),r=xe(i.toFixed(),a.aValue,a.dValue);return j(a.vUsdBalance).minus(r).round().toFixed()}function br(m,{feeShare:a,decimals:i},r){if(j(m).eq(0))return{bridgeFeeInTokenPrecision:"0",amountIncludingCommissionInTokenPrecision:"0",amountExcludingCommissionInTokenPrecision:"0"};let u=j(m).plus(r.vUsdBalance),c=xe(u,r.aValue,r.dValue),g=pe(j(r.tokenBalance).minus(c),i),f=j(g).times(a),h=j(g).minus(f).round();return{bridgeFeeInTokenPrecision:f.round().toFixed(),amountIncludingCommissionInTokenPrecision:h.toFixed(),amountExcludingCommissionInTokenPrecision:g.toFixed()}}function Tr(m,{feeShare:a,decimals:i},r){let A=j(a).div(j(1).minus(a)),u=j(m).times(A),c=j(m).plus(u);return{bridgeFeeInTokenPrecision:u.round().toFixed(),amountIncludingCommissionInSystemPrecision:zi(je(c,i),r),amountExcludingCommissionInSystemPrecision:zi(je(m,i),r)}}function zi(m,a){let i=j(a.tokenBalance).minus(m),r=xe(i.toFixed(),a.aValue,a.dValue);return j(r).minus(a.vUsdBalance).round().toFixed()}function Pr(m,{feeShare:a,decimals:i},r){if(j(m).eq(0))return{bridgeFeeInTokenPrecision:"0",amountIncludingCommissionInTokenPrecision:"0",amountExcludingCommissionInTokenPrecision:"0"};let A=j(r.vUsdBalance).minus(m),u=xe(A.toFixed(),r.aValue,r.dValue),c=j(u).minus(r.tokenBalance),g=pe(c.toFixed(),i),f=j(a).div(j(1).minus(a)),h=j(g).times(f),b=j(g).plus(h);return{bridgeFeeInTokenPrecision:h.round().toFixed(),amountIncludingCommissionInTokenPrecision:b.round().toFixed(),amountExcludingCommissionInTokenPrecision:g.toFixed()}}import{Big as Qe}from"big.js";function $i(m,a,i,r,A){let u=ve(m,a,i),c=pe(u,a.decimals),g=bt(u,r,A),f=Qe(m).times(a.feeShare),h=Qe(g).div(Qe(1).minus(r.feeShare)).minus(g);return{sourceLPSwap:{fee:N(f,a.decimals).neg().round(a.decimals,Qe.roundUp).toFixed(),swap:N(Qe(m).minus(c).minus(f),a.decimals).neg().round(a.decimals,Qe.roundUp).toFixed()},destLPSwap:{fee:N(h,r.decimals).neg().round(r.decimals,Qe.roundUp).toFixed(),swap:N(pe(u,r.decimals).minus(g).minus(h),r.decimals).neg().round(r.decimals,Qe.roundUp).toFixed()}}}import{Connection as Sr,PublicKey as wr,TransactionMessage as Br}from"@solana/web3.js";var fn=class{constructor(a,i){this.nodeRpcUrlsConfig=a;this.params=i}async addMemoToTx(a,i){if(i.length>28)throw new D("InvalidArgumentException memo cannot be more than 28 characters");let r=new Sr(this.nodeRpcUrlsConfig.getNodeRpcUrl("SOL"),"confirmed"),A=await $e(a,r),u=Br.decompile(a.message,{addressLookupTableAccounts:A}),c=u.instructions[u.instructions.length-1];if(!c?.keys)throw new D("Last instruction or its keys are invalid.");c.keys.push({pubkey:new wr(S.from(i)),isSigner:!1,isWritable:!1}),a.message=u.compileToV0Message(A)}};import{Asset as Rr,BASE_FEE as kr,contract as Eb,Horizon as ea,Operation as Mr,Operation as vr,rpc as vt,TimeoutInfinite as xr,TransactionBuilder as Ln,TransactionBuilder as ta}from"@stellar/stellar-sdk";import{contract as e}from"@stellar/stellar-sdk";var Cr=e.Spec,Ir=e.Client;var Mt=class extends Ir{constructor(i){super(new Cr(["AAAAAAAAAYlSZXR1cm5zIHRoZSBhbGxvd2FuY2UgZm9yIGBzcGVuZGVyYCB0byB0cmFuc2ZlciBmcm9tIGBmcm9tYC4KClRoZSBhbW91bnQgcmV0dXJuZWQgaXMgdGhlIGFtb3VudCB0aGF0IHNwZW5kZXIgaXMgYWxsb3dlZCB0byB0cmFuc2ZlcgpvdXQgb2YgZnJvbSdzIGJhbGFuY2UuIFdoZW4gdGhlIHNwZW5kZXIgdHJhbnNmZXJzIGFtb3VudHMsIHRoZSBhbGxvd2FuY2UKd2lsbCBiZSByZWR1Y2VkIGJ5IHRoZSBhbW91bnQgdHJhbnNmZXJlZC4KCiMgQXJndW1lbnRzCgoqIGBmcm9tYCAtIFRoZSBhZGRyZXNzIGhvbGRpbmcgdGhlIGJhbGFuY2Ugb2YgdG9rZW5zIHRvIGJlIGRyYXduIGZyb20uCiogYHNwZW5kZXJgIC0gVGhlIGFkZHJlc3Mgc3BlbmRpbmcgdGhlIHRva2VucyBoZWxkIGJ5IGBmcm9tYC4AAAAAAAAJYWxsb3dhbmNlAAAAAAAAAgAAAAAAAAAEZnJvbQAAABMAAAAAAAAAB3NwZW5kZXIAAAAAEwAAAAEAAAAL","AAAAAAAAAIlSZXR1cm5zIHRydWUgaWYgYGlkYCBpcyBhdXRob3JpemVkIHRvIHVzZSBpdHMgYmFsYW5jZS4KCiMgQXJndW1lbnRzCgoqIGBpZGAgLSBUaGUgYWRkcmVzcyBmb3Igd2hpY2ggdG9rZW4gYXV0aG9yaXphdGlvbiBpcyBiZWluZyBjaGVja2VkLgAAAAAAAAphdXRob3JpemVkAAAAAAABAAAAAAAAAAJpZAAAAAAAEwAAAAEAAAAB","AAAAAAAAA55TZXQgdGhlIGFsbG93YW5jZSBieSBgYW1vdW50YCBmb3IgYHNwZW5kZXJgIHRvIHRyYW5zZmVyL2J1cm4gZnJvbQpgZnJvbWAuCgpUaGUgYW1vdW50IHNldCBpcyB0aGUgYW1vdW50IHRoYXQgc3BlbmRlciBpcyBhcHByb3ZlZCB0byB0cmFuc2ZlciBvdXQgb2YKZnJvbSdzIGJhbGFuY2UuIFRoZSBzcGVuZGVyIHdpbGwgYmUgYWxsb3dlZCB0byB0cmFuc2ZlciBhbW91bnRzLCBhbmQKd2hlbiBhbiBhbW91bnQgaXMgdHJhbnNmZXJyZWQgdGhlIGFsbG93YW5jZSB3aWxsIGJlIHJlZHVjZWQgYnkgdGhlCmFtb3VudCB0cmFuc2ZlcmVkLgoKIyBBcmd1bWVudHMKCiogYGZyb21gIC0gVGhlIGFkZHJlc3MgaG9sZGluZyB0aGUgYmFsYW5jZSBvZiB0b2tlbnMgdG8gYmUgZHJhd24gZnJvbS4KKiBgc3BlbmRlcmAgLSBUaGUgYWRkcmVzcyBiZWluZyBhdXRob3JpemVkIHRvIHNwZW5kIHRoZSB0b2tlbnMgaGVsZCBieQpgZnJvbWAuCiogYGFtb3VudGAgLSBUaGUgdG9rZW5zIHRvIGJlIG1hZGUgYXZhaWxhYmxlIHRvIGBzcGVuZGVyYC4KKiBgZXhwaXJhdGlvbl9sZWRnZXJgIC0gVGhlIGxlZGdlciBudW1iZXIgd2hlcmUgdGhpcyBhbGxvd2FuY2UgZXhwaXJlcy4gQ2Fubm90CmJlIGxlc3MgdGhhbiB0aGUgY3VycmVudCBsZWRnZXIgbnVtYmVyIHVubGVzcyB0aGUgYW1vdW50IGlzIGJlaW5nIHNldCB0byAwLgpBbiBleHBpcmVkIGVudHJ5ICh3aGVyZSBleHBpcmF0aW9uX2xlZGdlciA8IHRoZSBjdXJyZW50IGxlZGdlciBudW1iZXIpCnNob3VsZCBiZSB0cmVhdGVkIGFzIGEgMCBhbW91bnQgYWxsb3dhbmNlLgoKIyBFdmVudHMKCkVtaXRzIGFuIGV2ZW50IHdpdGggdG9waWNzIGBbImFwcHJvdmUiLCBmcm9tOiBBZGRyZXNzLApzcGVuZGVyOiBBZGRyZXNzXSwgZGF0YSA9IFthbW91bnQ6IGkxMjgsIGV4cGlyYXRpb25fbGVkZ2VyOiB1MzJdYAAAAAAAB2FwcHJvdmUAAAAABAAAAAAAAAAEZnJvbQAAABMAAAAAAAAAB3NwZW5kZXIAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAABFleHBpcmF0aW9uX2xlZGdlcgAAAAAAAAQAAAAA","AAAAAAAAAJhSZXR1cm5zIHRoZSBiYWxhbmNlIG9mIGBpZGAuCgojIEFyZ3VtZW50cwoKKiBgaWRgIC0gVGhlIGFkZHJlc3MgZm9yIHdoaWNoIGEgYmFsYW5jZSBpcyBiZWluZyBxdWVyaWVkLiBJZiB0aGUKYWRkcmVzcyBoYXMgbm8gZXhpc3RpbmcgYmFsYW5jZSwgcmV0dXJucyAwLgAAAAdiYWxhbmNlAAAAAAEAAAAAAAAAAmlkAAAAAAATAAAAAQAAAAs=","AAAAAAAAAWRCdXJuIGBhbW91bnRgIGZyb20gYGZyb21gLgoKUmVkdWNlcyBmcm9tJ3MgYmFsYW5jZSBieSB0aGUgYW1vdW50LCB3aXRob3V0IHRyYW5zZmVycmluZyB0aGUgYmFsYW5jZQp0byBhbm90aGVyIGhvbGRlcidzIGJhbGFuY2UuCgojIEFyZ3VtZW50cwoKKiBgZnJvbWAgLSBUaGUgYWRkcmVzcyBob2xkaW5nIHRoZSBiYWxhbmNlIG9mIHRva2VucyB3aGljaCB3aWxsIGJlCmJ1cm5lZCBmcm9tLgoqIGBhbW91bnRgIC0gVGhlIGFtb3VudCBvZiB0b2tlbnMgdG8gYmUgYnVybmVkLgoKIyBFdmVudHMKCkVtaXRzIGFuIGV2ZW50IHdpdGggdG9waWNzIGBbImJ1cm4iLCBmcm9tOiBBZGRyZXNzXSwgZGF0YSA9IFthbW91bnQ6CmkxMjhdYAAAAARidXJuAAAAAgAAAAAAAAAEZnJvbQAAABMAAAAAAAAABmFtb3VudAAAAAAACwAAAAA=","AAAAAAAAAtxCdXJuIGBhbW91bnRgIGZyb20gYGZyb21gLCBjb25zdW1pbmcgdGhlIGFsbG93YW5jZSBvZiBgc3BlbmRlcmAuCgpSZWR1Y2VzIGZyb20ncyBiYWxhbmNlIGJ5IHRoZSBhbW91bnQsIHdpdGhvdXQgdHJhbnNmZXJyaW5nIHRoZSBiYWxhbmNlCnRvIGFub3RoZXIgaG9sZGVyJ3MgYmFsYW5jZS4KClRoZSBzcGVuZGVyIHdpbGwgYmUgYWxsb3dlZCB0byBidXJuIHRoZSBhbW91bnQgZnJvbSBmcm9tJ3MgYmFsYW5jZSwgaWYKdGhlIGFtb3VudCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGFsbG93YW5jZSB0aGF0IHRoZSBzcGVuZGVyIGhhcwpvbiB0aGUgZnJvbSdzIGJhbGFuY2UuIFRoZSBzcGVuZGVyJ3MgYWxsb3dhbmNlIG9uIGZyb20ncyBiYWxhbmNlIHdpbGwgYmUKcmVkdWNlZCBieSB0aGUgYW1vdW50LgoKIyBBcmd1bWVudHMKCiogYHNwZW5kZXJgIC0gVGhlIGFkZHJlc3MgYXV0aG9yaXppbmcgdGhlIGJ1cm4sIGFuZCBoYXZpbmcgaXRzIGFsbG93YW5jZQpjb25zdW1lZCBkdXJpbmcgdGhlIGJ1cm4uCiogYGZyb21gIC0gVGhlIGFkZHJlc3MgaG9sZGluZyB0aGUgYmFsYW5jZSBvZiB0b2tlbnMgd2hpY2ggd2lsbCBiZQpidXJuZWQgZnJvbS4KKiBgYW1vdW50YCAtIFRoZSBhbW91bnQgb2YgdG9rZW5zIHRvIGJlIGJ1cm5lZC4KCiMgRXZlbnRzCgpFbWl0cyBhbiBldmVudCB3aXRoIHRvcGljcyBgWyJidXJuIiwgZnJvbTogQWRkcmVzc10sIGRhdGEgPSBbYW1vdW50OgppMTI4XWAAAAAJYnVybl9mcm9tAAAAAAAAAwAAAAAAAAAHc3BlbmRlcgAAAAATAAAAAAAAAARmcm9tAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAA==","AAAAAAAAAVNDbGF3YmFjayBgYW1vdW50YCBmcm9tIGBmcm9tYCBhY2NvdW50LiBgYW1vdW50YCBpcyBidXJuZWQgaW4gdGhlCmNsYXdiYWNrIHByb2Nlc3MuCgojIEFyZ3VtZW50cwoKKiBgZnJvbWAgLSBUaGUgYWRkcmVzcyBob2xkaW5nIHRoZSBiYWxhbmNlIGZyb20gd2hpY2ggdGhlIGNsYXdiYWNrIHdpbGwKdGFrZSB0b2tlbnMuCiogYGFtb3VudGAgLSBUaGUgYW1vdW50IG9mIHRva2VucyB0byBiZSBjbGF3ZWQgYmFjay4KCiMgRXZlbnRzCgpFbWl0cyBhbiBldmVudCB3aXRoIHRvcGljcyBgWyJjbGF3YmFjayIsIGFkbWluOiBBZGRyZXNzLCB0bzogQWRkcmVzc10sCmRhdGEgPSBbYW1vdW50OiBpMTI4XWAAAAAACGNsYXdiYWNrAAAAAgAAAAAAAAAEZnJvbQAAABMAAAAAAAAABmFtb3VudAAAAAAACwAAAAA=","AAAAAAAAAIBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGVjaW1hbHMgdXNlZCB0byByZXByZXNlbnQgYW1vdW50cyBvZiB0aGlzIHRva2VuLgoKIyBQYW5pY3MKCklmIHRoZSBjb250cmFjdCBoYXMgbm90IHlldCBiZWVuIGluaXRpYWxpemVkLgAAAAhkZWNpbWFscwAAAAAAAAABAAAABA==","AAAAAAAAAPVNaW50cyBgYW1vdW50YCB0byBgdG9gLgoKIyBBcmd1bWVudHMKCiogYHRvYCAtIFRoZSBhZGRyZXNzIHdoaWNoIHdpbGwgcmVjZWl2ZSB0aGUgbWludGVkIHRva2Vucy4KKiBgYW1vdW50YCAtIFRoZSBhbW91bnQgb2YgdG9rZW5zIHRvIGJlIG1pbnRlZC4KCiMgRXZlbnRzCgpFbWl0cyBhbiBldmVudCB3aXRoIHRvcGljcyBgWyJtaW50IiwgYWRtaW46IEFkZHJlc3MsIHRvOiBBZGRyZXNzXSwgZGF0YQo9IFthbW91bnQ6IGkxMjhdYAAAAAAAAARtaW50AAAAAgAAAAAAAAACdG8AAAAAABMAAAAAAAAABmFtb3VudAAAAAAACwAAAAA=","AAAAAAAAAFlSZXR1cm5zIHRoZSBuYW1lIGZvciB0aGlzIHRva2VuLgoKIyBQYW5pY3MKCklmIHRoZSBjb250cmFjdCBoYXMgbm90IHlldCBiZWVuIGluaXRpYWxpemVkLgAAAAAAAARuYW1lAAAAAAAAAAEAAAAQ","AAAAAAAAAQxTZXRzIHRoZSBhZG1pbmlzdHJhdG9yIHRvIHRoZSBzcGVjaWZpZWQgYWRkcmVzcyBgbmV3X2FkbWluYC4KCiMgQXJndW1lbnRzCgoqIGBuZXdfYWRtaW5gIC0gVGhlIGFkZHJlc3Mgd2hpY2ggd2lsbCBoZW5jZWZvcnRoIGJlIHRoZSBhZG1pbmlzdHJhdG9yCm9mIHRoaXMgdG9rZW4gY29udHJhY3QuCgojIEV2ZW50cwoKRW1pdHMgYW4gZXZlbnQgd2l0aCB0b3BpY3MgYFsic2V0X2FkbWluIiwgYWRtaW46IEFkZHJlc3NdLCBkYXRhID0KW25ld19hZG1pbjogQWRkcmVzc11gAAAACXNldF9hZG1pbgAAAAAAAAEAAAAAAAAACW5ld19hZG1pbgAAAAAAABMAAAAA","AAAAAAAAAEZSZXR1cm5zIHRoZSBhZG1pbiBvZiB0aGUgY29udHJhY3QuCgojIFBhbmljcwoKSWYgdGhlIGFkbWluIGlzIG5vdCBzZXQuAAAAAAAFYWRtaW4AAAAAAAAAAAAAAQAAABM=","AAAAAAAAAVBTZXRzIHdoZXRoZXIgdGhlIGFjY291bnQgaXMgYXV0aG9yaXplZCB0byB1c2UgaXRzIGJhbGFuY2UuIElmCmBhdXRob3JpemVkYCBpcyB0cnVlLCBgaWRgIHNob3VsZCBiZSBhYmxlIHRvIHVzZSBpdHMgYmFsYW5jZS4KCiMgQXJndW1lbnRzCgoqIGBpZGAgLSBUaGUgYWRkcmVzcyBiZWluZyAoZGUtKWF1dGhvcml6ZWQuCiogYGF1dGhvcml6ZWAgLSBXaGV0aGVyIG9yIG5vdCBgaWRgIGNhbiB1c2UgaXRzIGJhbGFuY2UuCgojIEV2ZW50cwoKRW1pdHMgYW4gZXZlbnQgd2l0aCB0b3BpY3MgYFsic2V0X2F1dGhvcml6ZWQiLCBpZDogQWRkcmVzc10sIGRhdGEgPQpbYXV0aG9yaXplOiBib29sXWAAAAAOc2V0X2F1dGhvcml6ZWQAAAAAAAIAAAAAAAAAAmlkAAAAAAATAAAAAAAAAAlhdXRob3JpemUAAAAAAAABAAAAAA==","AAAAAAAAAFtSZXR1cm5zIHRoZSBzeW1ib2wgZm9yIHRoaXMgdG9rZW4uCgojIFBhbmljcwoKSWYgdGhlIGNvbnRyYWN0IGhhcyBub3QgeWV0IGJlZW4gaW5pdGlhbGl6ZWQuAAAAAAZzeW1ib2wAAAAAAAAAAAABAAAAEA==","AAAAAAAAAWRUcmFuc2ZlciBgYW1vdW50YCBmcm9tIGBmcm9tYCB0byBgdG9gLgoKIyBBcmd1bWVudHMKCiogYGZyb21gIC0gVGhlIGFkZHJlc3MgaG9sZGluZyB0aGUgYmFsYW5jZSBvZiB0b2tlbnMgd2hpY2ggd2lsbCBiZQp3aXRoZHJhd24gZnJvbS4KKiBgdG9gIC0gVGhlIGFkZHJlc3Mgd2hpY2ggd2lsbCByZWNlaXZlIHRoZSB0cmFuc2ZlcnJlZCB0b2tlbnMuCiogYGFtb3VudGAgLSBUaGUgYW1vdW50IG9mIHRva2VucyB0byBiZSB0cmFuc2ZlcnJlZC4KCiMgRXZlbnRzCgpFbWl0cyBhbiBldmVudCB3aXRoIHRvcGljcyBgWyJ0cmFuc2ZlciIsIGZyb206IEFkZHJlc3MsIHRvOiBBZGRyZXNzXSwKZGF0YSA9IFthbW91bnQ6IGkxMjhdYAAAAAh0cmFuc2ZlcgAAAAMAAAAAAAAABGZyb20AAAATAAAAAAAAAAJ0bwAAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAA==","AAAAAAAAAzNUcmFuc2ZlciBgYW1vdW50YCBmcm9tIGBmcm9tYCB0byBgdG9gLCBjb25zdW1pbmcgdGhlIGFsbG93YW5jZSB0aGF0CmBzcGVuZGVyYCBoYXMgb24gYGZyb21gJ3MgYmFsYW5jZS4gQXV0aG9yaXplZCBieSBzcGVuZGVyCihgc3BlbmRlci5yZXF1aXJlX2F1dGgoKWApLgoKVGhlIHNwZW5kZXIgd2lsbCBiZSBhbGxvd2VkIHRvIHRyYW5zZmVyIHRoZSBhbW91bnQgZnJvbSBmcm9tJ3MgYmFsYW5jZQppZiB0aGUgYW1vdW50IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgYWxsb3dhbmNlIHRoYXQgdGhlIHNwZW5kZXIKaGFzIG9uIHRoZSBmcm9tJ3MgYmFsYW5jZS4gVGhlIHNwZW5kZXIncyBhbGxvd2FuY2Ugb24gZnJvbSdzIGJhbGFuY2UKd2lsbCBiZSByZWR1Y2VkIGJ5IHRoZSBhbW91bnQuCgojIEFyZ3VtZW50cwoKKiBgc3BlbmRlcmAgLSBUaGUgYWRkcmVzcyBhdXRob3JpemluZyB0aGUgdHJhbnNmZXIsIGFuZCBoYXZpbmcgaXRzCmFsbG93YW5jZSBjb25zdW1lZCBkdXJpbmcgdGhlIHRyYW5zZmVyLgoqIGBmcm9tYCAtIFRoZSBhZGRyZXNzIGhvbGRpbmcgdGhlIGJhbGFuY2Ugb2YgdG9rZW5zIHdoaWNoIHdpbGwgYmUKd2l0aGRyYXduIGZyb20uCiogYHRvYCAtIFRoZSBhZGRyZXNzIHdoaWNoIHdpbGwgcmVjZWl2ZSB0aGUgdHJhbnNmZXJyZWQgdG9rZW5zLgoqIGBhbW91bnRgIC0gVGhlIGFtb3VudCBvZiB0b2tlbnMgdG8gYmUgdHJhbnNmZXJyZWQuCgojIEV2ZW50cwoKRW1pdHMgYW4gZXZlbnQgd2l0aCB0b3BpY3MgYFsidHJhbnNmZXIiLCBmcm9tOiBBZGRyZXNzLCB0bzogQWRkcmVzc10sCmRhdGEgPSBbYW1vdW50OiBpMTI4XWAAAAAADXRyYW5zZmVyX2Zyb20AAAAAAAAEAAAAAAAAAAdzcGVuZGVyAAAAABMAAAAAAAAABGZyb20AAAATAAAAAAAAAAJ0bwAAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAA=="]),i);this.options=i}fromJSON={allowance:this.txFromJSON,authorized:this.txFromJSON,approve:this.txFromJSON,balance:this.txFromJSON,burn:this.txFromJSON,burn_from:this.txFromJSON,clawback:this.txFromJSON,decimals:this.txFromJSON,mint:this.txFromJSON,name:this.txFromJSON,set_admin:this.txFromJSON,admin:this.txFromJSON,set_authorized:this.txFromJSON,symbol:this.txFromJSON,transfer:this.txFromJSON,transfer_from:this.txFromJSON}};var Wr=100,Fr=180,hn=class{constructor(a,i){this.nodeRpcUrlsConfig=a;this.params=i}async buildChangeTrustLineXdrTx(a){let r=await new ea.Server(this.nodeRpcUrlsConfig.getNodeRpcUrl("STLR")).loadAccount(a.sender),u=(await this.getContract(Mt,a.tokenAddress).name()).result,[c,g]=u.split(":");if(c===void 0||g===void 0)throw new D("Invalid token name format. Expected format 'symbol:srbTokenAddress'");let f=new Rr(c,g),h=vr.changeTrust({asset:f,limit:a.limit});return new ta(r,{fee:Wr.toString(10),networkPassphrase:this.params.sorobanNetworkPassphrase}).addOperation(h).setTimeout(Fr).build().toXDR()}async getBalanceLine(a,i){let A=(await this.getContract(Mt,i).name()).result,[u,c]=A.split(":"),g=this.nodeRpcUrlsConfig.getNodeRpcUrl("STLR");return(await new ea.Server(g).loadAccount(a)).balances.find(T=>(T.asset_type==="credit_alphanum4"||T.asset_type==="credit_alphanum12")&&T.asset_code==u&&T.asset_issuer==c)}async submitTransactionStellar(a){let i=new ea.Server(this.nodeRpcUrlsConfig.getNodeRpcUrl("STLR")),r=ta.fromXDR(a,this.nodeRpcUrlsConfig.getNodeRpcUrl("STLR"));return await i.submitTransaction(r)}async simulateAndCheckRestoreTxRequiredSoroban(a,i){let r=new vt.Server(this.nodeRpcUrlsConfig.getNodeRpcUrl("SRB")),A=await r.getAccount(i),u=Ln.fromXDR(a,this.params.sorobanNetworkPassphrase),c=await r.simulateTransaction(u);if(vt.Api.isSimulationRestore(c))return new Ln(A,{fee:(+kr+ +c.restorePreamble.minResourceFee).toString(),networkPassphrase:this.params.sorobanNetworkPassphrase}).setSorobanData(c.restorePreamble.transactionData.build()).addOperation(Mr.restoreFootprint({})).setTimeout(xr).build().toXDR()}async sendTransactionSoroban(a){let i=new vt.Server(this.nodeRpcUrlsConfig.getNodeRpcUrl("SRB")),r=Ln.fromXDR(a,this.params.sorobanNetworkPassphrase);return i.sendTransaction(r)}async confirmTx(a,i=15){let r=new vt.Server(this.nodeRpcUrlsConfig.getNodeRpcUrl("SRB")),A=await fi(()=>r.getTransaction(a),c=>c.status===vt.Api.GetTransactionStatus.NOT_FOUND,i);if(A.length===0)throw new D("No transaction responses found.");let u=A[A.length-1];if(!u)throw new D("Unexpected error: last response is undefined.");return u}getContract(a,i){let r={contractId:i,networkPassphrase:this.params.sorobanNetworkPassphrase,rpcUrl:this.nodeRpcUrlsConfig.getNodeRpcUrl("SRB")};return new a(r)}};var yn=class{constructor(a,i){this.nodeRpcUrlsConfig=a;this.srb=new hn(a,i),this.sol=new fn(a,i)}srb;sol};var ot=(i=>(i.WITH_NATIVE_CURRENCY="native",i.WITH_STABLECOIN="stablecoin",i))(ot||{}),qt=(i=>(i.INT="int",i.FLOAT="float",i))(qt||{});import{Big as Or}from"big.js";import{TronWeb as Xr}from"tronweb";import{Web3 as Lr}from"web3";var Gr={abi:[{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}]},bn=Gr;import{Big as na}from"big.js";var ke=class{async checkAllowance(a){let i=await this.getAllowance(a);return na(i).gte(na(a.amount))}};var Er="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",Dr="0xdac17f958d2ee523a2206206994597c13d831ec7",Ur=1e5,xt=class extends ke{constructor(i,r){super();this.web3=i;this.api=r}chainType="EVM";getAllowance(i){let r=i.token.tokenAddress,A=i.owner,u=i.spender;return this.getAllowanceByTokenAddress(r,A,u)}getAllowanceByTokenAddress(i,r,A){return this.getERC20Contract(i).methods.allowance(r,A).call()}async getTokenBalance(i){return await this.getERC20Contract(i.token.tokenAddress).methods.balanceOf(i.account).call()}async getNativeTokenBalance(i){return(await this.web3.eth.getBalance(i.account)).toString()}async approve(i){if(this.isUsdt(i.tokenAddress)&&await this.getAllowanceByTokenAddress(i.tokenAddress,i.owner,i.spender)!=="0"){let u=await this.buildRawTransactionApprove({...i,amount:"0"});await this.sendRawTransaction(u,i.chainSymbol)}let r=await this.buildRawTransactionApprove(i);return await this.sendRawTransaction(r,i.chainSymbol)}isUsdt(i){return i.toLowerCase()===Dr}buildRawTransactionApprove(i){let{tokenAddress:r,spender:A,owner:u,amount:c}=i,f=this.getERC20Contract(r).methods.approve(A,c==null?Er:An(c));return Promise.resolve({from:u,to:r,value:"0",data:f.encodeABI()})}async sendRawTransaction(i,r){let A=i,u={maxPriorityFeePerGas:void 0,maxFeePerGas:void 0};r==="POL"?A.gas=Ur:A.gas=await this.web3.eth.estimateGas(i);let{transactionHash:c}=await this.web3.eth.sendTransaction({...A,...u});return{txId:c.toString()}}getERC20Contract(i){return new this.web3.eth.Contract(bn.abi,i)}};import{AnchorProvider as Zr}from"@project-serum/anchor";import{Connection as _r,PublicKey as Tn}from"@solana/web3.js";var Pn=class extends ke{constructor(i,r){super();this.solanaRpcUrl=i;this.api=r}chainType="SOLANA";approve(i){throw new ue}buildRawTransactionApprove(i){throw new ue}buildAnchorProvider(i){let r=new _r(this.solanaRpcUrl,"confirmed"),A=new Tn(i);return new Zr(r,{publicKey:A},{preflightCommitment:"confirmed",commitment:"confirmed"})}getAllowance(i){throw new ue}async getTokenBalance(i){let{account:r,token:A}=i;try{let u=await Be(new Tn(r),new Tn(A.tokenAddress));return(await At(u,this.buildAnchorProvider(r))).amount.toString()}catch(u){if(u instanceof Error)return u.message.startsWith("Account does not exist"),"0";throw u}}async getNativeTokenBalance(i){return(await this.buildAnchorProvider(i.account).connection.getBalance(new Tn(i.account))).toString()}};import{Horizon as Oh,NotFoundError as Nr}from"@stellar/stellar-sdk";var Sn=class extends ke{constructor(i,r,A){super();this.nodeRpcUrlsConfig=i;this.params=r;this.api=A}chainType="SRB";getAllowance(){throw new ue}async getTokenBalance(i){if(!i.token.originTokenAddress)throw new D("OriginTokenAddress missing");let[r,A]=i.token.originTokenAddress.split(":"),u=new Oh.Server(this.nodeRpcUrlsConfig.getNodeRpcUrl("STLR")),c;try{c=await u.loadAccount(i.account)}catch(h){if(h instanceof Nr)return"0";throw h}let f=c.balances.find(h=>(h.asset_type==="credit_alphanum4"||h.asset_type==="credit_alphanum12")&&h.asset_code==r&&h.asset_issuer==A);return f?.balance?O(f.balance,V.getChainDecimalsByType(V.getChainProperty(i.token.chainSymbol).chainType)).toFixed():"0"}async getNativeTokenBalance(i){let c=(await new Oh.Server(this.nodeRpcUrlsConfig.getNodeRpcUrl("STLR")).loadAccount(i.account)).balances.find(g=>g.asset_type==="native");return c?.balance?O(c.balance,V.getChainDecimalsByType(V.getChainProperty(i.chainSymbol).chainType)).toFixed():"0"}approve(){throw new ue}buildRawTransactionApprove(){throw new ue}};var Vr="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",Wt=class extends ke{constructor(i,r){super();this.tronWeb=i;this.api=r}chainType="TRX";async getAllowance(i){let{token:{tokenAddress:r},owner:A}=i;return(await(await this.getContract(r)).methods.allowance(A,i.spender).call()).toString()}async getTokenBalance(i){return(await(await this.getContract(i.token.tokenAddress)).balanceOf(i.account).call()).toString()}async getNativeTokenBalance(i){return(await this.tronWeb.trx.getBalance(i.account)).toString()}async approve(i){let r=await this.buildRawTransactionApprove(i);return await cn(this.tronWeb,r)}async buildRawTransactionApprove(i){let{tokenAddress:r,spender:A,owner:u,amount:c}=i,g=c==null?Vr:An(c),f=[{type:"address",value:A},{type:"uint256",value:g}];return this.buildRawTransaction(r,"approve(address,uint256)",f,"0",u)}getContract(i){return this.tronWeb.contract(bn.abi,i)}async buildRawTransaction(i,r,A,u,c){let g=await this.tronWeb.transactionBuilder.triggerSmartContract(i,r,{callValue:+u},A,c);if(!g?.result?.result)throw new D("Unknown error: "+JSON.stringify(g,null,2));return g.transaction}};var wn=class{constructor(a,i,r){this.api=a;this.nodeRpcUrlsConfig=i;this.params=r}async getAllowance(a,i){let r=await this.getChainTokenService(a.token.chainSymbol,a.owner,i).getAllowance(a);return N(r,a.token.decimals).toFixed()}async checkAllowance(a,i){return L(a.amount),J("amount",a.amount,a.token.decimals),this.getChainTokenService(a.token.chainSymbol,a.owner,i).checkAllowance(this.prepareCheckAllowanceParams(a))}async approve(a,i){return i.amount&&(L(i.amount),J("amount",i.amount,i.token.decimals)),this.getChainTokenService(i.token.chainSymbol,i.owner,a).approve(this.prepareApproveParams(i))}async buildRawTransactionApprove(a,i){return a.amount&&(L(a.amount),J("amount",a.amount,a.token.decimals)),this.getChainTokenService(a.token.chainSymbol,a.owner,i).buildRawTransactionApprove(this.prepareApproveParams(a))}async getTokenBalance(a,i){let r=await this.getChainTokenService(a.token.chainSymbol,a.account,i).getTokenBalance(a);return a.token.decimals?N(r,a.token.decimals).toFixed():r}async getNativeTokenBalance(a,i){let r=await this.getChainTokenService(a.chainSymbol,a.account,i).getNativeTokenBalance(a);return{int:r,float:N(r,V.getChainDecimalsByType(V.getChainProperty(a.chainSymbol).chainType)).toFixed()}}getChainTokenService(a,i,r){switch(V.getChainProperty(a).chainType){case"EVM":{if(r)return new xt(r,this.api);{let A=this.nodeRpcUrlsConfig.getNodeRpcUrl(a);return new xt(new Lr(A),this.api)}}case"TRX":{if(r)return new Wt(r,this.api);{let A=this.nodeRpcUrlsConfig.getNodeRpcUrl(a),u=new Xr({fullHost:A});return u.setAddress(i),new Wt(u,this.api)}}case"SOLANA":{let A=this.nodeRpcUrlsConfig.getNodeRpcUrl(a);return new Pn(A,this.api)}case"SRB":return new Sn(this.nodeRpcUrlsConfig,this.params,this.api)}}prepareCheckAllowanceParams(a){return{...a,amount:O(a.amount,a.token.decimals)}}prepareApproveParams(a){return{tokenAddress:a.token.tokenAddress,owner:a.owner,spender:a.spender,chainSymbol:a.token.chainSymbol,amount:a.amount==null?void 0:Or(a.amount).toFixed()}}};var Ft=class{constructor(a){this.nodeRpcUrls=a}getNodeRpcUrl(a){let i=this.nodeRpcUrls[a];if(i!==void 0)return i;throw new Vt(a)}},Bn=class{api;tokenService;params;bridge;pool;constructor(a,i=Ut){V.addChainsProperties(i.additionalChainsProperties);let r=new Xt(i),A=new Yt(r),u=new Jt(A),c=new Qt(u);this.api=new Kt(c,i),this.tokenService=new wn(this.api,a,i),this.bridge=new un(this.api,a,i,this.tokenService),this.pool=new gn(this.api,a,i,this.tokenService),this.params=i}async chainDetailsMap(a){return this.api.getChainDetailsMap(a)}async tokens(a){return this.api.tokens(a)}async tokensByChain(a,i){let A=(await this.api.getChainDetailsMap(i))[a];return A?A.tokens:[]}async getTransferStatus(a,i){return this.api.getTransferStatus(a,i)}async getGasBalance(a,i){return this.api.getGasBalance(a,i)}async checkAddress(){return new Promise(a=>{a({status:"OK",gasBalance:null})})}async getPendingStatusInfo(a,i,r,A){L(a);let u;i=="float"?(J("amount",a,r.decimals),u=O(a,r.decimals).toFixed()):u=a;let c=ve(u,r,await te(this.api,r)),g=await te(this.api,A),f=this.getAmountFromVUsdFormatted(c,A,g),h,b=await this.api.getPendingInfo();for(let T in b[A.chainSymbol]){let B=b[A.chainSymbol];if(!B)throw new D("Cannot find pending info for "+A.chainSymbol);h=B[T]}if(h){let T=ai(h.totalSentAmount,g),B=this.getAmountFromVUsdFormatted(c,A,T),w;return We(B.int).gt(f.int)?w={min:f,max:B}:w={min:B,max:f},{pendingTxs:h.pendingTxs,pendingAmount:{int:Ve(h.totalSentAmount,3,A.decimals).toFixed(0),float:N(h.totalSentAmount,3).toFixed()},estimatedAmount:w}}return{pendingTxs:0,pendingAmount:{int:"0",float:"0"},estimatedAmount:{min:f,max:f}}}async getTokenBalance(a,i){return this.tokenService.getTokenBalance(a,i)}async getNativeTokenBalance(a,i){return this.tokenService.getNativeTokenBalance(a,i)}async calculateFeePercentOnSourceChain(a,i){L(a),J("amountFloat",a,i.decimals);let r=O(a,i.decimals);if(r.eq(0))return 0;let A=ve(r,i,await te(this.api,i)),u=pe(A,i.decimals);return Mn(r,u)}async calculateFeePercentOnDestinationChain(a,i,r){L(a),J("amountFloat",a,i.decimals);let A=O(a,i.decimals);if(A.eq(0))return 0;let u=ve(A,i,await te(this.api,i)),c=bt(u,r,await te(this.api,r)),g=pe(u,r.decimals);return Mn(g,c)}async getAmountToBeReceivedAndGasFeeOptions(a,i,r,A){return L(a),J("amountToSendFloat",a,i.decimals),{amountToSendFloat:We(a).toFixed(),amountToBeReceivedFloat:await this.getAmountToBeReceived(a,i,r,A),gasFeeOptions:await this.getGasFeeOptions(i,r,A)}}async getAmountToSendAndGasFeeOptions(a,i,r,A){return L(a),J("amountToBeReceivedFloat",a,r.decimals),{amountToSendFloat:await this.getAmountToSend(a,i,r,A),amountToBeReceivedFloat:We(a).toFixed(),gasFeeOptions:await this.getGasFeeOptions(i,r,A)}}async getAmountToBeReceived(a,i,r,A){let u=await te(this.api,i),c=await te(this.api,r);return this.getAmountToBeReceivedFromPools(a,i,r,u,c,A)}async getAmountToBeReceivedFromChain(a,i,r,A,u,c){let g=await this.pool.getPoolInfoFromChain(i,u),f=await this.pool.getPoolInfoFromChain(r,c);return this.getAmountToBeReceivedFromPools(a,i,r,g,f,A)}getAmountToBeReceivedFromPools(a,i,r,A,u,c){L(a),J("amountToSendFloat",a,i.decimals);let g=O(a,i.decimals);if(c&&c==3){if(!i.cctpAddress||!r.cctpAddress||!i.cctpFeeShare)throw new Se("Such route does not support CCTP protocol");let h=g.mul(We(1).minus(i.cctpFeeShare)).round(0,We.roundUp),b=Ve(h,i.decimals,r.decimals).round(0);return N(b,r.decimals).toFixed()}let f=ve(g,i,A);return this.getAmountFromVUsdFormatted(f,r,u).float}async getAmountToSend(a,i,r,A){let u=await te(this.api,i),c=await te(this.api,r);return this.getAmountToSendFromPools(a,i,r,u,c,A)}async getAmountToSendFromChain(a,i,r,A,u,c){let g=await this.pool.getPoolInfoFromChain(i,u),f=await this.pool.getPoolInfoFromChain(r,c);return this.getAmountToSendFromPools(a,i,r,g,f,A)}getAmountToSendFromPools(a,i,r,A,u,c){L(a),J("amountToBeReceivedFloat",a,r.decimals);let g=O(a,r.decimals);if(c&&c==3){if(!i.cctpAddress||!r.cctpAddress||!i.cctpFeeShare)throw new Se("Such route does not support CCTP protocol");let b=g.div(We(1).minus(i.cctpFeeShare)).round(0,We.roundDown),T=Ve(b,r.decimals,i.decimals).round(0);return N(T,i.decimals).toFixed()}let f=si(g,r,u),h=ri(f,i,A);if(We(h).lte(0))throw new Fe;return N(h,i.decimals).toFixed()}async getGasFeeOptions(a,i,r){return Un(a.allbridgeChainId,a.chainType,i.allbridgeChainId,a.decimals,r,this.api)}getAverageTransferTime(a,i,r){return a.transferTime?.[i.chainSymbol]?.[r]??null}async getPoolInfoByToken(a){return await this.api.getPoolInfoByKey({chainSymbol:a.chainSymbol,poolAddress:a.poolAddress})}async refreshPoolInfo(a){if(a){let r=(a instanceof Array?a:[a]).map(A=>({chainSymbol:A.chainSymbol,poolAddress:A.poolAddress}));return this.api.refreshPoolInfo(r)}return this.api.refreshPoolInfo()}aprInPercents(a){return Ai(a)}async getExtraGasMaxLimits(a,i){return await Zn(a,i,this.api)}async getVUsdFromAmount(a,i,r){L(a);let A;i=="float"?(J("amount",a,r.decimals),A=O(a,r.decimals).toFixed()):A=a;let u=ve(A,r,await te(this.api,r));return{int:u,float:N(u,3).toFixed()}}async getAmountFromVUsd(a,i){return this.getAmountFromVUsdFormatted(a,i,await te(this.api,i))}getAmountFromVUsdFormatted(a,i,r){L(a);let A=bt(a,i,r);if(We(A).lt(0))throw new Fe;return{int:A,float:N(A,i.decimals).toFixed()}}async swapAndBridgeFeeCalculation(a,i,r){return ji(a,{decimals:i.decimals,feeShare:i.feeShare,poolInfo:await te(this.api,i)},{decimals:r.decimals,feeShare:r.feeShare,poolInfo:await te(this.api,r)})}async swapAndBridgeFeeCalculationReverse(a,i,r){let A=qi(a,{decimals:i.decimals,feeShare:i.feeShare,poolInfo:await te(this.api,i)},{decimals:r.decimals,feeShare:r.feeShare,poolInfo:await te(this.api,r)}),u=A.swapFromVUsdCalcResult.amountIncludingCommissionInTokenPrecision;if(We(u).lt(0))throw new Fe;return A}async getSendAmountDetails(a,i,r,A){L(a);let u;return i=="float"?(J("amount",a,r.decimals),u=O(a,r.decimals).toFixed()):u=a,$i(u,r,await te(this.api,r),A,await te(this.api,A))}};function Yr(m){return"solanaRpcUrl"in m}var ia=class{params;bridge;pool;utils;service;constructor(a,i=Ut){let r;Yr(a)?r=new Ft({SOL:a.solanaRpcUrl,TRX:a.tronRpcUrl}):r=new Ft(a),this.service=new Bn(r,i),this.bridge=this.service.bridge,this.pool=this.service.pool,this.utils=new yn(r,i),this.params=i}async chainDetailsMap(a="swap"){return this.service.chainDetailsMap(a)}async tokens(a="swap"){return this.service.tokens(a)}async tokensByChain(a,i="swap"){return this.service.tokensByChain(a,i)}async getTransferStatus(a,i){return this.service.getTransferStatus(a,i)}async getGasBalance(a,i){return this.service.getGasBalance(a,i)}async checkAddress(a,i,r){return await this.service.checkAddress()}async getPendingStatusInfo(a,i,r,A){return this.service.getPendingStatusInfo(a,i,r,A)}async getTokenBalance(a,i){return this.service.getTokenBalance(a,i)}async getNativeTokenBalance(a,i){return this.service.getNativeTokenBalance(a,i)}async calculateFeePercentOnSourceChain(a,i){return this.service.calculateFeePercentOnSourceChain(a,i)}async calculateFeePercentOnDestinationChain(a,i,r){return this.service.calculateFeePercentOnDestinationChain(a,i,r)}async getAmountToBeReceivedAndGasFeeOptions(a,i,r,A){return this.service.getAmountToBeReceivedAndGasFeeOptions(a,i,r,A)}async getAmountToSendAndGasFeeOptions(a,i,r,A){return this.service.getAmountToSendAndGasFeeOptions(a,i,r,A)}async getAmountToBeReceived(a,i,r,A){return this.service.getAmountToBeReceived(a,i,r,A)}async getAmountToBeReceivedFromChain(a,i,r,A,u,c){return this.service.getAmountToBeReceivedFromChain(a,i,r,A,u,c)}getAmountToBeReceivedFromPools(a,i,r,A,u,c){return this.service.getAmountToBeReceivedFromPools(a,i,r,A,u,c)}async getAmountToSend(a,i,r,A){return this.service.getAmountToSend(a,i,r,A)}async getAmountToSendFromChain(a,i,r,A,u,c){return this.service.getAmountToSendFromChain(a,i,r,A,u,c)}getAmountToSendFromPools(a,i,r,A,u,c){return this.service.getAmountToSendFromPools(a,i,r,A,u,c)}async getGasFeeOptions(a,i,r){return this.service.getGasFeeOptions(a,i,r)}getAverageTransferTime(a,i,r){return this.service.getAverageTransferTime(a,i,r)}async getPoolInfoByToken(a){return this.service.getPoolInfoByToken(a)}async refreshPoolInfo(a){return this.service.refreshPoolInfo(a)}aprInPercents(a){return this.service.aprInPercents(a)}async getExtraGasMaxLimits(a,i){return this.service.getExtraGasMaxLimits(a,i)}async getVUsdFromAmount(a,i,r){return this.service.getVUsdFromAmount(a,i,r)}async getAmountFromVUsd(a,i){return this.service.getAmountFromVUsd(a,i)}async swapAndBridgeFeeCalculation(a,i,r){return this.service.swapAndBridgeFeeCalculation(a,i,r)}async swapAndBridgeFeeCalculationReverse(a,i,r){return this.service.swapAndBridgeFeeCalculationReverse(a,i,r)}async getSendAmountDetails(a,i,r,A){return this.service.getSendAmountDetails(a,i,r,A)}};export{vn as AddressStatus,ia as AllbridgeCoreSdk,qt as AmountFormat,nt as AmountNotEnoughError,Nt as ArgumentInvalidDecimalsError,Se as CCTPDoesNotSupportedError,we as ChainSymbol,ee as ChainType,da as ErrorCode,_t as ExtraGasMaxLimitExceededError,ot as FeePaymentMethod,Fe as InsufficientPoolLiquidityError,Zt as InvalidAmountError,gt as InvalidGasFeePaymentOptionError,ni as InvalidMessengerOptionError,it as InvalidTxError,ie as JupiterError,Ge as Messenger,ue as MethodNotSupportedError,Vt as NodeRpcUrlNotInitializedError,D as SdkError,q as SdkRootError,_n as SolanaAutoTxFee,ht as TimeoutError,Ot as TxTooLargeError,ft as VerifyTxError,Ut as mainnet,os as nodeRpcUrlsDefault,ss as nodeUrlsDefault};
|
|
1
|
+
var As=Object.create;var wi=Object.defineProperty;var us=Object.getOwnPropertyDescriptor;var ms=Object.getOwnPropertyNames;var ls=Object.getPrototypeOf,ds=Object.prototype.hasOwnProperty;var Bt=(s,i)=>()=>(s&&(i=s(s=0)),i);var Mr=(s,i)=>()=>(i||s((i={exports:{}}).exports,i),i.exports);var ps=(s,i,r,a)=>{if(i&&typeof i=="object"||typeof i=="function")for(let o of ms(i))!ds.call(s,o)&&o!==r&&wi(s,o,{get:()=>i[o],enumerable:!(a=us(i,o))||a.enumerable});return s};var $e=(s,i,r)=>(r=s!=null?As(ls(s)):{},ps(i||!s||!s.__esModule?wi(r,"default",{value:s,enumerable:!0}):r,s));var g=Bt(()=>{});function gs(s,i){this.fun=s,this.array=i}function Ci(s){var i=Math.floor((Date.now()-It.now())*.001),r=It.now()*.001,a=Math.floor(r)+i,o=Math.floor(r%1*1e9);return s&&(a=a-s[0],o=o-s[1],o<0&&(a--,o+=Nr)),[a,o]}var bc,It,Or,Nr,Bi=Bt(()=>{g();y();f();gs.prototype.run=function(){this.fun.apply(null,this.array)};bc={PATH:"/usr/bin",LANG:typeof navigator<"u"?navigator.language+".UTF-8":void 0,PWD:"/",HOME:"/home",TMP:"/tmp"},It={now:typeof performance<"u"?performance.now.bind(performance):void 0,timing:typeof performance<"u"?performance.timing:void 0};It.now===void 0&&(Or=Date.now(),It.timing&&It.timing.navigationStart&&(Or=It.timing.navigationStart),It.now=()=>Date.now()-Or);Nr=1e9;Ci.bigint=function(s){var i=Ci(s);return typeof BigInt>"u"?i[0]*Nr+i[1]:BigInt(i[0]*Nr)+BigInt(i[1])}});var f=Bt(()=>{Bi()});function fs(){if(Ii)return qt;Ii=!0,qt.byteLength=p,qt.toByteArray=b,qt.fromByteArray=x;for(var s=[],i=[],r=typeof Uint8Array<"u"?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",o=0,m=a.length;o<m;++o)s[o]=a[o],i[a.charCodeAt(o)]=o;i[45]=62,i[95]=63;function u(B){var R=B.length;if(R%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var M=B.indexOf("=");M===-1&&(M=R);var F=M===R?0:4-M%4;return[M,F]}function p(B){var R=u(B),M=R[0],F=R[1];return(M+F)*3/4-F}function h(B,R,M){return(R+M)*3/4-M}function b(B){var R,M=u(B),F=M[0],W=M[1],D=new r(h(B,F,W)),U=0,Y=W>0?F-4:F,j;for(j=0;j<Y;j+=4)R=i[B.charCodeAt(j)]<<18|i[B.charCodeAt(j+1)]<<12|i[B.charCodeAt(j+2)]<<6|i[B.charCodeAt(j+3)],D[U++]=R>>16&255,D[U++]=R>>8&255,D[U++]=R&255;return W===2&&(R=i[B.charCodeAt(j)]<<2|i[B.charCodeAt(j+1)]>>4,D[U++]=R&255),W===1&&(R=i[B.charCodeAt(j)]<<10|i[B.charCodeAt(j+1)]<<4|i[B.charCodeAt(j+2)]>>2,D[U++]=R>>8&255,D[U++]=R&255),D}function S(B){return s[B>>18&63]+s[B>>12&63]+s[B>>6&63]+s[B&63]}function C(B,R,M){for(var F,W=[],D=R;D<M;D+=3)F=(B[D]<<16&16711680)+(B[D+1]<<8&65280)+(B[D+2]&255),W.push(S(F));return W.join("")}function x(B){for(var R,M=B.length,F=M%3,W=[],D=16383,U=0,Y=M-F;U<Y;U+=D)W.push(C(B,U,U+D>Y?Y:U+D));return F===1?(R=B[M-1],W.push(s[R>>2]+s[R<<4&63]+"==")):F===2&&(R=(B[M-2]<<8)+B[M-1],W.push(s[R>>10]+s[R>>4&63]+s[R<<2&63]+"=")),W.join("")}return qt}function ys(){if(Ri)return wn;Ri=!0;return wn.read=function(s,i,r,a,o){var m,u,p=o*8-a-1,h=(1<<p)-1,b=h>>1,S=-7,C=r?o-1:0,x=r?-1:1,B=s[i+C];for(C+=x,m=B&(1<<-S)-1,B>>=-S,S+=p;S>0;m=m*256+s[i+C],C+=x,S-=8);for(u=m&(1<<-S)-1,m>>=-S,S+=a;S>0;u=u*256+s[i+C],C+=x,S-=8);if(m===0)m=1-b;else{if(m===h)return u?NaN:(B?-1:1)*(1/0);u=u+Math.pow(2,a),m=m-b}return(B?-1:1)*u*Math.pow(2,m-a)},wn.write=function(s,i,r,a,o,m){var u,p,h,b=m*8-o-1,S=(1<<b)-1,C=S>>1,x=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,B=a?0:m-1,R=a?1:-1,M=i<0||i===0&&1/i<0?1:0;for(i=Math.abs(i),isNaN(i)||i===1/0?(p=isNaN(i)?1:0,u=S):(u=Math.floor(Math.log(i)/Math.LN2),i*(h=Math.pow(2,-u))<1&&(u--,h*=2),u+C>=1?i+=x/h:i+=x*Math.pow(2,1-C),i*h>=2&&(u++,h/=2),u+C>=S?(p=0,u=S):u+C>=1?(p=(i*h-1)*Math.pow(2,o),u=u+C):(p=i*Math.pow(2,C-1)*Math.pow(2,o),u=0));o>=8;s[r+B]=p&255,B+=R,p/=256,o-=8);for(u=u<<o|p,b+=o;b>0;s[r+B]=u&255,B+=R,u/=256,b-=8);s[r+B-R]|=M*128},wn}function ki(){if(vi)return Rt;vi=!0;let s=fs(),i=ys(),r=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;Rt.Buffer=u,Rt.SlowBuffer=W,Rt.INSPECT_MAX_BYTES=50;let a=2147483647;Rt.kMaxLength=a,u.TYPED_ARRAY_SUPPORT=o(),!u.TYPED_ARRAY_SUPPORT&&typeof console<"u"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function o(){try{let l=new Uint8Array(1),c={foo:function(){return 42}};return Object.setPrototypeOf(c,Uint8Array.prototype),Object.setPrototypeOf(l,c),l.foo()===42}catch{return!1}}Object.defineProperty(u.prototype,"parent",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.buffer}}),Object.defineProperty(u.prototype,"offset",{enumerable:!0,get:function(){if(u.isBuffer(this))return this.byteOffset}});function m(l){if(l>a)throw new RangeError('The value "'+l+'" is invalid for option "size"');let c=new Uint8Array(l);return Object.setPrototypeOf(c,u.prototype),c}function u(l,c,A){if(typeof l=="number"){if(typeof c=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return S(l)}return p(l,c,A)}u.poolSize=8192;function p(l,c,A){if(typeof l=="string")return C(l,c);if(ArrayBuffer.isView(l))return B(l);if(l==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l);if(ze(l,ArrayBuffer)||l&&ze(l.buffer,ArrayBuffer)||typeof SharedArrayBuffer<"u"&&(ze(l,SharedArrayBuffer)||l&&ze(l.buffer,SharedArrayBuffer)))return R(l,c,A);if(typeof l=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let d=l.valueOf&&l.valueOf();if(d!=null&&d!==l)return u.from(d,c,A);let T=M(l);if(T)return T;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof l[Symbol.toPrimitive]=="function")return u.from(l[Symbol.toPrimitive]("string"),c,A);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l)}u.from=function(l,c,A){return p(l,c,A)},Object.setPrototypeOf(u.prototype,Uint8Array.prototype),Object.setPrototypeOf(u,Uint8Array);function h(l){if(typeof l!="number")throw new TypeError('"size" argument must be of type number');if(l<0)throw new RangeError('The value "'+l+'" is invalid for option "size"')}function b(l,c,A){return h(l),l<=0?m(l):c!==void 0?typeof A=="string"?m(l).fill(c,A):m(l).fill(c):m(l)}u.alloc=function(l,c,A){return b(l,c,A)};function S(l){return h(l),m(l<0?0:F(l)|0)}u.allocUnsafe=function(l){return S(l)},u.allocUnsafeSlow=function(l){return S(l)};function C(l,c){if((typeof c!="string"||c==="")&&(c="utf8"),!u.isEncoding(c))throw new TypeError("Unknown encoding: "+c);let A=D(l,c)|0,d=m(A),T=d.write(l,c);return T!==A&&(d=d.slice(0,T)),d}function x(l){let c=l.length<0?0:F(l.length)|0,A=m(c);for(let d=0;d<c;d+=1)A[d]=l[d]&255;return A}function B(l){if(ze(l,Uint8Array)){let c=new Uint8Array(l);return R(c.buffer,c.byteOffset,c.byteLength)}return x(l)}function R(l,c,A){if(c<0||l.byteLength<c)throw new RangeError('"offset" is outside of buffer bounds');if(l.byteLength<c+(A||0))throw new RangeError('"length" is outside of buffer bounds');let d;return c===void 0&&A===void 0?d=new Uint8Array(l):A===void 0?d=new Uint8Array(l,c):d=new Uint8Array(l,c,A),Object.setPrototypeOf(d,u.prototype),d}function M(l){if(u.isBuffer(l)){let c=F(l.length)|0,A=m(c);return A.length===0||l.copy(A,0,0,c),A}if(l.length!==void 0)return typeof l.length!="number"||Fr(l.length)?m(0):x(l);if(l.type==="Buffer"&&Array.isArray(l.data))return x(l.data)}function F(l){if(l>=a)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a.toString(16)+" bytes");return l|0}function W(l){return+l!=l&&(l=0),u.alloc(+l)}u.isBuffer=function(c){return c!=null&&c._isBuffer===!0&&c!==u.prototype},u.compare=function(c,A){if(ze(c,Uint8Array)&&(c=u.from(c,c.offset,c.byteLength)),ze(A,Uint8Array)&&(A=u.from(A,A.offset,A.byteLength)),!u.isBuffer(c)||!u.isBuffer(A))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(c===A)return 0;let d=c.length,T=A.length;for(let P=0,I=Math.min(d,T);P<I;++P)if(c[P]!==A[P]){d=c[P],T=A[P];break}return d<T?-1:T<d?1:0},u.isEncoding=function(c){switch(String(c).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},u.concat=function(c,A){if(!Array.isArray(c))throw new TypeError('"list" argument must be an Array of Buffers');if(c.length===0)return u.alloc(0);let d;if(A===void 0)for(A=0,d=0;d<c.length;++d)A+=c[d].length;let T=u.allocUnsafe(A),P=0;for(d=0;d<c.length;++d){let I=c[d];if(ze(I,Uint8Array))P+I.length>T.length?(u.isBuffer(I)||(I=u.from(I)),I.copy(T,P)):Uint8Array.prototype.set.call(T,I,P);else if(u.isBuffer(I))I.copy(T,P);else throw new TypeError('"list" argument must be an Array of Buffers');P+=I.length}return T};function D(l,c){if(u.isBuffer(l))return l.length;if(ArrayBuffer.isView(l)||ze(l,ArrayBuffer))return l.byteLength;if(typeof l!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof l);let A=l.length,d=arguments.length>2&&arguments[2]===!0;if(!d&&A===0)return 0;let T=!1;for(;;)switch(c){case"ascii":case"latin1":case"binary":return A;case"utf8":case"utf-8":return xr(l).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return A*2;case"hex":return A>>>1;case"base64":return Pi(l).length;default:if(T)return d?-1:xr(l).length;c=(""+c).toLowerCase(),T=!0}}u.byteLength=D;function U(l,c,A){let d=!1;if((c===void 0||c<0)&&(c=0),c>this.length||((A===void 0||A>this.length)&&(A=this.length),A<=0)||(A>>>=0,c>>>=0,A<=c))return"";for(l||(l="utf8");;)switch(l){case"hex":return Ge(this,c,A);case"utf8":case"utf-8":return ge(this,c,A);case"ascii":return Ce(this,c,A);case"latin1":case"binary":return Ee(this,c,A);case"base64":return ke(this,c,A);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Fe(this,c,A);default:if(d)throw new TypeError("Unknown encoding: "+l);l=(l+"").toLowerCase(),d=!0}}u.prototype._isBuffer=!0;function Y(l,c,A){let d=l[c];l[c]=l[A],l[A]=d}u.prototype.swap16=function(){let c=this.length;if(c%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let A=0;A<c;A+=2)Y(this,A,A+1);return this},u.prototype.swap32=function(){let c=this.length;if(c%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(let A=0;A<c;A+=4)Y(this,A,A+3),Y(this,A+1,A+2);return this},u.prototype.swap64=function(){let c=this.length;if(c%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(let A=0;A<c;A+=8)Y(this,A,A+7),Y(this,A+1,A+6),Y(this,A+2,A+5),Y(this,A+3,A+4);return this},u.prototype.toString=function(){let c=this.length;return c===0?"":arguments.length===0?ge(this,0,c):U.apply(this,arguments)},u.prototype.toLocaleString=u.prototype.toString,u.prototype.equals=function(c){if(!u.isBuffer(c))throw new TypeError("Argument must be a Buffer");return this===c?!0:u.compare(this,c)===0},u.prototype.inspect=function(){let c="",A=Rt.INSPECT_MAX_BYTES;return c=this.toString("hex",0,A).replace(/(.{2})/g,"$1 ").trim(),this.length>A&&(c+=" ... "),"<Buffer "+c+">"},r&&(u.prototype[r]=u.prototype.inspect),u.prototype.compare=function(c,A,d,T,P){if(ze(c,Uint8Array)&&(c=u.from(c,c.offset,c.byteLength)),!u.isBuffer(c))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof c);if(A===void 0&&(A=0),d===void 0&&(d=c?c.length:0),T===void 0&&(T=0),P===void 0&&(P=this.length),A<0||d>c.length||T<0||P>this.length)throw new RangeError("out of range index");if(T>=P&&A>=d)return 0;if(T>=P)return-1;if(A>=d)return 1;if(A>>>=0,d>>>=0,T>>>=0,P>>>=0,this===c)return 0;let I=P-T,_=d-A,ae=Math.min(I,_),te=this.slice(T,P),se=c.slice(A,d);for(let q=0;q<ae;++q)if(te[q]!==se[q]){I=te[q],_=se[q];break}return I<_?-1:_<I?1:0};function j(l,c,A,d,T){if(l.length===0)return-1;if(typeof A=="string"?(d=A,A=0):A>2147483647?A=2147483647:A<-2147483648&&(A=-2147483648),A=+A,Fr(A)&&(A=T?0:l.length-1),A<0&&(A=l.length+A),A>=l.length){if(T)return-1;A=l.length-1}else if(A<0)if(T)A=0;else return-1;if(typeof c=="string"&&(c=u.from(c,d)),u.isBuffer(c))return c.length===0?-1:X(l,c,A,d,T);if(typeof c=="number")return c=c&255,typeof Uint8Array.prototype.indexOf=="function"?T?Uint8Array.prototype.indexOf.call(l,c,A):Uint8Array.prototype.lastIndexOf.call(l,c,A):X(l,[c],A,d,T);throw new TypeError("val must be string, number or Buffer")}function X(l,c,A,d,T){let P=1,I=l.length,_=c.length;if(d!==void 0&&(d=String(d).toLowerCase(),d==="ucs2"||d==="ucs-2"||d==="utf16le"||d==="utf-16le")){if(l.length<2||c.length<2)return-1;P=2,I/=2,_/=2,A/=2}function ae(se,q){return P===1?se[q]:se.readUInt16BE(q*P)}let te;if(T){let se=-1;for(te=A;te<I;te++)if(ae(l,te)===ae(c,se===-1?0:te-se)){if(se===-1&&(se=te),te-se+1===_)return se*P}else se!==-1&&(te-=te-se),se=-1}else for(A+_>I&&(A=I-_),te=A;te>=0;te--){let se=!0;for(let q=0;q<_;q++)if(ae(l,te+q)!==ae(c,q)){se=!1;break}if(se)return te}return-1}u.prototype.includes=function(c,A,d){return this.indexOf(c,A,d)!==-1},u.prototype.indexOf=function(c,A,d){return j(this,c,A,d,!0)},u.prototype.lastIndexOf=function(c,A,d){return j(this,c,A,d,!1)};function Pe(l,c,A,d){A=Number(A)||0;let T=l.length-A;d?(d=Number(d),d>T&&(d=T)):d=T;let P=c.length;d>P/2&&(d=P/2);let I;for(I=0;I<d;++I){let _=parseInt(c.substr(I*2,2),16);if(Fr(_))return I;l[A+I]=_}return I}function Ae(l,c,A,d){return Pn(xr(c,l.length-A),l,A,d)}function We(l,c,A,d){return Pn(as(c),l,A,d)}function Ue(l,c,A,d){return Pn(Pi(c),l,A,d)}function _e(l,c,A,d){return Pn(ss(c,l.length-A),l,A,d)}u.prototype.write=function(c,A,d,T){if(A===void 0)T="utf8",d=this.length,A=0;else if(d===void 0&&typeof A=="string")T=A,d=this.length,A=0;else if(isFinite(A))A=A>>>0,isFinite(d)?(d=d>>>0,T===void 0&&(T="utf8")):(T=d,d=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let P=this.length-A;if((d===void 0||d>P)&&(d=P),c.length>0&&(d<0||A<0)||A>this.length)throw new RangeError("Attempt to write outside buffer bounds");T||(T="utf8");let I=!1;for(;;)switch(T){case"hex":return Pe(this,c,A,d);case"utf8":case"utf-8":return Ae(this,c,A,d);case"ascii":case"latin1":case"binary":return We(this,c,A,d);case"base64":return Ue(this,c,A,d);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return _e(this,c,A,d);default:if(I)throw new TypeError("Unknown encoding: "+T);T=(""+T).toLowerCase(),I=!0}},u.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function ke(l,c,A){return c===0&&A===l.length?s.fromByteArray(l):s.fromByteArray(l.slice(c,A))}function ge(l,c,A){A=Math.min(l.length,A);let d=[],T=c;for(;T<A;){let P=l[T],I=null,_=P>239?4:P>223?3:P>191?2:1;if(T+_<=A){let ae,te,se,q;switch(_){case 1:P<128&&(I=P);break;case 2:ae=l[T+1],(ae&192)===128&&(q=(P&31)<<6|ae&63,q>127&&(I=q));break;case 3:ae=l[T+1],te=l[T+2],(ae&192)===128&&(te&192)===128&&(q=(P&15)<<12|(ae&63)<<6|te&63,q>2047&&(q<55296||q>57343)&&(I=q));break;case 4:ae=l[T+1],te=l[T+2],se=l[T+3],(ae&192)===128&&(te&192)===128&&(se&192)===128&&(q=(P&15)<<18|(ae&63)<<12|(te&63)<<6|se&63,q>65535&&q<1114112&&(I=q))}}I===null?(I=65533,_=1):I>65535&&(I-=65536,d.push(I>>>10&1023|55296),I=56320|I&1023),d.push(I),T+=_}return xe(d)}let we=4096;function xe(l){let c=l.length;if(c<=we)return String.fromCharCode.apply(String,l);let A="",d=0;for(;d<c;)A+=String.fromCharCode.apply(String,l.slice(d,d+=we));return A}function Ce(l,c,A){let d="";A=Math.min(l.length,A);for(let T=c;T<A;++T)d+=String.fromCharCode(l[T]&127);return d}function Ee(l,c,A){let d="";A=Math.min(l.length,A);for(let T=c;T<A;++T)d+=String.fromCharCode(l[T]);return d}function Ge(l,c,A){let d=l.length;(!c||c<0)&&(c=0),(!A||A<0||A>d)&&(A=d);let T="";for(let P=c;P<A;++P)T+=os[l[P]];return T}function Fe(l,c,A){let d=l.slice(c,A),T="";for(let P=0;P<d.length-1;P+=2)T+=String.fromCharCode(d[P]+d[P+1]*256);return T}u.prototype.slice=function(c,A){let d=this.length;c=~~c,A=A===void 0?d:~~A,c<0?(c+=d,c<0&&(c=0)):c>d&&(c=d),A<0?(A+=d,A<0&&(A=0)):A>d&&(A=d),A<c&&(A=c);let T=this.subarray(c,A);return Object.setPrototypeOf(T,u.prototype),T};function E(l,c,A){if(l%1!==0||l<0)throw new RangeError("offset is not uint");if(l+c>A)throw new RangeError("Trying to access beyond buffer length")}u.prototype.readUintLE=u.prototype.readUIntLE=function(c,A,d){c=c>>>0,A=A>>>0,d||E(c,A,this.length);let T=this[c],P=1,I=0;for(;++I<A&&(P*=256);)T+=this[c+I]*P;return T},u.prototype.readUintBE=u.prototype.readUIntBE=function(c,A,d){c=c>>>0,A=A>>>0,d||E(c,A,this.length);let T=this[c+--A],P=1;for(;A>0&&(P*=256);)T+=this[c+--A]*P;return T},u.prototype.readUint8=u.prototype.readUInt8=function(c,A){return c=c>>>0,A||E(c,1,this.length),this[c]},u.prototype.readUint16LE=u.prototype.readUInt16LE=function(c,A){return c=c>>>0,A||E(c,2,this.length),this[c]|this[c+1]<<8},u.prototype.readUint16BE=u.prototype.readUInt16BE=function(c,A){return c=c>>>0,A||E(c,2,this.length),this[c]<<8|this[c+1]},u.prototype.readUint32LE=u.prototype.readUInt32LE=function(c,A){return c=c>>>0,A||E(c,4,this.length),(this[c]|this[c+1]<<8|this[c+2]<<16)+this[c+3]*16777216},u.prototype.readUint32BE=u.prototype.readUInt32BE=function(c,A){return c=c>>>0,A||E(c,4,this.length),this[c]*16777216+(this[c+1]<<16|this[c+2]<<8|this[c+3])},u.prototype.readBigUInt64LE=pt(function(c){c=c>>>0,Et(c,"offset");let A=this[c],d=this[c+7];(A===void 0||d===void 0)&&zt(c,this.length-8);let T=A+this[++c]*2**8+this[++c]*2**16+this[++c]*2**24,P=this[++c]+this[++c]*2**8+this[++c]*2**16+d*2**24;return BigInt(T)+(BigInt(P)<<BigInt(32))}),u.prototype.readBigUInt64BE=pt(function(c){c=c>>>0,Et(c,"offset");let A=this[c],d=this[c+7];(A===void 0||d===void 0)&&zt(c,this.length-8);let T=A*2**24+this[++c]*2**16+this[++c]*2**8+this[++c],P=this[++c]*2**24+this[++c]*2**16+this[++c]*2**8+d;return(BigInt(T)<<BigInt(32))+BigInt(P)}),u.prototype.readIntLE=function(c,A,d){c=c>>>0,A=A>>>0,d||E(c,A,this.length);let T=this[c],P=1,I=0;for(;++I<A&&(P*=256);)T+=this[c+I]*P;return P*=128,T>=P&&(T-=Math.pow(2,8*A)),T},u.prototype.readIntBE=function(c,A,d){c=c>>>0,A=A>>>0,d||E(c,A,this.length);let T=A,P=1,I=this[c+--T];for(;T>0&&(P*=256);)I+=this[c+--T]*P;return P*=128,I>=P&&(I-=Math.pow(2,8*A)),I},u.prototype.readInt8=function(c,A){return c=c>>>0,A||E(c,1,this.length),this[c]&128?(255-this[c]+1)*-1:this[c]},u.prototype.readInt16LE=function(c,A){c=c>>>0,A||E(c,2,this.length);let d=this[c]|this[c+1]<<8;return d&32768?d|4294901760:d},u.prototype.readInt16BE=function(c,A){c=c>>>0,A||E(c,2,this.length);let d=this[c+1]|this[c]<<8;return d&32768?d|4294901760:d},u.prototype.readInt32LE=function(c,A){return c=c>>>0,A||E(c,4,this.length),this[c]|this[c+1]<<8|this[c+2]<<16|this[c+3]<<24},u.prototype.readInt32BE=function(c,A){return c=c>>>0,A||E(c,4,this.length),this[c]<<24|this[c+1]<<16|this[c+2]<<8|this[c+3]},u.prototype.readBigInt64LE=pt(function(c){c=c>>>0,Et(c,"offset");let A=this[c],d=this[c+7];(A===void 0||d===void 0)&&zt(c,this.length-8);let T=this[c+4]+this[c+5]*2**8+this[c+6]*2**16+(d<<24);return(BigInt(T)<<BigInt(32))+BigInt(A+this[++c]*2**8+this[++c]*2**16+this[++c]*2**24)}),u.prototype.readBigInt64BE=pt(function(c){c=c>>>0,Et(c,"offset");let A=this[c],d=this[c+7];(A===void 0||d===void 0)&&zt(c,this.length-8);let T=(A<<24)+this[++c]*2**16+this[++c]*2**8+this[++c];return(BigInt(T)<<BigInt(32))+BigInt(this[++c]*2**24+this[++c]*2**16+this[++c]*2**8+d)}),u.prototype.readFloatLE=function(c,A){return c=c>>>0,A||E(c,4,this.length),i.read(this,c,!0,23,4)},u.prototype.readFloatBE=function(c,A){return c=c>>>0,A||E(c,4,this.length),i.read(this,c,!1,23,4)},u.prototype.readDoubleLE=function(c,A){return c=c>>>0,A||E(c,8,this.length),i.read(this,c,!0,52,8)},u.prototype.readDoubleBE=function(c,A){return c=c>>>0,A||E(c,8,this.length),i.read(this,c,!1,52,8)};function le(l,c,A,d,T,P){if(!u.isBuffer(l))throw new TypeError('"buffer" argument must be a Buffer instance');if(c>T||c<P)throw new RangeError('"value" argument is out of bounds');if(A+d>l.length)throw new RangeError("Index out of range")}u.prototype.writeUintLE=u.prototype.writeUIntLE=function(c,A,d,T){if(c=+c,A=A>>>0,d=d>>>0,!T){let _=Math.pow(2,8*d)-1;le(this,c,A,d,_,0)}let P=1,I=0;for(this[A]=c&255;++I<d&&(P*=256);)this[A+I]=c/P&255;return A+d},u.prototype.writeUintBE=u.prototype.writeUIntBE=function(c,A,d,T){if(c=+c,A=A>>>0,d=d>>>0,!T){let _=Math.pow(2,8*d)-1;le(this,c,A,d,_,0)}let P=d-1,I=1;for(this[A+P]=c&255;--P>=0&&(I*=256);)this[A+P]=c/I&255;return A+d},u.prototype.writeUint8=u.prototype.writeUInt8=function(c,A,d){return c=+c,A=A>>>0,d||le(this,c,A,1,255,0),this[A]=c&255,A+1},u.prototype.writeUint16LE=u.prototype.writeUInt16LE=function(c,A,d){return c=+c,A=A>>>0,d||le(this,c,A,2,65535,0),this[A]=c&255,this[A+1]=c>>>8,A+2},u.prototype.writeUint16BE=u.prototype.writeUInt16BE=function(c,A,d){return c=+c,A=A>>>0,d||le(this,c,A,2,65535,0),this[A]=c>>>8,this[A+1]=c&255,A+2},u.prototype.writeUint32LE=u.prototype.writeUInt32LE=function(c,A,d){return c=+c,A=A>>>0,d||le(this,c,A,4,4294967295,0),this[A+3]=c>>>24,this[A+2]=c>>>16,this[A+1]=c>>>8,this[A]=c&255,A+4},u.prototype.writeUint32BE=u.prototype.writeUInt32BE=function(c,A,d){return c=+c,A=A>>>0,d||le(this,c,A,4,4294967295,0),this[A]=c>>>24,this[A+1]=c>>>16,this[A+2]=c>>>8,this[A+3]=c&255,A+4};function Sn(l,c,A,d,T){Si(c,d,T,l,A,7);let P=Number(c&BigInt(4294967295));l[A++]=P,P=P>>8,l[A++]=P,P=P>>8,l[A++]=P,P=P>>8,l[A++]=P;let I=Number(c>>BigInt(32)&BigInt(4294967295));return l[A++]=I,I=I>>8,l[A++]=I,I=I>>8,l[A++]=I,I=I>>8,l[A++]=I,A}function fi(l,c,A,d,T){Si(c,d,T,l,A,7);let P=Number(c&BigInt(4294967295));l[A+7]=P,P=P>>8,l[A+6]=P,P=P>>8,l[A+5]=P,P=P>>8,l[A+4]=P;let I=Number(c>>BigInt(32)&BigInt(4294967295));return l[A+3]=I,I=I>>8,l[A+2]=I,I=I>>8,l[A+1]=I,I=I>>8,l[A]=I,A+8}u.prototype.writeBigUInt64LE=pt(function(c,A=0){return Sn(this,c,A,BigInt(0),BigInt("0xffffffffffffffff"))}),u.prototype.writeBigUInt64BE=pt(function(c,A=0){return fi(this,c,A,BigInt(0),BigInt("0xffffffffffffffff"))}),u.prototype.writeIntLE=function(c,A,d,T){if(c=+c,A=A>>>0,!T){let ae=Math.pow(2,8*d-1);le(this,c,A,d,ae-1,-ae)}let P=0,I=1,_=0;for(this[A]=c&255;++P<d&&(I*=256);)c<0&&_===0&&this[A+P-1]!==0&&(_=1),this[A+P]=(c/I>>0)-_&255;return A+d},u.prototype.writeIntBE=function(c,A,d,T){if(c=+c,A=A>>>0,!T){let ae=Math.pow(2,8*d-1);le(this,c,A,d,ae-1,-ae)}let P=d-1,I=1,_=0;for(this[A+P]=c&255;--P>=0&&(I*=256);)c<0&&_===0&&this[A+P+1]!==0&&(_=1),this[A+P]=(c/I>>0)-_&255;return A+d},u.prototype.writeInt8=function(c,A,d){return c=+c,A=A>>>0,d||le(this,c,A,1,127,-128),c<0&&(c=255+c+1),this[A]=c&255,A+1},u.prototype.writeInt16LE=function(c,A,d){return c=+c,A=A>>>0,d||le(this,c,A,2,32767,-32768),this[A]=c&255,this[A+1]=c>>>8,A+2},u.prototype.writeInt16BE=function(c,A,d){return c=+c,A=A>>>0,d||le(this,c,A,2,32767,-32768),this[A]=c>>>8,this[A+1]=c&255,A+2},u.prototype.writeInt32LE=function(c,A,d){return c=+c,A=A>>>0,d||le(this,c,A,4,2147483647,-2147483648),this[A]=c&255,this[A+1]=c>>>8,this[A+2]=c>>>16,this[A+3]=c>>>24,A+4},u.prototype.writeInt32BE=function(c,A,d){return c=+c,A=A>>>0,d||le(this,c,A,4,2147483647,-2147483648),c<0&&(c=4294967295+c+1),this[A]=c>>>24,this[A+1]=c>>>16,this[A+2]=c>>>8,this[A+3]=c&255,A+4},u.prototype.writeBigInt64LE=pt(function(c,A=0){return Sn(this,c,A,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),u.prototype.writeBigInt64BE=pt(function(c,A=0){return fi(this,c,A,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function yi(l,c,A,d,T,P){if(A+d>l.length)throw new RangeError("Index out of range");if(A<0)throw new RangeError("Index out of range")}function hi(l,c,A,d,T){return c=+c,A=A>>>0,T||yi(l,c,A,4),i.write(l,c,A,d,23,4),A+4}u.prototype.writeFloatLE=function(c,A,d){return hi(this,c,A,!0,d)},u.prototype.writeFloatBE=function(c,A,d){return hi(this,c,A,!1,d)};function Ti(l,c,A,d,T){return c=+c,A=A>>>0,T||yi(l,c,A,8),i.write(l,c,A,d,52,8),A+8}u.prototype.writeDoubleLE=function(c,A,d){return Ti(this,c,A,!0,d)},u.prototype.writeDoubleBE=function(c,A,d){return Ti(this,c,A,!1,d)},u.prototype.copy=function(c,A,d,T){if(!u.isBuffer(c))throw new TypeError("argument should be a Buffer");if(d||(d=0),!T&&T!==0&&(T=this.length),A>=c.length&&(A=c.length),A||(A=0),T>0&&T<d&&(T=d),T===d||c.length===0||this.length===0)return 0;if(A<0)throw new RangeError("targetStart out of bounds");if(d<0||d>=this.length)throw new RangeError("Index out of range");if(T<0)throw new RangeError("sourceEnd out of bounds");T>this.length&&(T=this.length),c.length-A<T-d&&(T=c.length-A+d);let P=T-d;return this===c&&typeof Uint8Array.prototype.copyWithin=="function"?this.copyWithin(A,d,T):Uint8Array.prototype.set.call(c,this.subarray(d,T),A),P},u.prototype.fill=function(c,A,d,T){if(typeof c=="string"){if(typeof A=="string"?(T=A,A=0,d=this.length):typeof d=="string"&&(T=d,d=this.length),T!==void 0&&typeof T!="string")throw new TypeError("encoding must be a string");if(typeof T=="string"&&!u.isEncoding(T))throw new TypeError("Unknown encoding: "+T);if(c.length===1){let I=c.charCodeAt(0);(T==="utf8"&&I<128||T==="latin1")&&(c=I)}}else typeof c=="number"?c=c&255:typeof c=="boolean"&&(c=Number(c));if(A<0||this.length<A||this.length<d)throw new RangeError("Out of range index");if(d<=A)return this;A=A>>>0,d=d===void 0?this.length:d>>>0,c||(c=0);let P;if(typeof c=="number")for(P=A;P<d;++P)this[P]=c;else{let I=u.isBuffer(c)?c:u.from(c,T),_=I.length;if(_===0)throw new TypeError('The value "'+c+'" is invalid for argument "value"');for(P=0;P<d-A;++P)this[P+A]=I[P%_]}return this};let Ut={};function kr(l,c,A){Ut[l]=class extends A{constructor(){super(),Object.defineProperty(this,"message",{value:c.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${l}]`,this.stack,delete this.name}get code(){return l}set code(T){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:T,writable:!0})}toString(){return`${this.name} [${l}]: ${this.message}`}}}kr("ERR_BUFFER_OUT_OF_BOUNDS",function(l){return l?`${l} is outside of buffer bounds`:"Attempt to access memory outside buffer bounds"},RangeError),kr("ERR_INVALID_ARG_TYPE",function(l,c){return`The "${l}" argument must be of type number. Received type ${typeof c}`},TypeError),kr("ERR_OUT_OF_RANGE",function(l,c,A){let d=`The value of "${l}" is out of range.`,T=A;return Number.isInteger(A)&&Math.abs(A)>2**32?T=bi(String(A)):typeof A=="bigint"&&(T=String(A),(A>BigInt(2)**BigInt(32)||A<-(BigInt(2)**BigInt(32)))&&(T=bi(T)),T+="n"),d+=` It must be ${c}. Received ${T}`,d},RangeError);function bi(l){let c="",A=l.length,d=l[0]==="-"?1:0;for(;A>=d+4;A-=3)c=`_${l.slice(A-3,A)}${c}`;return`${l.slice(0,A)}${c}`}function ns(l,c,A){Et(c,"offset"),(l[c]===void 0||l[c+A]===void 0)&&zt(c,l.length-(A+1))}function Si(l,c,A,d,T,P){if(l>A||l<c){let I=typeof c=="bigint"?"n":"",_;throw c===0||c===BigInt(0)?_=`>= 0${I} and < 2${I} ** ${(P+1)*8}${I}`:_=`>= -(2${I} ** ${(P+1)*8-1}${I}) and < 2 ** ${(P+1)*8-1}${I}`,new Ut.ERR_OUT_OF_RANGE("value",_,l)}ns(d,T,P)}function Et(l,c){if(typeof l!="number")throw new Ut.ERR_INVALID_ARG_TYPE(c,"number",l)}function zt(l,c,A){throw Math.floor(l)!==l?(Et(l,A),new Ut.ERR_OUT_OF_RANGE("offset","an integer",l)):c<0?new Ut.ERR_BUFFER_OUT_OF_BOUNDS:new Ut.ERR_OUT_OF_RANGE("offset",`>= 0 and <= ${c}`,l)}let rs=/[^+/0-9A-Za-z-_]/g;function is(l){if(l=l.split("=")[0],l=l.trim().replace(rs,""),l.length<2)return"";for(;l.length%4!==0;)l=l+"=";return l}function xr(l,c){c=c||1/0;let A,d=l.length,T=null,P=[];for(let I=0;I<d;++I){if(A=l.charCodeAt(I),A>55295&&A<57344){if(!T){if(A>56319){(c-=3)>-1&&P.push(239,191,189);continue}else if(I+1===d){(c-=3)>-1&&P.push(239,191,189);continue}T=A;continue}if(A<56320){(c-=3)>-1&&P.push(239,191,189),T=A;continue}A=(T-55296<<10|A-56320)+65536}else T&&(c-=3)>-1&&P.push(239,191,189);if(T=null,A<128){if((c-=1)<0)break;P.push(A)}else if(A<2048){if((c-=2)<0)break;P.push(A>>6|192,A&63|128)}else if(A<65536){if((c-=3)<0)break;P.push(A>>12|224,A>>6&63|128,A&63|128)}else if(A<1114112){if((c-=4)<0)break;P.push(A>>18|240,A>>12&63|128,A>>6&63|128,A&63|128)}else throw new Error("Invalid code point")}return P}function as(l){let c=[];for(let A=0;A<l.length;++A)c.push(l.charCodeAt(A)&255);return c}function ss(l,c){let A,d,T,P=[];for(let I=0;I<l.length&&!((c-=2)<0);++I)A=l.charCodeAt(I),d=A>>8,T=A%256,P.push(T),P.push(d);return P}function Pi(l){return s.toByteArray(is(l))}function Pn(l,c,A,d){let T;for(T=0;T<d&&!(T+A>=c.length||T>=l.length);++T)c[T+A]=l[T];return T}function ze(l,c){return l instanceof c||l!=null&&l.constructor!=null&&l.constructor.name!=null&&l.constructor.name===c.name}function Fr(l){return l!==l}let os=function(){let l="0123456789abcdef",c=new Array(256);for(let A=0;A<16;++A){let d=A*16;for(let T=0;T<16;++T)c[d+T]=l[A]+l[T]}return c}();function pt(l){return typeof BigInt>"u"?cs:l}function cs(){throw new Error("BigInt not supported")}return Rt}var qt,Ii,wn,Ri,Rt,vi,xi=Bt(()=>{g();y();f();qt={},Ii=!1;wn={},Ri=!1;Rt={},vi=!1});var vt,w,Fc,Mc,Fi=Bt(()=>{g();y();f();xi();vt=ki();vt.Buffer;vt.SlowBuffer;vt.INSPECT_MAX_BYTES;vt.kMaxLength;w=vt.Buffer,Fc=vt.INSPECT_MAX_BYTES,Mc=vt.kMaxLength});var y=Bt(()=>{Fi()});import{bcs as ve}from"@mysten/sui/bcs";function ro(s,i=["<",">"]){let[r,a]=i,o=[],m="",u=0;for(let p=0;p<s.length;p++){let h=s[p];if(h===r&&u++,h===a&&u--,u===0&&h===","){o.push(m.trim()),m="";continue}m+=h}return o.push(m.trim()),o}function be(s){if(typeof s!="string")throw new Error(`Illegal type passed as a name of the type: ${s}`);let[i,r]=["<",">"],a=s.indexOf(i),o=Array.from(s).reverse().indexOf(r);if(a===-1&&o===-1)return{typeName:s,typeArgs:[]};if(a===-1||o===-1)throw new Error(`Unclosed generic in name '${s}'`);let m=s.slice(0,a),u=ro(s.slice(a+1,s.length-o-1),[i,r]);return{typeName:m,typeArgs:u}}function Pa(s){return!s||typeof s!="object"||Array.isArray(s)?!1:"GasCoin"in s||"Input"in s||"Result"in s||"NestedResult"in s}function Z(s,i){return Pa(i)?i:s.object(i)}function je(s,i,r){if(Pa(i))return Z(s,i);function a(b){let{typeName:S,typeArgs:C}=be(b);switch(S){case"bool":return ve.Bool;case"u8":return ve.U8;case"u16":return ve.U16;case"u32":return ve.U32;case"u64":return ve.U64;case"u128":return ve.U128;case"u256":return ve.U256;case"address":return ve.Address;case"0x1::string::String":case"0x1::ascii::String":return ve.String;case"0x2::object::ID":return ve.Address;case"0x1::option::Option":return ve.option(a(C[0]));case"vector":return ve.vector(a(C[0]));default:throw new Error(`invalid primitive type ${b}`)}}function o(b){for(let S of b){if(typeof S>"u"||S===null)return!0;if(Array.isArray(S))return o(S)}return!1}function m(b){for(let S of b){if(!Array.isArray(S)){if(S===null)continue;switch(typeof S){case"string":case"number":case"bigint":case"boolean":continue;default:return!1}}return m(S)}return!0}function u(b){for(let S of b){if(!Array.isArray(S))switch(typeof S){case"string":case"number":case"bigint":case"boolean":return!0;default:continue}return u(S)}return!1}let{typeName:p,typeArgs:h}=be(r);switch(p){case"0x1::option::Option":if(i===null)return s.pure.option("bool",null);if(m([i]))return s.pure(a(r).serialize(i));if(u([i]))throw new Error("mixing primitive and TransactionArgument values is not supported");return s.moveCall({target:"0x1::option::some",typeArguments:[h[0]],arguments:[je(s,i,h[0])]});case"vector":if(!Array.isArray(i))throw new Error("expected an array for vector type");if(i.length===0)return s.pure(ve.vector(ve.Bool).serialize([]));if(o(i))throw new Error("the provided array contains undefined or null values");if(m(i))return s.pure(a(r).serialize(i));if(u(i))throw new Error("mixing primitive and TransactionArgument values is not supported");return s.makeMoveVec({type:h[0],elements:i});default:return s.pure(a(r).serialize(i))}}function io(s){let i=s.split("0x").join("");for(let r=0;r<i.length;r++)if(i[r]!=="0")return`0x${i.substring(r)}`;return"0x0"}function G(s){let{typeName:i,typeArgs:r}=be(s);switch(i){case"bool":case"u8":case"u16":case"u32":case"u64":case"u128":case"u256":case"address":case"signer":return i;case"vector":return`vector<${G(r[0])}>`;default:{let a=i.split("::");a[0]=io(a[0]);let o=a.join("::");return r.length>0?`${o}<${r.map(m=>G(m)).join(",")}>`:o}}}function H(s,...i){return i.length>0?`${s}<${i.join(", ")}>`:s}var fe=Bt(()=>{"use strict";g();y();f()});var Tt=Mr((wp,wa)=>{"use strict";g();y();f();fe();var Qr=class s{static $PACKAGE_ID="";static $PUBLISHED_AT="";static $PKG_V=[];get PACKAGE_ID(){return G(s.$PACKAGE_ID)}get PUBLISHED_AT(){return G(s.$PUBLISHED_AT)}get PKG_V1(){return G(s.$PKG_V[1])}setPackageId(i){s.$PACKAGE_ID=i}setPublishedAt(i){s.$PUBLISHED_AT=i}setPkgV(i,r){s.$PKG_V[i]=r}setAddress(i,r){s.$PACKAGE_ID=i,s.$PUBLISHED_AT=i,s.$PKG_V[1]=r||i}},ao=new Qr;wa.exports=ao});var ti=Mr((Op,xa)=>{"use strict";g();y();f();fe();var ei=class s{static $PACKAGE_ID="";static $PUBLISHED_AT="";static $PKG_V=[];get PACKAGE_ID(){return G(s.$PACKAGE_ID)}get PUBLISHED_AT(){return G(s.$PUBLISHED_AT)}get PKG_V1(){return G(s.$PKG_V[1])}setPackageId(i){s.$PACKAGE_ID=i}setPublishedAt(i){s.$PUBLISHED_AT=i}setPkgV(i,r){s.$PKG_V[i]=r}setAddress(i,r){s.$PACKAGE_ID=i,s.$PUBLISHED_AT=i,s.$PKG_V[1]=r||i}},so=new ei;xa.exports=so});var ii=Mr((_p,Ma)=>{"use strict";g();y();f();fe();var ri=class s{static $PACKAGE_ID="";static $PUBLISHED_AT="";static $PKG_V=[];get PACKAGE_ID(){return G(s.$PACKAGE_ID)}get PUBLISHED_AT(){return G(s.$PUBLISHED_AT)}get PKG_V1(){return G(s.$PKG_V[1])}setPackageId(i){s.$PACKAGE_ID=i}setPublishedAt(i){s.$PUBLISHED_AT=i}setPkgV(i,r){s.$PKG_V[i]=r}setAddress(i,r){s.$PACKAGE_ID=i,s.$PUBLISHED_AT=i,s.$PKG_V[1]=r||i}},oo=new ri;Ma.exports=oo});g();y();f();g();y();f();g();y();f();var Cn={coreApiUrl:"https://core.api.allbridgecoreapi.net",coreApiQueryParams:{},coreApiHeaders:{},jupiterUrl:"https://quote-api.jup.ag/v6",wormholeMessengerProgramId:"worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",solanaLookUpTable:"2JcBAEVnAwVo4u8d61iqgHPrzZuugur7cVTjWubsVLHj",sorobanNetworkPassphrase:"Public Global Stellar Network ; September 2015",tronJsonRpc:"https://api.trongrid.io/jsonrpc",cctpParams:{cctpTransmitterProgramId:"CCTPmbSD7gX1bxKPAmg77w8oFzNFpaQiQUWD43TKaecd",cctpTokenMessengerMinter:"CCTPiPYPc6AsJuwueEnWgSgucamXDZwBd53dQ11YiKX3",cctpDomains:{ETH:0,AVA:1,OPT:2,ARB:3,SOL:5,BAS:6,POL:7,SUI:8}},cachePoolInfoChainSec:20},Gc={solanaRpcUrl:"https://api.mainnet-beta.solana.com",tronRpcUrl:"https://api.trongrid.io"},Zc={SOL:"https://api.mainnet-beta.solana.com",TRX:"https://api.trongrid.io",SRB:"https://rpc.stellar.org:443",STLR:"https://horizon.stellar.org",SUI:"https://fullnode.mainnet.sui.io"};g();y();f();import{Big as st}from"big.js";g();y();f();g();y();f();g();y();f();var me=class extends Error{errorCode;constructor(i,r){super(r),this.errorCode=i}},O=class extends me{constructor(i){super("SdkError",i)}},ot=class extends me{constructor(i){super("InvalidAmountError",i)}},Gt=class extends me{constructor(i){super("AmountNotEnoughError",i)}},ct=class extends me{constructor(i){super("InsufficientPoolLiquidityError",i)}},ye=class extends me{constructor(i){super("JupiterError",i)}},en=class extends me{constructor(i){super("InvalidGasFeePaymentOptionError",i)}},Mi=class extends me{constructor(i){super("InvalidMessengerOptionError",i)}},de=class extends me{constructor(i){super("MethodNotSupportedError",i)}},tn=class extends me{constructor(i){super("VerifyTxError",i)}},Zt=class extends me{constructor(i){super("InvalidTxError",i)}},Bn=class extends me{constructor(i){super("ExtraGasMaxLimitExceededError",i)}},In=class extends me{constructor(i,r,a){super("ArgumentInvalidDecimalsError",`Argument '${i}' decimals '${r}' cannot be greater than '${a}'`)}},nn=class extends me{constructor(i){super("TimeoutError",i)}},Rn=class extends me{constructor(i){super("NodeRpcUrlNotInitializedError",`For chain '${i}' Node RPC URL not initialized`)}},Je=class extends me{constructor(i){super("CCTPDoesNotSupportedError",i)}},vn=class extends me{constructor(){super("TxTooLargeError","Transaction too large: try again later or switch to another messenger or pay relayer fee in native gas currency")}},hs=(F=>(F.SDK_ERROR="SdkError",F.INVALID_AMOUNT_ERROR="InvalidAmountError",F.AMOUNT_NOT_ENOUGH_ERROR="AmountNotEnoughError",F.INSUFFICIENT_POOL_LIQUIDITY_ERROR="InsufficientPoolLiquidityError",F.JUPITER_ERROR="JupiterError",F.INVALID_GAS_FEE_PAYMENT_OPTION_ERROR="InvalidGasFeePaymentOptionError",F.INVALID_MESSENGER_OPTION_ERROR="InvalidMessengerOptionError",F.METHOD_NOT_SUPPORTED_ERROR="MethodNotSupportedError",F.VERIFY_TX_ERROR="VerifyTxError",F.INVALID_TX_ERROR="InvalidTxError",F.EXTRA_GAS_MAX_LIMIT_EXCEEDED_ERROR="ExtraGasMaxLimitExceededError",F.ARGUMENT_INVALID_DECIMALS_ERROR="ArgumentInvalidDecimalsError",F.TIMEOUT_ERROR="TimeoutError",F.NODE_RPC_URL_NOT_INITIALIZED_ERROR="NodeRpcUrlNotInitializedError",F.CCTP_DOES_NOT_SUPPORTED_ERROR="CCTPDoesNotSupportedError",F.TX_TOO_LARGE="TxTooLargeError",F))(hs||{});g();y();f();var Ze=(B=>(B.BSC="BSC",B.ETH="ETH",B.BAS="BAS",B.SOL="SOL",B.TRX="TRX",B.POL="POL",B.ARB="ARB",B.CEL="CEL",B.AVA="AVA",B.SRB="SRB",B.STLR="STLR",B.OPT="OPT",B.SUI="SUI",B))(Ze||{}),ie=(m=>(m.EVM="EVM",m.SOLANA="SOLANA",m.TRX="TRX",m.SRB="SRB",m.SUI="SUI",m))(ie||{});var Ts={EVM:18,SOLANA:9,TRX:6,SRB:7,SUI:9},bs={BSC:{chainSymbol:"BSC",chainId:"0x38",name:"BNB Chain",chainType:"EVM"},ETH:{chainSymbol:"ETH",chainId:"0x1",name:"Ethereum",chainType:"EVM"},BAS:{chainSymbol:"BAS",chainId:"0x2105",name:"Base",chainType:"EVM"},ARB:{chainSymbol:"ARB",chainId:"0xa4b1",name:"Arbitrum",chainType:"EVM"},AVA:{chainSymbol:"AVA",chainId:"0xa86a",name:"Avalanche",chainType:"EVM"},CEL:{chainSymbol:"CEL",chainId:"0xa4ec",name:"Celo",chainType:"EVM"},POL:{chainSymbol:"POL",chainId:"0x89",name:"Polygon",chainType:"EVM"},OPT:{chainSymbol:"OPT",chainId:"0xa",name:"OP Mainnet",chainType:"EVM"},SOL:{chainSymbol:"SOL",name:"Solana",chainType:"SOLANA"},TRX:{chainSymbol:"TRX",name:"Tron",chainType:"TRX"},SRB:{chainSymbol:"SRB",name:"Stellar",chainType:"SRB"},STLR:{chainSymbol:"STLR",name:"Stellar",chainType:"SRB"},SUI:{chainSymbol:"SUI",name:"Sui",chainType:"SUI"}},Q=(()=>{let s={...bs};return{addChainsProperties(i){s={...s,...i}},getChainProperty(i){let r=s[i];if(!r)throw new O(`Cannot find chain properties for ${i}`);return r},getChainsProperties(){return s},getChainDecimalsByType(i){return Ts[i]}}})();g();y();f();import Is from"axios";g();y();f();var Oi="3.21.0-alpha.1";g();y();f();g();y();f();import{Big as N}from"big.js";import Dr from"bn.js";g();y();f();function Wr(s,i){return N(100).minus(N(100).times(i).div(s)).toNumber()}function kt(s,i){return gt(s,i,3).round(0,N.roundDown)}function Me(s,i){return gt(s,3,i)}function gt(s,i,r){let a=N(r).minus(i).toNumber();return N(s).times(rn(a))}function rn(s){return N(10).pow(s)}function z(s,i){return N(s).times(rn(i))}function K(s,i){let r=N(s);return r.eq(0)?N(0):N(r).div(rn(i))}function Be(s){return K(N(s.tokenBalance).minus(s.vUsdBalance).toFixed(),3).div(2).toFixed()}function qe(s,{feeShare:i,decimals:r},a){let o=N(s);if(o.lte(0))return"0";let m=o.times(i),u=o.minus(m),p=kt(u,r),h=N(a.tokenBalance).plus(p),b=et(h,a.aValue,a.dValue);return N(a.vUsdBalance).minus(b).round(0,N.roundDown).toFixed()}function an(s,{feeShare:i,decimals:r},a){let o=N(s);if(o.lte(0))return N(0).toFixed();let m=o.plus(a.vUsdBalance),u=et(m,a.aValue,a.dValue),p=Me(N(a.tokenBalance).minus(u),r),h=N(p).times(i);return N(p).minus(h).round(0,N.roundDown).toFixed()}function Ni(s,i){let r=N(s);if(r.lte(0))return i;let a=r.plus(i.vUsdBalance),o=et(a,i.aValue,i.dValue);return{aValue:i.aValue,dValue:i.dValue,tokenBalance:o.toFixed(0),vUsdBalance:a.toFixed(0)}}function Di(s,{feeShare:i,decimals:r},a){if(N(s).lte(0))return N(0);let o=N(a.vUsdBalance).minus(s);if(o.lte(0))throw new ct;let m=et(o,a.aValue,a.dValue),u=N(m).minus(a.tokenBalance),p=Me(u,r),h=N(i).div(N(1).minus(i)),b=N(p).times(h).round(0,N.roundUp);return N(p).plus(b).round(0,N.roundDown)}function Wi(s,{feeShare:i,decimals:r},a){if(N(s).lte(0))return N(0);let o=N(i).div(N(1).minus(i)),m=N(s).times(o).round(0,N.roundUp),u=N(s).plus(m),p=kt(u,r),h=N(a.tokenBalance).minus(p);if(h.lte(0))throw new ct;let b=et(h,a.aValue,a.dValue);return N(b).minus(a.vUsdBalance).round(0,N.roundDown)}function et(s,i,r){let a=N(4).times(i).times(N(r).minus(s)).minus(r),o=N(r).pow(3),m=a.pow(2),u=N(s).times(N(s).times(m).plus(N(4).times(i).times(o))).sqrt().round(0,N.roundDown),p=N(8).times(i).times(s),h=a.times(s).plus(u).div(p).round(0,N.roundDown);return h.eq(0)?N(0):h.plus(1)}function Ui(s,i,r,a){let o=new Dr(s),m=new Dr(r),u=new Dr(i);return o.mul(m).shrn(a).sub(u).toString()}function Ei(s){return N(s).gt(0)?`${Number(N(s).times(100).toFixed(2)).toLocaleString()}%`:"N/A"}function Gi(s,i,r){let a=N(i).times(r),o=N(i).plus(r),m=N(8).times(s).times(a).times(o),u=a.times(N(16).times(s).minus(4)).div(3),p=m.times(m),h=u.times(u).times(u),b=p.plus(h),S=N(b).sqrt(),C=N(Math.cbrt(+m.plus(S).toFixed())),x=N(Math.cbrt(+m.minus(S).toFixed()));return C.plus(x).toFixed()}g();y();f();var Ur=(u=>(u.OK="OK",u.INVALID="INVALID",u.FORBIDDEN="FORBIDDEN",u.UNINITIALIZED="UNINITIALIZED",u.CONTRACT_ADDRESS="CONTRACT_ADDRESS",u.WRONG_ASSOCIATED_ACCOUNT_OWNER="WRONG_ASSOCIATED_ACCOUNT_OWNER",u))(Ur||{});var tt=(a=>(a[a.ALLBRIDGE=1]="ALLBRIDGE",a[a.WORMHOLE=2]="WORMHOLE",a[a.CCTP=3]="CCTP",a))(tt||{});function Zi(s){return Object.entries(s).reduce((i,r)=>{let a=r[0],o=r[1],m=Bs(a,o);return m&&(i[a]=m),i},{})}function ji(s){let i={};for(let[r,a]of Object.entries(s)){let o=r;for(let m of a.tokens){let u=jt({chainSymbol:o,poolAddress:m.poolAddress}),p=Be(m.poolInfo);i[u]={...m.poolInfo,imbalance:p}}}return i}function Ss(s,i){let{name:r,...a}=s,{poolInfo:o,...m}=i;return{...m,...a,chainName:r}}function Ps(s){switch(s){case"allbridge":return 1;case"wormhole":return 2;case"cctp":return 3;default:return null}}function ws(s){return Object.entries(s).reduce((i,[r,a])=>(i[r]=Cs(a),i),{})}function Cs(s){return Object.entries(s).reduce((i,[r,a])=>{let o=Ps(r);return o&&(i[o]=a),i},{})}function Bs(s,i){let r=Q.getChainsProperties()[s];if(!r)return null;let a={...r,allbridgeChainId:i.chainId,bridgeAddress:i.bridgeAddress,transferTime:ws(i.transferTime),txCostAmount:i.txCostAmount,confirmations:i.confirmations,suiAddresses:i.suiAddresses};return{...a,tokens:i.tokens.map(o=>Ss(a,o))}}function jt(s){return s.chainSymbol+"_"+s.poolAddress}function Vi(s){let i=[];for(let[r,a]of Object.entries(s)){let o=r;for(let m of a.tokens)i.push({chainSymbol:o,poolAddress:m.poolAddress})}return i}function _i(s){let i={};for(let[r,a]of Object.entries(s)){let o=r;for(let[m,u]of Object.entries(a))u.imbalance=Be(u),i[jt({chainSymbol:o,poolAddress:m})]=u}return i}var kn=class{api;constructor(i){this.api=Is.create({baseURL:i.coreApiUrl,headers:{Accept:"application/json",...i.coreApiHeaders,"x-Sdk-Agent":"AllbridgeCoreSDK/"+Oi},params:i.coreApiQueryParams})}async getTokenInfo(){let{data:i}=await this.api.get("/token-info",{params:{filter:"all"}});return{chainDetailsMap:Zi(i),poolInfoMap:ji(i)}}async getPendingInfo(){let{data:i}=await this.api.get("/pending-info");return i}async getGasBalance(i,r){let{data:a}=await this.api.get(`/check/${i}/${r}`);return a}async getTransferStatus(i,r){let{data:a}=await this.api.get(`/chain/${i}/${r}`);return a}async getReceiveTransactionCost(i){let{data:r}=await this.api.post("/receive-fee",i,{headers:{"Content-Type":"application/json"}});return{exchangeRate:r.exchangeRate,fee:r.fee,sourceNativeTokenPrice:r.sourceNativeTokenPrice}}async getPoolInfoMap(i){let r=i instanceof Array?i:[i],{data:a}=await this.api.post("/pool-info",{pools:r},{headers:{"Content-Type":"application/json"}});return _i(a)}};g();y();f();import xn from"timed-cache";var Er=20*1e3,Rs=55*1e3,Fn=class{constructor(i){this.apiClient=i;this.tokenInfoCache=new xn({defaultTtl:Rs}),this.receivedTransactionCache=new xn({defaultTtl:Er}),this.pendingInfoCache=new xn({defaultTtl:Er}),this.gasBalanceCache=new xn({defaultTtl:Er})}tokenInfoCache;pendingInfoCache;gasBalanceCache;receivedTransactionCache;getTokenInfo(){let i="TOKEN_INFO_CACHE_KEY",r=this.tokenInfoCache.get(i);if(r)return r;let a=this.apiClient.getTokenInfo();return this.tokenInfoCache.put(i,a),a}async getGasBalance(i,r){let a=`GAS_BALANCE_${i}_${r}`,o=this.gasBalanceCache.get(a);if(o)return o;let m=this.apiClient.getGasBalance(i,r);return this.gasBalanceCache.put(a,m),m}async getPendingInfo(){let i="PENDING_INFO_CACHE_KEY",r=this.pendingInfoCache.get(i);if(r)return r;let a=this.apiClient.getPendingInfo();return this.pendingInfoCache.put(i,a),a}async getReceiveTransactionCost(i){let r=`RECEIVE_TX_COST_${i.sourceChainId}_${i.destinationChainId}_${i.messenger}`,a=this.receivedTransactionCache.get(r);if(a)return a;let o=await this.apiClient.getReceiveTransactionCost(i);return this.receivedTransactionCache.put(r,o),o}async getTransferStatus(i,r){return this.apiClient.getTransferStatus(i,r)}async getPoolInfoMap(i){return this.apiClient.getPoolInfoMap(i)}};g();y();f();var Mn=class{constructor(i){this.apiClient=i}async getChainDetailsMap(){return(await this.apiClient.getTokenInfo()).chainDetailsMap}async tokens(){let i=await this.getChainDetailsMap();return Object.values(i).flatMap(r=>r.tokens)}async getPendingInfo(){return this.apiClient.getPendingInfo()}async getGasBalance(i,r){return this.apiClient.getGasBalance(i,r)}async getChainDetailsMapAndPoolInfoMap(){return await this.apiClient.getTokenInfo()}async getTransferStatus(i,r){return await this.apiClient.getTransferStatus(i,r)}async getReceiveTransactionCost(i){return await this.apiClient.getReceiveTransactionCost(i)}async getPoolInfoMap(i){return await this.apiClient.getPoolInfoMap(i)}};g();y();f();var On=class{constructor(i,r){this.client=i;this.isStaging=r.coreApiQueryParams?.staging==="true"}isStaging;async getChainDetailsMap(i){let r=await this.client.getChainDetailsMap(),a={};for(let o in r){let m=r[o];m&&(a[o]={...m,tokens:$i(m.tokens,i,this.isStaging)})}return a}async tokens(i){return $i(await this.client.tokens(),i,this.isStaging)}async getPendingInfo(){return this.client.getPendingInfo()}async getGasBalance(i,r){return this.client.getGasBalance(i,r)}async getTransferStatus(i,r){return await this.client.getTransferStatus(i,r)}async getReceiveTransactionCost(i){return await this.client.getReceiveTransactionCost(i)}cachePut(i,r){return this.client.cachePut(i,r)}getPoolInfoByKey(i){return this.client.getPoolInfoByKey(i)}refreshPoolInfo(i){return this.client.refreshPoolInfo(i)}};function $i(s,i,r){return s.filter(a=>r?!0:a.flags[i]).map(vs)}function vs(s){let{flags:i,...r}=s;return r}g();y();f();import ks from"timed-cache";var xs=55*1e3,Nn=class{constructor(i){this.client=i;this.poolInfoCache=new Gr}poolInfoCache;async getChainDetailsMap(){return(await this.client.getChainDetailsMapAndPoolInfoMap()).chainDetailsMap}async tokens(){return await this.client.tokens()}getTransferStatus(i,r){return this.client.getTransferStatus(i,r)}getReceiveTransactionCost(i){return this.client.getReceiveTransactionCost(i)}getPendingInfo(){return this.client.getPendingInfo()}getGasBalance(i,r){return this.client.getGasBalance(i,r)}async getPoolInfoByKey(i){this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap);let r=this.poolInfoCache.get(i);if(r)return r;{let a=await this.client.getPoolInfoMap(i);this.poolInfoCache.putAll(a);let o=a[jt(i)];if(o)return o;throw new O("Cannot find pool info for "+i.poolAddress+" on chain "+i.chainSymbol)}}async refreshPoolInfo(i){let r;if(i)this.poolInfoCache.putAllIfNotExists((await this.client.getChainDetailsMapAndPoolInfoMap()).poolInfoMap),r=await this.client.getPoolInfoMap(i);else{let a=await this.client.getChainDetailsMapAndPoolInfoMap();r=await this.client.getPoolInfoMap(Vi(a.chainDetailsMap))}this.poolInfoCache.putAll(r)}cachePut(i,r){this.poolInfoCache.put(jt(i),r)}},Gr=class{cache;constructor(){this.cache=new ks({defaultTtl:xs})}putAll(i){for(let[r,a]of Object.entries(i))this.cache.put(r,a)}putAllIfNotExists(i){for(let[r,a]of Object.entries(i))this.cache.get(r)||this.cache.put(r,a)}put(i,r){this.cache.put(i,r)}get(i){let r=jt(i);return this.cache.get(r)}};g();y();f();g();y();f();g();y();f();import{TronWeb as bo}from"tronweb";import{Web3 as So}from"web3";g();y();f();import{Big as Ji}from"big.js";async function pe(s,i){return await s.getPoolInfoByKey({chainSymbol:i.chainSymbol,poolAddress:i.poolAddress})}function ee(s){if(Ji(s).lte(0))throw new ot("Amount must be greater than zero")}function ne(s,i,r){let a=Ji(i).toFixed(),[o,m]=a.split(".");if(m&&m.length>r)throw new In(s,m.length,r)}async function Dn(s,i,r){return await Promise.race([s,new Promise((a,o)=>{setTimeout(()=>o(new nn(i)),r)})])}async function Zr(s,i,r,a){if(r<1)throw new Error(`Bad argument: 'maxRetries' must be greater than 0, but ${r} was received.`);let o=0;for(;;)try{return await Dn(s(),i,a)}catch{if(++o>=r)throw new nn(i)}}async function Li(s,i,r,a=1.5,o=!1){let m=[],u=0,p=await s();if(m.push(p),!i(p))return m;let h=new Date(Date.now()+r*1e3).valueOf(),b=1e3,S=b;for(;Date.now()<h;){let C=m[m.length-1];if(C===void 0||!i(C))break;u++,o&&console.info(`Waiting ${b}ms before trying again (bringing the total wait time to ${S}ms so far, of total ${r*1e3}ms)`),await new Promise(B=>setTimeout(B,b)),b=b*a,new Date(Date.now()+b).valueOf()>h&&(b=h-Date.now(),o&&console.info(`was gonna wait too long; new waitTime: ${b}ms`)),S=b+S;let x=await s(C);m.push(x),o&&i(x)&&console.info(`${u}. Called ${s.name}; ${m.length} prev attempts. Most recent: ${JSON.stringify(m[m.length-1],null,2)}`)}return m}g();y();f();import{Big as Vs}from"big.js";g();y();f();var Fs={abi:[{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"uint256",name:"_chainPrecision",type:"uint256"},{internalType:"contract Messenger",name:"_allbridgeMessenger",type:"address"},{internalType:"contract WormholeMessenger",name:"_wormholeMessenger",type:"address"},{internalType:"contract IGasOracle",name:"_gasOracle",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"gas",type:"uint256"}],name:"BridgingFeeFromTokens",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"bridgeTransactionCost",type:"uint256"},{indexed:!1,internalType:"uint256",name:"messageTransactionCost",type:"uint256"}],name:"ReceiveFee",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Received",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"bytes32",name:"sendToken",type:"bytes32"},{indexed:!1,internalType:"bytes32",name:"receiveToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"sendAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receiveAmount",type:"uint256"}],name:"Swapped",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{indexed:!1,internalType:"bytes32",name:"message",type:"bytes32"}],name:"TokensReceived",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"receiveToken",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"}],name:"TokensSent",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"addBridgeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract Pool",name:"pool",type:"address"},{internalType:"bytes32",name:"token",type:"bytes32"}],name:"addPool",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"canSwap",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"gasUsage",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"address",name:"tokenAddress",type:"address"}],name:"getBridgingCostInTokens",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"getMessageCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"getMessageGasUsage",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"getTransactionCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"message",type:"bytes32"},{internalType:"enum MessengerProtocol",name:"protocol",type:"uint8"}],name:"hasReceivedMessage",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"message",type:"bytes32"}],name:"hasSentMessage",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"}],name:"hashMessage",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"otherBridgeTokens",outputs:[{internalType:"bool",name:"isSupported",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"otherBridges",outputs:[{internalType:"bytes32",name:"bridgeAddress",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"tokenId",type:"bytes32"}],name:"pools",outputs:[{internalType:"contract Pool",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"processedMessages",outputs:[{internalType:"uint256",name:"isProcessed",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"uint256",name:"receiveAmountMin",type:"uint256"}],name:"receiveTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"bridgeAddress",type:"bytes32"}],name:"registerBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_chainId",type:"uint256"},{internalType:"bytes32",name:"tokenAddress",type:"bytes32"}],name:"removeBridgeToken",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"messageHash",type:"bytes32"}],name:"sentMessages",outputs:[{internalType:"uint256",name:"isSent",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"contract Messenger",name:"_allbridgeMessenger",type:"address"}],name:"setAllbridgeMessenger",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IGasOracle",name:"_gasOracle",type:"address"}],name:"setGasOracle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"gasAmount",type:"uint256"}],name:"setGasUsage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_rebalancer",type:"address"}],name:"setRebalancer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_stopAuthority",type:"address"}],name:"setStopAuthority",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract WormholeMessenger",name:"_wormholeMessenger",type:"address"}],name:"setWormholeMessenger",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"startSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"stopSwap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"token",type:"bytes32"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint256",name:"receiveAmountMin",type:"uint256"}],name:"swap",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"token",type:"bytes32"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"bytes32",name:"receiveToken",type:"bytes32"},{internalType:"uint256",name:"nonce",type:"uint256"},{internalType:"enum MessengerProtocol",name:"messenger",type:"uint8"},{internalType:"uint256",name:"feeTokenAmount",type:"uint256"}],name:"swapAndBridge",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IERC20",name:"token",type:"address"}],name:"withdrawBridgingFeeInTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawGasTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}]},Xi=Fs;g();y();f();var Ms={abi:[{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"},{internalType:"uint256",name:"chainPrecision_",type:"uint256"},{internalType:"address",name:"tokenAddress",type:"address"},{internalType:"address",name:"cctpMessenger_",type:"address"},{internalType:"address",name:"cctpTransmitter_",type:"address"},{internalType:"contract IGasOracle",name:"gasOracle_",type:"address"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ReceivedExtraGas",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"ReceivedGas",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"bytes32",name:"newRecipient",type:"bytes32"}],name:"RecipientReplaced",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"recipientWalletAddress",type:"bytes32"}],name:"TokensSentExtras",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"bytes32",name:"recipient",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"destinationChainId",type:"uint256"},{indexed:!1,internalType:"uint256",name:"nonce",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeFromGas",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeFromTokens",type:"uint256"},{indexed:!1,internalType:"uint256",name:"relayerFee",type:"uint256"},{indexed:!1,internalType:"uint256",name:"receivedRelayerFeeTokenAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"adminFeeTokenAmount",type:"uint256"}],name:"TokensSent",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"adminFeeShareBP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint256",name:"relayerFeeTokenAmount",type:"uint256"}],name:"bridge",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bytes32",name:"recipient",type:"bytes32"},{internalType:"bytes32",name:"recipientWalletAddress",type:"bytes32"},{internalType:"uint256",name:"destinationChainId",type:"uint256"},{internalType:"uint256",name:"relayerFeeTokenAmount",type:"uint256"}],name:"bridgeWithWalletAddress",outputs:[],stateMutability:"payable",type:"function"},{inputs:[],name:"chainId",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes",name:"originalMessage",type:"bytes"},{internalType:"bytes",name:"originalAttestation",type:"bytes"},{internalType:"bytes32",name:"newRecipient",type:"bytes32"}],name:"changeRecipient",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"gasUsage",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"destinationChainId",type:"uint256"}],name:"getBridgingCostInTokens",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"}],name:"getDomainByChainId",outputs:[{internalType:"uint32",name:"",type:"uint32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"}],name:"getTransactionCost",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"sourceChainId",type:"uint256"},{internalType:"uint64",name:"nonce",type:"uint64"}],name:"isMessageProcessed",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"recipient",type:"address"},{internalType:"bytes",name:"message",type:"bytes"},{internalType:"bytes",name:"signature",type:"bytes"}],name:"receiveTokens",outputs:[],stateMutability:"payable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"},{internalType:"uint32",name:"domain",type:"uint32"}],name:"registerBridgeDestination",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"adminFeeShareBP_",type:"uint256"}],name:"setAdminFeeShare",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"contract IGasOracle",name:"gasOracle_",type:"address"}],name:"setGasOracle",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"uint256",name:"gasAmount",type:"uint256"}],name:"setGasUsage",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"chainId_",type:"uint256"}],name:"unregisterBridgeDestination",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"withdrawFeeInTokens",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"withdrawGas",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}]},Yi=Ms;g();y();f();import*as Gn from"@project-serum/anchor";import{PublicKey as ca}from"@solana/web3.js";g();y();f();import*as Te from"@project-serum/anchor";import{PublicKey as Ie}from"@solana/web3.js";async function Le(s,i){return Te.utils.token.associatedAddress({mint:i,owner:s})}async function ft(s){let[i]=await Ie.findProgramAddress([Te.utils.bytes.utf8.encode("config")],s);return i}async function Ki(s,i){let[r]=await Ie.findProgramAddress([Te.utils.bytes.utf8.encode("lock"),Uint8Array.from(s)],i);return r}async function sn(s,i){let[r]=await Ie.findProgramAddress([Te.utils.bytes.utf8.encode("price_v2"),Uint8Array.from([s])],i);return r}async function Vt(s){let i=await ft(s),[r]=await Ie.findProgramAddress([i.toBuffer()],s);return r}async function Hi(s,i){let[r]=await Ie.findProgramAddress([s.toBuffer()],i);return r}async function _t(s,i){let[r]=await Ie.findProgramAddress([Te.utils.bytes.utf8.encode("token"),s.toBytes()],i);return r}async function Qi(s,i,r){let[a]=await Ie.findProgramAddress([Te.utils.bytes.utf8.encode("other_bridge_token"),w.from([s]),i],r);return a}async function jr(s,i){let[r]=await Ie.findProgramAddress([Te.utils.bytes.utf8.encode("chain_bridge"),Uint8Array.from([s])],i);return r}async function Vr(s,i){let[r]=await Ie.findProgramAddress([Te.utils.bytes.utf8.encode("gas_usage"),Uint8Array.from([s])],i);return r}async function zi(s,i){let[r]=await Ie.findProgramAddress([Te.utils.bytes.utf8.encode("sent_message"),s],i);return r}async function _r(s,i,r){let[a]=await Ie.findProgramAddress([Te.utils.bytes.utf8.encode("user_deposit"),i.toBytes(),s.toBytes()],r);return a}async function qi(s,i){let[r]=await Ie.findProgramAddress([Te.utils.bytes.utf8.encode("cctp_bridge"),s.toBytes()],i);return r}async function ea(s,i){let[r]=await Ie.findProgramAddress([Te.utils.bytes.utf8.encode("token"),s.toBytes()],i);return r}function ta(s,i){let[r]=Ie.findProgramAddressSync([Te.utils.bytes.utf8.encode("lock"),i.toBuffer()],s);return r}function na(s,i,r,a){let o=xt("message_transmitter",r),m=xt("token_messenger",a),u=xt("__event_authority",a),p=xt("token_minter",a),h=xt("local_token",a,[i]),b=xt("remote_token_messenger",a,[s.toString()]),S=xt("sender_authority",a);return{messageTransmitterAccount:o,tokenMessenger:m,tokenMessengerEventAuthority:u,tokenMinter:p,localToken:h,remoteTokenMessengerKey:b,authorityPda:S}}function xt(s,i,r=[]){let a=[w.from(Te.utils.bytes.utf8.encode(s))];for(let m of r)typeof m=="string"?a.push(w.from(Te.utils.bytes.utf8.encode(m))):Array.isArray(m)?a.push(w.from(Uint8Array.from(m))):w.isBuffer(m)?a.push(w.from(Uint8Array.from(m))):a.push(w.from(Uint8Array.from(m.toBuffer())));return Ie.findProgramAddressSync(a,i)[0]}g();y();f();import{AnchorProvider as Os}from"@project-serum/anchor";import{Connection as Ns,PublicKey as Ds}from"@solana/web3.js";function yt(s,i){let r=new Ns(s,"confirmed"),a=new Ds(i);return new Os(r,{publicKey:a},{preflightCommitment:"confirmed",commitment:"confirmed"})}g();y();f();import{PublicKey as Ws}from"@solana/web3.js";import{Address as Us}from"@stellar/stellar-sdk";import{Big as At}from"big.js";import aa from"randombytes";import{utils as ra}from"tronweb";function ut(s,i,r){let a;switch(i){case"EVM":{a=ia(s);break}case"SOLANA":{a=new Ws(s).toBuffer();break}case"TRX":{a=Es(s);break}case"SRB":{a=new Us(s).toBuffer();break}case"SUI":{a=ia(s);break}}switch(r){case"EVM":return"0x"+a.toString("hex");case"SOLANA":return Array.from(a);case"TRX":return a;case"SRB":return a.toJSON().data;case"SUI":return"0x"+a.toString("hex")}}function Xe(s){return s.replace(/^0x/i,"")}function sa(s){return w.from(s.replace(/^0x/i,""),"hex")}function ia(s){let r=sa(s);return w.concat([w.alloc(32-r.length,0),r],32)}function Es(s){let i=Wn(s),r=sa(i);return Gs(r,32)}function Wn(s){let i=ra.crypto.decodeBase58Address(s);return i?ra.bytes.byteArray2hexStr(i).replace(/^41/,"0x"):""}function Gs(s,i){if(s.length>=i)return s;let r=w.alloc(i,0);return s.copy(r,i-s.length),r}function Un(){return aa(32)}function nt(){let s=aa(32).readBigInt64BE();return s<0?s*-1n:s}function rt(s,i){let r={},a=i.sourceToken;if(r.amount=z(i.amount,a.decimals).toFixed(),r.contractAddress=a.bridgeAddress,r.fromAccountAddress=i.fromAccountAddress,s==="SUI"){if(!a.originTokenAddress)throw new O("SUI sourceToken must contain 'originTokenAddress'");r.fromTokenAddress=a.originTokenAddress}else r.fromTokenAddress=ut(a.tokenAddress,s,s);if(r.toAccountAddress=i.toAccountAddress,s==="SUI"){if(!i.destinationToken.originTokenAddress)throw new O("SUI destinationToken must contain 'originTokenAddress'");r.toTokenAddress=i.destinationToken.originTokenAddress}else r.toTokenAddress=ut(i.destinationToken.tokenAddress,s,s);return r.minimumReceiveAmount=i.minimumReceiveAmount?z(i.minimumReceiveAmount,i.destinationToken.decimals).toFixed():"0",r}async function Ye(s,i,r){let a={};a.fromChainId=i.sourceToken.allbridgeChainId,a.fromChainSymbol=i.sourceToken.chainSymbol;let o=Q.getChainProperty(i.destinationToken.chainSymbol).chainType;if(s==="SUI"){if(!i.sourceToken.originTokenAddress)throw new O("SUI token must contain 'originTokenAddress'");a.fromTokenAddress=i.sourceToken.originTokenAddress}else a.fromTokenAddress=i.sourceToken.tokenAddress;a.toChainId=i.destinationToken.allbridgeChainId,a.toTokenAddress=i.destinationToken.tokenAddress,i.gasFeePaymentMethod==="stablecoin"?a.gasFeePaymentMethod="stablecoin":a.gasFeePaymentMethod="native";let m=i.sourceToken;if(i.messenger===3){if(!m.cctpAddress||!i.destinationToken.cctpAddress)throw new Je("Such route does not support CCTP protocol");a.contractAddress=m.cctpAddress}else a.contractAddress=m.bridgeAddress;a.messenger=i.messenger,a.fromAccountAddress=i.fromAccountAddress,a.amount=z(i.amount,m.decimals).toFixed();let{fee:u,feeFormat:p}=i;if(!u){let C=(await $r(a.fromChainId,i.sourceToken.chainType,a.toChainId,m.decimals,a.messenger,r))[a.gasFeePaymentMethod];if(!C)throw new en;u=C.int,p="int"}if(p=="float")switch(a.gasFeePaymentMethod){case"native":a.fee=z(u,Q.getChainDecimalsByType(m.chainType)).toFixed(0);break;case"stablecoin":a.fee=z(u,m.decimals).toFixed(0);break}else a.fee=u;let{extraGas:h,extraGasFormat:b}=i;if(h&&+h>0){if(b=="float")switch(a.gasFeePaymentMethod){case"native":a.extraGas=z(h,Q.getChainDecimalsByType(m.chainType)).toFixed(0);break;case"stablecoin":a.extraGas=z(h,m.decimals).toFixed(0);break}else a.extraGas=h;await js(a.extraGas,a.gasFeePaymentMethod,m,i.destinationToken,r)}return s!=="SUI"&&(a.fromTokenAddress=ut(a.fromTokenAddress,s,s)),a.toAccountAddress=ut(i.toAccountAddress,o,s),a.toTokenAddress=ut(a.toTokenAddress,o,s),a.gasFeePaymentMethod=="stablecoin"&&Zs(a.amount,m.decimals,a.fee,a.extraGas),a}function Zs(s,i,r,a){let o=At(s).minus(r).minus(a??0);if(o.lte(0))throw new Gt(`Amount not enough to pay fee, ${K(At(o).minus(1).neg(),i).toFixed()} stables is missing`)}async function $r(s,i,r,a,o,m){let u=await m.getReceiveTransactionCost({sourceChainId:s,destinationChainId:r,messenger:o}),p={native:{int:u.fee,float:K(u.fee,Q.getChainDecimalsByType(i)).toFixed()}};if(u.sourceNativeTokenPrice){let h=gt(new At(u.fee).mul(u.sourceNativeTokenPrice),Q.getChainDecimalsByType(i),a).toFixed(0,At.roundUp);p.stablecoin={int:h,float:K(h,a).toFixed()}}return p}async function js(s,i,r,a,o){let u=(await Jr(r,a,o)).extraGasMax[i];if(!u)throw new en(`Impossible to pay extra gas by '${i}' payment method`);let p=u.int;if(At(s).gt(p))throw new Bn(`Extra gas ${s} in int format, exceeded limit ${p} for '${i}' payment method`)}async function Jr(s,i,r){let a={},o=await r.getReceiveTransactionCost({sourceChainId:s.allbridgeChainId,destinationChainId:i.allbridgeChainId,messenger:1}),m=i.txCostAmount.maxAmount,u=K(m,Q.getChainDecimalsByType(i.chainType)).toFixed(),p=At(u).div(o.exchangeRate).toFixed(Q.getChainDecimalsByType(s.chainType),At.roundDown),h=z(p,Q.getChainDecimalsByType(s.chainType)).toFixed(0);if(a.native={int:h,float:p},o.sourceNativeTokenPrice){let b=At(p).mul(o.sourceNativeTokenPrice).toFixed(s.decimals,At.roundDown);a.stablecoin={int:z(b,s.decimals).toFixed(0),float:b}}return{extraGasMax:a,destinationChain:{gasAmountMax:{int:m,float:u},swap:{int:i.txCostAmount.swap,float:K(i.txCostAmount.swap,Q.getChainDecimalsByType(i.chainType)).toFixed()},transfer:{int:i.txCostAmount.transfer,float:K(i.txCostAmount.transfer,Q.getChainDecimalsByType(i.chainType)).toFixed()}},exchangeRate:o.exchangeRate,sourceNativeTokenPrice:o.sourceNativeTokenPrice}}function oa(s){return s.sourceToken.chainSymbol!==s.destinationToken.chainSymbol}async function Zn(s,i,r,a){let o,m=new ca(i),u=new ca(r),p=await Le(m,u),h=yt(a,i);Gn.setProvider(h);let b=await Gn.Spl.token(h).account.token.fetchNullable(p);if(b?.authority.equals(m))o=ut(p.toBase58(),"SOLANA",s);else{let S=await h.connection.getTokenAccountsByOwner(m,{mint:u});if(S.value.length===0&&!b)o=ut(p.toBase58(),"SOLANA",s);else if(S.value.length>0){let C=S.value[0];if(!C?.pubkey)throw new O("First token account or its public key is undefined");o=ut(C.pubkey.toBase58(),"SOLANA",s)}else throw new O("Associated account has wrong owner")}return o}g();y();f();g();y();f();var Oe=class{};var on=class extends Oe{constructor(r,a,o){super();this.web3=r;this.api=a;this.nodeRpcUrlsConfig=o}chainType="EVM";async send(r){let a=await this.buildRawTransactionSend(r);return this.sendRawTransaction(a)}async buildRawTransactionSwap(r){let a=rt(this.chainType,r);return await this.buildRawTransactionSwapFromParams(a)}async buildRawTransactionSwapFromParams(r){let{amount:a,contractAddress:o,fromAccountAddress:m,fromTokenAddress:u,toAccountAddress:p,toTokenAddress:h,minimumReceiveAmount:b}=r,C=this.getBridgeContract(o).methods.swap(a,u,h,p,b);return Promise.resolve({from:m,to:o,data:C.encodeABI()})}async buildRawTransactionSend(r){let a=await Ye(this.chainType,r,this.api),{amount:o,contractAddress:m,fromAccountAddress:u,fromTokenAddress:p,toChainId:h,toAccountAddress:b,toTokenAddress:S,messenger:C,fee:x,gasFeePaymentMethod:B,extraGas:R}=a,M="0x"+Un().toString("hex"),F,W,D=x;if(R&&(D=Vs(D).plus(R).toFixed()),C===3){let U=await this.buildRawTransactionCctpSend(r,a,D);F=U.sendMethod,W=U.value}else{let U=this.getBridgeContract(m);B==="stablecoin"?(F=U.methods.swapAndBridge(p,o,b,h,S,M,C,D),W="0"):(F=U.methods.swapAndBridge(p,o,b,h,S,M,C,0),W=D)}return Promise.resolve({from:u,to:m,value:W,data:F.encodeABI()})}async buildRawTransactionCctpSend(r,a,o){let{amount:m,contractAddress:u,toChainId:p,toAccountAddress:h,gasFeePaymentMethod:b}=a,S=this.getCctpBridgeContract(u),C,x;if(r.destinationToken.chainType==="SOLANA"){let B=await Zn(this.chainType,r.toAccountAddress,r.destinationToken.tokenAddress,this.nodeRpcUrlsConfig.getNodeRpcUrl("SOL"));b==="stablecoin"?(C=S.methods.bridgeWithWalletAddress(m,B,h,p,o),x="0"):(C=S.methods.bridgeWithWalletAddress(m,B,h,p,0),x=o)}else b==="stablecoin"?(C=S.methods.bridge(m,h,p,o),x="0"):(C=S.methods.bridge(m,h,p,0),x=o);return{sendMethod:C,value:x}}async sendRawTransaction(r){let a=await this.web3.eth.estimateGas(r),o={maxPriorityFeePerGas:null,maxFeePerGas:null},{transactionHash:m}=await this.web3.eth.sendTransaction({...r,gas:a,...o});return{txId:m.toString()}}getBridgeContract(r){return new this.web3.eth.Contract(Xi.abi,r)}getCctpBridgeContract(r){return new this.web3.eth.Contract(Yi.abi,r)}};g();y();f();var jn=class{constructor(i,r,a,o){this.api=i;this.nodeRpcUrlsConfig=r;this.params=a;this.tokenService=o}async approve(i,r){let a,o;r?(a=i,o=r):o=i;let m=cn(o.token,o.messenger);return this.tokenService.buildRawTransactionApprove({...o,spender:m},a)}async send(i,r){return ee(i.amount),ne("amount",i.amount,i.sourceToken.decimals),oa(i)?Vn(i.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,r).buildRawTransactionSend(i):Vn(i.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,r).buildRawTransactionSwap(i)}};g();y();f();import{BN as Lt,Program as Yr,Spl as zs,web3 as ht}from"@project-serum/anchor";import{Keypair as ba,PublicKey as re,SystemProgram as qs}from"@solana/web3.js";import{Big as Ke}from"big.js";g();y();f();var An={version:"0.1.0",name:"bridge",instructions:[{name:"initialize",accounts:[{name:"admin",isMut:!0,isSigner:!0},{name:"config",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"InitializeArgs"}}]},{name:"initializePool",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"token",isMut:!0,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"InitializePoolArgs"}}]},{name:"initDepositAccount",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"deposit",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"}]},{name:"withdraw",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"amountLp",type:"u64"}]},{name:"swapAndBridge",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"lock",isMut:!0,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1},{name:"otherBridgeToken",isMut:!0,isSigner:!1},{name:"messenger",isMut:!1,isSigner:!1},{name:"messengerConfig",isMut:!0,isSigner:!1},{name:"sentMessageAccount",isMut:!0,isSigner:!1},{name:"messengerGasUsage",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"gasPrice",isMut:!1,isSigner:!1},{name:"thisGasPrice",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"BridgeArgs"}}]},{name:"swapAndBridgeWormhole",accounts:[{name:"user",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"lock",isMut:!0,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1},{name:"otherBridgeToken",isMut:!0,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"gasPrice",isMut:!1,isSigner:!1},{name:"thisGasPrice",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"wormholeMessenger",isMut:!1,isSigner:!1},{name:"wormholeMessengerConfig",isMut:!0,isSigner:!1},{name:"wormholeProgram",isMut:!1,isSigner:!1},{name:"bridge",isMut:!0,isSigner:!1},{name:"message",isMut:!0,isSigner:!0},{name:"sequence",isMut:!0,isSigner:!1},{name:"feeCollector",isMut:!0,isSigner:!1},{name:"messengerGasUsage",isMut:!1,isSigner:!1},{name:"clock",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"BridgeArgs"}}]},{name:"swap",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"sendMint",isMut:!1,isSigner:!1},{name:"receiveMint",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1},{name:"sendPool",isMut:!0,isSigner:!1},{name:"receivePool",isMut:!0,isSigner:!1},{name:"sendBridgeToken",isMut:!0,isSigner:!1},{name:"receiveBridgeToken",isMut:!0,isSigner:!1},{name:"sendUserToken",isMut:!0,isSigner:!1},{name:"receiveUserToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[{name:"amount",type:"u64"},{name:"receiveAmountMin",type:"u64"}]},{name:"registerChainBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RegisterChainBridgeArgs"}}]},{name:"updateChainBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateChainBridgeArgs"}}]},{name:"receiveAndSwap",accounts:[{name:"user",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"receivedMessageAccount",isMut:!1,isSigner:!1},{name:"unlock",isMut:!0,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"messengerProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UnlockArgs"}}]},{name:"receiveAndSwapWormhole",accounts:[{name:"user",isMut:!0,isSigner:!1},{name:"payer",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"receivedMessageAccount",isMut:!1,isSigner:!1},{name:"unlock",isMut:!0,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"messengerProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"UnlockArgs"}}]},{name:"withdrawGasToken",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"recipient",isMut:!0,isSigner:!1},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"amount",type:"u64"}]},{name:"claimRewards",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setAdmin",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"newAdmin",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1}],args:[]},{name:"startBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"actionType",type:{defined:"ActionType"}}]},{name:"stopBridge",accounts:[{name:"stopAuthority",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"actionType",type:{defined:"ActionType"}}]},{name:"setRebalancer",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1},{name:"rebalancer",isMut:!1,isSigner:!1}],args:[]},{name:"setStopAuthority",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"newAuthority",isMut:!1,isSigner:!1},{name:"config",isMut:!0,isSigner:!1}],args:[]},{name:"setAllbridgeMessengerProgramId",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]},{name:"setWormholeMessengerProgramId",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]},{name:"setGasOracleProgramId",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]},{name:"setPoolFeeShare",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1}],args:[{name:"feeShareBp",type:"u64"}]},{name:"setBalanceRatioMin",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1}],args:[{name:"balanceRatioMinBp",type:"u16"}]},{name:"setPoolAdminFeeShare",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1}],args:[{name:"feeShareBp",type:"u64"}]},{name:"addOtherBridgeToken",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!1,isSigner:!1},{name:"otherBridgeToken",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"chainId",type:"u8"},{name:"tokenAddress",type:{array:["u8",32]}}]},{name:"removeOtherBridgeToken",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"config",isMut:!0,isSigner:!1},{name:"otherBridgeToken",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"chainId",type:"u8"},{name:"tokenAddress",type:{array:["u8",32]}}]},{name:"withdrawAdminFee",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"adminToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"adjustTotalLpAmount",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"config",isMut:!1,isSigner:!1},{name:"pool",isMut:!0,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"userDeposit",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1}],args:[]}],accounts:[{name:"chainBridge",type:{kind:"struct",fields:[{name:"address",type:{array:["u8",32]}},{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"}]}},{name:"config",type:{kind:"struct",fields:[{name:"admin",type:"publicKey"},{name:"allbridgeMessengerProgramId",type:"publicKey"},{name:"wormholeMessengerProgramId",type:"publicKey"},{name:"gasOracleProgramId",type:"publicKey"},{name:"rebalancer",type:"publicKey"},{name:"stopAuthority",type:"publicKey"},{name:"authorityBumpSeed",type:"u8"},{name:"canSwap",type:"bool"},{name:"canDeposit",type:"bool"},{name:"canWithdraw",type:"bool"}]}},{name:"lock",type:{kind:"struct",fields:[{name:"sender",type:"publicKey"},{name:"sentTokenAddress",type:"publicKey"},{name:"amount",type:"u64"},{name:"vusdAmount",type:"u64"},{name:"recipient",type:{array:["u8",32]}},{name:"destinationChainId",type:"u8"},{name:"receiveToken",type:{array:["u8",32]}},{name:"nonce",type:{array:["u8",32]}},{name:"messenger",type:{defined:"Messenger"}},{name:"slot",type:"u64"},{name:"fee",type:"u64"}]}},{name:"otherBridgeToken",type:{kind:"struct",fields:[]}},{name:"pool",type:{kind:"struct",fields:[{name:"mint",type:"publicKey"},{name:"a",type:"u64"},{name:"d",type:"u64"},{name:"tokenBalance",type:"u64"},{name:"vUsdBalance",type:"u64"},{name:"reserves",type:"u64"},{name:"decimals",type:"u8"},{name:"totalLpAmount",type:"u64"},{name:"feeShareBp",type:"u64"},{name:"adminFeeShareBp",type:"u64"},{name:"accRewardPerShareP",type:"u128"},{name:"adminFeeAmount",type:"u64"},{name:"balanceRatioMinBp",type:"u16"}]}},{name:"unlock",type:{kind:"struct",fields:[{name:"hash",type:{array:["u8",32]}},{name:"amount",type:"u64"},{name:"fee",type:"u64"},{name:"vUsdAmount",type:"u64"},{name:"slot",type:"u64"}]}},{name:"userDeposit",type:{kind:"struct",fields:[{name:"userAddress",type:"publicKey"},{name:"mint",type:"publicKey"},{name:"lpAmount",type:"u64"},{name:"rewardDebt",type:"u64"}]}}],types:[{name:"RegisterChainBridgeArgs",type:{kind:"struct",fields:[{name:"chainBridgeAddress",type:{array:["u8",32]}},{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"}]}},{name:"UpdateChainBridgeArgs",type:{kind:"struct",fields:[{name:"chainBridgeAddress",type:{array:["u8",32]}},{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"}]}},{name:"InitializeArgs",type:{kind:"struct",fields:[{name:"allbridgeMessengerProgramId",type:"publicKey"},{name:"wormholeMessengerProgramId",type:"publicKey"},{name:"gasOracleProgramId",type:"publicKey"}]}},{name:"InitializePoolArgs",type:{kind:"struct",fields:[{name:"a",type:"u64"},{name:"feeShareBp",type:"u64"},{name:"adminFeeShareBp",type:"u64"},{name:"balanceRatioMinBp",type:"u16"}]}},{name:"BridgeArgs",type:{kind:"struct",fields:[{name:"nonce",type:{array:["u8",32]}},{name:"recipient",type:{array:["u8",32]}},{name:"destinationChainId",type:"u8"},{name:"receiveToken",type:{array:["u8",32]}},{name:"vusdAmount",type:"u64"}]}},{name:"UnlockArgs",type:{kind:"struct",fields:[{name:"nonce",type:{array:["u8",32]}},{name:"amount",type:"u64"},{name:"recipient",type:"publicKey"},{name:"sourceChainId",type:"u8"},{name:"receiveToken",type:"publicKey"},{name:"messenger",type:{defined:"Messenger"}},{name:"hash",type:{array:["u8",32]}},{name:"receiveAmountMin",type:"u64"}]}},{name:"RewardError",type:{kind:"enum",variants:[{name:"FeeTooHigh"}]}},{name:"Messenger",type:{kind:"enum",variants:[{name:"None"},{name:"Allbridge"},{name:"Wormhole"}]}},{name:"ActionType",type:{kind:"enum",variants:[{name:"Deposit"},{name:"Withdraw"},{name:"Swap"}]}}],errors:[{code:6e3,name:"AccountAlreadyInitialized",msg:"This account has already been initialized"},{code:6001,name:"AdminAuthorityInvalid",msg:"This instruction requires admin authority"},{code:6002,name:"InvalidSignature",msg:"Provided signature has wrong signer or message"},{code:6003,name:"InvalidHash",msg:"Wrong unlock message hash"},{code:6004,name:"PoolOverflow",msg:"PoolInfo overflow"},{code:6005,name:"ReservesExhausted",msg:"Reserves exhausted"},{code:6006,name:"ZeroAmount",msg:"Zero amount"},{code:6007,name:"ZeroChanges",msg:"Zero changes"},{code:6008,name:"HighVusdAmount",msg:"vUSD amount is too high"},{code:6009,name:"BalanceRatioExceeded",msg:"Balance ratio exceeded"},{code:6010,name:"InsufficientReceivedAmount",msg:"Received insufficient amount"},{code:6011,name:"ForbiddenAction",msg:"ForbiddenAction"},{code:6012,name:"ValueTooHigh",msg:"Value is too high"}]};g();y();f();var Aa={version:"0.1.0",name:"cctp_bridge",instructions:[{name:"initialize",accounts:[{name:"payer",isMut:!0,isSigner:!0},{name:"admin",isMut:!0,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"rent",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"InitializeArgs"}}]},{name:"bridge",accounts:[{name:"user",isMut:!0,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"messageSentEventData",isMut:!0,isSigner:!0},{name:"lock",isMut:!0,isSigner:!1},{name:"mint",isMut:!0,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1},{name:"cctpMessenger",isMut:!1,isSigner:!1},{name:"messageTransmitterProgram",isMut:!1,isSigner:!1},{name:"messageTransmitterAccount",isMut:!0,isSigner:!1},{name:"tokenMessenger",isMut:!1,isSigner:!1},{name:"tokenMinter",isMut:!1,isSigner:!1},{name:"localToken",isMut:!0,isSigner:!1},{name:"remoteTokenMessengerKey",isMut:!1,isSigner:!1},{name:"authorityPda",isMut:!1,isSigner:!1},{name:"eventAuthority",isMut:!1,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"gasPrice",isMut:!1,isSigner:!1},{name:"thisGasPrice",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!1,isSigner:!1},{name:"userToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"BridgeArgs"}}]},{name:"registerChainBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"payer",isMut:!0,isSigner:!0},{name:"cctpBridge",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!0,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[{name:"args",type:{defined:"RegisterChainBridgeArgs"}}]},{name:"updateChainBridge",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"cctpBridge",isMut:!1,isSigner:!1},{name:"chainBridge",isMut:!0,isSigner:!1}],args:[{name:"args",type:{defined:"UpdateChainBridgeArgs"}}]},{name:"setAdminFeeShare",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1}],args:[{name:"feeShareBp",type:"u64"}]},{name:"setGasOracleProgramId",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]},{name:"withdrawGasToken",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"recipient",isMut:!0,isSigner:!1},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1}],args:[{name:"amount",type:"u64"}]},{name:"withdrawAdminFee",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!1,isSigner:!1},{name:"bridgeToken",isMut:!0,isSigner:!1},{name:"adminToken",isMut:!0,isSigner:!1},{name:"bridgeAuthority",isMut:!1,isSigner:!1},{name:"tokenProgram",isMut:!1,isSigner:!1},{name:"systemProgram",isMut:!1,isSigner:!1}],args:[]},{name:"setCctpTokenMessengerMinter",accounts:[{name:"admin",isMut:!1,isSigner:!0},{name:"mint",isMut:!1,isSigner:!1},{name:"cctpBridge",isMut:!0,isSigner:!1}],args:[{name:"newProgramId",type:"publicKey"}]}],accounts:[{name:"cctpBridge",type:{kind:"struct",fields:[{name:"mint",type:"publicKey"},{name:"admin",type:"publicKey"},{name:"cctpTokenMessengerMinter",type:"publicKey"},{name:"gasOracleProgramId",type:"publicKey"},{name:"authorityBumpSeed",type:"u8"},{name:"adminFeeShareBp",type:"u64"},{name:"adminFeeAmount",type:"u64"}]}},{name:"chainBridge",type:{kind:"struct",fields:[{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"},{name:"domain",type:"u32"}]}},{name:"lock",type:{kind:"struct",fields:[{name:"sender",type:"publicKey"},{name:"amount",type:"u64"},{name:"adminFee",type:"u64"},{name:"relayerFee",type:"u64"},{name:"recipient",type:{array:["u8",32]}},{name:"destinationChainId",type:"u8"},{name:"slot",type:"u64"}]}}],types:[{name:"RegisterChainBridgeArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"},{name:"domain",type:"u32"},{name:"mint",type:"publicKey"}]}},{name:"UpdateChainBridgeArgs",type:{kind:"struct",fields:[{name:"chainId",type:"u8"},{name:"gasUsage",type:"u64"},{name:"domain",type:"u32"},{name:"mint",type:"publicKey"}]}},{name:"BridgeArgs",type:{kind:"struct",fields:[{name:"recipient",type:{array:["u8",32]}},{name:"destinationChainId",type:"u8"},{name:"receiveToken",type:{array:["u8",32]}},{name:"amount",type:"u64"}]}},{name:"InitializeArgs",type:{kind:"struct",fields:[{name:"gasOracleProgramId",type:"publicKey"},{name:"cctpTokenMessengerMinter",type:"publicKey"}]}}],errors:[{code:6e3,name:"ValueTooHigh",msg:"Value is too high"}]};g();y();f();import{Spl as _s}from"@project-serum/anchor";import $s from"big.js";import{Web3 as _n}from"web3";async function $t(s,i){return await _s.token(i).account.token.fetch(s)}async function ua(s,i,r){let a=await i.account.pool.fetch(r),o=a.decimals,m=$s(a.feeShareBp.toString()).div(1e4).toFixed(),u={aValue:a.a.toString(),dValue:a.d.toString(),totalLpAmount:a.totalLpAmount.toString(),tokenBalance:a.tokenBalance.toString(),vUsdBalance:a.vUsdBalance.toString(),accRewardPerShareP:a.accRewardPerShareP.toString()};return qe(s,{decimals:o,feeShare:m},u)}function ma(s){let i=s.amount,r="0x"+s.recipient.toString("hex"),a=s.sourceChainId,o=s.destinationChainId,m="0x"+s.receiveToken.toString("hex"),u="0x"+s.nonce.toString("hex"),p=1,h="0x"+s.chainBridge.toString("hex"),b=_n.utils.encodePacked({t:"uint256",v:i},{t:"bytes32",v:r},{t:"uint256",v:a},{t:"bytes32",v:m},{t:"uint256",v:u},{t:"uint8",v:p});if(!b)throw new O("message cannot be undefined");let S=_n.utils.keccak256(w.from(b.replace("0x",""),"hex")),C=w.from(S.replace("0x",""),"hex");C[0]=a,C[1]=o;let x=_n.utils.encodePacked({t:"bytes32",v:"0x"+C.toString("hex")},{t:"bytes32",v:h});if(!x)throw new Zt("messageWithSigner cannot be undefined");let B=_n.utils.keccak256(w.from(x.replace("0x",""),"hex")),R=w.from(B.replace("0x",""),"hex");return R[0]=C[0],R[1]=C[1],R}g();y();f();import{ComputeBudgetInstruction as da,ComputeBudgetProgram as $n,Connection as pa,TransactionMessage as Js}from"@solana/web3.js";import{Big as Ls}from"big.js";g();y();f();import{AddressLookupTableAccount as la}from"@solana/web3.js";async function Mt(s,i){return await Promise.all(s.message.addressTableLookups.map(async r=>new la({key:r.accountKey,state:la.deserialize(await i.getAccountInfo(r.accountKey).then(a=>{if(!a)throw new O("Cannot get AccountInfo");return a.data}))})))}g();y();f();g();y();f();var Lr="AUTO";async function Jt(s,i,r){let a=new pa(r,"confirmed"),o=(await a.simulateTransaction(s)).value.unitsConsumed;await fa(s.instructions,o,i,a)}async function ga(s,i,r){let a=new pa(r,"confirmed"),o=await Mt(s,a),m=Js.decompile(s.message,{addressLookupTableAccounts:o});if(s.serialize().length>1232)throw new vn;await fa(m.instructions,769230,i,a),s.message=m.compileToV0Message(o)}async function fa(s,i,r,a){if(i>0){let o=Xs(i,s);if(r?.solana){let m=r.solana;if(m===Lr)await Xr(s,a);else if("pricePerUnitInMicroLamports"in m)await Xr(s,a,m.pricePerUnitInMicroLamports);else{let u=Ls(m.extraFeeInLamports).div(o).mul(rn(6)).toFixed(0);await Xr(s,a,u)}}}}function Xs(s,i){let r=i.findIndex(m=>m.programId.equals($n.programId)&&da.decodeInstructionType(m)==="SetComputeUnitLimit"),a=Number((s*1.3).toFixed(0)),o=$n.setComputeUnitLimit({units:a});return r>=0?i[r]=o:i.push(o),a.toString()}async function Xr(s,i,r){let a=s.findIndex(u=>u.programId.equals($n.programId)&&da.decodeInstructionType(u)==="SetComputeUnitPrice"),o=BigInt(r||await Ys(i)),m=$n.setComputeUnitPrice({microLamports:o});return a>=0?s[a]=m:s.push(m),o.toString()}async function Ys(s){let i=await s.getRecentPrioritizationFees(),r=0;for(let a of i)r+=a.prioritizationFee;return(r/i.length).toFixed(0)}g();y();f();import{NATIVE_MINT as Ks}from"@solana/spl-token";import{Connection as Hs,TransactionMessage as ya,VersionedTransaction as Qs}from"@solana/web3.js";import ha,{AxiosError as Ta}from"axios";var Jn=class{connection;jupiterUrl;maxAccounts;constructor(i,r,a){this.connection=new Hs(i),this.jupiterUrl=r.replace(/\/$/,""),this.maxAccounts=a}async getJupiterSwapTx(i,r,a,o){let m;try{let C=o?"ExactOut":"ExactIn",x=`${this.jupiterUrl}/quote?inputMint=${r}&outputMint=${Ks.toString()}&amount=${a}&swapMode=${C}&slippageBps=100&onlyDirectRoutes=true`;this.maxAccounts&&(x+=`&maxAccounts=${this.maxAccounts}`),m=await ha.get(x)}catch(C){throw C instanceof Ta&&C.response&&C.response.data&&C.response.data.error?new ye(C.response.data.error):new ye("Cannot get route")}let u;if(o&&m?.data?.inAmount)u=m.data.inAmount;else if(o)throw new ye("Cannot get inAmount");let p;try{p=await ha.post(`${this.jupiterUrl}/swap`,{quoteResponse:m.data,userPublicKey:i,wrapAndUnwrapSol:!0})}catch(C){throw C instanceof Ta&&C.response&&C.response.data&&C.response.data.error?new ye(C.response.data.error):new ye("Cannot get swap transaction")}let h;if(p?.data?.swapTransaction)h=p.data.swapTransaction;else throw new ye("Cannot get swap transaction");let b=w.from(h,"base64"),S=Qs.deserialize(b);return o?{tx:S,amountIn:u}:{tx:S}}async amendJupiterWithSdkTx(i,r){try{let a=await Mt(i,this.connection),o=await Mt(r,this.connection),m=ya.decompile(i.message,{addressLookupTableAccounts:a}),u=ya.decompile(r.message,{addressLookupTableAccounts:o});if(u.instructions.shift(),m.instructions.push(...u.instructions),a.push(...o),i.message=m.compileToV0Message(a),r.message.header.numRequiredSignatures===2&&i.signatures.length===1){let p=r.signatures[0];if(!p)throw new O("Signature is undefined");i.signatures.push(p)}return i}catch(a){throw a instanceof Error&&a.message?new ye(`Some error occurred during creation final swap and bridge transaction. ${a.message}`):new ye("Some error occurred during creation final swap and bridge transaction")}}};var Kr=1e6,Sa=1.1,Ln=class extends Oe{constructor(r,a,o){super();this.solanaRpcUrl=r;this.params=a;this.api=o;this.jupiterService=new Jn(r,a.jupiterUrl,a.jupiterMaxAccounts)}chainType="SOLANA";jupiterService;async buildRawTransactionSwap(r){let a=rt(this.chainType,r);return await this.buildSwapTransaction(a,r.sourceToken.poolAddress,r.destinationToken.poolAddress,r.txFeeParams)}async buildSwapTransaction(r,a,o,m){let{fromAccountAddress:u,amount:p,contractAddress:h,fromTokenAddress:b,toTokenAddress:S,toAccountAddress:C,minimumReceiveAmount:x}=r,B=u,R=h,M=b,F=S,W=o,D=C,U=new re(B),Y=yt(this.solanaRpcUrl,U.toString()),j=new Yr(An,R,Y),X=await Vt(j.programId),Pe=await ft(j.programId),Ae=new re(M),We=await _t(Ae,j.programId),Ue=new re(a),_e=await Le(U,Ae),ke=new re(D),ge=new re(F),we=await _t(ge,j.programId),xe=new re(W),Ce=await Le(ke,ge),Ee=[ht.ComputeBudgetProgram.setComputeUnitLimit({units:Kr})];try{await $t(Ce,Y)}catch{let Sn=await zs.associatedToken(Y).methods.create().accounts({mint:ge,owner:ke,associatedAccount:Ce}).instruction();Ee.push(Sn)}let Ge=await j.methods.swap(new Lt(p),new Lt(x||0)).accounts({payer:U,config:Pe,bridgeAuthority:X,user:U,sendBridgeToken:We,sendMint:Ae,sendPool:Ue,sendUserToken:_e,receiveBridgeToken:we,receiveMint:ge,receivePool:xe,receiveUserToken:Ce}).preInstructions(Ee).transaction(),Fe=Y.connection;return Ge.recentBlockhash=(await Fe.getLatestBlockhash()).blockhash,Ge.feePayer=U,await Jt(Ge,m,this.solanaRpcUrl),await this.convertToVersionedTransaction(Ge,Fe)}async buildRawTransactionSend(r){let a=await Ye(this.chainType,r,this.api),o=this.addPoolAddress(r,a),m=o.gasFeePaymentMethod=="stablecoin",u;if(m)try{let{tx:b,solTxSendUpdatedParams:S}=await this.processJup(o,r,!0);u=b,o={...o,...S}}catch{try{let{tx:S,solTxSendUpdatedParams:C}=await this.processJup(o,r,!1);u=S,o={...o,...C}}catch(S){throw S instanceof me?S:S instanceof Error&&S.message?new ye(`Some error occurred during creation Jupiter swap transaction. ${S.message}`):new ye("Some error occurred during creation Jupiter swap transaction")}}let p,h;switch(a.messenger){case 1:{let b=await this.prepareSwapAndBridgeData(o);p=await this.buildSwapAndBridgeAllbridgeTransaction(b);break}case 2:{let b=await this.prepareSwapAndBridgeData(o),{transaction:S,messageAccount:C}=await this.buildSwapAndBridgeWormholeTransaction(b);p=S,h=C;break}case 3:{let b=await this.prepareSwapAndBridgeCctpData(o),{transaction:S,messageSentEventDataKeypair:C}=await this.buildSwapAndBridgeCctpTransaction(r.destinationToken.chainSymbol,b);p=S,h=C;break}}if(m){if(!u)throw new ye("Swap tx is absent");p=await this.jupiterService.amendJupiterWithSdkTx(u,p)}return await ga(p,r.txFeeParams,this.solanaRpcUrl),h&&p.sign([h]),p}async processJup(r,a,o){let{fee:m,extraGas:u,gasFeePaymentMethod:p}=await this.convertStableCoinFeeAndExtraGasToNativeCurrency(a.sourceToken.decimals,r),h=o?Ke(m):Ke(r.fee);u&&(h=h.plus(u)),o||(h=h.mul(Sa));let{tx:b,amountIn:S}=await this.jupiterService.getJupiterSwapTx(a.fromAccountAddress,a.sourceToken.tokenAddress,h.toFixed(0),o),C;if(o){if(!S)throw new ye("Cannot get inAmount");C=Ke(r.amount).minus(Ke(S).mul(Sa)).toFixed(0)}else C=Ke(r.amount).minus(h).toFixed(0);if(Ke(C).lte(0))throw new Gt(`Amount not enough to pay fee, ${K(Ke(C).minus(1).neg(),a.sourceToken.decimals).toFixed()} stables is missing`);return{tx:b,solTxSendUpdatedParams:{amount:C,fee:m,extraGas:u,gasFeePaymentMethod:p}}}addPoolAddress(r,a){return{...a,poolAddress:r.sourceToken.poolAddress}}async convertStableCoinFeeAndExtraGasToNativeCurrency(r,a){if(a.gasFeePaymentMethod=="stablecoin"){let o=(await this.api.getReceiveTransactionCost({sourceChainId:a.fromChainId,destinationChainId:a.toChainId,messenger:a.messenger})).sourceNativeTokenPrice,m=Ke(a.fee).div(o).mul(Ke(10).pow(Q.getChainDecimalsByType("SOLANA")-r)).toFixed(0),u;return a.extraGas&&(u=Ke(a.extraGas).div(o).mul(Ke(10).pow(Q.getChainDecimalsByType("SOLANA")-r)).toFixed(0)),{fee:m,extraGas:u,gasFeePaymentMethod:"native"}}return{fee:a.fee,extraGas:a.extraGas,gasFeePaymentMethod:"native"}}getExtraGasInstruction(r,a,o){return ht.SystemProgram.transfer({fromPubkey:a,toPubkey:o,lamports:+r})}async prepareSwapAndBridgeData(r){let{amount:a,contractAddress:o,fromChainId:m,fromAccountAddress:u,fromTokenAddress:p,toChainId:h,toAccountAddress:b,toTokenAddress:S,poolAddress:C,extraGas:x}=r,B=p,R=u,M=h,F=S,W=b,D=o,U=m,Y=yt(this.solanaRpcUrl,R),j=new Yr(An,D,Y),X=Array.from(Un()),Pe=new re(C),Ae=await ua(a,j,Pe),We=await Ki(X,j.programId),Ue=await Vt(j.programId),_e=await Le(new re(R),new re(B)),ke=await _t(new re(B),j.programId),ge=await jr(M,j.programId),we=await Qi(M,w.from(F),j.programId),xe=await ft(j.programId),Ce=await j.account.config.fetch(xe),Ee=await sn(M,Ce.gasOracleProgramId),Ge=await sn(U,Ce.gasOracleProgramId),Fe=ma({amount:Ae,recipient:w.from(W),nonce:w.from(X),receiveToken:w.from(F),destinationChainId:M,sourceChainId:U,chainBridge:(await Vt(j.programId)).toBuffer()}),E={};return E.bridge=j,E.amount=new Lt(a),E.vusdAmount=new Lt(Ae),E.nonce=X,E.recipient=Array.from(W),E.receiveToken=Array.from(F),E.poolAccount=Pe,E.lockAccount=We,E.bridgeAuthority=Ue,E.userToken=_e,E.bridgeTokenAccount=ke,E.chainBridgeAccount=ge,E.otherBridgeTokenAccount=we,E.userAccount=new re(R),E.destinationChainId=M,E.mint=new re(B),E.config=xe,E.configAccountInfo=Ce,E.gasPrice=Ee,E.thisGasPrice=Ge,E.message=Fe,x&&(E.extraGasInstruction=this.getExtraGasInstruction(x,E.userAccount,xe)),E}async buildSwapAndBridgeAllbridgeTransaction(r){let{bridge:a,vusdAmount:o,nonce:m,recipient:u,receiveToken:p,poolAccount:h,lockAccount:b,bridgeAuthority:S,userToken:C,bridgeTokenAccount:x,chainBridgeAccount:B,otherBridgeTokenAccount:R,userAccount:M,destinationChainId:F,mint:W,config:D,configAccountInfo:U,gasPrice:Y,thisGasPrice:j,message:X,extraGasInstruction:Pe}=r,Ae=U.allbridgeMessengerProgramId,We=await Vr(F,Ae),Ue=await ft(Ae),_e=await zi(X,Ae),ke=[];Pe&&ke.push(Pe);let ge=await a.methods.swapAndBridge({vusdAmount:o,nonce:m,destinationChainId:F,recipient:u,receiveToken:p}).accounts({mint:W,user:M,config:D,lock:b,pool:h,gasPrice:Y,thisGasPrice:j,bridgeAuthority:S,userToken:C,bridgeToken:x,chainBridge:B,messenger:Ae,messengerGasUsage:We,messengerConfig:Ue,sentMessageAccount:_e,otherBridgeToken:R}).preInstructions([ht.ComputeBudgetProgram.setComputeUnitLimit({units:Kr})]).postInstructions(ke).transaction(),we=yt(this.solanaRpcUrl,M.toString()).connection;return ge.recentBlockhash=(await we.getLatestBlockhash()).blockhash,ge.feePayer=M,await this.convertToVersionedTransaction(ge,we)}async convertToVersionedTransaction(r,a){let o=await a.getAddressLookupTable(new re(this.params.solanaLookUpTable)).then(u=>u.value);if(!o)throw new O("Cannot find allbridgeLookupTableAccount");let m=new ht.TransactionMessage({payerKey:r.feePayer,recentBlockhash:r.recentBlockhash,instructions:r.instructions}).compileToV0Message([o]);return new ht.VersionedTransaction(m)}async buildSwapAndBridgeWormholeTransaction(r){let{bridge:a,vusdAmount:o,nonce:m,recipient:u,receiveToken:p,poolAccount:h,lockAccount:b,bridgeAuthority:S,userToken:C,bridgeTokenAccount:x,chainBridgeAccount:B,otherBridgeTokenAccount:R,userAccount:M,destinationChainId:F,mint:W,config:D,configAccountInfo:U,gasPrice:Y,thisGasPrice:j,message:X,extraGasInstruction:Pe}=r,Ae=this.params.wormholeMessengerProgramId,[We]=re.findProgramAddressSync([w.from("Bridge")],new re(Ae)),[Ue]=re.findProgramAddressSync([w.from("fee_collector")],new re(Ae)),[_e]=re.findProgramAddressSync([w.from("Sequence"),S.toBuffer()],new re(Ae)),ke=await Vr(F,U.wormholeMessengerProgramId),ge=await ft(U.wormholeMessengerProgramId),we=ba.generate(),xe=yt(this.solanaRpcUrl,M.toString()),Ce=await xe.connection.getAccountInfo(We);if(Ce==null)throw new O("Cannot fetch wormhole bridge account info");let Ee=new Lt(Ce.data.slice(16,24),"le").toString(),Ge=qs.transfer({fromPubkey:M,toPubkey:Ue,lamports:+Ee}),Fe=[];Pe&&Fe.push(Pe);let E={mint:W,user:M,config:D,lock:b,pool:h,gasPrice:Y,thisGasPrice:j,bridgeAuthority:S,userToken:C,bridgeToken:x,chainBridge:B,otherBridgeToken:R,messengerGasUsage:ke,wormholeProgram:Ae,bridge:We,message:we.publicKey,wormholeMessenger:U.wormholeMessengerProgramId,sequence:_e,feeCollector:Ue,wormholeMessengerConfig:ge,clock:ht.SYSVAR_CLOCK_PUBKEY},le=await a.methods.swapAndBridgeWormhole({vusdAmount:o,nonce:m,destinationChainId:F,recipient:u,receiveToken:p}).accounts(E).preInstructions([ht.ComputeBudgetProgram.setComputeUnitLimit({units:Kr}),Ge]).postInstructions(Fe).signers([we]).transaction();return le.recentBlockhash=(await xe.connection.getLatestBlockhash()).blockhash,le.feePayer=M,{transaction:await this.convertToVersionedTransaction(le,xe.connection),messageAccount:we}}async prepareSwapAndBridgeCctpData(r){let{contractAddress:a,amount:o,fromAccountAddress:m,fromTokenAddress:u,toChainId:p,toAccountAddress:h,toTokenAddress:b,extraGas:S}=r,C=a;if(!C)throw new Je("Such route does not support CCTP protocol");let x=4,B=m,R=b,M=h,F=yt(this.solanaRpcUrl,B),W=new Yr(Aa,C,F),D=new re(u),U=await qi(D,W.programId),Y=new re(B),j=await W.account.cctpBridge.fetch(U),X={};return X.cctpBridge=W,X.cctpBridgeAccount=U,X.cctpAddressAccount=new re(C),X.amount=new Lt(o),X.recipient=Array.from(M),X.receiveToken=Array.from(R),X.userToken=await Le(Y,D),X.bridgeAuthority=await Hi(U,W.programId),X.bridgeTokenAccount=await ea(D,W.programId),X.chainBridgeAccount=await jr(p,W.programId),X.userAccount=Y,X.destinationChainId=p,X.mint=D,X.gasPrice=await sn(p,j.gasOracleProgramId),X.thisGasPrice=await sn(x,j.gasOracleProgramId),X.provider=F,S&&(X.extraGasInstruction=this.getExtraGasInstruction(S,X.userAccount,U)),X}async buildSwapAndBridgeCctpTransaction(r,a){let{cctpBridge:o,cctpBridgeAccount:m,amount:u,recipient:p,receiveToken:h,bridgeAuthority:b,userToken:S,bridgeTokenAccount:C,chainBridgeAccount:x,userAccount:B,destinationChainId:R,mint:M,gasPrice:F,thisGasPrice:W,extraGasInstruction:D,provider:U}=a,Y=this.params.cctpParams.cctpDomains[r],j=this.params.cctpParams.cctpTransmitterProgramId,X=this.params.cctpParams.cctpTokenMessengerMinter;if(Y==null||!j||!X)throw new O("CCTP is not configured");let Pe=new re(j),Ae=new re(X),{messageTransmitterAccount:We,tokenMessenger:Ue,tokenMessengerEventAuthority:_e,tokenMinter:ke,localToken:ge,remoteTokenMessengerKey:we,authorityPda:xe}=na(Y,M,Pe,Ae),Ce=[];D&&Ce.push(D);let Ee=ba.generate(),Ge=ta(o.programId,Ee.publicKey),Fe=await o.methods.bridge({amount:u,destinationChainId:R,recipient:p,receiveToken:h}).accounts({mint:M,user:B,cctpBridge:m,messageSentEventData:Ee.publicKey,lock:Ge,cctpMessenger:Ae,messageTransmitterProgram:Pe,messageTransmitterAccount:We,tokenMessenger:Ue,tokenMinter:ke,localToken:ge,remoteTokenMessengerKey:we,authorityPda:xe,eventAuthority:_e,bridgeToken:C,gasPrice:F,thisGasPrice:W,chainBridge:x,userToken:S,bridgeAuthority:b}).preInstructions([ht.ComputeBudgetProgram.setComputeUnitLimit({units:2e6})]).postInstructions(Ce).transaction(),E=U.connection;return Fe.recentBlockhash=(await E.getLatestBlockhash()).blockhash,Fe.feePayer=B,{transaction:await this.convertToVersionedTransaction(Fe,E),messageSentEventDataKeypair:Ee}}send(r){throw new de}};g();y();f();import{Address as Hr,contract as WR}from"@stellar/stellar-sdk";import{Big as no}from"big.js";g();y();f();import{contract as n}from"@stellar/stellar-sdk";var eo=n.Spec,to=n.Client;var un=class extends to{constructor(r){super(new eo(["AAAAAAAAAAAAAAAKaW5pdGlhbGl6ZQAAAAAABAAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAltZXNzZW5nZXIAAAAAAAATAAAAAAAAAApnYXNfb3JhY2xlAAAAAAATAAAAAAAAAAxuYXRpdmVfdG9rZW4AAAATAAAAAQAAA+kAAAPtAAAAAAAAAAM=","AAAAAAAAAAAAAAAPc3dhcF9hbmRfYnJpZGdlAAAAAAkAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAAAAAAFdG9rZW4AAAAAAAATAAAAAAAAAAZhbW91bnQAAAAAAAoAAAAAAAAACXJlY2lwaWVudAAAAAAAA+4AAAAgAAAAAAAAABRkZXN0aW5hdGlvbl9jaGFpbl9pZAAAAAQAAAAAAAAADXJlY2VpdmVfdG9rZW4AAAAAAAPuAAAAIAAAAAAAAAAFbm9uY2UAAAAAAAAMAAAAAAAAAApnYXNfYW1vdW50AAAAAAAKAAAAAAAAABBmZWVfdG9rZW5fYW1vdW50AAAACgAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAOcmVjZWl2ZV90b2tlbnMAAAAAAAgAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAAKAAAAAAAAAAlyZWNpcGllbnQAAAAAAAATAAAAAAAAAA9zb3VyY2VfY2hhaW5faWQAAAAABAAAAAAAAAANcmVjZWl2ZV90b2tlbgAAAAAAA+4AAAAgAAAAAAAAAAVub25jZQAAAAAAAAwAAAAAAAAAEnJlY2VpdmVfYW1vdW50X21pbgAAAAAACgAAAAAAAAAJZXh0cmFfZ2FzAAAAAAAD6AAAAAoAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAAEc3dhcAAAAAYAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAAKAAAAAAAAAAV0b2tlbgAAAAAAA+4AAAAgAAAAAAAAAA1yZWNlaXZlX3Rva2VuAAAAAAAD7gAAACAAAAAAAAAACXJlY2lwaWVudAAAAAAAABMAAAAAAAAAEnJlY2VpdmVfYW1vdW50X21pbgAAAAAACgAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAJc3RvcF9zd2FwAAAAAAAAAAAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAKc3RhcnRfc3dhcAAAAAAAAAAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAOc2V0X2dhc19vcmFjbGUAAAAAAAEAAAAAAAAAC25ld19hZGRyZXNzAAAAABMAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAASc2V0X3N0b3BfYXV0aG9yaXR5AAAAAAABAAAAAAAAAA5zdG9wX2F1dGhvcml0eQAAAAAAEwAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAOc2V0X3JlYmFsYW5jZXIAAAAAAAEAAAAAAAAACnJlYmFsYW5jZXIAAAAAABMAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAANc2V0X21lc3NlbmdlcgAAAAAAAAEAAAAAAAAACW1lc3NlbmdlcgAAAAAAABMAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAANc2V0X2dhc191c2FnZQAAAAAAAAIAAAAAAAAACGNoYWluX2lkAAAABAAAAAAAAAAJZ2FzX3VzYWdlAAAAAAAACgAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAPcmVnaXN0ZXJfYnJpZGdlAAAAAAIAAAAAAAAACGNoYWluX2lkAAAABAAAAAAAAAAOYnJpZGdlX2FkZHJlc3MAAAAAA+4AAAAgAAAAAQAAA+kAAAPtAAAAAAAAAAM=","AAAAAAAAAAAAAAAQYWRkX2JyaWRnZV90b2tlbgAAAAIAAAAAAAAACGNoYWluX2lkAAAABAAAAAAAAAANdG9rZW5fYWRkcmVzcwAAAAAAA+4AAAAgAAAAAQAAA+kAAAPtAAAAAAAAAAM=","AAAAAAAAAAAAAAATcmVtb3ZlX2JyaWRnZV90b2tlbgAAAAACAAAAAAAAAAhjaGFpbl9pZAAAAAQAAAAAAAAADXRva2VuX2FkZHJlc3MAAAAAAAPuAAAAIAAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAIYWRkX3Bvb2wAAAACAAAAAAAAAARwb29sAAAAEwAAAAAAAAAFdG9rZW4AAAAAAAATAAAAAQAAA+kAAAPtAAAAAAAAAAM=","AAAAAAAAAAAAAAATd2l0aGRyYXdfZ2FzX3Rva2VucwAAAAACAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAABmFtb3VudAAAAAAACgAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAfd2l0aGRyYXdfYnJpZGdpbmdfZmVlX2luX3Rva2VucwAAAAACAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAADXRva2VuX2FkZHJlc3MAAAAAAAATAAAAAQAAA+kAAAPtAAAAAAAAAAM=","AAAAAAAAAAAAAAAVaGFzX3Byb2Nlc3NlZF9tZXNzYWdlAAAAAAAAAQAAAAAAAAAHbWVzc2FnZQAAAAPuAAAAIAAAAAEAAAPpAAAAAQAAAAM=","AAAAAAAAAAAAAAAUaGFzX3JlY2VpdmVkX21lc3NhZ2UAAAABAAAAAAAAAAdtZXNzYWdlAAAAA+4AAAAgAAAAAQAAA+kAAAABAAAAAw==","AAAAAAAAAAAAAAAQZ2V0X3Bvb2xfYWRkcmVzcwAAAAEAAAAAAAAADXRva2VuX2FkZHJlc3MAAAAAAAPuAAAAIAAAAAEAAAPpAAAAEwAAAAM=","AAAAAAAAAAAAAAAKZ2V0X2NvbmZpZwAAAAAAAAAAAAEAAAPpAAAH0AAAAAZCcmlkZ2UAAAAAAAM=","AAAAAAAAAAAAAAASZ2V0X3N0b3BfYXV0aG9yaXR5AAAAAAAAAAAAAQAAA+kAAAATAAAAAw==","AAAAAAAAAAAAAAAUZ2V0X3RyYW5zYWN0aW9uX2Nvc3QAAAABAAAAAAAAAAhjaGFpbl9pZAAAAAQAAAABAAAD6QAAAAoAAAAD","AAAAAAAAAAAAAAANZ2V0X2dhc191c2FnZQAAAAAAAAEAAAAAAAAACGNoYWluX2lkAAAABAAAAAEAAAPpAAAACgAAAAM=","AAAAAAAAAAAAAAAJZ2V0X2FkbWluAAAAAAAAAAAAAAEAAAPpAAAAEwAAAAM=","AAAAAAAAAAAAAAAOZ2V0X2dhc19vcmFjbGUAAAAAAAAAAAABAAAD6QAAABMAAAAD","AAAAAAAAAAAAAAASZ2V0X2Fub3RoZXJfYnJpZGdlAAAAAAABAAAAAAAAAAhjaGFpbl9pZAAAAAQAAAABAAAD6QAAB9AAAAANQW5vdGhlckJyaWRnZQAAAAAAAAM=","AAAAAAAAAAAAAAAJc2V0X2FkbWluAAAAAAAAAQAAAAAAAAAJbmV3X2FkbWluAAAAAAAAEwAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAQAAAAAAAAAAAAAAB1N3YXBwZWQAAAAABgAAAAAAAAAOcmVjZWl2ZV9hbW91bnQAAAAAAAoAAAAAAAAADXJlY2VpdmVfdG9rZW4AAAAAAAPuAAAAIAAAAAAAAAAJcmVjaXBpZW50AAAAAAAAEwAAAAAAAAALc2VuZF9hbW91bnQAAAAACgAAAAAAAAAKc2VuZF90b2tlbgAAAAAD7gAAACAAAAAAAAAABnNlbmRlcgAAAAAAEw==","AAAAAQAAAAAAAAAAAAAAClRva2Vuc1NlbnQAAAAAAAUAAAAAAAAABmFtb3VudAAAAAAACgAAAAAAAAAUZGVzdGluYXRpb25fY2hhaW5faWQAAAAEAAAAAAAAAAVub25jZQAAAAAAAAwAAAAAAAAADXJlY2VpdmVfdG9rZW4AAAAAAAPuAAAAIAAAAAAAAAAJcmVjaXBpZW50AAAAAAAD7gAAACA=","AAAAAQAAAAAAAAAAAAAADlRva2Vuc1JlY2VpdmVkAAAAAAAEAAAAAAAAAAZhbW91bnQAAAAAAAoAAAAAAAAAB21lc3NhZ2UAAAAD7gAAACAAAAAAAAAABW5vbmNlAAAAAAAADAAAAAAAAAAJcmVjaXBpZW50AAAAAAAD7gAAACA=","AAAAAQAAAAAAAAAAAAAAClJlY2VpdmVGZWUAAAAAAAMAAAAAAAAAF2JyaWRnZV90cmFuc2FjdGlvbl9jb3N0AAAAAAoAAAAAAAAACWV4dHJhX2dhcwAAAAAAAAoAAAAAAAAAGG1lc3NhZ2VfdHJhbnNhY3Rpb25fY29zdAAAAAo=","AAAAAQAAAAAAAAAAAAAAFUJyaWRnaW5nRmVlRnJvbVRva2VucwAAAAAAAAIAAAAAAAAAEGZlZV90b2tlbl9hbW91bnQAAAAKAAAAAAAAAANnYXMAAAAACg==","AAAAAQAAAAAAAAAAAAAADUFub3RoZXJCcmlkZ2UAAAAAAAACAAAAAAAAAAdhZGRyZXNzAAAAA+4AAAAgAAAAAAAAAAZ0b2tlbnMAAAAAA+wAAAPuAAAAIAAAAAE=","AAAAAQAAAAAAAAAAAAAABkJyaWRnZQAAAAAABgAAAGBwcmVjb21wdXRlZCB2YWx1ZXMgb2YgdGhlIHNjYWxpbmcgZmFjdG9yIHJlcXVpcmVkIGZvciBwYXlpbmcgdGhlIGJyaWRnaW5nIGZlZSB3aXRoIHN0YWJsZSB0b2tlbnMAAAAeYnJpZGdpbmdfZmVlX2NvbnZlcnNpb25fZmFjdG9yAAAAAAPsAAAAEwAAAAoAAAAAAAAACGNhbl9zd2FwAAAAAQAAAGxwcmVjb21wdXRlZCB2YWx1ZXMgdG8gZGl2aWRlIGJ5IHRvIGNoYW5nZSB0aGUgcHJlY2lzaW9uIGZyb20gdGhlIEdhcyBPcmFjbGUgcHJlY2lzaW9uIHRvIHRoZSB0b2tlbiBwcmVjaXNpb24AAAAWZnJvbV9nYXNfb3JhY2xlX2ZhY3RvcgAAAAAD7AAAABMAAAAKAAAAAAAAAAltZXNzZW5nZXIAAAAAAAATAAAAAAAAAAVwb29scwAAAAAAA+wAAAPuAAAAIAAAABMAAAAAAAAACnJlYmFsYW5jZXIAAAAAABM=","AAAAAgAAAAAAAAAAAAAAB0RhdGFLZXkAAAAAAwAAAAEAAAAAAAAAC090aGVyQnJpZGdlAAAAAAEAAAAEAAAAAQAAAAAAAAALU2VudE1lc3NhZ2UAAAAAAQAAA+4AAAAgAAAAAQAAAAAAAAAPUmVjZWl2ZWRNZXNzYWdlAAAAAAEAAAPuAAAAIA==","AAAAAQAAAAAAAAAAAAAABUFkbWluAAAAAAAAAQAAAAAAAAABMAAAAAAAABM=","AAAAAQAAAAAAAAAAAAAAEEdhc09yYWNsZUFkZHJlc3MAAAABAAAAAAAAAAEwAAAAAAAAEw==","AAAAAQAAAAAAAAAAAAAACEdhc1VzYWdlAAAAAQAAAAAAAAABMAAAAAAAA+wAAAAEAAAACg==","AAAAAQAAAAAAAAAAAAAAC05hdGl2ZVRva2VuAAAAAAEAAAAAAAAAATAAAAAAAAAT","AAAAAQAAAAAAAAAAAAAADVN0b3BBdXRob3JpdHkAAAAAAAABAAAAAAAAAAEwAAAAAAAAEw==","AAAABAAAAAAAAAAAAAAABUVycm9yAAAAAAAAKAAAAAAAAAANVW5pbXBsZW1lbnRlZAAAAAAAAAAAAAAAAAAAC0luaXRpYWxpemVkAAAAAAEAAAAAAAAADVVuaW5pdGlhbGl6ZWQAAAAAAAACAAAAAAAAAAxVbmF1dGhvcml6ZWQAAAADAAAAAAAAAApJbnZhbGlkQXJnAAAAAAAEAAAAAAAAAA5JbnZhbGlkQ2hhaW5JZAAAAAAABQAAAAAAAAATSW52YWxpZE90aGVyQ2hhaW5JZAAAAAAGAAAAAAAAAA5HYXNVc2FnZU5vdFNldAAAAAAABwAAAAAAAAANQnJva2VuQWRkcmVzcwAAAAAAAAgAAAAAAAAACE5vdEZvdW5kAAAACQAAAAAAAAAYVG9rZW5JbnN1ZmZpY2llbnRCYWxhbmNlAAAACgAAAAAAAAAKQ2FzdEZhaWxlZAAAAAAACwAAAAAAAAAMVTI1Nk92ZXJmbG93AAAADAAAAAAAAAAKWmVyb0Ftb3VudAAAAAAAZwAAAAAAAAAMUG9vbE92ZXJmbG93AAAAaAAAAAAAAAALWmVyb0NoYW5nZXMAAAAAaQAAAAAAAAARUmVzZXJ2ZXNFeGhhdXN0ZWQAAAAAAABqAAAAAAAAABpJbnN1ZmZpY2llbnRSZWNlaXZlZEFtb3VudAAAAAAAawAAAAAAAAAUQmFsYW5jZVJhdGlvRXhjZWVkZWQAAABsAAAAAAAAAAlGb3JiaWRkZW4AAAAAAABtAAAAAAAAABlVbmF1dGhvcml6ZWRTdG9wQXV0aG9yaXR5AAAAAAAAywAAAAAAAAAOU3dhcFByb2hpYml0ZWQAAAAAAMwAAAAAAAAAEkFtb3VudFRvb0xvd0ZvckZlZQAAAAAAzQAAAAAAAAAWQnJpZGdlVG9UaGVaZXJvQWRkcmVzcwAAAAAAzgAAAAAAAAAORW1wdHlSZWNpcGllbnQAAAAAAM8AAAAAAAAAE1NvdXJjZU5vdFJlZ2lzdGVyZWQAAAAA0AAAAAAAAAAVV3JvbmdEZXN0aW5hdGlvbkNoYWluAAAAAAAA0QAAAAAAAAATVW5rbm93bkFub3RoZXJDaGFpbgAAAADSAAAAAAAAABFUb2tlbnNBbHJlYWR5U2VudAAAAAAAANMAAAAAAAAAEE1lc3NhZ2VQcm9jZXNzZWQAAADUAAAAAAAAAAxOb3RFbm91Z2hGZWUAAADWAAAAAAAAAAlOb01lc3NhZ2UAAAAAAADXAAAAAAAAAA1Ob1JlY2VpdmVQb29sAAAAAAAA2AAAAAAAAAAGTm9Qb29sAAAAAADZAAAAAAAAABNVbmtub3duQW5vdGhlclRva2VuAAAAANoAAAAAAAAAD1dyb25nQnl0ZUxlbmd0aAAAAAEsAAAAAAAAAApIYXNNZXNzYWdlAAAAAAEtAAAAAAAAABdJbnZhbGlkUHJpbWFyeVNpZ25hdHVyZQAAAAEuAAAAAAAAABlJbnZhbGlkU2Vjb25kYXJ5U2lnbmF0dXJlAAAAAAABLwAAAAAAAAARTm9HYXNEYXRhRm9yQ2hhaW4AAAAAAAGQ"]),r);this.options=r}fromJSON={initialize:this.txFromJSON,swap_and_bridge:this.txFromJSON,receive_tokens:this.txFromJSON,swap:this.txFromJSON,stop_swap:this.txFromJSON,start_swap:this.txFromJSON,set_gas_oracle:this.txFromJSON,set_stop_authority:this.txFromJSON,set_rebalancer:this.txFromJSON,set_messenger:this.txFromJSON,set_gas_usage:this.txFromJSON,register_bridge:this.txFromJSON,add_bridge_token:this.txFromJSON,remove_bridge_token:this.txFromJSON,add_pool:this.txFromJSON,withdraw_gas_tokens:this.txFromJSON,withdraw_bridging_fee_in_tokens:this.txFromJSON,has_processed_message:this.txFromJSON,has_received_message:this.txFromJSON,get_pool_address:this.txFromJSON,get_config:this.txFromJSON,get_stop_authority:this.txFromJSON,get_transaction_cost:this.txFromJSON,get_gas_usage:this.txFromJSON,get_admin:this.txFromJSON,get_gas_oracle:this.txFromJSON,get_another_bridge:this.txFromJSON,set_admin:this.txFromJSON,upgrade:this.txFromJSON}};var Xn=class extends Oe{constructor(r,a,o){super();this.nodeRpcUrlsConfig=r;this.params=a;this.api=o}chainType="SRB";async buildRawTransactionSend(r){let a=await Ye(this.chainType,r,this.api);return await this.buildRawTransactionSendFromParams(a)}async buildRawTransactionSendFromParams(r){let{amount:a,contractAddress:o,fromAccountAddress:m,fromTokenAddress:u,toChainId:p,toAccountAddress:h,toTokenAddress:b,fee:S,gasFeePaymentMethod:C,extraGas:x}=r,B=S;x&&(B=no(B).plus(x).toFixed());let R=this.getContract(un,o,m),M;return C==="stablecoin"?M=await R.swap_and_bridge({sender:m,token:Hr.contract(w.from(u)).toString(),amount:BigInt(a),recipient:w.from(h),destination_chain_id:+p,receive_token:w.from(b),nonce:nt(),gas_amount:BigInt(0),fee_token_amount:BigInt(B)}):M=await R.swap_and_bridge({sender:m,token:Hr.contract(w.from(u)).toString(),amount:BigInt(a),recipient:w.from(h),destination_chain_id:+p,receive_token:w.from(b),nonce:nt(),gas_amount:BigInt(B),fee_token_amount:BigInt(0)}),M.toXDR()}async buildRawTransactionSwap(r){let a=rt(this.chainType,r);return await this.buildRawTransactionSwapFromParams(a)}async buildRawTransactionSwapFromParams(r){let{amount:a,contractAddress:o,fromAccountAddress:m,fromTokenAddress:u,toAccountAddress:p,toTokenAddress:h,minimumReceiveAmount:b}=r;return(await this.getContract(un,o,m).swap({sender:m,amount:BigInt(a),token:Hr.contract(w.from(u)).toBuffer(),receive_token:w.from(h),recipient:p,receive_amount_min:BigInt(b)})).toXDR()}send(r){throw new de}getContract(r,a,o){let m={publicKey:o,contractId:a,networkPassphrase:this.params.sorobanNetworkPassphrase,rpcUrl:this.nodeRpcUrlsConfig.getNodeRpcUrl("SRB")};return new r(m)}};g();y();f();import{SuiClient as fo}from"@mysten/sui/client";import{coinWithBalance as ce,Transaction as qn}from"@mysten/sui/transactions";import{SUI_CLOCK_OBJECT_ID as Wa}from"@mysten/sui/utils";import{Big as ci}from"big.js";var Ai=$e(Tt());g();y();f();var mt=$e(Tt());fe();function Ca(s,i,r){return s.moveCall({target:`${mt.PUBLISHED_AT}::bridge_interface::swap`,typeArguments:i,arguments:[Z(s,r.bridge),Z(s,r.coin),je(s,r.receiveAmountMin,"u64")]})}function Ba(s,i,r){return s.moveCall({target:`${mt.PUBLISHED_AT}::bridge_interface::deposit`,typeArguments:[i],arguments:[Z(s,r.bridge),Z(s,r.userDeposit),Z(s,r.coin)]})}function Ia(s,i,r){return s.moveCall({target:`${mt.PUBLISHED_AT}::bridge_interface::withdraw`,typeArguments:[i],arguments:[Z(s,r.bridge),Z(s,r.userDeposit),je(s,r.amountLp,"u64")]})}function Ra(s,i,r){return s.moveCall({target:`${mt.PUBLISHED_AT}::bridge_interface::claim_reward`,typeArguments:[i],arguments:[Z(s,r.bridge),Z(s,r.userDeposit)]})}function va(s,i,r){return s.moveCall({target:`${mt.PUBLISHED_AT}::bridge_interface::pool`,typeArguments:[i],arguments:[Z(s,r)]})}function zr(s,i,r){return s.moveCall({target:`${mt.PUBLISHED_AT}::bridge_interface::swap_and_bridge_wormhole`,typeArguments:[i],arguments:[Z(s,r.bridge),Z(s,r.messenger),Z(s,r.wormholeState),Z(s,r.theClock),Z(s,r.gasOracle),Z(s,r.amount),Z(s,r.recipient),je(s,r.destinationChainId,"u8"),Z(s,r.receiveToken),je(s,r.nonce,"u256"),Z(s,r.feeSuiCoin),Z(s,r.feeTokenCoin)]})}function ka(s,i){return s.moveCall({target:`${mt.PUBLISHED_AT}::bridge_interface::new_user_deposit`,typeArguments:[i],arguments:[]})}function qr(s,i,r){return s.moveCall({target:`${mt.PUBLISHED_AT}::bridge_interface::swap_and_bridge`,typeArguments:[i],arguments:[Z(s,r.bridge),Z(s,r.messenger),Z(s,r.gasOracle),Z(s,r.amount),Z(s,r.recipient),je(s,r.destinationChainId,"u8"),Z(s,r.receiveToken),je(s,r.nonce,"u256"),Z(s,r.feeSuiCoin),Z(s,r.feeTokenCoin)]})}var Ua=$e(ti());g();y();f();var Fa=$e(ti());fe();function ni(s,i,r){return s.moveCall({target:`${Fa.PUBLISHED_AT}::cctp_bridge_interface::bridge`,typeArguments:[i],arguments:[Z(s,r.cctpBridge),Z(s,r.gasOracle),Z(s,r.tokenMessengerMinterState),Z(s,r.messageTransmitterState),Z(s,r.treasury),Z(s,r.denyList),Z(s,r.amount),Z(s,r.feeSuiCoin),Z(s,r.feeTokenCoin),je(s,r.destinationChainId,"u8"),Z(s,r.recipient),Z(s,r.recipientWalletAddress)]})}var Ea=$e(ii());g();y();f();var Da=$e(ii());g();y();f();g();y();f();fe();import{bcs as bt}from"@mysten/sui/bcs";import{fromHEX as Ao,toHEX as uo}from"@mysten/sui/utils";g();y();f();import{bcs as co}from"@mysten/sui/bcs";fe();var ai=class s{__VectorClass=!0;static $typeName="vector";static $numTypeParams=1;static $isPhantom=[!1];$typeName="vector";$fullTypeName;$typeArgs;$isPhantom=[!1];elements;constructor(i,r){this.$fullTypeName=H(this.$typeName,...i),this.$typeArgs=i,this.elements=r}static reified(i){return{typeName:s.$typeName,fullTypeName:H(s.$typeName,V(i)),typeArgs:[V(i)],isPhantom:s.$isPhantom,reifiedTypeArgs:[i],fromFields:r=>s.fromFields(i,r),fromFieldsWithTypes:r=>s.fromFieldsWithTypes(i,r),fromBcs:r=>s.fromBcs(i,r),bcs:s.bcs(mn(i)),fromJSONField:r=>s.fromJSONField(i,r),fromJSON:r=>s.fromJSON(i,r),new:r=>new s([V(i)],r),kind:"VectorClassReified"}}static get r(){return s.reified}static get bcs(){return co.vector}static fromFields(i,r){return s.reified(i).new(r.map(a=>L(i,a)))}static fromFieldsWithTypes(i,r){return s.reified(i).new(r.map(a=>$(i,a)))}static fromBcs(i,r){return s.fromFields(i,s.bcs(mn(i)).parse(r))}toJSONField(){return this.elements.map(i=>Ot(this.$typeArgs[0],i))}toJSON(){return{$typeName:this.$typeName,$typeArgs:this.$typeArgs,elements:this.toJSONField()}}static fromJSONField(i,r){return s.reified(i).new(r.map(a=>J(i,a)))}static fromJSON(i,r){if(r.$typeName!==s.$typeName)throw new Error("not a vector json object");return s.fromJSONField(i,r.elements)}};function Xt(s){return ai.r(s)}function oe(s){return typeof s=="string"?{phantomType:s,kind:"PhantomReified"}:{phantomType:s.fullTypeName,kind:"PhantomReified"}}var mo=bt.bytes(32).transform({input:s=>Ao(s),output:s=>uo(s)});function mn(s){switch(s){case"bool":return bt.bool();case"u8":return bt.u8();case"u16":return bt.u16();case"u32":return bt.u32();case"u64":return bt.u64();case"u128":return bt.u128();case"u256":return bt.u256();case"address":return mo;default:return s.bcs}}function V(s){switch(s){case"u8":case"u16":case"u32":case"u64":case"u128":case"u256":case"bool":case"address":return s}switch(s.kind){case"PhantomReified":return s.phantomType;case"StructClassReified":return s.fullTypeName;case"VectorClassReified":return s.fullTypeName}throw new Error("unreachable")}function L(s,i){switch(s){case"bool":case"u8":case"u16":case"u32":return i;case"u64":case"u128":case"u256":return BigInt(i);case"address":return`0x${i}`}if(s.kind==="VectorClassReified")return s.fromFields(i).elements;switch(s.typeName){case"0x1::string::String":case"0x1::ascii::String":return new TextDecoder().decode(Uint8Array.from(i.bytes)).toString();case"0x2::url::Url":return new TextDecoder().decode(Uint8Array.from(i.url.bytes)).toString();case"0x2::object::ID":return`0x${i.bytes}`;case"0x2::object::UID":return`0x${i.id.bytes}`;case"0x1::option::Option":return i.vec.length===0?null:s.fromFields(i).vec[0];default:return s.fromFields(i)}}function $(s,i){switch(s){case"bool":case"u8":case"u16":case"u32":return i;case"u64":case"u128":case"u256":return BigInt(i);case"address":return i}if(s.kind==="VectorClassReified")return s.fromFieldsWithTypes(i).elements;switch(s.typeName){case"0x1::string::String":case"0x1::ascii::String":case"0x2::url::Url":case"0x2::object::ID":return i;case"0x2::object::UID":return i.id;case"0x2::balance::Balance":return s.fromFields({value:BigInt(i)});case"0x1::option::Option":return i===null?null:$(s.reifiedTypeArgs[0],i);default:return s.fromFieldsWithTypes(i)}}function He(s,i,r){if(r.length!==i.length)throw new Error(`provided item has mismatching number of type argments ${s} (expected ${r.length}, got ${i.length}))`);for(let a=0;a<i.length;a++)if(G(i[a])!==G(V(r[a])))throw new Error(`provided item has mismatching type argments ${s} (expected ${V(r[a])}, got ${i[a]}))`)}function it(s,i){let{typeArgs:r}=be(s.type);He(s.type,r,i)}function Ot(s,i){let{typeName:r,typeArgs:a}=be(s);switch(r){case"bool":return i;case"u8":case"u16":case"u32":return i;case"u64":case"u128":case"u256":return i.toString();case"address":case"signer":return i;case"vector":return i.map(o=>Ot(a[0],o));case"0x1::string::String":case"0x1::ascii::String":case"0x2::url::Url":case"0x2::object::ID":case"0x2::object::UID":return i;case"0x1::option::Option":return i===null?null:Ot(a[0],i);default:return i.toJSONField()}}function J(s,i){switch(s){case"bool":case"u8":case"u16":case"u32":return i;case"u64":case"u128":case"u256":return BigInt(i);case"address":return i}if(s.kind==="VectorClassReified")return s.fromJSONField(i).elements;switch(s.typeName){case"0x1::string::String":case"0x1::ascii::String":case"0x2::url::Url":case"0x2::object::ID":case"0x2::object::UID":return i;case"0x1::option::Option":return i===null?null:J(s.reifiedTypeArgs[0],i);default:return s.fromJSONField(i)}}fe();g();y();f();var Yn="0x1";import{bcs as Fg}from"@mysten/sui/bcs";import{fromB64 as Og}from"@mysten/sui/utils";g();y();f();fe();import{bcs as si}from"@mysten/sui/bcs";import{fromB64 as lo}from"@mysten/sui/utils";function Kn(s){return s=G(s),s===`${Yn}::string::String`}var Hn=class s{__StructClass=!0;static get $typeName(){return`${Yn}::string::String`}static $numTypeParams=0;static $isPhantom=[];$typeName=s.$typeName;$fullTypeName;$typeArgs;$isPhantom=s.$isPhantom;bytes;constructor(i,r){this.$fullTypeName=H(s.$typeName,...i),this.$typeArgs=i,this.bytes=r.bytes}static reified(){return{typeName:s.$typeName,fullTypeName:H(s.$typeName),typeArgs:[],isPhantom:s.$isPhantom,reifiedTypeArgs:[],fromFields:i=>s.fromFields(i),fromFieldsWithTypes:i=>s.fromFieldsWithTypes(i),fromBcs:i=>s.fromBcs(i),bcs:s.bcs,fromJSONField:i=>s.fromJSONField(i),fromJSON:i=>s.fromJSON(i),fromSuiParsedData:i=>s.fromSuiParsedData(i),fromSuiObjectData:i=>s.fromSuiObjectData(i),fetch:async(i,r)=>s.fetch(i,r),new:i=>new s([],i),kind:"StructClassReified"}}static get r(){return s.reified()}static phantom(){return oe(s.reified())}static get p(){return s.phantom()}static get bcs(){return si.struct("String",{bytes:si.vector(si.u8())})}static fromFields(i){return s.reified().new({bytes:L(Xt("u8"),i.bytes)})}static fromFieldsWithTypes(i){if(!Kn(i.type))throw new Error("not a String type");return s.reified().new({bytes:$(Xt("u8"),i.fields.bytes)})}static fromBcs(i){return s.fromFields(s.bcs.parse(i))}toJSONField(){return{bytes:Ot("vector<u8>",this.bytes)}}toJSON(){return{$typeName:this.$typeName,$typeArgs:this.$typeArgs,...this.toJSONField()}}static fromJSONField(i){return s.reified().new({bytes:J(Xt("u8"),i.bytes)})}static fromJSON(i){if(i.$typeName!==s.$typeName)throw new Error("not a WithTwoGenerics json object");return s.fromJSONField(i)}static fromSuiParsedData(i){if(i.dataType!=="moveObject")throw new Error("not an object");if(!Kn(i.type))throw new Error(`object at ${i.fields.id} is not a String object`);return s.fromFieldsWithTypes(i)}static fromSuiObjectData(i){if(i.bcs){if(i.bcs.dataType!=="moveObject"||!Kn(i.bcs.type))throw new Error("object at is not a String object");return s.fromBcs(lo(i.bcs.bcsBytes))}if(i.content)return s.fromSuiParsedData(i.content);throw new Error("Both `bcs` and `content` fields are missing from the data. Include `showBcs` or `showContent` in the request.")}static async fetch(i,r){let a=await i.getObject({id:r,options:{showBcs:!0}});if(a.error)throw new Error(`error fetching String object at id ${r}: ${a.error.code}`);if(a.data?.bcs?.dataType!=="moveObject"||!Kn(a.data.bcs.type))throw new Error(`object at id ${r} is not a String object`);return s.fromSuiObjectData(a.data)}};fe();g();y();f();fe();g();y();f();var St="0x2";import{bcs as oi}from"@mysten/sui/bcs";import{fromB64 as Na,fromHEX as po,toHEX as go}from"@mysten/sui/utils";function Qn(s){return s=G(s),s===`${St}::object::ID`}var Nt=class s{__StructClass=!0;static get $typeName(){return`${St}::object::ID`}static $numTypeParams=0;static $isPhantom=[];$typeName=s.$typeName;$fullTypeName;$typeArgs;$isPhantom=s.$isPhantom;bytes;constructor(i,r){this.$fullTypeName=H(s.$typeName,...i),this.$typeArgs=i,this.bytes=r.bytes}static reified(){return{typeName:s.$typeName,fullTypeName:H(s.$typeName),typeArgs:[],isPhantom:s.$isPhantom,reifiedTypeArgs:[],fromFields:i=>s.fromFields(i),fromFieldsWithTypes:i=>s.fromFieldsWithTypes(i),fromBcs:i=>s.fromBcs(i),bcs:s.bcs,fromJSONField:i=>s.fromJSONField(i),fromJSON:i=>s.fromJSON(i),fromSuiParsedData:i=>s.fromSuiParsedData(i),fromSuiObjectData:i=>s.fromSuiObjectData(i),fetch:async(i,r)=>s.fetch(i,r),new:i=>new s([],i),kind:"StructClassReified"}}static get r(){return s.reified()}static phantom(){return oe(s.reified())}static get p(){return s.phantom()}static get bcs(){return oi.struct("ID",{bytes:oi.bytes(32).transform({input:i=>po(i),output:i=>go(i)})})}static fromFields(i){return s.reified().new({bytes:L("address",i.bytes)})}static fromFieldsWithTypes(i){if(!Qn(i.type))throw new Error("not a ID type");return s.reified().new({bytes:$("address",i.fields.bytes)})}static fromBcs(i){return s.fromFields(s.bcs.parse(i))}toJSONField(){return{bytes:this.bytes}}toJSON(){return{$typeName:this.$typeName,$typeArgs:this.$typeArgs,...this.toJSONField()}}static fromJSONField(i){return s.reified().new({bytes:J("address",i.bytes)})}static fromJSON(i){if(i.$typeName!==s.$typeName)throw new Error("not a WithTwoGenerics json object");return s.fromJSONField(i)}static fromSuiParsedData(i){if(i.dataType!=="moveObject")throw new Error("not an object");if(!Qn(i.type))throw new Error(`object at ${i.fields.id} is not a ID object`);return s.fromFieldsWithTypes(i)}static fromSuiObjectData(i){if(i.bcs){if(i.bcs.dataType!=="moveObject"||!Qn(i.bcs.type))throw new Error("object at is not a ID object");return s.fromBcs(Na(i.bcs.bcsBytes))}if(i.content)return s.fromSuiParsedData(i.content);throw new Error("Both `bcs` and `content` fields are missing from the data. Include `showBcs` or `showContent` in the request.")}static async fetch(i,r){let a=await i.getObject({id:r,options:{showBcs:!0}});if(a.error)throw new Error(`error fetching ID object at id ${r}: ${a.error.code}`);if(a.data?.bcs?.dataType!=="moveObject"||!Qn(a.data.bcs.type))throw new Error(`object at id ${r} is not a ID object`);return s.fromSuiObjectData(a.data)}};function zn(s){return s=G(s),s===`${St}::object::UID`}var Ve=class s{__StructClass=!0;static get $typeName(){return`${St}::object::UID`}static $numTypeParams=0;static $isPhantom=[];$typeName=s.$typeName;$fullTypeName;$typeArgs;$isPhantom=s.$isPhantom;id;constructor(i,r){this.$fullTypeName=H(s.$typeName,...i),this.$typeArgs=i,this.id=r.id}static reified(){return{typeName:s.$typeName,fullTypeName:H(s.$typeName),typeArgs:[],isPhantom:s.$isPhantom,reifiedTypeArgs:[],fromFields:i=>s.fromFields(i),fromFieldsWithTypes:i=>s.fromFieldsWithTypes(i),fromBcs:i=>s.fromBcs(i),bcs:s.bcs,fromJSONField:i=>s.fromJSONField(i),fromJSON:i=>s.fromJSON(i),fromSuiParsedData:i=>s.fromSuiParsedData(i),fromSuiObjectData:i=>s.fromSuiObjectData(i),fetch:async(i,r)=>s.fetch(i,r),new:i=>new s([],i),kind:"StructClassReified"}}static get r(){return s.reified()}static phantom(){return oe(s.reified())}static get p(){return s.phantom()}static get bcs(){return oi.struct("UID",{id:Nt.bcs})}static fromFields(i){return s.reified().new({id:L(Nt.reified(),i.id)})}static fromFieldsWithTypes(i){if(!zn(i.type))throw new Error("not a UID type");return s.reified().new({id:$(Nt.reified(),i.fields.id)})}static fromBcs(i){return s.fromFields(s.bcs.parse(i))}toJSONField(){return{id:this.id}}toJSON(){return{$typeName:this.$typeName,$typeArgs:this.$typeArgs,...this.toJSONField()}}static fromJSONField(i){return s.reified().new({id:J(Nt.reified(),i.id)})}static fromJSON(i){if(i.$typeName!==s.$typeName)throw new Error("not a WithTwoGenerics json object");return s.fromJSONField(i)}static fromSuiParsedData(i){if(i.dataType!=="moveObject")throw new Error("not an object");if(!zn(i.type))throw new Error(`object at ${i.fields.id} is not a UID object`);return s.fromFieldsWithTypes(i)}static fromSuiObjectData(i){if(i.bcs){if(i.bcs.dataType!=="moveObject"||!zn(i.bcs.type))throw new Error("object at is not a UID object");return s.fromBcs(Na(i.bcs.bcsBytes))}if(i.content)return s.fromSuiParsedData(i.content);throw new Error("Both `bcs` and `content` fields are missing from the data. Include `showBcs` or `showContent` in the request.")}static async fetch(i,r){let a=await i.getObject({id:r,options:{showBcs:!0}});if(a.error)throw new Error(`error fetching UID object at id ${r}: ${a.error.code}`);if(a.data?.bcs?.dataType!=="moveObject"||!zn(a.data.bcs.type))throw new Error(`object at id ${r} is not a UID object`);return s.fromSuiObjectData(a.data)}};function Qe(s,i){return s.moveCall({target:`${Da.PUBLISHED_AT}::bytes32::from_hex`,arguments:[je(s,i,`${Hn.$typeName}`)]})}g();y();f();async function at(s,i,r=[]){let a=await s(i),o=r.concat(a.data);return a.hasNextPage&&a.nextCursor?at(s,a.nextCursor,o):o}var er=class extends Oe{constructor(r,a){super();this.nodeRpcUrlsConfig=r;this.api=a;this.client=new fo({url:r.getNodeRpcUrl(this.chainSymbol)})}chainType="SUI";chainSymbol="SUI";client;send(){throw new O("Method send not implemented.")}async buildRawTransactionSwap(r){let a=r.sourceToken.suiAddresses;if(!a)throw new O("SUI token must contain 'suiAddresses'");(0,Ai.setAddress)(a.bridgeAddress,a.bridgeAddressOrigin);let o=rt(this.chainType,r);return await this.buildRawTransactionSwapFromParams(o,a)}async buildRawTransactionSwapFromParams(r,a){let{amount:o,fromAccountAddress:m,fromTokenAddress:u,toTokenAddress:p,minimumReceiveAmount:h}=r,b=new qn;b.setSender(m);let S={bridge:a.bridgeObjectAddress,coin:ce({balance:BigInt(o),type:u}),receiveAmountMin:BigInt(h)},C=Ca(b,[u,p],S),x=await at(B=>this.client.getCoins({owner:r.toAccountAddress,coinType:p,cursor:B}));return x.length===0||!x[0]?b.transferObjects([C],r.toAccountAddress):b.mergeCoins(x[0].coinObjectId,[C]),await b.toJSON({client:this.client})}async buildRawTransactionSend(r){let a=await Ye(this.chainType,r,this.api),{messenger:o}=a,m=r.sourceToken.suiAddresses;if(!m)throw new O("SUI token must contain 'suiAddresses'");switch((0,Ai.setAddress)(m.bridgeAddress,m.bridgeAddressOrigin),(0,Ea.setAddress)(m.utilsAddress),o){case 1:return this.buildRawTransactionAllbridgeSend(a,m);case 2:return this.buildRawTransactionWormholeSend(a,m);case 3:return this.buildRawTransactionCctpSend(r,a,m)}}async buildRawTransactionAllbridgeSend(r,a){let{amount:o,fromAccountAddress:m,fromTokenAddress:u,toChainId:p,toAccountAddress:h,toTokenAddress:b,fee:S,gasFeePaymentMethod:C,extraGas:x}=r,B=S;x&&(B=ci(B).plus(x).toFixed());let R=new qn;if(R.setSender(m),C==="stablecoin"){let M=BigInt(o)-BigInt(B),F={bridge:a.bridgeObjectAddress,messenger:a.allbridgeMessengerObjectAddress,amount:ce({balance:M,type:u}),destinationChainId:p,nonce:nt(),recipient:Qe(R,Xe(h)),receiveToken:Qe(R,Xe(b)),gasOracle:a.gasOracleObjectAddress,feeTokenCoin:ce({balance:BigInt(B),type:u}),feeSuiCoin:ce({balance:BigInt(0),useGasCoin:!1})};qr(R,u,F)}else{let M=B==="0"?ce({balance:BigInt(B),useGasCoin:!1}):ce({balance:BigInt(B)}),F={bridge:a.bridgeObjectAddress,messenger:a.allbridgeMessengerObjectAddress,amount:ce({balance:BigInt(o),type:u}),destinationChainId:p,nonce:nt(),recipient:Qe(R,Xe(h)),receiveToken:Qe(R,Xe(b)),gasOracle:a.gasOracleObjectAddress,feeTokenCoin:ce({balance:BigInt(0),type:u}),feeSuiCoin:M};qr(R,u,F)}return await R.toJSON({client:this.client})}async buildRawTransactionWormholeSend(r,a){let{amount:o,fromAccountAddress:m,fromTokenAddress:u,toChainId:p,toAccountAddress:h,toTokenAddress:b,fee:S,gasFeePaymentMethod:C,extraGas:x}=r,B=S;x&&(B=ci(B).plus(x).toFixed());let R=new qn;if(R.setSender(m),C==="stablecoin"){let M=BigInt(o)-BigInt(B),F={bridge:a.bridgeObjectAddress,messenger:a.wormholeMessengerObjectAddress,wormholeState:a.wormholeStateObjectAddress,theClock:Wa,amount:ce({balance:M,type:u}),destinationChainId:p,nonce:nt(),recipient:Qe(R,Xe(h)),receiveToken:Qe(R,Xe(b)),gasOracle:a.gasOracleObjectAddress,feeTokenCoin:ce({balance:BigInt(B),type:u}),feeSuiCoin:ce({balance:BigInt(0),useGasCoin:!1})};zr(R,u,F)}else{let M=B==="0"?ce({balance:BigInt(B),useGasCoin:!1}):ce({balance:BigInt(B)}),F={bridge:a.bridgeObjectAddress,messenger:a.wormholeMessengerObjectAddress,wormholeState:a.wormholeStateObjectAddress,theClock:Wa,amount:ce({balance:BigInt(o),type:u}),destinationChainId:p,nonce:nt(),recipient:Qe(R,Xe(h)),receiveToken:Qe(R,Xe(b)),gasOracle:a.gasOracleObjectAddress,feeTokenCoin:ce({balance:BigInt(0),type:u}),feeSuiCoin:M};zr(R,u,F)}return await R.toJSON({client:this.client})}async buildRawTransactionCctpSend(r,a,o){let{amount:m,fromAccountAddress:u,fromTokenAddress:p,toChainId:h,toAccountAddress:b,fee:S,gasFeePaymentMethod:C,extraGas:x}=a;(0,Ua.setAddress)(o.cctpAddress,o.cctpAddressOrigin);let B=S;x&&(B=ci(B).plus(x).toFixed());let R=new qn;R.setSender(u);let M=Qe(R,Xe(b)),F;if(r.destinationToken.chainType==="SOLANA"){let W=await Zn(this.chainType,r.toAccountAddress,r.destinationToken.tokenAddress,this.nodeRpcUrlsConfig.getNodeRpcUrl("SOL"));F=Qe(R,Xe(W))}else F=M;if(C==="stablecoin"){let W=BigInt(m)-BigInt(B),D={cctpBridge:o.cctpObjectAddress,tokenMessengerMinterState:o.cctpTokenMessengerMinterStateObjectAddress,messageTransmitterState:o.cctpMessageTransmitterStateObjectAddress,treasury:o.cctpTreasuryObjectAddress,denyList:o.cctpDenyListObjectAddress,amount:ce({balance:W,type:p}),destinationChainId:h,recipient:F,recipientWalletAddress:M,gasOracle:o.gasOracleObjectAddress,feeTokenCoin:ce({balance:BigInt(B),type:p}),feeSuiCoin:ce({balance:BigInt(0),useGasCoin:!1})};ni(R,p,D)}else{let W=B==="0"?ce({balance:BigInt(B),useGasCoin:!1}):ce({balance:BigInt(B)}),D={cctpBridge:o.cctpObjectAddress,tokenMessengerMinterState:o.cctpTokenMessengerMinterStateObjectAddress,messageTransmitterState:o.cctpMessageTransmitterStateObjectAddress,treasury:o.cctpTreasuryObjectAddress,denyList:o.cctpDenyListObjectAddress,amount:ce({balance:BigInt(m),type:p}),destinationChainId:h,recipient:F,recipientWalletAddress:M,gasOracle:o.gasOracleObjectAddress,feeTokenCoin:ce({balance:BigInt(0),type:p}),feeSuiCoin:W};ni(R,p,D)}return await R.toJSON({client:this.client})}};g();y();f();import{Big as To}from"big.js";g();y();f();g();y();f();import yo from"bn.js";function tr(s){return"0x"+new yo(s).toString("hex")}function Ga(s){return new Promise(i=>setTimeout(()=>i(),s))}async function nr(s,i){let r=await s.trx.sign(i);if(!r.signature)throw new Zt("Transaction was not signed properly");let o=(await s.trx.sendRawTransaction(r)).transaction.txID;return await ho(s,o),{txId:o}}async function ho(s,i,r=1e4){let a=Date.now();for(;;){if(Date.now()-a>r)throw new tn("Transaction not found");let o=await s.trx.getUnconfirmedTransactionInfo(i);if(!o?.receipt){await Ga(2e3);continue}if(o.receipt.result==="SUCCESS")return o;throw new tn(`Transaction status is ${o.receipt.result}`)}}var ln=class extends Oe{constructor(r,a){super();this.tronWeb=r;this.api=a}chainType="TRX";async send(r){let a=await Ye(this.chainType,r,this.api),o=await this.buildRawTransactionSendFromParams(a);return await nr(this.tronWeb,o)}async buildRawTransactionSwap(r){let a=rt(this.chainType,r);return await this.buildRawTransactionSwapFromParams(a)}async buildRawTransactionSwapFromParams(r){let{amount:a,contractAddress:o,fromAccountAddress:m,fromTokenAddress:u,toAccountAddress:p,toTokenAddress:h,minimumReceiveAmount:b}=r,S=[{type:"uint256",value:a},{type:"bytes32",value:u},{type:"bytes32",value:h},{type:"address",value:p},{type:"uint256",value:b}];return this.buildRawTransaction(o,"swap(uint256,bytes32,bytes32,address,uint256)",S,"0",m)}async buildRawTransactionSend(r){let a=await Ye(this.chainType,r,this.api);return this.buildRawTransactionSendFromParams(a)}async buildRawTransactionSendFromParams(r){let{amount:a,contractAddress:o,fromAccountAddress:m,fromTokenAddress:u,toChainId:p,toAccountAddress:h,toTokenAddress:b,messenger:S,fee:C,gasFeePaymentMethod:x,extraGas:B}=r,R=C;B&&(R=To(R).plus(B).toFixed());let M=nt().toString(),F,W,D;return S==3?(x==="stablecoin"?(F=[{type:"uint256",value:a},{type:"bytes32",value:h},{type:"uint256",value:p},{type:"uint256",value:R}],W="0"):(F=[{type:"uint256",value:a},{type:"bytes32",value:h},{type:"uint256",value:p},{type:"uint256",value:0}],W=R),D="bridge(uint256,bytes32,uint256,uint256)"):(x==="stablecoin"?(F=[{type:"bytes32",value:u},{type:"uint256",value:a},{type:"bytes32",value:h},{type:"uint256",value:p},{type:"bytes32",value:b},{type:"uint256",value:M},{type:"uint8",value:S},{type:"uint256",value:R}],W="0"):(F=[{type:"bytes32",value:u},{type:"uint256",value:a},{type:"bytes32",value:h},{type:"uint256",value:p},{type:"bytes32",value:b},{type:"uint256",value:M},{type:"uint8",value:S},{type:"uint256",value:0}],W=R),D="swapAndBridge(bytes32,uint256,bytes32,uint256,bytes32,uint256,uint8,uint256)"),this.buildRawTransaction(o,D,F,W,m)}async buildRawTransaction(r,a,o,m,u){let p=await this.tronWeb.transactionBuilder.triggerSmartContract(r,a,{callValue:+m},o,u);if(!p?.result?.result)throw new O("Unknown error: "+JSON.stringify(p,null,2));return p.transaction}};var rr=class{constructor(i,r,a,o){this.api=i;this.nodeRpcUrlsConfig=r;this.params=a;this.tokenService=o;this.rawTxBuilder=new jn(i,r,a,o)}rawTxBuilder;async getAllowance(i,r){let a,o;r?(a=i,o=r):o=i;let m=cn(o.token,o.messenger);return await this.tokenService.getAllowance({...o,spender:m},a)}async checkAllowance(i,r){let a,o;r?(a=i,o=r):o=i;let m=cn(o.token,o.messenger);return this.tokenService.checkAllowance({...o,spender:m},a)}async approve(i,r){let a=cn(r.token,r.messenger);return this.tokenService.approve(i,{...r,spender:a})}async send(i,r){return ee(r.amount),ne("amount",r.amount,r.sourceToken.decimals),Vn(r.sourceToken.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,i).send(r)}};function cn(s,i){if(i&&i==3){if(s.cctpAddress)return s.cctpAddress;throw new Je("Such route does not support CCTP protocol")}else return s.bridgeAddress}function Vn(s,i,r,a,o){switch(Q.getChainProperty(s).chainType){case"EVM":{if(o)return new on(o,i,r);{let m=r.getNodeRpcUrl(s);return new on(new So(m),i,r)}}case"TRX":{if(o)return new ln(o,i);{let m=r.getNodeRpcUrl(s);return new ln(new bo({fullHost:m,solidityNode:m,eventServer:m}),i)}}case"SOLANA":return new Ln(r.getNodeRpcUrl("SOL"),{wormholeMessengerProgramId:a.wormholeMessengerProgramId,solanaLookUpTable:a.solanaLookUpTable,cctpParams:a.cctpParams,jupiterUrl:a.jupiterUrl,jupiterMaxAccounts:a.jupiterMaxAccounts},i);case"SRB":return new Xn(r,a,i);case"SUI":return new er(r,i)}}g();y();f();import{Big as Uo}from"big.js";import Eo from"timed-cache";import{TronWeb as Go}from"tronweb";import{FMT_BYTES as Zo,FMT_NUMBER as jo,Web3 as Vo}from"web3";g();y();f();import{Big as lt}from"big.js";function Za(s,i,r,a,o){let m=z(s,3),u=lt(m),p=lt(r),h=lt(a).plus(o),b,S;if(p.eq(0)||h.eq(0)){let x=u.div(2);b=lt(a).plus(x),S=lt(o).plus(x)}else b=lt(a).plus(u.mul(a).div(h)),S=lt(o).plus(u.mul(o).div(h));return lt(Gi(i,b.toFixed(),S.toFixed())).minus(p).toFixed()}function ja(s){let i=z(s,3);return lt(i).round().toFixed()}g();y();f();import{Web3 as Pt}from"web3";g();y();f();var Po={abi:[{inputs:[{internalType:"address",name:"_router",type:"address"},{internalType:"uint256",name:"_a",type:"uint256"},{internalType:"contract ERC20",name:"_token",type:"address"},{internalType:"uint16",name:"_feeShareBP",type:"uint16"},{internalType:"uint256",name:"_balanceRatioMinBP",type:"uint256"},{internalType:"string",name:"lpName",type:"string"},{internalType:"string",name:"lpSymbol",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Deposit",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"RewardsClaimed",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"recipient",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"vUsdAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fee",type:"uint256"}],name:"SwappedFromVUsd",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"sender",type:"address"},{indexed:!1,internalType:"address",name:"token",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"vUsdAmount",type:"uint256"},{indexed:!1,internalType:"uint256",name:"fee",type:"uint256"}],name:"SwappedToVUsd",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"user",type:"address"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"Withdraw",type:"event"},{stateMutability:"payable",type:"fallback"},{inputs:[],name:"a",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"accRewardPerShareP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"adjustTotalLpAmount",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"adminFeeAmount",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"adminFeeShareBP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"balanceRatioMinBP",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"canDeposit",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"canWithdraw",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"claimAdminFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"claimRewards",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"d",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"pure",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"deposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"feeShareBP",outputs:[{internalType:"uint16",name:"",type:"uint16"}],stateMutability:"view",type:"function"},{inputs:[],name:"getPrice",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"x",type:"uint256"}],name:"getY",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"pendingReward",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"reserves",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"router",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"_adminFeeShareBP",type:"uint256"}],name:"setAdminFeeShare",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"_balanceRatioMinBP",type:"uint256"}],name:"setBalanceRatioMinBP",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint16",name:"_feeShareBP",type:"uint16"}],name:"setFeeShare",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_router",type:"address"}],name:"setRouter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"_stopAuthority",type:"address"}],name:"setStopAuthority",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"startDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"startWithdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"stopDeposit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"stopWithdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"uint256",name:"receiveAmountMin",type:"uint256"},{internalType:"bool",name:"zeroFee",type:"bool"}],name:"swapFromVUsd",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"},{internalType:"bool",name:"zeroFee",type:"bool"}],name:"swapToVUsd",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"token",outputs:[{internalType:"contract ERC20",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"tokenBalance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"user",type:"address"}],name:"userRewardDebt",outputs:[{internalType:"uint256",name:"amount",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"vUsdBalance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"uint256",name:"amountLp",type:"uint256"}],name:"withdraw",outputs:[],stateMutability:"nonpayable",type:"function"},{stateMutability:"payable",type:"receive"}]},Yt=Po;g();y();f();g();y();f();var Re=class{lpAmount;rewardDebt;constructor(i){this.lpAmount=i.lpAmount,this.rewardDebt=i.rewardDebt}get userLiquidity(){return K(this.lpAmount,3).toFixed()}earned(i,r){let a=Ui(this.lpAmount,this.rewardDebt,i.accRewardPerShareP,i.p);return r?K(a,r).toFixed():a}};g();y();f();var Ne=class{};var dn=class extends Ne{constructor(r,a){super();this.web3=r;this.api=a}chainType="EVM";P=52;async getUserBalanceInfo(r,a){let o;try{o=await Dn(this.getUserBalanceInfoByBatch(r,a),`Cannot get UserBalanceInfo for ${a.name} on ${a.chainSymbol}`,5e3)}catch{o=await Zr(()=>this.getUserBalanceInfoPerProperty(r,a),`Cannot get UserBalanceInfo for ${a.name} on ${a.chainSymbol}`,5,2e3)}return o}async getPoolInfoFromChain(r){let a;try{a=await Dn(this.getPoolInfoByBatch(r),`Cannot get PoolInfo for ${r.name} on ${r.chainSymbol}`,5e3)}catch{a=await Zr(()=>this.getPoolInfoPerProperty(r),`Cannot get PoolInfo for ${r.name} on ${r.chainSymbol}`,5,2e3)}return a}async getUserBalanceInfoByBatch(r,a){let o=new this.web3.eth.BatchRequest,m=this.getPoolContract(a.poolAddress),u=m.methods.userRewardDebt(r).encodeABI(),p=m.methods.balanceOf(r).encodeABI();o.add({method:"eth_call",params:[{to:a.poolAddress,data:u},"latest"]}),o.add({method:"eth_call",params:[{to:a.poolAddress,data:p},"latest"]});let[h,b]=await o.execute();if(h&&b&&!h.error&&!b.error)return new Re({lpAmount:Pt.utils.toBigInt(b.result).toString(),rewardDebt:Pt.utils.toBigInt(h.result).toString()});throw new Error("Batched failed")}async getUserBalanceInfoPerProperty(r,a){let o=(await this.getPoolContract(a.poolAddress).methods.userRewardDebt(r).call()).toString(),m=(await this.getPoolContract(a.poolAddress).methods.balanceOf(r).call()).toString();return new Re({lpAmount:m,rewardDebt:o})}async getPoolInfoByBatch(r){let a=new this.web3.eth.BatchRequest,o=this.getPoolContract(r.poolAddress),m=o.methods.a().encodeABI(),u=o.methods.d().encodeABI(),p=o.methods.tokenBalance().encodeABI(),h=o.methods.vUsdBalance().encodeABI(),b=o.methods.totalSupply().encodeABI(),S=o.methods.accRewardPerShareP().encodeABI();a.add({method:"eth_call",params:[{to:r.poolAddress,data:m},"latest"]}),a.add({method:"eth_call",params:[{to:r.poolAddress,data:u},"latest"]}),a.add({method:"eth_call",params:[{to:r.poolAddress,data:p},"latest"]}),a.add({method:"eth_call",params:[{to:r.poolAddress,data:h},"latest"]}),a.add({method:"eth_call",params:[{to:r.poolAddress,data:b},"latest"]}),a.add({method:"eth_call",params:[{to:r.poolAddress,data:S},"latest"]});let[C,x,B,R,M,F]=await a.execute();if(C&&x&&B&&R&&M&&F&&!C.error&&!x.error&&!B.error&&!R.error&&!M.error&&!F.error){let W=Pt.utils.toBigInt(B.result).toString(),D=Pt.utils.toBigInt(R.result).toString(),U=Be({tokenBalance:W,vUsdBalance:D});return{aValue:Pt.utils.toBigInt(C.result).toString(),dValue:Pt.utils.toBigInt(x.result).toString(),tokenBalance:W,vUsdBalance:D,totalLpAmount:Pt.utils.toBigInt(M.result).toString(),accRewardPerShareP:Pt.utils.toBigInt(F.result).toString(),p:this.P,imbalance:U}}throw new Error("Batched failed")}async getPoolInfoPerProperty(r){let a=this.getPoolContract(r.poolAddress),o=(await a.methods.a().call()).toString(),m=(await a.methods.d().call()).toString(),u=(await a.methods.tokenBalance().call()).toString(),p=(await a.methods.vUsdBalance().call()).toString(),h=(await a.methods.totalSupply().call()).toString(),b=(await a.methods.accRewardPerShareP().call()).toString(),S=Be({tokenBalance:u,vUsdBalance:p});return{aValue:o,dValue:m,tokenBalance:u,vUsdBalance:p,totalLpAmount:h,accRewardPerShareP:b,p:this.P,imbalance:S}}async buildRawTransactionDeposit(r){return Promise.resolve({...this.buildTxParams(r),data:this.getPoolContract(r.token.poolAddress).methods.deposit(r.amount).encodeABI()})}async buildRawTransactionWithdraw(r){return Promise.resolve({...this.buildTxParams(r),data:this.getPoolContract(r.token.poolAddress).methods.withdraw(r.amount).encodeABI()})}async buildRawTransactionClaimRewards(r){return Promise.resolve({...this.buildTxParams(r),data:this.getPoolContract(r.token.poolAddress).methods.claimRewards().encodeABI()})}buildTxParams(r){return{from:r.accountAddress,to:r.token.poolAddress,value:"0"}}getPoolContract(r){return new this.web3.eth.Contract(Yt.abi,r)}};g();y();f();var ir=class{constructor(i,r,a,o){this.api=i;this.nodeRpcUrlsConfig=r;this.params=a;this.tokenService=o}async approve(i,r){if(r){let a=i,o=r;return this.tokenService.buildRawTransactionApprove({...o,spender:o.token.poolAddress},a)}else{let a=i;return this.tokenService.buildRawTransactionApprove({...a,spender:a.token.poolAddress})}}async deposit(i,r){return ee(i.amount),ne("amount",i.amount,i.token.decimals),i.amount=z(i.amount,i.token.decimals).toFixed(),Kt(i.token.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,r).buildRawTransactionDeposit(i)}async withdraw(i,r){return ee(i.amount),ne("amount",i.amount,i.token.decimals),i.amount=z(i.amount,3).toFixed(),Kt(i.token.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,r).buildRawTransactionWithdraw(i)}async claimRewards(i,r){return Kt(i.token.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,r).buildRawTransactionClaimRewards(i)}};g();y();f();import{AnchorProvider as wo,BN as Va,Program as Co,Spl as Bo,web3 as Io}from"@project-serum/anchor";import{Connection as Ro,PublicKey as wt}from"@solana/web3.js";var ar=class extends Ne{constructor(r,a){super();this.solanaRpcUrl=r;this.api=a}chainType="SOLANA";P=48;async getUserBalanceInfo(r,a){let o=this.buildAnchorProvider(r),m=this.getBridge(a.bridgeAddress,o),u=new wt(a.poolAddress),p=await m.account.pool.fetch(u);try{let h=await _r(new wt(r),p.mint,m.programId),{lpAmount:b,rewardDebt:S}=await m.account.userDeposit.fetch(h);return new Re({lpAmount:b.toString(),rewardDebt:S.toString()})}catch{return new Re({lpAmount:"0",rewardDebt:"0"})}}async getPoolInfoFromChain(r){let a=this.buildAnchorProvider(r.bridgeAddress),o=await this.getBridge(r.bridgeAddress,a).account.pool.fetch(r.poolAddress),m=o.vUsdBalance.toString(),u=o.tokenBalance.toString(),p=Be({tokenBalance:u,vUsdBalance:m});return{dValue:o.d.toString(),aValue:o.a.toString(),totalLpAmount:o.totalLpAmount.toString(),vUsdBalance:m,tokenBalance:u,accRewardPerShareP:o.accRewardPerShareP.toString(),p:this.P,imbalance:p}}async buildRawTransactionDeposit(r){let{bridge:a,accounts:o,preInstructions:m}=await this.prepareDataForTransaction(r),u=await a.methods.deposit(new Va(r.amount)).accounts(o).preInstructions(m).transaction();return u.recentBlockhash=(await this.buildAnchorProvider(r.accountAddress).connection.getLatestBlockhash()).blockhash,u.feePayer=new wt(r.accountAddress),await Jt(u,r.txFeeParams,this.solanaRpcUrl),u}async buildRawTransactionWithdraw(r){let{bridge:a,accounts:o,preInstructions:m}=await this.prepareDataForTransaction(r),u=await a.methods.withdraw(new Va(r.amount)).accounts(o).preInstructions(m).transaction();return u.recentBlockhash=(await this.buildAnchorProvider(r.accountAddress).connection.getLatestBlockhash()).blockhash,u.feePayer=new wt(r.accountAddress),await Jt(u,r.txFeeParams,this.solanaRpcUrl),u}async buildRawTransactionClaimRewards(r){let{bridge:a,accounts:o,preInstructions:m}=await this.prepareDataForTransaction(r),u=await a.methods.claimRewards().accounts(o).preInstructions(m).transaction();return u.recentBlockhash=(await this.buildAnchorProvider(r.accountAddress).connection.getLatestBlockhash()).blockhash,u.feePayer=new wt(r.accountAddress),await Jt(u,r.txFeeParams,this.solanaRpcUrl),u}async prepareDataForTransaction(r){let a=this.buildAnchorProvider(r.accountAddress),o=this.getBridge(r.token.bridgeAddress,a),{accounts:m,preInstructions:u}=await this._getLPTransactionData(o,r.token.poolAddress,r.accountAddress,a);return{bridge:o,accounts:m,preInstructions:u}}getBridge(r,a){return new Co(An,r,a)}buildAnchorProvider(r){let a=new Ro(this.solanaRpcUrl,"confirmed"),o=new wt(r);return new wo(a,{publicKey:o},{preflightCommitment:"confirmed",commitment:"confirmed"})}async _getLPTransactionData(r,a,o,m){let u=new wt(o),p=await ft(r.programId),h=await Vt(r.programId),b=new wt(a),C=(await r.account.pool.fetch(b)).mint,x=await Le(u,C),B=await _t(C,r.programId),R=await _r(u,C,r.programId),M=[Io.ComputeBudgetProgram.setComputeUnitLimit({units:1e6})];try{await $t(x,m)}catch{let U=await Bo.associatedToken(m).methods.create().accounts({mint:C,owner:u,associatedAccount:x}).instruction();M.push(U)}try{await r.account.userDeposit.fetch(R)}catch{let D=await r.methods.initDepositAccount().accounts({mint:C,user:u,userDeposit:R}).instruction();M.push(D)}return{accounts:{mint:C,user:u,config:p,pool:b,bridgeAuthority:h,userDeposit:R,userToken:x,bridgeToken:B},preInstructions:M}}};g();y();f();import{contract as UR}from"@stellar/stellar-sdk";g();y();f();import{contract as t}from"@stellar/stellar-sdk";var vo=t.Spec,ko=t.Client;var sr=class extends ko{constructor(r){super(new vo(["AAAAAAAAAAAAAAAKaW5pdGlhbGl6ZQAAAAAABwAAAAAAAAAFYWRtaW4AAAAAAAATAAAAAAAAAAZicmlkZ2UAAAAAABMAAAAAAAAAAWEAAAAAAAAKAAAAAAAAAAV0b2tlbgAAAAAAABMAAAAAAAAADGZlZV9zaGFyZV9icAAAAAoAAAAAAAAAFGJhbGFuY2VfcmF0aW9fbWluX2JwAAAACgAAAAAAAAASYWRtaW5fZmVlX3NoYXJlX2JwAAAAAAAKAAAAAQAAA+kAAAPtAAAAAAAAAAM=","AAAAAAAAAAAAAAAHZGVwb3NpdAAAAAACAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAABmFtb3VudAAAAAAACgAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAId2l0aGRyYXcAAAACAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAACWFtb3VudF9scAAAAAAAAAoAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAANc3dhcF90b192X3VzZAAAAAAAAAMAAAAAAAAABHVzZXIAAAATAAAAAAAAAAZhbW91bnQAAAAAAAoAAAAAAAAACHplcm9fZmVlAAAAAQAAAAEAAAPpAAAACgAAAAM=","AAAAAAAAAAAAAAAPc3dhcF9mcm9tX3ZfdXNkAAAAAAQAAAAAAAAABHVzZXIAAAATAAAAAAAAAAt2dXNkX2Ftb3VudAAAAAAKAAAAAAAAABJyZWNlaXZlX2Ftb3VudF9taW4AAAAAAAoAAAAAAAAACHplcm9fZmVlAAAAAQAAAAEAAAPpAAAACgAAAAM=","AAAAAAAAAAAAAAANY2xhaW1fcmV3YXJkcwAAAAAAAAEAAAAAAAAABnNlbmRlcgAAAAAAEwAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAdgYWRtaW5gAAAAAA1zZXRfZmVlX3NoYXJlAAAAAAAAAQAAAAAAAAAMZmVlX3NoYXJlX2JwAAAACgAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAWYWRqdXN0X3RvdGFsX2xwX2Ftb3VudAAAAAAAAAAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAYc2V0X2JhbGFuY2VfcmF0aW9fbWluX2JwAAAAAQAAAAAAAAAUYmFsYW5jZV9yYXRpb19taW5fYnAAAAAKAAAAAQAAA+kAAAPtAAAAAAAAAAM=","AAAAAAAAAAAAAAAMc3RvcF9kZXBvc2l0AAAAAAAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAANc3RhcnRfZGVwb3NpdAAAAAAAAAAAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAANc3RvcF93aXRoZHJhdwAAAAAAAAAAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAAOc3RhcnRfd2l0aGRyYXcAAAAAAAAAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAASc2V0X3N0b3BfYXV0aG9yaXR5AAAAAAABAAAAAAAAAA5zdG9wX2F1dGhvcml0eQAAAAAAEwAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAAKc2V0X2JyaWRnZQAAAAAAAQAAAAAAAAAGYnJpZGdlAAAAAAATAAAAAQAAA+kAAAPtAAAAAAAAAAM=","AAAAAAAAAAAAAAAJc2V0X2FkbWluAAAAAAAAAQAAAAAAAAAJbmV3X2FkbWluAAAAAAAAEwAAAAEAAAPpAAAD7QAAAAAAAAAD","AAAAAAAAAAAAAAATc2V0X2FkbWluX2ZlZV9zaGFyZQAAAAABAAAAAAAAABJhZG1pbl9mZWVfc2hhcmVfYnAAAAAAAAoAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAAAAAAPY2xhaW1fYWRtaW5fZmVlAAAAAAAAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAAAAAAZgdmlld2AAAAAAAA5wZW5kaW5nX3Jld2FyZAAAAAAAAQAAAAAAAAAEdXNlcgAAABMAAAABAAAD6QAAAAoAAAAD","AAAAAAAAAAAAAAAIZ2V0X3Bvb2wAAAAAAAAAAQAAA+kAAAfQAAAABFBvb2wAAAAD","AAAAAAAAAAAAAAAJZ2V0X2FkbWluAAAAAAAAAAAAAAEAAAPpAAAAEwAAAAM=","AAAAAAAAAAAAAAASZ2V0X3N0b3BfYXV0aG9yaXR5AAAAAAAAAAAAAQAAA+kAAAATAAAAAw==","AAAAAAAAAAAAAAAKZ2V0X2JyaWRnZQAAAAAAAAAAAAEAAAPpAAAAEwAAAAM=","AAAAAAAAAAAAAAAQZ2V0X3VzZXJfZGVwb3NpdAAAAAEAAAAAAAAABHVzZXIAAAATAAAAAQAAA+kAAAfQAAAAC1VzZXJEZXBvc2l0AAAAAAM=","AAAAAAAAAAAAAAAHdXBncmFkZQAAAAABAAAAAAAAAA1uZXdfd2FzbV9oYXNoAAAAAAAD7gAAACAAAAABAAAD6QAAA+0AAAAAAAAAAw==","AAAAAQAAAAAAAAAAAAAAD1N3YXBwZWRGcm9tVlVzZAAAAAAFAAAAAAAAAAZhbW91bnQAAAAAAAoAAAAAAAAAA2ZlZQAAAAAKAAAAAAAAAAlyZWNpcGllbnQAAAAAAAATAAAAAAAAAAV0b2tlbgAAAAAAABMAAAAAAAAAC3Z1c2RfYW1vdW50AAAAAAo=","AAAAAQAAAAAAAAAAAAAADVN3YXBwZWRUb1ZVc2QAAAAAAAAFAAAAAAAAAAZhbW91bnQAAAAAAAoAAAAAAAAAA2ZlZQAAAAAKAAAAAAAAAAZzZW5kZXIAAAAAABMAAAAAAAAABXRva2VuAAAAAAAAEwAAAAAAAAALdnVzZF9hbW91bnQAAAAACg==","AAAAAQAAAAAAAAAAAAAAB0RlcG9zaXQAAAAAAgAAAAAAAAAGYW1vdW50AAAAAAAKAAAAAAAAAAR1c2VyAAAAEw==","AAAAAQAAAAAAAAAAAAAACFdpdGhkcmF3AAAAAgAAAAAAAAAGYW1vdW50AAAAAAAKAAAAAAAAAAR1c2VyAAAAEw==","AAAAAQAAAAAAAAAAAAAADlJld2FyZHNDbGFpbWVkAAAAAAACAAAAAAAAAAZhbW91bnQAAAAAAAoAAAAAAAAABHVzZXIAAAAT","AAAAAQAAAAAAAAAAAAAABkJyaWRnZQAAAAAAAQAAAAAAAAABMAAAAAAAABM=","AAAAAgAAAAAAAAAAAAAAB0RhdGFLZXkAAAAAAQAAAAEAAAAAAAAAC1VzZXJEZXBvc2l0AAAAAAEAAAAT","AAAAAQAAAAAAAAAAAAAABFBvb2wAAAAPAAAAAAAAAAFhAAAAAAAACgAAAAAAAAAWYWNjX3Jld2FyZF9wZXJfc2hhcmVfcAAAAAAACgAAAAAAAAAQYWRtaW5fZmVlX2Ftb3VudAAAAAoAAAAAAAAAEmFkbWluX2ZlZV9zaGFyZV9icAAAAAAACgAAAAAAAAAUYmFsYW5jZV9yYXRpb19taW5fYnAAAAAKAAAAAAAAAAtjYW5fZGVwb3NpdAAAAAABAAAAAAAAAAxjYW5fd2l0aGRyYXcAAAABAAAAAAAAAAFkAAAAAAAACgAAAAAAAAAIZGVjaW1hbHMAAAAEAAAAAAAAAAxmZWVfc2hhcmVfYnAAAAAKAAAAAAAAAAhyZXNlcnZlcwAAAAoAAAAAAAAABXRva2VuAAAAAAAAEwAAAAAAAAANdG9rZW5fYmFsYW5jZQAAAAAAAAoAAAAAAAAAD3RvdGFsX2xwX2Ftb3VudAAAAAAKAAAAAAAAAA12X3VzZF9iYWxhbmNlAAAAAAAACg==","AAAAAQAAAAAAAAAAAAAAC1VzZXJEZXBvc2l0AAAAAAIAAAAAAAAACWxwX2Ftb3VudAAAAAAAAAoAAAAAAAAAC3Jld2FyZF9kZWJ0AAAAAAo=","AAAAAQAAAAAAAAAAAAAABUFkbWluAAAAAAAAAQAAAAAAAAABMAAAAAAAABM=","AAAAAQAAAAAAAAAAAAAAEEdhc09yYWNsZUFkZHJlc3MAAAABAAAAAAAAAAEwAAAAAAAAEw==","AAAAAQAAAAAAAAAAAAAACEdhc1VzYWdlAAAAAQAAAAAAAAABMAAAAAAAA+wAAAAEAAAACg==","AAAAAQAAAAAAAAAAAAAAC05hdGl2ZVRva2VuAAAAAAEAAAAAAAAAATAAAAAAAAAT","AAAAAQAAAAAAAAAAAAAADVN0b3BBdXRob3JpdHkAAAAAAAABAAAAAAAAAAEwAAAAAAAAEw==","AAAABAAAAAAAAAAAAAAABUVycm9yAAAAAAAAKAAAAAAAAAANVW5pbXBsZW1lbnRlZAAAAAAAAAAAAAAAAAAAC0luaXRpYWxpemVkAAAAAAEAAAAAAAAADVVuaW5pdGlhbGl6ZWQAAAAAAAACAAAAAAAAAAxVbmF1dGhvcml6ZWQAAAADAAAAAAAAAApJbnZhbGlkQXJnAAAAAAAEAAAAAAAAAA5JbnZhbGlkQ2hhaW5JZAAAAAAABQAAAAAAAAATSW52YWxpZE90aGVyQ2hhaW5JZAAAAAAGAAAAAAAAAA5HYXNVc2FnZU5vdFNldAAAAAAABwAAAAAAAAANQnJva2VuQWRkcmVzcwAAAAAAAAgAAAAAAAAACE5vdEZvdW5kAAAACQAAAAAAAAAYVG9rZW5JbnN1ZmZpY2llbnRCYWxhbmNlAAAACgAAAAAAAAAKQ2FzdEZhaWxlZAAAAAAACwAAAAAAAAAMVTI1Nk92ZXJmbG93AAAADAAAAAAAAAAKWmVyb0Ftb3VudAAAAAAAZwAAAAAAAAAMUG9vbE92ZXJmbG93AAAAaAAAAAAAAAALWmVyb0NoYW5nZXMAAAAAaQAAAAAAAAARUmVzZXJ2ZXNFeGhhdXN0ZWQAAAAAAABqAAAAAAAAABpJbnN1ZmZpY2llbnRSZWNlaXZlZEFtb3VudAAAAAAAawAAAAAAAAAUQmFsYW5jZVJhdGlvRXhjZWVkZWQAAABsAAAAAAAAAAlGb3JiaWRkZW4AAAAAAABtAAAAAAAAABlVbmF1dGhvcml6ZWRTdG9wQXV0aG9yaXR5AAAAAAAAywAAAAAAAAAOU3dhcFByb2hpYml0ZWQAAAAAAMwAAAAAAAAAEkFtb3VudFRvb0xvd0ZvckZlZQAAAAAAzQAAAAAAAAAWQnJpZGdlVG9UaGVaZXJvQWRkcmVzcwAAAAAAzgAAAAAAAAAORW1wdHlSZWNpcGllbnQAAAAAAM8AAAAAAAAAE1NvdXJjZU5vdFJlZ2lzdGVyZWQAAAAA0AAAAAAAAAAVV3JvbmdEZXN0aW5hdGlvbkNoYWluAAAAAAAA0QAAAAAAAAATVW5rbm93bkFub3RoZXJDaGFpbgAAAADSAAAAAAAAABFUb2tlbnNBbHJlYWR5U2VudAAAAAAAANMAAAAAAAAAEE1lc3NhZ2VQcm9jZXNzZWQAAADUAAAAAAAAAAxOb3RFbm91Z2hGZWUAAADWAAAAAAAAAAlOb01lc3NhZ2UAAAAAAADXAAAAAAAAAA1Ob1JlY2VpdmVQb29sAAAAAAAA2AAAAAAAAAAGTm9Qb29sAAAAAADZAAAAAAAAABNVbmtub3duQW5vdGhlclRva2VuAAAAANoAAAAAAAAAD1dyb25nQnl0ZUxlbmd0aAAAAAEsAAAAAAAAAApIYXNNZXNzYWdlAAAAAAEtAAAAAAAAABdJbnZhbGlkUHJpbWFyeVNpZ25hdHVyZQAAAAEuAAAAAAAAABlJbnZhbGlkU2Vjb25kYXJ5U2lnbmF0dXJlAAAAAAABLwAAAAAAAAARTm9HYXNEYXRhRm9yQ2hhaW4AAAAAAAGQ"]),r);this.options=r}fromJSON={initialize:this.txFromJSON,deposit:this.txFromJSON,withdraw:this.txFromJSON,swap_to_v_usd:this.txFromJSON,swap_from_v_usd:this.txFromJSON,claim_rewards:this.txFromJSON,set_fee_share:this.txFromJSON,adjust_total_lp_amount:this.txFromJSON,set_balance_ratio_min_bp:this.txFromJSON,stop_deposit:this.txFromJSON,start_deposit:this.txFromJSON,stop_withdraw:this.txFromJSON,start_withdraw:this.txFromJSON,set_stop_authority:this.txFromJSON,set_bridge:this.txFromJSON,set_admin:this.txFromJSON,set_admin_fee_share:this.txFromJSON,claim_admin_fee:this.txFromJSON,pending_reward:this.txFromJSON,get_pool:this.txFromJSON,get_admin:this.txFromJSON,get_stop_authority:this.txFromJSON,get_bridge:this.txFromJSON,get_user_deposit:this.txFromJSON,upgrade:this.txFromJSON}};var or=class extends Ne{constructor(r,a,o){super();this.nodeRpcUrlsConfig=r;this.params=a;this.api=o}chainType="SRB";P=48;async getUserBalanceInfo(r,a){let m=(await this.getContract(a.poolAddress).get_user_deposit({user:r})).result;if(m.isErr())throw new O;let u=m.unwrap();return new Re({lpAmount:u.lp_amount.toString(),rewardDebt:u.reward_debt.toString()})}async getPoolInfoFromChain(r){let o=(await this.getContract(r.poolAddress).get_pool()).result;if(o.isErr())throw new O;let m=o.unwrap();return{aValue:m.a.toString(),accRewardPerShareP:m.acc_reward_per_share_p.toString(),dValue:m.d.toString(),tokenBalance:m.token_balance.toString(),p:this.P,totalLpAmount:m.total_lp_amount.toString(),vUsdBalance:m.v_usd_balance.toString(),imbalance:Be({tokenBalance:m.token_balance.toString(),vUsdBalance:m.v_usd_balance.toString()})}}async buildRawTransactionDeposit(r){return(await this.getContract(r.token.poolAddress,r.accountAddress).deposit({sender:r.accountAddress,amount:BigInt(r.amount)})).toXDR()}async buildRawTransactionWithdraw(r){return(await this.getContract(r.token.poolAddress,r.accountAddress).withdraw({sender:r.accountAddress,amount_lp:BigInt(r.amount)})).toXDR()}async buildRawTransactionClaimRewards(r){return(await this.getContract(r.token.poolAddress,r.accountAddress).claim_rewards({sender:r.accountAddress})).toXDR()}getContract(r,a){let o={publicKey:a,contractId:r,networkPassphrase:this.params.sorobanNetworkPassphrase,rpcUrl:this.nodeRpcUrlsConfig.getNodeRpcUrl("SRB")};return new sr(o)}};g();y();f();import{SuiClient as Wo}from"@mysten/sui/client";import{Transaction as fr}from"@mysten/sui/transactions";var Qt=$e(Tt());g();y();f();fe();g();y();f();fe();import{bcs as _a}from"@mysten/sui/bcs";import{fromB64 as xo}from"@mysten/sui/utils";function cr(s){return s=G(s),s.startsWith(`${St}::balance::Balance<`)}var Se=class s{__StructClass=!0;static get $typeName(){return`${St}::balance::Balance`}static $numTypeParams=1;static $isPhantom=[!0];$typeName=s.$typeName;$fullTypeName;$typeArgs;$isPhantom=s.$isPhantom;value;constructor(i,r){this.$fullTypeName=H(s.$typeName,...i),this.$typeArgs=i,this.value=r.value}static reified(i){return{typeName:s.$typeName,fullTypeName:H(s.$typeName,V(i)),typeArgs:[V(i)],isPhantom:s.$isPhantom,reifiedTypeArgs:[i],fromFields:r=>s.fromFields(i,r),fromFieldsWithTypes:r=>s.fromFieldsWithTypes(i,r),fromBcs:r=>s.fromBcs(i,r),bcs:s.bcs,fromJSONField:r=>s.fromJSONField(i,r),fromJSON:r=>s.fromJSON(i,r),fromSuiParsedData:r=>s.fromSuiParsedData(i,r),fromSuiObjectData:r=>s.fromSuiObjectData(i,r),fetch:async(r,a)=>s.fetch(r,i,a),new:r=>new s([V(i)],r),kind:"StructClassReified"}}static get r(){return s.reified}static phantom(i){return oe(s.reified(i))}static get p(){return s.phantom}static get bcs(){return _a.struct("Balance",{value:_a.u64()})}static fromFields(i,r){return s.reified(i).new({value:L("u64",r.value)})}static fromFieldsWithTypes(i,r){if(!cr(r.type))throw new Error("not a Balance type");return it(r,[i]),s.reified(i).new({value:$("u64",r.fields.value)})}static fromBcs(i,r){return s.fromFields(i,s.bcs.parse(r))}toJSONField(){return{value:this.value.toString()}}toJSON(){return{$typeName:this.$typeName,$typeArgs:this.$typeArgs,...this.toJSONField()}}static fromJSONField(i,r){return s.reified(i).new({value:J("u64",r.value)})}static fromJSON(i,r){if(r.$typeName!==s.$typeName)throw new Error("not a WithTwoGenerics json object");return He(H(s.$typeName,V(i)),r.$typeArgs,[i]),s.fromJSONField(i,r)}static fromSuiParsedData(i,r){if(r.dataType!=="moveObject")throw new Error("not an object");if(!cr(r.type))throw new Error(`object at ${r.fields.id} is not a Balance object`);return s.fromFieldsWithTypes(i,r)}static fromSuiObjectData(i,r){if(r.bcs){if(r.bcs.dataType!=="moveObject"||!cr(r.bcs.type))throw new Error("object at is not a Balance object");let a=be(r.bcs.type).typeArgs;if(a.length!==1)throw new Error(`type argument mismatch: expected 1 type argument but got '${a.length}'`);let o=G(a[0]),m=G(V(i));if(o!==G(V(i)))throw new Error(`type argument mismatch: expected '${m}' but got '${o}'`);return s.fromBcs(i,xo(r.bcs.bcsBytes))}if(r.content)return s.fromSuiParsedData(i,r.content);throw new Error("Both `bcs` and `content` fields are missing from the data. Include `showBcs` or `showContent` in the request.")}static async fetch(i,r,a){let o=await i.getObject({id:a,options:{showBcs:!0}});if(o.error)throw new Error(`error fetching Balance object at id ${a}: ${o.error.code}`);if(o.data?.bcs?.dataType!=="moveObject"||!cr(o.data.bcs.type))throw new Error(`object at id ${a} is not a Balance object`);return s.fromSuiObjectData(r,o.data)}};var li=$e(Tt());g();y();f();fe();var ui=$e(Tt());import{bcs as Ar}from"@mysten/sui/bcs";import{fromB64 as Fo}from"@mysten/sui/utils";function ur(s){return s=G(s),s.startsWith(`${ui.PKG_V1}::pool_rewards::PoolRewards<`)}var Dt=class s{__StructClass=!0;static get $typeName(){return`${ui.PKG_V1}::pool_rewards::PoolRewards`}static $numTypeParams=1;static $isPhantom=[!0];$typeName=s.$typeName;$fullTypeName;$typeArgs;$isPhantom=s.$isPhantom;accRewardPerShareP;adminFeeShareBp;adminFee;rewards;lpSupply;constructor(i,r){this.$fullTypeName=H(s.$typeName,...i),this.$typeArgs=i,this.accRewardPerShareP=r.accRewardPerShareP,this.adminFeeShareBp=r.adminFeeShareBp,this.adminFee=r.adminFee,this.rewards=r.rewards,this.lpSupply=r.lpSupply}static reified(i){return{typeName:s.$typeName,fullTypeName:H(s.$typeName,V(i)),typeArgs:[V(i)],isPhantom:s.$isPhantom,reifiedTypeArgs:[i],fromFields:r=>s.fromFields(i,r),fromFieldsWithTypes:r=>s.fromFieldsWithTypes(i,r),fromBcs:r=>s.fromBcs(i,r),bcs:s.bcs,fromJSONField:r=>s.fromJSONField(i,r),fromJSON:r=>s.fromJSON(i,r),fromSuiParsedData:r=>s.fromSuiParsedData(i,r),fromSuiObjectData:r=>s.fromSuiObjectData(i,r),fetch:async(r,a)=>s.fetch(r,i,a),new:r=>new s([V(i)],r),kind:"StructClassReified"}}static get r(){return s.reified}static phantom(i){return oe(s.reified(i))}static get p(){return s.phantom}static get bcs(){return Ar.struct("PoolRewards",{acc_reward_per_share_p:Ar.u128(),admin_fee_share_bp:Ar.u64(),admin_fee:Se.bcs,rewards:Se.bcs,lp_supply:Ar.u64()})}static fromFields(i,r){return s.reified(i).new({accRewardPerShareP:L("u128",r.acc_reward_per_share_p),adminFeeShareBp:L("u64",r.admin_fee_share_bp),adminFee:L(Se.reified(i),r.admin_fee),rewards:L(Se.reified(i),r.rewards),lpSupply:L("u64",r.lp_supply)})}static fromFieldsWithTypes(i,r){if(!ur(r.type))throw new Error("not a PoolRewards type");return it(r,[i]),s.reified(i).new({accRewardPerShareP:$("u128",r.fields.acc_reward_per_share_p),adminFeeShareBp:$("u64",r.fields.admin_fee_share_bp),adminFee:$(Se.reified(i),r.fields.admin_fee),rewards:$(Se.reified(i),r.fields.rewards),lpSupply:$("u64",r.fields.lp_supply)})}static fromBcs(i,r){return s.fromFields(i,s.bcs.parse(r))}toJSONField(){return{accRewardPerShareP:this.accRewardPerShareP.toString(),adminFeeShareBp:this.adminFeeShareBp.toString(),adminFee:this.adminFee.toJSONField(),rewards:this.rewards.toJSONField(),lpSupply:this.lpSupply.toString()}}toJSON(){return{$typeName:this.$typeName,$typeArgs:this.$typeArgs,...this.toJSONField()}}static fromJSONField(i,r){return s.reified(i).new({accRewardPerShareP:J("u128",r.accRewardPerShareP),adminFeeShareBp:J("u64",r.adminFeeShareBp),adminFee:J(Se.reified(i),r.adminFee),rewards:J(Se.reified(i),r.rewards),lpSupply:J("u64",r.lpSupply)})}static fromJSON(i,r){if(r.$typeName!==s.$typeName)throw new Error("not a WithTwoGenerics json object");return He(H(s.$typeName,V(i)),r.$typeArgs,[i]),s.fromJSONField(i,r)}static fromSuiParsedData(i,r){if(r.dataType!=="moveObject")throw new Error("not an object");if(!ur(r.type))throw new Error(`object at ${r.fields.id} is not a PoolRewards object`);return s.fromFieldsWithTypes(i,r)}static fromSuiObjectData(i,r){if(r.bcs){if(r.bcs.dataType!=="moveObject"||!ur(r.bcs.type))throw new Error("object at is not a PoolRewards object");let a=be(r.bcs.type).typeArgs;if(a.length!==1)throw new Error(`type argument mismatch: expected 1 type argument but got '${a.length}'`);let o=G(a[0]),m=G(V(i));if(o!==G(V(i)))throw new Error(`type argument mismatch: expected '${m}' but got '${o}'`);return s.fromBcs(i,Fo(r.bcs.bcsBytes))}if(r.content)return s.fromSuiParsedData(i,r.content);throw new Error("Both `bcs` and `content` fields are missing from the data. Include `showBcs` or `showContent` in the request.")}static async fetch(i,r,a){let o=await i.getObject({id:a,options:{showBcs:!0}});if(o.error)throw new Error(`error fetching PoolRewards object at id ${a}: ${o.error.code}`);if(o.data?.bcs?.dataType!=="moveObject"||!ur(o.data.bcs.type))throw new Error(`object at id ${a} is not a PoolRewards object`);return s.fromSuiObjectData(r,o.data)}};g();y();f();fe();var mi=$e(Tt());import{bcs as Ht}from"@mysten/sui/bcs";import{fromB64 as Mo}from"@mysten/sui/utils";function mr(s){return s=G(s),s.startsWith(`${mi.PKG_V1}::pool_state::PoolState<`)}var Wt=class s{__StructClass=!0;static get $typeName(){return`${mi.PKG_V1}::pool_state::PoolState`}static $numTypeParams=1;static $isPhantom=[!0];$typeName=s.$typeName;$fullTypeName;$typeArgs;$isPhantom=s.$isPhantom;tokenBalance;vusdBalance;d;a;balanceRatioMinBp;constructor(i,r){this.$fullTypeName=H(s.$typeName,...i),this.$typeArgs=i,this.tokenBalance=r.tokenBalance,this.vusdBalance=r.vusdBalance,this.d=r.d,this.a=r.a,this.balanceRatioMinBp=r.balanceRatioMinBp}static reified(i){return{typeName:s.$typeName,fullTypeName:H(s.$typeName,V(i)),typeArgs:[V(i)],isPhantom:s.$isPhantom,reifiedTypeArgs:[i],fromFields:r=>s.fromFields(i,r),fromFieldsWithTypes:r=>s.fromFieldsWithTypes(i,r),fromBcs:r=>s.fromBcs(i,r),bcs:s.bcs,fromJSONField:r=>s.fromJSONField(i,r),fromJSON:r=>s.fromJSON(i,r),fromSuiParsedData:r=>s.fromSuiParsedData(i,r),fromSuiObjectData:r=>s.fromSuiObjectData(i,r),fetch:async(r,a)=>s.fetch(r,i,a),new:r=>new s([V(i)],r),kind:"StructClassReified"}}static get r(){return s.reified}static phantom(i){return oe(s.reified(i))}static get p(){return s.phantom}static get bcs(){return Ht.struct("PoolState",{token_balance:Ht.u64(),vusd_balance:Ht.u64(),d:Ht.u64(),a:Ht.u64(),balance_ratio_min_bp:Ht.u64()})}static fromFields(i,r){return s.reified(i).new({tokenBalance:L("u64",r.token_balance),vusdBalance:L("u64",r.vusd_balance),d:L("u64",r.d),a:L("u64",r.a),balanceRatioMinBp:L("u64",r.balance_ratio_min_bp)})}static fromFieldsWithTypes(i,r){if(!mr(r.type))throw new Error("not a PoolState type");return it(r,[i]),s.reified(i).new({tokenBalance:$("u64",r.fields.token_balance),vusdBalance:$("u64",r.fields.vusd_balance),d:$("u64",r.fields.d),a:$("u64",r.fields.a),balanceRatioMinBp:$("u64",r.fields.balance_ratio_min_bp)})}static fromBcs(i,r){return s.fromFields(i,s.bcs.parse(r))}toJSONField(){return{tokenBalance:this.tokenBalance.toString(),vusdBalance:this.vusdBalance.toString(),d:this.d.toString(),a:this.a.toString(),balanceRatioMinBp:this.balanceRatioMinBp.toString()}}toJSON(){return{$typeName:this.$typeName,$typeArgs:this.$typeArgs,...this.toJSONField()}}static fromJSONField(i,r){return s.reified(i).new({tokenBalance:J("u64",r.tokenBalance),vusdBalance:J("u64",r.vusdBalance),d:J("u64",r.d),a:J("u64",r.a),balanceRatioMinBp:J("u64",r.balanceRatioMinBp)})}static fromJSON(i,r){if(r.$typeName!==s.$typeName)throw new Error("not a WithTwoGenerics json object");return He(H(s.$typeName,V(i)),r.$typeArgs,[i]),s.fromJSONField(i,r)}static fromSuiParsedData(i,r){if(r.dataType!=="moveObject")throw new Error("not an object");if(!mr(r.type))throw new Error(`object at ${r.fields.id} is not a PoolState object`);return s.fromFieldsWithTypes(i,r)}static fromSuiObjectData(i,r){if(r.bcs){if(r.bcs.dataType!=="moveObject"||!mr(r.bcs.type))throw new Error("object at is not a PoolState object");let a=be(r.bcs.type).typeArgs;if(a.length!==1)throw new Error(`type argument mismatch: expected 1 type argument but got '${a.length}'`);let o=G(a[0]),m=G(V(i));if(o!==G(V(i)))throw new Error(`type argument mismatch: expected '${m}' but got '${o}'`);return s.fromBcs(i,Mo(r.bcs.bcsBytes))}if(r.content)return s.fromSuiParsedData(i,r.content);throw new Error("Both `bcs` and `content` fields are missing from the data. Include `showBcs` or `showContent` in the request.")}static async fetch(i,r,a){let o=await i.getObject({id:a,options:{showBcs:!0}});if(o.error)throw new Error(`error fetching PoolState object at id ${a}: ${o.error.code}`);if(o.data?.bcs?.dataType!=="moveObject"||!mr(o.data.bcs.type))throw new Error(`object at id ${a} is not a PoolState object`);return s.fromSuiObjectData(r,o.data)}};import{bcs as pn}from"@mysten/sui/bcs";import{fromB64 as Oo}from"@mysten/sui/utils";function lr(s){return s=G(s),s.startsWith(`${li.PKG_V1}::pool::Pool<`)}var dr=class s{__StructClass=!0;static get $typeName(){return`${li.PKG_V1}::pool::Pool`}static $numTypeParams=1;static $isPhantom=[!0];$typeName=s.$typeName;$fullTypeName;$typeArgs;$isPhantom=s.$isPhantom;id;state;rewards;feeShareBp;canDeposit;canWithdraw;decimals;balance;constructor(i,r){this.$fullTypeName=H(s.$typeName,...i),this.$typeArgs=i,this.id=r.id,this.state=r.state,this.rewards=r.rewards,this.feeShareBp=r.feeShareBp,this.canDeposit=r.canDeposit,this.canWithdraw=r.canWithdraw,this.decimals=r.decimals,this.balance=r.balance}static reified(i){return{typeName:s.$typeName,fullTypeName:H(s.$typeName,V(i)),typeArgs:[V(i)],isPhantom:s.$isPhantom,reifiedTypeArgs:[i],fromFields:r=>s.fromFields(i,r),fromFieldsWithTypes:r=>s.fromFieldsWithTypes(i,r),fromBcs:r=>s.fromBcs(i,r),bcs:s.bcs,fromJSONField:r=>s.fromJSONField(i,r),fromJSON:r=>s.fromJSON(i,r),fromSuiParsedData:r=>s.fromSuiParsedData(i,r),fromSuiObjectData:r=>s.fromSuiObjectData(i,r),fetch:async(r,a)=>s.fetch(r,i,a),new:r=>new s([V(i)],r),kind:"StructClassReified"}}static get r(){return s.reified}static phantom(i){return oe(s.reified(i))}static get p(){return s.phantom}static get bcs(){return pn.struct("Pool",{id:Ve.bcs,state:Wt.bcs,rewards:Dt.bcs,fee_share_bp:pn.u64(),can_deposit:pn.bool(),can_withdraw:pn.bool(),decimals:pn.u8(),balance:Se.bcs})}static fromFields(i,r){return s.reified(i).new({id:L(Ve.reified(),r.id),state:L(Wt.reified(i),r.state),rewards:L(Dt.reified(i),r.rewards),feeShareBp:L("u64",r.fee_share_bp),canDeposit:L("bool",r.can_deposit),canWithdraw:L("bool",r.can_withdraw),decimals:L("u8",r.decimals),balance:L(Se.reified(i),r.balance)})}static fromFieldsWithTypes(i,r){if(!lr(r.type))throw new Error("not a Pool type");return it(r,[i]),s.reified(i).new({id:$(Ve.reified(),r.fields.id),state:$(Wt.reified(i),r.fields.state),rewards:$(Dt.reified(i),r.fields.rewards),feeShareBp:$("u64",r.fields.fee_share_bp),canDeposit:$("bool",r.fields.can_deposit),canWithdraw:$("bool",r.fields.can_withdraw),decimals:$("u8",r.fields.decimals),balance:$(Se.reified(i),r.fields.balance)})}static fromBcs(i,r){return s.fromFields(i,s.bcs.parse(r))}toJSONField(){return{id:this.id,state:this.state.toJSONField(),rewards:this.rewards.toJSONField(),feeShareBp:this.feeShareBp.toString(),canDeposit:this.canDeposit,canWithdraw:this.canWithdraw,decimals:this.decimals,balance:this.balance.toJSONField()}}toJSON(){return{$typeName:this.$typeName,$typeArgs:this.$typeArgs,...this.toJSONField()}}static fromJSONField(i,r){return s.reified(i).new({id:J(Ve.reified(),r.id),state:J(Wt.reified(i),r.state),rewards:J(Dt.reified(i),r.rewards),feeShareBp:J("u64",r.feeShareBp),canDeposit:J("bool",r.canDeposit),canWithdraw:J("bool",r.canWithdraw),decimals:J("u8",r.decimals),balance:J(Se.reified(i),r.balance)})}static fromJSON(i,r){if(r.$typeName!==s.$typeName)throw new Error("not a WithTwoGenerics json object");return He(H(s.$typeName,V(i)),r.$typeArgs,[i]),s.fromJSONField(i,r)}static fromSuiParsedData(i,r){if(r.dataType!=="moveObject")throw new Error("not an object");if(!lr(r.type))throw new Error(`object at ${r.fields.id} is not a Pool object`);return s.fromFieldsWithTypes(i,r)}static fromSuiObjectData(i,r){if(r.bcs){if(r.bcs.dataType!=="moveObject"||!lr(r.bcs.type))throw new Error("object at is not a Pool object");let a=be(r.bcs.type).typeArgs;if(a.length!==1)throw new Error(`type argument mismatch: expected 1 type argument but got '${a.length}'`);let o=G(a[0]),m=G(V(i));if(o!==G(V(i)))throw new Error(`type argument mismatch: expected '${m}' but got '${o}'`);return s.fromBcs(i,Oo(r.bcs.bcsBytes))}if(r.content)return s.fromSuiParsedData(i,r.content);throw new Error("Both `bcs` and `content` fields are missing from the data. Include `showBcs` or `showContent` in the request.")}static async fetch(i,r,a){let o=await i.getObject({id:a,options:{showBcs:!0}});if(o.error)throw new Error(`error fetching Pool object at id ${a}: ${o.error.code}`);if(o.data?.bcs?.dataType!=="moveObject"||!lr(o.data.bcs.type))throw new Error(`object at id ${a} is not a Pool object`);return s.fromSuiObjectData(r,o.data)}};g();y();f();fe();var pi=$e(Tt());import{bcs as di}from"@mysten/sui/bcs";import{fromB64 as No}from"@mysten/sui/utils";function pr(s){return s=G(s),s.startsWith(`${pi.PKG_V1}::user_deposit::UserDeposit<`)}var gr=class s{__StructClass=!0;static get $typeName(){return`${pi.PKG_V1}::user_deposit::UserDeposit`}static $numTypeParams=1;static $isPhantom=[!0];$typeName=s.$typeName;$fullTypeName;$typeArgs;$isPhantom=s.$isPhantom;id;lpAmount;rewardDebt;constructor(i,r){this.$fullTypeName=H(s.$typeName,...i),this.$typeArgs=i,this.id=r.id,this.lpAmount=r.lpAmount,this.rewardDebt=r.rewardDebt}static reified(i){return{typeName:s.$typeName,fullTypeName:H(s.$typeName,V(i)),typeArgs:[V(i)],isPhantom:s.$isPhantom,reifiedTypeArgs:[i],fromFields:r=>s.fromFields(i,r),fromFieldsWithTypes:r=>s.fromFieldsWithTypes(i,r),fromBcs:r=>s.fromBcs(i,r),bcs:s.bcs,fromJSONField:r=>s.fromJSONField(i,r),fromJSON:r=>s.fromJSON(i,r),fromSuiParsedData:r=>s.fromSuiParsedData(i,r),fromSuiObjectData:r=>s.fromSuiObjectData(i,r),fetch:async(r,a)=>s.fetch(r,i,a),new:r=>new s([V(i)],r),kind:"StructClassReified"}}static get r(){return s.reified}static phantom(i){return oe(s.reified(i))}static get p(){return s.phantom}static get bcs(){return di.struct("UserDeposit",{id:Ve.bcs,lp_amount:di.u64(),reward_debt:di.u64()})}static fromFields(i,r){return s.reified(i).new({id:L(Ve.reified(),r.id),lpAmount:L("u64",r.lp_amount),rewardDebt:L("u64",r.reward_debt)})}static fromFieldsWithTypes(i,r){if(!pr(r.type))throw new Error("not a UserDeposit type");return it(r,[i]),s.reified(i).new({id:$(Ve.reified(),r.fields.id),lpAmount:$("u64",r.fields.lp_amount),rewardDebt:$("u64",r.fields.reward_debt)})}static fromBcs(i,r){return s.fromFields(i,s.bcs.parse(r))}toJSONField(){return{id:this.id,lpAmount:this.lpAmount.toString(),rewardDebt:this.rewardDebt.toString()}}toJSON(){return{$typeName:this.$typeName,$typeArgs:this.$typeArgs,...this.toJSONField()}}static fromJSONField(i,r){return s.reified(i).new({id:J(Ve.reified(),r.id),lpAmount:J("u64",r.lpAmount),rewardDebt:J("u64",r.rewardDebt)})}static fromJSON(i,r){if(r.$typeName!==s.$typeName)throw new Error("not a WithTwoGenerics json object");return He(H(s.$typeName,V(i)),r.$typeArgs,[i]),s.fromJSONField(i,r)}static fromSuiParsedData(i,r){if(r.dataType!=="moveObject")throw new Error("not an object");if(!pr(r.type))throw new Error(`object at ${r.fields.id} is not a UserDeposit object`);return s.fromFieldsWithTypes(i,r)}static fromSuiObjectData(i,r){if(r.bcs){if(r.bcs.dataType!=="moveObject"||!pr(r.bcs.type))throw new Error("object at is not a UserDeposit object");let a=be(r.bcs.type).typeArgs;if(a.length!==1)throw new Error(`type argument mismatch: expected 1 type argument but got '${a.length}'`);let o=G(a[0]),m=G(V(i));if(o!==G(V(i)))throw new Error(`type argument mismatch: expected '${m}' but got '${o}'`);return s.fromBcs(i,No(r.bcs.bcsBytes))}if(r.content)return s.fromSuiParsedData(i,r.content);throw new Error("Both `bcs` and `content` fields are missing from the data. Include `showBcs` or `showContent` in the request.")}static async fetch(i,r,a){let o=await i.getObject({id:a,options:{showBcs:!0}});if(o.error)throw new Error(`error fetching UserDeposit object at id ${a}: ${o.error.code}`);if(o.data?.bcs?.dataType!=="moveObject"||!pr(o.data.bcs.type))throw new Error(`object at id ${a} is not a UserDeposit object`);return s.fromSuiObjectData(r,o.data)}};g();y();f();function Ja(s,i,r){if(i.length===0||!i[0])return[];let a=i[0],o=s.reduce((p,h)=>p+BigInt(h),BigInt(0)),m=BigInt(a.balance),u=[];for(let p of i.slice(1)){if(m>o)return $a(r,a,u,s);m+=BigInt(p.balance),u.push(p)}return m>=o?$a(r,a,u,s):[]}function $a(s,i,r,a){let o=a.map(m=>s.pure.u64(m));return r.length>0&&s.mergeCoins(i.coinObjectId,r.map(m=>m.coinObjectId)),s.splitCoins(i.coinObjectId,o)}g();y();f();var Do="0x0000000000000000000000000000000000000000000000000000000000000000";async function La(s,i,r){let a=await s.devInspectTransactionBlock({sender:Do,transactionBlock:i});if(a.effects.status.status!=="success")throw new Error(`inspectionResult failed. ${JSON.stringify(a,null,2)}`);let o=a.results?.pop()?.returnValues?.pop();if(!o)throw new Error(`Something with inspectionResult went wrong. ${JSON.stringify(a,null,2)}`);let[m,u]=o;return typeof r=="object"?r.fromBcs(Uint8Array.from(m)).toJSONField():mn(r).parse(Uint8Array.from(m))}var yr=class extends Ne{constructor(r,a){super();this.suiRpcUrl=r;this.api=a;this.client=new Wo({url:r})}chainType="SUI";client;async getUserBalanceInfo(r,a){if(!a.originTokenAddress)throw new O("SUI token must contain 'originTokenAddress'");let o=a.suiAddresses;if(!o)throw new O("SUI token must contain 'suiAddresses'");(0,Qt.setAddress)(o.bridgeAddress,o.bridgeAddressOrigin);let u=(await this.fetchDeposits(r,a.originTokenAddress)).reduce((p,h)=>{if(h.data)return p.lpAmount+=BigInt(h.data.content.fields.lp_amount),p.rewardDebt+=BigInt(h.data.content.fields.reward_debt),p;throw new O("Deposits fetch failed")},{lpAmount:BigInt(0),rewardDebt:BigInt(0)});return new Re({lpAmount:u.lpAmount.toString(),rewardDebt:u.rewardDebt.toString()})}async fetchDeposits(r,a){return await at(o=>this.client.getOwnedObjects({owner:r,filter:{StructType:gr.phantom(oe(a)).phantomType},options:{showContent:!0},cursor:o}))}async getPoolInfoFromChain(r){let a=r.suiAddresses;if(!a)throw new O("SUI token must contain 'suiAddresses'");if((0,Qt.setAddress)(a.bridgeAddress,a.bridgeAddressOrigin),!r.originTokenAddress)throw new O("SUI token must contain 'originTokenAddress'");let o=48,m=new fr;va(m,r.originTokenAddress,a.bridgeObjectAddress);let u=await La(this.client,m,dr.reified(oe(r.originTokenAddress))),p=u.state.tokenBalance,h=u.state.vusdBalance,b=Be({tokenBalance:p,vUsdBalance:h});return{dValue:u.state.d,aValue:u.state.a,totalLpAmount:u.rewards.lpSupply,vUsdBalance:h,tokenBalance:p,accRewardPerShareP:u.rewards.accRewardPerShareP,p:o,imbalance:b}}async buildRawTransactionDeposit(r){let a=r.token.suiAddresses;if(!a)throw new O("SUI token must contain 'suiAddresses'");if((0,Qt.setAddress)(a.bridgeAddress,a.bridgeAddressOrigin),!r.token.originTokenAddress)throw new O("SUI token must contain 'originTokenAddress'");let o=await at(C=>this.client.getCoins({owner:r.accountAddress,coinType:r.token.originTokenAddress,cursor:C}));if(o.length===0||!o[0])throw new ot("No coins to deposit");let m=o[0],u=new fr;u.setSender(r.accountAddress);let{depositObj:p,isNewDeposit:h}=await this.getDepositObject(r.accountAddress,r.token.originTokenAddress,u),[b]=Ja([r.amount],o,u);if(!b)throw new ot("No coins to deposit");if(!r.token.originTokenAddress)throw new O("SUI token must contain 'originTokenAddress'");let S=Ba(u,r.token.originTokenAddress,{bridge:a.bridgeObjectAddress,userDeposit:p,coin:b});return u.mergeCoins(m.coinObjectId,[S]),h&&u.transferObjects([p],r.accountAddress),await u.toJSON({client:this.client})}async getDepositObject(r,a,o){let m=await this.fetchDeposits(r,a);if(m.length===0||!m[0]){let u=oe(a).phantomType;return{depositObj:ka(o,u),isNewDeposit:!0}}else{if(m[0].data?.objectId)return{depositObj:m[0].data.objectId,isNewDeposit:!1};throw new O("Something went wrong while deposit")}}async buildRawTransactionWithdraw(r){let a=r.token.suiAddresses;if(!a)throw new O("SUI token must contain 'suiAddresses'");if((0,Qt.setAddress)(a.bridgeAddress,a.bridgeAddressOrigin),!r.token.originTokenAddress)throw new O("SUI token must contain 'originTokenAddress'");let o=oe(r.token.originTokenAddress).phantomType,m=new fr;m.setSender(r.accountAddress);let{depositObj:u,isNewDeposit:p}=await this.getDepositObject(r.accountAddress,r.token.originTokenAddress,m);if(p)throw new ot("No deposit found");let h=Ia(m,o,{bridge:a.bridgeObjectAddress,userDeposit:u,amountLp:BigInt(r.amount)}),b=await at(S=>this.client.getCoins({owner:r.accountAddress,coinType:r.token.originTokenAddress,cursor:S}));if(!h[0]||!h[1])throw new O("No rewards found");return b[0]?m.mergeCoins(b[0].coinObjectId,[h[0],h[1]]):(m.mergeCoins(h[0],[h[1]]),m.transferObjects([h[0]],r.accountAddress)),await m.toJSON({client:this.client})}async buildRawTransactionClaimRewards(r){let a=r.token.suiAddresses;if(!a)throw new O("SUI token must contain 'suiAddresses'");if((0,Qt.setAddress)(a.bridgeAddress,a.bridgeAddressOrigin),!r.token.originTokenAddress)throw new O("SUI token must contain 'originTokenAddress'");let o=oe(r.token.originTokenAddress).phantomType,m=new fr;m.setSender(r.accountAddress);let{depositObj:u,isNewDeposit:p}=await this.getDepositObject(r.accountAddress,r.token.originTokenAddress,m);if(p)throw new ot("No deposit found");let h=Ra(m,o,{bridge:a.bridgeObjectAddress,userDeposit:u}),b=await at(S=>this.client.getCoins({owner:r.accountAddress,coinType:r.token.originTokenAddress,cursor:S}));return b[0]?m.mergeCoins(b[0].coinObjectId,[h]):m.transferObjects([h],r.accountAddress),await m.toJSON({client:this.client})}};g();y();f();import{Web3 as dt}from"web3";var gn=class extends Ne{constructor(r,a,o){super();this.tronWeb=r;this.api=a;o&&(this.web3=new dt(o))}chainType="TRX";P=52;web3;async getUserBalanceInfo(r,a){let o;if(this.web3)try{o=await this.getUserBalanceInfoByBatch(this.web3,r,a)}catch{o=await this.getUserBalanceInfoPerProperty(r,a)}else o=await this.getUserBalanceInfoPerProperty(r,a);return o}async getUserBalanceInfoByBatch(r,a,o){let m=new r.BatchRequest,u=new r.eth.Contract(Yt.abi,Wn(o.poolAddress)),p=u.methods.userRewardDebt(a).encodeABI(),h=u.methods.balanceOf(a).encodeABI();m.add({method:"eth_call",params:[{to:o.poolAddress,data:p},"latest"]}),m.add({method:"eth_call",params:[{to:o.poolAddress,data:h},"latest"]});let[b,S]=await m.execute();if(b&&S&&!b.error&&!S.error)return new Re({lpAmount:dt.utils.toBigInt(S.result).toString(),rewardDebt:dt.utils.toBigInt(b.result).toString()});throw new Error("Batched failed")}async getUserBalanceInfoPerProperty(r,a){this.tronWeb.defaultAddress.base58||this.tronWeb.setAddress(r);let o=this.getContract(a.poolAddress),m=(await o.methods.userRewardDebt(r).call()).toString(),u=(await o.methods.balanceOf(r).call()).toString();return new Re({lpAmount:u,rewardDebt:m})}async getPoolInfoFromChain(r){let a;if(this.web3)try{a=await this.getPoolInfoByBatch(this.web3,r)}catch{a=await this.getPoolInfoPerProperty(r)}else a=await this.getPoolInfoPerProperty(r);return a}async getPoolInfoByBatch(r,a){let o=new r.BatchRequest,m=new r.eth.Contract(Yt.abi,Wn(a.poolAddress),this.web3),u=m.methods.a().encodeABI(),p=m.methods.d().encodeABI(),h=m.methods.tokenBalance().encodeABI(),b=m.methods.vUsdBalance().encodeABI(),S=m.methods.totalSupply().encodeABI(),C=m.methods.accRewardPerShareP().encodeABI();o.add({method:"eth_call",params:[{to:a.poolAddress,data:u},"latest"]}),o.add({method:"eth_call",params:[{to:a.poolAddress,data:p},"latest"]}),o.add({method:"eth_call",params:[{to:a.poolAddress,data:h},"latest"]}),o.add({method:"eth_call",params:[{to:a.poolAddress,data:b},"latest"]}),o.add({method:"eth_call",params:[{to:a.poolAddress,data:S},"latest"]}),o.add({method:"eth_call",params:[{to:a.poolAddress,data:C},"latest"]});let[x,B,R,M,F,W]=await o.execute();if(x&&B&&R&&M&&F&&W&&!x.error&&!B.error&&!R.error&&!M.error&&!F.error&&!W.error){let D=dt.utils.toBigInt(R.result).toString(),U=dt.utils.toBigInt(M.result).toString(),Y=Be({tokenBalance:D,vUsdBalance:U});return{aValue:dt.utils.toBigInt(x.result).toString(),dValue:dt.utils.toBigInt(B.result).toString(),tokenBalance:D,vUsdBalance:U,totalLpAmount:dt.utils.toBigInt(F.result).toString(),accRewardPerShareP:dt.utils.toBigInt(W.result).toString(),p:this.P,imbalance:Y}}throw new Error("Batched failed")}async getPoolInfoPerProperty(r){this.tronWeb.defaultAddress.base58||this.tronWeb.setAddress(r.poolAddress);let a=this.getContract(r.poolAddress),[o,m,u,p,h,b]=await Promise.all([a.methods.a().call(),a.methods.d().call(),a.methods.tokenBalance().call(),a.methods.vUsdBalance().call(),a.methods.totalSupply().call(),a.methods.accRewardPerShareP().call()]),S=u.toString(),C=p.toString(),x=Be({tokenBalance:S,vUsdBalance:C});return{aValue:o.toString(),dValue:m.toString(),tokenBalance:S,vUsdBalance:C,totalLpAmount:h.toString(),accRewardPerShareP:b.toString(),p:this.P,imbalance:x}}buildRawTransactionDeposit(r){let{amount:a,accountAddress:o}=r,m=[{type:"uint256",value:a}];return this.buildRawTransaction(r.token.poolAddress,"deposit(uint256)",m,"0",o)}buildRawTransactionWithdraw(r){let{amount:a,accountAddress:o}=r,m=[{type:"uint256",value:a}];return this.buildRawTransaction(r.token.poolAddress,"withdraw(uint256)",m,"0",o)}buildRawTransactionClaimRewards(r){let{accountAddress:a}=r,o=[];return this.buildRawTransaction(r.token.poolAddress,"claimRewards()",o,"0",a)}async buildRawTransaction(r,a,o,m,u){let p=await this.tronWeb.transactionBuilder.triggerSmartContract(r,a,{callValue:+m},o,u);if(!p?.result?.result)throw new O("Unknown error: "+JSON.stringify(p,null,2));return p.transaction}getContract(r){return this.tronWeb.contract(Yt.abi,r)}};var hr=class{constructor(i,r,a,o){this.api=i;this.nodeRpcUrlsConfig=r;this.params=a;this.tokenService=o;this.rawTxBuilder=new ir(i,r,this.params,o);let m=a.cachePoolInfoChainSec>0?a.cachePoolInfoChainSec*1e3:20*1e3;this.cache=new Eo({defaultTtl:m})}rawTxBuilder;cache;async getAllowance(i,r){if(r){let a=i,o=r;return await this.tokenService.getAllowance({...o,spender:o.token.poolAddress},a)}else{let a=i;return await this.tokenService.getAllowance({...a,spender:a.token.poolAddress})}}async checkAllowance(i,r){if(r){let a=i,o=r;return this.tokenService.checkAllowance({...o,spender:o.token.poolAddress},a)}else{let a=i;return this.tokenService.checkAllowance({...a,spender:a.token.poolAddress})}}async approve(i,r){return this.tokenService.approve(i,{...r,spender:r.token.poolAddress})}async getAmountToBeDeposited(i,r,a){ee(i),ne("amount",i,r.decimals);let o=await this.getPoolInfoFromChain(r,a),{vUsdBalance:m,tokenBalance:u,aValue:p,dValue:h}=o,b=Za(i,p,h,u,m);return K(b,3).toFixed()}async getAmountToBeWithdrawn(i,r,a,o){ee(i),ne("amount",i,a.decimals);let m=await this.getPoolInfoFromChain(a,o),u=ja(i),p=Me(u,a.decimals),b=(await this.getUserBalanceInfo(r,a,o)).earned(m)||"0",S=Uo(p).plus(b).toFixed();return K(S,a.decimals).toFixed()}async getUserBalanceInfo(i,r,a){return Kt(r.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,a).getUserBalanceInfo(i,r)}async getPoolInfoFromChain(i,r){let a={chainSymbol:i.chainSymbol,poolAddress:i.poolAddress},o=this.cache.get(a);if(o)return o;{let m=await Kt(i.chainSymbol,this.api,this.nodeRpcUrlsConfig,this.params,r).getPoolInfoFromChain(i);return this.cache.put(a,m),this.api.cachePut({chainSymbol:i.chainSymbol,poolAddress:i.poolAddress},m),m}}};function Kt(s,i,r,a,o){switch(Q.getChainProperty(s).chainType){case"EVM":{if(o)return new dn(o,i);{let m=r.getNodeRpcUrl(s),u=new Vo(m);return u.defaultReturnFormat={number:jo.STR,bytes:Zo.HEX},new dn(u,i)}}case"TRX":{let m=r.getNodeRpcUrl(s),u=a.tronJsonRpc;if(o)return new gn(o,i,u);{let p=new Go({fullHost:m});return new gn(p,i,u)}}case"SOLANA":{let m=r.getNodeRpcUrl(s);return new ar(m,i)}case"SRB":return new or(r,a,i);case"SUI":return new yr(r.getNodeRpcUrl(s),i)}}g();y();f();g();y();f();import{Big as ue}from"big.js";function Ka(s,i,r){let a=_o(s,{decimals:i.decimals,feeShare:i.feeShare},i.poolInfo),o=$o(a.amountIncludingCommissionInSystemPrecision,{decimals:r.decimals,feeShare:r.feeShare},r.poolInfo);return{swapToVUsdCalcResult:a,swapFromVUsdCalcResult:o}}function Ha(s,i,r){let a=Jo(s,{decimals:r.decimals,feeShare:r.feeShare},r.poolInfo),o=Lo(a.amountIncludingCommissionInSystemPrecision,{decimals:i.decimals,feeShare:i.feeShare},i.poolInfo);return{swapToVUsdCalcResult:a,swapFromVUsdCalcResult:o}}function _o(s,{feeShare:i,decimals:r},a){let o=ue(s),m=o.times(i),u=o.minus(m);return{bridgeFeeInTokenPrecision:m.round().toFixed(),amountIncludingCommissionInSystemPrecision:Xa(kt(u,r),a),amountExcludingCommissionInSystemPrecision:Xa(kt(o,r),a)}}function Xa(s,i){if(s.eq(0))return"0";let r=ue(i.tokenBalance).plus(s),a=et(r.toFixed(),i.aValue,i.dValue);return ue(i.vUsdBalance).minus(a).round().toFixed()}function $o(s,{feeShare:i,decimals:r},a){if(ue(s).eq(0))return{bridgeFeeInTokenPrecision:"0",amountIncludingCommissionInTokenPrecision:"0",amountExcludingCommissionInTokenPrecision:"0"};let m=ue(s).plus(a.vUsdBalance),u=et(m,a.aValue,a.dValue),p=Me(ue(a.tokenBalance).minus(u),r),h=ue(p).times(i),b=ue(p).minus(h).round();return{bridgeFeeInTokenPrecision:h.round().toFixed(),amountIncludingCommissionInTokenPrecision:b.toFixed(),amountExcludingCommissionInTokenPrecision:p.toFixed()}}function Jo(s,{feeShare:i,decimals:r},a){let o=ue(i).div(ue(1).minus(i)),m=ue(s).times(o),u=ue(s).plus(m);return{bridgeFeeInTokenPrecision:m.round().toFixed(),amountIncludingCommissionInSystemPrecision:Ya(kt(u,r),a),amountExcludingCommissionInSystemPrecision:Ya(kt(s,r),a)}}function Ya(s,i){let r=ue(i.tokenBalance).minus(s),a=et(r.toFixed(),i.aValue,i.dValue);return ue(a).minus(i.vUsdBalance).round().toFixed()}function Lo(s,{feeShare:i,decimals:r},a){if(ue(s).eq(0))return{bridgeFeeInTokenPrecision:"0",amountIncludingCommissionInTokenPrecision:"0",amountExcludingCommissionInTokenPrecision:"0"};let o=ue(a.vUsdBalance).minus(s),m=et(o.toFixed(),a.aValue,a.dValue),u=ue(m).minus(a.tokenBalance),p=Me(u.toFixed(),r),h=ue(i).div(ue(1).minus(i)),b=ue(p).times(h),S=ue(p).plus(b);return{bridgeFeeInTokenPrecision:b.round().toFixed(),amountIncludingCommissionInTokenPrecision:S.round().toFixed(),amountExcludingCommissionInTokenPrecision:p.toFixed()}}g();y();f();import{Big as Ct}from"big.js";function Qa(s,i,r,a,o){let m=qe(s,i,r),u=Me(m,i.decimals),p=an(m,a,o),h=Ct(s).times(i.feeShare),b=Ct(p).div(Ct(1).minus(a.feeShare)).minus(p);return{sourceLPSwap:{fee:K(h,i.decimals).neg().round(i.decimals,Ct.roundUp).toFixed(),swap:K(Ct(s).minus(u).minus(h),i.decimals).neg().round(i.decimals,Ct.roundUp).toFixed()},destLPSwap:{fee:K(b,a.decimals).neg().round(a.decimals,Ct.roundUp).toFixed(),swap:K(Me(m,a.decimals).minus(p).minus(b),a.decimals).neg().round(a.decimals,Ct.roundUp).toFixed()}}}g();y();f();g();y();f();g();y();f();import{Connection as Xo,PublicKey as Yo,TransactionMessage as Ko}from"@solana/web3.js";var Tr=class{constructor(i,r){this.nodeRpcUrlsConfig=i;this.params=r}async addMemoToTx(i,r){if(r.length>28)throw new O("InvalidArgumentException memo cannot be more than 28 characters");let a=new Xo(this.nodeRpcUrlsConfig.getNodeRpcUrl("SOL"),"confirmed"),o=await Mt(i,a),m=Ko.decompile(i.message,{addressLookupTableAccounts:o}),u=m.instructions[m.instructions.length-1];if(!u?.keys)throw new O("Last instruction or its keys are invalid.");u.keys.push({pubkey:new Yo(w.from(r)),isSigner:!1,isWritable:!1}),i.message=m.compileToV0Message(o)}};g();y();f();import{Asset as zo,BASE_FEE as qo,contract as ER,Horizon as za,Operation as ec,Operation as tc,rpc as yn,TimeoutInfinite as nc,TransactionBuilder as gi,TransactionBuilder as qa}from"@stellar/stellar-sdk";g();y();f();import{contract as e}from"@stellar/stellar-sdk";var Ho=e.Spec,Qo=e.Client;var fn=class extends Qo{constructor(r){super(new Ho(["AAAAAAAAAYlSZXR1cm5zIHRoZSBhbGxvd2FuY2UgZm9yIGBzcGVuZGVyYCB0byB0cmFuc2ZlciBmcm9tIGBmcm9tYC4KClRoZSBhbW91bnQgcmV0dXJuZWQgaXMgdGhlIGFtb3VudCB0aGF0IHNwZW5kZXIgaXMgYWxsb3dlZCB0byB0cmFuc2ZlcgpvdXQgb2YgZnJvbSdzIGJhbGFuY2UuIFdoZW4gdGhlIHNwZW5kZXIgdHJhbnNmZXJzIGFtb3VudHMsIHRoZSBhbGxvd2FuY2UKd2lsbCBiZSByZWR1Y2VkIGJ5IHRoZSBhbW91bnQgdHJhbnNmZXJlZC4KCiMgQXJndW1lbnRzCgoqIGBmcm9tYCAtIFRoZSBhZGRyZXNzIGhvbGRpbmcgdGhlIGJhbGFuY2Ugb2YgdG9rZW5zIHRvIGJlIGRyYXduIGZyb20uCiogYHNwZW5kZXJgIC0gVGhlIGFkZHJlc3Mgc3BlbmRpbmcgdGhlIHRva2VucyBoZWxkIGJ5IGBmcm9tYC4AAAAAAAAJYWxsb3dhbmNlAAAAAAAAAgAAAAAAAAAEZnJvbQAAABMAAAAAAAAAB3NwZW5kZXIAAAAAEwAAAAEAAAAL","AAAAAAAAAIlSZXR1cm5zIHRydWUgaWYgYGlkYCBpcyBhdXRob3JpemVkIHRvIHVzZSBpdHMgYmFsYW5jZS4KCiMgQXJndW1lbnRzCgoqIGBpZGAgLSBUaGUgYWRkcmVzcyBmb3Igd2hpY2ggdG9rZW4gYXV0aG9yaXphdGlvbiBpcyBiZWluZyBjaGVja2VkLgAAAAAAAAphdXRob3JpemVkAAAAAAABAAAAAAAAAAJpZAAAAAAAEwAAAAEAAAAB","AAAAAAAAA55TZXQgdGhlIGFsbG93YW5jZSBieSBgYW1vdW50YCBmb3IgYHNwZW5kZXJgIHRvIHRyYW5zZmVyL2J1cm4gZnJvbQpgZnJvbWAuCgpUaGUgYW1vdW50IHNldCBpcyB0aGUgYW1vdW50IHRoYXQgc3BlbmRlciBpcyBhcHByb3ZlZCB0byB0cmFuc2ZlciBvdXQgb2YKZnJvbSdzIGJhbGFuY2UuIFRoZSBzcGVuZGVyIHdpbGwgYmUgYWxsb3dlZCB0byB0cmFuc2ZlciBhbW91bnRzLCBhbmQKd2hlbiBhbiBhbW91bnQgaXMgdHJhbnNmZXJyZWQgdGhlIGFsbG93YW5jZSB3aWxsIGJlIHJlZHVjZWQgYnkgdGhlCmFtb3VudCB0cmFuc2ZlcmVkLgoKIyBBcmd1bWVudHMKCiogYGZyb21gIC0gVGhlIGFkZHJlc3MgaG9sZGluZyB0aGUgYmFsYW5jZSBvZiB0b2tlbnMgdG8gYmUgZHJhd24gZnJvbS4KKiBgc3BlbmRlcmAgLSBUaGUgYWRkcmVzcyBiZWluZyBhdXRob3JpemVkIHRvIHNwZW5kIHRoZSB0b2tlbnMgaGVsZCBieQpgZnJvbWAuCiogYGFtb3VudGAgLSBUaGUgdG9rZW5zIHRvIGJlIG1hZGUgYXZhaWxhYmxlIHRvIGBzcGVuZGVyYC4KKiBgZXhwaXJhdGlvbl9sZWRnZXJgIC0gVGhlIGxlZGdlciBudW1iZXIgd2hlcmUgdGhpcyBhbGxvd2FuY2UgZXhwaXJlcy4gQ2Fubm90CmJlIGxlc3MgdGhhbiB0aGUgY3VycmVudCBsZWRnZXIgbnVtYmVyIHVubGVzcyB0aGUgYW1vdW50IGlzIGJlaW5nIHNldCB0byAwLgpBbiBleHBpcmVkIGVudHJ5ICh3aGVyZSBleHBpcmF0aW9uX2xlZGdlciA8IHRoZSBjdXJyZW50IGxlZGdlciBudW1iZXIpCnNob3VsZCBiZSB0cmVhdGVkIGFzIGEgMCBhbW91bnQgYWxsb3dhbmNlLgoKIyBFdmVudHMKCkVtaXRzIGFuIGV2ZW50IHdpdGggdG9waWNzIGBbImFwcHJvdmUiLCBmcm9tOiBBZGRyZXNzLApzcGVuZGVyOiBBZGRyZXNzXSwgZGF0YSA9IFthbW91bnQ6IGkxMjgsIGV4cGlyYXRpb25fbGVkZ2VyOiB1MzJdYAAAAAAAB2FwcHJvdmUAAAAABAAAAAAAAAAEZnJvbQAAABMAAAAAAAAAB3NwZW5kZXIAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAAAAABFleHBpcmF0aW9uX2xlZGdlcgAAAAAAAAQAAAAA","AAAAAAAAAJhSZXR1cm5zIHRoZSBiYWxhbmNlIG9mIGBpZGAuCgojIEFyZ3VtZW50cwoKKiBgaWRgIC0gVGhlIGFkZHJlc3MgZm9yIHdoaWNoIGEgYmFsYW5jZSBpcyBiZWluZyBxdWVyaWVkLiBJZiB0aGUKYWRkcmVzcyBoYXMgbm8gZXhpc3RpbmcgYmFsYW5jZSwgcmV0dXJucyAwLgAAAAdiYWxhbmNlAAAAAAEAAAAAAAAAAmlkAAAAAAATAAAAAQAAAAs=","AAAAAAAAAWRCdXJuIGBhbW91bnRgIGZyb20gYGZyb21gLgoKUmVkdWNlcyBmcm9tJ3MgYmFsYW5jZSBieSB0aGUgYW1vdW50LCB3aXRob3V0IHRyYW5zZmVycmluZyB0aGUgYmFsYW5jZQp0byBhbm90aGVyIGhvbGRlcidzIGJhbGFuY2UuCgojIEFyZ3VtZW50cwoKKiBgZnJvbWAgLSBUaGUgYWRkcmVzcyBob2xkaW5nIHRoZSBiYWxhbmNlIG9mIHRva2VucyB3aGljaCB3aWxsIGJlCmJ1cm5lZCBmcm9tLgoqIGBhbW91bnRgIC0gVGhlIGFtb3VudCBvZiB0b2tlbnMgdG8gYmUgYnVybmVkLgoKIyBFdmVudHMKCkVtaXRzIGFuIGV2ZW50IHdpdGggdG9waWNzIGBbImJ1cm4iLCBmcm9tOiBBZGRyZXNzXSwgZGF0YSA9IFthbW91bnQ6CmkxMjhdYAAAAARidXJuAAAAAgAAAAAAAAAEZnJvbQAAABMAAAAAAAAABmFtb3VudAAAAAAACwAAAAA=","AAAAAAAAAtxCdXJuIGBhbW91bnRgIGZyb20gYGZyb21gLCBjb25zdW1pbmcgdGhlIGFsbG93YW5jZSBvZiBgc3BlbmRlcmAuCgpSZWR1Y2VzIGZyb20ncyBiYWxhbmNlIGJ5IHRoZSBhbW91bnQsIHdpdGhvdXQgdHJhbnNmZXJyaW5nIHRoZSBiYWxhbmNlCnRvIGFub3RoZXIgaG9sZGVyJ3MgYmFsYW5jZS4KClRoZSBzcGVuZGVyIHdpbGwgYmUgYWxsb3dlZCB0byBidXJuIHRoZSBhbW91bnQgZnJvbSBmcm9tJ3MgYmFsYW5jZSwgaWYKdGhlIGFtb3VudCBpcyBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIGFsbG93YW5jZSB0aGF0IHRoZSBzcGVuZGVyIGhhcwpvbiB0aGUgZnJvbSdzIGJhbGFuY2UuIFRoZSBzcGVuZGVyJ3MgYWxsb3dhbmNlIG9uIGZyb20ncyBiYWxhbmNlIHdpbGwgYmUKcmVkdWNlZCBieSB0aGUgYW1vdW50LgoKIyBBcmd1bWVudHMKCiogYHNwZW5kZXJgIC0gVGhlIGFkZHJlc3MgYXV0aG9yaXppbmcgdGhlIGJ1cm4sIGFuZCBoYXZpbmcgaXRzIGFsbG93YW5jZQpjb25zdW1lZCBkdXJpbmcgdGhlIGJ1cm4uCiogYGZyb21gIC0gVGhlIGFkZHJlc3MgaG9sZGluZyB0aGUgYmFsYW5jZSBvZiB0b2tlbnMgd2hpY2ggd2lsbCBiZQpidXJuZWQgZnJvbS4KKiBgYW1vdW50YCAtIFRoZSBhbW91bnQgb2YgdG9rZW5zIHRvIGJlIGJ1cm5lZC4KCiMgRXZlbnRzCgpFbWl0cyBhbiBldmVudCB3aXRoIHRvcGljcyBgWyJidXJuIiwgZnJvbTogQWRkcmVzc10sIGRhdGEgPSBbYW1vdW50OgppMTI4XWAAAAAJYnVybl9mcm9tAAAAAAAAAwAAAAAAAAAHc3BlbmRlcgAAAAATAAAAAAAAAARmcm9tAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAA==","AAAAAAAAAVNDbGF3YmFjayBgYW1vdW50YCBmcm9tIGBmcm9tYCBhY2NvdW50LiBgYW1vdW50YCBpcyBidXJuZWQgaW4gdGhlCmNsYXdiYWNrIHByb2Nlc3MuCgojIEFyZ3VtZW50cwoKKiBgZnJvbWAgLSBUaGUgYWRkcmVzcyBob2xkaW5nIHRoZSBiYWxhbmNlIGZyb20gd2hpY2ggdGhlIGNsYXdiYWNrIHdpbGwKdGFrZSB0b2tlbnMuCiogYGFtb3VudGAgLSBUaGUgYW1vdW50IG9mIHRva2VucyB0byBiZSBjbGF3ZWQgYmFjay4KCiMgRXZlbnRzCgpFbWl0cyBhbiBldmVudCB3aXRoIHRvcGljcyBgWyJjbGF3YmFjayIsIGFkbWluOiBBZGRyZXNzLCB0bzogQWRkcmVzc10sCmRhdGEgPSBbYW1vdW50OiBpMTI4XWAAAAAACGNsYXdiYWNrAAAAAgAAAAAAAAAEZnJvbQAAABMAAAAAAAAABmFtb3VudAAAAAAACwAAAAA=","AAAAAAAAAIBSZXR1cm5zIHRoZSBudW1iZXIgb2YgZGVjaW1hbHMgdXNlZCB0byByZXByZXNlbnQgYW1vdW50cyBvZiB0aGlzIHRva2VuLgoKIyBQYW5pY3MKCklmIHRoZSBjb250cmFjdCBoYXMgbm90IHlldCBiZWVuIGluaXRpYWxpemVkLgAAAAhkZWNpbWFscwAAAAAAAAABAAAABA==","AAAAAAAAAPVNaW50cyBgYW1vdW50YCB0byBgdG9gLgoKIyBBcmd1bWVudHMKCiogYHRvYCAtIFRoZSBhZGRyZXNzIHdoaWNoIHdpbGwgcmVjZWl2ZSB0aGUgbWludGVkIHRva2Vucy4KKiBgYW1vdW50YCAtIFRoZSBhbW91bnQgb2YgdG9rZW5zIHRvIGJlIG1pbnRlZC4KCiMgRXZlbnRzCgpFbWl0cyBhbiBldmVudCB3aXRoIHRvcGljcyBgWyJtaW50IiwgYWRtaW46IEFkZHJlc3MsIHRvOiBBZGRyZXNzXSwgZGF0YQo9IFthbW91bnQ6IGkxMjhdYAAAAAAAAARtaW50AAAAAgAAAAAAAAACdG8AAAAAABMAAAAAAAAABmFtb3VudAAAAAAACwAAAAA=","AAAAAAAAAFlSZXR1cm5zIHRoZSBuYW1lIGZvciB0aGlzIHRva2VuLgoKIyBQYW5pY3MKCklmIHRoZSBjb250cmFjdCBoYXMgbm90IHlldCBiZWVuIGluaXRpYWxpemVkLgAAAAAAAARuYW1lAAAAAAAAAAEAAAAQ","AAAAAAAAAQxTZXRzIHRoZSBhZG1pbmlzdHJhdG9yIHRvIHRoZSBzcGVjaWZpZWQgYWRkcmVzcyBgbmV3X2FkbWluYC4KCiMgQXJndW1lbnRzCgoqIGBuZXdfYWRtaW5gIC0gVGhlIGFkZHJlc3Mgd2hpY2ggd2lsbCBoZW5jZWZvcnRoIGJlIHRoZSBhZG1pbmlzdHJhdG9yCm9mIHRoaXMgdG9rZW4gY29udHJhY3QuCgojIEV2ZW50cwoKRW1pdHMgYW4gZXZlbnQgd2l0aCB0b3BpY3MgYFsic2V0X2FkbWluIiwgYWRtaW46IEFkZHJlc3NdLCBkYXRhID0KW25ld19hZG1pbjogQWRkcmVzc11gAAAACXNldF9hZG1pbgAAAAAAAAEAAAAAAAAACW5ld19hZG1pbgAAAAAAABMAAAAA","AAAAAAAAAEZSZXR1cm5zIHRoZSBhZG1pbiBvZiB0aGUgY29udHJhY3QuCgojIFBhbmljcwoKSWYgdGhlIGFkbWluIGlzIG5vdCBzZXQuAAAAAAAFYWRtaW4AAAAAAAAAAAAAAQAAABM=","AAAAAAAAAVBTZXRzIHdoZXRoZXIgdGhlIGFjY291bnQgaXMgYXV0aG9yaXplZCB0byB1c2UgaXRzIGJhbGFuY2UuIElmCmBhdXRob3JpemVkYCBpcyB0cnVlLCBgaWRgIHNob3VsZCBiZSBhYmxlIHRvIHVzZSBpdHMgYmFsYW5jZS4KCiMgQXJndW1lbnRzCgoqIGBpZGAgLSBUaGUgYWRkcmVzcyBiZWluZyAoZGUtKWF1dGhvcml6ZWQuCiogYGF1dGhvcml6ZWAgLSBXaGV0aGVyIG9yIG5vdCBgaWRgIGNhbiB1c2UgaXRzIGJhbGFuY2UuCgojIEV2ZW50cwoKRW1pdHMgYW4gZXZlbnQgd2l0aCB0b3BpY3MgYFsic2V0X2F1dGhvcml6ZWQiLCBpZDogQWRkcmVzc10sIGRhdGEgPQpbYXV0aG9yaXplOiBib29sXWAAAAAOc2V0X2F1dGhvcml6ZWQAAAAAAAIAAAAAAAAAAmlkAAAAAAATAAAAAAAAAAlhdXRob3JpemUAAAAAAAABAAAAAA==","AAAAAAAAAFtSZXR1cm5zIHRoZSBzeW1ib2wgZm9yIHRoaXMgdG9rZW4uCgojIFBhbmljcwoKSWYgdGhlIGNvbnRyYWN0IGhhcyBub3QgeWV0IGJlZW4gaW5pdGlhbGl6ZWQuAAAAAAZzeW1ib2wAAAAAAAAAAAABAAAAEA==","AAAAAAAAAWRUcmFuc2ZlciBgYW1vdW50YCBmcm9tIGBmcm9tYCB0byBgdG9gLgoKIyBBcmd1bWVudHMKCiogYGZyb21gIC0gVGhlIGFkZHJlc3MgaG9sZGluZyB0aGUgYmFsYW5jZSBvZiB0b2tlbnMgd2hpY2ggd2lsbCBiZQp3aXRoZHJhd24gZnJvbS4KKiBgdG9gIC0gVGhlIGFkZHJlc3Mgd2hpY2ggd2lsbCByZWNlaXZlIHRoZSB0cmFuc2ZlcnJlZCB0b2tlbnMuCiogYGFtb3VudGAgLSBUaGUgYW1vdW50IG9mIHRva2VucyB0byBiZSB0cmFuc2ZlcnJlZC4KCiMgRXZlbnRzCgpFbWl0cyBhbiBldmVudCB3aXRoIHRvcGljcyBgWyJ0cmFuc2ZlciIsIGZyb206IEFkZHJlc3MsIHRvOiBBZGRyZXNzXSwKZGF0YSA9IFthbW91bnQ6IGkxMjhdYAAAAAh0cmFuc2ZlcgAAAAMAAAAAAAAABGZyb20AAAATAAAAAAAAAAJ0bwAAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAA==","AAAAAAAAAzNUcmFuc2ZlciBgYW1vdW50YCBmcm9tIGBmcm9tYCB0byBgdG9gLCBjb25zdW1pbmcgdGhlIGFsbG93YW5jZSB0aGF0CmBzcGVuZGVyYCBoYXMgb24gYGZyb21gJ3MgYmFsYW5jZS4gQXV0aG9yaXplZCBieSBzcGVuZGVyCihgc3BlbmRlci5yZXF1aXJlX2F1dGgoKWApLgoKVGhlIHNwZW5kZXIgd2lsbCBiZSBhbGxvd2VkIHRvIHRyYW5zZmVyIHRoZSBhbW91bnQgZnJvbSBmcm9tJ3MgYmFsYW5jZQppZiB0aGUgYW1vdW50IGlzIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgYWxsb3dhbmNlIHRoYXQgdGhlIHNwZW5kZXIKaGFzIG9uIHRoZSBmcm9tJ3MgYmFsYW5jZS4gVGhlIHNwZW5kZXIncyBhbGxvd2FuY2Ugb24gZnJvbSdzIGJhbGFuY2UKd2lsbCBiZSByZWR1Y2VkIGJ5IHRoZSBhbW91bnQuCgojIEFyZ3VtZW50cwoKKiBgc3BlbmRlcmAgLSBUaGUgYWRkcmVzcyBhdXRob3JpemluZyB0aGUgdHJhbnNmZXIsIGFuZCBoYXZpbmcgaXRzCmFsbG93YW5jZSBjb25zdW1lZCBkdXJpbmcgdGhlIHRyYW5zZmVyLgoqIGBmcm9tYCAtIFRoZSBhZGRyZXNzIGhvbGRpbmcgdGhlIGJhbGFuY2Ugb2YgdG9rZW5zIHdoaWNoIHdpbGwgYmUKd2l0aGRyYXduIGZyb20uCiogYHRvYCAtIFRoZSBhZGRyZXNzIHdoaWNoIHdpbGwgcmVjZWl2ZSB0aGUgdHJhbnNmZXJyZWQgdG9rZW5zLgoqIGBhbW91bnRgIC0gVGhlIGFtb3VudCBvZiB0b2tlbnMgdG8gYmUgdHJhbnNmZXJyZWQuCgojIEV2ZW50cwoKRW1pdHMgYW4gZXZlbnQgd2l0aCB0b3BpY3MgYFsidHJhbnNmZXIiLCBmcm9tOiBBZGRyZXNzLCB0bzogQWRkcmVzc10sCmRhdGEgPSBbYW1vdW50OiBpMTI4XWAAAAAADXRyYW5zZmVyX2Zyb20AAAAAAAAEAAAAAAAAAAdzcGVuZGVyAAAAABMAAAAAAAAABGZyb20AAAATAAAAAAAAAAJ0bwAAAAAAEwAAAAAAAAAGYW1vdW50AAAAAAALAAAAAA=="]),r);this.options=r}fromJSON={allowance:this.txFromJSON,authorized:this.txFromJSON,approve:this.txFromJSON,balance:this.txFromJSON,burn:this.txFromJSON,burn_from:this.txFromJSON,clawback:this.txFromJSON,decimals:this.txFromJSON,mint:this.txFromJSON,name:this.txFromJSON,set_admin:this.txFromJSON,admin:this.txFromJSON,set_authorized:this.txFromJSON,symbol:this.txFromJSON,transfer:this.txFromJSON,transfer_from:this.txFromJSON}};var rc=100,ic=180,br=class{constructor(i,r){this.nodeRpcUrlsConfig=i;this.params=r}async buildChangeTrustLineXdrTx(i){let a=await new za.Server(this.nodeRpcUrlsConfig.getNodeRpcUrl("STLR")).loadAccount(i.sender),m=(await this.getContract(fn,i.tokenAddress).name()).result,[u,p]=m.split(":");if(u===void 0||p===void 0)throw new O("Invalid token name format. Expected format 'symbol:srbTokenAddress'");let h=new zo(u,p),b=tc.changeTrust({asset:h,limit:i.limit});return new qa(a,{fee:rc.toString(10),networkPassphrase:this.params.sorobanNetworkPassphrase}).addOperation(b).setTimeout(ic).build().toXDR()}async getBalanceLine(i,r){let o=(await this.getContract(fn,r).name()).result,[m,u]=o.split(":"),p=this.nodeRpcUrlsConfig.getNodeRpcUrl("STLR");return(await new za.Server(p).loadAccount(i)).balances.find(C=>(C.asset_type==="credit_alphanum4"||C.asset_type==="credit_alphanum12")&&C.asset_code==m&&C.asset_issuer==u)}async submitTransactionStellar(i){let r=new za.Server(this.nodeRpcUrlsConfig.getNodeRpcUrl("STLR")),a=qa.fromXDR(i,this.nodeRpcUrlsConfig.getNodeRpcUrl("STLR"));return await r.submitTransaction(a)}async simulateAndCheckRestoreTxRequiredSoroban(i,r){let a=new yn.Server(this.nodeRpcUrlsConfig.getNodeRpcUrl("SRB")),o=await a.getAccount(r),m=gi.fromXDR(i,this.params.sorobanNetworkPassphrase),u=await a.simulateTransaction(m);if(yn.Api.isSimulationRestore(u))return new gi(o,{fee:(+qo+ +u.restorePreamble.minResourceFee).toString(),networkPassphrase:this.params.sorobanNetworkPassphrase}).setSorobanData(u.restorePreamble.transactionData.build()).addOperation(ec.restoreFootprint({})).setTimeout(nc).build().toXDR()}async sendTransactionSoroban(i){let r=new yn.Server(this.nodeRpcUrlsConfig.getNodeRpcUrl("SRB")),a=gi.fromXDR(i,this.params.sorobanNetworkPassphrase);return r.sendTransaction(a)}async confirmTx(i,r=15){let a=new yn.Server(this.nodeRpcUrlsConfig.getNodeRpcUrl("SRB")),o=await Li(()=>a.getTransaction(i),u=>u.status===yn.Api.GetTransactionStatus.NOT_FOUND,r);if(o.length===0)throw new O("No transaction responses found.");let m=o[o.length-1];if(!m)throw new O("Unexpected error: last response is undefined.");return m}getContract(i,r){let a={contractId:r,networkPassphrase:this.params.sorobanNetworkPassphrase,rpcUrl:this.nodeRpcUrlsConfig.getNodeRpcUrl("SRB")};return new i(a)}};var Sr=class{constructor(i,r){this.nodeRpcUrlsConfig=i;this.srb=new br(i,r),this.sol=new Tr(i,r)}srb;sol};g();y();f();var Ft=(r=>(r.WITH_NATIVE_CURRENCY="native",r.WITH_STABLECOIN="stablecoin",r))(Ft||{}),En=(r=>(r.INT="int",r.FLOAT="float",r))(En||{});g();y();f();import{Big as pc}from"big.js";import{TronWeb as gc}from"tronweb";import{Web3 as fc}from"web3";g();y();f();g();y();f();var ac={abi:[{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],stateMutability:"nonpayable",type:"constructor"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"subtractedValue",type:"uint256"}],name:"decreaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"addedValue",type:"uint256"}],name:"increaseAllowance",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"}]},Pr=ac;g();y();f();g();y();f();g();y();f();import{Big as es}from"big.js";var De=class{async checkAllowance(i){let r=await this.getAllowance(i);return es(r).gte(es(i.amount))}};var sc="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",oc="0xdac17f958d2ee523a2206206994597c13d831ec7",cc=1e5,hn=class extends De{constructor(r,a){super();this.web3=r;this.api=a}chainType="EVM";getAllowance(r){let a=r.token.tokenAddress,o=r.owner,m=r.spender;return this.getAllowanceByTokenAddress(a,o,m)}getAllowanceByTokenAddress(r,a,o){return this.getERC20Contract(r).methods.allowance(a,o).call()}async getTokenBalance(r){return await this.getERC20Contract(r.token.tokenAddress).methods.balanceOf(r.account).call()}async getNativeTokenBalance(r){return(await this.web3.eth.getBalance(r.account)).toString()}async approve(r){if(this.isUsdt(r.tokenAddress)&&await this.getAllowanceByTokenAddress(r.tokenAddress,r.owner,r.spender)!=="0"){let m=await this.buildRawTransactionApprove({...r,amount:"0"});await this.sendRawTransaction(m,r.chainSymbol)}let a=await this.buildRawTransactionApprove(r);return await this.sendRawTransaction(a,r.chainSymbol)}isUsdt(r){return r.toLowerCase()===oc}buildRawTransactionApprove(r){let{tokenAddress:a,spender:o,owner:m,amount:u}=r,h=this.getERC20Contract(a).methods.approve(o,u==null?sc:tr(u));return Promise.resolve({from:m,to:a,value:"0",data:h.encodeABI()})}async sendRawTransaction(r,a){let o=r,m={maxPriorityFeePerGas:void 0,maxFeePerGas:void 0};a==="POL"?o.gas=cc:o.gas=await this.web3.eth.estimateGas(r);let{transactionHash:u}=await this.web3.eth.sendTransaction({...o,...m});return{txId:u.toString()}}getERC20Contract(r){return new this.web3.eth.Contract(Pr.abi,r)}};g();y();f();import{AnchorProvider as Ac}from"@project-serum/anchor";import{Connection as uc,PublicKey as wr}from"@solana/web3.js";var Cr=class extends De{constructor(r,a){super();this.solanaRpcUrl=r;this.api=a}chainType="SOLANA";approve(r){throw new de}buildRawTransactionApprove(r){throw new de}buildAnchorProvider(r){let a=new uc(this.solanaRpcUrl,"confirmed"),o=new wr(r);return new Ac(a,{publicKey:o},{preflightCommitment:"confirmed",commitment:"confirmed"})}getAllowance(r){throw new de}async getTokenBalance(r){let{account:a,token:o}=r;try{let m=await Le(new wr(a),new wr(o.tokenAddress));return(await $t(m,this.buildAnchorProvider(a))).amount.toString()}catch(m){if(m instanceof Error)return m.message.startsWith("Account does not exist"),"0";throw m}}async getNativeTokenBalance(r){return(await this.buildAnchorProvider(r.account).connection.getBalance(new wr(r.account))).toString()}};g();y();f();import{Horizon as MB,NotFoundError as mc}from"@stellar/stellar-sdk";var Br=class extends De{constructor(r,a,o){super();this.nodeRpcUrlsConfig=r;this.params=a;this.api=o}chainType="SRB";getAllowance(){throw new de}async getTokenBalance(r){if(!r.token.originTokenAddress)throw new O("OriginTokenAddress missing");let[a,o]=r.token.originTokenAddress.split(":"),m=new MB.Server(this.nodeRpcUrlsConfig.getNodeRpcUrl("STLR")),u;try{u=await m.loadAccount(r.account)}catch(b){if(b instanceof mc)return"0";throw b}let h=u.balances.find(b=>(b.asset_type==="credit_alphanum4"||b.asset_type==="credit_alphanum12")&&b.asset_code==a&&b.asset_issuer==o);return h?.balance?z(h.balance,Q.getChainDecimalsByType(Q.getChainProperty(r.token.chainSymbol).chainType)).toFixed():"0"}async getNativeTokenBalance(r){let u=(await new MB.Server(this.nodeRpcUrlsConfig.getNodeRpcUrl("STLR")).loadAccount(r.account)).balances.find(p=>p.asset_type==="native");return u?.balance?z(u.balance,Q.getChainDecimalsByType(Q.getChainProperty(r.chainSymbol).chainType)).toFixed():"0"}approve(){throw new de}buildRawTransactionApprove(){throw new de}};g();y();f();import{SuiClient as lc}from"@mysten/sui/client";var Ir=class extends De{constructor(r,a){super();this.suiRpcUrl=r;this.api=a;this.suiClient=new lc({url:this.suiRpcUrl})}chainType="SUI";suiClient;approve(r){throw new de}buildRawTransactionApprove(r){throw new de}getAllowance(r){throw new de}async getTokenBalance(r){if(!r.token.originTokenAddress)throw new O("SUI token must contain 'originTokenAddress'");return(await this.suiClient.getBalance({owner:r.account,coinType:r.token.originTokenAddress})).totalBalance}async getNativeTokenBalance(r){let a=await at(o=>this.suiClient.getCoins({owner:r.account,cursor:o}));return a.length===0?"0":a.reduce((o,m)=>o+BigInt(m.balance),BigInt(0)).toString()}};g();y();f();var dc="0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",Tn=class extends De{constructor(r,a){super();this.tronWeb=r;this.api=a}chainType="TRX";async getAllowance(r){let{token:{tokenAddress:a},owner:o}=r;return(await(await this.getContract(a)).methods.allowance(o,r.spender).call()).toString()}async getTokenBalance(r){return(await(await this.getContract(r.token.tokenAddress)).balanceOf(r.account).call()).toString()}async getNativeTokenBalance(r){return(await this.tronWeb.trx.getBalance(r.account)).toString()}async approve(r){let a=await this.buildRawTransactionApprove(r);return await nr(this.tronWeb,a)}async buildRawTransactionApprove(r){let{tokenAddress:a,spender:o,owner:m,amount:u}=r,p=u==null?dc:tr(u),h=[{type:"address",value:o},{type:"uint256",value:p}];return this.buildRawTransaction(a,"approve(address,uint256)",h,"0",m)}getContract(r){return this.tronWeb.contract(Pr.abi,r)}async buildRawTransaction(r,a,o,m,u){let p=await this.tronWeb.transactionBuilder.triggerSmartContract(r,a,{callValue:+m},o,u);if(!p?.result?.result)throw new O("Unknown error: "+JSON.stringify(p,null,2));return p.transaction}};var Rr=class{constructor(i,r,a){this.api=i;this.nodeRpcUrlsConfig=r;this.params=a}async getAllowance(i,r){let a=await this.getChainTokenService(i.token.chainSymbol,i.owner,r).getAllowance(i);return K(a,i.token.decimals).toFixed()}async checkAllowance(i,r){return ee(i.amount),ne("amount",i.amount,i.token.decimals),this.getChainTokenService(i.token.chainSymbol,i.owner,r).checkAllowance(this.prepareCheckAllowanceParams(i))}async approve(i,r){return r.amount&&(ee(r.amount),ne("amount",r.amount,r.token.decimals)),this.getChainTokenService(r.token.chainSymbol,r.owner,i).approve(this.prepareApproveParams(r))}async buildRawTransactionApprove(i,r){return i.amount&&(ee(i.amount),ne("amount",i.amount,i.token.decimals)),this.getChainTokenService(i.token.chainSymbol,i.owner,r).buildRawTransactionApprove(this.prepareApproveParams(i))}async getTokenBalance(i,r){let a=await this.getChainTokenService(i.token.chainSymbol,i.account,r).getTokenBalance(i);return i.token.decimals?K(a,i.token.decimals).toFixed():a}async getNativeTokenBalance(i,r){let a=await this.getChainTokenService(i.chainSymbol,i.account,r).getNativeTokenBalance(i);return{int:a,float:K(a,Q.getChainDecimalsByType(Q.getChainProperty(i.chainSymbol).chainType)).toFixed()}}getChainTokenService(i,r,a){switch(Q.getChainProperty(i).chainType){case"EVM":{if(a)return new hn(a,this.api);{let o=this.nodeRpcUrlsConfig.getNodeRpcUrl(i);return new hn(new fc(o),this.api)}}case"TRX":{if(a)return new Tn(a,this.api);{let o=this.nodeRpcUrlsConfig.getNodeRpcUrl(i),m=new gc({fullHost:o});return m.setAddress(r),new Tn(m,this.api)}}case"SOLANA":{let o=this.nodeRpcUrlsConfig.getNodeRpcUrl(i);return new Cr(o,this.api)}case"SRB":return new Br(this.nodeRpcUrlsConfig,this.params,this.api);case"SUI":return new Ir(this.nodeRpcUrlsConfig.getNodeRpcUrl(i),this.api)}}prepareCheckAllowanceParams(i){return{...i,amount:z(i.amount,i.token.decimals)}}prepareApproveParams(i){return{tokenAddress:i.token.tokenAddress,owner:i.owner,spender:i.spender,chainSymbol:i.token.chainSymbol,amount:i.amount==null?void 0:pc(i.amount).toFixed()}}};var bn=class{constructor(i){this.nodeRpcUrls=i}getNodeRpcUrl(i){let r=this.nodeRpcUrls[i];if(r!==void 0)return r;throw new Rn(i)}},vr=class{api;tokenService;params;bridge;pool;constructor(i,r=Cn){Q.addChainsProperties(r.additionalChainsProperties);let a=new kn(r),o=new Fn(a),m=new Mn(o),u=new Nn(m);this.api=new On(u,r),this.tokenService=new Rr(this.api,i,r),this.bridge=new rr(this.api,i,r,this.tokenService),this.pool=new hr(this.api,i,r,this.tokenService),this.params=r}async chainDetailsMap(i){return this.api.getChainDetailsMap(i)}async tokens(i){return this.api.tokens(i)}async tokensByChain(i,r){let o=(await this.api.getChainDetailsMap(r))[i];return o?o.tokens:[]}async getTransferStatus(i,r){return this.api.getTransferStatus(i,r)}async getGasBalance(i,r){return this.api.getGasBalance(i,r)}async checkAddress(){return new Promise(i=>{i({status:"OK",gasBalance:null})})}async getPendingStatusInfo(i,r,a,o){ee(i);let m;r=="float"?(ne("amount",i,a.decimals),m=z(i,a.decimals).toFixed()):m=i;let u=qe(m,a,await pe(this.api,a)),p=await pe(this.api,o),h=this.getAmountFromVUsdFormatted(u,o,p),b,S=await this.api.getPendingInfo();for(let C in S[o.chainSymbol]){let x=S[o.chainSymbol];if(!x)throw new O("Cannot find pending info for "+o.chainSymbol);b=x[C]}if(b){let C=Ni(b.totalSentAmount,p),x=this.getAmountFromVUsdFormatted(u,o,C),B;return st(x.int).gt(h.int)?B={min:h,max:x}:B={min:x,max:h},{pendingTxs:b.pendingTxs,pendingAmount:{int:gt(b.totalSentAmount,3,o.decimals).toFixed(0),float:K(b.totalSentAmount,3).toFixed()},estimatedAmount:B}}return{pendingTxs:0,pendingAmount:{int:"0",float:"0"},estimatedAmount:{min:h,max:h}}}async getTokenBalance(i,r){return this.tokenService.getTokenBalance(i,r)}async getNativeTokenBalance(i,r){return this.tokenService.getNativeTokenBalance(i,r)}async calculateFeePercentOnSourceChain(i,r){ee(i),ne("amountFloat",i,r.decimals);let a=z(i,r.decimals);if(a.eq(0))return 0;let o=qe(a,r,await pe(this.api,r)),m=Me(o,r.decimals);return Wr(a,m)}async calculateFeePercentOnDestinationChain(i,r,a){ee(i),ne("amountFloat",i,r.decimals);let o=z(i,r.decimals);if(o.eq(0))return 0;let m=qe(o,r,await pe(this.api,r)),u=an(m,a,await pe(this.api,a)),p=Me(m,a.decimals);return Wr(p,u)}async getAmountToBeReceivedAndGasFeeOptions(i,r,a,o){return ee(i),ne("amountToSendFloat",i,r.decimals),{amountToSendFloat:st(i).toFixed(),amountToBeReceivedFloat:await this.getAmountToBeReceived(i,r,a,o),gasFeeOptions:await this.getGasFeeOptions(r,a,o)}}async getAmountToSendAndGasFeeOptions(i,r,a,o){return ee(i),ne("amountToBeReceivedFloat",i,a.decimals),{amountToSendFloat:await this.getAmountToSend(i,r,a,o),amountToBeReceivedFloat:st(i).toFixed(),gasFeeOptions:await this.getGasFeeOptions(r,a,o)}}async getAmountToBeReceived(i,r,a,o){let m=await pe(this.api,r),u=await pe(this.api,a);return this.getAmountToBeReceivedFromPools(i,r,a,m,u,o)}async getAmountToBeReceivedFromChain(i,r,a,o,m,u){let p=await this.pool.getPoolInfoFromChain(r,m),h=await this.pool.getPoolInfoFromChain(a,u);return this.getAmountToBeReceivedFromPools(i,r,a,p,h,o)}getAmountToBeReceivedFromPools(i,r,a,o,m,u){ee(i),ne("amountToSendFloat",i,r.decimals);let p=z(i,r.decimals);if(u&&u==3){if(!r.cctpAddress||!a.cctpAddress||!r.cctpFeeShare)throw new Je("Such route does not support CCTP protocol");let b=p.mul(st(1).minus(r.cctpFeeShare)).round(0,st.roundUp),S=gt(b,r.decimals,a.decimals).round(0);return K(S,a.decimals).toFixed()}let h=qe(p,r,o);return this.getAmountFromVUsdFormatted(h,a,m).float}async getAmountToSend(i,r,a,o){let m=await pe(this.api,r),u=await pe(this.api,a);return this.getAmountToSendFromPools(i,r,a,m,u,o)}async getAmountToSendFromChain(i,r,a,o,m,u){let p=await this.pool.getPoolInfoFromChain(r,m),h=await this.pool.getPoolInfoFromChain(a,u);return this.getAmountToSendFromPools(i,r,a,p,h,o)}getAmountToSendFromPools(i,r,a,o,m,u){ee(i),ne("amountToBeReceivedFloat",i,a.decimals);let p=z(i,a.decimals);if(u&&u==3){if(!r.cctpAddress||!a.cctpAddress||!r.cctpFeeShare)throw new Je("Such route does not support CCTP protocol");let S=p.div(st(1).minus(r.cctpFeeShare)).round(0,st.roundDown),C=gt(S,a.decimals,r.decimals).round(0);return K(C,r.decimals).toFixed()}let h=Wi(p,a,m),b=Di(h,r,o);if(st(b).lte(0))throw new ct;return K(b,r.decimals).toFixed()}async getGasFeeOptions(i,r,a){return $r(i.allbridgeChainId,i.chainType,r.allbridgeChainId,i.decimals,a,this.api)}getAverageTransferTime(i,r,a){return i.transferTime?.[r.chainSymbol]?.[a]??null}async getPoolInfoByToken(i){return await this.api.getPoolInfoByKey({chainSymbol:i.chainSymbol,poolAddress:i.poolAddress})}async refreshPoolInfo(i){if(i){let a=(i instanceof Array?i:[i]).map(o=>({chainSymbol:o.chainSymbol,poolAddress:o.poolAddress}));return this.api.refreshPoolInfo(a)}return this.api.refreshPoolInfo()}aprInPercents(i){return Ei(i)}async getExtraGasMaxLimits(i,r){return await Jr(i,r,this.api)}async getVUsdFromAmount(i,r,a){ee(i);let o;r=="float"?(ne("amount",i,a.decimals),o=z(i,a.decimals).toFixed()):o=i;let m=qe(o,a,await pe(this.api,a));return{int:m,float:K(m,3).toFixed()}}async getAmountFromVUsd(i,r){return this.getAmountFromVUsdFormatted(i,r,await pe(this.api,r))}getAmountFromVUsdFormatted(i,r,a){ee(i);let o=an(i,r,a);if(st(o).lt(0))throw new ct;return{int:o,float:K(o,r.decimals).toFixed()}}async swapAndBridgeFeeCalculation(i,r,a){return Ka(i,{decimals:r.decimals,feeShare:r.feeShare,poolInfo:await pe(this.api,r)},{decimals:a.decimals,feeShare:a.feeShare,poolInfo:await pe(this.api,a)})}async swapAndBridgeFeeCalculationReverse(i,r,a){let o=Ha(i,{decimals:r.decimals,feeShare:r.feeShare,poolInfo:await pe(this.api,r)},{decimals:a.decimals,feeShare:a.feeShare,poolInfo:await pe(this.api,a)}),m=o.swapFromVUsdCalcResult.amountIncludingCommissionInTokenPrecision;if(st(m).lt(0))throw new ct;return o}async getSendAmountDetails(i,r,a,o){ee(i);let m;return r=="float"?(ne("amount",i,a.decimals),m=z(i,a.decimals).toFixed()):m=i,Qa(m,a,await pe(this.api,a),o,await pe(this.api,o))}};function yc(s){return"solanaRpcUrl"in s}var ts=class{params;bridge;pool;utils;service;constructor(i,r=Cn){let a;yc(i)?a=new bn({SOL:i.solanaRpcUrl,TRX:i.tronRpcUrl}):a=new bn(i),this.service=new vr(a,r),this.bridge=this.service.bridge,this.pool=this.service.pool,this.utils=new Sr(a,r),this.params=r}async chainDetailsMap(i="swap"){return this.service.chainDetailsMap(i)}async tokens(i="swap"){return this.service.tokens(i)}async tokensByChain(i,r="swap"){return this.service.tokensByChain(i,r)}async getTransferStatus(i,r){return this.service.getTransferStatus(i,r)}async getGasBalance(i,r){return this.service.getGasBalance(i,r)}async checkAddress(i,r,a){return await this.service.checkAddress()}async getPendingStatusInfo(i,r,a,o){return this.service.getPendingStatusInfo(i,r,a,o)}async getTokenBalance(i,r){return this.service.getTokenBalance(i,r)}async getNativeTokenBalance(i,r){return this.service.getNativeTokenBalance(i,r)}async calculateFeePercentOnSourceChain(i,r){return this.service.calculateFeePercentOnSourceChain(i,r)}async calculateFeePercentOnDestinationChain(i,r,a){return this.service.calculateFeePercentOnDestinationChain(i,r,a)}async getAmountToBeReceivedAndGasFeeOptions(i,r,a,o){return this.service.getAmountToBeReceivedAndGasFeeOptions(i,r,a,o)}async getAmountToSendAndGasFeeOptions(i,r,a,o){return this.service.getAmountToSendAndGasFeeOptions(i,r,a,o)}async getAmountToBeReceived(i,r,a,o){return this.service.getAmountToBeReceived(i,r,a,o)}async getAmountToBeReceivedFromChain(i,r,a,o,m,u){return this.service.getAmountToBeReceivedFromChain(i,r,a,o,m,u)}getAmountToBeReceivedFromPools(i,r,a,o,m,u){return this.service.getAmountToBeReceivedFromPools(i,r,a,o,m,u)}async getAmountToSend(i,r,a,o){return this.service.getAmountToSend(i,r,a,o)}async getAmountToSendFromChain(i,r,a,o,m,u){return this.service.getAmountToSendFromChain(i,r,a,o,m,u)}getAmountToSendFromPools(i,r,a,o,m,u){return this.service.getAmountToSendFromPools(i,r,a,o,m,u)}async getGasFeeOptions(i,r,a){return this.service.getGasFeeOptions(i,r,a)}getAverageTransferTime(i,r,a){return this.service.getAverageTransferTime(i,r,a)}async getPoolInfoByToken(i){return this.service.getPoolInfoByToken(i)}async refreshPoolInfo(i){return this.service.refreshPoolInfo(i)}aprInPercents(i){return this.service.aprInPercents(i)}async getExtraGasMaxLimits(i,r){return this.service.getExtraGasMaxLimits(i,r)}async getVUsdFromAmount(i,r,a){return this.service.getVUsdFromAmount(i,r,a)}async getAmountFromVUsd(i,r){return this.service.getAmountFromVUsd(i,r)}async swapAndBridgeFeeCalculation(i,r,a){return this.service.swapAndBridgeFeeCalculation(i,r,a)}async swapAndBridgeFeeCalculationReverse(i,r,a){return this.service.swapAndBridgeFeeCalculationReverse(i,r,a)}async getSendAmountDetails(i,r,a,o){return this.service.getSendAmountDetails(i,r,a,o)}};export{Ur as AddressStatus,ts as AllbridgeCoreSdk,En as AmountFormat,Gt as AmountNotEnoughError,In as ArgumentInvalidDecimalsError,Je as CCTPDoesNotSupportedError,Ze as ChainSymbol,ie as ChainType,hs as ErrorCode,Bn as ExtraGasMaxLimitExceededError,Ft as FeePaymentMethod,ct as InsufficientPoolLiquidityError,ot as InvalidAmountError,en as InvalidGasFeePaymentOptionError,Mi as InvalidMessengerOptionError,Zt as InvalidTxError,ye as JupiterError,tt as Messenger,de as MethodNotSupportedError,Rn as NodeRpcUrlNotInitializedError,O as SdkError,me as SdkRootError,Lr as SolanaAutoTxFee,nn as TimeoutError,vn as TxTooLargeError,tn as VerifyTxError,Cn as mainnet,Zc as nodeRpcUrlsDefault,Gc as nodeUrlsDefault};
|
|
2
2
|
/*! Bundled license information:
|
|
3
3
|
|
|
4
4
|
@jspm/core/nodelibs/browser/chunk-DtuTasat.js:
|