@shogun-sdk/intents-sdk 1.2.0 → 1.2.2
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 +616 -55
- package/dist/esm/constants.js +21 -26
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/core/evm/abi/source-chain-guard.js +32 -628
- package/dist/esm/core/evm/abi/source-chain-guard.js.map +1 -1
- package/dist/esm/core/evm/cross-chain-limit-order.js +43 -0
- package/dist/esm/core/evm/cross-chain-limit-order.js.map +1 -0
- package/dist/esm/core/evm/intent-helpers.js +130 -0
- package/dist/esm/core/evm/intent-helpers.js.map +1 -0
- package/dist/esm/core/evm/sdk.js +4 -4
- package/dist/esm/core/evm/sdk.js.map +1 -1
- package/dist/esm/core/evm/single-chain-dca-order.js +49 -0
- package/dist/esm/core/evm/single-chain-dca-order.js.map +1 -0
- package/dist/esm/core/evm/single-chain-limit-order.js +45 -0
- package/dist/esm/core/evm/single-chain-limit-order.js.map +1 -0
- package/dist/esm/core/evm/types.js +8 -0
- package/dist/esm/core/evm/types.js.map +1 -0
- package/dist/esm/core/orders/common.js +3 -3
- package/dist/esm/core/orders/common.js.map +1 -1
- package/dist/esm/core/orders/cross-chain.js +3 -3
- package/dist/esm/core/orders/cross-chain.js.map +1 -1
- package/dist/esm/core/orders/dca-single-chain.js +4 -1
- package/dist/esm/core/orders/dca-single-chain.js.map +1 -1
- package/dist/esm/core/orders/single-chain.js +10 -2
- package/dist/esm/core/orders/single-chain.js.map +1 -1
- package/dist/esm/core/solana/cancel-order.js.map +1 -1
- package/dist/esm/core/solana/client.js +1 -1
- package/dist/esm/core/solana/client.js.map +1 -1
- package/dist/esm/core/solana/cross-chain-limit-order.js +18 -0
- package/dist/esm/core/solana/cross-chain-limit-order.js.map +1 -0
- package/dist/esm/core/solana/dca/cancel-order.js.map +1 -1
- package/dist/esm/core/solana/dca/create-order.js.map +1 -1
- package/dist/esm/core/solana/dca/single-chain-dca-order.js +23 -0
- package/dist/esm/core/solana/dca/single-chain-dca-order.js.map +1 -0
- package/dist/esm/core/solana/dca/single-chain-limit-order.js +29 -0
- package/dist/esm/core/solana/dca/single-chain-limit-order.js.map +1 -0
- package/dist/esm/core/solana/generated/cross-chain/accounts/adminSingleton.js +6 -4
- package/dist/esm/core/solana/generated/cross-chain/accounts/adminSingleton.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/accounts/dcaOrder.js +90 -0
- package/dist/esm/core/solana/generated/cross-chain/accounts/dcaOrder.js.map +1 -0
- package/dist/esm/core/solana/generated/cross-chain/accounts/guard.js +6 -4
- package/dist/esm/core/solana/generated/cross-chain/accounts/guard.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/accounts/index.js +1 -0
- package/dist/esm/core/solana/generated/cross-chain/accounts/index.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/accounts/order.js +3 -3
- package/dist/esm/core/solana/generated/cross-chain/accounts/order.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/errors/sourceChainGuard.js +111 -6
- package/dist/esm/core/solana/generated/cross-chain/errors/sourceChainGuard.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/acceptAdmin.js +5 -8
- package/dist/esm/core/solana/generated/cross-chain/instructions/acceptAdmin.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/cancelDcaOrder.js +118 -0
- package/dist/esm/core/solana/generated/cross-chain/instructions/cancelDcaOrder.js.map +1 -0
- package/dist/esm/core/solana/generated/cross-chain/instructions/cancelOrder.js +10 -28
- package/dist/esm/core/solana/generated/cross-chain/instructions/cancelOrder.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/claimTokens.js +9 -24
- package/dist/esm/core/solana/generated/cross-chain/instructions/claimTokens.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/collectProtocolFees.js +12 -25
- package/dist/esm/core/solana/generated/cross-chain/instructions/collectProtocolFees.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/createDcaOrder.js +170 -0
- package/dist/esm/core/solana/generated/cross-chain/instructions/createDcaOrder.js.map +1 -0
- package/dist/esm/core/solana/generated/cross-chain/instructions/createGuard.js +24 -72
- package/dist/esm/core/solana/generated/cross-chain/instructions/createGuard.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/createOrder.js +14 -30
- package/dist/esm/core/solana/generated/cross-chain/instructions/createOrder.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/index.js +2 -0
- package/dist/esm/core/solana/generated/cross-chain/instructions/index.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/initialize.js +11 -12
- package/dist/esm/core/solana/generated/cross-chain/instructions/initialize.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/preStartOrderExecution.js +12 -25
- package/dist/esm/core/solana/generated/cross-chain/instructions/preStartOrderExecution.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/setAdmin.js +4 -4
- package/dist/esm/core/solana/generated/cross-chain/instructions/setAdmin.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.js +18 -11
- package/dist/esm/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecution.js +10 -17
- package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecution.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.js +10 -17
- package/dist/esm/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/programs/sourceChainGuard.js +28 -16
- package/dist/esm/core/solana/generated/cross-chain/programs/sourceChainGuard.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/shared/index.js +7 -10
- package/dist/esm/core/solana/generated/cross-chain/shared/index.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/types/adminUpdateStarted.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/types/dcaExecutionStarted.js +32 -0
- package/dist/esm/core/solana/generated/cross-chain/types/dcaExecutionStarted.js.map +1 -0
- package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderCreated.js +42 -0
- package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderCreated.js.map +1 -0
- package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.js +26 -0
- package/dist/esm/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.js.map +1 -0
- package/dist/esm/core/solana/generated/cross-chain/types/dcaTokenInSwapped.js +28 -0
- package/dist/esm/core/solana/generated/cross-chain/types/dcaTokenInSwapped.js.map +1 -0
- package/dist/esm/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.js +26 -0
- package/dist/esm/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.js.map +1 -0
- package/dist/esm/core/solana/generated/cross-chain/types/index.js +5 -0
- package/dist/esm/core/solana/generated/cross-chain/types/index.js.map +1 -1
- package/dist/esm/core/solana/generated/cross-chain/types/tokenInSwapped.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/accounts/adminSingleton.js +6 -4
- package/dist/esm/core/solana/generated/single-chain/accounts/adminSingleton.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/accounts/dcaOrder.js +3 -3
- package/dist/esm/core/solana/generated/single-chain/accounts/dcaOrder.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/accounts/guard.js +3 -3
- package/dist/esm/core/solana/generated/single-chain/accounts/guard.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/accounts/limitOrder.js +3 -3
- package/dist/esm/core/solana/generated/single-chain/accounts/limitOrder.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/errors/singleChainGuard.js +3 -3
- package/dist/esm/core/solana/generated/single-chain/errors/singleChainGuard.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/acceptAdmin.js +5 -8
- package/dist/esm/core/solana/generated/single-chain/instructions/acceptAdmin.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/cancelDcaOrder.js +10 -17
- package/dist/esm/core/solana/generated/single-chain/instructions/cancelDcaOrder.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/cancelLimitOrder.js +10 -17
- package/dist/esm/core/solana/generated/single-chain/instructions/cancelLimitOrder.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/collectProtocolFees.js +14 -33
- package/dist/esm/core/solana/generated/single-chain/instructions/collectProtocolFees.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/createDcaOrder.js +14 -30
- package/dist/esm/core/solana/generated/single-chain/instructions/createDcaOrder.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/createGuard.js +12 -22
- package/dist/esm/core/solana/generated/single-chain/instructions/createGuard.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/createLimitOrder.js +14 -30
- package/dist/esm/core/solana/generated/single-chain/instructions/createLimitOrder.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.js +18 -42
- package/dist/esm/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/fulfillLimitOrder.js +17 -38
- package/dist/esm/core/solana/generated/single-chain/instructions/fulfillLimitOrder.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/initialize.js +9 -10
- package/dist/esm/core/solana/generated/single-chain/instructions/initialize.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/setAdmin.js +4 -4
- package/dist/esm/core/solana/generated/single-chain/instructions/setAdmin.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.js +18 -11
- package/dist/esm/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/programs/singleChainGuard.js +2 -2
- package/dist/esm/core/solana/generated/single-chain/programs/singleChainGuard.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/shared/index.js +7 -10
- package/dist/esm/core/solana/generated/single-chain/shared/index.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/types/adminUpdateStarted.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/types/dcaOrderFulfilled.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/types/guardCreated.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/types/limitOrderCreated.js.map +1 -1
- package/dist/esm/core/solana/generated/single-chain/types/limitOrderFulfilled.js.map +1 -1
- package/dist/esm/core/solana/inspect.js +1 -1
- package/dist/esm/core/solana/intent-helpers.js +177 -0
- package/dist/esm/core/solana/intent-helpers.js.map +1 -0
- package/dist/esm/core/solana/order-instructions.js.map +1 -1
- package/dist/esm/core/solana/sdk.js +4 -1
- package/dist/esm/core/solana/sdk.js.map +1 -1
- package/dist/esm/core/sui/cancel.js +1 -1
- package/dist/esm/core/sui/cancel.js.map +1 -1
- package/dist/esm/core/sui/cross-chain-limit-order.js +26 -0
- package/dist/esm/core/sui/cross-chain-limit-order.js.map +1 -0
- package/dist/esm/core/sui/intent-helpers.js +136 -0
- package/dist/esm/core/sui/intent-helpers.js.map +1 -0
- package/dist/esm/core/sui/order-transaction.js +5 -4
- package/dist/esm/core/sui/order-transaction.js.map +1 -1
- package/dist/esm/core/sui/sdk.js +1 -1
- package/dist/esm/core/sui/sdk.js.map +1 -1
- package/dist/esm/core/sui/single-chain-dca-order.js +99 -0
- package/dist/esm/core/sui/single-chain-dca-order.js.map +1 -0
- package/dist/esm/core/sui/single-chain-limit-order.js +103 -0
- package/dist/esm/core/sui/single-chain-limit-order.js.map +1 -0
- package/dist/esm/core/sui/validator.js +1 -2
- package/dist/esm/core/sui/validator.js.map +1 -1
- package/dist/esm/index.js +15 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/utils/quote/aggregator.js +2 -2
- package/dist/esm/utils/quote/aggregator.js.map +1 -1
- package/dist/types/constants.d.ts +3 -4
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/core/evm/abi/source-chain-guard.d.ts +18 -484
- package/dist/types/core/evm/abi/source-chain-guard.d.ts.map +1 -1
- package/dist/types/core/evm/cross-chain-limit-order.d.ts +22 -0
- package/dist/types/core/evm/cross-chain-limit-order.d.ts.map +1 -0
- package/dist/types/core/evm/intent-helpers.d.ts +105 -0
- package/dist/types/core/evm/intent-helpers.d.ts.map +1 -0
- package/dist/types/core/evm/single-chain-dca-order.d.ts +26 -0
- package/dist/types/core/evm/single-chain-dca-order.d.ts.map +1 -0
- package/dist/types/core/evm/single-chain-limit-order.d.ts +23 -0
- package/dist/types/core/evm/single-chain-limit-order.d.ts.map +1 -0
- package/dist/types/core/evm/types.d.ts +8 -0
- package/dist/types/core/evm/types.d.ts.map +1 -0
- package/dist/types/core/orders/common.d.ts +2 -2
- package/dist/types/core/orders/common.d.ts.map +1 -1
- package/dist/types/core/orders/cross-chain.d.ts +1 -1
- package/dist/types/core/orders/cross-chain.d.ts.map +1 -1
- package/dist/types/core/orders/dca-single-chain.d.ts.map +1 -1
- package/dist/types/core/orders/single-chain.d.ts +1 -0
- package/dist/types/core/orders/single-chain.d.ts.map +1 -1
- package/dist/types/core/solana/cancel-order.d.ts +3 -3
- package/dist/types/core/solana/cancel-order.d.ts.map +1 -1
- package/dist/types/core/solana/cross-chain-limit-order.d.ts +9 -0
- package/dist/types/core/solana/cross-chain-limit-order.d.ts.map +1 -0
- package/dist/types/core/solana/dca/cancel-order.d.ts +2 -2
- package/dist/types/core/solana/dca/cancel-order.d.ts.map +1 -1
- package/dist/types/core/solana/dca/single-chain-dca-order.d.ts +14 -0
- package/dist/types/core/solana/dca/single-chain-dca-order.d.ts.map +1 -0
- package/dist/types/core/solana/dca/single-chain-limit-order.d.ts +19 -0
- package/dist/types/core/solana/dca/single-chain-limit-order.d.ts.map +1 -0
- package/dist/types/core/solana/generated/cross-chain/accounts/adminSingleton.d.ts +6 -6
- package/dist/types/core/solana/generated/cross-chain/accounts/adminSingleton.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/accounts/dcaOrder.d.ts +110 -0
- package/dist/types/core/solana/generated/cross-chain/accounts/dcaOrder.d.ts.map +1 -0
- package/dist/types/core/solana/generated/cross-chain/accounts/guard.d.ts +10 -6
- package/dist/types/core/solana/generated/cross-chain/accounts/guard.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/accounts/index.d.ts +1 -0
- package/dist/types/core/solana/generated/cross-chain/accounts/index.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/accounts/order.d.ts +6 -6
- package/dist/types/core/solana/generated/cross-chain/accounts/order.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/errors/sourceChainGuard.d.ts +76 -6
- package/dist/types/core/solana/generated/cross-chain/errors/sourceChainGuard.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/acceptAdmin.d.ts +12 -12
- package/dist/types/core/solana/generated/cross-chain/instructions/acceptAdmin.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/cancelDcaOrder.d.ts +124 -0
- package/dist/types/core/solana/generated/cross-chain/instructions/cancelDcaOrder.d.ts.map +1 -0
- package/dist/types/core/solana/generated/cross-chain/instructions/cancelOrder.d.ts +12 -12
- package/dist/types/core/solana/generated/cross-chain/instructions/cancelOrder.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/claimTokens.d.ts +12 -12
- package/dist/types/core/solana/generated/cross-chain/instructions/claimTokens.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/collectProtocolFees.d.ts +15 -15
- package/dist/types/core/solana/generated/cross-chain/instructions/collectProtocolFees.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/createDcaOrder.d.ts +130 -0
- package/dist/types/core/solana/generated/cross-chain/instructions/createDcaOrder.d.ts.map +1 -0
- package/dist/types/core/solana/generated/cross-chain/instructions/createGuard.d.ts +16 -12
- package/dist/types/core/solana/generated/cross-chain/instructions/createGuard.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/createOrder.d.ts +12 -12
- package/dist/types/core/solana/generated/cross-chain/instructions/createOrder.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/index.d.ts +2 -0
- package/dist/types/core/solana/generated/cross-chain/instructions/index.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/initialize.d.ts +12 -12
- package/dist/types/core/solana/generated/cross-chain/instructions/initialize.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/preStartOrderExecution.d.ts +12 -12
- package/dist/types/core/solana/generated/cross-chain/instructions/preStartOrderExecution.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/setAdmin.d.ts +11 -11
- package/dist/types/core/solana/generated/cross-chain/instructions/setAdmin.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.d.ts +11 -11
- package/dist/types/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecution.d.ts +12 -12
- package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecution.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.d.ts +11 -11
- package/dist/types/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/programs/sourceChainGuard.d.ts +25 -18
- package/dist/types/core/solana/generated/cross-chain/programs/sourceChainGuard.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/shared/index.d.ts +5 -5
- package/dist/types/core/solana/generated/cross-chain/shared/index.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/types/adminUpdateStarted.d.ts +4 -4
- package/dist/types/core/solana/generated/cross-chain/types/adminUpdateStarted.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/types/adminUpdated.d.ts +4 -4
- package/dist/types/core/solana/generated/cross-chain/types/adminUpdated.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.d.ts +4 -4
- package/dist/types/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/types/dcaExecutionStarted.d.ts +28 -0
- package/dist/types/core/solana/generated/cross-chain/types/dcaExecutionStarted.d.ts.map +1 -0
- package/dist/types/core/solana/generated/cross-chain/types/dcaOrderCreated.d.ts +38 -0
- package/dist/types/core/solana/generated/cross-chain/types/dcaOrderCreated.d.ts.map +1 -0
- package/dist/types/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.d.ts +18 -0
- package/dist/types/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.d.ts.map +1 -0
- package/dist/types/core/solana/generated/cross-chain/types/dcaTokenInSwapped.d.ts +24 -0
- package/dist/types/core/solana/generated/cross-chain/types/dcaTokenInSwapped.d.ts.map +1 -0
- package/dist/types/core/solana/generated/cross-chain/types/executionStarted.d.ts +4 -4
- package/dist/types/core/solana/generated/cross-chain/types/executionStarted.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.d.ts +18 -0
- package/dist/types/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.d.ts.map +1 -0
- package/dist/types/core/solana/generated/cross-chain/types/guardCreated.d.ts +4 -4
- package/dist/types/core/solana/generated/cross-chain/types/guardCreated.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/types/index.d.ts +5 -0
- package/dist/types/core/solana/generated/cross-chain/types/index.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/types/orderCancelled.d.ts +4 -4
- package/dist/types/core/solana/generated/cross-chain/types/orderCancelled.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/types/orderCreated.d.ts +4 -4
- package/dist/types/core/solana/generated/cross-chain/types/orderCreated.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/types/orderFulfilled.d.ts +4 -4
- package/dist/types/core/solana/generated/cross-chain/types/orderFulfilled.d.ts.map +1 -1
- package/dist/types/core/solana/generated/cross-chain/types/tokenInSwapped.d.ts +4 -4
- package/dist/types/core/solana/generated/cross-chain/types/tokenInSwapped.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/accounts/adminSingleton.d.ts +6 -6
- package/dist/types/core/solana/generated/single-chain/accounts/adminSingleton.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/accounts/dcaOrder.d.ts +3 -3
- package/dist/types/core/solana/generated/single-chain/accounts/dcaOrder.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/accounts/guard.d.ts +6 -6
- package/dist/types/core/solana/generated/single-chain/accounts/guard.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/accounts/limitOrder.d.ts +3 -3
- package/dist/types/core/solana/generated/single-chain/accounts/limitOrder.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/errors/singleChainGuard.d.ts +2 -2
- package/dist/types/core/solana/generated/single-chain/errors/singleChainGuard.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/instructions/acceptAdmin.d.ts +12 -12
- package/dist/types/core/solana/generated/single-chain/instructions/acceptAdmin.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/instructions/cancelDcaOrder.d.ts +12 -12
- package/dist/types/core/solana/generated/single-chain/instructions/cancelDcaOrder.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/instructions/cancelLimitOrder.d.ts +12 -12
- package/dist/types/core/solana/generated/single-chain/instructions/cancelLimitOrder.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/instructions/collectProtocolFees.d.ts +12 -12
- package/dist/types/core/solana/generated/single-chain/instructions/collectProtocolFees.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/instructions/createDcaOrder.d.ts +9 -9
- package/dist/types/core/solana/generated/single-chain/instructions/createDcaOrder.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/instructions/createGuard.d.ts +11 -11
- package/dist/types/core/solana/generated/single-chain/instructions/createGuard.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/instructions/createLimitOrder.d.ts +9 -9
- package/dist/types/core/solana/generated/single-chain/instructions/createLimitOrder.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.d.ts +11 -11
- package/dist/types/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/instructions/fulfillLimitOrder.d.ts +11 -11
- package/dist/types/core/solana/generated/single-chain/instructions/fulfillLimitOrder.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/instructions/initialize.d.ts +12 -12
- package/dist/types/core/solana/generated/single-chain/instructions/initialize.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/instructions/setAdmin.d.ts +11 -11
- package/dist/types/core/solana/generated/single-chain/instructions/setAdmin.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.d.ts +11 -11
- package/dist/types/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/programs/singleChainGuard.d.ts +2 -2
- package/dist/types/core/solana/generated/single-chain/programs/singleChainGuard.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/shared/index.d.ts +5 -5
- package/dist/types/core/solana/generated/single-chain/shared/index.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/types/adminUpdateStarted.d.ts +4 -4
- package/dist/types/core/solana/generated/single-chain/types/adminUpdateStarted.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/types/adminUpdated.d.ts +4 -4
- package/dist/types/core/solana/generated/single-chain/types/adminUpdated.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.d.ts +4 -4
- package/dist/types/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/types/dcaOrderCreated.d.ts +4 -4
- package/dist/types/core/solana/generated/single-chain/types/dcaOrderCreated.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/types/dcaOrderFulfilled.d.ts +4 -4
- package/dist/types/core/solana/generated/single-chain/types/dcaOrderFulfilled.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.d.ts +4 -4
- package/dist/types/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/types/guardCreated.d.ts +4 -4
- package/dist/types/core/solana/generated/single-chain/types/guardCreated.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/types/limitOrderCreated.d.ts +4 -4
- package/dist/types/core/solana/generated/single-chain/types/limitOrderCreated.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/types/limitOrderFulfilled.d.ts +4 -4
- package/dist/types/core/solana/generated/single-chain/types/limitOrderFulfilled.d.ts.map +1 -1
- package/dist/types/core/solana/generated/single-chain/types/orderCancelled.d.ts +4 -4
- package/dist/types/core/solana/generated/single-chain/types/orderCancelled.d.ts.map +1 -1
- package/dist/types/core/solana/intent-helpers.d.ts +120 -0
- package/dist/types/core/solana/intent-helpers.d.ts.map +1 -0
- package/dist/types/core/solana/sdk.d.ts.map +1 -1
- package/dist/types/core/sui/cross-chain-limit-order.d.ts +14 -0
- package/dist/types/core/sui/cross-chain-limit-order.d.ts.map +1 -0
- package/dist/types/core/sui/intent-helpers.d.ts +89 -0
- package/dist/types/core/sui/intent-helpers.d.ts.map +1 -0
- package/dist/types/core/sui/order-transaction.d.ts +3 -1
- package/dist/types/core/sui/order-transaction.d.ts.map +1 -1
- package/dist/types/core/sui/single-chain-dca-order.d.ts +22 -0
- package/dist/types/core/sui/single-chain-dca-order.d.ts.map +1 -0
- package/dist/types/core/sui/single-chain-limit-order.d.ts +26 -0
- package/dist/types/core/sui/single-chain-limit-order.d.ts.map +1 -0
- package/dist/types/core/sui/validator.d.ts.map +1 -1
- package/dist/types/index.d.ts +13 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types/intent.d.ts +13 -4
- package/dist/types/types/intent.d.ts.map +1 -1
- package/package.json +19 -9
- package/src/constants.ts +17 -23
- package/src/core/evm/abi/source-chain-guard.ts +32 -628
- package/src/core/evm/cross-chain-limit-order.ts +76 -0
- package/src/core/evm/intent-helpers.ts +204 -0
- package/src/core/evm/sdk.ts +4 -4
- package/src/core/evm/single-chain-dca-order.ts +85 -0
- package/src/core/evm/single-chain-limit-order.ts +78 -0
- package/src/core/evm/types.ts +15 -0
- package/src/core/orders/common.ts +4 -4
- package/src/core/orders/cross-chain.ts +3 -3
- package/src/core/orders/dca-single-chain.ts +4 -1
- package/src/core/orders/single-chain.ts +12 -2
- package/src/core/solana/cancel-order.ts +5 -5
- package/src/core/solana/client.ts +1 -1
- package/src/core/solana/cross-chain-limit-order.ts +24 -0
- package/src/core/solana/dca/cancel-order.ts +3 -3
- package/src/core/solana/dca/create-order.ts +2 -2
- package/src/core/solana/dca/single-chain-dca-order.ts +32 -0
- package/src/core/solana/dca/single-chain-limit-order.ts +45 -0
- package/src/core/solana/generated/cross-chain/accounts/adminSingleton.ts +20 -18
- package/src/core/solana/generated/cross-chain/accounts/dcaOrder.ts +248 -0
- package/src/core/solana/generated/cross-chain/accounts/guard.ts +24 -18
- package/src/core/solana/generated/cross-chain/accounts/index.ts +1 -0
- package/src/core/solana/generated/cross-chain/accounts/order.ts +17 -17
- package/src/core/solana/generated/cross-chain/errors/sourceChainGuard.ts +155 -12
- package/src/core/solana/generated/cross-chain/instructions/acceptAdmin.ts +44 -34
- package/src/core/solana/generated/cross-chain/instructions/cancelDcaOrder.ts +409 -0
- package/src/core/solana/generated/cross-chain/instructions/cancelOrder.ts +54 -61
- package/src/core/solana/generated/cross-chain/instructions/claimTokens.ts +58 -60
- package/src/core/solana/generated/cross-chain/instructions/collectProtocolFees.ts +57 -62
- package/src/core/solana/generated/cross-chain/instructions/createDcaOrder.ts +496 -0
- package/src/core/solana/generated/cross-chain/instructions/createGuard.ts +86 -110
- package/src/core/solana/generated/cross-chain/instructions/createOrder.ts +66 -66
- package/src/core/solana/generated/cross-chain/instructions/index.ts +2 -0
- package/src/core/solana/generated/cross-chain/instructions/initialize.ts +60 -42
- package/src/core/solana/generated/cross-chain/instructions/preStartOrderExecution.ts +60 -64
- package/src/core/solana/generated/cross-chain/instructions/setAdmin.ts +49 -34
- package/src/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.ts +89 -46
- package/src/core/solana/generated/cross-chain/instructions/startOrderExecution.ts +51 -50
- package/src/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.ts +47 -48
- package/src/core/solana/generated/cross-chain/programs/sourceChainGuard.ts +118 -37
- package/src/core/solana/generated/cross-chain/shared/index.ts +25 -19
- package/src/core/solana/generated/cross-chain/types/adminUpdateStarted.ts +9 -6
- package/src/core/solana/generated/cross-chain/types/adminUpdated.ts +6 -6
- package/src/core/solana/generated/cross-chain/types/auctioneerPubkeyUpdated.ts +10 -10
- package/src/core/solana/generated/cross-chain/types/dcaExecutionStarted.ts +70 -0
- package/src/core/solana/generated/cross-chain/types/dcaOrderCreated.ts +92 -0
- package/src/core/solana/generated/cross-chain/types/dcaOrderIntervalFulfilled.ts +52 -0
- package/src/core/solana/generated/cross-chain/types/dcaTokenInSwapped.ts +62 -0
- package/src/core/solana/generated/cross-chain/types/executionStarted.ts +6 -6
- package/src/core/solana/generated/cross-chain/types/failedDcaIntervalExecution.ts +55 -0
- package/src/core/solana/generated/cross-chain/types/guardCreated.ts +6 -6
- package/src/core/solana/generated/cross-chain/types/index.ts +5 -0
- package/src/core/solana/generated/cross-chain/types/orderCancelled.ts +6 -6
- package/src/core/solana/generated/cross-chain/types/orderCreated.ts +6 -6
- package/src/core/solana/generated/cross-chain/types/orderFulfilled.ts +6 -6
- package/src/core/solana/generated/cross-chain/types/tokenInSwapped.ts +7 -11
- package/src/core/solana/generated/single-chain/accounts/adminSingleton.ts +20 -18
- package/src/core/solana/generated/single-chain/accounts/dcaOrder.ts +11 -11
- package/src/core/solana/generated/single-chain/accounts/guard.ts +17 -17
- package/src/core/solana/generated/single-chain/accounts/limitOrder.ts +11 -11
- package/src/core/solana/generated/single-chain/errors/singleChainGuard.ts +11 -8
- package/src/core/solana/generated/single-chain/instructions/acceptAdmin.ts +44 -34
- package/src/core/solana/generated/single-chain/instructions/cancelDcaOrder.ts +57 -51
- package/src/core/solana/generated/single-chain/instructions/cancelLimitOrder.ts +54 -51
- package/src/core/solana/generated/single-chain/instructions/collectProtocolFees.ts +62 -69
- package/src/core/solana/generated/single-chain/instructions/createDcaOrder.ts +66 -62
- package/src/core/solana/generated/single-chain/instructions/createGuard.ts +74 -62
- package/src/core/solana/generated/single-chain/instructions/createLimitOrder.ts +63 -62
- package/src/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.ts +86 -90
- package/src/core/solana/generated/single-chain/instructions/fulfillLimitOrder.ts +89 -87
- package/src/core/solana/generated/single-chain/instructions/initialize.ts +58 -40
- package/src/core/solana/generated/single-chain/instructions/setAdmin.ts +49 -34
- package/src/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.ts +89 -46
- package/src/core/solana/generated/single-chain/programs/singleChainGuard.ts +76 -37
- package/src/core/solana/generated/single-chain/shared/index.ts +25 -19
- package/src/core/solana/generated/single-chain/types/adminUpdateStarted.ts +9 -6
- package/src/core/solana/generated/single-chain/types/adminUpdated.ts +6 -6
- package/src/core/solana/generated/single-chain/types/auctioneerPubkeyUpdated.ts +10 -10
- package/src/core/solana/generated/single-chain/types/dcaOrderCreated.ts +6 -6
- package/src/core/solana/generated/single-chain/types/dcaOrderFulfilled.ts +9 -6
- package/src/core/solana/generated/single-chain/types/dcaOrderIntervalFulfilled.ts +9 -6
- package/src/core/solana/generated/single-chain/types/guardCreated.ts +7 -11
- package/src/core/solana/generated/single-chain/types/limitOrderCreated.ts +9 -6
- package/src/core/solana/generated/single-chain/types/limitOrderFulfilled.ts +10 -10
- package/src/core/solana/generated/single-chain/types/orderCancelled.ts +6 -6
- package/src/core/solana/inspect.ts +1 -1
- package/src/core/solana/intent-helpers.ts +273 -0
- package/src/core/solana/order-instructions.ts +3 -3
- package/src/core/solana/sdk.ts +13 -4
- package/src/core/sui/cancel.ts +1 -1
- package/src/core/sui/cross-chain-limit-order.ts +34 -0
- package/src/core/sui/intent-helpers.ts +235 -0
- package/src/core/sui/order-transaction.ts +8 -4
- package/src/core/sui/sdk.ts +1 -1
- package/src/core/sui/single-chain-dca-order.ts +139 -0
- package/src/core/sui/single-chain-limit-order.ts +143 -0
- package/src/core/sui/validator.ts +1 -2
- package/src/index.ts +55 -0
- package/src/types/intent.ts +15 -4
- package/src/utils/quote/aggregator.ts +2 -2
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
import { ChainID } from '../../chains.js';
|
|
2
|
+
import type { SingleChainUserIntentRequest, CrossChainUserIntentRequest, DcaSingleChainUserIntentRequest } from '../../types/intent.js';
|
|
3
|
+
import type { SingleChainOrder } from '../orders/single-chain.js';
|
|
4
|
+
import type { CrossChainOrder } from '../orders/cross-chain.js';
|
|
5
|
+
import type { DcaSingleChainOrder } from '../orders/dca-single-chain.js';
|
|
6
|
+
import type { ExtraTransfer } from '../orders/common.js';
|
|
7
|
+
import { getSolanaCrossChainOrderInstructions, getSolanaSingleChainOrderInstructions } from './order-instructions.js';
|
|
8
|
+
import { getSolanaDcaSingleChainOrderInstructions } from './dca/create-order.js';
|
|
9
|
+
import { prepareDcaSecretData } from './dca/single-chain-dca-order.js';
|
|
10
|
+
import { prepareSecretData } from './dca/single-chain-limit-order.js';
|
|
11
|
+
|
|
12
|
+
export type CreateSolanaSingleChainLimitOrderIntentParams = {
|
|
13
|
+
user: string;
|
|
14
|
+
tokenIn: string;
|
|
15
|
+
tokenOut: string;
|
|
16
|
+
amountIn: bigint;
|
|
17
|
+
amountOutMin: bigint;
|
|
18
|
+
destinationAddress: string;
|
|
19
|
+
extraTransfers?: ExtraTransfer[];
|
|
20
|
+
deadline: number;
|
|
21
|
+
orderPubkey?: string;
|
|
22
|
+
secretNumber?: string;
|
|
23
|
+
stopLossMaxOut?: bigint;
|
|
24
|
+
takeProfitMinOut?: bigint;
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export type CreateSolanaSingleChainDcaOrderIntentParams = {
|
|
28
|
+
user: string;
|
|
29
|
+
tokenIn: string;
|
|
30
|
+
tokenOut: string;
|
|
31
|
+
amountInPerInterval: bigint;
|
|
32
|
+
totalIntervals: number;
|
|
33
|
+
intervalDuration: number;
|
|
34
|
+
amountOutMin: bigint;
|
|
35
|
+
destinationAddress: string;
|
|
36
|
+
extraTransfers?: ExtraTransfer[];
|
|
37
|
+
deadline: number;
|
|
38
|
+
startTime: number;
|
|
39
|
+
orderPubkey?: string;
|
|
40
|
+
secretNumber?: string;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
export type CreateSolanaCrossChainOrderIntentParams = {
|
|
44
|
+
user: string;
|
|
45
|
+
sourceChainId: number;
|
|
46
|
+
sourceTokenAddress: string;
|
|
47
|
+
sourceTokenAmount: bigint;
|
|
48
|
+
destinationChainId: number;
|
|
49
|
+
destinationTokenAddress: string;
|
|
50
|
+
destinationTokenMinAmount?: bigint;
|
|
51
|
+
destinationAddress: string;
|
|
52
|
+
minStablecoinAmount?: bigint;
|
|
53
|
+
deadline: number;
|
|
54
|
+
extraTransfers?: ExtraTransfer[];
|
|
55
|
+
orderPubkey?: string;
|
|
56
|
+
stopLossMaxOut?: bigint;
|
|
57
|
+
takeProfitMinOut?: bigint;
|
|
58
|
+
};
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Creates a Solana single-chain limit order intent request
|
|
62
|
+
* @param params Parameters for creating the intent request
|
|
63
|
+
* @returns Formatted intent request ready to send to auctioneer
|
|
64
|
+
*/
|
|
65
|
+
export function createSolanaSingleChainLimitOrderIntentRequest(
|
|
66
|
+
params: CreateSolanaSingleChainLimitOrderIntentParams
|
|
67
|
+
): SingleChainUserIntentRequest {
|
|
68
|
+
const secretNumber = params.secretNumber || generateSolanaRandomSecretNumber();
|
|
69
|
+
|
|
70
|
+
const order: SingleChainOrder = {
|
|
71
|
+
user: params.user,
|
|
72
|
+
chainId: ChainID.Solana,
|
|
73
|
+
amountIn: params.amountIn,
|
|
74
|
+
tokenIn: params.tokenIn,
|
|
75
|
+
tokenOut: params.tokenOut,
|
|
76
|
+
amountOutMin: params.amountOutMin,
|
|
77
|
+
destinationAddress: params.destinationAddress,
|
|
78
|
+
extraTransfers: params.extraTransfers,
|
|
79
|
+
deadline: params.deadline,
|
|
80
|
+
stopLossMaxOut: params.stopLossMaxOut,
|
|
81
|
+
takeProfitMinOut: params.takeProfitMinOut,
|
|
82
|
+
} as SingleChainOrder;
|
|
83
|
+
|
|
84
|
+
return {
|
|
85
|
+
genericData: order,
|
|
86
|
+
chainSpecificData: {
|
|
87
|
+
Solana: {
|
|
88
|
+
secretNumber,
|
|
89
|
+
orderPubkey: params.orderPubkey || 'DFNAjFAvS4GF98Tp1kiyLvEHM3wjGXibCfF86nnmhuVc',
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Creates a Solana single-chain DCA order intent request
|
|
97
|
+
* @param params Parameters for creating the intent request
|
|
98
|
+
* @returns Formatted intent request ready to send to auctioneer
|
|
99
|
+
*/
|
|
100
|
+
export function createSolanaSingleChainDcaOrderIntentRequest(
|
|
101
|
+
params: CreateSolanaSingleChainDcaOrderIntentParams
|
|
102
|
+
): DcaSingleChainUserIntentRequest {
|
|
103
|
+
const secretNumber = params.secretNumber || generateSolanaRandomSecretNumber();
|
|
104
|
+
|
|
105
|
+
const order: DcaSingleChainOrder = {
|
|
106
|
+
user: params.user,
|
|
107
|
+
chainId: ChainID.Solana,
|
|
108
|
+
tokenIn: params.tokenIn,
|
|
109
|
+
tokenOut: params.tokenOut,
|
|
110
|
+
destinationAddress: params.destinationAddress,
|
|
111
|
+
startTime: params.startTime,
|
|
112
|
+
amountInPerInterval: params.amountInPerInterval,
|
|
113
|
+
totalIntervals: params.totalIntervals,
|
|
114
|
+
intervalDuration: params.intervalDuration,
|
|
115
|
+
amountOutMin: params.amountOutMin,
|
|
116
|
+
extraTransfers: params.extraTransfers,
|
|
117
|
+
deadline: params.deadline,
|
|
118
|
+
} as DcaSingleChainOrder;
|
|
119
|
+
|
|
120
|
+
return {
|
|
121
|
+
genericData: order,
|
|
122
|
+
chainSpecificData: {
|
|
123
|
+
Solana: {
|
|
124
|
+
secretNumber,
|
|
125
|
+
orderPubkey: params.orderPubkey || 'DFNAjFAvS4GF98Tp1kiyLvEHM3wjGXibCfF86nnmhuVc',
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Creates a Solana cross-chain order intent request
|
|
133
|
+
* @param params Parameters for creating the intent request
|
|
134
|
+
* @returns Formatted intent request ready to send to auctioneer
|
|
135
|
+
*/
|
|
136
|
+
export function createSolanaCrossChainOrderIntentRequest(
|
|
137
|
+
params: CreateSolanaCrossChainOrderIntentParams
|
|
138
|
+
): CrossChainUserIntentRequest {
|
|
139
|
+
const executionDetails = JSON.stringify({
|
|
140
|
+
destChainId: params.destinationChainId,
|
|
141
|
+
tokenOut: params.destinationTokenAddress,
|
|
142
|
+
amountOutMin: params.destinationTokenMinAmount || 1n,
|
|
143
|
+
destinationAddress: params.destinationAddress,
|
|
144
|
+
extraTransfers: params.extraTransfers,
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
// Calculate execution details hash
|
|
148
|
+
const executionDetailsHash = `0x${require('crypto').createHash('sha256').update(executionDetails).digest('hex')}` as `0x${string}`;
|
|
149
|
+
|
|
150
|
+
const genericData = {
|
|
151
|
+
user: params.user,
|
|
152
|
+
srcChainId: params.sourceChainId,
|
|
153
|
+
tokenIn: params.sourceTokenAddress,
|
|
154
|
+
amountIn: params.sourceTokenAmount,
|
|
155
|
+
minStablecoinsAmount: params.minStablecoinAmount || 1n,
|
|
156
|
+
deadline: params.deadline,
|
|
157
|
+
executionDetailsHash,
|
|
158
|
+
extraTransfers: params.extraTransfers,
|
|
159
|
+
stopLossMaxOut: params.stopLossMaxOut,
|
|
160
|
+
takeProfitMinOut: params.takeProfitMinOut,
|
|
161
|
+
};
|
|
162
|
+
|
|
163
|
+
return {
|
|
164
|
+
genericData,
|
|
165
|
+
executionDetails,
|
|
166
|
+
chainSpecificData: {
|
|
167
|
+
Solana: {
|
|
168
|
+
orderPubkey: params.orderPubkey || 'DFNAjFAvS4GF98Tp1kiyLvEHM3wjGXibCfF86nnmhuVc',
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Generates instruction bytes for Solana single-chain limit orders
|
|
176
|
+
* @param order The single-chain order
|
|
177
|
+
* @returns Promise resolving to instruction bytes
|
|
178
|
+
*/
|
|
179
|
+
export async function generateSolanaSingleChainLimitOrderInstructions(order: SingleChainOrder) {
|
|
180
|
+
return getSolanaSingleChainOrderInstructions(order);
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
/**
|
|
184
|
+
* Generates instruction bytes for Solana single-chain DCA orders
|
|
185
|
+
* @param order The DCA order
|
|
186
|
+
* @returns Promise resolving to instruction bytes
|
|
187
|
+
*/
|
|
188
|
+
export async function generateSolanaSingleChainDcaOrderInstructions(order: DcaSingleChainOrder) {
|
|
189
|
+
return getSolanaDcaSingleChainOrderInstructions(order);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
/**
|
|
193
|
+
* Generates instruction bytes for Solana cross-chain orders
|
|
194
|
+
* @param order The cross-chain order
|
|
195
|
+
* @returns Promise resolving to instruction bytes
|
|
196
|
+
*/
|
|
197
|
+
export async function generateSolanaCrossChainOrderInstructions(order: CrossChainOrder) {
|
|
198
|
+
return getSolanaCrossChainOrderInstructions(order);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Generates secret data for Solana single-chain limit orders
|
|
203
|
+
* @param tokenOut Output token mint address
|
|
204
|
+
* @param receiver Receiver public key
|
|
205
|
+
* @param secretNumber Secret number (optional, generates random if not provided)
|
|
206
|
+
* @param extraTransfers Extra transfers array
|
|
207
|
+
* @returns Object containing secret number and prepared secret data
|
|
208
|
+
*/
|
|
209
|
+
export function generateSolanaLimitOrderSecretData(
|
|
210
|
+
tokenOut: string,
|
|
211
|
+
receiver: string,
|
|
212
|
+
secretNumber?: string,
|
|
213
|
+
extraTransfers?: ExtraTransfer[]
|
|
214
|
+
): { secretNumber: string; secretData: any } {
|
|
215
|
+
const secret = secretNumber || generateSolanaRandomSecretNumber();
|
|
216
|
+
|
|
217
|
+
const { PublicKey } = require('@solana/web3.js');
|
|
218
|
+
const secretData = prepareSecretData(
|
|
219
|
+
new PublicKey(tokenOut),
|
|
220
|
+
new PublicKey(receiver),
|
|
221
|
+
extraTransfers?.map(t => ({
|
|
222
|
+
token: new PublicKey(t.token),
|
|
223
|
+
receiver: new PublicKey(t.receiver),
|
|
224
|
+
amount: t.amount.toString(),
|
|
225
|
+
})) || []
|
|
226
|
+
);
|
|
227
|
+
|
|
228
|
+
return {
|
|
229
|
+
secretNumber: secret,
|
|
230
|
+
secretData,
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Generates secret data for Solana single-chain DCA orders
|
|
236
|
+
* @param tokenOut Output token mint address
|
|
237
|
+
* @param receiver Receiver public key
|
|
238
|
+
* @param secretNumber Secret number (optional, generates random if not provided)
|
|
239
|
+
* @param extraTransfers Extra transfers array
|
|
240
|
+
* @returns Object containing secret number and prepared secret data
|
|
241
|
+
*/
|
|
242
|
+
export function generateSolanaDcaOrderSecretData(
|
|
243
|
+
tokenOut: string,
|
|
244
|
+
receiver: string,
|
|
245
|
+
secretNumber?: string,
|
|
246
|
+
extraTransfers?: ExtraTransfer[]
|
|
247
|
+
): { secretNumber: string; secretData: any } {
|
|
248
|
+
const secret = secretNumber || generateSolanaRandomSecretNumber();
|
|
249
|
+
|
|
250
|
+
const { PublicKey } = require('@solana/web3.js');
|
|
251
|
+
const secretData = prepareDcaSecretData(
|
|
252
|
+
new PublicKey(tokenOut),
|
|
253
|
+
new PublicKey(receiver),
|
|
254
|
+
extraTransfers?.map(t => ({
|
|
255
|
+
token: new PublicKey(t.token),
|
|
256
|
+
receiver: new PublicKey(t.receiver),
|
|
257
|
+
amount: t.amount.toString(),
|
|
258
|
+
})) || []
|
|
259
|
+
);
|
|
260
|
+
|
|
261
|
+
return {
|
|
262
|
+
secretNumber: secret,
|
|
263
|
+
secretData,
|
|
264
|
+
};
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/**
|
|
268
|
+
* Generates a random secret number for Solana orders
|
|
269
|
+
* @returns Random secret number as string
|
|
270
|
+
*/
|
|
271
|
+
export function generateSolanaRandomSecretNumber(): string {
|
|
272
|
+
return String(Math.floor(Math.random() * 10000000));
|
|
273
|
+
}
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
getAddressEncoder,
|
|
19
19
|
getProgramDerivedAddress,
|
|
20
20
|
getTransactionCodec,
|
|
21
|
-
type
|
|
21
|
+
type Instruction,
|
|
22
22
|
partiallySignTransactionMessageWithSigners,
|
|
23
23
|
pipe,
|
|
24
24
|
type ReadonlyUint8Array,
|
|
@@ -69,7 +69,7 @@ export async function getSolanaSingleChainOrderInstructions(
|
|
|
69
69
|
|
|
70
70
|
const guardAddress = address(SINGLE_CHAIN_GUARD_ADDRESSES[ChainID.Solana]);
|
|
71
71
|
const addressEncoder = getAddressEncoder();
|
|
72
|
-
const instructions: Array<
|
|
72
|
+
const instructions: Array<Instruction> = [];
|
|
73
73
|
|
|
74
74
|
const [tokenInProgramAccount] = await getProgramDerivedAddress({
|
|
75
75
|
programAddress: ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
|
|
@@ -191,7 +191,7 @@ export async function getSolanaCrossChainOrderInstructions(
|
|
|
191
191
|
],
|
|
192
192
|
});
|
|
193
193
|
|
|
194
|
-
const instructions: Array<
|
|
194
|
+
const instructions: Array<Instruction> = [];
|
|
195
195
|
|
|
196
196
|
const userTokenInAccount = await fetchEncodedAccount(rpc, tokenInProgramAccount);
|
|
197
197
|
|
package/src/core/solana/sdk.ts
CHANGED
|
@@ -12,10 +12,13 @@ import {
|
|
|
12
12
|
getTransactionCodec,
|
|
13
13
|
type KeyPairSigner,
|
|
14
14
|
partiallySignTransaction,
|
|
15
|
+
signTransaction,
|
|
15
16
|
pipe,
|
|
16
17
|
setTransactionMessageFeePayerSigner,
|
|
17
18
|
setTransactionMessageLifetimeUsingBlockhash,
|
|
18
|
-
|
|
19
|
+
type Transaction,
|
|
20
|
+
type TransactionWithLifetime,
|
|
21
|
+
assertIsSendableTransaction,
|
|
19
22
|
} from '@solana/kit';
|
|
20
23
|
import type { SolanaConfig } from '../../config.js';
|
|
21
24
|
import { BaseSDK } from '../sdk.js';
|
|
@@ -95,6 +98,8 @@ export class SolanaSDK extends BaseSDK {
|
|
|
95
98
|
const myTx = compileTransaction(transactionMessage);
|
|
96
99
|
|
|
97
100
|
const signature = await signTransaction([signerKeyPair], myTx);
|
|
101
|
+
|
|
102
|
+
assertIsSendableTransaction(signature);
|
|
98
103
|
|
|
99
104
|
await this.client.sendAndConfirmTransaction(signature, {
|
|
100
105
|
commitment: this.config.commitment,
|
|
@@ -125,6 +130,8 @@ export class SolanaSDK extends BaseSDK {
|
|
|
125
130
|
|
|
126
131
|
const signature = await signTransaction([signerKeyPair], myTx);
|
|
127
132
|
|
|
133
|
+
assertIsSendableTransaction(signature);
|
|
134
|
+
|
|
128
135
|
await this.client.sendAndConfirmTransaction(signature, {
|
|
129
136
|
commitment: this.config.commitment,
|
|
130
137
|
});
|
|
@@ -213,7 +220,7 @@ export class SolanaSDK extends BaseSDK {
|
|
|
213
220
|
|
|
214
221
|
const transactionCodec = getTransactionCodec();
|
|
215
222
|
|
|
216
|
-
const tx = transactionCodec.decode(txBytes);
|
|
223
|
+
const tx = transactionCodec.decode(txBytes) as Transaction & TransactionWithLifetime;
|
|
217
224
|
|
|
218
225
|
const signedTx = await signTransaction([signerKeyPair], tx);
|
|
219
226
|
|
|
@@ -238,7 +245,7 @@ export class SolanaSDK extends BaseSDK {
|
|
|
238
245
|
|
|
239
246
|
const transactionCodec = getTransactionCodec();
|
|
240
247
|
|
|
241
|
-
const tx = transactionCodec.decode(txBytes);
|
|
248
|
+
const tx = transactionCodec.decode(txBytes) as Transaction & TransactionWithLifetime;
|
|
242
249
|
|
|
243
250
|
const signedTx = await partiallySignTransaction([signerKeyPair], tx);
|
|
244
251
|
|
|
@@ -278,6 +285,8 @@ export class SolanaSDK extends BaseSDK {
|
|
|
278
285
|
|
|
279
286
|
const signature = await signTransaction([signerKeyPair], myTx);
|
|
280
287
|
|
|
288
|
+
assertIsSendableTransaction(signature);
|
|
289
|
+
|
|
281
290
|
await this.client.sendAndConfirmTransaction(signature, {
|
|
282
291
|
commitment: this.config.commitment,
|
|
283
292
|
});
|
|
@@ -294,7 +303,7 @@ export class SolanaSDK extends BaseSDK {
|
|
|
294
303
|
|
|
295
304
|
const transactionCodec = getTransactionCodec();
|
|
296
305
|
|
|
297
|
-
const tx = transactionCodec.decode(txBytes);
|
|
306
|
+
const tx = transactionCodec.decode(txBytes) as Transaction & TransactionWithLifetime;
|
|
298
307
|
|
|
299
308
|
const signedTx = await partiallySignTransaction([signerKeyPair], tx);
|
|
300
309
|
|
package/src/core/sui/cancel.ts
CHANGED
|
@@ -34,7 +34,7 @@ export async function getSuiCancelCrossChainOrder(orderId: string): Promise<Tran
|
|
|
34
34
|
|
|
35
35
|
tx.moveCall({
|
|
36
36
|
package: SUI_PACKAGE_ID,
|
|
37
|
-
module: '
|
|
37
|
+
module: 'cross_chain_limit_orders',
|
|
38
38
|
function: 'cancel_order',
|
|
39
39
|
arguments: [tx.object(orderId), tx.object.clock()],
|
|
40
40
|
typeArguments,
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { createHash } from "crypto";
|
|
2
|
+
import type { Hex } from "viem";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Generates random U64 number
|
|
6
|
+
*/
|
|
7
|
+
export function getRandomU64Number() {
|
|
8
|
+
return BigInt("0x" + [...crypto.getRandomValues(new Uint8Array(8))]
|
|
9
|
+
.map(n => n.toString(16))
|
|
10
|
+
.join("")).toString();
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Generate execution details hash for cross-chain orders
|
|
15
|
+
* @param destChainId Destination chain ID
|
|
16
|
+
* @param destinationAddress Destination address on target chain
|
|
17
|
+
* @param tokenOut Token address on destination chain
|
|
18
|
+
* @param amountOutMin Minimum amount out
|
|
19
|
+
*/
|
|
20
|
+
export function generateExecutionDetailsHash(
|
|
21
|
+
destChainId: number,
|
|
22
|
+
destinationAddress: string,
|
|
23
|
+
tokenOut: string,
|
|
24
|
+
amountOutMin: string,
|
|
25
|
+
): Hex {
|
|
26
|
+
const executionDetails = JSON.stringify({
|
|
27
|
+
destChainId,
|
|
28
|
+
destinationAddress,
|
|
29
|
+
tokenOut,
|
|
30
|
+
amountOutMin,
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
return ("0x" + createHash('sha256').update(executionDetails).digest('hex')) as `0x${string}`;
|
|
34
|
+
}
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { ChainID } from '../../chains.js';
|
|
2
|
+
import type { SingleChainUserIntentRequest, CrossChainUserIntentRequest, DcaSingleChainUserIntentRequest } from '../../types/intent.js';
|
|
3
|
+
import type { SingleChainOrder } from '../orders/single-chain.js';
|
|
4
|
+
import type { DcaSingleChainOrder } from '../orders/dca-single-chain.js';
|
|
5
|
+
import type { ExtraTransfer } from '../orders/common.js';
|
|
6
|
+
import { getSecretHash, getRandomU64Number } from './single-chain-limit-order.js';
|
|
7
|
+
import { getDcaSecretHash } from './single-chain-dca-order.js';
|
|
8
|
+
import { generateExecutionDetailsHash } from './cross-chain-limit-order.js';
|
|
9
|
+
|
|
10
|
+
export type CreateSuiSingleChainLimitOrderIntentParams = {
|
|
11
|
+
user: string;
|
|
12
|
+
tokenIn: string;
|
|
13
|
+
tokenOut: string;
|
|
14
|
+
amountIn: bigint;
|
|
15
|
+
amountOutMin: bigint;
|
|
16
|
+
destinationAddress: string;
|
|
17
|
+
extraTransfers?: ExtraTransfer[];
|
|
18
|
+
deadline: number;
|
|
19
|
+
transactionHash: string;
|
|
20
|
+
secretNumber?: string;
|
|
21
|
+
stopLossMaxOut?: bigint;
|
|
22
|
+
takeProfitMinOut?: bigint;
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export type CreateSuiSingleChainDcaOrderIntentParams = {
|
|
26
|
+
user: string;
|
|
27
|
+
tokenIn: string;
|
|
28
|
+
tokenOut: string;
|
|
29
|
+
amountInPerInterval: bigint;
|
|
30
|
+
totalIntervals: number;
|
|
31
|
+
intervalDuration: number;
|
|
32
|
+
amountOutMin: bigint;
|
|
33
|
+
destinationAddress: string;
|
|
34
|
+
extraTransfers?: ExtraTransfer[];
|
|
35
|
+
deadline: number;
|
|
36
|
+
startTime: number;
|
|
37
|
+
transactionHash: string;
|
|
38
|
+
secretNumber?: string;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export type CreateSuiCrossChainOrderIntentParams = {
|
|
42
|
+
user: string;
|
|
43
|
+
srcChainId: number;
|
|
44
|
+
tokenIn: string;
|
|
45
|
+
amountIn: bigint;
|
|
46
|
+
minStablecoinsAmount: bigint;
|
|
47
|
+
deadline: number;
|
|
48
|
+
destChainId: number;
|
|
49
|
+
destinationAddress: string;
|
|
50
|
+
tokenOut: string;
|
|
51
|
+
amountOutMin: bigint;
|
|
52
|
+
transactionHash: string;
|
|
53
|
+
stopLossMaxOut?: bigint;
|
|
54
|
+
takeProfitMinOut?: bigint;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Creates a Sui single-chain limit order intent request
|
|
59
|
+
* @param params Parameters for creating the intent request
|
|
60
|
+
* @returns Formatted intent request ready to send to auctioneer
|
|
61
|
+
*/
|
|
62
|
+
export function createSuiSingleChainLimitOrderIntentRequest(
|
|
63
|
+
params: CreateSuiSingleChainLimitOrderIntentParams
|
|
64
|
+
): SingleChainUserIntentRequest {
|
|
65
|
+
const secretNumber = params.secretNumber || getRandomU64Number();
|
|
66
|
+
|
|
67
|
+
const order: SingleChainOrder = {
|
|
68
|
+
user: params.user,
|
|
69
|
+
chainId: ChainID.Sui,
|
|
70
|
+
amountIn: params.amountIn,
|
|
71
|
+
tokenIn: params.tokenIn,
|
|
72
|
+
tokenOut: params.tokenOut,
|
|
73
|
+
amountOutMin: params.amountOutMin,
|
|
74
|
+
destinationAddress: params.destinationAddress,
|
|
75
|
+
extraTransfers: params.extraTransfers,
|
|
76
|
+
deadline: params.deadline,
|
|
77
|
+
stopLossMaxOut: params.stopLossMaxOut,
|
|
78
|
+
takeProfitMinOut: params.takeProfitMinOut,
|
|
79
|
+
} as SingleChainOrder;
|
|
80
|
+
|
|
81
|
+
return {
|
|
82
|
+
genericData: order,
|
|
83
|
+
chainSpecificData: {
|
|
84
|
+
Sui: {
|
|
85
|
+
transactionHash: params.transactionHash,
|
|
86
|
+
secretNumber,
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Creates a Sui single-chain DCA order intent request
|
|
94
|
+
* @param params Parameters for creating the intent request
|
|
95
|
+
* @returns Formatted intent request ready to send to auctioneer
|
|
96
|
+
*/
|
|
97
|
+
export function createSuiSingleChainDcaOrderIntentRequest(
|
|
98
|
+
params: CreateSuiSingleChainDcaOrderIntentParams
|
|
99
|
+
): DcaSingleChainUserIntentRequest {
|
|
100
|
+
const secretNumber = params.secretNumber || getRandomU64Number();
|
|
101
|
+
|
|
102
|
+
const order: DcaSingleChainOrder = {
|
|
103
|
+
user: params.user,
|
|
104
|
+
chainId: ChainID.Sui,
|
|
105
|
+
tokenIn: params.tokenIn,
|
|
106
|
+
tokenOut: params.tokenOut,
|
|
107
|
+
destinationAddress: params.destinationAddress,
|
|
108
|
+
startTime: params.startTime,
|
|
109
|
+
amountInPerInterval: params.amountInPerInterval,
|
|
110
|
+
totalIntervals: params.totalIntervals,
|
|
111
|
+
intervalDuration: params.intervalDuration,
|
|
112
|
+
amountOutMin: params.amountOutMin,
|
|
113
|
+
extraTransfers: params.extraTransfers,
|
|
114
|
+
deadline: params.deadline,
|
|
115
|
+
} as DcaSingleChainOrder;
|
|
116
|
+
|
|
117
|
+
return {
|
|
118
|
+
genericData: order,
|
|
119
|
+
chainSpecificData: {
|
|
120
|
+
Sui: {
|
|
121
|
+
transactionHash: params.transactionHash,
|
|
122
|
+
secretNumber,
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Creates a Sui cross-chain order intent request
|
|
130
|
+
* @param params Parameters for creating the intent request
|
|
131
|
+
* @returns Formatted intent request ready to send to auctioneer
|
|
132
|
+
*/
|
|
133
|
+
export function createSuiCrossChainOrderIntentRequest(
|
|
134
|
+
params: CreateSuiCrossChainOrderIntentParams
|
|
135
|
+
): CrossChainUserIntentRequest {
|
|
136
|
+
const executionDetails = JSON.stringify({
|
|
137
|
+
destChainId: params.destChainId,
|
|
138
|
+
tokenOut: params.tokenOut,
|
|
139
|
+
amountOutMin: params.amountOutMin,
|
|
140
|
+
destinationAddress: params.destinationAddress,
|
|
141
|
+
});
|
|
142
|
+
|
|
143
|
+
const executionDetailsHash = generateExecutionDetailsHash(
|
|
144
|
+
params.destChainId,
|
|
145
|
+
params.destinationAddress,
|
|
146
|
+
params.tokenOut,
|
|
147
|
+
params.amountOutMin.toString()
|
|
148
|
+
);
|
|
149
|
+
|
|
150
|
+
const genericData = {
|
|
151
|
+
user: params.user,
|
|
152
|
+
srcChainId: params.srcChainId,
|
|
153
|
+
tokenIn: params.tokenIn,
|
|
154
|
+
amountIn: params.amountIn,
|
|
155
|
+
minStablecoinsAmount: params.minStablecoinsAmount,
|
|
156
|
+
deadline: params.deadline,
|
|
157
|
+
executionDetailsHash: executionDetailsHash as `0x${string}`,
|
|
158
|
+
stopLossMaxOut: params.stopLossMaxOut,
|
|
159
|
+
takeProfitMinOut: params.takeProfitMinOut,
|
|
160
|
+
};
|
|
161
|
+
|
|
162
|
+
return {
|
|
163
|
+
genericData,
|
|
164
|
+
executionDetails,
|
|
165
|
+
chainSpecificData: {
|
|
166
|
+
Sui: {
|
|
167
|
+
transactionHash: params.transactionHash,
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Generates secret hash for Sui single-chain limit orders
|
|
175
|
+
* @param tokenOut Output token address
|
|
176
|
+
* @param receiver Receiver address
|
|
177
|
+
* @param secretNumber Secret number (optional, generates random if not provided)
|
|
178
|
+
* @param extraTransfers Extra transfers array
|
|
179
|
+
* @returns Object containing secret number and secret hash
|
|
180
|
+
*/
|
|
181
|
+
export function generateSuiLimitOrderSecretData(
|
|
182
|
+
tokenOut: string,
|
|
183
|
+
receiver: string,
|
|
184
|
+
secretNumber?: string,
|
|
185
|
+
extraTransfers?: ExtraTransfer[]
|
|
186
|
+
): { secretNumber: string; secretHash: Uint8Array } {
|
|
187
|
+
const secret = secretNumber || getRandomU64Number();
|
|
188
|
+
const extraTransferCoinOut = extraTransfers?.[0]?.token;
|
|
189
|
+
const extraTransferReceiver = extraTransfers?.[0]?.receiver;
|
|
190
|
+
|
|
191
|
+
const secretHash = getSecretHash(
|
|
192
|
+
tokenOut,
|
|
193
|
+
receiver,
|
|
194
|
+
secret,
|
|
195
|
+
extraTransferCoinOut,
|
|
196
|
+
extraTransferReceiver
|
|
197
|
+
);
|
|
198
|
+
|
|
199
|
+
return {
|
|
200
|
+
secretNumber: secret,
|
|
201
|
+
secretHash: new Uint8Array(secretHash),
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/**
|
|
206
|
+
* Generates secret hash for Sui single-chain DCA orders
|
|
207
|
+
* @param tokenOut Output token address
|
|
208
|
+
* @param receiver Receiver address
|
|
209
|
+
* @param secretNumber Secret number (optional, generates random if not provided)
|
|
210
|
+
* @param extraTransfers Extra transfers array
|
|
211
|
+
* @returns Object containing secret number and secret hash
|
|
212
|
+
*/
|
|
213
|
+
export function generateSuiDcaOrderSecretData(
|
|
214
|
+
tokenOut: string,
|
|
215
|
+
receiver: string,
|
|
216
|
+
secretNumber?: string,
|
|
217
|
+
extraTransfers?: ExtraTransfer[]
|
|
218
|
+
): { secretNumber: string; secretHash: Uint8Array } {
|
|
219
|
+
const secret = secretNumber || getRandomU64Number();
|
|
220
|
+
const extraTransferCoinOut = extraTransfers?.[0]?.token;
|
|
221
|
+
const extraTransferReceiver = extraTransfers?.[0]?.receiver;
|
|
222
|
+
|
|
223
|
+
const secretHash = getDcaSecretHash(
|
|
224
|
+
tokenOut,
|
|
225
|
+
receiver,
|
|
226
|
+
secret,
|
|
227
|
+
extraTransferCoinOut,
|
|
228
|
+
extraTransferReceiver
|
|
229
|
+
);
|
|
230
|
+
|
|
231
|
+
return {
|
|
232
|
+
secretNumber: secret,
|
|
233
|
+
secretHash: new Uint8Array(secretHash),
|
|
234
|
+
};
|
|
235
|
+
}
|
|
@@ -16,12 +16,16 @@ import type { CrossChainOrder } from '../orders/cross-chain.js';
|
|
|
16
16
|
/**
|
|
17
17
|
* Generates Sui order transaction for creating an order
|
|
18
18
|
* @param order The order to generate transaction for
|
|
19
|
+
* @param client The Sui client instance (optional, creates new if not provided)
|
|
19
20
|
* @returns Object containing the transaction
|
|
20
21
|
*/
|
|
21
|
-
export async function getSuiOrderTransaction(
|
|
22
|
+
export async function getSuiOrderTransaction(
|
|
23
|
+
order: CrossChainOrder,
|
|
24
|
+
client?: ReturnType<typeof createSuiClient>
|
|
25
|
+
): Promise<Transaction> {
|
|
22
26
|
const userAddress = order.user;
|
|
23
|
-
const
|
|
24
|
-
const coins = await
|
|
27
|
+
const suiClient = client || createSuiClient();
|
|
28
|
+
const coins = await suiClient.getCoins({
|
|
25
29
|
owner: userAddress,
|
|
26
30
|
coinType: order.sourceTokenAddress,
|
|
27
31
|
});
|
|
@@ -62,7 +66,7 @@ export async function getSuiOrderTransaction(order: CrossChainOrder): Promise<Tr
|
|
|
62
66
|
|
|
63
67
|
tx.moveCall({
|
|
64
68
|
package: SUI_PACKAGE_ID,
|
|
65
|
-
module: '
|
|
69
|
+
module: 'cross_chain_limit_orders',
|
|
66
70
|
function: 'create_order',
|
|
67
71
|
arguments: [
|
|
68
72
|
tx.object(guardAddress), // arg0: &Guard<T0, T2>
|
package/src/core/sui/sdk.ts
CHANGED
|
@@ -102,7 +102,7 @@ export class SuiSDK extends BaseSDK {
|
|
|
102
102
|
protected override async prepareCrossChainOrder(order: CrossChainOrder): Promise<CrossChainOrderPrepared> {
|
|
103
103
|
const signer = this.getKeyPair();
|
|
104
104
|
|
|
105
|
-
const transaction = await getSuiOrderTransaction(order);
|
|
105
|
+
const transaction = await getSuiOrderTransaction(order, this.client);
|
|
106
106
|
|
|
107
107
|
const tx = await this.client.signAndExecuteTransaction({
|
|
108
108
|
signer,
|