@avalabs/fusion-sdk 0.26.0 → 0.27.0
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/constants.cjs +1 -1
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.js +1 -1
- package/dist/constants.js.map +1 -1
- package/dist/mod.cjs +1 -1
- package/dist/mod.d.cts +3 -2
- package/dist/mod.d.ts +3 -2
- package/dist/mod.js +1 -1
- package/dist/transfer-service/avalanche-cct/_handlers/estimate-native-fee.cjs +1 -1
- package/dist/transfer-service/avalanche-cct/_handlers/estimate-native-fee.js +1 -1
- package/dist/transfer-service/avalanche-cct/_handlers/get-bridgeable-assets.cjs +1 -1
- package/dist/transfer-service/avalanche-cct/_handlers/get-bridgeable-assets.js +1 -1
- package/dist/transfer-service/avalanche-cct/_handlers/track-transfer.cjs +1 -1
- package/dist/transfer-service/avalanche-cct/_handlers/track-transfer.js +1 -1
- package/dist/transfer-service/avalanche-cct/_handlers/transfer-asset.cjs +1 -1
- package/dist/transfer-service/avalanche-cct/_handlers/transfer-asset.js +1 -1
- package/dist/transfer-service/avalanche-cct/_utils/fees.cjs +1 -1
- package/dist/transfer-service/avalanche-cct/_utils/fees.js +1 -1
- package/dist/transfer-service/avalanche-cct/_utils/polling.cjs +1 -1
- package/dist/transfer-service/avalanche-cct/_utils/polling.js +1 -1
- package/dist/transfer-service/avalanche-cct/avalanche-cct-service.cjs +1 -1
- package/dist/transfer-service/avalanche-cct/avalanche-cct-service.js +1 -1
- package/dist/transfer-service/avalanche-cct/constants.cjs +1 -1
- package/dist/transfer-service/avalanche-cct/constants.cjs.map +1 -1
- package/dist/transfer-service/avalanche-cct/constants.js +1 -1
- package/dist/transfer-service/avalanche-cct/constants.js.map +1 -1
- package/dist/transfer-service/avalanche-cct/get-recovered-atomic-amount.cjs +2 -0
- package/dist/transfer-service/avalanche-cct/get-recovered-atomic-amount.cjs.map +1 -0
- package/dist/transfer-service/avalanche-cct/get-recovered-atomic-amount.d.cts +33 -0
- package/dist/transfer-service/avalanche-cct/get-recovered-atomic-amount.d.ts +33 -0
- package/dist/transfer-service/avalanche-cct/get-recovered-atomic-amount.js +2 -0
- package/dist/transfer-service/avalanche-cct/get-recovered-atomic-amount.js.map +1 -0
- package/dist/type-guards.cjs +1 -1
- package/dist/type-guards.cjs.map +1 -1
- package/dist/type-guards.d.cts +13 -1
- package/dist/type-guards.d.ts +13 -1
- package/dist/type-guards.js +1 -1
- package/dist/type-guards.js.map +1 -1
- package/dist/utils/transfer-utils.cjs +1 -1
- package/dist/utils/transfer-utils.cjs.map +1 -1
- package/dist/utils/transfer-utils.js +1 -1
- package/dist/utils/transfer-utils.js.map +1 -1
- package/package.json +3 -3
package/dist/constants.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
let e=function(e){return e.DEV=`dev`,e.PROD=`production`,e.TEST=`test`,e}({}),t=function(e){return e.NATIVE=`native`,e.ERC20=`erc20`,e.SPL=`spl`,e}({}),n=function(e){return e.AVALANCHE_CCT=`avalanche-cct`,e.AVALANCHE_EVM=`avalanche-evm`,e.LOMBARD_BTC_TO_BTCB=`lombard-btc-to-btcb`,e.LOMBARD_BTCB_TO_BTC=`lombard-btcb-to-btc`,e.MARKR=`markr`,e.WRAP_UNWRAP=`wrap-unwrap`,e}({});const r=[n.LOMBARD_BTCB_TO_BTC,n.LOMBARD_BTC_TO_BTCB],i=[n.AVALANCHE_EVM,n.WRAP_UNWRAP];let a=function(e){return e.AddressOwnership=`address-ownership`,e.AllowanceApproval=`allowance-approval`,e.AvalancheCrossChainExport=`avalanche-cross-chain-export`,e.AvalancheCrossChainImport=`avalanche-cross-chain-import`,e.TokensTransfer=`tokens-transfer`,e.WrapToken=`wrap-token`,e.HyperliquidAuthorize=`hyperliquid-authorize`,e.HyperliquidSendAsset=`hyperliquid-send-asset`,e.ScheduleRecurringSwap=`schedule-recurring-swap`,e.PauseRecurringSwap=`pause-recurring-swap`,e.ResumeRecurringSwap=`resume-recurring-swap`,e.CancelRecurringSwap=`cancel-recurring-swap`,e}({}),o=function(e){return e.FUJI=`eip155:43113`,e.MAINNET=`eip155:43114`,e}({}),s=function(e){return e.MAINNET=`eip155:1`,e.SEPOLIA=`eip155:11155111`,e}({}),c=function(e){return e.MAINNET=`bip122:000000000019d6689c085ae165831e93`,e.TESTNET=`bip122:000000000933ea01ad0ee984209779ba`,e}({}),l=function(e){return e.MAINNET=`solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`,e.DEVNET=`solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1`,e}({}),u=function(e){return e.MAINNET=`eip155:1337`,e}({}),d=function(e){return e.MAINNET=`eip155:8453`,e.SEPOLIA=`eip155:84532`,e}({}),f=function(e){return e.MAINNET=`eip155:137`,e.AMOY=`eip155:80002`,e}({});const p={C:o.MAINNET,P:`avax:Rr9hnPVPxuUvrdCul-vjEsU1zmqKqRDo`,X:`avax:imji8papUf2EhV3le337w1vgFauqkJg-`},m={C:o.FUJI,P:`avax:Sj7NVE3jXTbJvwFAiu7OEUo_8g8ctXMG`,X:`avax:8AJTpRj3SAqv1e80Mtl9em08LhvKEbkl`},h={C:`2q9e4r6Mu3U68nU1fYjgbR6JvwrRx36CohpAX5UQxse55x1Q5`,P:`11111111111111111111111111111111LpoYY`,X:`2oYMBNV4eNHyqk2fjjV5nVQLDbtmNJzq5s3qs3Lo6ftnC6FByM`},g={C:`yH8D7ThNJkxmtkuv2jgBa4P1Rn3Qpr4pPr7QYNfcdoS6k6HWp`,P:`11111111111111111111111111111111LpoYY`,X:`2JVSBoinj9C2J33VntvzYtVJNZdN2NKiwwKjcumHUWEb5DbBrm`},_={mainnet:{[p.C]:h.C,[p.P]:h.P,[p.X]:h.X},fuji:{[m.C]:g.C,[m.P]:g.P,[m.X]:g.X}},v={chainId:o.FUJI,chainName:`Avalanche Fuji (C-Chain)`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:18},rpcUrl:`https://api.avax-test.network/ext/bc/C/rpc`},y={chainId:o.MAINNET,chainName:`Avalanche Mainnet (C-Chain)`,rpcUrl:`https://api.avax.network/ext/bc/C/rpc`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:18}},b={chainId:p.P,chainName:`Avalanche Mainnet (P-Chain)`,rpcUrl:`https://api.avax.network/ext/bc/P`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:9}},x={chainId:m.P,chainName:`Avalanche Fuji (P-Chain)`,rpcUrl:`https://api.avax-test.network/ext/bc/P`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:9}},S={chainId:p.X,chainName:`Avalanche Mainnet (X-Chain)`,rpcUrl:`https://api.avax.network/ext/bc/X`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:9}},C={chainId:m.X,chainName:`Avalanche Fuji (X-Chain)`,rpcUrl:`https://api.avax-test.network/ext/bc/X`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:9}},w={chainId:s.SEPOLIA,chainName:`Ethereum Sepolia`,rpcUrl:`https://proxy-api.avax.network/proxy/infura/sepolia`,networkToken:{type:t.NATIVE,name:`ETH`,symbol:`ETH`,decimals:18}},T={chainId:s.MAINNET,chainName:`Ethereum Mainnet`,rpcUrl:`https://proxy-api.avax.network/proxy/infura/mainnet`,networkToken:{type:t.NATIVE,name:`ETH`,symbol:`ETH`,decimals:18}},E={chainId:c.TESTNET,chainName:`Bitcoin Testnet`,rpcUrl:``,networkToken:{type:t.NATIVE,name:`Bitcoin`,symbol:`BTC`,decimals:8}},D={chainId:c.MAINNET,chainName:`Bitcoin Mainnet`,rpcUrl:``,networkToken:{type:t.NATIVE,name:`Bitcoin`,symbol:`BTC`,decimals:8}},O={chainId:l.MAINNET,chainName:`Solana`,rpcUrl:`https://proxy-api.avax.network/proxy/nownodes/sol`,networkToken:{type:t.NATIVE,name:`SOL`,symbol:`SOL`,decimals:9}},k={chainId:l.DEVNET,chainName:`Solana (Devnet)`,rpcUrl:`https://api.devnet.solana.com`,networkToken:{type:t.NATIVE,name:`SOL`,symbol:`SOL`,decimals:9}},A={type:t.NATIVE,name:`Avalanche`,symbol:`AVAX`,decimals:18,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/
|
|
1
|
+
let e=function(e){return e.DEV=`dev`,e.PROD=`production`,e.TEST=`test`,e}({}),t=function(e){return e.NATIVE=`native`,e.ERC20=`erc20`,e.SPL=`spl`,e}({}),n=function(e){return e.AVALANCHE_CCT=`avalanche-cct`,e.AVALANCHE_EVM=`avalanche-evm`,e.LOMBARD_BTC_TO_BTCB=`lombard-btc-to-btcb`,e.LOMBARD_BTCB_TO_BTC=`lombard-btcb-to-btc`,e.MARKR=`markr`,e.WRAP_UNWRAP=`wrap-unwrap`,e}({});const r=[n.LOMBARD_BTCB_TO_BTC,n.LOMBARD_BTC_TO_BTCB],i=[n.AVALANCHE_EVM,n.WRAP_UNWRAP];let a=function(e){return e.AddressOwnership=`address-ownership`,e.AllowanceApproval=`allowance-approval`,e.AvalancheCrossChainExport=`avalanche-cross-chain-export`,e.AvalancheCrossChainImport=`avalanche-cross-chain-import`,e.TokensTransfer=`tokens-transfer`,e.WrapToken=`wrap-token`,e.HyperliquidAuthorize=`hyperliquid-authorize`,e.HyperliquidSendAsset=`hyperliquid-send-asset`,e.ScheduleRecurringSwap=`schedule-recurring-swap`,e.PauseRecurringSwap=`pause-recurring-swap`,e.ResumeRecurringSwap=`resume-recurring-swap`,e.CancelRecurringSwap=`cancel-recurring-swap`,e}({}),o=function(e){return e.FUJI=`eip155:43113`,e.MAINNET=`eip155:43114`,e}({}),s=function(e){return e.MAINNET=`eip155:1`,e.SEPOLIA=`eip155:11155111`,e}({}),c=function(e){return e.MAINNET=`bip122:000000000019d6689c085ae165831e93`,e.TESTNET=`bip122:000000000933ea01ad0ee984209779ba`,e}({}),l=function(e){return e.MAINNET=`solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`,e.DEVNET=`solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1`,e}({}),u=function(e){return e.MAINNET=`eip155:1337`,e}({}),d=function(e){return e.MAINNET=`eip155:8453`,e.SEPOLIA=`eip155:84532`,e}({}),f=function(e){return e.MAINNET=`eip155:137`,e.AMOY=`eip155:80002`,e}({});const p={C:o.MAINNET,P:`avax:Rr9hnPVPxuUvrdCul-vjEsU1zmqKqRDo`,X:`avax:imji8papUf2EhV3le337w1vgFauqkJg-`},m={C:o.FUJI,P:`avax:Sj7NVE3jXTbJvwFAiu7OEUo_8g8ctXMG`,X:`avax:8AJTpRj3SAqv1e80Mtl9em08LhvKEbkl`},h={C:`2q9e4r6Mu3U68nU1fYjgbR6JvwrRx36CohpAX5UQxse55x1Q5`,P:`11111111111111111111111111111111LpoYY`,X:`2oYMBNV4eNHyqk2fjjV5nVQLDbtmNJzq5s3qs3Lo6ftnC6FByM`},g={C:`yH8D7ThNJkxmtkuv2jgBa4P1Rn3Qpr4pPr7QYNfcdoS6k6HWp`,P:`11111111111111111111111111111111LpoYY`,X:`2JVSBoinj9C2J33VntvzYtVJNZdN2NKiwwKjcumHUWEb5DbBrm`},_={mainnet:{[p.C]:h.C,[p.P]:h.P,[p.X]:h.X},fuji:{[m.C]:g.C,[m.P]:g.P,[m.X]:g.X}},v={chainId:o.FUJI,chainName:`Avalanche Fuji (C-Chain)`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:18,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`},rpcUrl:`https://api.avax-test.network/ext/bc/C/rpc`},y={chainId:o.MAINNET,chainName:`Avalanche Mainnet (C-Chain)`,rpcUrl:`https://api.avax.network/ext/bc/C/rpc`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:18,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`}},b={chainId:p.P,chainName:`Avalanche Mainnet (P-Chain)`,rpcUrl:`https://api.avax.network/ext/bc/P`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:9,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`}},x={chainId:m.P,chainName:`Avalanche Fuji (P-Chain)`,rpcUrl:`https://api.avax-test.network/ext/bc/P`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:9,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`}},S={chainId:p.X,chainName:`Avalanche Mainnet (X-Chain)`,rpcUrl:`https://api.avax.network/ext/bc/X`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:9,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`}},C={chainId:m.X,chainName:`Avalanche Fuji (X-Chain)`,rpcUrl:`https://api.avax-test.network/ext/bc/X`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:9,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`}},w={chainId:s.SEPOLIA,chainName:`Ethereum Sepolia`,rpcUrl:`https://proxy-api.avax.network/proxy/infura/sepolia`,networkToken:{type:t.NATIVE,name:`ETH`,symbol:`ETH`,decimals:18,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/6l56QLVZmvacuBfjHBTThP/791d743dd2c526692562780c2325fedf/eth-circle__1_.svg`}},T={chainId:s.MAINNET,chainName:`Ethereum Mainnet`,rpcUrl:`https://proxy-api.avax.network/proxy/infura/mainnet`,networkToken:{type:t.NATIVE,name:`ETH`,symbol:`ETH`,decimals:18,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/6l56QLVZmvacuBfjHBTThP/791d743dd2c526692562780c2325fedf/eth-circle__1_.svg`}},E={chainId:c.TESTNET,chainName:`Bitcoin Testnet`,rpcUrl:``,networkToken:{type:t.NATIVE,name:`Bitcoin`,symbol:`BTC`,decimals:8,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/32zG83beysuk3j6ye3kdF2/6b7ea715d521e5a89a0280973e929cce/bitcoin-btc-logo__1_.svg`}},D={chainId:c.MAINNET,chainName:`Bitcoin Mainnet`,rpcUrl:``,networkToken:{type:t.NATIVE,name:`Bitcoin`,symbol:`BTC`,decimals:8,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/32zG83beysuk3j6ye3kdF2/6b7ea715d521e5a89a0280973e929cce/bitcoin-btc-logo__1_.svg`}},O={chainId:l.MAINNET,chainName:`Solana`,rpcUrl:`https://proxy-api.avax.network/proxy/nownodes/sol`,networkToken:{type:t.NATIVE,name:`SOL`,symbol:`SOL`,decimals:9,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/4VgCue74mbrtME1ZqEj7Y1/d9d29c801f8c2aab9fe4c6c69166364b/Network_Solana.svg`}},k={chainId:l.DEVNET,chainName:`Solana (Devnet)`,rpcUrl:`https://api.devnet.solana.com`,networkToken:{type:t.NATIVE,name:`SOL`,symbol:`SOL`,decimals:9,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/4VgCue74mbrtME1ZqEj7Y1/d9d29c801f8c2aab9fe4c6c69166364b/Network_Solana.svg`}},A={type:t.NATIVE,name:`Avalanche`,symbol:`AVAX`,decimals:18,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`},j={type:t.NATIVE,name:`Ether`,symbol:`ETH`,decimals:18,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/6l56QLVZmvacuBfjHBTThP/791d743dd2c526692562780c2325fedf/eth-circle__1_.svg`};let M=function(e){return e.AVALANCHE=`avalanche`,e.BITCOIN=`bitcoin`,e.ETHEREUM=`ethereum`,e.SOLANA=`solana`,e.UNKNOWN=`_unknown`,e}({}),N=function(e){return e[e.AVALANCHE_MAINNET=43114]=`AVALANCHE_MAINNET`,e[e.AVALANCHE_TESTNET=43113]=`AVALANCHE_TESTNET`,e[e.ETHEREUM_HOMESTEAD=1]=`ETHEREUM_HOMESTEAD`,e[e.ETHEREUM_TEST_SEPOLIA=11155111]=`ETHEREUM_TEST_SEPOLIA`,e[e.BITCOIN=0xfffffffffffeb]=`BITCOIN`,e[e.BITCOIN_TESTNET=0xfffffffffffea]=`BITCOIN_TESTNET`,e}({});const P={slow:`low`,normal:`medium`,fast:`high`};exports.AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK=_,exports.AVALANCHE_FUJI_CHAIN=v,exports.AVALANCHE_FUJI_P_CHAIN=x,exports.AVALANCHE_FUJI_X_CHAIN=C,exports.AVALANCHE_MAINNET_CHAIN=y,exports.AVALANCHE_MAINNET_P_CHAIN=b,exports.AVALANCHE_MAINNET_X_CHAIN=S,exports.AvalancheChainIds=o,exports.AvalancheFujiBlockchainChainIds=m,exports.AvalancheFujiBlockchainIds=g,exports.AvalancheMainnetBlockchainChainIds=p,exports.AvalancheMainnetBlockchainIds=h,exports.BITCOIN_MAINNET_CHAIN=D,exports.BITCOIN_TESTNET_CHAIN=E,exports.BTC_SERVICE_TYPES=r,exports.BaseChainIds=d,exports.BitcoinChainIds=c,exports.Blockchain=M,exports.ERC_ZERO_ADDRESS=`0x0000000000000000000000000000000000000000`,exports.ETHEREUM_MAINNET_CHAIN=T,exports.ETHEREUM_SEPOLIA_CHAIN=w,exports.EVM_SERVICE_TYPES=i,exports.Environment=e,exports.EthereumChainIds=s,exports.EvmChainId=N,exports.FEE_RATE_TIER_TO_BITCOIN=P,exports.HyperliquidChainIds=u,exports.NATIVE_AVAX=A,exports.NATIVE_ETH=j,exports.NATIVE_SOL_ADDRESS=`11111111111111111111111111111111`,exports.PolygonChainIds=f,exports.SOLANA_DEVNET_CHAIN=k,exports.SOLANA_MAINNET_CHAIN=O,exports.ServiceType=n,exports.SolanaChainIds=l,exports.TokenType=t,exports.TransferSignatureReason=a;
|
|
2
2
|
//# sourceMappingURL=constants.cjs.map
|
package/dist/constants.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.cjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["import type { Address as SolAddress } from '@solana/kit';\nimport type { Address as EvmAddress } from 'viem';\nimport type { NativeAsset } from './types/asset';\nimport type { BitcoinFeeRateTier } from './types/bitcoin';\nimport type { Caip2ChainId } from './types/caip';\nimport type { Chain } from './types/chain';\nimport type { FeeRateTier } from './types/fee';\n\nexport enum Environment {\n DEV = 'dev',\n PROD = 'production',\n TEST = 'test',\n}\n\nexport enum TokenType {\n NATIVE = 'native',\n ERC20 = 'erc20',\n SPL = 'spl',\n}\n\nexport enum ServiceType {\n /** Avalanche Cross-chain transfer service. Export/import between C/P/X Avalanche chains. */\n AVALANCHE_CCT = 'avalanche-cct',\n /** Bridge between EVM chains within Avalanche (or EVM-compatible flows). */\n AVALANCHE_EVM = 'avalanche-evm',\n /** Bitcoin → Avalanche. */\n LOMBARD_BTC_TO_BTCB = 'lombard-btc-to-btcb',\n /** Avalanche → Bitcoin. */\n LOMBARD_BTCB_TO_BTC = 'lombard-btcb-to-btc',\n MARKR = 'markr',\n /** Same-chain wrap/unwrap of native ETH ↔ WETH and AVAX ↔ WAVAX. */\n WRAP_UNWRAP = 'wrap-unwrap',\n}\n\nexport const BTC_SERVICE_TYPES: readonly [ServiceType.LOMBARD_BTCB_TO_BTC, ServiceType.LOMBARD_BTC_TO_BTCB] = [\n ServiceType.LOMBARD_BTCB_TO_BTC,\n ServiceType.LOMBARD_BTC_TO_BTCB,\n];\n\nexport const EVM_SERVICE_TYPES: readonly [ServiceType.AVALANCHE_EVM, ServiceType.WRAP_UNWRAP] = [\n ServiceType.AVALANCHE_EVM,\n ServiceType.WRAP_UNWRAP,\n];\n\n/** Reasons for user signatures during execution. */\nexport enum TransferSignatureReason {\n AddressOwnership = 'address-ownership',\n /** ERC-20 allowance approval for router/bridge. */\n AllowanceApproval = 'allowance-approval',\n /** Primary signature for cross-chain export transaction. */\n AvalancheCrossChainExport = 'avalanche-cross-chain-export',\n /** Primary signature for cross-chain import transaction. */\n AvalancheCrossChainImport = 'avalanche-cross-chain-import',\n /** The primary token movement call (swap or bridge submit). */\n TokensTransfer = 'tokens-transfer',\n /** Optional wrap/unwrap step for native token handling. */\n WrapToken = 'wrap-token',\n /** Hyperliquid 2-phase withdrawal: step 1, nonce-mapping authorization (Relay protocol). */\n HyperliquidAuthorize = 'hyperliquid-authorize',\n /** Hyperliquid 2-phase withdrawal: step 2, the `sendAsset` transfer. */\n HyperliquidSendAsset = 'hyperliquid-send-asset',\n /** Markr recurring: first-fill swap that schedules the recurring order on-chain. */\n ScheduleRecurringSwap = 'schedule-recurring-swap',\n /** Markr recurring: pause an active schedule (preserves allowance). */\n PauseRecurringSwap = 'pause-recurring-swap',\n /** Markr recurring: resume (unpause) a paused schedule. */\n ResumeRecurringSwap = 'resume-recurring-swap',\n /** Markr recurring: cancel an active or paused schedule. */\n CancelRecurringSwap = 'cancel-recurring-swap',\n}\n\nexport const ERC_ZERO_ADDRESS: EvmAddress = '0x0000000000000000000000000000000000000000';\nexport const NATIVE_SOL_ADDRESS: SolAddress = '11111111111111111111111111111111' as SolAddress;\n\nexport enum AvalancheChainIds {\n FUJI = 'eip155:43113',\n MAINNET = 'eip155:43114',\n}\n\nexport enum EthereumChainIds {\n MAINNET = 'eip155:1',\n SEPOLIA = 'eip155:11155111',\n}\n\nexport enum BitcoinChainIds {\n MAINNET = 'bip122:000000000019d6689c085ae165831e93',\n TESTNET = 'bip122:000000000933ea01ad0ee984209779ba',\n}\n\nexport enum SolanaChainIds {\n MAINNET = 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',\n DEVNET = 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',\n}\n\n/**\n * Hyperliquid is identified by CAIP-2 `eip155:1337` per Relay's convention.\n * It's an EVM-namespaced chain ID but has no real EVM execution — withdrawals\n * use a two-signature EIP-712 flow against Hyperliquid's `/exchange` API.\n */\nexport enum HyperliquidChainIds {\n MAINNET = 'eip155:1337',\n}\n\nexport enum BaseChainIds {\n MAINNET = 'eip155:8453',\n SEPOLIA = 'eip155:84532',\n}\n\nexport enum PolygonChainIds {\n MAINNET = 'eip155:137',\n AMOY = 'eip155:80002',\n}\n\nexport type AvalancheBlockchainAlias = 'C' | 'P' | 'X';\n\nexport const AvalancheMainnetBlockchainChainIds: Readonly<Record<AvalancheBlockchainAlias, Caip2ChainId>> = {\n C: AvalancheChainIds.MAINNET,\n P: 'avax:Rr9hnPVPxuUvrdCul-vjEsU1zmqKqRDo',\n X: 'avax:imji8papUf2EhV3le337w1vgFauqkJg-',\n};\n\nexport const AvalancheFujiBlockchainChainIds: Readonly<Record<AvalancheBlockchainAlias, Caip2ChainId>> = {\n C: AvalancheChainIds.FUJI,\n P: 'avax:Sj7NVE3jXTbJvwFAiu7OEUo_8g8ctXMG',\n X: 'avax:8AJTpRj3SAqv1e80Mtl9em08LhvKEbkl',\n};\n\nexport const AvalancheMainnetBlockchainIds: Readonly<Record<AvalancheBlockchainAlias, string>> = {\n C: '2q9e4r6Mu3U68nU1fYjgbR6JvwrRx36CohpAX5UQxse55x1Q5',\n P: '11111111111111111111111111111111LpoYY',\n X: '2oYMBNV4eNHyqk2fjjV5nVQLDbtmNJzq5s3qs3Lo6ftnC6FByM',\n};\n\nexport const AvalancheFujiBlockchainIds: Readonly<Record<AvalancheBlockchainAlias, string>> = {\n C: 'yH8D7ThNJkxmtkuv2jgBa4P1Rn3Qpr4pPr7QYNfcdoS6k6HWp',\n P: '11111111111111111111111111111111LpoYY',\n X: '2JVSBoinj9C2J33VntvzYtVJNZdN2NKiwwKjcumHUWEb5DbBrm',\n};\n\nexport const AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK: Readonly<{\n mainnet: Readonly<Record<Caip2ChainId, string>>;\n fuji: Readonly<Record<Caip2ChainId, string>>;\n}> = {\n mainnet: {\n [AvalancheMainnetBlockchainChainIds.C]: AvalancheMainnetBlockchainIds.C,\n [AvalancheMainnetBlockchainChainIds.P]: AvalancheMainnetBlockchainIds.P,\n [AvalancheMainnetBlockchainChainIds.X]: AvalancheMainnetBlockchainIds.X,\n },\n fuji: {\n [AvalancheFujiBlockchainChainIds.C]: AvalancheFujiBlockchainIds.C,\n [AvalancheFujiBlockchainChainIds.P]: AvalancheFujiBlockchainIds.P,\n [AvalancheFujiBlockchainChainIds.X]: AvalancheFujiBlockchainIds.X,\n },\n};\n\nexport const AVALANCHE_FUJI_CHAIN: Chain = {\n chainId: AvalancheChainIds.FUJI,\n chainName: 'Avalanche Fuji (C-Chain)',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 18,\n },\n rpcUrl: 'https://api.avax-test.network/ext/bc/C/rpc',\n};\n\nexport const AVALANCHE_MAINNET_CHAIN: Chain = {\n chainId: AvalancheChainIds.MAINNET,\n chainName: 'Avalanche Mainnet (C-Chain)',\n rpcUrl: 'https://api.avax.network/ext/bc/C/rpc',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 18,\n },\n};\n\nexport const AVALANCHE_MAINNET_P_CHAIN: Chain = {\n chainId: AvalancheMainnetBlockchainChainIds.P,\n chainName: 'Avalanche Mainnet (P-Chain)',\n rpcUrl: 'https://api.avax.network/ext/bc/P',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 9,\n },\n};\n\nexport const AVALANCHE_FUJI_P_CHAIN: Chain = {\n chainId: AvalancheFujiBlockchainChainIds.P,\n chainName: 'Avalanche Fuji (P-Chain)',\n rpcUrl: 'https://api.avax-test.network/ext/bc/P',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 9,\n },\n};\n\nexport const AVALANCHE_MAINNET_X_CHAIN: Chain = {\n chainId: AvalancheMainnetBlockchainChainIds.X,\n chainName: 'Avalanche Mainnet (X-Chain)',\n rpcUrl: 'https://api.avax.network/ext/bc/X',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 9,\n },\n};\n\nexport const AVALANCHE_FUJI_X_CHAIN: Chain = {\n chainId: AvalancheFujiBlockchainChainIds.X,\n chainName: 'Avalanche Fuji (X-Chain)',\n rpcUrl: 'https://api.avax-test.network/ext/bc/X',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 9,\n },\n};\n\nexport const ETHEREUM_SEPOLIA_CHAIN: Chain = {\n chainId: EthereumChainIds.SEPOLIA,\n chainName: 'Ethereum Sepolia',\n rpcUrl: 'https://proxy-api.avax.network/proxy/infura/sepolia',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n};\n\nexport const ETHEREUM_MAINNET_CHAIN: Chain = {\n chainId: EthereumChainIds.MAINNET,\n chainName: 'Ethereum Mainnet',\n rpcUrl: 'https://proxy-api.avax.network/proxy/infura/mainnet',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n};\n\nexport const BITCOIN_TESTNET_CHAIN: Chain = {\n chainId: BitcoinChainIds.TESTNET,\n chainName: 'Bitcoin Testnet',\n rpcUrl: '',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'Bitcoin',\n symbol: 'BTC',\n decimals: 8,\n },\n};\n\nexport const BITCOIN_MAINNET_CHAIN: Chain = {\n chainId: BitcoinChainIds.MAINNET,\n chainName: 'Bitcoin Mainnet',\n rpcUrl: '',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'Bitcoin',\n symbol: 'BTC',\n decimals: 8,\n },\n};\n\nexport const SOLANA_MAINNET_CHAIN: Chain = {\n chainId: SolanaChainIds.MAINNET,\n chainName: 'Solana',\n rpcUrl: 'https://proxy-api.avax.network/proxy/nownodes/sol',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'SOL',\n symbol: 'SOL',\n decimals: 9,\n },\n};\n\nexport const SOLANA_DEVNET_CHAIN: Chain = {\n chainId: SolanaChainIds.DEVNET,\n chainName: 'Solana (Devnet)',\n rpcUrl: 'https://api.devnet.solana.com',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'SOL',\n symbol: 'SOL',\n decimals: 9,\n },\n};\nexport const NATIVE_AVAX: NativeAsset = {\n type: TokenType.NATIVE,\n name: 'Avalanche',\n symbol: 'AVAX',\n decimals: 18,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/fdd6326b7a82c8388e4ee9d4be7062d4/avalanche-avax-logo.svg',\n};\nexport const NATIVE_ETH: NativeAsset = {\n type: TokenType.NATIVE,\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/6l56QLVZmvacuBfjHBTThP/791d743dd2c526692562780c2325fedf/eth-circle__1_.svg',\n};\n\nexport enum Blockchain {\n AVALANCHE = 'avalanche',\n BITCOIN = 'bitcoin',\n ETHEREUM = 'ethereum',\n SOLANA = 'solana',\n UNKNOWN = '_unknown',\n}\n\nexport enum EvmChainId {\n AVALANCHE_MAINNET = 43114,\n AVALANCHE_TESTNET = 43113,\n ETHEREUM_HOMESTEAD = 1,\n ETHEREUM_TEST_SEPOLIA = 11155111,\n /**\n * This is not a real chain ID, as Bitcoin does not have a chain ID.\n * It is used internally to represent Bitcoin in a way that avoids\n * conflicts with real EVM chain IDs.\n */\n BITCOIN = 4_503_599_627_370_476 - 1,\n /**\n * This is not a real chain ID, as Bitcoin does not have a chain ID.\n * It is used internally to represent Bitcoin in a way that avoids\n * conflicts with real EVM chain IDs.\n */\n BITCOIN_TESTNET = 4_503_599_627_370_476 - 2,\n}\n\n/**\n * Maps the unified {@link FeeRateTier} to the Bitcoin-specific\n * {@link BitcoinFeeRateTier} (`low | medium | high`).\n */\nexport const FEE_RATE_TIER_TO_BITCOIN: Record<FeeRateTier, BitcoinFeeRateTier> = {\n slow: 'low',\n normal: 'medium',\n fast: 'high',\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.cjs","names":[],"sources":["../src/constants.ts"],"sourcesContent":["import type { Address as SolAddress } from '@solana/kit';\nimport type { Address as EvmAddress } from 'viem';\nimport type { NativeAsset } from './types/asset';\nimport type { BitcoinFeeRateTier } from './types/bitcoin';\nimport type { Caip2ChainId } from './types/caip';\nimport type { Chain } from './types/chain';\nimport type { FeeRateTier } from './types/fee';\n\nexport enum Environment {\n DEV = 'dev',\n PROD = 'production',\n TEST = 'test',\n}\n\nexport enum TokenType {\n NATIVE = 'native',\n ERC20 = 'erc20',\n SPL = 'spl',\n}\n\nexport enum ServiceType {\n /** Avalanche Cross-chain transfer service. Export/import between C/P/X Avalanche chains. */\n AVALANCHE_CCT = 'avalanche-cct',\n /** Bridge between EVM chains within Avalanche (or EVM-compatible flows). */\n AVALANCHE_EVM = 'avalanche-evm',\n /** Bitcoin → Avalanche. */\n LOMBARD_BTC_TO_BTCB = 'lombard-btc-to-btcb',\n /** Avalanche → Bitcoin. */\n LOMBARD_BTCB_TO_BTC = 'lombard-btcb-to-btc',\n MARKR = 'markr',\n /** Same-chain wrap/unwrap of native ETH ↔ WETH and AVAX ↔ WAVAX. */\n WRAP_UNWRAP = 'wrap-unwrap',\n}\n\nexport const BTC_SERVICE_TYPES: readonly [ServiceType.LOMBARD_BTCB_TO_BTC, ServiceType.LOMBARD_BTC_TO_BTCB] = [\n ServiceType.LOMBARD_BTCB_TO_BTC,\n ServiceType.LOMBARD_BTC_TO_BTCB,\n];\n\nexport const EVM_SERVICE_TYPES: readonly [ServiceType.AVALANCHE_EVM, ServiceType.WRAP_UNWRAP] = [\n ServiceType.AVALANCHE_EVM,\n ServiceType.WRAP_UNWRAP,\n];\n\n/** Reasons for user signatures during execution. */\nexport enum TransferSignatureReason {\n AddressOwnership = 'address-ownership',\n /** ERC-20 allowance approval for router/bridge. */\n AllowanceApproval = 'allowance-approval',\n /** Primary signature for cross-chain export transaction. */\n AvalancheCrossChainExport = 'avalanche-cross-chain-export',\n /** Primary signature for cross-chain import transaction. */\n AvalancheCrossChainImport = 'avalanche-cross-chain-import',\n /** The primary token movement call (swap or bridge submit). */\n TokensTransfer = 'tokens-transfer',\n /** Optional wrap/unwrap step for native token handling. */\n WrapToken = 'wrap-token',\n /** Hyperliquid 2-phase withdrawal: step 1, nonce-mapping authorization (Relay protocol). */\n HyperliquidAuthorize = 'hyperliquid-authorize',\n /** Hyperliquid 2-phase withdrawal: step 2, the `sendAsset` transfer. */\n HyperliquidSendAsset = 'hyperliquid-send-asset',\n /** Markr recurring: first-fill swap that schedules the recurring order on-chain. */\n ScheduleRecurringSwap = 'schedule-recurring-swap',\n /** Markr recurring: pause an active schedule (preserves allowance). */\n PauseRecurringSwap = 'pause-recurring-swap',\n /** Markr recurring: resume (unpause) a paused schedule. */\n ResumeRecurringSwap = 'resume-recurring-swap',\n /** Markr recurring: cancel an active or paused schedule. */\n CancelRecurringSwap = 'cancel-recurring-swap',\n}\n\nexport const ERC_ZERO_ADDRESS: EvmAddress = '0x0000000000000000000000000000000000000000';\nexport const NATIVE_SOL_ADDRESS: SolAddress = '11111111111111111111111111111111' as SolAddress;\n\nexport enum AvalancheChainIds {\n FUJI = 'eip155:43113',\n MAINNET = 'eip155:43114',\n}\n\nexport enum EthereumChainIds {\n MAINNET = 'eip155:1',\n SEPOLIA = 'eip155:11155111',\n}\n\nexport enum BitcoinChainIds {\n MAINNET = 'bip122:000000000019d6689c085ae165831e93',\n TESTNET = 'bip122:000000000933ea01ad0ee984209779ba',\n}\n\nexport enum SolanaChainIds {\n MAINNET = 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',\n DEVNET = 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',\n}\n\n/**\n * Hyperliquid is identified by CAIP-2 `eip155:1337` per Relay's convention.\n * It's an EVM-namespaced chain ID but has no real EVM execution — withdrawals\n * use a two-signature EIP-712 flow against Hyperliquid's `/exchange` API.\n */\nexport enum HyperliquidChainIds {\n MAINNET = 'eip155:1337',\n}\n\nexport enum BaseChainIds {\n MAINNET = 'eip155:8453',\n SEPOLIA = 'eip155:84532',\n}\n\nexport enum PolygonChainIds {\n MAINNET = 'eip155:137',\n AMOY = 'eip155:80002',\n}\n\nexport type AvalancheBlockchainAlias = 'C' | 'P' | 'X';\n\nexport const AvalancheMainnetBlockchainChainIds: Readonly<Record<AvalancheBlockchainAlias, Caip2ChainId>> = {\n C: AvalancheChainIds.MAINNET,\n P: 'avax:Rr9hnPVPxuUvrdCul-vjEsU1zmqKqRDo',\n X: 'avax:imji8papUf2EhV3le337w1vgFauqkJg-',\n};\n\nexport const AvalancheFujiBlockchainChainIds: Readonly<Record<AvalancheBlockchainAlias, Caip2ChainId>> = {\n C: AvalancheChainIds.FUJI,\n P: 'avax:Sj7NVE3jXTbJvwFAiu7OEUo_8g8ctXMG',\n X: 'avax:8AJTpRj3SAqv1e80Mtl9em08LhvKEbkl',\n};\n\nexport const AvalancheMainnetBlockchainIds: Readonly<Record<AvalancheBlockchainAlias, string>> = {\n C: '2q9e4r6Mu3U68nU1fYjgbR6JvwrRx36CohpAX5UQxse55x1Q5',\n P: '11111111111111111111111111111111LpoYY',\n X: '2oYMBNV4eNHyqk2fjjV5nVQLDbtmNJzq5s3qs3Lo6ftnC6FByM',\n};\n\nexport const AvalancheFujiBlockchainIds: Readonly<Record<AvalancheBlockchainAlias, string>> = {\n C: 'yH8D7ThNJkxmtkuv2jgBa4P1Rn3Qpr4pPr7QYNfcdoS6k6HWp',\n P: '11111111111111111111111111111111LpoYY',\n X: '2JVSBoinj9C2J33VntvzYtVJNZdN2NKiwwKjcumHUWEb5DbBrm',\n};\n\nexport const AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK: Readonly<{\n mainnet: Readonly<Record<Caip2ChainId, string>>;\n fuji: Readonly<Record<Caip2ChainId, string>>;\n}> = {\n mainnet: {\n [AvalancheMainnetBlockchainChainIds.C]: AvalancheMainnetBlockchainIds.C,\n [AvalancheMainnetBlockchainChainIds.P]: AvalancheMainnetBlockchainIds.P,\n [AvalancheMainnetBlockchainChainIds.X]: AvalancheMainnetBlockchainIds.X,\n },\n fuji: {\n [AvalancheFujiBlockchainChainIds.C]: AvalancheFujiBlockchainIds.C,\n [AvalancheFujiBlockchainChainIds.P]: AvalancheFujiBlockchainIds.P,\n [AvalancheFujiBlockchainChainIds.X]: AvalancheFujiBlockchainIds.X,\n },\n};\n\nexport const AVALANCHE_FUJI_CHAIN: Chain = {\n chainId: AvalancheChainIds.FUJI,\n chainName: 'Avalanche Fuji (C-Chain)',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 18,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n },\n rpcUrl: 'https://api.avax-test.network/ext/bc/C/rpc',\n};\n\nexport const AVALANCHE_MAINNET_CHAIN: Chain = {\n chainId: AvalancheChainIds.MAINNET,\n chainName: 'Avalanche Mainnet (C-Chain)',\n rpcUrl: 'https://api.avax.network/ext/bc/C/rpc',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 18,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n },\n};\n\nexport const AVALANCHE_MAINNET_P_CHAIN: Chain = {\n chainId: AvalancheMainnetBlockchainChainIds.P,\n chainName: 'Avalanche Mainnet (P-Chain)',\n rpcUrl: 'https://api.avax.network/ext/bc/P',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 9,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n },\n};\n\nexport const AVALANCHE_FUJI_P_CHAIN: Chain = {\n chainId: AvalancheFujiBlockchainChainIds.P,\n chainName: 'Avalanche Fuji (P-Chain)',\n rpcUrl: 'https://api.avax-test.network/ext/bc/P',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 9,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n },\n};\n\nexport const AVALANCHE_MAINNET_X_CHAIN: Chain = {\n chainId: AvalancheMainnetBlockchainChainIds.X,\n chainName: 'Avalanche Mainnet (X-Chain)',\n rpcUrl: 'https://api.avax.network/ext/bc/X',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 9,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n },\n};\n\nexport const AVALANCHE_FUJI_X_CHAIN: Chain = {\n chainId: AvalancheFujiBlockchainChainIds.X,\n chainName: 'Avalanche Fuji (X-Chain)',\n rpcUrl: 'https://api.avax-test.network/ext/bc/X',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 9,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n },\n};\n\nexport const ETHEREUM_SEPOLIA_CHAIN: Chain = {\n chainId: EthereumChainIds.SEPOLIA,\n chainName: 'Ethereum Sepolia',\n rpcUrl: 'https://proxy-api.avax.network/proxy/infura/sepolia',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/6l56QLVZmvacuBfjHBTThP/791d743dd2c526692562780c2325fedf/eth-circle__1_.svg',\n },\n};\n\nexport const ETHEREUM_MAINNET_CHAIN: Chain = {\n chainId: EthereumChainIds.MAINNET,\n chainName: 'Ethereum Mainnet',\n rpcUrl: 'https://proxy-api.avax.network/proxy/infura/mainnet',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/6l56QLVZmvacuBfjHBTThP/791d743dd2c526692562780c2325fedf/eth-circle__1_.svg',\n },\n};\n\nexport const BITCOIN_TESTNET_CHAIN: Chain = {\n chainId: BitcoinChainIds.TESTNET,\n chainName: 'Bitcoin Testnet',\n rpcUrl: '',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'Bitcoin',\n symbol: 'BTC',\n decimals: 8,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/32zG83beysuk3j6ye3kdF2/6b7ea715d521e5a89a0280973e929cce/bitcoin-btc-logo__1_.svg',\n },\n};\n\nexport const BITCOIN_MAINNET_CHAIN: Chain = {\n chainId: BitcoinChainIds.MAINNET,\n chainName: 'Bitcoin Mainnet',\n rpcUrl: '',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'Bitcoin',\n symbol: 'BTC',\n decimals: 8,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/32zG83beysuk3j6ye3kdF2/6b7ea715d521e5a89a0280973e929cce/bitcoin-btc-logo__1_.svg',\n },\n};\n\nexport const SOLANA_MAINNET_CHAIN: Chain = {\n chainId: SolanaChainIds.MAINNET,\n chainName: 'Solana',\n rpcUrl: 'https://proxy-api.avax.network/proxy/nownodes/sol',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'SOL',\n symbol: 'SOL',\n decimals: 9,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/4VgCue74mbrtME1ZqEj7Y1/d9d29c801f8c2aab9fe4c6c69166364b/Network_Solana.svg',\n },\n};\n\nexport const SOLANA_DEVNET_CHAIN: Chain = {\n chainId: SolanaChainIds.DEVNET,\n chainName: 'Solana (Devnet)',\n rpcUrl: 'https://api.devnet.solana.com',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'SOL',\n symbol: 'SOL',\n decimals: 9,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/4VgCue74mbrtME1ZqEj7Y1/d9d29c801f8c2aab9fe4c6c69166364b/Network_Solana.svg',\n },\n};\nexport const NATIVE_AVAX: NativeAsset = {\n type: TokenType.NATIVE,\n name: 'Avalanche',\n symbol: 'AVAX',\n decimals: 18,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n};\nexport const NATIVE_ETH: NativeAsset = {\n type: TokenType.NATIVE,\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/6l56QLVZmvacuBfjHBTThP/791d743dd2c526692562780c2325fedf/eth-circle__1_.svg',\n};\n\nexport enum Blockchain {\n AVALANCHE = 'avalanche',\n BITCOIN = 'bitcoin',\n ETHEREUM = 'ethereum',\n SOLANA = 'solana',\n UNKNOWN = '_unknown',\n}\n\nexport enum EvmChainId {\n AVALANCHE_MAINNET = 43114,\n AVALANCHE_TESTNET = 43113,\n ETHEREUM_HOMESTEAD = 1,\n ETHEREUM_TEST_SEPOLIA = 11155111,\n /**\n * This is not a real chain ID, as Bitcoin does not have a chain ID.\n * It is used internally to represent Bitcoin in a way that avoids\n * conflicts with real EVM chain IDs.\n */\n BITCOIN = 4_503_599_627_370_476 - 1,\n /**\n * This is not a real chain ID, as Bitcoin does not have a chain ID.\n * It is used internally to represent Bitcoin in a way that avoids\n * conflicts with real EVM chain IDs.\n */\n BITCOIN_TESTNET = 4_503_599_627_370_476 - 2,\n}\n\n/**\n * Maps the unified {@link FeeRateTier} to the Bitcoin-specific\n * {@link BitcoinFeeRateTier} (`low | medium | high`).\n */\nexport const FEE_RATE_TIER_TO_BITCOIN: Record<FeeRateTier, BitcoinFeeRateTier> = {\n slow: 'low',\n normal: 'medium',\n fast: 'high',\n};\n"],"mappings":"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"}
|
package/dist/constants.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
let e=function(e){return e.DEV=`dev`,e.PROD=`production`,e.TEST=`test`,e}({}),t=function(e){return e.NATIVE=`native`,e.ERC20=`erc20`,e.SPL=`spl`,e}({}),n=function(e){return e.AVALANCHE_CCT=`avalanche-cct`,e.AVALANCHE_EVM=`avalanche-evm`,e.LOMBARD_BTC_TO_BTCB=`lombard-btc-to-btcb`,e.LOMBARD_BTCB_TO_BTC=`lombard-btcb-to-btc`,e.MARKR=`markr`,e.WRAP_UNWRAP=`wrap-unwrap`,e}({});const r=[n.LOMBARD_BTCB_TO_BTC,n.LOMBARD_BTC_TO_BTCB],i=[n.AVALANCHE_EVM,n.WRAP_UNWRAP];let a=function(e){return e.AddressOwnership=`address-ownership`,e.AllowanceApproval=`allowance-approval`,e.AvalancheCrossChainExport=`avalanche-cross-chain-export`,e.AvalancheCrossChainImport=`avalanche-cross-chain-import`,e.TokensTransfer=`tokens-transfer`,e.WrapToken=`wrap-token`,e.HyperliquidAuthorize=`hyperliquid-authorize`,e.HyperliquidSendAsset=`hyperliquid-send-asset`,e.ScheduleRecurringSwap=`schedule-recurring-swap`,e.PauseRecurringSwap=`pause-recurring-swap`,e.ResumeRecurringSwap=`resume-recurring-swap`,e.CancelRecurringSwap=`cancel-recurring-swap`,e}({});const o=`0x0000000000000000000000000000000000000000`,s=`11111111111111111111111111111111`;let c=function(e){return e.FUJI=`eip155:43113`,e.MAINNET=`eip155:43114`,e}({}),l=function(e){return e.MAINNET=`eip155:1`,e.SEPOLIA=`eip155:11155111`,e}({}),u=function(e){return e.MAINNET=`bip122:000000000019d6689c085ae165831e93`,e.TESTNET=`bip122:000000000933ea01ad0ee984209779ba`,e}({}),d=function(e){return e.MAINNET=`solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`,e.DEVNET=`solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1`,e}({}),f=function(e){return e.MAINNET=`eip155:1337`,e}({}),p=function(e){return e.MAINNET=`eip155:8453`,e.SEPOLIA=`eip155:84532`,e}({}),m=function(e){return e.MAINNET=`eip155:137`,e.AMOY=`eip155:80002`,e}({});const h={C:c.MAINNET,P:`avax:Rr9hnPVPxuUvrdCul-vjEsU1zmqKqRDo`,X:`avax:imji8papUf2EhV3le337w1vgFauqkJg-`},g={C:c.FUJI,P:`avax:Sj7NVE3jXTbJvwFAiu7OEUo_8g8ctXMG`,X:`avax:8AJTpRj3SAqv1e80Mtl9em08LhvKEbkl`},_={C:`2q9e4r6Mu3U68nU1fYjgbR6JvwrRx36CohpAX5UQxse55x1Q5`,P:`11111111111111111111111111111111LpoYY`,X:`2oYMBNV4eNHyqk2fjjV5nVQLDbtmNJzq5s3qs3Lo6ftnC6FByM`},v={C:`yH8D7ThNJkxmtkuv2jgBa4P1Rn3Qpr4pPr7QYNfcdoS6k6HWp`,P:`11111111111111111111111111111111LpoYY`,X:`2JVSBoinj9C2J33VntvzYtVJNZdN2NKiwwKjcumHUWEb5DbBrm`},y={mainnet:{[h.C]:_.C,[h.P]:_.P,[h.X]:_.X},fuji:{[g.C]:v.C,[g.P]:v.P,[g.X]:v.X}},b={chainId:c.FUJI,chainName:`Avalanche Fuji (C-Chain)`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:18},rpcUrl:`https://api.avax-test.network/ext/bc/C/rpc`},x={chainId:c.MAINNET,chainName:`Avalanche Mainnet (C-Chain)`,rpcUrl:`https://api.avax.network/ext/bc/C/rpc`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:18}},S={chainId:h.P,chainName:`Avalanche Mainnet (P-Chain)`,rpcUrl:`https://api.avax.network/ext/bc/P`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:9}},C={chainId:g.P,chainName:`Avalanche Fuji (P-Chain)`,rpcUrl:`https://api.avax-test.network/ext/bc/P`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:9}},w={chainId:h.X,chainName:`Avalanche Mainnet (X-Chain)`,rpcUrl:`https://api.avax.network/ext/bc/X`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:9}},T={chainId:g.X,chainName:`Avalanche Fuji (X-Chain)`,rpcUrl:`https://api.avax-test.network/ext/bc/X`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:9}},E={chainId:l.SEPOLIA,chainName:`Ethereum Sepolia`,rpcUrl:`https://proxy-api.avax.network/proxy/infura/sepolia`,networkToken:{type:t.NATIVE,name:`ETH`,symbol:`ETH`,decimals:18}},D={chainId:l.MAINNET,chainName:`Ethereum Mainnet`,rpcUrl:`https://proxy-api.avax.network/proxy/infura/mainnet`,networkToken:{type:t.NATIVE,name:`ETH`,symbol:`ETH`,decimals:18}},O={chainId:u.TESTNET,chainName:`Bitcoin Testnet`,rpcUrl:``,networkToken:{type:t.NATIVE,name:`Bitcoin`,symbol:`BTC`,decimals:8}},k={chainId:u.MAINNET,chainName:`Bitcoin Mainnet`,rpcUrl:``,networkToken:{type:t.NATIVE,name:`Bitcoin`,symbol:`BTC`,decimals:8}},A={chainId:d.MAINNET,chainName:`Solana`,rpcUrl:`https://proxy-api.avax.network/proxy/nownodes/sol`,networkToken:{type:t.NATIVE,name:`SOL`,symbol:`SOL`,decimals:9}},j={chainId:d.DEVNET,chainName:`Solana (Devnet)`,rpcUrl:`https://api.devnet.solana.com`,networkToken:{type:t.NATIVE,name:`SOL`,symbol:`SOL`,decimals:9}},M={type:t.NATIVE,name:`Avalanche`,symbol:`AVAX`,decimals:18,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/
|
|
1
|
+
let e=function(e){return e.DEV=`dev`,e.PROD=`production`,e.TEST=`test`,e}({}),t=function(e){return e.NATIVE=`native`,e.ERC20=`erc20`,e.SPL=`spl`,e}({}),n=function(e){return e.AVALANCHE_CCT=`avalanche-cct`,e.AVALANCHE_EVM=`avalanche-evm`,e.LOMBARD_BTC_TO_BTCB=`lombard-btc-to-btcb`,e.LOMBARD_BTCB_TO_BTC=`lombard-btcb-to-btc`,e.MARKR=`markr`,e.WRAP_UNWRAP=`wrap-unwrap`,e}({});const r=[n.LOMBARD_BTCB_TO_BTC,n.LOMBARD_BTC_TO_BTCB],i=[n.AVALANCHE_EVM,n.WRAP_UNWRAP];let a=function(e){return e.AddressOwnership=`address-ownership`,e.AllowanceApproval=`allowance-approval`,e.AvalancheCrossChainExport=`avalanche-cross-chain-export`,e.AvalancheCrossChainImport=`avalanche-cross-chain-import`,e.TokensTransfer=`tokens-transfer`,e.WrapToken=`wrap-token`,e.HyperliquidAuthorize=`hyperliquid-authorize`,e.HyperliquidSendAsset=`hyperliquid-send-asset`,e.ScheduleRecurringSwap=`schedule-recurring-swap`,e.PauseRecurringSwap=`pause-recurring-swap`,e.ResumeRecurringSwap=`resume-recurring-swap`,e.CancelRecurringSwap=`cancel-recurring-swap`,e}({});const o=`0x0000000000000000000000000000000000000000`,s=`11111111111111111111111111111111`;let c=function(e){return e.FUJI=`eip155:43113`,e.MAINNET=`eip155:43114`,e}({}),l=function(e){return e.MAINNET=`eip155:1`,e.SEPOLIA=`eip155:11155111`,e}({}),u=function(e){return e.MAINNET=`bip122:000000000019d6689c085ae165831e93`,e.TESTNET=`bip122:000000000933ea01ad0ee984209779ba`,e}({}),d=function(e){return e.MAINNET=`solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp`,e.DEVNET=`solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1`,e}({}),f=function(e){return e.MAINNET=`eip155:1337`,e}({}),p=function(e){return e.MAINNET=`eip155:8453`,e.SEPOLIA=`eip155:84532`,e}({}),m=function(e){return e.MAINNET=`eip155:137`,e.AMOY=`eip155:80002`,e}({});const h={C:c.MAINNET,P:`avax:Rr9hnPVPxuUvrdCul-vjEsU1zmqKqRDo`,X:`avax:imji8papUf2EhV3le337w1vgFauqkJg-`},g={C:c.FUJI,P:`avax:Sj7NVE3jXTbJvwFAiu7OEUo_8g8ctXMG`,X:`avax:8AJTpRj3SAqv1e80Mtl9em08LhvKEbkl`},_={C:`2q9e4r6Mu3U68nU1fYjgbR6JvwrRx36CohpAX5UQxse55x1Q5`,P:`11111111111111111111111111111111LpoYY`,X:`2oYMBNV4eNHyqk2fjjV5nVQLDbtmNJzq5s3qs3Lo6ftnC6FByM`},v={C:`yH8D7ThNJkxmtkuv2jgBa4P1Rn3Qpr4pPr7QYNfcdoS6k6HWp`,P:`11111111111111111111111111111111LpoYY`,X:`2JVSBoinj9C2J33VntvzYtVJNZdN2NKiwwKjcumHUWEb5DbBrm`},y={mainnet:{[h.C]:_.C,[h.P]:_.P,[h.X]:_.X},fuji:{[g.C]:v.C,[g.P]:v.P,[g.X]:v.X}},b={chainId:c.FUJI,chainName:`Avalanche Fuji (C-Chain)`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:18,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`},rpcUrl:`https://api.avax-test.network/ext/bc/C/rpc`},x={chainId:c.MAINNET,chainName:`Avalanche Mainnet (C-Chain)`,rpcUrl:`https://api.avax.network/ext/bc/C/rpc`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:18,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`}},S={chainId:h.P,chainName:`Avalanche Mainnet (P-Chain)`,rpcUrl:`https://api.avax.network/ext/bc/P`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:9,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`}},C={chainId:g.P,chainName:`Avalanche Fuji (P-Chain)`,rpcUrl:`https://api.avax-test.network/ext/bc/P`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:9,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`}},w={chainId:h.X,chainName:`Avalanche Mainnet (X-Chain)`,rpcUrl:`https://api.avax.network/ext/bc/X`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:9,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`}},T={chainId:g.X,chainName:`Avalanche Fuji (X-Chain)`,rpcUrl:`https://api.avax-test.network/ext/bc/X`,networkToken:{type:t.NATIVE,name:`AVAX`,symbol:`AVAX`,decimals:9,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`}},E={chainId:l.SEPOLIA,chainName:`Ethereum Sepolia`,rpcUrl:`https://proxy-api.avax.network/proxy/infura/sepolia`,networkToken:{type:t.NATIVE,name:`ETH`,symbol:`ETH`,decimals:18,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/6l56QLVZmvacuBfjHBTThP/791d743dd2c526692562780c2325fedf/eth-circle__1_.svg`}},D={chainId:l.MAINNET,chainName:`Ethereum Mainnet`,rpcUrl:`https://proxy-api.avax.network/proxy/infura/mainnet`,networkToken:{type:t.NATIVE,name:`ETH`,symbol:`ETH`,decimals:18,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/6l56QLVZmvacuBfjHBTThP/791d743dd2c526692562780c2325fedf/eth-circle__1_.svg`}},O={chainId:u.TESTNET,chainName:`Bitcoin Testnet`,rpcUrl:``,networkToken:{type:t.NATIVE,name:`Bitcoin`,symbol:`BTC`,decimals:8,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/32zG83beysuk3j6ye3kdF2/6b7ea715d521e5a89a0280973e929cce/bitcoin-btc-logo__1_.svg`}},k={chainId:u.MAINNET,chainName:`Bitcoin Mainnet`,rpcUrl:``,networkToken:{type:t.NATIVE,name:`Bitcoin`,symbol:`BTC`,decimals:8,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/32zG83beysuk3j6ye3kdF2/6b7ea715d521e5a89a0280973e929cce/bitcoin-btc-logo__1_.svg`}},A={chainId:d.MAINNET,chainName:`Solana`,rpcUrl:`https://proxy-api.avax.network/proxy/nownodes/sol`,networkToken:{type:t.NATIVE,name:`SOL`,symbol:`SOL`,decimals:9,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/4VgCue74mbrtME1ZqEj7Y1/d9d29c801f8c2aab9fe4c6c69166364b/Network_Solana.svg`}},j={chainId:d.DEVNET,chainName:`Solana (Devnet)`,rpcUrl:`https://api.devnet.solana.com`,networkToken:{type:t.NATIVE,name:`SOL`,symbol:`SOL`,decimals:9,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/4VgCue74mbrtME1ZqEj7Y1/d9d29c801f8c2aab9fe4c6c69166364b/Network_Solana.svg`}},M={type:t.NATIVE,name:`Avalanche`,symbol:`AVAX`,decimals:18,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`},N={type:t.NATIVE,name:`Ether`,symbol:`ETH`,decimals:18,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/6l56QLVZmvacuBfjHBTThP/791d743dd2c526692562780c2325fedf/eth-circle__1_.svg`};let P=function(e){return e.AVALANCHE=`avalanche`,e.BITCOIN=`bitcoin`,e.ETHEREUM=`ethereum`,e.SOLANA=`solana`,e.UNKNOWN=`_unknown`,e}({}),F=function(e){return e[e.AVALANCHE_MAINNET=43114]=`AVALANCHE_MAINNET`,e[e.AVALANCHE_TESTNET=43113]=`AVALANCHE_TESTNET`,e[e.ETHEREUM_HOMESTEAD=1]=`ETHEREUM_HOMESTEAD`,e[e.ETHEREUM_TEST_SEPOLIA=11155111]=`ETHEREUM_TEST_SEPOLIA`,e[e.BITCOIN=0xfffffffffffeb]=`BITCOIN`,e[e.BITCOIN_TESTNET=0xfffffffffffea]=`BITCOIN_TESTNET`,e}({});const I={slow:`low`,normal:`medium`,fast:`high`};export{y as AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK,b as AVALANCHE_FUJI_CHAIN,C as AVALANCHE_FUJI_P_CHAIN,T as AVALANCHE_FUJI_X_CHAIN,x as AVALANCHE_MAINNET_CHAIN,S as AVALANCHE_MAINNET_P_CHAIN,w as AVALANCHE_MAINNET_X_CHAIN,c as AvalancheChainIds,g as AvalancheFujiBlockchainChainIds,v as AvalancheFujiBlockchainIds,h as AvalancheMainnetBlockchainChainIds,_ as AvalancheMainnetBlockchainIds,k as BITCOIN_MAINNET_CHAIN,O as BITCOIN_TESTNET_CHAIN,r as BTC_SERVICE_TYPES,p as BaseChainIds,u as BitcoinChainIds,P as Blockchain,o as ERC_ZERO_ADDRESS,D as ETHEREUM_MAINNET_CHAIN,E as ETHEREUM_SEPOLIA_CHAIN,i as EVM_SERVICE_TYPES,e as Environment,l as EthereumChainIds,F as EvmChainId,I as FEE_RATE_TIER_TO_BITCOIN,f as HyperliquidChainIds,M as NATIVE_AVAX,N as NATIVE_ETH,s as NATIVE_SOL_ADDRESS,m as PolygonChainIds,j as SOLANA_DEVNET_CHAIN,A as SOLANA_MAINNET_CHAIN,n as ServiceType,d as SolanaChainIds,t as TokenType,a as TransferSignatureReason};
|
|
2
2
|
//# sourceMappingURL=constants.js.map
|
package/dist/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":[],"sources":["../src/constants.ts"],"sourcesContent":["import type { Address as SolAddress } from '@solana/kit';\nimport type { Address as EvmAddress } from 'viem';\nimport type { NativeAsset } from './types/asset';\nimport type { BitcoinFeeRateTier } from './types/bitcoin';\nimport type { Caip2ChainId } from './types/caip';\nimport type { Chain } from './types/chain';\nimport type { FeeRateTier } from './types/fee';\n\nexport enum Environment {\n DEV = 'dev',\n PROD = 'production',\n TEST = 'test',\n}\n\nexport enum TokenType {\n NATIVE = 'native',\n ERC20 = 'erc20',\n SPL = 'spl',\n}\n\nexport enum ServiceType {\n /** Avalanche Cross-chain transfer service. Export/import between C/P/X Avalanche chains. */\n AVALANCHE_CCT = 'avalanche-cct',\n /** Bridge between EVM chains within Avalanche (or EVM-compatible flows). */\n AVALANCHE_EVM = 'avalanche-evm',\n /** Bitcoin → Avalanche. */\n LOMBARD_BTC_TO_BTCB = 'lombard-btc-to-btcb',\n /** Avalanche → Bitcoin. */\n LOMBARD_BTCB_TO_BTC = 'lombard-btcb-to-btc',\n MARKR = 'markr',\n /** Same-chain wrap/unwrap of native ETH ↔ WETH and AVAX ↔ WAVAX. */\n WRAP_UNWRAP = 'wrap-unwrap',\n}\n\nexport const BTC_SERVICE_TYPES: readonly [ServiceType.LOMBARD_BTCB_TO_BTC, ServiceType.LOMBARD_BTC_TO_BTCB] = [\n ServiceType.LOMBARD_BTCB_TO_BTC,\n ServiceType.LOMBARD_BTC_TO_BTCB,\n];\n\nexport const EVM_SERVICE_TYPES: readonly [ServiceType.AVALANCHE_EVM, ServiceType.WRAP_UNWRAP] = [\n ServiceType.AVALANCHE_EVM,\n ServiceType.WRAP_UNWRAP,\n];\n\n/** Reasons for user signatures during execution. */\nexport enum TransferSignatureReason {\n AddressOwnership = 'address-ownership',\n /** ERC-20 allowance approval for router/bridge. */\n AllowanceApproval = 'allowance-approval',\n /** Primary signature for cross-chain export transaction. */\n AvalancheCrossChainExport = 'avalanche-cross-chain-export',\n /** Primary signature for cross-chain import transaction. */\n AvalancheCrossChainImport = 'avalanche-cross-chain-import',\n /** The primary token movement call (swap or bridge submit). */\n TokensTransfer = 'tokens-transfer',\n /** Optional wrap/unwrap step for native token handling. */\n WrapToken = 'wrap-token',\n /** Hyperliquid 2-phase withdrawal: step 1, nonce-mapping authorization (Relay protocol). */\n HyperliquidAuthorize = 'hyperliquid-authorize',\n /** Hyperliquid 2-phase withdrawal: step 2, the `sendAsset` transfer. */\n HyperliquidSendAsset = 'hyperliquid-send-asset',\n /** Markr recurring: first-fill swap that schedules the recurring order on-chain. */\n ScheduleRecurringSwap = 'schedule-recurring-swap',\n /** Markr recurring: pause an active schedule (preserves allowance). */\n PauseRecurringSwap = 'pause-recurring-swap',\n /** Markr recurring: resume (unpause) a paused schedule. */\n ResumeRecurringSwap = 'resume-recurring-swap',\n /** Markr recurring: cancel an active or paused schedule. */\n CancelRecurringSwap = 'cancel-recurring-swap',\n}\n\nexport const ERC_ZERO_ADDRESS: EvmAddress = '0x0000000000000000000000000000000000000000';\nexport const NATIVE_SOL_ADDRESS: SolAddress = '11111111111111111111111111111111' as SolAddress;\n\nexport enum AvalancheChainIds {\n FUJI = 'eip155:43113',\n MAINNET = 'eip155:43114',\n}\n\nexport enum EthereumChainIds {\n MAINNET = 'eip155:1',\n SEPOLIA = 'eip155:11155111',\n}\n\nexport enum BitcoinChainIds {\n MAINNET = 'bip122:000000000019d6689c085ae165831e93',\n TESTNET = 'bip122:000000000933ea01ad0ee984209779ba',\n}\n\nexport enum SolanaChainIds {\n MAINNET = 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',\n DEVNET = 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',\n}\n\n/**\n * Hyperliquid is identified by CAIP-2 `eip155:1337` per Relay's convention.\n * It's an EVM-namespaced chain ID but has no real EVM execution — withdrawals\n * use a two-signature EIP-712 flow against Hyperliquid's `/exchange` API.\n */\nexport enum HyperliquidChainIds {\n MAINNET = 'eip155:1337',\n}\n\nexport enum BaseChainIds {\n MAINNET = 'eip155:8453',\n SEPOLIA = 'eip155:84532',\n}\n\nexport enum PolygonChainIds {\n MAINNET = 'eip155:137',\n AMOY = 'eip155:80002',\n}\n\nexport type AvalancheBlockchainAlias = 'C' | 'P' | 'X';\n\nexport const AvalancheMainnetBlockchainChainIds: Readonly<Record<AvalancheBlockchainAlias, Caip2ChainId>> = {\n C: AvalancheChainIds.MAINNET,\n P: 'avax:Rr9hnPVPxuUvrdCul-vjEsU1zmqKqRDo',\n X: 'avax:imji8papUf2EhV3le337w1vgFauqkJg-',\n};\n\nexport const AvalancheFujiBlockchainChainIds: Readonly<Record<AvalancheBlockchainAlias, Caip2ChainId>> = {\n C: AvalancheChainIds.FUJI,\n P: 'avax:Sj7NVE3jXTbJvwFAiu7OEUo_8g8ctXMG',\n X: 'avax:8AJTpRj3SAqv1e80Mtl9em08LhvKEbkl',\n};\n\nexport const AvalancheMainnetBlockchainIds: Readonly<Record<AvalancheBlockchainAlias, string>> = {\n C: '2q9e4r6Mu3U68nU1fYjgbR6JvwrRx36CohpAX5UQxse55x1Q5',\n P: '11111111111111111111111111111111LpoYY',\n X: '2oYMBNV4eNHyqk2fjjV5nVQLDbtmNJzq5s3qs3Lo6ftnC6FByM',\n};\n\nexport const AvalancheFujiBlockchainIds: Readonly<Record<AvalancheBlockchainAlias, string>> = {\n C: 'yH8D7ThNJkxmtkuv2jgBa4P1Rn3Qpr4pPr7QYNfcdoS6k6HWp',\n P: '11111111111111111111111111111111LpoYY',\n X: '2JVSBoinj9C2J33VntvzYtVJNZdN2NKiwwKjcumHUWEb5DbBrm',\n};\n\nexport const AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK: Readonly<{\n mainnet: Readonly<Record<Caip2ChainId, string>>;\n fuji: Readonly<Record<Caip2ChainId, string>>;\n}> = {\n mainnet: {\n [AvalancheMainnetBlockchainChainIds.C]: AvalancheMainnetBlockchainIds.C,\n [AvalancheMainnetBlockchainChainIds.P]: AvalancheMainnetBlockchainIds.P,\n [AvalancheMainnetBlockchainChainIds.X]: AvalancheMainnetBlockchainIds.X,\n },\n fuji: {\n [AvalancheFujiBlockchainChainIds.C]: AvalancheFujiBlockchainIds.C,\n [AvalancheFujiBlockchainChainIds.P]: AvalancheFujiBlockchainIds.P,\n [AvalancheFujiBlockchainChainIds.X]: AvalancheFujiBlockchainIds.X,\n },\n};\n\nexport const AVALANCHE_FUJI_CHAIN: Chain = {\n chainId: AvalancheChainIds.FUJI,\n chainName: 'Avalanche Fuji (C-Chain)',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 18,\n },\n rpcUrl: 'https://api.avax-test.network/ext/bc/C/rpc',\n};\n\nexport const AVALANCHE_MAINNET_CHAIN: Chain = {\n chainId: AvalancheChainIds.MAINNET,\n chainName: 'Avalanche Mainnet (C-Chain)',\n rpcUrl: 'https://api.avax.network/ext/bc/C/rpc',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 18,\n },\n};\n\nexport const AVALANCHE_MAINNET_P_CHAIN: Chain = {\n chainId: AvalancheMainnetBlockchainChainIds.P,\n chainName: 'Avalanche Mainnet (P-Chain)',\n rpcUrl: 'https://api.avax.network/ext/bc/P',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 9,\n },\n};\n\nexport const AVALANCHE_FUJI_P_CHAIN: Chain = {\n chainId: AvalancheFujiBlockchainChainIds.P,\n chainName: 'Avalanche Fuji (P-Chain)',\n rpcUrl: 'https://api.avax-test.network/ext/bc/P',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 9,\n },\n};\n\nexport const AVALANCHE_MAINNET_X_CHAIN: Chain = {\n chainId: AvalancheMainnetBlockchainChainIds.X,\n chainName: 'Avalanche Mainnet (X-Chain)',\n rpcUrl: 'https://api.avax.network/ext/bc/X',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 9,\n },\n};\n\nexport const AVALANCHE_FUJI_X_CHAIN: Chain = {\n chainId: AvalancheFujiBlockchainChainIds.X,\n chainName: 'Avalanche Fuji (X-Chain)',\n rpcUrl: 'https://api.avax-test.network/ext/bc/X',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 9,\n },\n};\n\nexport const ETHEREUM_SEPOLIA_CHAIN: Chain = {\n chainId: EthereumChainIds.SEPOLIA,\n chainName: 'Ethereum Sepolia',\n rpcUrl: 'https://proxy-api.avax.network/proxy/infura/sepolia',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n};\n\nexport const ETHEREUM_MAINNET_CHAIN: Chain = {\n chainId: EthereumChainIds.MAINNET,\n chainName: 'Ethereum Mainnet',\n rpcUrl: 'https://proxy-api.avax.network/proxy/infura/mainnet',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n },\n};\n\nexport const BITCOIN_TESTNET_CHAIN: Chain = {\n chainId: BitcoinChainIds.TESTNET,\n chainName: 'Bitcoin Testnet',\n rpcUrl: '',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'Bitcoin',\n symbol: 'BTC',\n decimals: 8,\n },\n};\n\nexport const BITCOIN_MAINNET_CHAIN: Chain = {\n chainId: BitcoinChainIds.MAINNET,\n chainName: 'Bitcoin Mainnet',\n rpcUrl: '',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'Bitcoin',\n symbol: 'BTC',\n decimals: 8,\n },\n};\n\nexport const SOLANA_MAINNET_CHAIN: Chain = {\n chainId: SolanaChainIds.MAINNET,\n chainName: 'Solana',\n rpcUrl: 'https://proxy-api.avax.network/proxy/nownodes/sol',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'SOL',\n symbol: 'SOL',\n decimals: 9,\n },\n};\n\nexport const SOLANA_DEVNET_CHAIN: Chain = {\n chainId: SolanaChainIds.DEVNET,\n chainName: 'Solana (Devnet)',\n rpcUrl: 'https://api.devnet.solana.com',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'SOL',\n symbol: 'SOL',\n decimals: 9,\n },\n};\nexport const NATIVE_AVAX: NativeAsset = {\n type: TokenType.NATIVE,\n name: 'Avalanche',\n symbol: 'AVAX',\n decimals: 18,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/fdd6326b7a82c8388e4ee9d4be7062d4/avalanche-avax-logo.svg',\n};\nexport const NATIVE_ETH: NativeAsset = {\n type: TokenType.NATIVE,\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/6l56QLVZmvacuBfjHBTThP/791d743dd2c526692562780c2325fedf/eth-circle__1_.svg',\n};\n\nexport enum Blockchain {\n AVALANCHE = 'avalanche',\n BITCOIN = 'bitcoin',\n ETHEREUM = 'ethereum',\n SOLANA = 'solana',\n UNKNOWN = '_unknown',\n}\n\nexport enum EvmChainId {\n AVALANCHE_MAINNET = 43114,\n AVALANCHE_TESTNET = 43113,\n ETHEREUM_HOMESTEAD = 1,\n ETHEREUM_TEST_SEPOLIA = 11155111,\n /**\n * This is not a real chain ID, as Bitcoin does not have a chain ID.\n * It is used internally to represent Bitcoin in a way that avoids\n * conflicts with real EVM chain IDs.\n */\n BITCOIN = 4_503_599_627_370_476 - 1,\n /**\n * This is not a real chain ID, as Bitcoin does not have a chain ID.\n * It is used internally to represent Bitcoin in a way that avoids\n * conflicts with real EVM chain IDs.\n */\n BITCOIN_TESTNET = 4_503_599_627_370_476 - 2,\n}\n\n/**\n * Maps the unified {@link FeeRateTier} to the Bitcoin-specific\n * {@link BitcoinFeeRateTier} (`low | medium | high`).\n */\nexport const FEE_RATE_TIER_TO_BITCOIN: Record<FeeRateTier, BitcoinFeeRateTier> = {\n slow: 'low',\n normal: 'medium',\n fast: 'high',\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"constants.js","names":[],"sources":["../src/constants.ts"],"sourcesContent":["import type { Address as SolAddress } from '@solana/kit';\nimport type { Address as EvmAddress } from 'viem';\nimport type { NativeAsset } from './types/asset';\nimport type { BitcoinFeeRateTier } from './types/bitcoin';\nimport type { Caip2ChainId } from './types/caip';\nimport type { Chain } from './types/chain';\nimport type { FeeRateTier } from './types/fee';\n\nexport enum Environment {\n DEV = 'dev',\n PROD = 'production',\n TEST = 'test',\n}\n\nexport enum TokenType {\n NATIVE = 'native',\n ERC20 = 'erc20',\n SPL = 'spl',\n}\n\nexport enum ServiceType {\n /** Avalanche Cross-chain transfer service. Export/import between C/P/X Avalanche chains. */\n AVALANCHE_CCT = 'avalanche-cct',\n /** Bridge between EVM chains within Avalanche (or EVM-compatible flows). */\n AVALANCHE_EVM = 'avalanche-evm',\n /** Bitcoin → Avalanche. */\n LOMBARD_BTC_TO_BTCB = 'lombard-btc-to-btcb',\n /** Avalanche → Bitcoin. */\n LOMBARD_BTCB_TO_BTC = 'lombard-btcb-to-btc',\n MARKR = 'markr',\n /** Same-chain wrap/unwrap of native ETH ↔ WETH and AVAX ↔ WAVAX. */\n WRAP_UNWRAP = 'wrap-unwrap',\n}\n\nexport const BTC_SERVICE_TYPES: readonly [ServiceType.LOMBARD_BTCB_TO_BTC, ServiceType.LOMBARD_BTC_TO_BTCB] = [\n ServiceType.LOMBARD_BTCB_TO_BTC,\n ServiceType.LOMBARD_BTC_TO_BTCB,\n];\n\nexport const EVM_SERVICE_TYPES: readonly [ServiceType.AVALANCHE_EVM, ServiceType.WRAP_UNWRAP] = [\n ServiceType.AVALANCHE_EVM,\n ServiceType.WRAP_UNWRAP,\n];\n\n/** Reasons for user signatures during execution. */\nexport enum TransferSignatureReason {\n AddressOwnership = 'address-ownership',\n /** ERC-20 allowance approval for router/bridge. */\n AllowanceApproval = 'allowance-approval',\n /** Primary signature for cross-chain export transaction. */\n AvalancheCrossChainExport = 'avalanche-cross-chain-export',\n /** Primary signature for cross-chain import transaction. */\n AvalancheCrossChainImport = 'avalanche-cross-chain-import',\n /** The primary token movement call (swap or bridge submit). */\n TokensTransfer = 'tokens-transfer',\n /** Optional wrap/unwrap step for native token handling. */\n WrapToken = 'wrap-token',\n /** Hyperliquid 2-phase withdrawal: step 1, nonce-mapping authorization (Relay protocol). */\n HyperliquidAuthorize = 'hyperliquid-authorize',\n /** Hyperliquid 2-phase withdrawal: step 2, the `sendAsset` transfer. */\n HyperliquidSendAsset = 'hyperliquid-send-asset',\n /** Markr recurring: first-fill swap that schedules the recurring order on-chain. */\n ScheduleRecurringSwap = 'schedule-recurring-swap',\n /** Markr recurring: pause an active schedule (preserves allowance). */\n PauseRecurringSwap = 'pause-recurring-swap',\n /** Markr recurring: resume (unpause) a paused schedule. */\n ResumeRecurringSwap = 'resume-recurring-swap',\n /** Markr recurring: cancel an active or paused schedule. */\n CancelRecurringSwap = 'cancel-recurring-swap',\n}\n\nexport const ERC_ZERO_ADDRESS: EvmAddress = '0x0000000000000000000000000000000000000000';\nexport const NATIVE_SOL_ADDRESS: SolAddress = '11111111111111111111111111111111' as SolAddress;\n\nexport enum AvalancheChainIds {\n FUJI = 'eip155:43113',\n MAINNET = 'eip155:43114',\n}\n\nexport enum EthereumChainIds {\n MAINNET = 'eip155:1',\n SEPOLIA = 'eip155:11155111',\n}\n\nexport enum BitcoinChainIds {\n MAINNET = 'bip122:000000000019d6689c085ae165831e93',\n TESTNET = 'bip122:000000000933ea01ad0ee984209779ba',\n}\n\nexport enum SolanaChainIds {\n MAINNET = 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',\n DEVNET = 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',\n}\n\n/**\n * Hyperliquid is identified by CAIP-2 `eip155:1337` per Relay's convention.\n * It's an EVM-namespaced chain ID but has no real EVM execution — withdrawals\n * use a two-signature EIP-712 flow against Hyperliquid's `/exchange` API.\n */\nexport enum HyperliquidChainIds {\n MAINNET = 'eip155:1337',\n}\n\nexport enum BaseChainIds {\n MAINNET = 'eip155:8453',\n SEPOLIA = 'eip155:84532',\n}\n\nexport enum PolygonChainIds {\n MAINNET = 'eip155:137',\n AMOY = 'eip155:80002',\n}\n\nexport type AvalancheBlockchainAlias = 'C' | 'P' | 'X';\n\nexport const AvalancheMainnetBlockchainChainIds: Readonly<Record<AvalancheBlockchainAlias, Caip2ChainId>> = {\n C: AvalancheChainIds.MAINNET,\n P: 'avax:Rr9hnPVPxuUvrdCul-vjEsU1zmqKqRDo',\n X: 'avax:imji8papUf2EhV3le337w1vgFauqkJg-',\n};\n\nexport const AvalancheFujiBlockchainChainIds: Readonly<Record<AvalancheBlockchainAlias, Caip2ChainId>> = {\n C: AvalancheChainIds.FUJI,\n P: 'avax:Sj7NVE3jXTbJvwFAiu7OEUo_8g8ctXMG',\n X: 'avax:8AJTpRj3SAqv1e80Mtl9em08LhvKEbkl',\n};\n\nexport const AvalancheMainnetBlockchainIds: Readonly<Record<AvalancheBlockchainAlias, string>> = {\n C: '2q9e4r6Mu3U68nU1fYjgbR6JvwrRx36CohpAX5UQxse55x1Q5',\n P: '11111111111111111111111111111111LpoYY',\n X: '2oYMBNV4eNHyqk2fjjV5nVQLDbtmNJzq5s3qs3Lo6ftnC6FByM',\n};\n\nexport const AvalancheFujiBlockchainIds: Readonly<Record<AvalancheBlockchainAlias, string>> = {\n C: 'yH8D7ThNJkxmtkuv2jgBa4P1Rn3Qpr4pPr7QYNfcdoS6k6HWp',\n P: '11111111111111111111111111111111LpoYY',\n X: '2JVSBoinj9C2J33VntvzYtVJNZdN2NKiwwKjcumHUWEb5DbBrm',\n};\n\nexport const AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK: Readonly<{\n mainnet: Readonly<Record<Caip2ChainId, string>>;\n fuji: Readonly<Record<Caip2ChainId, string>>;\n}> = {\n mainnet: {\n [AvalancheMainnetBlockchainChainIds.C]: AvalancheMainnetBlockchainIds.C,\n [AvalancheMainnetBlockchainChainIds.P]: AvalancheMainnetBlockchainIds.P,\n [AvalancheMainnetBlockchainChainIds.X]: AvalancheMainnetBlockchainIds.X,\n },\n fuji: {\n [AvalancheFujiBlockchainChainIds.C]: AvalancheFujiBlockchainIds.C,\n [AvalancheFujiBlockchainChainIds.P]: AvalancheFujiBlockchainIds.P,\n [AvalancheFujiBlockchainChainIds.X]: AvalancheFujiBlockchainIds.X,\n },\n};\n\nexport const AVALANCHE_FUJI_CHAIN: Chain = {\n chainId: AvalancheChainIds.FUJI,\n chainName: 'Avalanche Fuji (C-Chain)',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 18,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n },\n rpcUrl: 'https://api.avax-test.network/ext/bc/C/rpc',\n};\n\nexport const AVALANCHE_MAINNET_CHAIN: Chain = {\n chainId: AvalancheChainIds.MAINNET,\n chainName: 'Avalanche Mainnet (C-Chain)',\n rpcUrl: 'https://api.avax.network/ext/bc/C/rpc',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 18,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n },\n};\n\nexport const AVALANCHE_MAINNET_P_CHAIN: Chain = {\n chainId: AvalancheMainnetBlockchainChainIds.P,\n chainName: 'Avalanche Mainnet (P-Chain)',\n rpcUrl: 'https://api.avax.network/ext/bc/P',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 9,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n },\n};\n\nexport const AVALANCHE_FUJI_P_CHAIN: Chain = {\n chainId: AvalancheFujiBlockchainChainIds.P,\n chainName: 'Avalanche Fuji (P-Chain)',\n rpcUrl: 'https://api.avax-test.network/ext/bc/P',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 9,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n },\n};\n\nexport const AVALANCHE_MAINNET_X_CHAIN: Chain = {\n chainId: AvalancheMainnetBlockchainChainIds.X,\n chainName: 'Avalanche Mainnet (X-Chain)',\n rpcUrl: 'https://api.avax.network/ext/bc/X',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 9,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n },\n};\n\nexport const AVALANCHE_FUJI_X_CHAIN: Chain = {\n chainId: AvalancheFujiBlockchainChainIds.X,\n chainName: 'Avalanche Fuji (X-Chain)',\n rpcUrl: 'https://api.avax-test.network/ext/bc/X',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'AVAX',\n symbol: 'AVAX',\n decimals: 9,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n },\n};\n\nexport const ETHEREUM_SEPOLIA_CHAIN: Chain = {\n chainId: EthereumChainIds.SEPOLIA,\n chainName: 'Ethereum Sepolia',\n rpcUrl: 'https://proxy-api.avax.network/proxy/infura/sepolia',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/6l56QLVZmvacuBfjHBTThP/791d743dd2c526692562780c2325fedf/eth-circle__1_.svg',\n },\n};\n\nexport const ETHEREUM_MAINNET_CHAIN: Chain = {\n chainId: EthereumChainIds.MAINNET,\n chainName: 'Ethereum Mainnet',\n rpcUrl: 'https://proxy-api.avax.network/proxy/infura/mainnet',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'ETH',\n symbol: 'ETH',\n decimals: 18,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/6l56QLVZmvacuBfjHBTThP/791d743dd2c526692562780c2325fedf/eth-circle__1_.svg',\n },\n};\n\nexport const BITCOIN_TESTNET_CHAIN: Chain = {\n chainId: BitcoinChainIds.TESTNET,\n chainName: 'Bitcoin Testnet',\n rpcUrl: '',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'Bitcoin',\n symbol: 'BTC',\n decimals: 8,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/32zG83beysuk3j6ye3kdF2/6b7ea715d521e5a89a0280973e929cce/bitcoin-btc-logo__1_.svg',\n },\n};\n\nexport const BITCOIN_MAINNET_CHAIN: Chain = {\n chainId: BitcoinChainIds.MAINNET,\n chainName: 'Bitcoin Mainnet',\n rpcUrl: '',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'Bitcoin',\n symbol: 'BTC',\n decimals: 8,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/32zG83beysuk3j6ye3kdF2/6b7ea715d521e5a89a0280973e929cce/bitcoin-btc-logo__1_.svg',\n },\n};\n\nexport const SOLANA_MAINNET_CHAIN: Chain = {\n chainId: SolanaChainIds.MAINNET,\n chainName: 'Solana',\n rpcUrl: 'https://proxy-api.avax.network/proxy/nownodes/sol',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'SOL',\n symbol: 'SOL',\n decimals: 9,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/4VgCue74mbrtME1ZqEj7Y1/d9d29c801f8c2aab9fe4c6c69166364b/Network_Solana.svg',\n },\n};\n\nexport const SOLANA_DEVNET_CHAIN: Chain = {\n chainId: SolanaChainIds.DEVNET,\n chainName: 'Solana (Devnet)',\n rpcUrl: 'https://api.devnet.solana.com',\n networkToken: {\n type: TokenType.NATIVE,\n name: 'SOL',\n symbol: 'SOL',\n decimals: 9,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/4VgCue74mbrtME1ZqEj7Y1/d9d29c801f8c2aab9fe4c6c69166364b/Network_Solana.svg',\n },\n};\nexport const NATIVE_AVAX: NativeAsset = {\n type: TokenType.NATIVE,\n name: 'Avalanche',\n symbol: 'AVAX',\n decimals: 18,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n};\nexport const NATIVE_ETH: NativeAsset = {\n type: TokenType.NATIVE,\n name: 'Ether',\n symbol: 'ETH',\n decimals: 18,\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/6l56QLVZmvacuBfjHBTThP/791d743dd2c526692562780c2325fedf/eth-circle__1_.svg',\n};\n\nexport enum Blockchain {\n AVALANCHE = 'avalanche',\n BITCOIN = 'bitcoin',\n ETHEREUM = 'ethereum',\n SOLANA = 'solana',\n UNKNOWN = '_unknown',\n}\n\nexport enum EvmChainId {\n AVALANCHE_MAINNET = 43114,\n AVALANCHE_TESTNET = 43113,\n ETHEREUM_HOMESTEAD = 1,\n ETHEREUM_TEST_SEPOLIA = 11155111,\n /**\n * This is not a real chain ID, as Bitcoin does not have a chain ID.\n * It is used internally to represent Bitcoin in a way that avoids\n * conflicts with real EVM chain IDs.\n */\n BITCOIN = 4_503_599_627_370_476 - 1,\n /**\n * This is not a real chain ID, as Bitcoin does not have a chain ID.\n * It is used internally to represent Bitcoin in a way that avoids\n * conflicts with real EVM chain IDs.\n */\n BITCOIN_TESTNET = 4_503_599_627_370_476 - 2,\n}\n\n/**\n * Maps the unified {@link FeeRateTier} to the Bitcoin-specific\n * {@link BitcoinFeeRateTier} (`low | medium | high`).\n */\nexport const FEE_RATE_TIER_TO_BITCOIN: Record<FeeRateTier, BitcoinFeeRateTier> = {\n slow: 'low',\n normal: 'medium',\n fast: 'high',\n};\n"],"mappings":"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"}
|
package/dist/mod.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./constants.cjs`),t=require(`./errors.cjs`),n=require(`./type-guards.cjs`),r=require(`./transfer-manager.cjs`),i=require(`./utils/caip.cjs`),a=require(`./utils/bridgeable-assets.cjs`),o=require(`./utils/destination-chains.cjs`),s=require(`./utils/price-impact.cjs`),c=require(`./utils/transfer-utils.cjs`),l=require(`./transfer-service/markr/recurring/types.cjs`),
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./constants.cjs`),t=require(`./errors.cjs`),n=require(`./type-guards.cjs`),r=require(`./transfer-manager.cjs`),i=require(`./utils/caip.cjs`),a=require(`./utils/bridgeable-assets.cjs`),o=require(`./utils/destination-chains.cjs`),s=require(`./utils/price-impact.cjs`),c=require(`./utils/transfer-utils.cjs`),l=require(`./transfer-service/avalanche-cct/get-recovered-atomic-amount.cjs`),u=require(`./transfer-service/markr/recurring/types.cjs`),d=require(`./transfer-service/markr/recurring/_frequency.cjs`),f=require(`./transfer-service/_evm-approval.cjs`);exports.AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK=e.AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK,exports.AVALANCHE_FUJI_CHAIN=e.AVALANCHE_FUJI_CHAIN,exports.AVALANCHE_FUJI_P_CHAIN=e.AVALANCHE_FUJI_P_CHAIN,exports.AVALANCHE_FUJI_X_CHAIN=e.AVALANCHE_FUJI_X_CHAIN,exports.AVALANCHE_MAINNET_CHAIN=e.AVALANCHE_MAINNET_CHAIN,exports.AVALANCHE_MAINNET_P_CHAIN=e.AVALANCHE_MAINNET_P_CHAIN,exports.AVALANCHE_MAINNET_X_CHAIN=e.AVALANCHE_MAINNET_X_CHAIN,exports.AbortedError=t.AbortedError,exports.ApprovalRevertedError=f.ApprovalRevertedError,exports.AvalancheChainIds=e.AvalancheChainIds,exports.AvalancheFujiBlockchainChainIds=e.AvalancheFujiBlockchainChainIds,exports.AvalancheFujiBlockchainIds=e.AvalancheFujiBlockchainIds,exports.AvalancheMainnetBlockchainChainIds=e.AvalancheMainnetBlockchainChainIds,exports.AvalancheMainnetBlockchainIds=e.AvalancheMainnetBlockchainIds,exports.BITCOIN_MAINNET_CHAIN=e.BITCOIN_MAINNET_CHAIN,exports.BITCOIN_TESTNET_CHAIN=e.BITCOIN_TESTNET_CHAIN,exports.BTC_SERVICE_TYPES=e.BTC_SERVICE_TYPES,exports.BaseChainIds=e.BaseChainIds,exports.BitcoinChainIds=e.BitcoinChainIds,exports.Blockchain=e.Blockchain,exports.ERC_ZERO_ADDRESS=e.ERC_ZERO_ADDRESS,exports.ETHEREUM_MAINNET_CHAIN=e.ETHEREUM_MAINNET_CHAIN,exports.ETHEREUM_SEPOLIA_CHAIN=e.ETHEREUM_SEPOLIA_CHAIN,exports.EVM_SERVICE_TYPES=e.EVM_SERVICE_TYPES,exports.Environment=e.Environment,exports.ErrorCode=t.ErrorCode,exports.ErrorReason=t.ErrorReason,exports.EstimateNativeFeeError=t.EstimateNativeFeeError,exports.EthereumChainIds=e.EthereumChainIds,exports.EvmChainId=e.EvmChainId,exports.FEE_RATE_TIER_TO_BITCOIN=e.FEE_RATE_TIER_TO_BITCOIN,exports.HttpError=t.HttpError,exports.HyperliquidChainIds=e.HyperliquidChainIds,exports.InsufficientFundsError=t.InsufficientFundsError,exports.InvalidParamsError=t.InvalidParamsError,exports.NATIVE_AVAX=e.NATIVE_AVAX,exports.NATIVE_ETH=e.NATIVE_ETH,exports.NATIVE_SOL_ADDRESS=e.NATIVE_SOL_ADDRESS,exports.PolygonChainIds=e.PolygonChainIds,exports.RECURRING_FREQUENCY_UNITS=u.RECURRING_FREQUENCY_UNITS,exports.RECURRING_FREQUENCY_VALUE_MAX=d.RECURRING_FREQUENCY_VALUE_MAX,exports.RECURRING_UNLIMITED_ORDERS_SENTINEL=u.RECURRING_UNLIMITED_ORDERS_SENTINEL,exports.RecurringEligibilityReason=u.RecurringEligibilityReason,exports.RecurringOrderStatus=u.RecurringOrderStatus,exports.ResponseValidationError=t.ResponseValidationError,exports.SOLANA_DEVNET_CHAIN=e.SOLANA_DEVNET_CHAIN,exports.SOLANA_MAINNET_CHAIN=e.SOLANA_MAINNET_CHAIN,exports.SdkError=t.SdkError,exports.ServiceInitializationError=t.ServiceInitializationError,exports.ServiceType=e.ServiceType,exports.ServiceUnavailableError=t.ServiceUnavailableError,exports.SolanaChainIds=e.SolanaChainIds,exports.TimeoutError=t.TimeoutError,exports.TokenType=e.TokenType,exports.TransferSignatureReason=e.TransferSignatureReason,exports.caip2ToEip155ChainId=i.caip2ToEip155ChainId,exports.caip2ToEip155HexChainId=i.caip2ToEip155HexChainId,exports.calculatePriceImpactFromQuote=s.calculatePriceImpactFromQuote,exports.compareDestinationChains=o.compareDestinationChains,exports.createTransferManager=r.createTransferManager,exports.dedupeBridgeableAssets=a.dedupeBridgeableAssets,exports.deriveIntervalSeconds=d.deriveIntervalSeconds,exports.eip155ChainIdToCaip2=i.eip155ChainIdToCaip2,exports.getDestinationChainPriority=o.getDestinationChainPriority,exports.getRecoveredAtomicAmount=l.getRecoveredAtomicAmount,exports.isAbortedError=t.isAbortedError,exports.isCaip2ChainId=i.isCaip2ChainId,exports.isEnvironment=n.isEnvironment,exports.isErc20Asset=n.isErc20Asset,exports.isEstimateNativeFeeError=t.isEstimateNativeFeeError,exports.isEvmBridgeInitializer=n.isEvmBridgeInitializer,exports.isHttpError=t.isHttpError,exports.isInsufficientFundsError=t.isInsufficientFundsError,exports.isInvalidParamsError=t.isInvalidParamsError,exports.isLombardServiceInitializer=n.isLombardServiceInitializer,exports.isMarkrServiceInitializer=n.isMarkrServiceInitializer,exports.isNativeAsset=n.isNativeAsset,exports.isQuote=n.isQuote,exports.isResponseValidationError=t.isResponseValidationError,exports.isSdkError=t.isSdkError,exports.isServiceInitializationError=t.isServiceInitializationError,exports.isServiceInitializer=n.isServiceInitializer,exports.isServiceUnavailableError=t.isServiceUnavailableError,exports.isSplAsset=n.isSplAsset,exports.isTimeoutError=t.isTimeoutError,exports.isTransfer=n.isTransfer,exports.parseTransfer=c.parseTransfer,exports.sortDestinationChains=o.sortDestinationChains,exports.splitCaip2ChainId=i.splitCaip2ChainId,exports.stringifyTransfer=c.stringifyTransfer,exports.validateFrequency=d.validateFrequency;
|
package/dist/mod.d.cts
CHANGED
|
@@ -14,14 +14,15 @@ import { BtcDispatch, BtcSign, BtcSigner, BtcTransactionRequest, EvmDispatch, Ev
|
|
|
14
14
|
import { AssetSearchQuery, AvalancheCctInitializer, AvalancheSendTxFunction, AvalancheSendTxParams, EstimateNativeFeeOptions, EvmServiceInitializer, GasSettings, GetBridgeableAssetsProps, GetBridgeableAssetsResult, GetMinimumTransferAmountProps, GetSupportedChainsResult, LombardServiceInitializer, MarkrServiceInitializer, MutableGetSupportedChainsResult, NativeFeeEstimate, ServiceInitializer, ServiceQuoteOptions, TrackTransferProps, TransferAssetProps, TransferService } from "./types/service.cjs";
|
|
15
15
|
import { CheckRecurringEligibilityParams, ListRecurringOrdersParams, ListRecurringOrdersResponse, RECURRING_FREQUENCY_UNITS, RECURRING_UNLIMITED_ORDERS_SENTINEL, RecurringChainInfoEntry, RecurringChainInfoMap, RecurringEligibility, RecurringEligibilityReason, RecurringExecuteFirstFillParams, RecurringExecuteOrderActionParams, RecurringExecuteResult, RecurringFrequency, RecurringFrequencyUnit, RecurringNamespace, RecurringNamespaceCheckEligibilityParams, RecurringNamespaceQuoteParams, RecurringOrder, RecurringOrderFailure, RecurringOrderStatus, RecurringQuoteFee, RecurringQuoteFeeType, RecurringQuoteParams, RecurringQuoteResponse, RecurringSwapParams } from "./transfer-service/markr/recurring/types.cjs";
|
|
16
16
|
import { AssetBridgeMap, CreateTransferManagerOptions, ServiceStatus, ServiceStatusBaseRecord, ServiceStatusErrorRecord, ServiceStatusInitializedRecord, ServiceStatusRecord, ServiceStatusUnsupportedEnvironmentRecord, TransferManager, TransferManagerStatus, TransferManagerStatusServicesRecord } from "./types/transfer-manager.cjs";
|
|
17
|
-
import { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isServiceInitializer, isSplAsset } from "./type-guards.cjs";
|
|
17
|
+
import { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isQuote, isServiceInitializer, isSplAsset, isTransfer } from "./type-guards.cjs";
|
|
18
18
|
import { createTransferManager } from "./transfer-manager.cjs";
|
|
19
19
|
import { caip2ToEip155ChainId, caip2ToEip155HexChainId, eip155ChainIdToCaip2, isCaip2ChainId, splitCaip2ChainId } from "./utils/caip.cjs";
|
|
20
20
|
import { dedupeBridgeableAssets } from "./utils/bridgeable-assets.cjs";
|
|
21
21
|
import { DestinationChainSortInput, compareDestinationChains, getDestinationChainPriority, sortDestinationChains } from "./utils/destination-chains.cjs";
|
|
22
22
|
import { calculatePriceImpactFromQuote } from "./utils/price-impact.cjs";
|
|
23
23
|
import { parseTransfer, stringifyTransfer } from "./utils/transfer-utils.cjs";
|
|
24
|
+
import { getRecoveredAtomicAmount } from "./transfer-service/avalanche-cct/get-recovered-atomic-amount.cjs";
|
|
24
25
|
import { MarkrService } from "./transfer-service/markr/markr-service.cjs";
|
|
25
26
|
import { FrequencyValidationResult, RECURRING_FREQUENCY_VALUE_MAX, deriveIntervalSeconds, validateFrequency } from "./transfer-service/markr/recurring/_frequency.cjs";
|
|
26
27
|
import { ApprovalRevertedError } from "./transfer-service/_evm-approval.cjs";
|
|
27
|
-
export { AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK, AVALANCHE_FUJI_CHAIN, AVALANCHE_FUJI_P_CHAIN, AVALANCHE_FUJI_X_CHAIN, AVALANCHE_MAINNET_CHAIN, AVALANCHE_MAINNET_P_CHAIN, AVALANCHE_MAINNET_X_CHAIN, AbortedError, ApprovalRevertedError, ArrayElement, Asset, AssetBridgeMap, AssetSearchQuery, AssetWithExtras, AvalancheBlockchainAlias, AvalancheCctInitializer, AvalancheChainIds, AvalancheFujiBlockchainChainIds, AvalancheFujiBlockchainIds, AvalancheMainnetBlockchainChainIds, AvalancheMainnetBlockchainIds, AvalancheSendTxFunction, AvalancheSendTxParams, BITCOIN_MAINNET_CHAIN, BITCOIN_TESTNET_CHAIN, BTC_SERVICE_TYPES, BaseChainIds, BitcoinChainIds, BitcoinFeeRateTier, BitcoinFunctions, BitcoinInputUTXO, BitcoinInputUTXOWithOptionalScript, BitcoinOutputUTXO, BitcoinTx, Blockchain, Brand, BridgeableAsset, BridgeableUiAsset, BtcDispatch, BtcSign, BtcSigner, BtcTransactionRequest, Caip10AccountId, Caip2ChainId, Chain, ChainAssetMap, type CheckRecurringEligibilityParams, CompletedTransfer, CreateTransferManagerOptions, DeepMutable, type DestinationChainSortInput, DestinationInfo, ERC_ZERO_ADDRESS, ETHEREUM_MAINNET_CHAIN, ETHEREUM_SEPOLIA_CHAIN, EVM_SERVICE_TYPES, Environment, Erc20Asset, ErrorCode, ErrorReason, EstimateNativeFeeError, type EstimateNativeFeeErrorDetails, EstimateNativeFeeOptions, EthereumChainIds, EvmChainId, EvmDispatch, EvmServiceInitializer, EvmSign, EvmSignBatch, EvmSignMessage, EvmSignTypedData, EvmSigner, EvmSignerWithMessage, EvmTransactionRequest, EvmTypedData, FEE_RATE_TIER_TO_BITCOIN, FailedTransfer, FeeRateTier, Fetch, type FrequencyValidationResult, GasSettings, type GetAtomicUtxosCallback, GetBridgeableAssetsProps, GetBridgeableAssetsResult, type GetCoreEthAddressCallback, GetMinimumTransferAmountProps, GetSupportedChainsResult, type GetUtxosCallback, type GetWalletAddressesForChainAliasCallback, type GetWalletChangeAddressForChainAliasCallback, Hex, HttpError, HyperliquidChainIds, InsufficientFundsError, InvalidParamsError, type ListRecurringOrdersParams, type ListRecurringOrdersResponse, LombardServiceInitializer, type MarkrService, MarkrServiceInitializer, Mutable, MutableGetSupportedChainsResult, NATIVE_AVAX, NATIVE_ETH, NATIVE_SOL_ADDRESS, NativeAsset, NativeFeeEstimate, PolygonChainIds, Quote, QuoteFee, QuoteFeeFundingModel, QuoteFeeToken, QuoteFeeType, QuoteFees, QuoterDonePayload, QuoterDonePayloadNoEligibleServices, QuoterDonePayloadNoQuotes, QuoterDonePayloadUnsubscribed, QuoterDoneReason, QuoterEventArgs, QuoterEventHandler, QuoterInterface, QuoterProps, QuotesTuple, RECURRING_FREQUENCY_UNITS, RECURRING_FREQUENCY_VALUE_MAX, RECURRING_UNLIMITED_ORDERS_SENTINEL, type RecurringChainInfoEntry, type RecurringChainInfoMap, type RecurringEligibility, RecurringEligibilityReason, type RecurringExecuteFirstFillParams, type RecurringExecuteOrderActionParams, type RecurringExecuteResult, type RecurringFrequency, type RecurringFrequencyUnit, type RecurringNamespace, type RecurringNamespaceCheckEligibilityParams, type RecurringNamespaceQuoteParams, type RecurringOrder, type RecurringOrderFailure, RecurringOrderStatus, type RecurringQuoteFee, type RecurringQuoteFeeType, type RecurringQuoteParams, type RecurringQuoteResponse, type RecurringSwapParams, RefundedTransfer, ResponseValidationError, SOLANA_DEVNET_CHAIN, SOLANA_MAINNET_CHAIN, SdkError, ServiceInitializationError, ServiceInitializer, ServiceQuoteEventArgs, ServiceQuoteEventHandler, ServiceQuoteOptions, ServiceStatus, ServiceStatusBaseRecord, ServiceStatusErrorRecord, ServiceStatusInitializedRecord, ServiceStatusRecord, ServiceStatusUnsupportedEnvironmentRecord, ServiceType, ServiceUnavailableError, SolanaChainIds, SolanaSendOptions, SolanaSign, SolanaSigner, SolanaTransactionParams, SourceCompletedTransfer, SourcePendingTransfer, SplAsset, TargetPendingTransfer, TimeoutError, TokenType, TrackTransferProps, Transfer, TransferAssetProps, TransferBase, TransferManager, TransferManagerStatus, TransferManagerStatusServicesRecord, TransferService, TransferSignatureReason, TransferSourceProgress, TransferStatus, TransferStepDetails, TransferTargetProgress, TransferableAsset, caip2ToEip155ChainId, caip2ToEip155HexChainId, calculatePriceImpactFromQuote, compareDestinationChains, createTransferManager, dedupeBridgeableAssets, deriveIntervalSeconds, eip155ChainIdToCaip2, getDestinationChainPriority, isAbortedError, isCaip2ChainId, isEnvironment, isErc20Asset, isEstimateNativeFeeError, isEvmBridgeInitializer, isHttpError, isInsufficientFundsError, isInvalidParamsError, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isResponseValidationError, isSdkError, isServiceInitializationError, isServiceInitializer, isServiceUnavailableError, isSplAsset, isTimeoutError, parseTransfer, sortDestinationChains, splitCaip2ChainId, stringifyTransfer, validateFrequency };
|
|
28
|
+
export { AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK, AVALANCHE_FUJI_CHAIN, AVALANCHE_FUJI_P_CHAIN, AVALANCHE_FUJI_X_CHAIN, AVALANCHE_MAINNET_CHAIN, AVALANCHE_MAINNET_P_CHAIN, AVALANCHE_MAINNET_X_CHAIN, AbortedError, ApprovalRevertedError, ArrayElement, Asset, AssetBridgeMap, AssetSearchQuery, AssetWithExtras, AvalancheBlockchainAlias, AvalancheCctInitializer, AvalancheChainIds, AvalancheFujiBlockchainChainIds, AvalancheFujiBlockchainIds, AvalancheMainnetBlockchainChainIds, AvalancheMainnetBlockchainIds, AvalancheSendTxFunction, AvalancheSendTxParams, BITCOIN_MAINNET_CHAIN, BITCOIN_TESTNET_CHAIN, BTC_SERVICE_TYPES, BaseChainIds, BitcoinChainIds, BitcoinFeeRateTier, BitcoinFunctions, BitcoinInputUTXO, BitcoinInputUTXOWithOptionalScript, BitcoinOutputUTXO, BitcoinTx, Blockchain, Brand, BridgeableAsset, BridgeableUiAsset, BtcDispatch, BtcSign, BtcSigner, BtcTransactionRequest, Caip10AccountId, Caip2ChainId, Chain, ChainAssetMap, type CheckRecurringEligibilityParams, CompletedTransfer, CreateTransferManagerOptions, DeepMutable, type DestinationChainSortInput, DestinationInfo, ERC_ZERO_ADDRESS, ETHEREUM_MAINNET_CHAIN, ETHEREUM_SEPOLIA_CHAIN, EVM_SERVICE_TYPES, Environment, Erc20Asset, ErrorCode, ErrorReason, EstimateNativeFeeError, type EstimateNativeFeeErrorDetails, EstimateNativeFeeOptions, EthereumChainIds, EvmChainId, EvmDispatch, EvmServiceInitializer, EvmSign, EvmSignBatch, EvmSignMessage, EvmSignTypedData, EvmSigner, EvmSignerWithMessage, EvmTransactionRequest, EvmTypedData, FEE_RATE_TIER_TO_BITCOIN, FailedTransfer, FeeRateTier, Fetch, type FrequencyValidationResult, GasSettings, type GetAtomicUtxosCallback, GetBridgeableAssetsProps, GetBridgeableAssetsResult, type GetCoreEthAddressCallback, GetMinimumTransferAmountProps, GetSupportedChainsResult, type GetUtxosCallback, type GetWalletAddressesForChainAliasCallback, type GetWalletChangeAddressForChainAliasCallback, Hex, HttpError, HyperliquidChainIds, InsufficientFundsError, InvalidParamsError, type ListRecurringOrdersParams, type ListRecurringOrdersResponse, LombardServiceInitializer, type MarkrService, MarkrServiceInitializer, Mutable, MutableGetSupportedChainsResult, NATIVE_AVAX, NATIVE_ETH, NATIVE_SOL_ADDRESS, NativeAsset, NativeFeeEstimate, PolygonChainIds, Quote, QuoteFee, QuoteFeeFundingModel, QuoteFeeToken, QuoteFeeType, QuoteFees, QuoterDonePayload, QuoterDonePayloadNoEligibleServices, QuoterDonePayloadNoQuotes, QuoterDonePayloadUnsubscribed, QuoterDoneReason, QuoterEventArgs, QuoterEventHandler, QuoterInterface, QuoterProps, QuotesTuple, RECURRING_FREQUENCY_UNITS, RECURRING_FREQUENCY_VALUE_MAX, RECURRING_UNLIMITED_ORDERS_SENTINEL, type RecurringChainInfoEntry, type RecurringChainInfoMap, type RecurringEligibility, RecurringEligibilityReason, type RecurringExecuteFirstFillParams, type RecurringExecuteOrderActionParams, type RecurringExecuteResult, type RecurringFrequency, type RecurringFrequencyUnit, type RecurringNamespace, type RecurringNamespaceCheckEligibilityParams, type RecurringNamespaceQuoteParams, type RecurringOrder, type RecurringOrderFailure, RecurringOrderStatus, type RecurringQuoteFee, type RecurringQuoteFeeType, type RecurringQuoteParams, type RecurringQuoteResponse, type RecurringSwapParams, RefundedTransfer, ResponseValidationError, SOLANA_DEVNET_CHAIN, SOLANA_MAINNET_CHAIN, SdkError, ServiceInitializationError, ServiceInitializer, ServiceQuoteEventArgs, ServiceQuoteEventHandler, ServiceQuoteOptions, ServiceStatus, ServiceStatusBaseRecord, ServiceStatusErrorRecord, ServiceStatusInitializedRecord, ServiceStatusRecord, ServiceStatusUnsupportedEnvironmentRecord, ServiceType, ServiceUnavailableError, SolanaChainIds, SolanaSendOptions, SolanaSign, SolanaSigner, SolanaTransactionParams, SourceCompletedTransfer, SourcePendingTransfer, SplAsset, TargetPendingTransfer, TimeoutError, TokenType, TrackTransferProps, Transfer, TransferAssetProps, TransferBase, TransferManager, TransferManagerStatus, TransferManagerStatusServicesRecord, TransferService, TransferSignatureReason, TransferSourceProgress, TransferStatus, TransferStepDetails, TransferTargetProgress, TransferableAsset, caip2ToEip155ChainId, caip2ToEip155HexChainId, calculatePriceImpactFromQuote, compareDestinationChains, createTransferManager, dedupeBridgeableAssets, deriveIntervalSeconds, eip155ChainIdToCaip2, getDestinationChainPriority, getRecoveredAtomicAmount, isAbortedError, isCaip2ChainId, isEnvironment, isErc20Asset, isEstimateNativeFeeError, isEvmBridgeInitializer, isHttpError, isInsufficientFundsError, isInvalidParamsError, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isQuote, isResponseValidationError, isSdkError, isServiceInitializationError, isServiceInitializer, isServiceUnavailableError, isSplAsset, isTimeoutError, isTransfer, parseTransfer, sortDestinationChains, splitCaip2ChainId, stringifyTransfer, validateFrequency };
|
package/dist/mod.d.ts
CHANGED
|
@@ -14,14 +14,15 @@ import { BtcDispatch, BtcSign, BtcSigner, BtcTransactionRequest, EvmDispatch, Ev
|
|
|
14
14
|
import { AssetSearchQuery, AvalancheCctInitializer, AvalancheSendTxFunction, AvalancheSendTxParams, EstimateNativeFeeOptions, EvmServiceInitializer, GasSettings, GetBridgeableAssetsProps, GetBridgeableAssetsResult, GetMinimumTransferAmountProps, GetSupportedChainsResult, LombardServiceInitializer, MarkrServiceInitializer, MutableGetSupportedChainsResult, NativeFeeEstimate, ServiceInitializer, ServiceQuoteOptions, TrackTransferProps, TransferAssetProps, TransferService } from "./types/service.js";
|
|
15
15
|
import { CheckRecurringEligibilityParams, ListRecurringOrdersParams, ListRecurringOrdersResponse, RECURRING_FREQUENCY_UNITS, RECURRING_UNLIMITED_ORDERS_SENTINEL, RecurringChainInfoEntry, RecurringChainInfoMap, RecurringEligibility, RecurringEligibilityReason, RecurringExecuteFirstFillParams, RecurringExecuteOrderActionParams, RecurringExecuteResult, RecurringFrequency, RecurringFrequencyUnit, RecurringNamespace, RecurringNamespaceCheckEligibilityParams, RecurringNamespaceQuoteParams, RecurringOrder, RecurringOrderFailure, RecurringOrderStatus, RecurringQuoteFee, RecurringQuoteFeeType, RecurringQuoteParams, RecurringQuoteResponse, RecurringSwapParams } from "./transfer-service/markr/recurring/types.js";
|
|
16
16
|
import { AssetBridgeMap, CreateTransferManagerOptions, ServiceStatus, ServiceStatusBaseRecord, ServiceStatusErrorRecord, ServiceStatusInitializedRecord, ServiceStatusRecord, ServiceStatusUnsupportedEnvironmentRecord, TransferManager, TransferManagerStatus, TransferManagerStatusServicesRecord } from "./types/transfer-manager.js";
|
|
17
|
-
import { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isServiceInitializer, isSplAsset } from "./type-guards.js";
|
|
17
|
+
import { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isQuote, isServiceInitializer, isSplAsset, isTransfer } from "./type-guards.js";
|
|
18
18
|
import { createTransferManager } from "./transfer-manager.js";
|
|
19
19
|
import { caip2ToEip155ChainId, caip2ToEip155HexChainId, eip155ChainIdToCaip2, isCaip2ChainId, splitCaip2ChainId } from "./utils/caip.js";
|
|
20
20
|
import { dedupeBridgeableAssets } from "./utils/bridgeable-assets.js";
|
|
21
21
|
import { DestinationChainSortInput, compareDestinationChains, getDestinationChainPriority, sortDestinationChains } from "./utils/destination-chains.js";
|
|
22
22
|
import { calculatePriceImpactFromQuote } from "./utils/price-impact.js";
|
|
23
23
|
import { parseTransfer, stringifyTransfer } from "./utils/transfer-utils.js";
|
|
24
|
+
import { getRecoveredAtomicAmount } from "./transfer-service/avalanche-cct/get-recovered-atomic-amount.js";
|
|
24
25
|
import { MarkrService } from "./transfer-service/markr/markr-service.js";
|
|
25
26
|
import { FrequencyValidationResult, RECURRING_FREQUENCY_VALUE_MAX, deriveIntervalSeconds, validateFrequency } from "./transfer-service/markr/recurring/_frequency.js";
|
|
26
27
|
import { ApprovalRevertedError } from "./transfer-service/_evm-approval.js";
|
|
27
|
-
export { AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK, AVALANCHE_FUJI_CHAIN, AVALANCHE_FUJI_P_CHAIN, AVALANCHE_FUJI_X_CHAIN, AVALANCHE_MAINNET_CHAIN, AVALANCHE_MAINNET_P_CHAIN, AVALANCHE_MAINNET_X_CHAIN, AbortedError, ApprovalRevertedError, ArrayElement, Asset, AssetBridgeMap, AssetSearchQuery, AssetWithExtras, AvalancheBlockchainAlias, AvalancheCctInitializer, AvalancheChainIds, AvalancheFujiBlockchainChainIds, AvalancheFujiBlockchainIds, AvalancheMainnetBlockchainChainIds, AvalancheMainnetBlockchainIds, AvalancheSendTxFunction, AvalancheSendTxParams, BITCOIN_MAINNET_CHAIN, BITCOIN_TESTNET_CHAIN, BTC_SERVICE_TYPES, BaseChainIds, BitcoinChainIds, BitcoinFeeRateTier, BitcoinFunctions, BitcoinInputUTXO, BitcoinInputUTXOWithOptionalScript, BitcoinOutputUTXO, BitcoinTx, Blockchain, Brand, BridgeableAsset, BridgeableUiAsset, BtcDispatch, BtcSign, BtcSigner, BtcTransactionRequest, Caip10AccountId, Caip2ChainId, Chain, ChainAssetMap, type CheckRecurringEligibilityParams, CompletedTransfer, CreateTransferManagerOptions, DeepMutable, type DestinationChainSortInput, DestinationInfo, ERC_ZERO_ADDRESS, ETHEREUM_MAINNET_CHAIN, ETHEREUM_SEPOLIA_CHAIN, EVM_SERVICE_TYPES, Environment, Erc20Asset, ErrorCode, ErrorReason, EstimateNativeFeeError, type EstimateNativeFeeErrorDetails, EstimateNativeFeeOptions, EthereumChainIds, EvmChainId, EvmDispatch, EvmServiceInitializer, EvmSign, EvmSignBatch, EvmSignMessage, EvmSignTypedData, EvmSigner, EvmSignerWithMessage, EvmTransactionRequest, EvmTypedData, FEE_RATE_TIER_TO_BITCOIN, FailedTransfer, FeeRateTier, Fetch, type FrequencyValidationResult, GasSettings, type GetAtomicUtxosCallback, GetBridgeableAssetsProps, GetBridgeableAssetsResult, type GetCoreEthAddressCallback, GetMinimumTransferAmountProps, GetSupportedChainsResult, type GetUtxosCallback, type GetWalletAddressesForChainAliasCallback, type GetWalletChangeAddressForChainAliasCallback, Hex, HttpError, HyperliquidChainIds, InsufficientFundsError, InvalidParamsError, type ListRecurringOrdersParams, type ListRecurringOrdersResponse, LombardServiceInitializer, type MarkrService, MarkrServiceInitializer, Mutable, MutableGetSupportedChainsResult, NATIVE_AVAX, NATIVE_ETH, NATIVE_SOL_ADDRESS, NativeAsset, NativeFeeEstimate, PolygonChainIds, Quote, QuoteFee, QuoteFeeFundingModel, QuoteFeeToken, QuoteFeeType, QuoteFees, QuoterDonePayload, QuoterDonePayloadNoEligibleServices, QuoterDonePayloadNoQuotes, QuoterDonePayloadUnsubscribed, QuoterDoneReason, QuoterEventArgs, QuoterEventHandler, QuoterInterface, QuoterProps, QuotesTuple, RECURRING_FREQUENCY_UNITS, RECURRING_FREQUENCY_VALUE_MAX, RECURRING_UNLIMITED_ORDERS_SENTINEL, type RecurringChainInfoEntry, type RecurringChainInfoMap, type RecurringEligibility, RecurringEligibilityReason, type RecurringExecuteFirstFillParams, type RecurringExecuteOrderActionParams, type RecurringExecuteResult, type RecurringFrequency, type RecurringFrequencyUnit, type RecurringNamespace, type RecurringNamespaceCheckEligibilityParams, type RecurringNamespaceQuoteParams, type RecurringOrder, type RecurringOrderFailure, RecurringOrderStatus, type RecurringQuoteFee, type RecurringQuoteFeeType, type RecurringQuoteParams, type RecurringQuoteResponse, type RecurringSwapParams, RefundedTransfer, ResponseValidationError, SOLANA_DEVNET_CHAIN, SOLANA_MAINNET_CHAIN, SdkError, ServiceInitializationError, ServiceInitializer, ServiceQuoteEventArgs, ServiceQuoteEventHandler, ServiceQuoteOptions, ServiceStatus, ServiceStatusBaseRecord, ServiceStatusErrorRecord, ServiceStatusInitializedRecord, ServiceStatusRecord, ServiceStatusUnsupportedEnvironmentRecord, ServiceType, ServiceUnavailableError, SolanaChainIds, SolanaSendOptions, SolanaSign, SolanaSigner, SolanaTransactionParams, SourceCompletedTransfer, SourcePendingTransfer, SplAsset, TargetPendingTransfer, TimeoutError, TokenType, TrackTransferProps, Transfer, TransferAssetProps, TransferBase, TransferManager, TransferManagerStatus, TransferManagerStatusServicesRecord, TransferService, TransferSignatureReason, TransferSourceProgress, TransferStatus, TransferStepDetails, TransferTargetProgress, TransferableAsset, caip2ToEip155ChainId, caip2ToEip155HexChainId, calculatePriceImpactFromQuote, compareDestinationChains, createTransferManager, dedupeBridgeableAssets, deriveIntervalSeconds, eip155ChainIdToCaip2, getDestinationChainPriority, isAbortedError, isCaip2ChainId, isEnvironment, isErc20Asset, isEstimateNativeFeeError, isEvmBridgeInitializer, isHttpError, isInsufficientFundsError, isInvalidParamsError, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isResponseValidationError, isSdkError, isServiceInitializationError, isServiceInitializer, isServiceUnavailableError, isSplAsset, isTimeoutError, parseTransfer, sortDestinationChains, splitCaip2ChainId, stringifyTransfer, validateFrequency };
|
|
28
|
+
export { AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK, AVALANCHE_FUJI_CHAIN, AVALANCHE_FUJI_P_CHAIN, AVALANCHE_FUJI_X_CHAIN, AVALANCHE_MAINNET_CHAIN, AVALANCHE_MAINNET_P_CHAIN, AVALANCHE_MAINNET_X_CHAIN, AbortedError, ApprovalRevertedError, ArrayElement, Asset, AssetBridgeMap, AssetSearchQuery, AssetWithExtras, AvalancheBlockchainAlias, AvalancheCctInitializer, AvalancheChainIds, AvalancheFujiBlockchainChainIds, AvalancheFujiBlockchainIds, AvalancheMainnetBlockchainChainIds, AvalancheMainnetBlockchainIds, AvalancheSendTxFunction, AvalancheSendTxParams, BITCOIN_MAINNET_CHAIN, BITCOIN_TESTNET_CHAIN, BTC_SERVICE_TYPES, BaseChainIds, BitcoinChainIds, BitcoinFeeRateTier, BitcoinFunctions, BitcoinInputUTXO, BitcoinInputUTXOWithOptionalScript, BitcoinOutputUTXO, BitcoinTx, Blockchain, Brand, BridgeableAsset, BridgeableUiAsset, BtcDispatch, BtcSign, BtcSigner, BtcTransactionRequest, Caip10AccountId, Caip2ChainId, Chain, ChainAssetMap, type CheckRecurringEligibilityParams, CompletedTransfer, CreateTransferManagerOptions, DeepMutable, type DestinationChainSortInput, DestinationInfo, ERC_ZERO_ADDRESS, ETHEREUM_MAINNET_CHAIN, ETHEREUM_SEPOLIA_CHAIN, EVM_SERVICE_TYPES, Environment, Erc20Asset, ErrorCode, ErrorReason, EstimateNativeFeeError, type EstimateNativeFeeErrorDetails, EstimateNativeFeeOptions, EthereumChainIds, EvmChainId, EvmDispatch, EvmServiceInitializer, EvmSign, EvmSignBatch, EvmSignMessage, EvmSignTypedData, EvmSigner, EvmSignerWithMessage, EvmTransactionRequest, EvmTypedData, FEE_RATE_TIER_TO_BITCOIN, FailedTransfer, FeeRateTier, Fetch, type FrequencyValidationResult, GasSettings, type GetAtomicUtxosCallback, GetBridgeableAssetsProps, GetBridgeableAssetsResult, type GetCoreEthAddressCallback, GetMinimumTransferAmountProps, GetSupportedChainsResult, type GetUtxosCallback, type GetWalletAddressesForChainAliasCallback, type GetWalletChangeAddressForChainAliasCallback, Hex, HttpError, HyperliquidChainIds, InsufficientFundsError, InvalidParamsError, type ListRecurringOrdersParams, type ListRecurringOrdersResponse, LombardServiceInitializer, type MarkrService, MarkrServiceInitializer, Mutable, MutableGetSupportedChainsResult, NATIVE_AVAX, NATIVE_ETH, NATIVE_SOL_ADDRESS, NativeAsset, NativeFeeEstimate, PolygonChainIds, Quote, QuoteFee, QuoteFeeFundingModel, QuoteFeeToken, QuoteFeeType, QuoteFees, QuoterDonePayload, QuoterDonePayloadNoEligibleServices, QuoterDonePayloadNoQuotes, QuoterDonePayloadUnsubscribed, QuoterDoneReason, QuoterEventArgs, QuoterEventHandler, QuoterInterface, QuoterProps, QuotesTuple, RECURRING_FREQUENCY_UNITS, RECURRING_FREQUENCY_VALUE_MAX, RECURRING_UNLIMITED_ORDERS_SENTINEL, type RecurringChainInfoEntry, type RecurringChainInfoMap, type RecurringEligibility, RecurringEligibilityReason, type RecurringExecuteFirstFillParams, type RecurringExecuteOrderActionParams, type RecurringExecuteResult, type RecurringFrequency, type RecurringFrequencyUnit, type RecurringNamespace, type RecurringNamespaceCheckEligibilityParams, type RecurringNamespaceQuoteParams, type RecurringOrder, type RecurringOrderFailure, RecurringOrderStatus, type RecurringQuoteFee, type RecurringQuoteFeeType, type RecurringQuoteParams, type RecurringQuoteResponse, type RecurringSwapParams, RefundedTransfer, ResponseValidationError, SOLANA_DEVNET_CHAIN, SOLANA_MAINNET_CHAIN, SdkError, ServiceInitializationError, ServiceInitializer, ServiceQuoteEventArgs, ServiceQuoteEventHandler, ServiceQuoteOptions, ServiceStatus, ServiceStatusBaseRecord, ServiceStatusErrorRecord, ServiceStatusInitializedRecord, ServiceStatusRecord, ServiceStatusUnsupportedEnvironmentRecord, ServiceType, ServiceUnavailableError, SolanaChainIds, SolanaSendOptions, SolanaSign, SolanaSigner, SolanaTransactionParams, SourceCompletedTransfer, SourcePendingTransfer, SplAsset, TargetPendingTransfer, TimeoutError, TokenType, TrackTransferProps, Transfer, TransferAssetProps, TransferBase, TransferManager, TransferManagerStatus, TransferManagerStatusServicesRecord, TransferService, TransferSignatureReason, TransferSourceProgress, TransferStatus, TransferStepDetails, TransferTargetProgress, TransferableAsset, caip2ToEip155ChainId, caip2ToEip155HexChainId, calculatePriceImpactFromQuote, compareDestinationChains, createTransferManager, dedupeBridgeableAssets, deriveIntervalSeconds, eip155ChainIdToCaip2, getDestinationChainPriority, getRecoveredAtomicAmount, isAbortedError, isCaip2ChainId, isEnvironment, isErc20Asset, isEstimateNativeFeeError, isEvmBridgeInitializer, isHttpError, isInsufficientFundsError, isInvalidParamsError, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isQuote, isResponseValidationError, isSdkError, isServiceInitializationError, isServiceInitializer, isServiceUnavailableError, isSplAsset, isTimeoutError, isTransfer, parseTransfer, sortDestinationChains, splitCaip2ChainId, stringifyTransfer, validateFrequency };
|
package/dist/mod.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK as e,AVALANCHE_FUJI_CHAIN as t,AVALANCHE_FUJI_P_CHAIN as n,AVALANCHE_FUJI_X_CHAIN as r,AVALANCHE_MAINNET_CHAIN as i,AVALANCHE_MAINNET_P_CHAIN as a,AVALANCHE_MAINNET_X_CHAIN as o,AvalancheChainIds as s,AvalancheFujiBlockchainChainIds as c,AvalancheFujiBlockchainIds as l,AvalancheMainnetBlockchainChainIds as u,AvalancheMainnetBlockchainIds as d,BITCOIN_MAINNET_CHAIN as f,BITCOIN_TESTNET_CHAIN as p,BTC_SERVICE_TYPES as m,BaseChainIds as h,BitcoinChainIds as g,Blockchain as _,ERC_ZERO_ADDRESS as v,ETHEREUM_MAINNET_CHAIN as y,ETHEREUM_SEPOLIA_CHAIN as b,EVM_SERVICE_TYPES as x,Environment as S,EthereumChainIds as C,EvmChainId as w,FEE_RATE_TIER_TO_BITCOIN as T,HyperliquidChainIds as E,NATIVE_AVAX as D,NATIVE_ETH as O,NATIVE_SOL_ADDRESS as k,PolygonChainIds as A,SOLANA_DEVNET_CHAIN as j,SOLANA_MAINNET_CHAIN as M,ServiceType as N,SolanaChainIds as P,TokenType as F,TransferSignatureReason as I}from"./constants.js";import{AbortedError as L,ErrorCode as R,ErrorReason as z,EstimateNativeFeeError as B,HttpError as V,InsufficientFundsError as H,InvalidParamsError as U,ResponseValidationError as W,SdkError as G,ServiceInitializationError as K,ServiceUnavailableError as q,TimeoutError as J,isAbortedError as Y,isEstimateNativeFeeError as X,isHttpError as Z,isInsufficientFundsError as Q,isInvalidParamsError as $,isResponseValidationError as ee,isSdkError as te,isServiceInitializationError as ne,isServiceUnavailableError as re,isTimeoutError as ie}from"./errors.js";import{isEnvironment as ae,isErc20Asset as oe,isEvmBridgeInitializer as se,isLombardServiceInitializer as ce,isMarkrServiceInitializer as le,isNativeAsset as ue,
|
|
1
|
+
import{AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK as e,AVALANCHE_FUJI_CHAIN as t,AVALANCHE_FUJI_P_CHAIN as n,AVALANCHE_FUJI_X_CHAIN as r,AVALANCHE_MAINNET_CHAIN as i,AVALANCHE_MAINNET_P_CHAIN as a,AVALANCHE_MAINNET_X_CHAIN as o,AvalancheChainIds as s,AvalancheFujiBlockchainChainIds as c,AvalancheFujiBlockchainIds as l,AvalancheMainnetBlockchainChainIds as u,AvalancheMainnetBlockchainIds as d,BITCOIN_MAINNET_CHAIN as f,BITCOIN_TESTNET_CHAIN as p,BTC_SERVICE_TYPES as m,BaseChainIds as h,BitcoinChainIds as g,Blockchain as _,ERC_ZERO_ADDRESS as v,ETHEREUM_MAINNET_CHAIN as y,ETHEREUM_SEPOLIA_CHAIN as b,EVM_SERVICE_TYPES as x,Environment as S,EthereumChainIds as C,EvmChainId as w,FEE_RATE_TIER_TO_BITCOIN as T,HyperliquidChainIds as E,NATIVE_AVAX as D,NATIVE_ETH as O,NATIVE_SOL_ADDRESS as k,PolygonChainIds as A,SOLANA_DEVNET_CHAIN as j,SOLANA_MAINNET_CHAIN as M,ServiceType as N,SolanaChainIds as P,TokenType as F,TransferSignatureReason as I}from"./constants.js";import{AbortedError as L,ErrorCode as R,ErrorReason as z,EstimateNativeFeeError as B,HttpError as V,InsufficientFundsError as H,InvalidParamsError as U,ResponseValidationError as W,SdkError as G,ServiceInitializationError as K,ServiceUnavailableError as q,TimeoutError as J,isAbortedError as Y,isEstimateNativeFeeError as X,isHttpError as Z,isInsufficientFundsError as Q,isInvalidParamsError as $,isResponseValidationError as ee,isSdkError as te,isServiceInitializationError as ne,isServiceUnavailableError as re,isTimeoutError as ie}from"./errors.js";import{isEnvironment as ae,isErc20Asset as oe,isEvmBridgeInitializer as se,isLombardServiceInitializer as ce,isMarkrServiceInitializer as le,isNativeAsset as ue,isQuote as de,isServiceInitializer as fe,isSplAsset as pe,isTransfer as me}from"./type-guards.js";import{createTransferManager as he}from"./transfer-manager.js";import{caip2ToEip155ChainId as ge,caip2ToEip155HexChainId as _e,eip155ChainIdToCaip2 as ve,isCaip2ChainId as ye,splitCaip2ChainId as be}from"./utils/caip.js";import{dedupeBridgeableAssets as xe}from"./utils/bridgeable-assets.js";import{compareDestinationChains as Se,getDestinationChainPriority as Ce,sortDestinationChains as we}from"./utils/destination-chains.js";import{calculatePriceImpactFromQuote as Te}from"./utils/price-impact.js";import{parseTransfer as Ee,stringifyTransfer as De}from"./utils/transfer-utils.js";import{getRecoveredAtomicAmount as Oe}from"./transfer-service/avalanche-cct/get-recovered-atomic-amount.js";import{RECURRING_FREQUENCY_UNITS as ke,RECURRING_UNLIMITED_ORDERS_SENTINEL as Ae,RecurringEligibilityReason as je,RecurringOrderStatus as Me}from"./transfer-service/markr/recurring/types.js";import{RECURRING_FREQUENCY_VALUE_MAX as Ne,deriveIntervalSeconds as Pe,validateFrequency as Fe}from"./transfer-service/markr/recurring/_frequency.js";import{ApprovalRevertedError as Ie}from"./transfer-service/_evm-approval.js";export{e as AVALANCHE_CAIP2_TO_BLOCKCHAIN_ID_BY_NETWORK,t as AVALANCHE_FUJI_CHAIN,n as AVALANCHE_FUJI_P_CHAIN,r as AVALANCHE_FUJI_X_CHAIN,i as AVALANCHE_MAINNET_CHAIN,a as AVALANCHE_MAINNET_P_CHAIN,o as AVALANCHE_MAINNET_X_CHAIN,L as AbortedError,Ie as ApprovalRevertedError,s as AvalancheChainIds,c as AvalancheFujiBlockchainChainIds,l as AvalancheFujiBlockchainIds,u as AvalancheMainnetBlockchainChainIds,d as AvalancheMainnetBlockchainIds,f as BITCOIN_MAINNET_CHAIN,p as BITCOIN_TESTNET_CHAIN,m as BTC_SERVICE_TYPES,h as BaseChainIds,g as BitcoinChainIds,_ as Blockchain,v as ERC_ZERO_ADDRESS,y as ETHEREUM_MAINNET_CHAIN,b as ETHEREUM_SEPOLIA_CHAIN,x as EVM_SERVICE_TYPES,S as Environment,R as ErrorCode,z as ErrorReason,B as EstimateNativeFeeError,C as EthereumChainIds,w as EvmChainId,T as FEE_RATE_TIER_TO_BITCOIN,V as HttpError,E as HyperliquidChainIds,H as InsufficientFundsError,U as InvalidParamsError,D as NATIVE_AVAX,O as NATIVE_ETH,k as NATIVE_SOL_ADDRESS,A as PolygonChainIds,ke as RECURRING_FREQUENCY_UNITS,Ne as RECURRING_FREQUENCY_VALUE_MAX,Ae as RECURRING_UNLIMITED_ORDERS_SENTINEL,je as RecurringEligibilityReason,Me as RecurringOrderStatus,W as ResponseValidationError,j as SOLANA_DEVNET_CHAIN,M as SOLANA_MAINNET_CHAIN,G as SdkError,K as ServiceInitializationError,N as ServiceType,q as ServiceUnavailableError,P as SolanaChainIds,J as TimeoutError,F as TokenType,I as TransferSignatureReason,ge as caip2ToEip155ChainId,_e as caip2ToEip155HexChainId,Te as calculatePriceImpactFromQuote,Se as compareDestinationChains,he as createTransferManager,xe as dedupeBridgeableAssets,Pe as deriveIntervalSeconds,ve as eip155ChainIdToCaip2,Ce as getDestinationChainPriority,Oe as getRecoveredAtomicAmount,Y as isAbortedError,ye as isCaip2ChainId,ae as isEnvironment,oe as isErc20Asset,X as isEstimateNativeFeeError,se as isEvmBridgeInitializer,Z as isHttpError,Q as isInsufficientFundsError,$ as isInvalidParamsError,ce as isLombardServiceInitializer,le as isMarkrServiceInitializer,ue as isNativeAsset,de as isQuote,ee as isResponseValidationError,te as isSdkError,ne as isServiceInitializationError,fe as isServiceInitializer,re as isServiceUnavailableError,pe as isSplAsset,ie as isTimeoutError,me as isTransfer,Ee as parseTransfer,we as sortDestinationChains,be as splitCaip2ChainId,De as stringifyTransfer,Fe as validateFrequency};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`../../../constants.cjs`),t=require(`../../../errors.cjs`),n=require(
|
|
1
|
+
const e=require(`../../../constants.cjs`),t=require(`../../../errors.cjs`),n=require(`../_utils.cjs`),r=require(`../../_utils.cjs`),i=require(`../../_evm-gas.cjs`),a=require(`../_utils/fees.cjs`);function o({ajsContext:o,environment:s,getAtomicUtxos:c,getUtxos:l}){return async(u,d)=>{if(u.serviceType!==e.ServiceType.AVALANCHE_CCT)throw new t.SdkError(t.ErrorReason.INCORRECT_PROVIDER_PROVIDED,t.ErrorCode.INVALID_PARAMS);let f=s===e.Environment.TEST,p=r.getEvmClientForChain({chain:f?e.AVALANCHE_FUJI_CHAIN:e.AVALANCHE_MAINNET_CHAIN}),m=d?.overrides?.maxFeePerGas??(await i.fetchSuggestedGasPrices(p))[d?.overrides?.feeRateTier??`fast`].maxFeePerGas,h=d?.feeUnitsMarginBps,g=n.getChainAlias(u.sourceChain.chainId,f),_=n.getChainAlias(u.targetChain.chainId,f),v=(await c(_,g)).getUTXOs(),y=u.amountIn>0n,b=y&&g===`P`?Math.max((await l(`P`)).getUTXOs().length,1):1,x=v.length+(y?1:0),S={context:o,environment:s,maxFeePerGas:m,numberInputs:b},C={context:o,environment:s,maxFeePerGas:m,numberInputs:x,numberSignatures:1},w=y?await a.getExportFeeInNanoAvax(g,{...S,feeUnitsMarginBps:h}):0n,T=await a.getImportFeeInNanoAvax(_,{...C,feeUnitsMarginBps:h}),E=y?await a.getExportFeeInNanoAvax(g,{...S,feeUnitsMarginBps:void 0}):0n,D=await a.getImportFeeInNanoAvax(_,{...C,feeUnitsMarginBps:void 0}),O=w+T,k=E+D,A=g===`C`,j=A?n.convertNanoAvaxToWei(O):O,M=A?n.convertNanoAvaxToWei(k):k;return{asset:n.getNativeTokenForChainAlias(g),totalFee:j,totalFeeWithoutMargin:M}}}exports.estimateNativeFeeFactory=o;
|
|
2
2
|
//# sourceMappingURL=estimate-native-fee.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{AVALANCHE_FUJI_CHAIN as e,AVALANCHE_MAINNET_CHAIN as t,Environment as n,ServiceType as r}from"../../../constants.js";import{ErrorCode as i,ErrorReason as a,SdkError as o}from"../../../errors.js";import{
|
|
1
|
+
import{AVALANCHE_FUJI_CHAIN as e,AVALANCHE_MAINNET_CHAIN as t,Environment as n,ServiceType as r}from"../../../constants.js";import{ErrorCode as i,ErrorReason as a,SdkError as o}from"../../../errors.js";import{convertNanoAvaxToWei as s,getChainAlias as c,getNativeTokenForChainAlias as l}from"../_utils.js";import{getEvmClientForChain as u}from"../../_utils.js";import{fetchSuggestedGasPrices as d}from"../../_evm-gas.js";import{getExportFeeInNanoAvax as f,getImportFeeInNanoAvax as p}from"../_utils/fees.js";function m({ajsContext:m,environment:h,getAtomicUtxos:g,getUtxos:_}){return async(v,y)=>{if(v.serviceType!==r.AVALANCHE_CCT)throw new o(a.INCORRECT_PROVIDER_PROVIDED,i.INVALID_PARAMS);let b=h===n.TEST,x=u({chain:b?e:t}),S=y?.overrides?.maxFeePerGas??(await d(x))[y?.overrides?.feeRateTier??`fast`].maxFeePerGas,C=y?.feeUnitsMarginBps,w=c(v.sourceChain.chainId,b),T=c(v.targetChain.chainId,b),E=(await g(T,w)).getUTXOs(),D=v.amountIn>0n,O=D&&w===`P`?Math.max((await _(`P`)).getUTXOs().length,1):1,k=E.length+(D?1:0),A={context:m,environment:h,maxFeePerGas:S,numberInputs:O},j={context:m,environment:h,maxFeePerGas:S,numberInputs:k,numberSignatures:1},M=D?await f(w,{...A,feeUnitsMarginBps:C}):0n,N=await p(T,{...j,feeUnitsMarginBps:C}),P=D?await f(w,{...A,feeUnitsMarginBps:void 0}):0n,F=await p(T,{...j,feeUnitsMarginBps:void 0}),I=M+N,L=P+F,R=w===`C`,z=R?s(I):I,B=R?s(L):L;return{asset:l(w),totalFee:z,totalFeeWithoutMargin:B}}}export{m as estimateNativeFeeFactory};
|
|
2
2
|
//# sourceMappingURL=estimate-native-fee.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`../../../constants.cjs`),t=require(
|
|
1
|
+
const e=require(`../../../constants.cjs`),t=require(`../constants.cjs`),n=require(`../../../utils/asset-id.cjs`),r=({assets:e,limit:t,page:n})=>{let r=(n-1)*t,i=e.slice(r,r+t),a=r+i.length<e.length;return{assets:i,meta:{currentPage:n,hasMore:a,...a?{nextPage:n+1}:{}}}};function i({environment:i}){return async({sourceAsset:a,sourceChainId:o,targetChainId:s,limit:c,page:l})=>{let u=c??100,d=l??1;if(a.type!==e.TokenType.NATIVE||!(i===e.Environment.PROD||i===e.Environment.TEST))return r({assets:[],limit:u,page:d});let f=Object.values(i===e.Environment.PROD?e.AvalancheMainnetBlockchainChainIds:e.AvalancheFujiBlockchainChainIds);if(!f.includes(o)||!f.includes(s)||o===s)return r({assets:[],limit:u,page:d});let p=o===e.AvalancheMainnetBlockchainChainIds.C||o===e.AvalancheFujiBlockchainChainIds.C?t.AVALANCHE_PX_CHAIN_NATIVE_ASSET:t.AVALANCHE_C_CHAIN_NATIVE_ASSET;return r({assets:[{id:n.getAssetId(s,p),...p,bridgeProviders:[e.ServiceType.AVALANCHE_CCT]}],limit:u,page:d})}}exports.getBridgeableAssetsFactory=i;
|
|
2
2
|
//# sourceMappingURL=get-bridgeable-assets.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{AvalancheFujiBlockchainChainIds as e,AvalancheMainnetBlockchainChainIds as t,Environment as n,ServiceType as r,TokenType as i}from"../../../constants.js";import{
|
|
1
|
+
import{AvalancheFujiBlockchainChainIds as e,AvalancheMainnetBlockchainChainIds as t,Environment as n,ServiceType as r,TokenType as i}from"../../../constants.js";import{AVALANCHE_C_CHAIN_NATIVE_ASSET as a,AVALANCHE_PX_CHAIN_NATIVE_ASSET as o}from"../constants.js";import{getAssetId as s}from"../../../utils/asset-id.js";const c=({assets:e,limit:t,page:n})=>{let r=(n-1)*t,i=e.slice(r,r+t),a=r+i.length<e.length;return{assets:i,meta:{currentPage:n,hasMore:a,...a?{nextPage:n+1}:{}}}};function l({environment:l}){return async({sourceAsset:u,sourceChainId:d,targetChainId:f,limit:p,page:m})=>{let h=p??100,g=m??1;if(u.type!==i.NATIVE||!(l===n.PROD||l===n.TEST))return c({assets:[],limit:h,page:g});let _=Object.values(l===n.PROD?t:e);if(!_.includes(d)||!_.includes(f)||d===f)return c({assets:[],limit:h,page:g});let v=d===t.C||d===e.C?o:a;return c({assets:[{id:s(f,v),...v,bridgeProviders:[r.AVALANCHE_CCT]}],limit:h,page:g})}}export{l as getBridgeableAssetsFactory};
|
|
2
2
|
//# sourceMappingURL=get-bridgeable-assets.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`../../../errors.cjs`),t=require(
|
|
1
|
+
const e=require(`../../../errors.cjs`),t=require(`../_utils.cjs`),n=require(`../../_utils.cjs`),r=require(`../_utils/polling.cjs`);function i({environment:e}){return({transfer:t,updateListener:r})=>{let i=new AbortController,s=()=>{i.abort()};return t.status===`completed`||t.status===`failed`?{cancel:s,result:Promise.resolve(t)}:{cancel:s,result:(async()=>{let s=structuredClone(t);for(;!i.signal.aborted;){let t=s.status;switch(s.status){case`source-pending`:s=await a({currentTransfer:s,environment:e}),i.signal.aborted||r(s);break;case`target-pending`:s=await o({currentTransfer:s,environment:e}),i.signal.aborted||r(s);break;default:return s}s.status===t&&await n.waitForTimeoutOrAbort({timeoutMs:1500,signal:i.signal})}return s})()}}}async function a({currentTransfer:n,environment:i}){let a=t.getEnvironmentIsTestnet(i),o=t.getChainAlias(n.sourceChain.chainId,a);try{return await r.pollPrimaryNetworkTxStatus({chainAlias:o,environment:i,txId:n.source.txHash})?{...n,source:{...n.source,confirmationCount:n.source.requiredConfirmationCount},status:`source-completed`}:{...n,errorCode:e.ErrorCode.TRANSACTION_REVERTED,errorReason:`Source transaction was rejected by Avalanche.`,failedAtMs:Date.now(),status:`failed`}}catch{return n}}async function o({currentTransfer:n,environment:i}){if(!n.target?.txHash)return{...n,errorCode:e.ErrorCode.INVALID_PARAMS,errorReason:`Missing target transaction hash.`,failedAtMs:Date.now(),status:`failed`};let a=t.getEnvironmentIsTestnet(i),o=t.getChainAlias(n.targetChain.chainId,a);try{if(!await r.pollPrimaryNetworkTxStatus({chainAlias:o,environment:i,txId:n.target.txHash}))return{...n,errorCode:e.ErrorCode.TRANSACTION_REVERTED,errorReason:`Target transaction was rejected by Avalanche.`,failedAtMs:Date.now(),status:`failed`};let t=n.source.txHash===n.target.txHash;return{...n,completedAtMs:Date.now(),source:{...n.source,confirmationCount:t?n.source.requiredConfirmationCount:n.source.confirmationCount},status:`completed`,target:{...n.target,confirmationCount:n.target.requiredConfirmationCount}}}catch{return n}}exports.trackTransferFactory=i;
|
|
2
2
|
//# sourceMappingURL=track-transfer.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ErrorCode as e}from"../../../errors.js";import{
|
|
1
|
+
import{ErrorCode as e}from"../../../errors.js";import{getChainAlias as t,getEnvironmentIsTestnet as n}from"../_utils.js";import{waitForTimeoutOrAbort as r}from"../../_utils.js";import{pollPrimaryNetworkTxStatus as i}from"../_utils/polling.js";function a({environment:e}){return({transfer:t,updateListener:n})=>{let i=new AbortController,a=()=>{i.abort()};return t.status===`completed`||t.status===`failed`?{cancel:a,result:Promise.resolve(t)}:{cancel:a,result:(async()=>{let a=structuredClone(t);for(;!i.signal.aborted;){let t=a.status;switch(a.status){case`source-pending`:a=await o({currentTransfer:a,environment:e}),i.signal.aborted||n(a);break;case`target-pending`:a=await s({currentTransfer:a,environment:e}),i.signal.aborted||n(a);break;default:return a}a.status===t&&await r({timeoutMs:1500,signal:i.signal})}return a})()}}}async function o({currentTransfer:r,environment:a}){let o=n(a),s=t(r.sourceChain.chainId,o);try{return await i({chainAlias:s,environment:a,txId:r.source.txHash})?{...r,source:{...r.source,confirmationCount:r.source.requiredConfirmationCount},status:`source-completed`}:{...r,errorCode:e.TRANSACTION_REVERTED,errorReason:`Source transaction was rejected by Avalanche.`,failedAtMs:Date.now(),status:`failed`}}catch{return r}}async function s({currentTransfer:r,environment:a}){if(!r.target?.txHash)return{...r,errorCode:e.INVALID_PARAMS,errorReason:`Missing target transaction hash.`,failedAtMs:Date.now(),status:`failed`};let o=n(a),s=t(r.targetChain.chainId,o);try{if(!await i({chainAlias:s,environment:a,txId:r.target.txHash}))return{...r,errorCode:e.TRANSACTION_REVERTED,errorReason:`Target transaction was rejected by Avalanche.`,failedAtMs:Date.now(),status:`failed`};let t=r.source.txHash===r.target.txHash;return{...r,completedAtMs:Date.now(),source:{...r.source,confirmationCount:t?r.source.requiredConfirmationCount:r.source.confirmationCount},status:`completed`,target:{...r.target,confirmationCount:r.target.requiredConfirmationCount}}}catch{return r}}export{a as trackTransferFactory};
|
|
2
2
|
//# sourceMappingURL=track-transfer.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`../../../constants.cjs`),t=require(`../../../errors.cjs`),n=require(
|
|
1
|
+
const e=require(`../../../constants.cjs`),t=require(`../../../errors.cjs`),n=require(`../constants.cjs`),r=require(`../_utils.cjs`),i=require(`../../_utils.cjs`),a=require(`../../_transfer-utilities.cjs`),o=require(`../_utils/p-chain.cjs`),s=require(`../_utils/polling.cjs`),c=require(`../_utils/transactions.cjs`),l=require(`../_utils/fees.cjs`),u=require(`../_utils/addresses.cjs`);function d({ajsContext:n,avalancheSendTx:i,environment:o,getCoreEthAddress:c,getAtomicUtxos:l,getUtxos:d,getWalletAddressesForChainAlias:m,getWalletChangeAddressForChainAlias:_}){return async({onStepChange:v,quote:y})=>{if(y.serviceType!==e.ServiceType.AVALANCHE_CCT)throw new t.SdkError(t.ErrorReason.INCORRECT_PROVIDER_PROVIDED,t.ErrorCode.INVALID_PARAMS);let b=r.getEnvironmentIsTestnet(o),x=r.getChainAlias(y.sourceChain.chainId,b),S=r.getChainAlias(y.targetChain.chainId,b),C=u.getExportFromAddressEvm(y.fromAddress,x),w=x===`C`?void 0:u.assertXpAddress(y.fromAddress),T=await u.getExportToAddress({destinationChainAlias:S,getCoreEthAddress:c,quoteToAddress:y.toAddress}),E=u.getImportToAddress(y.toAddress,S),D=S===`C`?T:u.assertXpAddress(y.toAddress),O=y.amountIn>0n,k=O?2:1,A=Date.now(),j=f(y,o),M;if(O){let c={currentSignature:1,currentSignatureReason:e.TransferSignatureReason.AvalancheCrossChainExport,quote:y,requiredSignatures:k};v?.(c);let l=await r.tryOrThrow(()=>h({ajsContext:n,environment:o,getUtxos:d,getWalletAddressesForChainAlias:m,getWalletChangeAddressForChainAlias:_,quoteAmountIn:y.amountIn,sourceChainAlias:x,destinationChainAlias:S,fromAddress:C,requiredFromAddress:w,toAddress:T}),e=>new t.SdkError(`Failed to build Avalanche export transaction.`,t.ErrorCode.UNKNOWN,{cause:e}));M=await r.tryOrThrow(()=>i({baseFeeInNanoAvax:l.baseFeeInNanoAvax,chainAlias:x,txType:`export`,unsignedTx:l.unsignedTx},c),e=>new t.SdkError(`Failed to sign/send Avalanche export transaction.`,t.ErrorCode.SIGNING_FAILED,{cause:e}));let u;try{u=await s.pollPrimaryNetworkTxStatus({chainAlias:x,environment:o,txId:M})}catch{return a.sourcePendingTransferFromQuote(y,{environment:o,requiredConfirmationCount:1,startedAtMs:A,txHash:M})}if(!u)return p({errorCode:t.ErrorCode.TRANSACTION_REVERTED,errorReason:`Export transaction was not accepted by Avalanche.`,sourceStartedAtMs:A,sourceTxHash:M,transferBase:j})}let N=await r.tryOrThrow(async()=>(await l(S,x)).getUTXOs(),e=>new t.SdkError(`Failed to fetch Avalanche atomic UTXOs.`,t.ErrorCode.UNKNOWN,{cause:e}));if(N.length===0)return p({errorCode:t.ErrorCode.INVALID_PARAMS,errorReason:`No atomic UTXOs available to import for this route.`,sourceStartedAtMs:A,sourceTxHash:M,transferBase:j});let P={currentSignature:O?2:1,currentSignatureReason:e.TransferSignatureReason.AvalancheCrossChainImport,quote:y,requiredSignatures:k};v?.(P);let F=await r.tryOrThrow(()=>g({ajsContext:n,atomicUtxos:N,destinationChainAlias:S,environment:o,getWalletAddressesForChainAlias:m,getWalletChangeAddressForChainAlias:_,sourceChainAlias:x,requiredFromAddress:D,toAddress:E}),e=>new t.SdkError(`Failed to build Avalanche import transaction.`,t.ErrorCode.UNKNOWN,{cause:e})),I=await r.tryOrThrow(()=>i({baseFeeInNanoAvax:F.baseFeeInNanoAvax,chainAlias:S,txType:`import`,unsignedTx:F.unsignedTx},P),e=>new t.SdkError(`Failed to sign/send Avalanche import transaction.`,t.ErrorCode.SIGNING_FAILED,{cause:e}));return{...j,source:{confirmationCount:M?1:0,requiredConfirmationCount:1,startedAtMs:A,txHash:M??I},status:`target-pending`,target:{confirmationCount:0,requiredConfirmationCount:1,startedAtMs:Date.now(),txHash:I}}}}function f(e,t){return{amountIn:e.amountIn,amountOut:e.amountOut,environment:t,fees:e.fees,fromAddress:e.fromAddress,id:e.id,partnerFeeBps:e.partnerFeeBps,sourceAsset:e.assetIn,sourceChain:e.sourceChain,targetAsset:e.assetOut,targetChain:e.targetChain,toAddress:e.toAddress,type:e.serviceType}}function p({errorCode:e,errorReason:t,sourceStartedAtMs:n,sourceTxHash:r,transferBase:i}){return{...i,errorCode:e,errorReason:t,failedAtMs:Date.now(),...r?{source:{confirmationCount:0,requiredConfirmationCount:1,startedAtMs:n,txHash:r}}:{},status:`failed`}}function m(e,t){return e===`C`?t/n.WEI_PER_NANO_AVAX_BIGINT:t}async function h({ajsContext:n,destinationChainAlias:r,environment:a,fromAddress:s,getUtxos:d,getWalletAddressesForChainAlias:f,getWalletChangeAddressForChainAlias:p,quoteAmountIn:h,requiredFromAddress:g,sourceChainAlias:_,toAddress:v}){let y=m(_,h);switch(_){case`C`:{if(r===`C`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);if(!s)throw new t.InvalidParamsError(`fromAddress must be an EVM address when exporting from C-Chain.`);let o=i.getEvmClientForChain({chain:a===e.Environment.TEST?e.AVALANCHE_FUJI_CHAIN:e.AVALANCHE_MAINNET_CHAIN}),[u,d]=await Promise.all([o.getTransactionCount({address:s}),l.getCChainBaseFeeInNanoAvax(a)]);return{baseFeeInNanoAvax:d,unsignedTx:c.exportTx({amountInNanoAvax:y,baseFeeInNanoAvax:d,context:n,destinationChainAlias:r,fromAddress:s,nonce:BigInt(u),sourceChainAlias:_,toAddress:v})}}case`P`:{if(r===`P`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);let[e,i,s,l]=await Promise.all([u.getWalletChangeAddress({chainAlias:_,getWalletChangeAddressForChainAlias:p}),o.getFeeState(a),u.getWalletFromAddresses({chainAlias:_,getWalletAddressesForChainAlias:f,requiredAddress:g}),d(`P`)]);return{baseFeeInNanoAvax:i.price,unsignedTx:c.exportTx({amountInNanoAvax:y,changeAddress:e,context:n,destinationChainAlias:r,feeState:i,fromAddresses:s,sourceChainAlias:_,toAddress:v,utxos:l.getUTXOs()})}}case`X`:{if(r===`X`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);let[e,i,a]=await Promise.all([u.getWalletChangeAddress({chainAlias:_,getWalletChangeAddressForChainAlias:p}),u.getWalletFromAddresses({chainAlias:_,getWalletAddressesForChainAlias:f,requiredAddress:g}),d(`X`)]);return{baseFeeInNanoAvax:n.baseTxFee,unsignedTx:c.exportTx({amountInNanoAvax:y,changeAddress:e,context:n,destinationChainAlias:r,fromAddresses:i,sourceChainAlias:_,toAddress:v,utxos:a.getUTXOs()})}}}}async function g({ajsContext:e,atomicUtxos:n,destinationChainAlias:r,environment:i,getWalletAddressesForChainAlias:a,getWalletChangeAddressForChainAlias:s,requiredFromAddress:d,sourceChainAlias:f,toAddress:p}){switch(r){case`C`:{if(f===`C`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);let[o,s]=await Promise.all([l.getCChainBaseFeeInNanoAvax(i),u.getWalletFromAddresses({chainAlias:r,getWalletAddressesForChainAlias:a,requiredAddress:d})]);return{baseFeeInNanoAvax:o,unsignedTx:c.importTx({atomicUtxos:n,baseFeeInNanoAvax:o,context:e,destinationChainAlias:r,fromAddresses:s,sourceChainAlias:f,toAddress:u.getImportToAddress(p,`C`)})}}case`P`:{if(f===`P`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);let[s,l]=await Promise.all([o.getFeeState(i),u.getWalletFromAddresses({chainAlias:r,getWalletAddressesForChainAlias:a,requiredAddress:d})]);return{baseFeeInNanoAvax:s.price,unsignedTx:c.importTx({atomicUtxos:n,context:e,destinationChainAlias:r,feeState:s,fromAddresses:l,sourceChainAlias:f,toAddress:u.getImportToAddress(p,`P`)})}}case`X`:{if(f===`X`)throw new t.InvalidParamsError(`Source and destination chain aliases must be different.`);let[i,o]=await Promise.all([u.getWalletChangeAddress({chainAlias:r,getWalletChangeAddressForChainAlias:s}),u.getWalletFromAddresses({chainAlias:r,getWalletAddressesForChainAlias:a,requiredAddress:d})]);return{baseFeeInNanoAvax:e.baseTxFee,unsignedTx:c.importTx({atomicUtxos:n,changeAddress:i,context:e,destinationChainAlias:r,fromAddresses:o,sourceChainAlias:f,toAddress:u.getImportToAddress(p,`X`)})}}}}exports.transferAssetFactory=d;
|
|
2
2
|
//# sourceMappingURL=transfer-asset.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{AVALANCHE_FUJI_CHAIN as e,AVALANCHE_MAINNET_CHAIN as t,Environment as n,ServiceType as r,TransferSignatureReason as i}from"../../../constants.js";import{ErrorCode as a,ErrorReason as o,InvalidParamsError as s,SdkError as c}from"../../../errors.js";import{
|
|
1
|
+
import{AVALANCHE_FUJI_CHAIN as e,AVALANCHE_MAINNET_CHAIN as t,Environment as n,ServiceType as r,TransferSignatureReason as i}from"../../../constants.js";import{ErrorCode as a,ErrorReason as o,InvalidParamsError as s,SdkError as c}from"../../../errors.js";import{WEI_PER_NANO_AVAX_BIGINT as l}from"../constants.js";import{getChainAlias as u,getEnvironmentIsTestnet as d,tryOrThrow as f}from"../_utils.js";import{getEvmClientForChain as p}from"../../_utils.js";import{sourcePendingTransferFromQuote as m}from"../../_transfer-utilities.js";import{getFeeState as h}from"../_utils/p-chain.js";import{pollPrimaryNetworkTxStatus as g}from"../_utils/polling.js";import{exportTx as _,importTx as v}from"../_utils/transactions.js";import{getCChainBaseFeeInNanoAvax as y}from"../_utils/fees.js";import{assertXpAddress as b,getExportFromAddressEvm as x,getExportToAddress as S,getImportToAddress as C,getWalletChangeAddress as w,getWalletFromAddresses as T}from"../_utils/addresses.js";function E({ajsContext:e,avalancheSendTx:t,environment:n,getCoreEthAddress:s,getAtomicUtxos:l,getUtxos:p,getWalletAddressesForChainAlias:h,getWalletChangeAddressForChainAlias:_}){return async({onStepChange:v,quote:y})=>{if(y.serviceType!==r.AVALANCHE_CCT)throw new c(o.INCORRECT_PROVIDER_PROVIDED,a.INVALID_PARAMS);let w=d(n),T=u(y.sourceChain.chainId,w),E=u(y.targetChain.chainId,w),k=x(y.fromAddress,T),M=T===`C`?void 0:b(y.fromAddress),N=await S({destinationChainAlias:E,getCoreEthAddress:s,quoteToAddress:y.toAddress}),P=C(y.toAddress,E),F=E===`C`?N:b(y.toAddress),I=y.amountIn>0n,L=I?2:1,R=Date.now(),z=D(y,n),B;if(I){let r={currentSignature:1,currentSignatureReason:i.AvalancheCrossChainExport,quote:y,requiredSignatures:L};v?.(r);let o=await f(()=>A({ajsContext:e,environment:n,getUtxos:p,getWalletAddressesForChainAlias:h,getWalletChangeAddressForChainAlias:_,quoteAmountIn:y.amountIn,sourceChainAlias:T,destinationChainAlias:E,fromAddress:k,requiredFromAddress:M,toAddress:N}),e=>new c(`Failed to build Avalanche export transaction.`,a.UNKNOWN,{cause:e}));B=await f(()=>t({baseFeeInNanoAvax:o.baseFeeInNanoAvax,chainAlias:T,txType:`export`,unsignedTx:o.unsignedTx},r),e=>new c(`Failed to sign/send Avalanche export transaction.`,a.SIGNING_FAILED,{cause:e}));let s;try{s=await g({chainAlias:T,environment:n,txId:B})}catch{return m(y,{environment:n,requiredConfirmationCount:1,startedAtMs:R,txHash:B})}if(!s)return O({errorCode:a.TRANSACTION_REVERTED,errorReason:`Export transaction was not accepted by Avalanche.`,sourceStartedAtMs:R,sourceTxHash:B,transferBase:z})}let V=await f(async()=>(await l(E,T)).getUTXOs(),e=>new c(`Failed to fetch Avalanche atomic UTXOs.`,a.UNKNOWN,{cause:e}));if(V.length===0)return O({errorCode:a.INVALID_PARAMS,errorReason:`No atomic UTXOs available to import for this route.`,sourceStartedAtMs:R,sourceTxHash:B,transferBase:z});let H={currentSignature:I?2:1,currentSignatureReason:i.AvalancheCrossChainImport,quote:y,requiredSignatures:L};v?.(H);let U=await f(()=>j({ajsContext:e,atomicUtxos:V,destinationChainAlias:E,environment:n,getWalletAddressesForChainAlias:h,getWalletChangeAddressForChainAlias:_,sourceChainAlias:T,requiredFromAddress:F,toAddress:P}),e=>new c(`Failed to build Avalanche import transaction.`,a.UNKNOWN,{cause:e})),W=await f(()=>t({baseFeeInNanoAvax:U.baseFeeInNanoAvax,chainAlias:E,txType:`import`,unsignedTx:U.unsignedTx},H),e=>new c(`Failed to sign/send Avalanche import transaction.`,a.SIGNING_FAILED,{cause:e}));return{...z,source:{confirmationCount:B?1:0,requiredConfirmationCount:1,startedAtMs:R,txHash:B??W},status:`target-pending`,target:{confirmationCount:0,requiredConfirmationCount:1,startedAtMs:Date.now(),txHash:W}}}}function D(e,t){return{amountIn:e.amountIn,amountOut:e.amountOut,environment:t,fees:e.fees,fromAddress:e.fromAddress,id:e.id,partnerFeeBps:e.partnerFeeBps,sourceAsset:e.assetIn,sourceChain:e.sourceChain,targetAsset:e.assetOut,targetChain:e.targetChain,toAddress:e.toAddress,type:e.serviceType}}function O({errorCode:e,errorReason:t,sourceStartedAtMs:n,sourceTxHash:r,transferBase:i}){return{...i,errorCode:e,errorReason:t,failedAtMs:Date.now(),...r?{source:{confirmationCount:0,requiredConfirmationCount:1,startedAtMs:n,txHash:r}}:{},status:`failed`}}function k(e,t){return e===`C`?t/l:t}async function A({ajsContext:r,destinationChainAlias:i,environment:a,fromAddress:o,getUtxos:c,getWalletAddressesForChainAlias:l,getWalletChangeAddressForChainAlias:u,quoteAmountIn:d,requiredFromAddress:f,sourceChainAlias:m,toAddress:g}){let v=k(m,d);switch(m){case`C`:{if(i===`C`)throw new s(`Source and destination chain aliases must be different.`);if(!o)throw new s(`fromAddress must be an EVM address when exporting from C-Chain.`);let c=p({chain:a===n.TEST?e:t}),[l,u]=await Promise.all([c.getTransactionCount({address:o}),y(a)]);return{baseFeeInNanoAvax:u,unsignedTx:_({amountInNanoAvax:v,baseFeeInNanoAvax:u,context:r,destinationChainAlias:i,fromAddress:o,nonce:BigInt(l),sourceChainAlias:m,toAddress:g})}}case`P`:{if(i===`P`)throw new s(`Source and destination chain aliases must be different.`);let[e,t,n,o]=await Promise.all([w({chainAlias:m,getWalletChangeAddressForChainAlias:u}),h(a),T({chainAlias:m,getWalletAddressesForChainAlias:l,requiredAddress:f}),c(`P`)]);return{baseFeeInNanoAvax:t.price,unsignedTx:_({amountInNanoAvax:v,changeAddress:e,context:r,destinationChainAlias:i,feeState:t,fromAddresses:n,sourceChainAlias:m,toAddress:g,utxos:o.getUTXOs()})}}case`X`:{if(i===`X`)throw new s(`Source and destination chain aliases must be different.`);let[e,t,n]=await Promise.all([w({chainAlias:m,getWalletChangeAddressForChainAlias:u}),T({chainAlias:m,getWalletAddressesForChainAlias:l,requiredAddress:f}),c(`X`)]);return{baseFeeInNanoAvax:r.baseTxFee,unsignedTx:_({amountInNanoAvax:v,changeAddress:e,context:r,destinationChainAlias:i,fromAddresses:t,sourceChainAlias:m,toAddress:g,utxos:n.getUTXOs()})}}}}async function j({ajsContext:e,atomicUtxos:t,destinationChainAlias:n,environment:r,getWalletAddressesForChainAlias:i,getWalletChangeAddressForChainAlias:a,requiredFromAddress:o,sourceChainAlias:c,toAddress:l}){switch(n){case`C`:{if(c===`C`)throw new s(`Source and destination chain aliases must be different.`);let[a,u]=await Promise.all([y(r),T({chainAlias:n,getWalletAddressesForChainAlias:i,requiredAddress:o})]);return{baseFeeInNanoAvax:a,unsignedTx:v({atomicUtxos:t,baseFeeInNanoAvax:a,context:e,destinationChainAlias:n,fromAddresses:u,sourceChainAlias:c,toAddress:C(l,`C`)})}}case`P`:{if(c===`P`)throw new s(`Source and destination chain aliases must be different.`);let[a,u]=await Promise.all([h(r),T({chainAlias:n,getWalletAddressesForChainAlias:i,requiredAddress:o})]);return{baseFeeInNanoAvax:a.price,unsignedTx:v({atomicUtxos:t,context:e,destinationChainAlias:n,feeState:a,fromAddresses:u,sourceChainAlias:c,toAddress:C(l,`P`)})}}case`X`:{if(c===`X`)throw new s(`Source and destination chain aliases must be different.`);let[r,u]=await Promise.all([w({chainAlias:n,getWalletChangeAddressForChainAlias:a}),T({chainAlias:n,getWalletAddressesForChainAlias:i,requiredAddress:o})]);return{baseFeeInNanoAvax:e.baseTxFee,unsignedTx:v({atomicUtxos:t,changeAddress:r,context:e,destinationChainAlias:n,fromAddresses:u,sourceChainAlias:c,toAddress:C(l,`X`)})}}}}export{E as transferAssetFactory};
|
|
2
2
|
//# sourceMappingURL=transfer-asset.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../constants.cjs`),t=require(`../../../errors.cjs`),n=require(
|
|
1
|
+
require(`../../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../../constants.cjs`),t=require(`../../../errors.cjs`),n=require(`../constants.cjs`),r=require(`../../_utils.cjs`),i=require(`./p-chain.cjs`),a=require(`../../_evm-gas.cjs`);let o=require(`@avalabs/avalanchejs`);function s(e,n){if(!Number.isInteger(e)||e<=0)throw new t.InvalidParamsError(`Expected a positive integer greater than 0 for ${n}, but received: ${e}`)}function c(e=1,t=1){return s(e,`numberInputs`),s(t,`numberSignatures`),78n+BigInt(e)*90n+1n*60n+BigInt(t)*1000n+10000n}function l(e,t){return s(e,`numberInputs`),o.Common.dimensionsToGas(o.Common.createDimensions({bandwidth:161*e+254,dbRead:e,dbWrite:2+e,compute:200*e}),t)}function u(e,t){return s(e,`numberInputs`),o.Common.dimensionsToGas(o.Common.createDimensions({bandwidth:161*e+174,dbRead:e,dbWrite:1+e,compute:200*e}),t)}function d(e,t){let i=(r.applyFeeUnitsBpsMargin(e,t)+n.WEI_PER_NANO_AVAX_BIGINT-1n)/n.WEI_PER_NANO_AVAX_BIGINT;return i<=0n?1n:i}async function f(t){let n=(await a.fetchSuggestedGasPrices(r.getEvmClientForChain({chain:t===e.Environment.TEST?e.AVALANCHE_FUJI_CHAIN:e.AVALANCHE_MAINNET_CHAIN}))).fast.maxFeePerGas;return d(n,void 0)}function p({feeUnitsMarginBps:e,maxFeePerGas:t}){return d(t,e)*11230n}function m({feeUnitsMarginBps:e,maxFeePerGas:t,numberInputs:n,numberSignatures:r}){return d(t,e)*c(n,r)}async function h({context:e,environment:t,numberInputs:n}){let{price:r}=await i.getFeeState(t);return r*l(n,e.platformFeeConfig.weights)}async function g({context:e,environment:t,numberInputs:n}){let{price:r}=await i.getFeeState(t);return r*u(n,e.platformFeeConfig.weights)}function _({context:e}){return e.baseTxFee}function v({context:e}){return e.baseTxFee}async function y(e,n){let{context:r,environment:i,feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s}=n;switch(e){case`C`:return p({feeUnitsMarginBps:a,maxFeePerGas:o});case`P`:return await h({context:r,environment:i,numberInputs:s});case`X`:return _({context:r});default:throw new t.InvalidParamsError(`Unsupported chain alias: ${e}`)}}async function b(e,n){let{context:r,environment:i,feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s,numberSignatures:c}=n;switch(e){case`C`:return m({feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s,numberSignatures:c});case`P`:return await g({context:r,environment:i,numberInputs:s});case`X`:return v({context:r});default:throw new t.InvalidParamsError(`Unsupported chain alias: ${e}`)}}exports.getCChainBaseFeeInNanoAvax=f,exports.getExportFeeInNanoAvax=y,exports.getImportFeeInNanoAvax=b;
|
|
2
2
|
//# sourceMappingURL=fees.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{AVALANCHE_FUJI_CHAIN as e,AVALANCHE_MAINNET_CHAIN as t,Environment as n}from"../../../constants.js";import{InvalidParamsError as r}from"../../../errors.js";import{
|
|
1
|
+
import{AVALANCHE_FUJI_CHAIN as e,AVALANCHE_MAINNET_CHAIN as t,Environment as n}from"../../../constants.js";import{InvalidParamsError as r}from"../../../errors.js";import{WEI_PER_NANO_AVAX_BIGINT as i}from"../constants.js";import{applyFeeUnitsBpsMargin as a,getEvmClientForChain as o}from"../../_utils.js";import{getFeeState as s}from"./p-chain.js";import{fetchSuggestedGasPrices as c}from"../../_evm-gas.js";import{Common as l}from"@avalabs/avalanchejs";function u(e,t){if(!Number.isInteger(e)||e<=0)throw new r(`Expected a positive integer greater than 0 for ${t}, but received: ${e}`)}function d(e=1,t=1){return u(e,`numberInputs`),u(t,`numberSignatures`),78n+BigInt(e)*90n+1n*60n+BigInt(t)*1000n+10000n}function f(e,t){return u(e,`numberInputs`),l.dimensionsToGas(l.createDimensions({bandwidth:161*e+254,dbRead:e,dbWrite:2+e,compute:200*e}),t)}function p(e,t){return u(e,`numberInputs`),l.dimensionsToGas(l.createDimensions({bandwidth:161*e+174,dbRead:e,dbWrite:1+e,compute:200*e}),t)}function m(e,t){let n=(a(e,t)+i-1n)/i;return n<=0n?1n:n}async function h(r){let i=(await c(o({chain:r===n.TEST?e:t}))).fast.maxFeePerGas;return m(i,void 0)}function g({feeUnitsMarginBps:e,maxFeePerGas:t}){return m(t,e)*11230n}function _({feeUnitsMarginBps:e,maxFeePerGas:t,numberInputs:n,numberSignatures:r}){return m(t,e)*d(n,r)}async function v({context:e,environment:t,numberInputs:n}){let{price:r}=await s(t);return r*f(n,e.platformFeeConfig.weights)}async function y({context:e,environment:t,numberInputs:n}){let{price:r}=await s(t);return r*p(n,e.platformFeeConfig.weights)}function b({context:e}){return e.baseTxFee}function x({context:e}){return e.baseTxFee}async function S(e,t){let{context:n,environment:i,feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s}=t;switch(e){case`C`:return g({feeUnitsMarginBps:a,maxFeePerGas:o});case`P`:return await v({context:n,environment:i,numberInputs:s});case`X`:return b({context:n});default:throw new r(`Unsupported chain alias: ${e}`)}}async function C(e,t){let{context:n,environment:i,feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s,numberSignatures:c}=t;switch(e){case`C`:return _({feeUnitsMarginBps:a,maxFeePerGas:o,numberInputs:s,numberSignatures:c});case`P`:return await y({context:n,environment:i,numberInputs:s});case`X`:return x({context:n});default:throw new r(`Unsupported chain alias: ${e}`)}}export{h as getCChainBaseFeeInNanoAvax,S as getExportFeeInNanoAvax,C as getImportFeeInNanoAvax};
|
|
2
2
|
//# sourceMappingURL=fees.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`../../../errors.cjs`),t=require(
|
|
1
|
+
const e=require(`../../../errors.cjs`),t=require(`../_utils.cjs`),n=require(`../../_utils.cjs`);function r(n,r){switch(r){case`C`:return e=>t.getAvalancheProvider(n,r).getAtomicTxStatus(e);case`P`:return e=>t.getAvalancheProvider(n,r).getTxStatus({txID:e});case`X`:return e=>t.getAvalancheProvider(n,r).getTxStatus({txID:e});default:throw new e.InvalidParamsError(`Unsupported chain alias: ${r}`,`Can not get transaction status function for unsupported chain alias.`)}}async function i({chainAlias:t,count:a=13,environment:o,signal:s,txId:c}){if(a<0)return!1;try{let{status:e}=await r(o,t)(c);switch(e){case`Accepted`:case`Committed`:return!0;case`Dropped`:case`Rejected`:return!1;default:break}return await n.wait(1500*1.2**(13-a),s),await i({chainAlias:t,count:a-1,environment:o,signal:s,txId:c})}catch(t){throw new e.SdkError(`Failed to poll transaction status from Avalanche.`,e.ErrorCode.UNKNOWN,{cause:t})}}exports.pollPrimaryNetworkTxStatus=i;
|
|
2
2
|
//# sourceMappingURL=polling.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ErrorCode as e,InvalidParamsError as t,SdkError as n}from"../../../errors.js";import{
|
|
1
|
+
import{ErrorCode as e,InvalidParamsError as t,SdkError as n}from"../../../errors.js";import{getAvalancheProvider as r}from"../_utils.js";import{wait as i}from"../../_utils.js";function a(e,n){switch(n){case`C`:return t=>r(e,n).getAtomicTxStatus(t);case`P`:return t=>r(e,n).getTxStatus({txID:t});case`X`:return t=>r(e,n).getTxStatus({txID:t});default:throw new t(`Unsupported chain alias: ${n}`,`Can not get transaction status function for unsupported chain alias.`)}}async function o({chainAlias:t,count:r=13,environment:s,signal:c,txId:l}){if(r<0)return!1;try{let{status:e}=await a(s,t)(l);switch(e){case`Accepted`:case`Committed`:return!0;case`Dropped`:case`Rejected`:return!1;default:break}return await i(1500*1.2**(13-r),c),await o({chainAlias:t,count:r-1,environment:s,signal:c,txId:l})}catch(t){throw new n(`Failed to poll transaction status from Avalanche.`,e.UNKNOWN,{cause:t})}}export{o as pollPrimaryNetworkTxStatus};
|
|
2
2
|
//# sourceMappingURL=polling.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants.cjs`),t=require(`../../errors.cjs`),n=require(`./
|
|
1
|
+
require(`../../_virtual/_rolldown/runtime.cjs`);const e=require(`../../constants.cjs`),t=require(`../../errors.cjs`),n=require(`./_utils.cjs`),r=require(`./_handlers/analyze-support.cjs`),i=require(`./_handlers/get-bridgeable-assets.cjs`),a=require(`./_handlers/get-minimum-transfer-amount.cjs`),o=require(`./_handlers/get-supported-chains.cjs`),s=require(`./_handlers/stream-quotes.cjs`),c=require(`./_handlers/transfer-asset.cjs`),l=require(`./_handlers/estimate-native-fee.cjs`),u=require(`./_handlers/track-transfer.cjs`);let d=require(`@avalabs/avalanchejs`);async function f({avalancheSendTx:f,environment:p,getCoreEthAddress:m,getAtomicUtxos:h,getUtxos:g,getWalletAddressesForChainAlias:_,getWalletChangeAddressForChainAlias:v}){let y,b;try{y=n.getAvalancheApiUrl(p),b=await d.Context.getContextFromURI(y)}catch(e){throw new t.ServiceInitializationError(`Failed to initialize Avalanche CCT context.`,void 0,e)}return{analyzeSupport:r.analyzeSupportFactory({environment:p}),estimateNativeFee:l.estimateNativeFeeFactory({ajsContext:b,environment:p,getAtomicUtxos:h,getUtxos:g}),getAssets:async()=>{throw new t.NotImplementedError},getBridgeableAssets:i.getBridgeableAssetsFactory({environment:p}),getMinimumTransferAmount:a.getMinimumTransferAmountFactory({environment:p,getAtomicUtxos:h}),getSupportedChains:o.getSupportedChainsFactory({environment:p}),streamQuotes:s.streamQuotesFactory({environment:p,getAtomicUtxos:h}),trackTransfer:u.trackTransferFactory({environment:p}),transferAsset:c.transferAssetFactory({ajsContext:b,avalancheSendTx:f,environment:p,getCoreEthAddress:m,getAtomicUtxos:h,getUtxos:g,getWalletAddressesForChainAlias:_,getWalletChangeAddressForChainAlias:v}),type:e.ServiceType.AVALANCHE_CCT}}exports.createAvalancheCctService=f;
|
|
2
2
|
//# sourceMappingURL=avalanche-cct-service.cjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{ServiceType as e}from"../../constants.js";import{NotImplementedError as t,ServiceInitializationError as n}from"../../errors.js";import{
|
|
1
|
+
import{ServiceType as e}from"../../constants.js";import{NotImplementedError as t,ServiceInitializationError as n}from"../../errors.js";import{getAvalancheApiUrl as r}from"./_utils.js";import{analyzeSupportFactory as i}from"./_handlers/analyze-support.js";import{getBridgeableAssetsFactory as a}from"./_handlers/get-bridgeable-assets.js";import{getMinimumTransferAmountFactory as o}from"./_handlers/get-minimum-transfer-amount.js";import{getSupportedChainsFactory as s}from"./_handlers/get-supported-chains.js";import{streamQuotesFactory as c}from"./_handlers/stream-quotes.js";import{transferAssetFactory as l}from"./_handlers/transfer-asset.js";import{estimateNativeFeeFactory as u}from"./_handlers/estimate-native-fee.js";import{trackTransferFactory as d}from"./_handlers/track-transfer.js";import{Context as f}from"@avalabs/avalanchejs";async function p({avalancheSendTx:p,environment:m,getCoreEthAddress:h,getAtomicUtxos:g,getUtxos:_,getWalletAddressesForChainAlias:v,getWalletChangeAddressForChainAlias:y}){let b,x;try{b=r(m),x=await f.getContextFromURI(b)}catch(e){throw new n(`Failed to initialize Avalanche CCT context.`,void 0,e)}return{analyzeSupport:i({environment:m}),estimateNativeFee:u({ajsContext:x,environment:m,getAtomicUtxos:g,getUtxos:_}),getAssets:async()=>{throw new t},getBridgeableAssets:a({environment:m}),getMinimumTransferAmount:o({environment:m,getAtomicUtxos:g}),getSupportedChains:s({environment:m}),streamQuotes:c({environment:m,getAtomicUtxos:g}),trackTransfer:d({environment:m}),transferAsset:l({ajsContext:x,avalancheSendTx:p,environment:m,getCoreEthAddress:h,getAtomicUtxos:g,getUtxos:_,getWalletAddressesForChainAlias:v,getWalletChangeAddressForChainAlias:y}),type:e.AVALANCHE_CCT}}export{p as createAvalancheCctService};
|
|
2
2
|
//# sourceMappingURL=avalanche-cct-service.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`../../constants.cjs`),t={type:e.TokenType.NATIVE,decimals:18,name:`Avalanche`,symbol:`AVAX`},n={type:e.TokenType.NATIVE,decimals:9,name:`Avalanche`,symbol:`AVAX`},r=RegExp(`^(${[`C-`,`P-`,`X-`].join(`|`)})`,`i`),i={fuji:`https://api.avax-test.network`,mainnet:`https://api.avax.network`};exports.AVALANCHE_API_URIS=i,exports.AVALANCHE_C_CHAIN_NATIVE_ASSET=t,exports.AVALANCHE_PX_CHAIN_NATIVE_ASSET=n,exports.CHAIN_PREFIXES_REGEX=r,exports.WEI_PER_NANO_AVAX_BIGINT=1000000000n;
|
|
1
|
+
const e=require(`../../constants.cjs`),t={type:e.TokenType.NATIVE,decimals:18,name:`Avalanche`,symbol:`AVAX`,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`},n={type:e.TokenType.NATIVE,decimals:9,name:`Avalanche`,symbol:`AVAX`,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`},r=RegExp(`^(${[`C-`,`P-`,`X-`].join(`|`)})`,`i`),i={fuji:`https://api.avax-test.network`,mainnet:`https://api.avax.network`};exports.AVALANCHE_API_URIS=i,exports.AVALANCHE_C_CHAIN_NATIVE_ASSET=t,exports.AVALANCHE_PX_CHAIN_NATIVE_ASSET=n,exports.CHAIN_PREFIXES_REGEX=r,exports.WEI_PER_NANO_AVAX_BIGINT=1000000000n;
|
|
2
2
|
//# sourceMappingURL=constants.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.cjs","names":["TokenType"],"sources":["../../../src/transfer-service/avalanche-cct/constants.ts"],"sourcesContent":["import { TokenType, type AvalancheBlockchainAlias } from '../../constants';\nimport type { NativeAsset } from '../../types/asset';\n\nexport const AVALANCHE_C_CHAIN_NATIVE_ASSET: NativeAsset = {\n type: TokenType.NATIVE,\n decimals: 18,\n name: 'Avalanche',\n symbol: 'AVAX',\n};\n\nexport const AVALANCHE_PX_CHAIN_NATIVE_ASSET: NativeAsset = {\n type: TokenType.NATIVE,\n decimals: 9,\n name: 'Avalanche',\n symbol: 'AVAX',\n};\n\nexport type ChainPrefix = `${AvalancheBlockchainAlias}-`;\n\nexport const CHAIN_PREFIXES: readonly ChainPrefix[] = ['C-', 'P-', 'X-'] as const;\n\nexport const CHAIN_PREFIXES_REGEX: RegExp = new RegExp(`^(${CHAIN_PREFIXES.join('|')})`, 'i');\n\nexport const AVALANCHE_API_URIS = {\n fuji: 'https://api.avax-test.network',\n mainnet: 'https://api.avax.network',\n} as const;\n\nexport const WEI_PER_NANO_AVAX_BIGINT = 1_000_000_000n;\nexport const NANO_AVAX_DECIMALS = 9;\n"],"mappings":"uCAGa,EAA8C,CACzD,KAAMA,EAAAA,UAAU,OAChB,SAAU,GACV,KAAM,YACN,OAAQ,
|
|
1
|
+
{"version":3,"file":"constants.cjs","names":["TokenType"],"sources":["../../../src/transfer-service/avalanche-cct/constants.ts"],"sourcesContent":["import { TokenType, type AvalancheBlockchainAlias } from '../../constants';\nimport type { NativeAsset } from '../../types/asset';\n\nexport const AVALANCHE_C_CHAIN_NATIVE_ASSET: NativeAsset = {\n type: TokenType.NATIVE,\n decimals: 18,\n name: 'Avalanche',\n symbol: 'AVAX',\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n};\n\nexport const AVALANCHE_PX_CHAIN_NATIVE_ASSET: NativeAsset = {\n type: TokenType.NATIVE,\n decimals: 9,\n name: 'Avalanche',\n symbol: 'AVAX',\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n};\n\nexport type ChainPrefix = `${AvalancheBlockchainAlias}-`;\n\nexport const CHAIN_PREFIXES: readonly ChainPrefix[] = ['C-', 'P-', 'X-'] as const;\n\nexport const CHAIN_PREFIXES_REGEX: RegExp = new RegExp(`^(${CHAIN_PREFIXES.join('|')})`, 'i');\n\nexport const AVALANCHE_API_URIS = {\n fuji: 'https://api.avax-test.network',\n mainnet: 'https://api.avax.network',\n} as const;\n\nexport const WEI_PER_NANO_AVAX_BIGINT = 1_000_000_000n;\nexport const NANO_AVAX_DECIMALS = 9;\n"],"mappings":"uCAGa,EAA8C,CACzD,KAAMA,EAAAA,UAAU,OAChB,SAAU,GACV,KAAM,YACN,OAAQ,OACR,QACE,4HACH,CAEY,EAA+C,CAC1D,KAAMA,EAAAA,UAAU,OAChB,SAAU,EACV,KAAM,YACN,OAAQ,OACR,QACE,4HACH,CAMY,EAAmC,OAAO,KAFD,CAAC,KAAM,KAAM,KAAK,CAEG,KAAK,IAAI,CAAC,GAAI,IAAI,CAEhF,EAAqB,CAChC,KAAM,gCACN,QAAS,2BACV"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{TokenType as e}from"../../constants.js";const t={type:e.NATIVE,decimals:18,name:`Avalanche`,symbol:`AVAX`},n={type:e.NATIVE,decimals:9,name:`Avalanche`,symbol:`AVAX`},r=RegExp(`^(${[`C-`,`P-`,`X-`].join(`|`)})`,`i`),i={fuji:`https://api.avax-test.network`,mainnet:`https://api.avax.network`},a=1000000000n;export{i as AVALANCHE_API_URIS,t as AVALANCHE_C_CHAIN_NATIVE_ASSET,n as AVALANCHE_PX_CHAIN_NATIVE_ASSET,r as CHAIN_PREFIXES_REGEX,a as WEI_PER_NANO_AVAX_BIGINT};
|
|
1
|
+
import{TokenType as e}from"../../constants.js";const t={type:e.NATIVE,decimals:18,name:`Avalanche`,symbol:`AVAX`,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`},n={type:e.NATIVE,decimals:9,name:`Avalanche`,symbol:`AVAX`,logoUri:`https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg`},r=RegExp(`^(${[`C-`,`P-`,`X-`].join(`|`)})`,`i`),i={fuji:`https://api.avax-test.network`,mainnet:`https://api.avax.network`},a=1000000000n;export{i as AVALANCHE_API_URIS,t as AVALANCHE_C_CHAIN_NATIVE_ASSET,n as AVALANCHE_PX_CHAIN_NATIVE_ASSET,r as CHAIN_PREFIXES_REGEX,a as WEI_PER_NANO_AVAX_BIGINT};
|
|
2
2
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":[],"sources":["../../../src/transfer-service/avalanche-cct/constants.ts"],"sourcesContent":["import { TokenType, type AvalancheBlockchainAlias } from '../../constants';\nimport type { NativeAsset } from '../../types/asset';\n\nexport const AVALANCHE_C_CHAIN_NATIVE_ASSET: NativeAsset = {\n type: TokenType.NATIVE,\n decimals: 18,\n name: 'Avalanche',\n symbol: 'AVAX',\n};\n\nexport const AVALANCHE_PX_CHAIN_NATIVE_ASSET: NativeAsset = {\n type: TokenType.NATIVE,\n decimals: 9,\n name: 'Avalanche',\n symbol: 'AVAX',\n};\n\nexport type ChainPrefix = `${AvalancheBlockchainAlias}-`;\n\nexport const CHAIN_PREFIXES: readonly ChainPrefix[] = ['C-', 'P-', 'X-'] as const;\n\nexport const CHAIN_PREFIXES_REGEX: RegExp = new RegExp(`^(${CHAIN_PREFIXES.join('|')})`, 'i');\n\nexport const AVALANCHE_API_URIS = {\n fuji: 'https://api.avax-test.network',\n mainnet: 'https://api.avax.network',\n} as const;\n\nexport const WEI_PER_NANO_AVAX_BIGINT = 1_000_000_000n;\nexport const NANO_AVAX_DECIMALS = 9;\n"],"mappings":"+CAGA,MAAa,EAA8C,CACzD,KAAM,EAAU,OAChB,SAAU,GACV,KAAM,YACN,OAAQ,
|
|
1
|
+
{"version":3,"file":"constants.js","names":[],"sources":["../../../src/transfer-service/avalanche-cct/constants.ts"],"sourcesContent":["import { TokenType, type AvalancheBlockchainAlias } from '../../constants';\nimport type { NativeAsset } from '../../types/asset';\n\nexport const AVALANCHE_C_CHAIN_NATIVE_ASSET: NativeAsset = {\n type: TokenType.NATIVE,\n decimals: 18,\n name: 'Avalanche',\n symbol: 'AVAX',\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n};\n\nexport const AVALANCHE_PX_CHAIN_NATIVE_ASSET: NativeAsset = {\n type: TokenType.NATIVE,\n decimals: 9,\n name: 'Avalanche',\n symbol: 'AVAX',\n logoUri:\n 'https://images.ctfassets.net/gcj8jwzm6086/5VHupNKwnDYJvqMENeV7iJ/adb596bcc935136c0a1a587ede372f5b/avalanche-avax-logo.svg',\n};\n\nexport type ChainPrefix = `${AvalancheBlockchainAlias}-`;\n\nexport const CHAIN_PREFIXES: readonly ChainPrefix[] = ['C-', 'P-', 'X-'] as const;\n\nexport const CHAIN_PREFIXES_REGEX: RegExp = new RegExp(`^(${CHAIN_PREFIXES.join('|')})`, 'i');\n\nexport const AVALANCHE_API_URIS = {\n fuji: 'https://api.avax-test.network',\n mainnet: 'https://api.avax.network',\n} as const;\n\nexport const WEI_PER_NANO_AVAX_BIGINT = 1_000_000_000n;\nexport const NANO_AVAX_DECIMALS = 9;\n"],"mappings":"+CAGA,MAAa,EAA8C,CACzD,KAAM,EAAU,OAChB,SAAU,GACV,KAAM,YACN,OAAQ,OACR,QACE,4HACH,CAEY,EAA+C,CAC1D,KAAM,EAAU,OAChB,SAAU,EACV,KAAM,YACN,OAAQ,OACR,QACE,4HACH,CAMY,EAAmC,OAAO,KAFD,CAAC,KAAM,KAAM,KAAK,CAEG,KAAK,IAAI,CAAC,GAAI,IAAI,CAEhF,EAAqB,CAChC,KAAM,gCACN,QAAS,2BACV,CAEY,EAA2B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
const e=require(`../../constants.cjs`),t=require(`../../type-guards.cjs`),n=require(`./_utils.cjs`);function r(r){let i=t.isQuote(r);if((i?r.serviceType:r.type)!==e.ServiceType.AVALANCHE_CCT)return null;let a=i?r.assetIn:r.sourceAsset,o=i?r.assetOut:r.targetAsset;if(!t.isNativeAsset(a)||!t.isNativeAsset(o))return null;let s=n.getOutputAmountForAvalancheCct({amountIn:r.amountIn,sourceAsset:a,targetAsset:o}),c=r.amountOut-s;return c>0n?c:0n}exports.getRecoveredAtomicAmount=r;
|
|
2
|
+
//# sourceMappingURL=get-recovered-atomic-amount.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-recovered-atomic-amount.cjs","names":["isQuote","ServiceType","isNativeAsset","getOutputAmountForAvalancheCct"],"sources":["../../../src/transfer-service/avalanche-cct/get-recovered-atomic-amount.ts"],"sourcesContent":["import { ServiceType } from '../../constants';\nimport { isNativeAsset, isQuote } from '../../type-guards';\nimport type { Quote } from '../../types/quote';\nimport type { Transfer } from '../../types/transfer';\nimport { getOutputAmountForAvalancheCct } from './_utils';\n\n/**\n * For an `AVALANCHE_CCT` quote or transfer, returns the portion of `amountOut`\n * that comes from AVAX recovered from a previous incomplete cross-chain transfer,\n * i.e. stuck atomic UTXOs the import leg sweeps in alongside the newly-transferred\n * amount.\n *\n * Accepts a `Quote` (swap screen, from the live quote) or a `Transfer` (status /\n * success screen, from the tracked transfer) since both carry the same amounts\n * and source/target assets.\n *\n * Derived entirely from the input: `amountOut` minus the newly-transferred\n * `amountIn` scaled from the source asset's decimals to the target's. The scaling\n * matters because CCT crosses chains with different native decimals (C-Chain AVAX\n * is 18, P/X AVAX is 9), so a raw `amountOut - amountIn` would be wrong on any\n * route involving C-Chain.\n *\n * Returns:\n * - `null` for non-CCT inputs (the concept does not apply)\n * - `0n` for a CCT input that recovered nothing\n * - a positive `bigint` (target-asset smallest units) otherwise\n *\n * Relies on the CCT invariant that `amountOut === scale(amountIn) + recovered`\n * with nothing netted out (CCT quotes carry no fees). If a CCT fee is ever\n * introduced it will surface in `fees`, and this must account for it.\n */\nexport function getRecoveredAtomicAmount(quoteOrTransfer: Quote | Transfer): bigint | null {\n const isQuoteInput = isQuote(quoteOrTransfer);\n const serviceType = isQuoteInput ? quoteOrTransfer.serviceType : quoteOrTransfer.type;\n if (serviceType !== ServiceType.AVALANCHE_CCT) {\n return null;\n }\n\n const sourceAsset = isQuoteInput ? quoteOrTransfer.assetIn : quoteOrTransfer.sourceAsset;\n const targetAsset = isQuoteInput ? quoteOrTransfer.assetOut : quoteOrTransfer.targetAsset;\n\n // CCT only ever moves native AVAX. Bail on anything else (this also narrows\n // `Asset` to `NativeAsset` for the decimal scaler).\n if (!isNativeAsset(sourceAsset) || !isNativeAsset(targetAsset)) {\n return null;\n }\n\n const newlyTransferredOut = getOutputAmountForAvalancheCct({\n amountIn: quoteOrTransfer.amountIn,\n sourceAsset,\n targetAsset,\n });\n\n const recovered = quoteOrTransfer.amountOut - newlyTransferredOut;\n return recovered > 0n ? recovered : 0n;\n}\n"],"mappings":"oGA+BA,SAAgB,EAAyB,EAAkD,CACzF,IAAM,EAAeA,EAAAA,QAAQ,EAAgB,CAE7C,IADoB,EAAe,EAAgB,YAAc,EAAgB,QAC7DC,EAAAA,YAAY,cAC9B,OAAO,KAGT,IAAM,EAAc,EAAe,EAAgB,QAAU,EAAgB,YACvE,EAAc,EAAe,EAAgB,SAAW,EAAgB,YAI9E,GAAI,CAACC,EAAAA,cAAc,EAAY,EAAI,CAACA,EAAAA,cAAc,EAAY,CAC5D,OAAO,KAGT,IAAM,EAAsBC,EAAAA,+BAA+B,CACzD,SAAU,EAAgB,SAC1B,cACA,cACD,CAAC,CAEI,EAAY,EAAgB,UAAY,EAC9C,OAAO,EAAY,GAAK,EAAY"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Quote } from "../../types/quote.cjs";
|
|
2
|
+
import { Transfer } from "../../types/transfer.cjs";
|
|
3
|
+
|
|
4
|
+
//#region src/transfer-service/avalanche-cct/get-recovered-atomic-amount.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* For an `AVALANCHE_CCT` quote or transfer, returns the portion of `amountOut`
|
|
7
|
+
* that comes from AVAX recovered from a previous incomplete cross-chain transfer,
|
|
8
|
+
* i.e. stuck atomic UTXOs the import leg sweeps in alongside the newly-transferred
|
|
9
|
+
* amount.
|
|
10
|
+
*
|
|
11
|
+
* Accepts a `Quote` (swap screen, from the live quote) or a `Transfer` (status /
|
|
12
|
+
* success screen, from the tracked transfer) since both carry the same amounts
|
|
13
|
+
* and source/target assets.
|
|
14
|
+
*
|
|
15
|
+
* Derived entirely from the input: `amountOut` minus the newly-transferred
|
|
16
|
+
* `amountIn` scaled from the source asset's decimals to the target's. The scaling
|
|
17
|
+
* matters because CCT crosses chains with different native decimals (C-Chain AVAX
|
|
18
|
+
* is 18, P/X AVAX is 9), so a raw `amountOut - amountIn` would be wrong on any
|
|
19
|
+
* route involving C-Chain.
|
|
20
|
+
*
|
|
21
|
+
* Returns:
|
|
22
|
+
* - `null` for non-CCT inputs (the concept does not apply)
|
|
23
|
+
* - `0n` for a CCT input that recovered nothing
|
|
24
|
+
* - a positive `bigint` (target-asset smallest units) otherwise
|
|
25
|
+
*
|
|
26
|
+
* Relies on the CCT invariant that `amountOut === scale(amountIn) + recovered`
|
|
27
|
+
* with nothing netted out (CCT quotes carry no fees). If a CCT fee is ever
|
|
28
|
+
* introduced it will surface in `fees`, and this must account for it.
|
|
29
|
+
*/
|
|
30
|
+
declare function getRecoveredAtomicAmount(quoteOrTransfer: Quote | Transfer): bigint | null;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { getRecoveredAtomicAmount };
|
|
33
|
+
//# sourceMappingURL=get-recovered-atomic-amount.d.cts.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Quote } from "../../types/quote.js";
|
|
2
|
+
import { Transfer } from "../../types/transfer.js";
|
|
3
|
+
|
|
4
|
+
//#region src/transfer-service/avalanche-cct/get-recovered-atomic-amount.d.ts
|
|
5
|
+
/**
|
|
6
|
+
* For an `AVALANCHE_CCT` quote or transfer, returns the portion of `amountOut`
|
|
7
|
+
* that comes from AVAX recovered from a previous incomplete cross-chain transfer,
|
|
8
|
+
* i.e. stuck atomic UTXOs the import leg sweeps in alongside the newly-transferred
|
|
9
|
+
* amount.
|
|
10
|
+
*
|
|
11
|
+
* Accepts a `Quote` (swap screen, from the live quote) or a `Transfer` (status /
|
|
12
|
+
* success screen, from the tracked transfer) since both carry the same amounts
|
|
13
|
+
* and source/target assets.
|
|
14
|
+
*
|
|
15
|
+
* Derived entirely from the input: `amountOut` minus the newly-transferred
|
|
16
|
+
* `amountIn` scaled from the source asset's decimals to the target's. The scaling
|
|
17
|
+
* matters because CCT crosses chains with different native decimals (C-Chain AVAX
|
|
18
|
+
* is 18, P/X AVAX is 9), so a raw `amountOut - amountIn` would be wrong on any
|
|
19
|
+
* route involving C-Chain.
|
|
20
|
+
*
|
|
21
|
+
* Returns:
|
|
22
|
+
* - `null` for non-CCT inputs (the concept does not apply)
|
|
23
|
+
* - `0n` for a CCT input that recovered nothing
|
|
24
|
+
* - a positive `bigint` (target-asset smallest units) otherwise
|
|
25
|
+
*
|
|
26
|
+
* Relies on the CCT invariant that `amountOut === scale(amountIn) + recovered`
|
|
27
|
+
* with nothing netted out (CCT quotes carry no fees). If a CCT fee is ever
|
|
28
|
+
* introduced it will surface in `fees`, and this must account for it.
|
|
29
|
+
*/
|
|
30
|
+
declare function getRecoveredAtomicAmount(quoteOrTransfer: Quote | Transfer): bigint | null;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { getRecoveredAtomicAmount };
|
|
33
|
+
//# sourceMappingURL=get-recovered-atomic-amount.d.ts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{ServiceType as e}from"../../constants.js";import{isNativeAsset as t,isQuote as n}from"../../type-guards.js";import{getOutputAmountForAvalancheCct as r}from"./_utils.js";function i(i){let a=n(i);if((a?i.serviceType:i.type)!==e.AVALANCHE_CCT)return null;let o=a?i.assetIn:i.sourceAsset,s=a?i.assetOut:i.targetAsset;if(!t(o)||!t(s))return null;let c=r({amountIn:i.amountIn,sourceAsset:o,targetAsset:s}),l=i.amountOut-c;return l>0n?l:0n}export{i as getRecoveredAtomicAmount};
|
|
2
|
+
//# sourceMappingURL=get-recovered-atomic-amount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-recovered-atomic-amount.js","names":[],"sources":["../../../src/transfer-service/avalanche-cct/get-recovered-atomic-amount.ts"],"sourcesContent":["import { ServiceType } from '../../constants';\nimport { isNativeAsset, isQuote } from '../../type-guards';\nimport type { Quote } from '../../types/quote';\nimport type { Transfer } from '../../types/transfer';\nimport { getOutputAmountForAvalancheCct } from './_utils';\n\n/**\n * For an `AVALANCHE_CCT` quote or transfer, returns the portion of `amountOut`\n * that comes from AVAX recovered from a previous incomplete cross-chain transfer,\n * i.e. stuck atomic UTXOs the import leg sweeps in alongside the newly-transferred\n * amount.\n *\n * Accepts a `Quote` (swap screen, from the live quote) or a `Transfer` (status /\n * success screen, from the tracked transfer) since both carry the same amounts\n * and source/target assets.\n *\n * Derived entirely from the input: `amountOut` minus the newly-transferred\n * `amountIn` scaled from the source asset's decimals to the target's. The scaling\n * matters because CCT crosses chains with different native decimals (C-Chain AVAX\n * is 18, P/X AVAX is 9), so a raw `amountOut - amountIn` would be wrong on any\n * route involving C-Chain.\n *\n * Returns:\n * - `null` for non-CCT inputs (the concept does not apply)\n * - `0n` for a CCT input that recovered nothing\n * - a positive `bigint` (target-asset smallest units) otherwise\n *\n * Relies on the CCT invariant that `amountOut === scale(amountIn) + recovered`\n * with nothing netted out (CCT quotes carry no fees). If a CCT fee is ever\n * introduced it will surface in `fees`, and this must account for it.\n */\nexport function getRecoveredAtomicAmount(quoteOrTransfer: Quote | Transfer): bigint | null {\n const isQuoteInput = isQuote(quoteOrTransfer);\n const serviceType = isQuoteInput ? quoteOrTransfer.serviceType : quoteOrTransfer.type;\n if (serviceType !== ServiceType.AVALANCHE_CCT) {\n return null;\n }\n\n const sourceAsset = isQuoteInput ? quoteOrTransfer.assetIn : quoteOrTransfer.sourceAsset;\n const targetAsset = isQuoteInput ? quoteOrTransfer.assetOut : quoteOrTransfer.targetAsset;\n\n // CCT only ever moves native AVAX. Bail on anything else (this also narrows\n // `Asset` to `NativeAsset` for the decimal scaler).\n if (!isNativeAsset(sourceAsset) || !isNativeAsset(targetAsset)) {\n return null;\n }\n\n const newlyTransferredOut = getOutputAmountForAvalancheCct({\n amountIn: quoteOrTransfer.amountIn,\n sourceAsset,\n targetAsset,\n });\n\n const recovered = quoteOrTransfer.amountOut - newlyTransferredOut;\n return recovered > 0n ? recovered : 0n;\n}\n"],"mappings":"gLA+BA,SAAgB,EAAyB,EAAkD,CACzF,IAAM,EAAe,EAAQ,EAAgB,CAE7C,IADoB,EAAe,EAAgB,YAAc,EAAgB,QAC7D,EAAY,cAC9B,OAAO,KAGT,IAAM,EAAc,EAAe,EAAgB,QAAU,EAAgB,YACvE,EAAc,EAAe,EAAgB,SAAW,EAAgB,YAI9E,GAAI,CAAC,EAAc,EAAY,EAAI,CAAC,EAAc,EAAY,CAC5D,OAAO,KAGT,IAAM,EAAsB,EAA+B,CACzD,SAAU,EAAgB,SAC1B,cACA,cACD,CAAC,CAEI,EAAY,EAAgB,UAAY,EAC9C,OAAO,EAAY,GAAK,EAAY"}
|
package/dist/type-guards.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`./constants.cjs`),t=t=>typeof t==`string`&&Object.values(e.Environment).some(e=>e===t),n=t=>e.EVM_SERVICE_TYPES.includes(t.type),r=t=>t.type===e.ServiceType.LOMBARD_BTC_TO_BTCB||t.type===e.ServiceType.LOMBARD_BTCB_TO_BTC,i=t=>t.type===e.ServiceType.MARKR,a=t=>typeof t==`object`&&!!t&&`type`in t&&typeof t.type==`string`&&Object.values(e.ServiceType).some(e=>e===t.type),o=t=>t.type===e.TokenType.ERC20,s=t=>t.type===e.TokenType.NATIVE,c=t=>t.type===e.TokenType.SPL;exports.isEnvironment=t,exports.isErc20Asset=o,exports.isEvmBridgeInitializer=n,exports.isLombardServiceInitializer=r,exports.isMarkrServiceInitializer=i,exports.isNativeAsset=s,exports.isServiceInitializer=a,exports.isSplAsset=c;
|
|
1
|
+
const e=require(`./constants.cjs`),t=t=>typeof t==`string`&&Object.values(e.Environment).some(e=>e===t),n=t=>e.EVM_SERVICE_TYPES.includes(t.type),r=t=>t.type===e.ServiceType.LOMBARD_BTC_TO_BTCB||t.type===e.ServiceType.LOMBARD_BTCB_TO_BTC,i=t=>t.type===e.ServiceType.MARKR,a=t=>typeof t==`object`&&!!t&&`type`in t&&typeof t.type==`string`&&Object.values(e.ServiceType).some(e=>e===t.type),o=t=>t.type===e.TokenType.ERC20,s=t=>t.type===e.TokenType.NATIVE,c=t=>t.type===e.TokenType.SPL,l=t=>typeof t==`object`&&!!t&&`serviceType`in t&&typeof t.serviceType==`string`&&Object.values(e.ServiceType).some(e=>e===t.serviceType),u=t=>typeof t==`object`&&!!t&&`status`in t&&`type`in t&&typeof t.type==`string`&&Object.values(e.ServiceType).some(e=>e===t.type);exports.isEnvironment=t,exports.isErc20Asset=o,exports.isEvmBridgeInitializer=n,exports.isLombardServiceInitializer=r,exports.isMarkrServiceInitializer=i,exports.isNativeAsset=s,exports.isQuote=l,exports.isServiceInitializer=a,exports.isSplAsset=c,exports.isTransfer=u;
|
|
2
2
|
//# sourceMappingURL=type-guards.cjs.map
|
package/dist/type-guards.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-guards.cjs","names":["Environment","EVM_SERVICE_TYPES","ServiceType","TokenType"],"sources":["../src/type-guards.ts"],"sourcesContent":["import { Environment, EVM_SERVICE_TYPES, ServiceType, TokenType } from './constants';\nimport type { Asset, Erc20Asset, NativeAsset, SplAsset } from './types/asset';\nimport type {\n EvmServiceInitializer,\n MarkrServiceInitializer,\n ServiceInitializer,\n LombardServiceInitializer,\n} from './types/service';\n\nexport const isEnvironment = (env: unknown): env is Environment => {\n return typeof env === 'string' && Object.values(Environment).some((e) => e === env);\n};\n\nexport const isEvmBridgeInitializer = (initializer: ServiceInitializer): initializer is EvmServiceInitializer => {\n return (EVM_SERVICE_TYPES as readonly ServiceType[]).includes(initializer.type);\n};\n\nexport const isLombardServiceInitializer = (\n initializer: ServiceInitializer,\n): initializer is LombardServiceInitializer => {\n return initializer.type === ServiceType.LOMBARD_BTC_TO_BTCB || initializer.type === ServiceType.LOMBARD_BTCB_TO_BTC;\n};\n\nexport const isMarkrServiceInitializer = (initializer: ServiceInitializer): initializer is MarkrServiceInitializer => {\n return initializer.type === ServiceType.MARKR;\n};\n\nexport const isServiceInitializer = (initializer: unknown): initializer is ServiceInitializer => {\n return (\n typeof initializer === 'object' &&\n initializer !== null &&\n 'type' in initializer &&\n typeof initializer.type === 'string' &&\n Object.values(ServiceType).some((t) => t === initializer.type)\n );\n};\n\nexport const isErc20Asset = (asset: Asset): asset is Erc20Asset => asset.type === TokenType.ERC20;\nexport const isNativeAsset = (asset: Asset): asset is NativeAsset => asset.type === TokenType.NATIVE;\nexport const isSplAsset = (asset: Asset): asset is SplAsset => asset.type === TokenType.SPL;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"type-guards.cjs","names":["Environment","EVM_SERVICE_TYPES","ServiceType","TokenType"],"sources":["../src/type-guards.ts"],"sourcesContent":["import { Environment, EVM_SERVICE_TYPES, ServiceType, TokenType } from './constants';\nimport type { Asset, Erc20Asset, NativeAsset, SplAsset } from './types/asset';\nimport type { Quote } from './types/quote';\nimport type { Transfer } from './types/transfer';\nimport type {\n EvmServiceInitializer,\n MarkrServiceInitializer,\n ServiceInitializer,\n LombardServiceInitializer,\n} from './types/service';\n\nexport const isEnvironment = (env: unknown): env is Environment => {\n return typeof env === 'string' && Object.values(Environment).some((e) => e === env);\n};\n\nexport const isEvmBridgeInitializer = (initializer: ServiceInitializer): initializer is EvmServiceInitializer => {\n return (EVM_SERVICE_TYPES as readonly ServiceType[]).includes(initializer.type);\n};\n\nexport const isLombardServiceInitializer = (\n initializer: ServiceInitializer,\n): initializer is LombardServiceInitializer => {\n return initializer.type === ServiceType.LOMBARD_BTC_TO_BTCB || initializer.type === ServiceType.LOMBARD_BTCB_TO_BTC;\n};\n\nexport const isMarkrServiceInitializer = (initializer: ServiceInitializer): initializer is MarkrServiceInitializer => {\n return initializer.type === ServiceType.MARKR;\n};\n\nexport const isServiceInitializer = (initializer: unknown): initializer is ServiceInitializer => {\n return (\n typeof initializer === 'object' &&\n initializer !== null &&\n 'type' in initializer &&\n typeof initializer.type === 'string' &&\n Object.values(ServiceType).some((t) => t === initializer.type)\n );\n};\n\nexport const isErc20Asset = (asset: Asset): asset is Erc20Asset => asset.type === TokenType.ERC20;\nexport const isNativeAsset = (asset: Asset): asset is NativeAsset => asset.type === TokenType.NATIVE;\nexport const isSplAsset = (asset: Asset): asset is SplAsset => asset.type === TokenType.SPL;\n\n/**\n * Type guard for a `Quote`. A quote carries its service discriminator on\n * `serviceType` (a transfer uses `type`), and the value is a real `ServiceType`.\n */\nexport const isQuote = (value: unknown): value is Quote =>\n typeof value === 'object' &&\n value !== null &&\n 'serviceType' in value &&\n typeof value.serviceType === 'string' &&\n Object.values(ServiceType).some((t) => t === value.serviceType);\n\n/**\n * Type guard for a `Transfer`. A transfer carries a lifecycle `status` and its\n * service discriminator on `type` (a valid `ServiceType`); a quote has neither.\n */\nexport const isTransfer = (value: unknown): value is Transfer =>\n typeof value === 'object' &&\n value !== null &&\n 'status' in value &&\n 'type' in value &&\n typeof value.type === 'string' &&\n Object.values(ServiceType).some((t) => t === value.type);\n"],"mappings":"mCAWa,EAAiB,GACrB,OAAO,GAAQ,UAAY,OAAO,OAAOA,EAAAA,YAAY,CAAC,KAAM,GAAM,IAAM,EAAI,CAGxE,EAA0B,GAC7BC,EAAAA,kBAA6C,SAAS,EAAY,KAAK,CAGpE,EACX,GAEO,EAAY,OAASC,EAAAA,YAAY,qBAAuB,EAAY,OAASA,EAAAA,YAAY,oBAGrF,EAA6B,GACjC,EAAY,OAASA,EAAAA,YAAY,MAG7B,EAAwB,GAEjC,OAAO,GAAgB,YACvB,GACA,SAAU,GACV,OAAO,EAAY,MAAS,UAC5B,OAAO,OAAOA,EAAAA,YAAY,CAAC,KAAM,GAAM,IAAM,EAAY,KAAK,CAIrD,EAAgB,GAAsC,EAAM,OAASC,EAAAA,UAAU,MAC/E,EAAiB,GAAuC,EAAM,OAASA,EAAAA,UAAU,OACjF,EAAc,GAAoC,EAAM,OAASA,EAAAA,UAAU,IAM3E,EAAW,GACtB,OAAO,GAAU,YACjB,GACA,gBAAiB,GACjB,OAAO,EAAM,aAAgB,UAC7B,OAAO,OAAOD,EAAAA,YAAY,CAAC,KAAM,GAAM,IAAM,EAAM,YAAY,CAMpD,EAAc,GACzB,OAAO,GAAU,YACjB,GACA,WAAY,GACZ,SAAU,GACV,OAAO,EAAM,MAAS,UACtB,OAAO,OAAOA,EAAAA,YAAY,CAAC,KAAM,GAAM,IAAM,EAAM,KAAK"}
|
package/dist/type-guards.d.cts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Environment } from "./constants.cjs";
|
|
2
2
|
import { Asset, Erc20Asset, NativeAsset, SplAsset } from "./types/asset.cjs";
|
|
3
|
+
import { Quote } from "./types/quote.cjs";
|
|
4
|
+
import { Transfer } from "./types/transfer.cjs";
|
|
3
5
|
import { EvmServiceInitializer, LombardServiceInitializer, MarkrServiceInitializer, ServiceInitializer } from "./types/service.cjs";
|
|
4
6
|
|
|
5
7
|
//#region src/type-guards.d.ts
|
|
@@ -11,6 +13,16 @@ declare const isServiceInitializer: (initializer: unknown) => initializer is Ser
|
|
|
11
13
|
declare const isErc20Asset: (asset: Asset) => asset is Erc20Asset;
|
|
12
14
|
declare const isNativeAsset: (asset: Asset) => asset is NativeAsset;
|
|
13
15
|
declare const isSplAsset: (asset: Asset) => asset is SplAsset;
|
|
16
|
+
/**
|
|
17
|
+
* Type guard for a `Quote`. A quote carries its service discriminator on
|
|
18
|
+
* `serviceType` (a transfer uses `type`), and the value is a real `ServiceType`.
|
|
19
|
+
*/
|
|
20
|
+
declare const isQuote: (value: unknown) => value is Quote;
|
|
21
|
+
/**
|
|
22
|
+
* Type guard for a `Transfer`. A transfer carries a lifecycle `status` and its
|
|
23
|
+
* service discriminator on `type` (a valid `ServiceType`); a quote has neither.
|
|
24
|
+
*/
|
|
25
|
+
declare const isTransfer: (value: unknown) => value is Transfer;
|
|
14
26
|
//#endregion
|
|
15
|
-
export { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isServiceInitializer, isSplAsset };
|
|
27
|
+
export { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isQuote, isServiceInitializer, isSplAsset, isTransfer };
|
|
16
28
|
//# sourceMappingURL=type-guards.d.cts.map
|
package/dist/type-guards.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Environment } from "./constants.js";
|
|
2
2
|
import { Asset, Erc20Asset, NativeAsset, SplAsset } from "./types/asset.js";
|
|
3
|
+
import { Quote } from "./types/quote.js";
|
|
4
|
+
import { Transfer } from "./types/transfer.js";
|
|
3
5
|
import { EvmServiceInitializer, LombardServiceInitializer, MarkrServiceInitializer, ServiceInitializer } from "./types/service.js";
|
|
4
6
|
|
|
5
7
|
//#region src/type-guards.d.ts
|
|
@@ -11,6 +13,16 @@ declare const isServiceInitializer: (initializer: unknown) => initializer is Ser
|
|
|
11
13
|
declare const isErc20Asset: (asset: Asset) => asset is Erc20Asset;
|
|
12
14
|
declare const isNativeAsset: (asset: Asset) => asset is NativeAsset;
|
|
13
15
|
declare const isSplAsset: (asset: Asset) => asset is SplAsset;
|
|
16
|
+
/**
|
|
17
|
+
* Type guard for a `Quote`. A quote carries its service discriminator on
|
|
18
|
+
* `serviceType` (a transfer uses `type`), and the value is a real `ServiceType`.
|
|
19
|
+
*/
|
|
20
|
+
declare const isQuote: (value: unknown) => value is Quote;
|
|
21
|
+
/**
|
|
22
|
+
* Type guard for a `Transfer`. A transfer carries a lifecycle `status` and its
|
|
23
|
+
* service discriminator on `type` (a valid `ServiceType`); a quote has neither.
|
|
24
|
+
*/
|
|
25
|
+
declare const isTransfer: (value: unknown) => value is Transfer;
|
|
14
26
|
//#endregion
|
|
15
|
-
export { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isServiceInitializer, isSplAsset };
|
|
27
|
+
export { isEnvironment, isErc20Asset, isEvmBridgeInitializer, isLombardServiceInitializer, isMarkrServiceInitializer, isNativeAsset, isQuote, isServiceInitializer, isSplAsset, isTransfer };
|
|
16
28
|
//# sourceMappingURL=type-guards.d.ts.map
|
package/dist/type-guards.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{EVM_SERVICE_TYPES as e,Environment as t,ServiceType as n,TokenType as r}from"./constants.js";const i=e=>typeof e==`string`&&Object.values(t).some(t=>t===e),a=t=>e.includes(t.type),o=e=>e.type===n.LOMBARD_BTC_TO_BTCB||e.type===n.LOMBARD_BTCB_TO_BTC,s=e=>e.type===n.MARKR,c=e=>typeof e==`object`&&!!e&&`type`in e&&typeof e.type==`string`&&Object.values(n).some(t=>t===e.type),l=e=>e.type===r.ERC20,u=e=>e.type===r.NATIVE,d=e=>e.type===r.SPL;export{i as isEnvironment,l as isErc20Asset,a as isEvmBridgeInitializer,o as isLombardServiceInitializer,s as isMarkrServiceInitializer,u as isNativeAsset,c as isServiceInitializer,d as isSplAsset};
|
|
1
|
+
import{EVM_SERVICE_TYPES as e,Environment as t,ServiceType as n,TokenType as r}from"./constants.js";const i=e=>typeof e==`string`&&Object.values(t).some(t=>t===e),a=t=>e.includes(t.type),o=e=>e.type===n.LOMBARD_BTC_TO_BTCB||e.type===n.LOMBARD_BTCB_TO_BTC,s=e=>e.type===n.MARKR,c=e=>typeof e==`object`&&!!e&&`type`in e&&typeof e.type==`string`&&Object.values(n).some(t=>t===e.type),l=e=>e.type===r.ERC20,u=e=>e.type===r.NATIVE,d=e=>e.type===r.SPL,f=e=>typeof e==`object`&&!!e&&`serviceType`in e&&typeof e.serviceType==`string`&&Object.values(n).some(t=>t===e.serviceType),p=e=>typeof e==`object`&&!!e&&`status`in e&&`type`in e&&typeof e.type==`string`&&Object.values(n).some(t=>t===e.type);export{i as isEnvironment,l as isErc20Asset,a as isEvmBridgeInitializer,o as isLombardServiceInitializer,s as isMarkrServiceInitializer,u as isNativeAsset,f as isQuote,c as isServiceInitializer,d as isSplAsset,p as isTransfer};
|
|
2
2
|
//# sourceMappingURL=type-guards.js.map
|
package/dist/type-guards.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-guards.js","names":[],"sources":["../src/type-guards.ts"],"sourcesContent":["import { Environment, EVM_SERVICE_TYPES, ServiceType, TokenType } from './constants';\nimport type { Asset, Erc20Asset, NativeAsset, SplAsset } from './types/asset';\nimport type {\n EvmServiceInitializer,\n MarkrServiceInitializer,\n ServiceInitializer,\n LombardServiceInitializer,\n} from './types/service';\n\nexport const isEnvironment = (env: unknown): env is Environment => {\n return typeof env === 'string' && Object.values(Environment).some((e) => e === env);\n};\n\nexport const isEvmBridgeInitializer = (initializer: ServiceInitializer): initializer is EvmServiceInitializer => {\n return (EVM_SERVICE_TYPES as readonly ServiceType[]).includes(initializer.type);\n};\n\nexport const isLombardServiceInitializer = (\n initializer: ServiceInitializer,\n): initializer is LombardServiceInitializer => {\n return initializer.type === ServiceType.LOMBARD_BTC_TO_BTCB || initializer.type === ServiceType.LOMBARD_BTCB_TO_BTC;\n};\n\nexport const isMarkrServiceInitializer = (initializer: ServiceInitializer): initializer is MarkrServiceInitializer => {\n return initializer.type === ServiceType.MARKR;\n};\n\nexport const isServiceInitializer = (initializer: unknown): initializer is ServiceInitializer => {\n return (\n typeof initializer === 'object' &&\n initializer !== null &&\n 'type' in initializer &&\n typeof initializer.type === 'string' &&\n Object.values(ServiceType).some((t) => t === initializer.type)\n );\n};\n\nexport const isErc20Asset = (asset: Asset): asset is Erc20Asset => asset.type === TokenType.ERC20;\nexport const isNativeAsset = (asset: Asset): asset is NativeAsset => asset.type === TokenType.NATIVE;\nexport const isSplAsset = (asset: Asset): asset is SplAsset => asset.type === TokenType.SPL;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"type-guards.js","names":[],"sources":["../src/type-guards.ts"],"sourcesContent":["import { Environment, EVM_SERVICE_TYPES, ServiceType, TokenType } from './constants';\nimport type { Asset, Erc20Asset, NativeAsset, SplAsset } from './types/asset';\nimport type { Quote } from './types/quote';\nimport type { Transfer } from './types/transfer';\nimport type {\n EvmServiceInitializer,\n MarkrServiceInitializer,\n ServiceInitializer,\n LombardServiceInitializer,\n} from './types/service';\n\nexport const isEnvironment = (env: unknown): env is Environment => {\n return typeof env === 'string' && Object.values(Environment).some((e) => e === env);\n};\n\nexport const isEvmBridgeInitializer = (initializer: ServiceInitializer): initializer is EvmServiceInitializer => {\n return (EVM_SERVICE_TYPES as readonly ServiceType[]).includes(initializer.type);\n};\n\nexport const isLombardServiceInitializer = (\n initializer: ServiceInitializer,\n): initializer is LombardServiceInitializer => {\n return initializer.type === ServiceType.LOMBARD_BTC_TO_BTCB || initializer.type === ServiceType.LOMBARD_BTCB_TO_BTC;\n};\n\nexport const isMarkrServiceInitializer = (initializer: ServiceInitializer): initializer is MarkrServiceInitializer => {\n return initializer.type === ServiceType.MARKR;\n};\n\nexport const isServiceInitializer = (initializer: unknown): initializer is ServiceInitializer => {\n return (\n typeof initializer === 'object' &&\n initializer !== null &&\n 'type' in initializer &&\n typeof initializer.type === 'string' &&\n Object.values(ServiceType).some((t) => t === initializer.type)\n );\n};\n\nexport const isErc20Asset = (asset: Asset): asset is Erc20Asset => asset.type === TokenType.ERC20;\nexport const isNativeAsset = (asset: Asset): asset is NativeAsset => asset.type === TokenType.NATIVE;\nexport const isSplAsset = (asset: Asset): asset is SplAsset => asset.type === TokenType.SPL;\n\n/**\n * Type guard for a `Quote`. A quote carries its service discriminator on\n * `serviceType` (a transfer uses `type`), and the value is a real `ServiceType`.\n */\nexport const isQuote = (value: unknown): value is Quote =>\n typeof value === 'object' &&\n value !== null &&\n 'serviceType' in value &&\n typeof value.serviceType === 'string' &&\n Object.values(ServiceType).some((t) => t === value.serviceType);\n\n/**\n * Type guard for a `Transfer`. A transfer carries a lifecycle `status` and its\n * service discriminator on `type` (a valid `ServiceType`); a quote has neither.\n */\nexport const isTransfer = (value: unknown): value is Transfer =>\n typeof value === 'object' &&\n value !== null &&\n 'status' in value &&\n 'type' in value &&\n typeof value.type === 'string' &&\n Object.values(ServiceType).some((t) => t === value.type);\n"],"mappings":"oGAWA,MAAa,EAAiB,GACrB,OAAO,GAAQ,UAAY,OAAO,OAAO,EAAY,CAAC,KAAM,GAAM,IAAM,EAAI,CAGxE,EAA0B,GAC7B,EAA6C,SAAS,EAAY,KAAK,CAGpE,EACX,GAEO,EAAY,OAAS,EAAY,qBAAuB,EAAY,OAAS,EAAY,oBAGrF,EAA6B,GACjC,EAAY,OAAS,EAAY,MAG7B,EAAwB,GAEjC,OAAO,GAAgB,YACvB,GACA,SAAU,GACV,OAAO,EAAY,MAAS,UAC5B,OAAO,OAAO,EAAY,CAAC,KAAM,GAAM,IAAM,EAAY,KAAK,CAIrD,EAAgB,GAAsC,EAAM,OAAS,EAAU,MAC/E,EAAiB,GAAuC,EAAM,OAAS,EAAU,OACjF,EAAc,GAAoC,EAAM,OAAS,EAAU,IAM3E,EAAW,GACtB,OAAO,GAAU,YACjB,GACA,gBAAiB,GACjB,OAAO,EAAM,aAAgB,UAC7B,OAAO,OAAO,EAAY,CAAC,KAAM,GAAM,IAAM,EAAM,YAAY,CAMpD,EAAc,GACzB,OAAO,GAAU,YACjB,GACA,WAAY,GACZ,SAAU,GACV,OAAO,EAAM,MAAS,UACtB,OAAO,OAAO,EAAY,CAAC,KAAM,GAAM,IAAM,EAAM,KAAK"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../constants.cjs`);let t=require(`zod`);const n=`__type`,r=`bigint`,i=`value`;function a(e){return JSON.stringify(e,(e,t)=>typeof t==`bigint`?{[n]:r,[i]:t.toString()}:t)}function o(e){let t=JSON.parse(e,(e,t)=>t&&typeof t==`object`&&t[n]===r&&typeof t[i]==`string`?BigInt(t[i]):t),a=p.safeParse(t);if(!a.success)throw Error(`Failed to parse transfer: ${a.error.message}`);return a.data}const s=t.z.object({name:t.z.string(),symbol:t.z.string(),decimals:t.z.int().nonnegative(),type:t.z.enum(e.TokenType)}),c=s.extend({type:t.z.literal(e.TokenType.NATIVE)}),l=s.extend({type:t.z.literal(e.TokenType.ERC20),address:t.z.string()}),u=s.extend({type:t.z.literal(e.TokenType.SPL),address:t.z.string()}),d=t.z.discriminatedUnion(`type`,[c,l,u]),f=t.z.object({chainId:t.z.string(),chainName:t.z.string(),networkToken:c,rpcUrl:t.z.string(),utilityAddresses:t.z.object({multicall:t.z.string()}).optional()}),p=t.z.object({amountIn:t.z.bigint().nonnegative(),amountOut:t.z.bigint().nonnegative(),completedAtMs:t.z.int().nonnegative().optional(),environment:t.z.enum(e.Environment),errorCode:t.z.number().optional(),errorReason:t.z.string().optional(),failedAtMs:t.z.int().nonnegative().optional(),fees:t.z.array(t.z.object({type:t.z.enum([`partner`,`protocol`,`gas`,`bridge`,`slippage`,`swap`,`other`,`relay`]),fundingModel:t.z.enum([`included`,`additive`]).default(`included`),name:t.z.string(),amount:t.z.bigint().nonnegative(),chainId:t.z.string(),token:t.z.discriminatedUnion(`type`,[t.z.object({type:t.z.literal(e.TokenType.NATIVE)}),t.z.object({type:t.z.literal(e.TokenType.ERC20),address:t.z.string()}),t.z.object({type:t.z.literal(e.TokenType.SPL),address:t.z.string()})])})),fromAddress:t.z.string(),id:t.z.string(),metadata:t.z.record(t.z.string(),t.z.unknown()).optional(),partnerFeeBps:t.z.int().nonnegative().nullable(),refund:t.z.object({amount:t.z.bigint().nonnegative(),asset:d.nullable(),chainId:t.z.string(),txHash:t.z.string().nullable(),timestampMs:t.z.int().nonnegative()}).optional(),source:t.z.object({confirmationCount:t.z.int().nonnegative(),requiredConfirmationCount:t.z.int().nonnegative(),startedAtMs:t.z.int().nonnegative(),targetStartBlockNumber:t.z.bigint().nonnegative().optional(),txHash:t.z.string()}).optional(),target:t.z.object({confirmationCount:t.z.int().nonnegative(),requiredConfirmationCount:t.z.int().nonnegative(),startedAtMs:t.z.int().nonnegative(),txHash:t.z.string().optional()}).nullable().optional(),sourceAsset:d,sourceChain:f,status:t.z.enum([`created`,`source-pending`,`source-completed`,`target-pending`,`refunded`,`completed`,`failed`]),targetAsset:d,targetChain:f,toAddress:t.z.string(),type:t.z.enum(e.ServiceType)});exports.parseTransfer=o,exports.stringifyTransfer=a;
|
|
1
|
+
require(`../_virtual/_rolldown/runtime.cjs`);const e=require(`../constants.cjs`);let t=require(`zod`);const n=`__type`,r=`bigint`,i=`value`;function a(e){return JSON.stringify(e,(e,t)=>typeof t==`bigint`?{[n]:r,[i]:t.toString()}:t)}function o(e){let t=JSON.parse(e,(e,t)=>t&&typeof t==`object`&&t[n]===r&&typeof t[i]==`string`?BigInt(t[i]):t),a=p.safeParse(t);if(!a.success)throw Error(`Failed to parse transfer: ${a.error.message}`);return a.data}const s=t.z.object({name:t.z.string(),symbol:t.z.string(),decimals:t.z.int().nonnegative(),type:t.z.enum(e.TokenType),logoUri:t.z.string().optional()}),c=s.extend({type:t.z.literal(e.TokenType.NATIVE)}),l=s.extend({type:t.z.literal(e.TokenType.ERC20),address:t.z.string()}),u=s.extend({type:t.z.literal(e.TokenType.SPL),address:t.z.string()}),d=t.z.discriminatedUnion(`type`,[c,l,u]),f=t.z.object({chainId:t.z.string(),chainName:t.z.string(),networkToken:c,rpcUrl:t.z.string(),utilityAddresses:t.z.object({multicall:t.z.string()}).optional()}),p=t.z.object({amountIn:t.z.bigint().nonnegative(),amountOut:t.z.bigint().nonnegative(),completedAtMs:t.z.int().nonnegative().optional(),environment:t.z.enum(e.Environment),errorCode:t.z.number().optional(),errorReason:t.z.string().optional(),failedAtMs:t.z.int().nonnegative().optional(),fees:t.z.array(t.z.object({type:t.z.enum([`partner`,`protocol`,`gas`,`bridge`,`slippage`,`swap`,`other`,`relay`]),fundingModel:t.z.enum([`included`,`additive`]).default(`included`),name:t.z.string(),amount:t.z.bigint().nonnegative(),chainId:t.z.string(),token:t.z.discriminatedUnion(`type`,[t.z.object({type:t.z.literal(e.TokenType.NATIVE)}),t.z.object({type:t.z.literal(e.TokenType.ERC20),address:t.z.string()}),t.z.object({type:t.z.literal(e.TokenType.SPL),address:t.z.string()})])})),fromAddress:t.z.string(),id:t.z.string(),metadata:t.z.record(t.z.string(),t.z.unknown()).optional(),partnerFeeBps:t.z.int().nonnegative().nullable(),refund:t.z.object({amount:t.z.bigint().nonnegative(),asset:d.nullable(),chainId:t.z.string(),txHash:t.z.string().nullable(),timestampMs:t.z.int().nonnegative()}).optional(),source:t.z.object({confirmationCount:t.z.int().nonnegative(),requiredConfirmationCount:t.z.int().nonnegative(),startedAtMs:t.z.int().nonnegative(),targetStartBlockNumber:t.z.bigint().nonnegative().optional(),txHash:t.z.string()}).optional(),target:t.z.object({confirmationCount:t.z.int().nonnegative(),requiredConfirmationCount:t.z.int().nonnegative(),startedAtMs:t.z.int().nonnegative(),txHash:t.z.string().optional()}).nullable().optional(),sourceAsset:d,sourceChain:f,status:t.z.enum([`created`,`source-pending`,`source-completed`,`target-pending`,`refunded`,`completed`,`failed`]),targetAsset:d,targetChain:f,toAddress:t.z.string(),type:t.z.enum(e.ServiceType)});exports.parseTransfer=o,exports.stringifyTransfer=a;
|
|
2
2
|
//# sourceMappingURL=transfer-utils.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer-utils.cjs","names":["z","TokenType","Environment","ServiceType"],"sources":["../../src/utils/transfer-utils.ts"],"sourcesContent":["import { z } from 'zod';\nimport { Environment, ServiceType, TokenType } from '../constants';\nimport type { Transfer } from '../types/transfer';\n\nconst STRINGIFY_TYPE_TAG = '__type';\nconst BIGINT_TYPE = 'bigint';\nconst STRINGIFY_VALUE = 'value';\n\nexport function stringifyTransfer(transfer: Transfer): string {\n return JSON.stringify(transfer, (_key, value) => {\n if (typeof value === 'bigint') {\n return { [STRINGIFY_TYPE_TAG]: BIGINT_TYPE, [STRINGIFY_VALUE]: value.toString() };\n }\n\n return value;\n });\n}\n\nexport function parseTransfer(transferString: string): Transfer {\n const rawJSON = JSON.parse(transferString, (_key, value) => {\n if (\n value &&\n typeof value === 'object' &&\n value[STRINGIFY_TYPE_TAG] === BIGINT_TYPE &&\n typeof value[STRINGIFY_VALUE] === 'string'\n ) {\n return BigInt(value[STRINGIFY_VALUE]);\n }\n\n return value;\n });\n\n const parsed = LooseTransferSchema.safeParse(rawJSON);\n\n if (!parsed.success) {\n throw new Error(`Failed to parse transfer: ${parsed.error.message}`);\n }\n\n return parsed.data as Transfer;\n}\n\nconst AssetBaseSchema = z.object({\n name: z.string(),\n symbol: z.string(),\n decimals: z.int().nonnegative(),\n type: z.enum(TokenType),\n});\n\nconst NativeAssetSchema = AssetBaseSchema.extend({\n type: z.literal(TokenType.NATIVE),\n});\n\nconst LooseErc20AssetSchema = AssetBaseSchema.extend({\n type: z.literal(TokenType.ERC20),\n address: z.string(),\n});\n\nconst LooseSplAssetSchema = AssetBaseSchema.extend({\n type: z.literal(TokenType.SPL),\n address: z.string(),\n});\n\nconst LooseAssetSchema = z.discriminatedUnion('type', [NativeAssetSchema, LooseErc20AssetSchema, LooseSplAssetSchema]);\n\nconst ChainSchema = z.object({\n chainId: z.string(),\n chainName: z.string(),\n networkToken: NativeAssetSchema,\n rpcUrl: z.string(),\n utilityAddresses: z\n .object({\n multicall: z.string(),\n })\n .optional(),\n});\n\nconst LooseTransferSchema = z.object({\n amountIn: z.bigint().nonnegative(),\n amountOut: z.bigint().nonnegative(),\n completedAtMs: z.int().nonnegative().optional(),\n environment: z.enum(Environment),\n errorCode: z.number().optional(),\n errorReason: z.string().optional(),\n failedAtMs: z.int().nonnegative().optional(),\n fees: z.array(\n z.object({\n type: z.enum(['partner', 'protocol', 'gas', 'bridge', 'slippage', 'swap', 'other', 'relay']),\n fundingModel: z.enum(['included', 'additive']).default('included'),\n name: z.string(),\n amount: z.bigint().nonnegative(),\n chainId: z.string(),\n token: z.discriminatedUnion('type', [\n z.object({\n type: z.literal(TokenType.NATIVE),\n }),\n z.object({\n type: z.literal(TokenType.ERC20),\n address: z.string(),\n }),\n z.object({\n type: z.literal(TokenType.SPL),\n address: z.string(),\n }),\n ]),\n }),\n ),\n fromAddress: z.string(),\n id: z.string(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n partnerFeeBps: z.int().nonnegative().nullable(),\n refund: z\n .object({\n amount: z.bigint().nonnegative(),\n asset: LooseAssetSchema.nullable(),\n chainId: z.string(),\n txHash: z.string().nullable(),\n timestampMs: z.int().nonnegative(),\n })\n .optional(),\n source: z\n .object({\n confirmationCount: z.int().nonnegative(),\n requiredConfirmationCount: z.int().nonnegative(),\n startedAtMs: z.int().nonnegative(),\n targetStartBlockNumber: z.bigint().nonnegative().optional(),\n txHash: z.string(),\n })\n .optional(),\n target: z\n .object({\n confirmationCount: z.int().nonnegative(),\n requiredConfirmationCount: z.int().nonnegative(),\n startedAtMs: z.int().nonnegative(),\n txHash: z.string().optional(),\n })\n .nullable()\n .optional(),\n sourceAsset: LooseAssetSchema,\n sourceChain: ChainSchema,\n status: z.enum([\n 'created',\n 'source-pending',\n 'source-completed',\n 'target-pending',\n 'refunded',\n 'completed',\n 'failed',\n ]),\n targetAsset: LooseAssetSchema,\n targetChain: ChainSchema,\n toAddress: z.string(),\n type: z.enum(ServiceType),\n});\n"],"mappings":"sGAIA,MAAM,EAAqB,SACrB,EAAc,SACd,EAAkB,QAExB,SAAgB,EAAkB,EAA4B,CAC5D,OAAO,KAAK,UAAU,GAAW,EAAM,IACjC,OAAO,GAAU,SACZ,EAAG,GAAqB,GAAc,GAAkB,EAAM,UAAU,CAAE,CAG5E,EACP,CAGJ,SAAgB,EAAc,EAAkC,CAC9D,IAAM,EAAU,KAAK,MAAM,GAAiB,EAAM,IAE9C,GACA,OAAO,GAAU,UACjB,EAAM,KAAwB,GAC9B,OAAO,EAAM,IAAqB,SAE3B,OAAO,EAAM,GAAiB,CAGhC,EACP,CAEI,EAAS,EAAoB,UAAU,EAAQ,CAErD,GAAI,CAAC,EAAO,QACV,MAAU,MAAM,6BAA6B,EAAO,MAAM,UAAU,CAGtE,OAAO,EAAO,KAGhB,MAAM,EAAkBA,EAAAA,EAAE,OAAO,CAC/B,KAAMA,EAAAA,EAAE,QAAQ,CAChB,OAAQA,EAAAA,EAAE,QAAQ,CAClB,SAAUA,EAAAA,EAAE,KAAK,CAAC,aAAa,CAC/B,KAAMA,EAAAA,EAAE,KAAKC,EAAAA,UAAU,
|
|
1
|
+
{"version":3,"file":"transfer-utils.cjs","names":["z","TokenType","Environment","ServiceType"],"sources":["../../src/utils/transfer-utils.ts"],"sourcesContent":["import { z } from 'zod';\nimport { Environment, ServiceType, TokenType } from '../constants';\nimport type { Transfer } from '../types/transfer';\n\nconst STRINGIFY_TYPE_TAG = '__type';\nconst BIGINT_TYPE = 'bigint';\nconst STRINGIFY_VALUE = 'value';\n\nexport function stringifyTransfer(transfer: Transfer): string {\n return JSON.stringify(transfer, (_key, value) => {\n if (typeof value === 'bigint') {\n return { [STRINGIFY_TYPE_TAG]: BIGINT_TYPE, [STRINGIFY_VALUE]: value.toString() };\n }\n\n return value;\n });\n}\n\nexport function parseTransfer(transferString: string): Transfer {\n const rawJSON = JSON.parse(transferString, (_key, value) => {\n if (\n value &&\n typeof value === 'object' &&\n value[STRINGIFY_TYPE_TAG] === BIGINT_TYPE &&\n typeof value[STRINGIFY_VALUE] === 'string'\n ) {\n return BigInt(value[STRINGIFY_VALUE]);\n }\n\n return value;\n });\n\n const parsed = LooseTransferSchema.safeParse(rawJSON);\n\n if (!parsed.success) {\n throw new Error(`Failed to parse transfer: ${parsed.error.message}`);\n }\n\n return parsed.data as Transfer;\n}\n\nconst AssetBaseSchema = z.object({\n name: z.string(),\n symbol: z.string(),\n decimals: z.int().nonnegative(),\n type: z.enum(TokenType),\n logoUri: z.string().optional(),\n});\n\nconst NativeAssetSchema = AssetBaseSchema.extend({\n type: z.literal(TokenType.NATIVE),\n});\n\nconst LooseErc20AssetSchema = AssetBaseSchema.extend({\n type: z.literal(TokenType.ERC20),\n address: z.string(),\n});\n\nconst LooseSplAssetSchema = AssetBaseSchema.extend({\n type: z.literal(TokenType.SPL),\n address: z.string(),\n});\n\nconst LooseAssetSchema = z.discriminatedUnion('type', [NativeAssetSchema, LooseErc20AssetSchema, LooseSplAssetSchema]);\n\nconst ChainSchema = z.object({\n chainId: z.string(),\n chainName: z.string(),\n networkToken: NativeAssetSchema,\n rpcUrl: z.string(),\n utilityAddresses: z\n .object({\n multicall: z.string(),\n })\n .optional(),\n});\n\nconst LooseTransferSchema = z.object({\n amountIn: z.bigint().nonnegative(),\n amountOut: z.bigint().nonnegative(),\n completedAtMs: z.int().nonnegative().optional(),\n environment: z.enum(Environment),\n errorCode: z.number().optional(),\n errorReason: z.string().optional(),\n failedAtMs: z.int().nonnegative().optional(),\n fees: z.array(\n z.object({\n type: z.enum(['partner', 'protocol', 'gas', 'bridge', 'slippage', 'swap', 'other', 'relay']),\n fundingModel: z.enum(['included', 'additive']).default('included'),\n name: z.string(),\n amount: z.bigint().nonnegative(),\n chainId: z.string(),\n token: z.discriminatedUnion('type', [\n z.object({\n type: z.literal(TokenType.NATIVE),\n }),\n z.object({\n type: z.literal(TokenType.ERC20),\n address: z.string(),\n }),\n z.object({\n type: z.literal(TokenType.SPL),\n address: z.string(),\n }),\n ]),\n }),\n ),\n fromAddress: z.string(),\n id: z.string(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n partnerFeeBps: z.int().nonnegative().nullable(),\n refund: z\n .object({\n amount: z.bigint().nonnegative(),\n asset: LooseAssetSchema.nullable(),\n chainId: z.string(),\n txHash: z.string().nullable(),\n timestampMs: z.int().nonnegative(),\n })\n .optional(),\n source: z\n .object({\n confirmationCount: z.int().nonnegative(),\n requiredConfirmationCount: z.int().nonnegative(),\n startedAtMs: z.int().nonnegative(),\n targetStartBlockNumber: z.bigint().nonnegative().optional(),\n txHash: z.string(),\n })\n .optional(),\n target: z\n .object({\n confirmationCount: z.int().nonnegative(),\n requiredConfirmationCount: z.int().nonnegative(),\n startedAtMs: z.int().nonnegative(),\n txHash: z.string().optional(),\n })\n .nullable()\n .optional(),\n sourceAsset: LooseAssetSchema,\n sourceChain: ChainSchema,\n status: z.enum([\n 'created',\n 'source-pending',\n 'source-completed',\n 'target-pending',\n 'refunded',\n 'completed',\n 'failed',\n ]),\n targetAsset: LooseAssetSchema,\n targetChain: ChainSchema,\n toAddress: z.string(),\n type: z.enum(ServiceType),\n});\n"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Environment as e,ServiceType as t,TokenType as n}from"../constants.js";import{z as r}from"zod";const i=`__type`,a=`bigint`,o=`value`;function s(e){return JSON.stringify(e,(e,t)=>typeof t==`bigint`?{[i]:a,[o]:t.toString()}:t)}function c(e){let t=JSON.parse(e,(e,t)=>t&&typeof t==`object`&&t[i]===a&&typeof t[o]==`string`?BigInt(t[o]):t),n=h.safeParse(t);if(!n.success)throw Error(`Failed to parse transfer: ${n.error.message}`);return n.data}const l=r.object({name:r.string(),symbol:r.string(),decimals:r.int().nonnegative(),type:r.enum(n)}),u=l.extend({type:r.literal(n.NATIVE)}),d=l.extend({type:r.literal(n.ERC20),address:r.string()}),f=l.extend({type:r.literal(n.SPL),address:r.string()}),p=r.discriminatedUnion(`type`,[u,d,f]),m=r.object({chainId:r.string(),chainName:r.string(),networkToken:u,rpcUrl:r.string(),utilityAddresses:r.object({multicall:r.string()}).optional()}),h=r.object({amountIn:r.bigint().nonnegative(),amountOut:r.bigint().nonnegative(),completedAtMs:r.int().nonnegative().optional(),environment:r.enum(e),errorCode:r.number().optional(),errorReason:r.string().optional(),failedAtMs:r.int().nonnegative().optional(),fees:r.array(r.object({type:r.enum([`partner`,`protocol`,`gas`,`bridge`,`slippage`,`swap`,`other`,`relay`]),fundingModel:r.enum([`included`,`additive`]).default(`included`),name:r.string(),amount:r.bigint().nonnegative(),chainId:r.string(),token:r.discriminatedUnion(`type`,[r.object({type:r.literal(n.NATIVE)}),r.object({type:r.literal(n.ERC20),address:r.string()}),r.object({type:r.literal(n.SPL),address:r.string()})])})),fromAddress:r.string(),id:r.string(),metadata:r.record(r.string(),r.unknown()).optional(),partnerFeeBps:r.int().nonnegative().nullable(),refund:r.object({amount:r.bigint().nonnegative(),asset:p.nullable(),chainId:r.string(),txHash:r.string().nullable(),timestampMs:r.int().nonnegative()}).optional(),source:r.object({confirmationCount:r.int().nonnegative(),requiredConfirmationCount:r.int().nonnegative(),startedAtMs:r.int().nonnegative(),targetStartBlockNumber:r.bigint().nonnegative().optional(),txHash:r.string()}).optional(),target:r.object({confirmationCount:r.int().nonnegative(),requiredConfirmationCount:r.int().nonnegative(),startedAtMs:r.int().nonnegative(),txHash:r.string().optional()}).nullable().optional(),sourceAsset:p,sourceChain:m,status:r.enum([`created`,`source-pending`,`source-completed`,`target-pending`,`refunded`,`completed`,`failed`]),targetAsset:p,targetChain:m,toAddress:r.string(),type:r.enum(t)});export{c as parseTransfer,s as stringifyTransfer};
|
|
1
|
+
import{Environment as e,ServiceType as t,TokenType as n}from"../constants.js";import{z as r}from"zod";const i=`__type`,a=`bigint`,o=`value`;function s(e){return JSON.stringify(e,(e,t)=>typeof t==`bigint`?{[i]:a,[o]:t.toString()}:t)}function c(e){let t=JSON.parse(e,(e,t)=>t&&typeof t==`object`&&t[i]===a&&typeof t[o]==`string`?BigInt(t[o]):t),n=h.safeParse(t);if(!n.success)throw Error(`Failed to parse transfer: ${n.error.message}`);return n.data}const l=r.object({name:r.string(),symbol:r.string(),decimals:r.int().nonnegative(),type:r.enum(n),logoUri:r.string().optional()}),u=l.extend({type:r.literal(n.NATIVE)}),d=l.extend({type:r.literal(n.ERC20),address:r.string()}),f=l.extend({type:r.literal(n.SPL),address:r.string()}),p=r.discriminatedUnion(`type`,[u,d,f]),m=r.object({chainId:r.string(),chainName:r.string(),networkToken:u,rpcUrl:r.string(),utilityAddresses:r.object({multicall:r.string()}).optional()}),h=r.object({amountIn:r.bigint().nonnegative(),amountOut:r.bigint().nonnegative(),completedAtMs:r.int().nonnegative().optional(),environment:r.enum(e),errorCode:r.number().optional(),errorReason:r.string().optional(),failedAtMs:r.int().nonnegative().optional(),fees:r.array(r.object({type:r.enum([`partner`,`protocol`,`gas`,`bridge`,`slippage`,`swap`,`other`,`relay`]),fundingModel:r.enum([`included`,`additive`]).default(`included`),name:r.string(),amount:r.bigint().nonnegative(),chainId:r.string(),token:r.discriminatedUnion(`type`,[r.object({type:r.literal(n.NATIVE)}),r.object({type:r.literal(n.ERC20),address:r.string()}),r.object({type:r.literal(n.SPL),address:r.string()})])})),fromAddress:r.string(),id:r.string(),metadata:r.record(r.string(),r.unknown()).optional(),partnerFeeBps:r.int().nonnegative().nullable(),refund:r.object({amount:r.bigint().nonnegative(),asset:p.nullable(),chainId:r.string(),txHash:r.string().nullable(),timestampMs:r.int().nonnegative()}).optional(),source:r.object({confirmationCount:r.int().nonnegative(),requiredConfirmationCount:r.int().nonnegative(),startedAtMs:r.int().nonnegative(),targetStartBlockNumber:r.bigint().nonnegative().optional(),txHash:r.string()}).optional(),target:r.object({confirmationCount:r.int().nonnegative(),requiredConfirmationCount:r.int().nonnegative(),startedAtMs:r.int().nonnegative(),txHash:r.string().optional()}).nullable().optional(),sourceAsset:p,sourceChain:m,status:r.enum([`created`,`source-pending`,`source-completed`,`target-pending`,`refunded`,`completed`,`failed`]),targetAsset:p,targetChain:m,toAddress:r.string(),type:r.enum(t)});export{c as parseTransfer,s as stringifyTransfer};
|
|
2
2
|
//# sourceMappingURL=transfer-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer-utils.js","names":[],"sources":["../../src/utils/transfer-utils.ts"],"sourcesContent":["import { z } from 'zod';\nimport { Environment, ServiceType, TokenType } from '../constants';\nimport type { Transfer } from '../types/transfer';\n\nconst STRINGIFY_TYPE_TAG = '__type';\nconst BIGINT_TYPE = 'bigint';\nconst STRINGIFY_VALUE = 'value';\n\nexport function stringifyTransfer(transfer: Transfer): string {\n return JSON.stringify(transfer, (_key, value) => {\n if (typeof value === 'bigint') {\n return { [STRINGIFY_TYPE_TAG]: BIGINT_TYPE, [STRINGIFY_VALUE]: value.toString() };\n }\n\n return value;\n });\n}\n\nexport function parseTransfer(transferString: string): Transfer {\n const rawJSON = JSON.parse(transferString, (_key, value) => {\n if (\n value &&\n typeof value === 'object' &&\n value[STRINGIFY_TYPE_TAG] === BIGINT_TYPE &&\n typeof value[STRINGIFY_VALUE] === 'string'\n ) {\n return BigInt(value[STRINGIFY_VALUE]);\n }\n\n return value;\n });\n\n const parsed = LooseTransferSchema.safeParse(rawJSON);\n\n if (!parsed.success) {\n throw new Error(`Failed to parse transfer: ${parsed.error.message}`);\n }\n\n return parsed.data as Transfer;\n}\n\nconst AssetBaseSchema = z.object({\n name: z.string(),\n symbol: z.string(),\n decimals: z.int().nonnegative(),\n type: z.enum(TokenType),\n});\n\nconst NativeAssetSchema = AssetBaseSchema.extend({\n type: z.literal(TokenType.NATIVE),\n});\n\nconst LooseErc20AssetSchema = AssetBaseSchema.extend({\n type: z.literal(TokenType.ERC20),\n address: z.string(),\n});\n\nconst LooseSplAssetSchema = AssetBaseSchema.extend({\n type: z.literal(TokenType.SPL),\n address: z.string(),\n});\n\nconst LooseAssetSchema = z.discriminatedUnion('type', [NativeAssetSchema, LooseErc20AssetSchema, LooseSplAssetSchema]);\n\nconst ChainSchema = z.object({\n chainId: z.string(),\n chainName: z.string(),\n networkToken: NativeAssetSchema,\n rpcUrl: z.string(),\n utilityAddresses: z\n .object({\n multicall: z.string(),\n })\n .optional(),\n});\n\nconst LooseTransferSchema = z.object({\n amountIn: z.bigint().nonnegative(),\n amountOut: z.bigint().nonnegative(),\n completedAtMs: z.int().nonnegative().optional(),\n environment: z.enum(Environment),\n errorCode: z.number().optional(),\n errorReason: z.string().optional(),\n failedAtMs: z.int().nonnegative().optional(),\n fees: z.array(\n z.object({\n type: z.enum(['partner', 'protocol', 'gas', 'bridge', 'slippage', 'swap', 'other', 'relay']),\n fundingModel: z.enum(['included', 'additive']).default('included'),\n name: z.string(),\n amount: z.bigint().nonnegative(),\n chainId: z.string(),\n token: z.discriminatedUnion('type', [\n z.object({\n type: z.literal(TokenType.NATIVE),\n }),\n z.object({\n type: z.literal(TokenType.ERC20),\n address: z.string(),\n }),\n z.object({\n type: z.literal(TokenType.SPL),\n address: z.string(),\n }),\n ]),\n }),\n ),\n fromAddress: z.string(),\n id: z.string(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n partnerFeeBps: z.int().nonnegative().nullable(),\n refund: z\n .object({\n amount: z.bigint().nonnegative(),\n asset: LooseAssetSchema.nullable(),\n chainId: z.string(),\n txHash: z.string().nullable(),\n timestampMs: z.int().nonnegative(),\n })\n .optional(),\n source: z\n .object({\n confirmationCount: z.int().nonnegative(),\n requiredConfirmationCount: z.int().nonnegative(),\n startedAtMs: z.int().nonnegative(),\n targetStartBlockNumber: z.bigint().nonnegative().optional(),\n txHash: z.string(),\n })\n .optional(),\n target: z\n .object({\n confirmationCount: z.int().nonnegative(),\n requiredConfirmationCount: z.int().nonnegative(),\n startedAtMs: z.int().nonnegative(),\n txHash: z.string().optional(),\n })\n .nullable()\n .optional(),\n sourceAsset: LooseAssetSchema,\n sourceChain: ChainSchema,\n status: z.enum([\n 'created',\n 'source-pending',\n 'source-completed',\n 'target-pending',\n 'refunded',\n 'completed',\n 'failed',\n ]),\n targetAsset: LooseAssetSchema,\n targetChain: ChainSchema,\n toAddress: z.string(),\n type: z.enum(ServiceType),\n});\n"],"mappings":"sGAIA,MAAM,EAAqB,SACrB,EAAc,SACd,EAAkB,QAExB,SAAgB,EAAkB,EAA4B,CAC5D,OAAO,KAAK,UAAU,GAAW,EAAM,IACjC,OAAO,GAAU,SACZ,EAAG,GAAqB,GAAc,GAAkB,EAAM,UAAU,CAAE,CAG5E,EACP,CAGJ,SAAgB,EAAc,EAAkC,CAC9D,IAAM,EAAU,KAAK,MAAM,GAAiB,EAAM,IAE9C,GACA,OAAO,GAAU,UACjB,EAAM,KAAwB,GAC9B,OAAO,EAAM,IAAqB,SAE3B,OAAO,EAAM,GAAiB,CAGhC,EACP,CAEI,EAAS,EAAoB,UAAU,EAAQ,CAErD,GAAI,CAAC,EAAO,QACV,MAAU,MAAM,6BAA6B,EAAO,MAAM,UAAU,CAGtE,OAAO,EAAO,KAGhB,MAAM,EAAkB,EAAE,OAAO,CAC/B,KAAM,EAAE,QAAQ,CAChB,OAAQ,EAAE,QAAQ,CAClB,SAAU,EAAE,KAAK,CAAC,aAAa,CAC/B,KAAM,EAAE,KAAK,EAAU,
|
|
1
|
+
{"version":3,"file":"transfer-utils.js","names":[],"sources":["../../src/utils/transfer-utils.ts"],"sourcesContent":["import { z } from 'zod';\nimport { Environment, ServiceType, TokenType } from '../constants';\nimport type { Transfer } from '../types/transfer';\n\nconst STRINGIFY_TYPE_TAG = '__type';\nconst BIGINT_TYPE = 'bigint';\nconst STRINGIFY_VALUE = 'value';\n\nexport function stringifyTransfer(transfer: Transfer): string {\n return JSON.stringify(transfer, (_key, value) => {\n if (typeof value === 'bigint') {\n return { [STRINGIFY_TYPE_TAG]: BIGINT_TYPE, [STRINGIFY_VALUE]: value.toString() };\n }\n\n return value;\n });\n}\n\nexport function parseTransfer(transferString: string): Transfer {\n const rawJSON = JSON.parse(transferString, (_key, value) => {\n if (\n value &&\n typeof value === 'object' &&\n value[STRINGIFY_TYPE_TAG] === BIGINT_TYPE &&\n typeof value[STRINGIFY_VALUE] === 'string'\n ) {\n return BigInt(value[STRINGIFY_VALUE]);\n }\n\n return value;\n });\n\n const parsed = LooseTransferSchema.safeParse(rawJSON);\n\n if (!parsed.success) {\n throw new Error(`Failed to parse transfer: ${parsed.error.message}`);\n }\n\n return parsed.data as Transfer;\n}\n\nconst AssetBaseSchema = z.object({\n name: z.string(),\n symbol: z.string(),\n decimals: z.int().nonnegative(),\n type: z.enum(TokenType),\n logoUri: z.string().optional(),\n});\n\nconst NativeAssetSchema = AssetBaseSchema.extend({\n type: z.literal(TokenType.NATIVE),\n});\n\nconst LooseErc20AssetSchema = AssetBaseSchema.extend({\n type: z.literal(TokenType.ERC20),\n address: z.string(),\n});\n\nconst LooseSplAssetSchema = AssetBaseSchema.extend({\n type: z.literal(TokenType.SPL),\n address: z.string(),\n});\n\nconst LooseAssetSchema = z.discriminatedUnion('type', [NativeAssetSchema, LooseErc20AssetSchema, LooseSplAssetSchema]);\n\nconst ChainSchema = z.object({\n chainId: z.string(),\n chainName: z.string(),\n networkToken: NativeAssetSchema,\n rpcUrl: z.string(),\n utilityAddresses: z\n .object({\n multicall: z.string(),\n })\n .optional(),\n});\n\nconst LooseTransferSchema = z.object({\n amountIn: z.bigint().nonnegative(),\n amountOut: z.bigint().nonnegative(),\n completedAtMs: z.int().nonnegative().optional(),\n environment: z.enum(Environment),\n errorCode: z.number().optional(),\n errorReason: z.string().optional(),\n failedAtMs: z.int().nonnegative().optional(),\n fees: z.array(\n z.object({\n type: z.enum(['partner', 'protocol', 'gas', 'bridge', 'slippage', 'swap', 'other', 'relay']),\n fundingModel: z.enum(['included', 'additive']).default('included'),\n name: z.string(),\n amount: z.bigint().nonnegative(),\n chainId: z.string(),\n token: z.discriminatedUnion('type', [\n z.object({\n type: z.literal(TokenType.NATIVE),\n }),\n z.object({\n type: z.literal(TokenType.ERC20),\n address: z.string(),\n }),\n z.object({\n type: z.literal(TokenType.SPL),\n address: z.string(),\n }),\n ]),\n }),\n ),\n fromAddress: z.string(),\n id: z.string(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n partnerFeeBps: z.int().nonnegative().nullable(),\n refund: z\n .object({\n amount: z.bigint().nonnegative(),\n asset: LooseAssetSchema.nullable(),\n chainId: z.string(),\n txHash: z.string().nullable(),\n timestampMs: z.int().nonnegative(),\n })\n .optional(),\n source: z\n .object({\n confirmationCount: z.int().nonnegative(),\n requiredConfirmationCount: z.int().nonnegative(),\n startedAtMs: z.int().nonnegative(),\n targetStartBlockNumber: z.bigint().nonnegative().optional(),\n txHash: z.string(),\n })\n .optional(),\n target: z\n .object({\n confirmationCount: z.int().nonnegative(),\n requiredConfirmationCount: z.int().nonnegative(),\n startedAtMs: z.int().nonnegative(),\n txHash: z.string().optional(),\n })\n .nullable()\n .optional(),\n sourceAsset: LooseAssetSchema,\n sourceChain: ChainSchema,\n status: z.enum([\n 'created',\n 'source-pending',\n 'source-completed',\n 'target-pending',\n 'refunded',\n 'completed',\n 'failed',\n ]),\n targetAsset: LooseAssetSchema,\n targetChain: ChainSchema,\n toAddress: z.string(),\n type: z.enum(ServiceType),\n});\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@avalabs/fusion-sdk",
|
|
3
3
|
"license": "Limited Ecosystem License",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.27.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/mod.cjs",
|
|
7
7
|
"module": "./dist/mod.js",
|
|
@@ -49,8 +49,8 @@
|
|
|
49
49
|
"vitest": "4.0.6",
|
|
50
50
|
"tsdown": "0.21.4",
|
|
51
51
|
"zod": "4.1.12",
|
|
52
|
-
"
|
|
53
|
-
"
|
|
52
|
+
"@internal/tsdown-config": "0.0.1",
|
|
53
|
+
"eslint-config-custom": "0.1.0"
|
|
54
54
|
},
|
|
55
55
|
"sideEffects": false,
|
|
56
56
|
"scripts": {
|