@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,33 @@
|
|
|
1
|
+
import { ChainID } from '../../../chains.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Solver commission in basis points. MUST equal the solver's COMMISSION env value
|
|
5
|
+
* (solver/src/config.rs). Update both together to avoid quote divergence.
|
|
6
|
+
*/
|
|
7
|
+
export const DEFAULT_COMMISSION_BPS = 50n; // 0.5% — placeholder, confirm against solver COMMISSION
|
|
8
|
+
|
|
9
|
+
/** Single-chain divisor — mirrors evaluate.rs:130-131 (`commission / 10_000`). */
|
|
10
|
+
export const SINGLE_CHAIN_COMMISSION_DENOMINATOR = 10_000n;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Cross-chain divisor — mirrors cross_chain_estimation.rs:213-214 (`commission / 100_000`).
|
|
14
|
+
* The asymmetry with the single-chain divisor is intentional (verbatim solver mirror);
|
|
15
|
+
* confirm with the solver team whether this is a unit choice or a bug before relying on it.
|
|
16
|
+
*/
|
|
17
|
+
export const CROSS_CHAIN_COMMISSION_DENOMINATOR = 100_000n;
|
|
18
|
+
|
|
19
|
+
/** EVM fulfillment gas units — mirrors solver/src/constants/chains.rs (EVM single-chain). */
|
|
20
|
+
export const EVM_SINGLE_CHAIN_GAS_LIMIT = 3_000_000n;
|
|
21
|
+
|
|
22
|
+
/** EVM cross-chain fulfillment gas units — mirrors solver/src/constants/chains.rs (EVM cross-chain). */
|
|
23
|
+
export const EVM_CROSS_CHAIN_GAS_LIMIT = 2_000_000n;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Fixed native-token gas cost for non-EVM chains, in the chain's smallest unit.
|
|
27
|
+
* Mirrors solver/src/constants/chains.rs: Sui = 20_000_000 MIST; Solana base = 200_000 lamports
|
|
28
|
+
* (single-receiver default; per-receiver ATA cost is not modeled at quote time).
|
|
29
|
+
*/
|
|
30
|
+
export const NON_EVM_FIXED_NATIVE_GAS_COST: Partial<Record<ChainID, bigint>> = {
|
|
31
|
+
[ChainID.Sui]: 20_000_000n,
|
|
32
|
+
[ChainID.Solana]: 200_000n,
|
|
33
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Integer decimal conversion between two tokens, mirroring solver cross_chain_estimation.rs:205-211.
|
|
3
|
+
* Uses BigInt powers of ten to avoid the float precision loss of `Math.floor(Number(...))`.
|
|
4
|
+
*/
|
|
5
|
+
export function convertDecimals(amount: bigint, fromDecimals: number, toDecimals: number): bigint {
|
|
6
|
+
const diff = toDecimals - fromDecimals;
|
|
7
|
+
if (diff >= 0) {
|
|
8
|
+
return amount * 10n ** BigInt(diff);
|
|
9
|
+
}
|
|
10
|
+
return amount / 10n ** BigInt(-diff);
|
|
11
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/** Expense components, all expressed in the output token's smallest units. */
|
|
2
|
+
export type Expenses = {
|
|
3
|
+
gasInTokenOut: bigint;
|
|
4
|
+
protocolFeeInTokenOut: bigint;
|
|
5
|
+
extraTransfersInTokenOut: bigint;
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
/** Thrown when total expenses meet or exceed the swap output, mirroring the solver's rejection. */
|
|
9
|
+
export class IntentNotViableError extends Error {
|
|
10
|
+
constructor(message: string) {
|
|
11
|
+
super(message);
|
|
12
|
+
this.name = 'IntentNotViableError';
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Ports solver_rust evaluate.rs: final amount = swapOutput − expenses − commission.
|
|
18
|
+
* `commissionBps` is basis points; `commissionDenominator` selects single-chain (10_000n)
|
|
19
|
+
* vs cross-chain (100_000n) semantics. Throws IntentNotViableError when nothing is left.
|
|
20
|
+
*/
|
|
21
|
+
export function estimateAmountOut(
|
|
22
|
+
swapOutput: bigint,
|
|
23
|
+
commissionBps: bigint,
|
|
24
|
+
expenses: Expenses,
|
|
25
|
+
commissionDenominator = 10_000n,
|
|
26
|
+
): bigint {
|
|
27
|
+
const commissionFee = (swapOutput * commissionBps) / commissionDenominator;
|
|
28
|
+
const total =
|
|
29
|
+
expenses.gasInTokenOut + expenses.protocolFeeInTokenOut + expenses.extraTransfersInTokenOut + commissionFee;
|
|
30
|
+
|
|
31
|
+
if (total >= swapOutput) {
|
|
32
|
+
throw new IntentNotViableError(`Total expenses (${total}) meet or exceed swap output (${swapOutput})`);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return swapOutput - total;
|
|
36
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ChainID, type SupportedChain } from '../../../chains.js';
|
|
2
|
+
import {
|
|
3
|
+
NATIVE_EVM_ETH_ADDRESSES,
|
|
4
|
+
NATIVE_SOLANA_TOKEN_ADDRESS,
|
|
5
|
+
NATIVE_SUI_TOKEN_ADDRESS,
|
|
6
|
+
isNativeEvmToken,
|
|
7
|
+
} from '../../../constants.js';
|
|
8
|
+
import { compareAddresses } from '../address.js';
|
|
9
|
+
import type { Expenses } from './estimate-amount-out.js';
|
|
10
|
+
import { getNativeGasCost } from './gas.js';
|
|
11
|
+
|
|
12
|
+
/** Quotes a native->tokenOut swap on the given chain. Injected to keep this module a leaf (no dependency on the aggregator). */
|
|
13
|
+
type GasQuoteFn = (params: {
|
|
14
|
+
chainId: SupportedChain;
|
|
15
|
+
amount: bigint;
|
|
16
|
+
tokenIn: string;
|
|
17
|
+
tokenOut: string;
|
|
18
|
+
}) => Promise<{ amountOut: bigint }>;
|
|
19
|
+
|
|
20
|
+
function nativeTokenAddressForChain(chainId: SupportedChain): string {
|
|
21
|
+
if (chainId === ChainID.Solana) return NATIVE_SOLANA_TOKEN_ADDRESS;
|
|
22
|
+
if (chainId === ChainID.Sui) return NATIVE_SUI_TOKEN_ADDRESS;
|
|
23
|
+
// EVM native sentinel addresses share the same 0xEee... value; use the first.
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
25
|
+
return NATIVE_EVM_ETH_ADDRESSES[0]!;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
function isNativeToken(chainId: SupportedChain, address: string): boolean {
|
|
29
|
+
if (chainId === ChainID.Solana) return compareAddresses(address, NATIVE_SOLANA_TOKEN_ADDRESS);
|
|
30
|
+
if (chainId === ChainID.Sui) return compareAddresses(address, NATIVE_SUI_TOKEN_ADDRESS);
|
|
31
|
+
return isNativeEvmToken(address);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Builds the Expenses bundle in the output token. Gas is fetched in native units and
|
|
36
|
+
* swapped into tokenOut via the injected quote fn, mirroring how the solver converts
|
|
37
|
+
* expenses into the output token. protocolFee/extraTransfers are reserved (0n) for now.
|
|
38
|
+
*/
|
|
39
|
+
export async function estimateExpensesInTokenOut(params: {
|
|
40
|
+
chainId: SupportedChain;
|
|
41
|
+
tokenOut: string;
|
|
42
|
+
gasLimit: bigint;
|
|
43
|
+
getQuote: GasQuoteFn;
|
|
44
|
+
rpcProviderUrl?: string;
|
|
45
|
+
}): Promise<Expenses> {
|
|
46
|
+
const { chainId, tokenOut, gasLimit, getQuote, rpcProviderUrl } = params;
|
|
47
|
+
|
|
48
|
+
const nativeGasCost = await getNativeGasCost({ chainId, gasLimit, rpcProviderUrl });
|
|
49
|
+
|
|
50
|
+
const gasInTokenOut = isNativeToken(chainId, tokenOut)
|
|
51
|
+
? nativeGasCost
|
|
52
|
+
: (
|
|
53
|
+
await getQuote({
|
|
54
|
+
chainId,
|
|
55
|
+
amount: nativeGasCost,
|
|
56
|
+
tokenIn: nativeTokenAddressForChain(chainId),
|
|
57
|
+
tokenOut,
|
|
58
|
+
})
|
|
59
|
+
).amountOut;
|
|
60
|
+
|
|
61
|
+
return { gasInTokenOut, protocolFeeInTokenOut: 0n, extraTransfersInTokenOut: 0n };
|
|
62
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { getGasPrice } from 'viem/actions';
|
|
2
|
+
import { isEvmChain, type SupportedChain } from '../../../chains.js';
|
|
3
|
+
import { ChainProvider } from '../../../core/evm/chain-provider.js';
|
|
4
|
+
import { NON_EVM_FIXED_NATIVE_GAS_COST } from './constants.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Gas cost in the chain's native smallest unit (wei / lamports / MIST).
|
|
8
|
+
* EVM: live gas price × gas limit. Non-EVM: solver-mirrored fixed cost.
|
|
9
|
+
*/
|
|
10
|
+
export async function getNativeGasCost(params: {
|
|
11
|
+
chainId: SupportedChain;
|
|
12
|
+
gasLimit: bigint;
|
|
13
|
+
rpcProviderUrl?: string;
|
|
14
|
+
}): Promise<bigint> {
|
|
15
|
+
const { chainId, gasLimit, rpcProviderUrl } = params;
|
|
16
|
+
|
|
17
|
+
if (isEvmChain(chainId)) {
|
|
18
|
+
const client = ChainProvider.getClient(chainId, rpcProviderUrl);
|
|
19
|
+
const gasPrice = await getGasPrice(client);
|
|
20
|
+
return gasLimit * gasPrice;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const fixed = NON_EVM_FIXED_NATIVE_GAS_COST[chainId];
|
|
24
|
+
if (fixed === undefined) {
|
|
25
|
+
throw new Error(`No fixed native gas cost configured for chain ${chainId}`);
|
|
26
|
+
}
|
|
27
|
+
return fixed;
|
|
28
|
+
}
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
import type { BondingCurve, GlobalAccount } from './models.js';
|
|
2
|
+
|
|
3
|
+
export const BPS_DEN = 10000n;
|
|
4
|
+
|
|
5
|
+
export enum PreBondedTradeType {
|
|
6
|
+
BuyExactIn = 'BuyExactIn',
|
|
7
|
+
BuyExactOut = 'BuyExactOut',
|
|
8
|
+
SellExactIn = 'SellExactIn',
|
|
9
|
+
SellExactOut = 'SellExactOut',
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
class PreBondingError extends Error {
|
|
13
|
+
constructor(message: string) {
|
|
14
|
+
super(message);
|
|
15
|
+
this.name = 'PreBondingError';
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Calculate output amount for constant product AMM: (amount_in * y_out) / (x_in + amount_in)
|
|
21
|
+
*/
|
|
22
|
+
function cpAmountOut(amountIn: bigint, xIn: bigint, yOut: bigint): bigint {
|
|
23
|
+
if (xIn === 0n || yOut === 0n) {
|
|
24
|
+
throw new PreBondingError('Zero value for reserve');
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
const num = amountIn * yOut;
|
|
28
|
+
const den = xIn + amountIn;
|
|
29
|
+
|
|
30
|
+
return num / den;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* Buy exact SOL in, get tokens out.
|
|
35
|
+
* Fee is deducted from SOL before the swap calculation.
|
|
36
|
+
*/
|
|
37
|
+
export function buyExactIn(curve: BondingCurve, solIn: bigint, feeBps: bigint): bigint {
|
|
38
|
+
if (curve.complete) {
|
|
39
|
+
throw new PreBondingError(`Pool not in fundraising state: ${JSON.stringify(curve)}`);
|
|
40
|
+
}
|
|
41
|
+
if (solIn === 0n) {
|
|
42
|
+
return 0n;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
const vSol = curve.virtualSolReserves;
|
|
46
|
+
const vTok = curve.virtualTokenReserves;
|
|
47
|
+
|
|
48
|
+
// Deduct protocol + creator fee from input SOL
|
|
49
|
+
const fee = (solIn * feeBps) / BPS_DEN;
|
|
50
|
+
const effectiveSolIn = solIn - fee;
|
|
51
|
+
|
|
52
|
+
let out = cpAmountOut(effectiveSolIn, vSol, vTok);
|
|
53
|
+
|
|
54
|
+
// Observed rounding in buy path (+1)
|
|
55
|
+
out = out + 1n;
|
|
56
|
+
|
|
57
|
+
// Cap by real tokens available
|
|
58
|
+
return out < curve.realTokenReserves ? out : curve.realTokenReserves;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Sell exact tokens in, get SOL out.
|
|
63
|
+
* Fee is deducted from SOL output.
|
|
64
|
+
*/
|
|
65
|
+
export function sellExactIn(curve: BondingCurve, tokensIn: bigint, feeBps: bigint): bigint {
|
|
66
|
+
if (curve.complete) {
|
|
67
|
+
throw new PreBondingError(`Pool not in fundraising state: ${JSON.stringify(curve)}`);
|
|
68
|
+
}
|
|
69
|
+
if (tokensIn === 0n) {
|
|
70
|
+
return 0n;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
const vTok = curve.virtualTokenReserves;
|
|
74
|
+
const vSol = curve.virtualSolReserves;
|
|
75
|
+
|
|
76
|
+
const gross = cpAmountOut(tokensIn, vTok, vSol);
|
|
77
|
+
|
|
78
|
+
// Deduct protocol + creator fee from output SOL
|
|
79
|
+
const fee = (gross * feeBps) / BPS_DEN;
|
|
80
|
+
let net = gross - fee;
|
|
81
|
+
|
|
82
|
+
// Cap by real SOL available
|
|
83
|
+
net = net < curve.realSolReserves ? net : curve.realSolReserves;
|
|
84
|
+
|
|
85
|
+
return net;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Buy exact tokens out, calculate required SOL in.
|
|
90
|
+
* This calculates the EXACT amount needed, but doesn't account for slippage buffer.
|
|
91
|
+
*/
|
|
92
|
+
export function buyExactOut(curve: BondingCurve, tokensOut: bigint, feeBps: bigint): bigint {
|
|
93
|
+
if (curve.complete) {
|
|
94
|
+
throw new PreBondingError(`Pool not in fundraising state: ${JSON.stringify(curve)}`);
|
|
95
|
+
}
|
|
96
|
+
if (tokensOut === 0n) {
|
|
97
|
+
return 0n;
|
|
98
|
+
}
|
|
99
|
+
if (tokensOut > curve.realTokenReserves) {
|
|
100
|
+
throw new PreBondingError('Insufficient liquidity: real_token cap');
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
const vSol = curve.virtualSolReserves;
|
|
104
|
+
const vTok = curve.virtualTokenReserves;
|
|
105
|
+
|
|
106
|
+
if (tokensOut >= vTok) {
|
|
107
|
+
throw new PreBondingError('Insufficient liquidity: tokens_out >= v_tok');
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
// Calculate effective SOL needed before fees: ceil((vSol * tokensOut) / (vTok - tokensOut))
|
|
111
|
+
const num = vSol * tokensOut;
|
|
112
|
+
const den = vTok - tokensOut;
|
|
113
|
+
const effIn = (num + den - 1n) / den; // ceiling division
|
|
114
|
+
|
|
115
|
+
const feeNum = BPS_DEN - feeBps;
|
|
116
|
+
if (feeNum === 0n) {
|
|
117
|
+
throw new PreBondingError('Invalid fee configuration');
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// Calculate gross SOL including fees: ceil((effIn * BPS_DEN) / feeNum)
|
|
121
|
+
const grossIn = (effIn * BPS_DEN + feeNum - 1n) / feeNum;
|
|
122
|
+
|
|
123
|
+
return grossIn;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Sell exact SOL out, calculate required tokens in.
|
|
128
|
+
* This calculates the EXACT amount needed, but doesn't account for slippage buffer.
|
|
129
|
+
*/
|
|
130
|
+
export function sellExactOut(curve: BondingCurve, solOut: bigint, feeBps: bigint): bigint {
|
|
131
|
+
if (curve.complete) {
|
|
132
|
+
throw new PreBondingError(`Pool not in fundraising state: ${JSON.stringify(curve)}`);
|
|
133
|
+
}
|
|
134
|
+
if (solOut === 0n) {
|
|
135
|
+
return 0n;
|
|
136
|
+
}
|
|
137
|
+
if (solOut > curve.realSolReserves) {
|
|
138
|
+
throw new PreBondingError('Insufficient liquidity: real_sol cap');
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const vTok = curve.virtualTokenReserves;
|
|
142
|
+
const vSol = curve.virtualSolReserves;
|
|
143
|
+
|
|
144
|
+
// fee_num = BPS_DEN - fee_bps
|
|
145
|
+
const feeNum = BPS_DEN - feeBps;
|
|
146
|
+
if (feeNum === 0n) {
|
|
147
|
+
throw new PreBondingError('Invalid fee configuration');
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
// Upper bound via continuous formula: gross = ceil((solOut * BPS_DEN) / feeNum)
|
|
151
|
+
const gross = (solOut * BPS_DEN + feeNum - 1n) / feeNum; // ceil
|
|
152
|
+
if (gross >= vSol) {
|
|
153
|
+
throw new PreBondingError('Insufficient liquidity: gross >= v_sol');
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// hi = ceil((vTok * gross) / (vSol - gross))
|
|
157
|
+
const num = vTok * gross;
|
|
158
|
+
const den = vSol - gross;
|
|
159
|
+
let hi = (num + den - 1n) / den; // ceil
|
|
160
|
+
if (hi === 0n) {
|
|
161
|
+
hi = 1n;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
// Monotonic binary search on sellExactIn using forward path (with real floors)
|
|
165
|
+
let lo = 0n;
|
|
166
|
+
let ans = hi;
|
|
167
|
+
while (lo <= hi) {
|
|
168
|
+
const mid = lo + (hi - lo) / 2n;
|
|
169
|
+
const got = sellExactIn(curve, mid, feeBps);
|
|
170
|
+
if (got >= solOut) {
|
|
171
|
+
ans = mid;
|
|
172
|
+
if (mid === 0n) break;
|
|
173
|
+
hi = mid - 1n;
|
|
174
|
+
} else {
|
|
175
|
+
lo = mid + 1n;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
return ans;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
export function estimatePumpFunPrebonded(
|
|
183
|
+
bondingCurve: BondingCurve,
|
|
184
|
+
globalAccount: GlobalAccount,
|
|
185
|
+
amount: bigint,
|
|
186
|
+
tradeType: PreBondedTradeType,
|
|
187
|
+
): bigint {
|
|
188
|
+
if (bondingCurve.complete) {
|
|
189
|
+
throw new PreBondingError(`Pool not in fundraising state: ${JSON.stringify(bondingCurve)}`);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
const totalFeeBps = globalAccount.feeBasisPoints + globalAccount.creatorFeeBasisPoints;
|
|
193
|
+
|
|
194
|
+
switch (tradeType) {
|
|
195
|
+
case PreBondedTradeType.BuyExactIn:
|
|
196
|
+
return buyExactIn(bondingCurve, amount, totalFeeBps);
|
|
197
|
+
case PreBondedTradeType.BuyExactOut:
|
|
198
|
+
return buyExactOut(bondingCurve, amount, totalFeeBps);
|
|
199
|
+
case PreBondedTradeType.SellExactIn:
|
|
200
|
+
return sellExactIn(bondingCurve, amount, totalFeeBps);
|
|
201
|
+
case PreBondedTradeType.SellExactOut:
|
|
202
|
+
return sellExactOut(bondingCurve, amount, totalFeeBps);
|
|
203
|
+
default:
|
|
204
|
+
throw new PreBondingError(`Invalid trade type: ${tradeType}`);
|
|
205
|
+
}
|
|
206
|
+
}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import type { GlobalConfig, TokenAccount } from './models.js';
|
|
2
|
+
import { BPS_DEN, PreBondedTradeType } from './estimations.js';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Reserves structure for AMM calculations
|
|
6
|
+
* X = reserve of the token you pay (input side)
|
|
7
|
+
* Y = reserve of the token you receive (output side)
|
|
8
|
+
*/
|
|
9
|
+
interface Reserves {
|
|
10
|
+
xIn: bigint;
|
|
11
|
+
yOut: bigint;
|
|
12
|
+
feeBps: bigint;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Ceiling division for bigints
|
|
17
|
+
* Returns ceil(n / d)
|
|
18
|
+
*/
|
|
19
|
+
function ceilDiv(n: bigint, d: bigint): bigint {
|
|
20
|
+
if (d === 0n) {
|
|
21
|
+
throw new Error('Division by zero');
|
|
22
|
+
}
|
|
23
|
+
return (n + d - 1n) / d;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Calculate output amount for constant product AMM with exact input
|
|
28
|
+
* Formula: dy = (dx_effective * y_out) / (x_in + dx_effective)
|
|
29
|
+
* where dx_effective = dx * BPS_DEN / (BPS_DEN + fee_bps)
|
|
30
|
+
*/
|
|
31
|
+
function amountOutExactIn(dx: bigint, r: Reserves): bigint {
|
|
32
|
+
if (dx === 0n) {
|
|
33
|
+
return 0n;
|
|
34
|
+
}
|
|
35
|
+
if (r.xIn === 0n || r.yOut === 0n) {
|
|
36
|
+
throw new Error('Insufficient liquidity: empty reserves');
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
const denom = BPS_DEN + r.feeBps;
|
|
40
|
+
const dxEff = (dx * BPS_DEN) / denom;
|
|
41
|
+
const num = dxEff * r.yOut;
|
|
42
|
+
const den = r.xIn + dxEff;
|
|
43
|
+
|
|
44
|
+
return num / den; // floor division
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Calculate input amount needed for exact output in constant product AMM
|
|
49
|
+
* Formula: dx = ceil(dx_effective * (BPS_DEN + fee_bps) / BPS_DEN)
|
|
50
|
+
* where dx_effective = ceil((x_in * dy) / (y_out - dy))
|
|
51
|
+
*/
|
|
52
|
+
function amountInExactOut(dy: bigint, r: Reserves): bigint {
|
|
53
|
+
if (dy === 0n) {
|
|
54
|
+
return 0n;
|
|
55
|
+
}
|
|
56
|
+
if (dy >= r.yOut || r.xIn === 0n) {
|
|
57
|
+
throw new Error('Insufficient liquidity: dy >= reserve or x_in is zero');
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
const dxEff = ceilDiv(r.xIn * dy, r.yOut - dy);
|
|
61
|
+
const denom = BPS_DEN + r.feeBps;
|
|
62
|
+
|
|
63
|
+
return ceilDiv(dxEff * denom, BPS_DEN);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Calculate base tokens received when buying with exact quote amount
|
|
68
|
+
* @param quoteIn Amount of quote tokens (SOL) to spend
|
|
69
|
+
* @param baseRes Base token reserve
|
|
70
|
+
* @param quoteRes Quote token reserve
|
|
71
|
+
* @param feeBps Fee in basis points
|
|
72
|
+
* @returns Amount of base tokens received
|
|
73
|
+
*/
|
|
74
|
+
export function buyBaseExactInQuote(quoteIn: bigint, baseRes: bigint, quoteRes: bigint, feeBps: bigint): bigint {
|
|
75
|
+
return amountOutExactIn(quoteIn, {
|
|
76
|
+
xIn: quoteRes,
|
|
77
|
+
yOut: baseRes,
|
|
78
|
+
feeBps,
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Calculate quote tokens needed to buy exact base amount
|
|
84
|
+
* @param baseOut Desired amount of base tokens
|
|
85
|
+
* @param baseRes Base token reserve
|
|
86
|
+
* @param quoteRes Quote token reserve
|
|
87
|
+
* @param feeBps Fee in basis points
|
|
88
|
+
* @returns Amount of quote tokens needed
|
|
89
|
+
*/
|
|
90
|
+
export function buyBaseExactOutQuote(baseOut: bigint, baseRes: bigint, quoteRes: bigint, feeBps: bigint): bigint {
|
|
91
|
+
return amountInExactOut(baseOut, {
|
|
92
|
+
xIn: quoteRes,
|
|
93
|
+
yOut: baseRes,
|
|
94
|
+
feeBps,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Calculate quote tokens received when selling exact base amount
|
|
100
|
+
* @param baseIn Amount of base tokens to sell
|
|
101
|
+
* @param baseRes Base token reserve
|
|
102
|
+
* @param quoteRes Quote token reserve
|
|
103
|
+
* @param feeBps Fee in basis points
|
|
104
|
+
* @returns Amount of quote tokens received
|
|
105
|
+
*/
|
|
106
|
+
export function sellBaseExactInQuote(baseIn: bigint, baseRes: bigint, quoteRes: bigint, feeBps: bigint): bigint {
|
|
107
|
+
return amountOutExactIn(baseIn, {
|
|
108
|
+
xIn: baseRes,
|
|
109
|
+
yOut: quoteRes,
|
|
110
|
+
feeBps,
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Calculate base tokens needed to receive exact quote amount
|
|
116
|
+
* @param quoteOut Desired amount of quote tokens
|
|
117
|
+
* @param baseRes Base token reserve
|
|
118
|
+
* @param quoteRes Quote token reserve
|
|
119
|
+
* @param feeBps Fee in basis points
|
|
120
|
+
* @returns Amount of base tokens needed
|
|
121
|
+
*/
|
|
122
|
+
export function sellBaseExactOutQuote(quoteOut: bigint, baseRes: bigint, quoteRes: bigint, feeBps: bigint): bigint {
|
|
123
|
+
return amountInExactOut(quoteOut, {
|
|
124
|
+
xIn: baseRes,
|
|
125
|
+
yOut: quoteRes,
|
|
126
|
+
feeBps,
|
|
127
|
+
});
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/**
|
|
131
|
+
* Main estimation function for PumpFun AMM
|
|
132
|
+
* @param baseToken Base token account info
|
|
133
|
+
* @param quoteToken Quote token account info
|
|
134
|
+
* @param globalConfig Global configuration with fee settings
|
|
135
|
+
* @param amount Amount to trade
|
|
136
|
+
* @param tradeType Type of trade (BuyExactIn, BuyExactOut, SellExactIn, SellExactOut)
|
|
137
|
+
* @returns Estimated output/input amount
|
|
138
|
+
*/
|
|
139
|
+
export function estimatePumpFunAmm(
|
|
140
|
+
baseToken: TokenAccount,
|
|
141
|
+
quoteToken: TokenAccount,
|
|
142
|
+
globalConfig: GlobalConfig,
|
|
143
|
+
amount: bigint,
|
|
144
|
+
tradeType: PreBondedTradeType,
|
|
145
|
+
): bigint {
|
|
146
|
+
const totalFeeBps =
|
|
147
|
+
globalConfig.lpFeeBasisPoints + globalConfig.protocolFeeBasisPoints + globalConfig.coinCreatorFeeBasisPoints;
|
|
148
|
+
|
|
149
|
+
switch (tradeType) {
|
|
150
|
+
case PreBondedTradeType.BuyExactIn:
|
|
151
|
+
return buyBaseExactInQuote(amount, baseToken.amount, quoteToken.amount, totalFeeBps);
|
|
152
|
+
|
|
153
|
+
case PreBondedTradeType.BuyExactOut:
|
|
154
|
+
return buyBaseExactOutQuote(amount, baseToken.amount, quoteToken.amount, totalFeeBps);
|
|
155
|
+
|
|
156
|
+
case PreBondedTradeType.SellExactIn:
|
|
157
|
+
return sellBaseExactInQuote(amount, baseToken.amount, quoteToken.amount, totalFeeBps);
|
|
158
|
+
|
|
159
|
+
case PreBondedTradeType.SellExactOut:
|
|
160
|
+
return sellBaseExactOutQuote(amount, baseToken.amount, quoteToken.amount, totalFeeBps);
|
|
161
|
+
|
|
162
|
+
default:
|
|
163
|
+
throw new Error(`Invalid trade type: ${tradeType}`);
|
|
164
|
+
}
|
|
165
|
+
}
|