@shogun-sdk/intents-sdk 1.2.31 → 1.4.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/README.md +76 -25
- package/dist/index.cjs +8997 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +1654 -0
- package/dist/index.d.ts +1654 -0
- package/dist/index.js +9246 -0
- package/dist/index.js.map +1 -0
- package/package.json +44 -30
- package/src/auth/siwe.ts +8 -3
- package/src/chains.ts +6 -0
- package/src/constants.ts +71 -15
- package/src/core/evm/chain-provider.ts +4 -1
- package/src/core/evm/connectors/monad.ts +27 -0
- package/src/core/evm/cross-chain-limit-order.ts +14 -14
- package/src/core/evm/intent-helpers.ts +162 -21
- package/src/core/evm/intent-provider.ts +5 -4
- package/src/core/evm/permit2.ts +36 -0
- package/src/core/evm/single-chain-dca-order.ts +18 -18
- package/src/core/evm/single-chain-limit-order.ts +15 -15
- package/src/core/evm/types.ts +4 -4
- package/src/core/evm/validator.ts +1 -1
- package/src/core/orders/api/fetch.ts +33 -16
- package/src/core/orders/api/index.ts +39 -8
- package/src/core/orders/common.ts +2 -0
- package/src/core/orders/cross-chain.ts +15 -18
- package/src/core/orders/single-chain.ts +30 -13
- package/src/core/sdk.ts +11 -0
- package/src/core/solana/cancel-order.ts +4 -2
- package/src/core/solana/client.ts +1 -1
- package/src/core/solana/dca/cancel-order.ts +2 -1
- package/src/core/solana/dca/single-chain-dca-order.ts +19 -22
- package/src/core/solana/dca/single-chain-limit-order.ts +20 -22
- package/src/core/solana/generated/cross-chain/accounts/dcaOrder.ts +2 -2
- package/src/core/solana/generated/cross-chain/accounts/guard.ts +22 -10
- package/src/core/solana/generated/cross-chain/errors/sourceChainGuard.ts +37 -33
- package/src/core/solana/generated/cross-chain/instructions/cancelDcaOrder.ts +36 -22
- package/src/core/solana/generated/cross-chain/instructions/cancelOrder.ts +32 -18
- package/src/core/solana/generated/cross-chain/instructions/claimTokensForDcaInterval.ts +396 -0
- package/src/core/solana/generated/cross-chain/instructions/index.ts +5 -0
- package/src/core/solana/generated/cross-chain/instructions/preStartDcaOrderExecution.ts +504 -0
- package/src/core/solana/generated/cross-chain/instructions/setCancelAuthorities.ts +326 -0
- package/src/core/solana/generated/cross-chain/instructions/startDcaOrderExecution.ts +440 -0
- package/src/core/solana/generated/cross-chain/instructions/startDcaOrderExecutionAfterSwap.ts +322 -0
- package/src/core/solana/generated/cross-chain/programs/sourceChainGuard.ts +80 -0
- package/src/core/solana/generated/cross-chain/types/cancelAuthoritiesUpdated.ts +40 -0
- package/src/core/solana/generated/cross-chain/types/index.ts +1 -0
- package/src/core/solana/generated/single-chain/accounts/guard.ts +22 -10
- package/src/core/solana/generated/single-chain/errors/singleChainGuard.ts +24 -20
- package/src/core/solana/generated/single-chain/instructions/cancelDcaOrder.ts +28 -14
- package/src/core/solana/generated/single-chain/instructions/cancelLimitOrder.ts +28 -14
- package/src/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.ts +30 -4
- package/src/core/solana/generated/single-chain/instructions/fulfillLimitOrder.ts +30 -4
- package/src/core/solana/generated/single-chain/instructions/index.ts +1 -0
- package/src/core/solana/generated/single-chain/instructions/setCancelAuthorities.ts +326 -0
- package/src/core/solana/generated/single-chain/programs/singleChainGuard.ts +17 -1
- package/src/core/solana/generated/single-chain/types/cancelAuthoritiesUpdated.ts +40 -0
- package/src/core/solana/generated/single-chain/types/index.ts +1 -0
- package/src/core/solana/intent-helpers.ts +38 -27
- package/src/core/solana/sdk.ts +1 -1
- package/src/core/solana/utils.ts +10 -1
- package/src/core/sui/cross-chain-limit-order.ts +1 -29
- package/src/core/sui/intent-helpers.ts +39 -41
- package/src/core/sui/order-transaction.ts +1 -1
- package/src/core/sui/single-chain-dca-order.ts +19 -32
- package/src/core/sui/single-chain-limit-order.ts +19 -34
- package/src/index.ts +22 -9
- package/src/types/api.ts +22 -2
- package/src/types/intent.ts +42 -5
- package/src/types/token-list.ts +35 -0
- package/src/utils/base-validator.ts +0 -4
- package/src/utils/defillama.ts +2 -0
- package/src/utils/generate-execution-details-hash.ts +13 -0
- package/src/utils/quote/address.ts +4 -0
- package/src/utils/quote/aggregator.ts +326 -76
- package/src/utils/quote/liquidswap.ts +42 -13
- package/src/utils/quote/paraswap.ts +2 -0
- package/src/utils/quote/pricing/constants.ts +33 -0
- package/src/utils/quote/pricing/decimals.ts +11 -0
- package/src/utils/quote/pricing/estimate-amount-out.ts +36 -0
- package/src/utils/quote/pricing/expenses.ts +62 -0
- package/src/utils/quote/pricing/gas.ts +28 -0
- package/src/utils/quote/pumpfun/estimations.ts +206 -0
- package/src/utils/quote/pumpfun/estimations_amm.ts +165 -0
- package/src/utils/quote/pumpfun/index.ts +266 -0
- package/src/utils/quote/pumpfun/models.ts +163 -0
- package/src/utils/quote/pumpfun/utils.ts +343 -0
- package/src/utils/quote/raydium.ts +506 -0
- package/src/utils/quote/relay.ts +99 -0
- package/src/utils/quote/stablecoins-tokens.ts +35 -8
- package/src/utils/quote/utils.ts +8 -0
- package/src/utils/tokens/index.ts +38 -0
- package/dist/esm/auth/siwe.js +0 -26
- package/dist/esm/auth/siwe.js.map +0 -1
- package/dist/esm/chains.js +0 -62
- package/dist/esm/chains.js.map +0 -1
- package/dist/esm/config.js +0 -2
- package/dist/esm/config.js.map +0 -1
- package/dist/esm/constants.js +0 -106
- package/dist/esm/constants.js.map +0 -1
- package/dist/esm/core/evm/abi/erc20.js +0 -313
- package/dist/esm/core/evm/abi/erc20.js.map +0 -1
- package/dist/esm/core/evm/abi/permit2.js +0 -395
- package/dist/esm/core/evm/abi/permit2.js.map +0 -1
- package/dist/esm/core/evm/abi/single-chain-guard-limit.js +0 -768
- package/dist/esm/core/evm/abi/single-chain-guard-limit.js.map +0 -1
- package/dist/esm/core/evm/abi/source-chain-guard.js +0 -1121
- package/dist/esm/core/evm/abi/source-chain-guard.js.map +0 -1
- package/dist/esm/core/evm/cancel-order.js +0 -130
- package/dist/esm/core/evm/cancel-order.js.map +0 -1
- package/dist/esm/core/evm/chain-provider.js +0 -118
- package/dist/esm/core/evm/chain-provider.js.map +0 -1
- package/dist/esm/core/evm/connectors/hyperevm.js +0 -23
- package/dist/esm/core/evm/connectors/hyperevm.js.map +0 -1
- package/dist/esm/core/evm/cross-chain-limit-order.js +0 -43
- package/dist/esm/core/evm/cross-chain-limit-order.js.map +0 -1
- package/dist/esm/core/evm/intent-helpers.js +0 -130
- package/dist/esm/core/evm/intent-helpers.js.map +0 -1
- package/dist/esm/core/evm/intent-provider.js +0 -162
- package/dist/esm/core/evm/intent-provider.js.map +0 -1
- package/dist/esm/core/evm/order-signature.js +0 -41
- package/dist/esm/core/evm/order-signature.js.map +0 -1
- package/dist/esm/core/evm/permit2.js +0 -82
- package/dist/esm/core/evm/permit2.js.map +0 -1
- package/dist/esm/core/evm/sdk.js +0 -175
- package/dist/esm/core/evm/sdk.js.map +0 -1
- package/dist/esm/core/evm/single-chain-dca-order.js +0 -49
- package/dist/esm/core/evm/single-chain-dca-order.js.map +0 -1
- package/dist/esm/core/evm/single-chain-limit-order.js +0 -45
- package/dist/esm/core/evm/single-chain-limit-order.js.map +0 -1
- package/dist/esm/core/evm/types.js +0 -8
- package/dist/esm/core/evm/types.js.map +0 -1
- package/dist/esm/core/evm/validator.js +0 -111
- package/dist/esm/core/evm/validator.js.map +0 -1
- package/dist/esm/core/orders/api/fetch.js +0 -17
- package/dist/esm/core/orders/api/fetch.js.map +0 -1
- package/dist/esm/core/orders/api/index.js +0 -31
- package/dist/esm/core/orders/api/index.js.map +0 -1
- package/dist/esm/core/orders/common.js +0 -8
- package/dist/esm/core/orders/common.js.map +0 -1
- package/dist/esm/core/orders/cross-chain.js +0 -319
- package/dist/esm/core/orders/cross-chain.js.map +0 -1
- package/dist/esm/core/orders/dca-single-chain.js +0 -172
- package/dist/esm/core/orders/dca-single-chain.js.map +0 -1
- package/dist/esm/core/orders/single-chain.js +0 -197
- package/dist/esm/core/orders/single-chain.js.map +0 -1
- package/dist/esm/core/sdk.js +0 -86
- package/dist/esm/core/sdk.js.map +0 -1
- package/dist/esm/core/solana/cancel-order.js +0 -176
- package/dist/esm/core/solana/cancel-order.js.map +0 -1
- package/dist/esm/core/solana/client.js +0 -19
- package/dist/esm/core/solana/client.js.map +0 -1
- package/dist/esm/core/solana/cross-chain-limit-order.js +0 -18
- package/dist/esm/core/solana/cross-chain-limit-order.js.map +0 -1
- package/dist/esm/core/solana/dca/cancel-order.js +0 -61
- package/dist/esm/core/solana/dca/cancel-order.js.map +0 -1
- package/dist/esm/core/solana/dca/create-order.js +0 -82
- package/dist/esm/core/solana/dca/create-order.js.map +0 -1
- package/dist/esm/core/solana/dca/single-chain-dca-order.js +0 -23
- package/dist/esm/core/solana/dca/single-chain-dca-order.js.map +0 -1
- package/dist/esm/core/solana/dca/single-chain-limit-order.js +0 -29
- package/dist/esm/core/solana/dca/single-chain-limit-order.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/accounts/adminSingleton.js +0 -60
- package/dist/esm/core/solana/generated/cross-chain/accounts/adminSingleton.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/accounts/dcaOrder.js +0 -90
- package/dist/esm/core/solana/generated/cross-chain/accounts/dcaOrder.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/accounts/guard.js +0 -64
- package/dist/esm/core/solana/generated/cross-chain/accounts/guard.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/accounts/index.js +0 -12
- package/dist/esm/core/solana/generated/cross-chain/accounts/index.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/accounts/order.js +0 -78
- package/dist/esm/core/solana/generated/cross-chain/accounts/order.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/errors/index.js +0 -9
- package/dist/esm/core/solana/generated/cross-chain/errors/index.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/errors/sourceChainGuard.js +0 -140
- package/dist/esm/core/solana/generated/cross-chain/errors/sourceChainGuard.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/index.js +0 -13
- package/dist/esm/core/solana/generated/cross-chain/index.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/acceptAdmin.js +0 -88
- package/dist/esm/core/solana/generated/cross-chain/instructions/acceptAdmin.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/cancelDcaOrder.js +0 -118
- package/dist/esm/core/solana/generated/cross-chain/instructions/cancelDcaOrder.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/cancelOrder.js +0 -107
- package/dist/esm/core/solana/generated/cross-chain/instructions/cancelOrder.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/claimTokens.js +0 -127
- package/dist/esm/core/solana/generated/cross-chain/instructions/claimTokens.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/collectProtocolFees.js +0 -133
- package/dist/esm/core/solana/generated/cross-chain/instructions/collectProtocolFees.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/createDcaOrder.js +0 -170
- package/dist/esm/core/solana/generated/cross-chain/instructions/createDcaOrder.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/createGuard.js +0 -188
- package/dist/esm/core/solana/generated/cross-chain/instructions/createGuard.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/createOrder.js +0 -166
- package/dist/esm/core/solana/generated/cross-chain/instructions/createOrder.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/index.js +0 -22
- package/dist/esm/core/solana/generated/cross-chain/instructions/index.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/initialize.js +0 -126
- package/dist/esm/core/solana/generated/cross-chain/instructions/initialize.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/preStartOrderExecution.js +0 -110
- package/dist/esm/core/solana/generated/cross-chain/instructions/preStartOrderExecution.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/setAdmin.js +0 -98
- package/dist/esm/core/solana/generated/cross-chain/instructions/setAdmin.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.js +0 -111
- package/dist/esm/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecution.js +0 -98
- package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecution.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.js +0 -106
- package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/programs/index.js +0 -9
- package/dist/esm/core/solana/generated/cross-chain/programs/index.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/programs/sourceChainGuard.js +0 -98
- package/dist/esm/core/solana/generated/cross-chain/programs/sourceChainGuard.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/shared/index.js +0 -79
- package/dist/esm/core/solana/generated/cross-chain/shared/index.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/types/adminUpdateStarted.js +0 -18
- package/dist/esm/core/solana/generated/cross-chain/types/adminUpdateStarted.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/types/adminUpdated.js +0 -18
- package/dist/esm/core/solana/generated/cross-chain/types/adminUpdated.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.js +0 -24
- package/dist/esm/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/types/dcaExecutionStarted.js +0 -32
- package/dist/esm/core/solana/generated/cross-chain/types/dcaExecutionStarted.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderCreated.js +0 -42
- package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderCreated.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.js +0 -26
- package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/types/dcaTokenInSwapped.js +0 -28
- package/dist/esm/core/solana/generated/cross-chain/types/dcaTokenInSwapped.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/types/executionStarted.js +0 -30
- package/dist/esm/core/solana/generated/cross-chain/types/executionStarted.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.js +0 -26
- package/dist/esm/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/types/guardCreated.js +0 -28
- package/dist/esm/core/solana/generated/cross-chain/types/guardCreated.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/types/index.js +0 -22
- package/dist/esm/core/solana/generated/cross-chain/types/index.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/types/orderCancelled.js +0 -18
- package/dist/esm/core/solana/generated/cross-chain/types/orderCancelled.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/types/orderCreated.js +0 -36
- package/dist/esm/core/solana/generated/cross-chain/types/orderCreated.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/types/orderFulfilled.js +0 -18
- package/dist/esm/core/solana/generated/cross-chain/types/orderFulfilled.js.map +0 -1
- package/dist/esm/core/solana/generated/cross-chain/types/tokenInSwapped.js +0 -26
- package/dist/esm/core/solana/generated/cross-chain/types/tokenInSwapped.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/accounts/adminSingleton.js +0 -60
- package/dist/esm/core/solana/generated/single-chain/accounts/adminSingleton.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/accounts/dcaOrder.js +0 -75
- package/dist/esm/core/solana/generated/single-chain/accounts/dcaOrder.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/accounts/guard.js +0 -62
- package/dist/esm/core/solana/generated/single-chain/accounts/guard.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/accounts/index.js +0 -12
- package/dist/esm/core/solana/generated/single-chain/accounts/index.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/accounts/limitOrder.js +0 -65
- package/dist/esm/core/solana/generated/single-chain/accounts/limitOrder.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/errors/index.js +0 -9
- package/dist/esm/core/solana/generated/single-chain/errors/index.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/errors/singleChainGuard.js +0 -101
- package/dist/esm/core/solana/generated/single-chain/errors/singleChainGuard.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/index.js +0 -13
- package/dist/esm/core/solana/generated/single-chain/index.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/acceptAdmin.js +0 -88
- package/dist/esm/core/solana/generated/single-chain/instructions/acceptAdmin.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/cancelDcaOrder.js +0 -84
- package/dist/esm/core/solana/generated/single-chain/instructions/cancelDcaOrder.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/cancelLimitOrder.js +0 -84
- package/dist/esm/core/solana/generated/single-chain/instructions/cancelLimitOrder.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/collectProtocolFees.js +0 -121
- package/dist/esm/core/solana/generated/single-chain/instructions/collectProtocolFees.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/createDcaOrder.js +0 -172
- package/dist/esm/core/solana/generated/single-chain/instructions/createDcaOrder.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/createGuard.js +0 -163
- package/dist/esm/core/solana/generated/single-chain/instructions/createGuard.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/createLimitOrder.js +0 -168
- package/dist/esm/core/solana/generated/single-chain/instructions/createLimitOrder.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.js +0 -146
- package/dist/esm/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/fulfillLimitOrder.js +0 -146
- package/dist/esm/core/solana/generated/single-chain/instructions/fulfillLimitOrder.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/index.js +0 -20
- package/dist/esm/core/solana/generated/single-chain/instructions/index.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/initialize.js +0 -126
- package/dist/esm/core/solana/generated/single-chain/instructions/initialize.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/setAdmin.js +0 -98
- package/dist/esm/core/solana/generated/single-chain/instructions/setAdmin.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.js +0 -111
- package/dist/esm/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/programs/index.js +0 -9
- package/dist/esm/core/solana/generated/single-chain/programs/index.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/programs/singleChainGuard.js +0 -90
- package/dist/esm/core/solana/generated/single-chain/programs/singleChainGuard.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/shared/index.js +0 -79
- package/dist/esm/core/solana/generated/single-chain/shared/index.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/types/adminUpdateStarted.js +0 -18
- package/dist/esm/core/solana/generated/single-chain/types/adminUpdateStarted.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/types/adminUpdated.js +0 -18
- package/dist/esm/core/solana/generated/single-chain/types/adminUpdated.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.js +0 -24
- package/dist/esm/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/types/dcaOrderCreated.js +0 -42
- package/dist/esm/core/solana/generated/single-chain/types/dcaOrderCreated.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/types/dcaOrderFulfilled.js +0 -18
- package/dist/esm/core/solana/generated/single-chain/types/dcaOrderFulfilled.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.js +0 -30
- package/dist/esm/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/types/guardCreated.js +0 -26
- package/dist/esm/core/solana/generated/single-chain/types/guardCreated.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/types/index.js +0 -18
- package/dist/esm/core/solana/generated/single-chain/types/index.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/types/limitOrderCreated.js +0 -36
- package/dist/esm/core/solana/generated/single-chain/types/limitOrderCreated.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/types/limitOrderFulfilled.js +0 -24
- package/dist/esm/core/solana/generated/single-chain/types/limitOrderFulfilled.js.map +0 -1
- package/dist/esm/core/solana/generated/single-chain/types/orderCancelled.js +0 -18
- package/dist/esm/core/solana/generated/single-chain/types/orderCancelled.js.map +0 -1
- package/dist/esm/core/solana/inspect.js +0 -43
- package/dist/esm/core/solana/inspect.js.map +0 -1
- package/dist/esm/core/solana/intent-helpers.js +0 -177
- package/dist/esm/core/solana/intent-helpers.js.map +0 -1
- package/dist/esm/core/solana/order-instructions.js +0 -163
- package/dist/esm/core/solana/order-instructions.js.map +0 -1
- package/dist/esm/core/solana/sdk.js +0 -220
- package/dist/esm/core/solana/sdk.js.map +0 -1
- package/dist/esm/core/solana/utils.js +0 -19
- package/dist/esm/core/solana/utils.js.map +0 -1
- package/dist/esm/core/solana/validator.js +0 -28
- package/dist/esm/core/solana/validator.js.map +0 -1
- package/dist/esm/core/sui/cancel.js +0 -36
- package/dist/esm/core/sui/cancel.js.map +0 -1
- package/dist/esm/core/sui/client.js +0 -3
- package/dist/esm/core/sui/client.js.map +0 -1
- package/dist/esm/core/sui/cross-chain-limit-order.js +0 -26
- package/dist/esm/core/sui/cross-chain-limit-order.js.map +0 -1
- package/dist/esm/core/sui/intent-helpers.js +0 -136
- package/dist/esm/core/sui/intent-helpers.js.map +0 -1
- package/dist/esm/core/sui/order-transaction.js +0 -58
- package/dist/esm/core/sui/order-transaction.js.map +0 -1
- package/dist/esm/core/sui/sdk.js +0 -119
- package/dist/esm/core/sui/sdk.js.map +0 -1
- package/dist/esm/core/sui/single-chain-dca-order.js +0 -99
- package/dist/esm/core/sui/single-chain-dca-order.js.map +0 -1
- package/dist/esm/core/sui/single-chain-limit-order.js +0 -103
- package/dist/esm/core/sui/single-chain-limit-order.js.map +0 -1
- package/dist/esm/core/sui/validator.js +0 -31
- package/dist/esm/core/sui/validator.js.map +0 -1
- package/dist/esm/errors/index.js +0 -68
- package/dist/esm/errors/index.js.map +0 -1
- package/dist/esm/index.js +0 -38
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/types/api.js +0 -7
- package/dist/esm/types/api.js.map +0 -1
- package/dist/esm/types/intent.js +0 -2
- package/dist/esm/types/intent.js.map +0 -1
- package/dist/esm/utils/base-validator.js +0 -91
- package/dist/esm/utils/base-validator.js.map +0 -1
- package/dist/esm/utils/defillama.js +0 -104
- package/dist/esm/utils/defillama.js.map +0 -1
- package/dist/esm/utils/logger.js +0 -109
- package/dist/esm/utils/logger.js.map +0 -1
- package/dist/esm/utils/order-validator.js +0 -112
- package/dist/esm/utils/order-validator.js.map +0 -1
- package/dist/esm/utils/parsers.js +0 -28
- package/dist/esm/utils/parsers.js.map +0 -1
- package/dist/esm/utils/quote/aftermath.js +0 -15
- package/dist/esm/utils/quote/aftermath.js.map +0 -1
- package/dist/esm/utils/quote/aggregator.js +0 -254
- package/dist/esm/utils/quote/aggregator.js.map +0 -1
- package/dist/esm/utils/quote/jupiter.js +0 -31
- package/dist/esm/utils/quote/jupiter.js.map +0 -1
- package/dist/esm/utils/quote/liquidswap.js +0 -22
- package/dist/esm/utils/quote/liquidswap.js.map +0 -1
- package/dist/esm/utils/quote/paraswap.js +0 -67
- package/dist/esm/utils/quote/paraswap.js.map +0 -1
- package/dist/esm/utils/quote/stablecoins-tokens.js +0 -13
- package/dist/esm/utils/quote/stablecoins-tokens.js.map +0 -1
- package/dist/esm/utils/type-utils.js +0 -2
- package/dist/esm/utils/type-utils.js.map +0 -1
- package/dist/types/auth/siwe.d.ts +0 -13
- package/dist/types/auth/siwe.d.ts.map +0 -1
- package/dist/types/chains.d.ts +0 -62
- package/dist/types/chains.d.ts.map +0 -1
- package/dist/types/config.d.ts +0 -21
- package/dist/types/config.d.ts.map +0 -1
- package/dist/types/constants.d.ts +0 -43
- package/dist/types/constants.d.ts.map +0 -1
- package/dist/types/core/evm/abi/erc20.d.ts +0 -240
- package/dist/types/core/evm/abi/erc20.d.ts.map +0 -1
- package/dist/types/core/evm/abi/permit2.d.ts +0 -304
- package/dist/types/core/evm/abi/permit2.d.ts.map +0 -1
- package/dist/types/core/evm/abi/single-chain-guard-limit.d.ts +0 -596
- package/dist/types/core/evm/abi/single-chain-guard-limit.d.ts.map +0 -1
- package/dist/types/core/evm/abi/source-chain-guard.d.ts +0 -877
- package/dist/types/core/evm/abi/source-chain-guard.d.ts.map +0 -1
- package/dist/types/core/evm/cancel-order.d.ts +0 -28
- package/dist/types/core/evm/cancel-order.d.ts.map +0 -1
- package/dist/types/core/evm/chain-provider.d.ts +0 -62338
- package/dist/types/core/evm/chain-provider.d.ts.map +0 -1
- package/dist/types/core/evm/connectors/hyperevm.d.ts +0 -38
- package/dist/types/core/evm/connectors/hyperevm.d.ts.map +0 -1
- package/dist/types/core/evm/cross-chain-limit-order.d.ts +0 -22
- package/dist/types/core/evm/cross-chain-limit-order.d.ts.map +0 -1
- package/dist/types/core/evm/intent-helpers.d.ts +0 -105
- package/dist/types/core/evm/intent-helpers.d.ts.map +0 -1
- package/dist/types/core/evm/intent-provider.d.ts +0 -19
- package/dist/types/core/evm/intent-provider.d.ts.map +0 -1
- package/dist/types/core/evm/order-signature.d.ts +0 -22
- package/dist/types/core/evm/order-signature.d.ts.map +0 -1
- package/dist/types/core/evm/permit2.d.ts +0 -261
- package/dist/types/core/evm/permit2.d.ts.map +0 -1
- package/dist/types/core/evm/sdk.d.ts +0 -63
- package/dist/types/core/evm/sdk.d.ts.map +0 -1
- package/dist/types/core/evm/single-chain-dca-order.d.ts +0 -26
- package/dist/types/core/evm/single-chain-dca-order.d.ts.map +0 -1
- package/dist/types/core/evm/single-chain-limit-order.d.ts +0 -23
- package/dist/types/core/evm/single-chain-limit-order.d.ts.map +0 -1
- package/dist/types/core/evm/types.d.ts +0 -8
- package/dist/types/core/evm/types.d.ts.map +0 -1
- package/dist/types/core/evm/validator.d.ts +0 -23
- package/dist/types/core/evm/validator.d.ts.map +0 -1
- package/dist/types/core/orders/api/fetch.d.ts +0 -3
- package/dist/types/core/orders/api/fetch.d.ts.map +0 -1
- package/dist/types/core/orders/api/index.d.ts +0 -8
- package/dist/types/core/orders/api/index.d.ts.map +0 -1
- package/dist/types/core/orders/common.d.ts +0 -12
- package/dist/types/core/orders/common.d.ts.map +0 -1
- package/dist/types/core/orders/cross-chain.d.ts +0 -125
- package/dist/types/core/orders/cross-chain.d.ts.map +0 -1
- package/dist/types/core/orders/dca-single-chain.d.ts +0 -47
- package/dist/types/core/orders/dca-single-chain.d.ts.map +0 -1
- package/dist/types/core/orders/single-chain.d.ts +0 -47
- package/dist/types/core/orders/single-chain.d.ts.map +0 -1
- package/dist/types/core/sdk.d.ts +0 -30
- package/dist/types/core/sdk.d.ts.map +0 -1
- package/dist/types/core/solana/cancel-order.d.ts +0 -18
- package/dist/types/core/solana/cancel-order.d.ts.map +0 -1
- package/dist/types/core/solana/client.d.ts +0 -11
- package/dist/types/core/solana/client.d.ts.map +0 -1
- package/dist/types/core/solana/cross-chain-limit-order.d.ts +0 -9
- package/dist/types/core/solana/cross-chain-limit-order.d.ts.map +0 -1
- package/dist/types/core/solana/dca/cancel-order.d.ts +0 -5
- package/dist/types/core/solana/dca/cancel-order.d.ts.map +0 -1
- package/dist/types/core/solana/dca/create-order.d.ts +0 -8
- package/dist/types/core/solana/dca/create-order.d.ts.map +0 -1
- package/dist/types/core/solana/dca/single-chain-dca-order.d.ts +0 -14
- package/dist/types/core/solana/dca/single-chain-dca-order.d.ts.map +0 -1
- package/dist/types/core/solana/dca/single-chain-limit-order.d.ts +0 -19
- package/dist/types/core/solana/dca/single-chain-limit-order.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/accounts/adminSingleton.d.ts +0 -40
- package/dist/types/core/solana/generated/cross-chain/accounts/adminSingleton.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/accounts/dcaOrder.d.ts +0 -110
- package/dist/types/core/solana/generated/cross-chain/accounts/dcaOrder.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/accounts/guard.d.ts +0 -52
- package/dist/types/core/solana/generated/cross-chain/accounts/guard.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/accounts/index.d.ts +0 -12
- package/dist/types/core/solana/generated/cross-chain/accounts/index.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/accounts/order.d.ts +0 -92
- package/dist/types/core/solana/generated/cross-chain/accounts/order.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/errors/index.d.ts +0 -9
- package/dist/types/core/solana/generated/cross-chain/errors/index.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/errors/sourceChainGuard.d.ts +0 -97
- package/dist/types/core/solana/generated/cross-chain/errors/sourceChainGuard.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/index.d.ts +0 -13
- package/dist/types/core/solana/generated/cross-chain/index.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/acceptAdmin.d.ts +0 -56
- package/dist/types/core/solana/generated/cross-chain/instructions/acceptAdmin.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/cancelDcaOrder.d.ts +0 -124
- package/dist/types/core/solana/generated/cross-chain/instructions/cancelDcaOrder.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/cancelOrder.d.ts +0 -108
- package/dist/types/core/solana/generated/cross-chain/instructions/cancelOrder.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/claimTokens.d.ts +0 -131
- package/dist/types/core/solana/generated/cross-chain/instructions/claimTokens.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/collectProtocolFees.d.ts +0 -91
- package/dist/types/core/solana/generated/cross-chain/instructions/collectProtocolFees.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/createDcaOrder.d.ts +0 -130
- package/dist/types/core/solana/generated/cross-chain/instructions/createDcaOrder.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/createGuard.d.ts +0 -137
- package/dist/types/core/solana/generated/cross-chain/instructions/createGuard.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/createOrder.d.ts +0 -122
- package/dist/types/core/solana/generated/cross-chain/instructions/createOrder.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/index.d.ts +0 -22
- package/dist/types/core/solana/generated/cross-chain/instructions/index.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/initialize.d.ts +0 -86
- package/dist/types/core/solana/generated/cross-chain/instructions/initialize.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/preStartOrderExecution.d.ts +0 -105
- package/dist/types/core/solana/generated/cross-chain/instructions/preStartOrderExecution.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/setAdmin.d.ts +0 -61
- package/dist/types/core/solana/generated/cross-chain/instructions/setAdmin.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.d.ts +0 -68
- package/dist/types/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecution.d.ts +0 -85
- package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecution.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.d.ts +0 -95
- package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/programs/index.d.ts +0 -9
- package/dist/types/core/solana/generated/cross-chain/programs/index.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/programs/sourceChainGuard.d.ts +0 -69
- package/dist/types/core/solana/generated/cross-chain/programs/sourceChainGuard.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/shared/index.d.ts +0 -52
- package/dist/types/core/solana/generated/cross-chain/shared/index.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/types/adminUpdateStarted.d.ts +0 -16
- package/dist/types/core/solana/generated/cross-chain/types/adminUpdateStarted.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/types/adminUpdated.d.ts +0 -16
- package/dist/types/core/solana/generated/cross-chain/types/adminUpdated.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.d.ts +0 -17
- package/dist/types/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/types/dcaExecutionStarted.d.ts +0 -28
- package/dist/types/core/solana/generated/cross-chain/types/dcaExecutionStarted.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/types/dcaOrderCreated.d.ts +0 -38
- package/dist/types/core/solana/generated/cross-chain/types/dcaOrderCreated.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.d.ts +0 -18
- package/dist/types/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/types/dcaTokenInSwapped.d.ts +0 -24
- package/dist/types/core/solana/generated/cross-chain/types/dcaTokenInSwapped.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/types/executionStarted.d.ts +0 -26
- package/dist/types/core/solana/generated/cross-chain/types/executionStarted.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.d.ts +0 -18
- package/dist/types/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/types/guardCreated.d.ts +0 -19
- package/dist/types/core/solana/generated/cross-chain/types/guardCreated.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/types/index.d.ts +0 -22
- package/dist/types/core/solana/generated/cross-chain/types/index.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/types/orderCancelled.d.ts +0 -16
- package/dist/types/core/solana/generated/cross-chain/types/orderCancelled.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/types/orderCreated.d.ts +0 -32
- package/dist/types/core/solana/generated/cross-chain/types/orderCreated.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/types/orderFulfilled.d.ts +0 -16
- package/dist/types/core/solana/generated/cross-chain/types/orderFulfilled.d.ts.map +0 -1
- package/dist/types/core/solana/generated/cross-chain/types/tokenInSwapped.d.ts +0 -22
- package/dist/types/core/solana/generated/cross-chain/types/tokenInSwapped.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/accounts/adminSingleton.d.ts +0 -40
- package/dist/types/core/solana/generated/single-chain/accounts/adminSingleton.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/accounts/dcaOrder.d.ts +0 -99
- package/dist/types/core/solana/generated/single-chain/accounts/dcaOrder.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/accounts/guard.d.ts +0 -48
- package/dist/types/core/solana/generated/single-chain/accounts/guard.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/accounts/index.d.ts +0 -12
- package/dist/types/core/solana/generated/single-chain/accounts/index.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/accounts/limitOrder.d.ts +0 -79
- package/dist/types/core/solana/generated/single-chain/accounts/limitOrder.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/errors/index.d.ts +0 -9
- package/dist/types/core/solana/generated/single-chain/errors/index.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/errors/singleChainGuard.d.ts +0 -71
- package/dist/types/core/solana/generated/single-chain/errors/singleChainGuard.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/index.d.ts +0 -13
- package/dist/types/core/solana/generated/single-chain/index.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/instructions/acceptAdmin.d.ts +0 -56
- package/dist/types/core/solana/generated/single-chain/instructions/acceptAdmin.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/instructions/cancelDcaOrder.d.ts +0 -72
- package/dist/types/core/solana/generated/single-chain/instructions/cancelDcaOrder.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/instructions/cancelLimitOrder.d.ts +0 -72
- package/dist/types/core/solana/generated/single-chain/instructions/cancelLimitOrder.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/instructions/collectProtocolFees.d.ts +0 -91
- package/dist/types/core/solana/generated/single-chain/instructions/collectProtocolFees.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/instructions/createDcaOrder.d.ts +0 -134
- package/dist/types/core/solana/generated/single-chain/instructions/createDcaOrder.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/instructions/createGuard.d.ts +0 -107
- package/dist/types/core/solana/generated/single-chain/instructions/createGuard.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/instructions/createLimitOrder.d.ts +0 -126
- package/dist/types/core/solana/generated/single-chain/instructions/createLimitOrder.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.d.ts +0 -179
- package/dist/types/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/instructions/fulfillLimitOrder.d.ts +0 -179
- package/dist/types/core/solana/generated/single-chain/instructions/fulfillLimitOrder.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/instructions/index.d.ts +0 -20
- package/dist/types/core/solana/generated/single-chain/instructions/index.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/instructions/initialize.d.ts +0 -86
- package/dist/types/core/solana/generated/single-chain/instructions/initialize.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/instructions/setAdmin.d.ts +0 -61
- package/dist/types/core/solana/generated/single-chain/instructions/setAdmin.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.d.ts +0 -68
- package/dist/types/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/programs/index.d.ts +0 -9
- package/dist/types/core/solana/generated/single-chain/programs/index.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/programs/singleChainGuard.d.ts +0 -63
- package/dist/types/core/solana/generated/single-chain/programs/singleChainGuard.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/shared/index.d.ts +0 -52
- package/dist/types/core/solana/generated/single-chain/shared/index.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/types/adminUpdateStarted.d.ts +0 -16
- package/dist/types/core/solana/generated/single-chain/types/adminUpdateStarted.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/types/adminUpdated.d.ts +0 -16
- package/dist/types/core/solana/generated/single-chain/types/adminUpdated.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.d.ts +0 -17
- package/dist/types/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/types/dcaOrderCreated.d.ts +0 -38
- package/dist/types/core/solana/generated/single-chain/types/dcaOrderCreated.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/types/dcaOrderFulfilled.d.ts +0 -16
- package/dist/types/core/solana/generated/single-chain/types/dcaOrderFulfilled.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.d.ts +0 -26
- package/dist/types/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/types/guardCreated.d.ts +0 -18
- package/dist/types/core/solana/generated/single-chain/types/guardCreated.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/types/index.d.ts +0 -18
- package/dist/types/core/solana/generated/single-chain/types/index.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/types/limitOrderCreated.d.ts +0 -32
- package/dist/types/core/solana/generated/single-chain/types/limitOrderCreated.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/types/limitOrderFulfilled.d.ts +0 -20
- package/dist/types/core/solana/generated/single-chain/types/limitOrderFulfilled.d.ts.map +0 -1
- package/dist/types/core/solana/generated/single-chain/types/orderCancelled.d.ts +0 -16
- package/dist/types/core/solana/generated/single-chain/types/orderCancelled.d.ts.map +0 -1
- package/dist/types/core/solana/inspect.d.ts +0 -14
- package/dist/types/core/solana/inspect.d.ts.map +0 -1
- package/dist/types/core/solana/intent-helpers.d.ts +0 -120
- package/dist/types/core/solana/intent-helpers.d.ts.map +0 -1
- package/dist/types/core/solana/order-instructions.d.ts +0 -16
- package/dist/types/core/solana/order-instructions.d.ts.map +0 -1
- package/dist/types/core/solana/sdk.d.ts +0 -73
- package/dist/types/core/solana/sdk.d.ts.map +0 -1
- package/dist/types/core/solana/utils.d.ts +0 -7
- package/dist/types/core/solana/utils.d.ts.map +0 -1
- package/dist/types/core/solana/validator.d.ts +0 -11
- package/dist/types/core/solana/validator.d.ts.map +0 -1
- package/dist/types/core/sui/cancel.d.ts +0 -3
- package/dist/types/core/sui/cancel.d.ts.map +0 -1
- package/dist/types/core/sui/client.d.ts +0 -3
- package/dist/types/core/sui/client.d.ts.map +0 -1
- package/dist/types/core/sui/cross-chain-limit-order.d.ts +0 -14
- package/dist/types/core/sui/cross-chain-limit-order.d.ts.map +0 -1
- package/dist/types/core/sui/intent-helpers.d.ts +0 -89
- package/dist/types/core/sui/intent-helpers.d.ts.map +0 -1
- package/dist/types/core/sui/order-transaction.d.ts +0 -11
- package/dist/types/core/sui/order-transaction.d.ts.map +0 -1
- package/dist/types/core/sui/sdk.d.ts +0 -57
- package/dist/types/core/sui/sdk.d.ts.map +0 -1
- package/dist/types/core/sui/single-chain-dca-order.d.ts +0 -22
- package/dist/types/core/sui/single-chain-dca-order.d.ts.map +0 -1
- package/dist/types/core/sui/single-chain-limit-order.d.ts +0 -26
- package/dist/types/core/sui/single-chain-limit-order.d.ts.map +0 -1
- package/dist/types/core/sui/validator.d.ts +0 -11
- package/dist/types/core/sui/validator.d.ts.map +0 -1
- package/dist/types/errors/index.d.ts +0 -20
- package/dist/types/errors/index.d.ts.map +0 -1
- package/dist/types/index.d.ts +0 -42
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/types/api.d.ts +0 -65
- package/dist/types/types/api.d.ts.map +0 -1
- package/dist/types/types/intent.d.ts +0 -136
- package/dist/types/types/intent.d.ts.map +0 -1
- package/dist/types/utils/base-validator.d.ts +0 -46
- package/dist/types/utils/base-validator.d.ts.map +0 -1
- package/dist/types/utils/defillama.d.ts +0 -61
- package/dist/types/utils/defillama.d.ts.map +0 -1
- package/dist/types/utils/logger.d.ts +0 -35
- package/dist/types/utils/logger.d.ts.map +0 -1
- package/dist/types/utils/order-validator.d.ts +0 -64
- package/dist/types/utils/order-validator.d.ts.map +0 -1
- package/dist/types/utils/parsers.d.ts +0 -6
- package/dist/types/utils/parsers.d.ts.map +0 -1
- package/dist/types/utils/quote/aftermath.d.ts +0 -9
- package/dist/types/utils/quote/aftermath.d.ts.map +0 -1
- package/dist/types/utils/quote/aggregator.d.ts +0 -64
- package/dist/types/utils/quote/aggregator.d.ts.map +0 -1
- package/dist/types/utils/quote/jupiter.d.ts +0 -16
- package/dist/types/utils/quote/jupiter.d.ts.map +0 -1
- package/dist/types/utils/quote/liquidswap.d.ts +0 -16
- package/dist/types/utils/quote/liquidswap.d.ts.map +0 -1
- package/dist/types/utils/quote/paraswap.d.ts +0 -23
- package/dist/types/utils/quote/paraswap.d.ts.map +0 -1
- package/dist/types/utils/quote/stablecoins-tokens.d.ts +0 -11
- package/dist/types/utils/quote/stablecoins-tokens.d.ts.map +0 -1
- package/dist/types/utils/type-utils.d.ts +0 -2
- package/dist/types/utils/type-utils.d.ts.map +0 -1
- package/src/core/solana/cross-chain-limit-order.ts +0 -24
|
@@ -0,0 +1,506 @@
|
|
|
1
|
+
import { NATIVE_SOLANA_TOKEN_ADDRESS, WRAPPED_SOL_MINT_ADDRESS } from '../../constants.js';
|
|
2
|
+
import {
|
|
3
|
+
API_URLS,
|
|
4
|
+
getPdaLaunchpadPoolId,
|
|
5
|
+
Raydium,
|
|
6
|
+
LAUNCHPAD_PROGRAM,
|
|
7
|
+
PlatformConfig,
|
|
8
|
+
Curve,
|
|
9
|
+
type LaunchpadConfigInfo,
|
|
10
|
+
type LaunchpadPoolInfo,
|
|
11
|
+
} from '@raydium-io/raydium-sdk-v2';
|
|
12
|
+
import { type SimpleQuote } from './aggregator.js';
|
|
13
|
+
import { Connection, clusterApiUrl, PublicKey } from '@solana/web3.js'; // Used this package for raydium-sdk-v2 compatibility
|
|
14
|
+
import BN from 'bn.js';
|
|
15
|
+
import { Decimal } from 'decimal.js';
|
|
16
|
+
import { JupiterQuoteProvider, type JupiterQuoteParams } from './jupiter.js';
|
|
17
|
+
import { TWO_SECONDS_MS, TEN_MINUTES_MS } from './utils.js';
|
|
18
|
+
|
|
19
|
+
const launchpadPoolCache = new Map<
|
|
20
|
+
string,
|
|
21
|
+
{
|
|
22
|
+
data: [
|
|
23
|
+
LaunchpadPoolInfo & {
|
|
24
|
+
programId: PublicKey;
|
|
25
|
+
configInfo: LaunchpadConfigInfo;
|
|
26
|
+
},
|
|
27
|
+
PublicKey,
|
|
28
|
+
];
|
|
29
|
+
expiresAt: number;
|
|
30
|
+
}
|
|
31
|
+
>();
|
|
32
|
+
|
|
33
|
+
const launchpadPoolInfoCache = new Map<
|
|
34
|
+
string,
|
|
35
|
+
{
|
|
36
|
+
data: LaunchpadPoolInfo & {
|
|
37
|
+
programId: PublicKey;
|
|
38
|
+
configInfo: LaunchpadConfigInfo;
|
|
39
|
+
};
|
|
40
|
+
expiresAt: number;
|
|
41
|
+
}
|
|
42
|
+
>();
|
|
43
|
+
|
|
44
|
+
const platformConfigCache = new Map<
|
|
45
|
+
string,
|
|
46
|
+
{
|
|
47
|
+
data: ReturnType<typeof PlatformConfig.decode>;
|
|
48
|
+
expiresAt: number;
|
|
49
|
+
}
|
|
50
|
+
>();
|
|
51
|
+
|
|
52
|
+
const mintInfoCache = new Map<string, Awaited<ReturnType<Raydium['token']['getTokenInfo']>>>();
|
|
53
|
+
|
|
54
|
+
// Local implementation of compareAddresses function
|
|
55
|
+
const compareAddresses = (firstAddress?: string, secondAddress?: string): boolean => {
|
|
56
|
+
return !!firstAddress && !!secondAddress && firstAddress.toLowerCase() === secondAddress.toLowerCase();
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
const LAUNCHPAD_WHITELISTED_QUOTE_TOKENS = [
|
|
60
|
+
new PublicKey('So11111111111111111111111111111111111111112'), // WSOL
|
|
61
|
+
new PublicKey('EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'), // USDC
|
|
62
|
+
new PublicKey('Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB'), // USDT
|
|
63
|
+
new PublicKey('USD1ttGY1N17NEEHLmELoaybftRBUSErhqYiQzvEmuB'), // USD1
|
|
64
|
+
];
|
|
65
|
+
|
|
66
|
+
export type RaydiumPumpQuoteParams = {
|
|
67
|
+
inputMint: string;
|
|
68
|
+
outputMint: string;
|
|
69
|
+
amount: string;
|
|
70
|
+
slippageBps: number;
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export type RaydiumQuoteResponse = {
|
|
74
|
+
success: boolean;
|
|
75
|
+
data: {
|
|
76
|
+
inputMint: string;
|
|
77
|
+
outputMint: string;
|
|
78
|
+
inAmount: string;
|
|
79
|
+
outAmount: string;
|
|
80
|
+
otherAmountThreshold: string;
|
|
81
|
+
swapMode: string;
|
|
82
|
+
slippageBps: number;
|
|
83
|
+
platformFee: null;
|
|
84
|
+
priceImpactPct: string;
|
|
85
|
+
routePlan: Array<{
|
|
86
|
+
swapInfo: {
|
|
87
|
+
ammKey: string;
|
|
88
|
+
label: string;
|
|
89
|
+
inputMint: string;
|
|
90
|
+
outputMint: string;
|
|
91
|
+
notEnoughLiquidity: boolean;
|
|
92
|
+
minInAmount: string;
|
|
93
|
+
minOutAmount: string;
|
|
94
|
+
priceImpactPct: string;
|
|
95
|
+
lpFee: {
|
|
96
|
+
amount: string;
|
|
97
|
+
mint: string;
|
|
98
|
+
pct: number;
|
|
99
|
+
};
|
|
100
|
+
platformFee: {
|
|
101
|
+
amount: string;
|
|
102
|
+
mint: string;
|
|
103
|
+
pct: number;
|
|
104
|
+
};
|
|
105
|
+
};
|
|
106
|
+
percent: number;
|
|
107
|
+
}>;
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
let raydium: Raydium | undefined;
|
|
112
|
+
export const initSdk = async (): Promise<Raydium> => {
|
|
113
|
+
if (raydium) return raydium;
|
|
114
|
+
raydium = await Raydium.load({
|
|
115
|
+
connection: new Connection(clusterApiUrl('mainnet-beta')),
|
|
116
|
+
disableFeatureCheck: true,
|
|
117
|
+
disableLoadToken: true,
|
|
118
|
+
});
|
|
119
|
+
return raydium;
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
// Using API_URLS from Raydium SDK v2
|
|
123
|
+
|
|
124
|
+
export class RaydiumQuoteProvider {
|
|
125
|
+
/**
|
|
126
|
+
* Get priority fee recommendations from Raydium API
|
|
127
|
+
* @returns Priority fee data with different tiers (vh, h, m)
|
|
128
|
+
*/
|
|
129
|
+
public async getPriorityFee(): Promise<{
|
|
130
|
+
vh: number; // very high
|
|
131
|
+
h: number; // high
|
|
132
|
+
m: number; // medium
|
|
133
|
+
}> {
|
|
134
|
+
const url = new URL(API_URLS.PRIORITY_FEE, API_URLS.BASE_HOST);
|
|
135
|
+
const response = await fetch(url);
|
|
136
|
+
|
|
137
|
+
if (!response.ok) {
|
|
138
|
+
throw new Error(`Failed to fetch priority fee from Raydium API: ${response.status} ${response.statusText}`);
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const data = await response.json();
|
|
142
|
+
|
|
143
|
+
if (!data.success) {
|
|
144
|
+
throw new Error('Raydium API returned unsuccessful response for priority fee');
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
return data.data.default;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
public async getQuote(raydiumParams: RaydiumPumpQuoteParams): Promise<RaydiumQuoteResponse> {
|
|
151
|
+
const params = { ...raydiumParams };
|
|
152
|
+
|
|
153
|
+
// Handle native SOL token mapping for Solana
|
|
154
|
+
if (compareAddresses(params.inputMint, NATIVE_SOLANA_TOKEN_ADDRESS)) {
|
|
155
|
+
params.inputMint = WRAPPED_SOL_MINT_ADDRESS;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if (compareAddresses(params.outputMint, NATIVE_SOLANA_TOKEN_ADDRESS)) {
|
|
159
|
+
params.outputMint = WRAPPED_SOL_MINT_ADDRESS;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
const url = new URL('/compute/swap-base-in', API_URLS.SWAP_HOST);
|
|
163
|
+
url.searchParams.set('inputMint', params.inputMint);
|
|
164
|
+
url.searchParams.set('outputMint', params.outputMint);
|
|
165
|
+
url.searchParams.set('amount', params.amount);
|
|
166
|
+
url.searchParams.set('slippageBps', params.slippageBps.toString());
|
|
167
|
+
url.searchParams.set('txVersion', 'V0');
|
|
168
|
+
|
|
169
|
+
const response = await fetch(url);
|
|
170
|
+
|
|
171
|
+
if (!response.ok) {
|
|
172
|
+
throw new Error(`Failed to fetch quote from Raydium API: ${response.status} ${response.statusText}`);
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
const data: RaydiumQuoteResponse = await response.json();
|
|
176
|
+
|
|
177
|
+
if (!data.success) {
|
|
178
|
+
throw new Error('Raydium API returned unsuccessful response');
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
return data;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
/**
|
|
185
|
+
* Get transaction data for executing a swap
|
|
186
|
+
* @param params - Transaction parameters
|
|
187
|
+
* @returns Serialized transaction data
|
|
188
|
+
*/
|
|
189
|
+
public async getSwapTransaction(params: {
|
|
190
|
+
swapResponse: RaydiumQuoteResponse;
|
|
191
|
+
wallet: string;
|
|
192
|
+
txVersion: 'V0' | 'LEGACY';
|
|
193
|
+
wrapSol?: boolean;
|
|
194
|
+
unwrapSol?: boolean;
|
|
195
|
+
inputAccount?: string;
|
|
196
|
+
outputAccount?: string;
|
|
197
|
+
computeUnitPriceMicroLamports?: string;
|
|
198
|
+
}): Promise<{
|
|
199
|
+
id: string;
|
|
200
|
+
version: string;
|
|
201
|
+
success: boolean;
|
|
202
|
+
data: { transaction: string }[];
|
|
203
|
+
}> {
|
|
204
|
+
const url = new URL('/transaction/swap-base-in', API_URLS.SWAP_HOST);
|
|
205
|
+
const response = await fetch(url, {
|
|
206
|
+
method: 'POST',
|
|
207
|
+
headers: {
|
|
208
|
+
'Content-Type': 'application/json',
|
|
209
|
+
},
|
|
210
|
+
body: JSON.stringify({
|
|
211
|
+
computeUnitPriceMicroLamports: params.computeUnitPriceMicroLamports || '0',
|
|
212
|
+
swapResponse: params.swapResponse,
|
|
213
|
+
txVersion: params.txVersion,
|
|
214
|
+
wallet: params.wallet,
|
|
215
|
+
wrapSol: params.wrapSol || false,
|
|
216
|
+
unwrapSol: params.unwrapSol || false,
|
|
217
|
+
inputAccount: params.inputAccount,
|
|
218
|
+
outputAccount: params.outputAccount,
|
|
219
|
+
}),
|
|
220
|
+
});
|
|
221
|
+
|
|
222
|
+
if (!response.ok) {
|
|
223
|
+
throw new Error(`Failed to get swap transaction from Raydium API: ${response.status} ${response.statusText}`);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
const data = await response.json();
|
|
227
|
+
|
|
228
|
+
if (!data.success) {
|
|
229
|
+
throw new Error('Raydium API returned unsuccessful response for swap transaction');
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
return data;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
public async getQuotePrebonded(raydiumParams: RaydiumPumpQuoteParams): Promise<SimpleQuote> {
|
|
236
|
+
// First, get the Raydium quote token
|
|
237
|
+
let raydiumSdk = await initSdk();
|
|
238
|
+
let inputMintPk = new PublicKey(raydiumParams.inputMint);
|
|
239
|
+
let outputMintPk = new PublicKey(raydiumParams.outputMint);
|
|
240
|
+
|
|
241
|
+
// Check if either input or output mint is in the launchpad whitelisted tokens
|
|
242
|
+
let poolInfo, inputPoolInfo, outputPoolInfo, quoteToken, isInputPrebonded, inputQuoteToken, outputQuoteToken;
|
|
243
|
+
try {
|
|
244
|
+
[inputPoolInfo, inputQuoteToken] = await this.checkPreboundedTokensSwapLaunchpad(raydiumSdk, inputMintPk);
|
|
245
|
+
if (inputPoolInfo && inputQuoteToken) {
|
|
246
|
+
isInputPrebonded = true;
|
|
247
|
+
poolInfo = inputPoolInfo;
|
|
248
|
+
quoteToken = inputQuoteToken;
|
|
249
|
+
}
|
|
250
|
+
} catch (e) {}
|
|
251
|
+
try {
|
|
252
|
+
[outputPoolInfo, outputQuoteToken] = await this.checkPreboundedTokensSwapLaunchpad(raydiumSdk, outputMintPk);
|
|
253
|
+
if (outputPoolInfo && outputQuoteToken) {
|
|
254
|
+
isInputPrebonded = false;
|
|
255
|
+
poolInfo = outputPoolInfo;
|
|
256
|
+
quoteToken = outputQuoteToken;
|
|
257
|
+
}
|
|
258
|
+
} catch (e) {}
|
|
259
|
+
|
|
260
|
+
if (inputPoolInfo && outputPoolInfo) {
|
|
261
|
+
// Both input and output are prebonded, which is not supported
|
|
262
|
+
throw new Error('Both input and output tokens are prebonded, which is not supported');
|
|
263
|
+
} else if (!quoteToken || !poolInfo) {
|
|
264
|
+
// Neither input nor output is prebonded, fallback to regular Raydium quote
|
|
265
|
+
throw new Error('Neither input nor output tokens are prebonded');
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
let quoteIsInput = quoteToken.equals(inputMintPk);
|
|
269
|
+
let quoteIsOutput = quoteToken.equals(outputMintPk);
|
|
270
|
+
|
|
271
|
+
if (isInputPrebonded) {
|
|
272
|
+
// We have to estimate prebonded first and then swap from quote token to output token (if needed)
|
|
273
|
+
let { expectedAmountOut, minimumAmountOut } = await this.estimatePrebondedToQuote(
|
|
274
|
+
raydiumSdk,
|
|
275
|
+
inputMintPk,
|
|
276
|
+
poolInfo,
|
|
277
|
+
'sell',
|
|
278
|
+
new BN(raydiumParams.amount),
|
|
279
|
+
new BN(raydiumParams.slippageBps), // Use full slippage for simplicity
|
|
280
|
+
);
|
|
281
|
+
|
|
282
|
+
// Then, if output token is not quote token, we have to swap from quote token to output token
|
|
283
|
+
if (!quoteIsOutput) {
|
|
284
|
+
let jupiterQuoteRequest: JupiterQuoteParams = {
|
|
285
|
+
amount: BigInt(expectedAmountOut.toString()),
|
|
286
|
+
tokenIn: quoteToken.toString(),
|
|
287
|
+
tokenOut: raydiumParams.outputMint,
|
|
288
|
+
swapMode: 'ExactIn',
|
|
289
|
+
slippageBps: raydiumParams.slippageBps, // Use full slippage for simplicity
|
|
290
|
+
};
|
|
291
|
+
const jupiterQuoter = new JupiterQuoteProvider();
|
|
292
|
+
const jupiterQuote = await jupiterQuoter.getQuote(jupiterQuoteRequest);
|
|
293
|
+
if (!jupiterQuote.quote) {
|
|
294
|
+
throw new Error('Jupiter quote failed');
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
return {
|
|
298
|
+
amountIn: BigInt(raydiumParams.amount),
|
|
299
|
+
amountOut: BigInt(jupiterQuote.quote.outAmount),
|
|
300
|
+
amountOutMin: BigInt(jupiterQuote.quote.otherAmountThreshold),
|
|
301
|
+
slippage: raydiumParams.slippageBps / 100,
|
|
302
|
+
};
|
|
303
|
+
} else {
|
|
304
|
+
return {
|
|
305
|
+
amountIn: BigInt(raydiumParams.amount),
|
|
306
|
+
amountOut: BigInt(expectedAmountOut.toString()),
|
|
307
|
+
amountOutMin: BigInt(minimumAmountOut.toString()),
|
|
308
|
+
slippage: raydiumParams.slippageBps / 100,
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
} else {
|
|
312
|
+
// We have to swap from input token to quote token and then estimate prebonded
|
|
313
|
+
let amountOutFromInput = new BN(raydiumParams.amount);
|
|
314
|
+
if (!quoteIsInput) {
|
|
315
|
+
let jupiterQuoteRequest: JupiterQuoteParams = {
|
|
316
|
+
amount: BigInt(raydiumParams.amount),
|
|
317
|
+
tokenIn: raydiumParams.inputMint,
|
|
318
|
+
tokenOut: quoteToken.toString(),
|
|
319
|
+
swapMode: 'ExactIn',
|
|
320
|
+
slippageBps: raydiumParams.slippageBps, // Use full slippage for simplicity
|
|
321
|
+
};
|
|
322
|
+
const jupiterQuoter = new JupiterQuoteProvider();
|
|
323
|
+
const jupiterQuote = await jupiterQuoter.getQuote(jupiterQuoteRequest);
|
|
324
|
+
if (!jupiterQuote.quote) {
|
|
325
|
+
throw new Error('Jupiter quote failed');
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
// Calculate minimum amount with slippage applied
|
|
329
|
+
amountOutFromInput = new BN(jupiterQuote.quote.outAmount);
|
|
330
|
+
}
|
|
331
|
+
// Now estimate prebonded
|
|
332
|
+
let { expectedAmountOut, minimumAmountOut } = await this.estimatePrebondedToQuote(
|
|
333
|
+
raydiumSdk,
|
|
334
|
+
outputMintPk,
|
|
335
|
+
poolInfo,
|
|
336
|
+
'buy',
|
|
337
|
+
amountOutFromInput,
|
|
338
|
+
new BN(raydiumParams.slippageBps),
|
|
339
|
+
);
|
|
340
|
+
return {
|
|
341
|
+
amountIn: BigInt(raydiumParams.amount),
|
|
342
|
+
amountOut: BigInt(expectedAmountOut.toString()),
|
|
343
|
+
amountOutMin: BigInt(minimumAmountOut.toString()),
|
|
344
|
+
slippage: raydiumParams.slippageBps / 100,
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
async checkPreboundedTokensSwapLaunchpad(
|
|
350
|
+
raydiumSdk: Raydium,
|
|
351
|
+
raydiumMint: PublicKey,
|
|
352
|
+
): Promise<
|
|
353
|
+
[
|
|
354
|
+
LaunchpadPoolInfo & {
|
|
355
|
+
programId: PublicKey;
|
|
356
|
+
configInfo: LaunchpadConfigInfo;
|
|
357
|
+
},
|
|
358
|
+
PublicKey,
|
|
359
|
+
]
|
|
360
|
+
> {
|
|
361
|
+
// Try cache first
|
|
362
|
+
const cacheKey = raydiumMint.toBase58();
|
|
363
|
+
const cached = launchpadPoolCache.get(cacheKey);
|
|
364
|
+
if (cached && Date.now() < cached.expiresAt) {
|
|
365
|
+
return cached.data;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
// Check if either input or output mint is in the launchpad whitelisted tokens
|
|
369
|
+
// Check for input mint
|
|
370
|
+
for (const quoteToken of LAUNCHPAD_WHITELISTED_QUOTE_TOKENS) {
|
|
371
|
+
try {
|
|
372
|
+
const poolId = getPdaLaunchpadPoolId(LAUNCHPAD_PROGRAM, raydiumMint, quoteToken).publicKey;
|
|
373
|
+
const poolCacheKey = poolId.toBase58();
|
|
374
|
+
const cachedPoolInfo = launchpadPoolInfoCache.get(poolCacheKey);
|
|
375
|
+
const poolInfo =
|
|
376
|
+
cachedPoolInfo && Date.now() < cachedPoolInfo.expiresAt
|
|
377
|
+
? cachedPoolInfo.data
|
|
378
|
+
: await raydiumSdk.launchpad.getRpcPoolInfo({ poolId });
|
|
379
|
+
|
|
380
|
+
launchpadPoolInfoCache.set(poolCacheKey, {
|
|
381
|
+
data: poolInfo,
|
|
382
|
+
expiresAt: Date.now() + TWO_SECONDS_MS,
|
|
383
|
+
});
|
|
384
|
+
// Cache positive result for a short period
|
|
385
|
+
launchpadPoolCache.set(cacheKey, {
|
|
386
|
+
data: [poolInfo, quoteToken],
|
|
387
|
+
expiresAt: Date.now() + TWO_SECONDS_MS,
|
|
388
|
+
});
|
|
389
|
+
return [poolInfo, quoteToken];
|
|
390
|
+
} catch (e) {
|
|
391
|
+
// Ignore and continue trying with next quote token
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
throw new Error('No launchpad pool found for the given token pair');
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
async estimatePrebondedToQuote(
|
|
398
|
+
raydiumSdk: Raydium,
|
|
399
|
+
raydiumMint: PublicKey,
|
|
400
|
+
poolInfo: LaunchpadPoolInfo & {
|
|
401
|
+
programId: PublicKey;
|
|
402
|
+
configInfo: LaunchpadConfigInfo;
|
|
403
|
+
},
|
|
404
|
+
trade_type: 'buy' | 'sell',
|
|
405
|
+
amount: BN,
|
|
406
|
+
slippage: BN,
|
|
407
|
+
): Promise<{ expectedAmountOut: BN; minimumAmountOut: BN }> {
|
|
408
|
+
const epochInfo = await raydiumSdk.connection.getEpochInfo();
|
|
409
|
+
const slot = await raydiumSdk.connection.getSlot();
|
|
410
|
+
const platformCacheKey = poolInfo.platformId.toBase58();
|
|
411
|
+
let platformInfoEntry = platformConfigCache.get(platformCacheKey);
|
|
412
|
+
if (!platformInfoEntry || Date.now() > platformInfoEntry.expiresAt) {
|
|
413
|
+
const accountInfo = await raydiumSdk.connection.getAccountInfo(poolInfo.platformId);
|
|
414
|
+
if (!accountInfo) {
|
|
415
|
+
throw new Error('Platform account not found');
|
|
416
|
+
}
|
|
417
|
+
platformInfoEntry = {
|
|
418
|
+
data: PlatformConfig.decode(accountInfo.data),
|
|
419
|
+
expiresAt: Date.now() + TEN_MINUTES_MS,
|
|
420
|
+
};
|
|
421
|
+
platformConfigCache.set(platformCacheKey, platformInfoEntry);
|
|
422
|
+
}
|
|
423
|
+
const platformInfo = platformInfoEntry.data;
|
|
424
|
+
|
|
425
|
+
const mintCacheKey = raydiumMint.toBase58();
|
|
426
|
+
let mintInfo = mintInfoCache.get(mintCacheKey);
|
|
427
|
+
if (!mintInfo) {
|
|
428
|
+
mintInfo = await raydiumSdk.token.getTokenInfo(raydiumMint);
|
|
429
|
+
mintInfoCache.set(mintCacheKey, mintInfo);
|
|
430
|
+
}
|
|
431
|
+
const shareFeeRate = new BN(0);
|
|
432
|
+
|
|
433
|
+
let expectedAmountOut;
|
|
434
|
+
let minimumAmountOut;
|
|
435
|
+
if (trade_type === 'buy') {
|
|
436
|
+
const res = Curve.buyExactIn({
|
|
437
|
+
poolInfo,
|
|
438
|
+
amountB: amount,
|
|
439
|
+
protocolFeeRate: poolInfo.configInfo.tradeFeeRate,
|
|
440
|
+
platformFeeRate: platformInfo.feeRate,
|
|
441
|
+
curveType: poolInfo.configInfo.curveType,
|
|
442
|
+
shareFeeRate,
|
|
443
|
+
creatorFeeRate: platformInfo.creatorFeeRate,
|
|
444
|
+
transferFeeConfigA: mintInfo.extensions.feeConfig
|
|
445
|
+
? {
|
|
446
|
+
transferFeeConfigAuthority: PublicKey.default,
|
|
447
|
+
withdrawWithheldAuthority: PublicKey.default,
|
|
448
|
+
withheldAmount: BigInt(0),
|
|
449
|
+
olderTransferFee: {
|
|
450
|
+
epoch: BigInt(mintInfo.extensions.feeConfig.olderTransferFee.epoch ?? epochInfo?.epoch ?? 0),
|
|
451
|
+
maximumFee: BigInt(mintInfo.extensions.feeConfig.olderTransferFee.maximumFee),
|
|
452
|
+
transferFeeBasisPoints: mintInfo.extensions.feeConfig.olderTransferFee.transferFeeBasisPoints,
|
|
453
|
+
},
|
|
454
|
+
newerTransferFee: {
|
|
455
|
+
epoch: BigInt(mintInfo.extensions.feeConfig.newerTransferFee.epoch ?? epochInfo?.epoch ?? 0),
|
|
456
|
+
maximumFee: BigInt(mintInfo.extensions.feeConfig.newerTransferFee.maximumFee),
|
|
457
|
+
transferFeeBasisPoints: mintInfo.extensions.feeConfig.newerTransferFee.transferFeeBasisPoints,
|
|
458
|
+
},
|
|
459
|
+
}
|
|
460
|
+
: undefined,
|
|
461
|
+
slot,
|
|
462
|
+
});
|
|
463
|
+
expectedAmountOut = new BN(res.amountA.amount.sub(res.amountA.fee ?? new BN(0)).toString());
|
|
464
|
+
minimumAmountOut = new BN(
|
|
465
|
+
new Decimal(res.amountA.amount.sub(res.amountA.fee ?? new BN(0)).toString())
|
|
466
|
+
.mul((10000 - slippage.toNumber()) / 10000)
|
|
467
|
+
.toFixed(0),
|
|
468
|
+
);
|
|
469
|
+
} else if (trade_type === 'sell') {
|
|
470
|
+
const res = Curve.sellExactIn({
|
|
471
|
+
poolInfo,
|
|
472
|
+
amountA: amount,
|
|
473
|
+
protocolFeeRate: poolInfo.configInfo.tradeFeeRate,
|
|
474
|
+
platformFeeRate: platformInfo.feeRate,
|
|
475
|
+
curveType: poolInfo.configInfo.curveType,
|
|
476
|
+
shareFeeRate,
|
|
477
|
+
creatorFeeRate: platformInfo.creatorFeeRate,
|
|
478
|
+
slot,
|
|
479
|
+
transferFeeConfigA: mintInfo.extensions.feeConfig
|
|
480
|
+
? {
|
|
481
|
+
transferFeeConfigAuthority: PublicKey.default,
|
|
482
|
+
withdrawWithheldAuthority: PublicKey.default,
|
|
483
|
+
withheldAmount: BigInt(0),
|
|
484
|
+
olderTransferFee: {
|
|
485
|
+
epoch: BigInt(mintInfo.extensions.feeConfig.olderTransferFee.epoch ?? epochInfo?.epoch ?? 0),
|
|
486
|
+
maximumFee: BigInt(mintInfo.extensions.feeConfig.olderTransferFee.maximumFee),
|
|
487
|
+
transferFeeBasisPoints: mintInfo.extensions.feeConfig.olderTransferFee.transferFeeBasisPoints,
|
|
488
|
+
},
|
|
489
|
+
newerTransferFee: {
|
|
490
|
+
epoch: BigInt(mintInfo.extensions.feeConfig.newerTransferFee.epoch ?? epochInfo?.epoch ?? 0),
|
|
491
|
+
maximumFee: BigInt(mintInfo.extensions.feeConfig.newerTransferFee.maximumFee),
|
|
492
|
+
transferFeeBasisPoints: mintInfo.extensions.feeConfig.newerTransferFee.transferFeeBasisPoints,
|
|
493
|
+
},
|
|
494
|
+
}
|
|
495
|
+
: undefined,
|
|
496
|
+
});
|
|
497
|
+
expectedAmountOut = new BN(res.amountB);
|
|
498
|
+
minimumAmountOut = new BN(
|
|
499
|
+
new Decimal(res.amountB.toString()).mul((10000 - slippage.toNumber()) / 10000).toFixed(0),
|
|
500
|
+
);
|
|
501
|
+
} else {
|
|
502
|
+
throw new Error('Invalid trade type. Must be "buy" or "sell".');
|
|
503
|
+
}
|
|
504
|
+
return { expectedAmountOut, minimumAmountOut };
|
|
505
|
+
}
|
|
506
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { type SupportedEvmChain } from "../../chains.js";
|
|
2
|
+
import { isNativeEvmToken, WRAPPED_ETH_ADDRESSES } from "../../constants.js";
|
|
3
|
+
|
|
4
|
+
const RELAY_BASE_URL = "https://api.relay.link/quote";
|
|
5
|
+
|
|
6
|
+
export type RelayQuoteRequestParams = {
|
|
7
|
+
srcToken: string;
|
|
8
|
+
destToken: string;
|
|
9
|
+
amount: bigint;
|
|
10
|
+
user?: string;
|
|
11
|
+
recipient?: string;
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
export type RelayQuoteResult = {
|
|
15
|
+
amountOut: bigint;
|
|
16
|
+
amountIn: bigint;
|
|
17
|
+
amountOutUsd: number;
|
|
18
|
+
amountInUsd: number;
|
|
19
|
+
slippage: number;
|
|
20
|
+
priceImpact: number;
|
|
21
|
+
quote: any;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export class RelayQuoteProvider {
|
|
25
|
+
protected chainId: SupportedEvmChain;
|
|
26
|
+
|
|
27
|
+
constructor(chainId: SupportedEvmChain) {
|
|
28
|
+
this.chainId = chainId;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
private async postRelayQuote(params: RelayQuoteRequestParams) {
|
|
32
|
+
const user = params.user ?? "0x000000000000000000000000000000000000dead";
|
|
33
|
+
|
|
34
|
+
const srcToken = isNativeEvmToken(params.srcToken)
|
|
35
|
+
? WRAPPED_ETH_ADDRESSES[this.chainId]
|
|
36
|
+
: params.srcToken;
|
|
37
|
+
|
|
38
|
+
const destToken = isNativeEvmToken(params.destToken)
|
|
39
|
+
? WRAPPED_ETH_ADDRESSES[this.chainId]
|
|
40
|
+
: params.destToken;
|
|
41
|
+
|
|
42
|
+
const body = {
|
|
43
|
+
user,
|
|
44
|
+
recipient: params.recipient ?? user,
|
|
45
|
+
originChainId: this.chainId,
|
|
46
|
+
destinationChainId: this.chainId,
|
|
47
|
+
originCurrency: srcToken,
|
|
48
|
+
destinationCurrency: destToken,
|
|
49
|
+
amount: params.amount.toString(),
|
|
50
|
+
tradeType: "EXACT_INPUT",
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
const res = await fetch(RELAY_BASE_URL, {
|
|
54
|
+
method: "POST",
|
|
55
|
+
headers: {
|
|
56
|
+
"Content-Type": "application/json",
|
|
57
|
+
},
|
|
58
|
+
body: JSON.stringify(body),
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
if (!res.ok) {
|
|
62
|
+
throw new Error(`Relay POST /quote failed: ${await res.text()}`);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
return res.json();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
public async getSwapEstimation(
|
|
69
|
+
params: RelayQuoteRequestParams
|
|
70
|
+
): Promise<RelayQuoteResult> {
|
|
71
|
+
const relayQuote = await this.postRelayQuote(params);
|
|
72
|
+
|
|
73
|
+
const details = relayQuote.details;
|
|
74
|
+
|
|
75
|
+
const amountIn = BigInt(details.currencyIn.amount);
|
|
76
|
+
const amountOut = BigInt(details.currencyOut.amount);
|
|
77
|
+
|
|
78
|
+
const amountInUsd = Number(details.currencyIn.amountUsd ?? 0);
|
|
79
|
+
const amountOutUsd = Number(details.currencyOut.amountUsd ?? 0);
|
|
80
|
+
|
|
81
|
+
const priceImpact = details.totalImpact?.percent
|
|
82
|
+
? Number(details.totalImpact.percent)
|
|
83
|
+
: 0;
|
|
84
|
+
|
|
85
|
+
const slippage = details.slippageTolerance?.origin?.percent
|
|
86
|
+
? Number(details.slippageTolerance.origin.percent)
|
|
87
|
+
: 0;
|
|
88
|
+
|
|
89
|
+
return {
|
|
90
|
+
amountIn,
|
|
91
|
+
amountOut,
|
|
92
|
+
amountInUsd,
|
|
93
|
+
amountOutUsd,
|
|
94
|
+
slippage,
|
|
95
|
+
priceImpact,
|
|
96
|
+
quote: relayQuote,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
@@ -9,14 +9,41 @@ export type QuoteParams = {
|
|
|
9
9
|
slippageBps?: number;
|
|
10
10
|
};
|
|
11
11
|
|
|
12
|
-
export const
|
|
12
|
+
export const CROSS_CHAIN_STABLES: Record<string, Partial<Record<ChainID, { address: string; decimals: number }>>> = {
|
|
13
13
|
USDC: {
|
|
14
|
-
[ChainID.Solana]:
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
[ChainID.
|
|
19
|
-
|
|
14
|
+
[ChainID.Solana]: {
|
|
15
|
+
address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
|
|
16
|
+
decimals: 6,
|
|
17
|
+
},
|
|
18
|
+
[ChainID.Base]: {
|
|
19
|
+
address: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
|
|
20
|
+
decimals: 6,
|
|
21
|
+
},
|
|
22
|
+
[ChainID.Arbitrum]: {
|
|
23
|
+
address: '0xaf88d065e77c8cC2239327C5EDb3A432268e5831',
|
|
24
|
+
decimals: 6,
|
|
25
|
+
},
|
|
26
|
+
[ChainID.Optimism]: {
|
|
27
|
+
address: '0x7F5c764cBc14f9669B88837ca1490cCa17c31607',
|
|
28
|
+
decimals: 6,
|
|
29
|
+
},
|
|
30
|
+
[ChainID.Sui]: {
|
|
31
|
+
address: '0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC',
|
|
32
|
+
decimals: 6,
|
|
33
|
+
},
|
|
34
|
+
[ChainID.MONAD]: {
|
|
35
|
+
address: '0x754704Bc059F8C67012fEd69BC8A327a5aafb603',
|
|
36
|
+
decimals: 6,
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
USDT: {
|
|
40
|
+
[ChainID.Hyperliquid]: {
|
|
41
|
+
address: '0xb8ce59fc3717ada4c02eadf9682a9e934f625ebb',
|
|
42
|
+
decimals: 6,
|
|
43
|
+
},
|
|
44
|
+
[ChainID.BSC]: {
|
|
45
|
+
address: '0x55d398326f99059ff775485246999027b3197955',
|
|
46
|
+
decimals: 18,
|
|
47
|
+
},
|
|
20
48
|
},
|
|
21
|
-
// Add more tokens as needed
|
|
22
49
|
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const TEN_MINUTES_MS = 10 * 60 * 1000;
|
|
2
|
+
export const TWO_SECONDS_MS = 2 * 1000;
|
|
3
|
+
export const ONE_DAY_MS = 24 * 60 * 60 * 1000;
|
|
4
|
+
|
|
5
|
+
export function applySlippage(amount: bigint, slippageBps = 0): bigint {
|
|
6
|
+
const multiplier = BigInt(10000 - slippageBps);
|
|
7
|
+
return (amount * multiplier) / 10000n;
|
|
8
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { TOKEN_SEARCH_API_BASE_URL } from '../../constants.js';
|
|
2
|
+
import type { TokenSearchParams, TokenSearchResponse } from '../../types/token-list.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* getTokenList
|
|
6
|
+
*
|
|
7
|
+
* High-level SDK function for token discovery.
|
|
8
|
+
* Supports cancellation via AbortController.
|
|
9
|
+
*
|
|
10
|
+
* Example:
|
|
11
|
+
* ```ts
|
|
12
|
+
* import { getTokenList } from "@shogun/sdk";
|
|
13
|
+
*
|
|
14
|
+
* const controller = new AbortController();
|
|
15
|
+
* const res = await getTokenList({ q: "usdc", networkId: 8453, signal: controller.signal });
|
|
16
|
+
*
|
|
17
|
+
* To cancel:
|
|
18
|
+
* controller.abort();
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export async function getTokenList(params: TokenSearchParams): Promise<TokenSearchResponse> {
|
|
22
|
+
const url = new URL(`${TOKEN_SEARCH_API_BASE_URL}/tokens/search`);
|
|
23
|
+
|
|
24
|
+
if (params.q) url.searchParams.append('q', params.q);
|
|
25
|
+
if (params.networkId) url.searchParams.append('networkId', String(params.networkId));
|
|
26
|
+
if (params.page) url.searchParams.append('page', String(params.page));
|
|
27
|
+
if (params.limit) url.searchParams.append('limit', String(params.limit));
|
|
28
|
+
|
|
29
|
+
const res = await fetch(url.toString(), {
|
|
30
|
+
signal: params.signal,
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
if (!res.ok) {
|
|
34
|
+
throw new Error(`Failed to fetch tokens: ${res.status} ${res.statusText}`);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return (await res.json()) as TokenSearchResponse;
|
|
38
|
+
}
|