@shogun-sdk/intents-sdk 1.2.1 → 1.2.3
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/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 +2 -2
- 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 +8 -1
- 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 +5 -8
- 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 +5 -8
- 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 +8 -9
- 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 +10 -16
- 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 +8 -6
- 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 +8 -9
- 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 +17 -7
- 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 +8 -9
- 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 +7 -5
- 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 +5 -5
- 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/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 +8 -9
- 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 +8 -9
- 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 +8 -9
- 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 +8 -6
- 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 +8 -6
- 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 +8 -6
- 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 +9 -6
- 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 +9 -6
- 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 +17 -7
- 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 +5 -5
- 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/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/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/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 +2 -2
- package/src/core/orders/dca-single-chain.ts +4 -1
- package/src/core/orders/single-chain.ts +10 -1
- 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 +154 -9
- 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 +49 -41
- package/src/core/solana/generated/cross-chain/instructions/claimTokens.ts +54 -44
- package/src/core/solana/generated/cross-chain/instructions/collectProtocolFees.ts +52 -43
- package/src/core/solana/generated/cross-chain/instructions/createDcaOrder.ts +496 -0
- package/src/core/solana/generated/cross-chain/instructions/createGuard.ts +72 -54
- package/src/core/solana/generated/cross-chain/instructions/createOrder.ts +60 -42
- 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 +55 -45
- package/src/core/solana/generated/cross-chain/instructions/setAdmin.ts +48 -30
- package/src/core/solana/generated/cross-chain/instructions/setAuctioneerPubKey.ts +88 -40
- package/src/core/solana/generated/cross-chain/instructions/startOrderExecution.ts +48 -39
- package/src/core/solana/generated/cross-chain/instructions/startOrderExecutionAfterSwap.ts +45 -37
- package/src/core/solana/generated/cross-chain/programs/sourceChainGuard.ts +118 -37
- package/src/core/solana/generated/cross-chain/shared/index.ts +23 -14
- 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 +9 -6
- 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 +6 -6
- 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 +10 -5
- package/src/core/solana/generated/single-chain/instructions/acceptAdmin.ts +44 -34
- package/src/core/solana/generated/single-chain/instructions/cancelDcaOrder.ts +54 -40
- package/src/core/solana/generated/single-chain/instructions/cancelLimitOrder.ts +51 -40
- package/src/core/solana/generated/single-chain/instructions/collectProtocolFees.ts +55 -42
- package/src/core/solana/generated/single-chain/instructions/createDcaOrder.ts +60 -38
- package/src/core/solana/generated/single-chain/instructions/createGuard.ts +69 -42
- package/src/core/solana/generated/single-chain/instructions/createLimitOrder.ts +57 -38
- package/src/core/solana/generated/single-chain/instructions/fulfillDcaOrderInterval.ts +78 -55
- package/src/core/solana/generated/single-chain/instructions/fulfillLimitOrder.ts +81 -55
- package/src/core/solana/generated/single-chain/instructions/initialize.ts +58 -40
- package/src/core/solana/generated/single-chain/instructions/setAdmin.ts +48 -30
- package/src/core/solana/generated/single-chain/instructions/setAuctioneerPubKey.ts +88 -40
- package/src/core/solana/generated/single-chain/programs/singleChainGuard.ts +76 -37
- package/src/core/solana/generated/single-chain/shared/index.ts +23 -14
- 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 +9 -6
- 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 +6 -6
- package/src/core/solana/generated/single-chain/types/limitOrderCreated.ts +9 -6
- package/src/core/solana/generated/single-chain/types/limitOrderFulfilled.ts +9 -6
- 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
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { bcs, fromHex } from '@mysten/bcs';
|
|
2
|
+
import { keccak256 } from "js-sha3";
|
|
3
|
+
import { normalizeStructTag, normalizeSuiAddress, normalizeSuiObjectId } from "@mysten/sui/utils";
|
|
4
|
+
import { Transaction } from '@mysten/sui/transactions';
|
|
5
|
+
import { ValidationError } from '../../errors/index.js';
|
|
6
|
+
import { createSuiClient } from './client.js';
|
|
7
|
+
import { SUI_PACKAGE_ID, SUI_GUARD_COLLATERAL_TYPE, SUI_GUARD_STABLECOIN_TYPE, NATIVE_SUI_TOKEN_ADDRESS } from '../../constants.js';
|
|
8
|
+
/**
|
|
9
|
+
* Generates secret hash based on types, addresses and secret number for single chain DCA orders
|
|
10
|
+
* @param coinOutType Type tag of Coin OUT
|
|
11
|
+
* @param receiver Main Coins OUT receiver
|
|
12
|
+
* @param secretNumber Secret number, for hash randomness
|
|
13
|
+
* @param extraTransferCoinOut Type tag of extra transfer coin OUT
|
|
14
|
+
* @param extraTransferReceiver Receiver of extra transfer
|
|
15
|
+
*/
|
|
16
|
+
export function getDcaSecretHash(coinOutType, receiver, secretNumber, extraTransferCoinOut, extraTransferReceiver) {
|
|
17
|
+
const coinOutTypeBytes = Buffer.from(normalizeStructTag(coinOutType).replace("0x", ""), "utf8");
|
|
18
|
+
const receiverBytes = fromHex(normalizeSuiAddress(receiver));
|
|
19
|
+
let resBytes = [
|
|
20
|
+
...coinOutTypeBytes,
|
|
21
|
+
...receiverBytes,
|
|
22
|
+
];
|
|
23
|
+
if (extraTransferCoinOut && extraTransferReceiver) {
|
|
24
|
+
const extraTransferCoinOutBytes = Buffer.from(normalizeStructTag(extraTransferCoinOut).replace("0x", ""), "utf8");
|
|
25
|
+
const extraTransferReceiverBytes = fromHex(normalizeSuiAddress(extraTransferReceiver));
|
|
26
|
+
resBytes = [
|
|
27
|
+
...resBytes,
|
|
28
|
+
...extraTransferCoinOutBytes,
|
|
29
|
+
...extraTransferReceiverBytes,
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
resBytes = [
|
|
33
|
+
...resBytes,
|
|
34
|
+
...bcs.u64().serialize(secretNumber).toBytes(),
|
|
35
|
+
];
|
|
36
|
+
return keccak256.array(resBytes);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Generates Sui single-chain DCA order transaction
|
|
40
|
+
* @param order The DCA order to generate transaction for
|
|
41
|
+
* @param secretHash The secret hash for the order
|
|
42
|
+
* @param guardAddress The guard contract address
|
|
43
|
+
* @param client The Sui client instance
|
|
44
|
+
* @returns Transaction object for creating the DCA order
|
|
45
|
+
*/
|
|
46
|
+
export async function getSuiSingleChainDcaOrderTransaction(order, secretHash, guardAddress, client) {
|
|
47
|
+
const userAddress = order.user;
|
|
48
|
+
const suiClient = client || createSuiClient();
|
|
49
|
+
const totalAmountIn = order.getTotalAmountIn();
|
|
50
|
+
const coins = await suiClient.getCoins({
|
|
51
|
+
owner: userAddress,
|
|
52
|
+
coinType: order.tokenIn,
|
|
53
|
+
});
|
|
54
|
+
const sourceTokenInCoins = coins.data.sort((a, b) => Number(b.balance) - Number(a.balance));
|
|
55
|
+
if (sourceTokenInCoins.length === 0) {
|
|
56
|
+
throw new ValidationError(`No token (${order.tokenIn}) to create order`);
|
|
57
|
+
}
|
|
58
|
+
const coinsInSum = sourceTokenInCoins.reduce((acc, coin) => acc + BigInt(coin.balance), 0n);
|
|
59
|
+
if (coinsInSum < totalAmountIn) {
|
|
60
|
+
throw new ValidationError(`Insufficient balance to create order. Total coins is ${coinsInSum}, but order requires ${totalAmountIn}`);
|
|
61
|
+
}
|
|
62
|
+
const spendingGasCoin = normalizeSuiObjectId(order.tokenIn) === normalizeSuiObjectId(NATIVE_SUI_TOKEN_ADDRESS);
|
|
63
|
+
const tx = new Transaction();
|
|
64
|
+
const coinInArg = spendingGasCoin ? tx.gas : sourceTokenInCoins[0].coinObjectId;
|
|
65
|
+
if (sourceTokenInCoins.length > 1) {
|
|
66
|
+
// Merging coins IN into a single object just in case
|
|
67
|
+
tx.mergeCoins(
|
|
68
|
+
// merge into 1st coin object
|
|
69
|
+
coinInArg,
|
|
70
|
+
// merge the rest of coins
|
|
71
|
+
sourceTokenInCoins.slice(1).map((coin) => coin.coinObjectId));
|
|
72
|
+
}
|
|
73
|
+
const [coinIn] = tx.splitCoins(coinInArg, [totalAmountIn]);
|
|
74
|
+
// Get extra transfer amount - only first extra transfer is supported on Sui
|
|
75
|
+
const extraTransferAmount = order.extraTransfers && order.extraTransfers.length > 0
|
|
76
|
+
? BigInt(order.extraTransfers[0].amount)
|
|
77
|
+
: 0n;
|
|
78
|
+
tx.moveCall({
|
|
79
|
+
package: SUI_PACKAGE_ID,
|
|
80
|
+
module: 'single_chain_dca_orders',
|
|
81
|
+
function: 'create_dca_order',
|
|
82
|
+
arguments: [
|
|
83
|
+
tx.object(guardAddress), // arg0: &Guard<T0, T2>
|
|
84
|
+
coinIn, // arg1: Coin<T1>
|
|
85
|
+
tx.pure.u64(order.amountInPerInterval), // arg2: amount_in_per_interval
|
|
86
|
+
tx.pure.u64(order.amountOutMin), // arg3: amount_out_min
|
|
87
|
+
tx.pure.u64(extraTransferAmount), // arg4: extra_transfer_amount_out_min
|
|
88
|
+
tx.pure.u64(order.deadline * 1000), // arg5: deadline (converted to milliseconds)
|
|
89
|
+
tx.pure.u32(order.totalIntervals), // arg6: total_intervals
|
|
90
|
+
tx.pure.u64(order.intervalDuration * 1000), // arg7: interval_duration (converted to milliseconds)
|
|
91
|
+
tx.pure.vector('u8', [...secretHash]), // arg8: secret_hash
|
|
92
|
+
tx.object.clock(), // arg9: &Clock
|
|
93
|
+
],
|
|
94
|
+
typeArguments: [SUI_GUARD_COLLATERAL_TYPE, order.tokenIn, SUI_GUARD_STABLECOIN_TYPE],
|
|
95
|
+
});
|
|
96
|
+
tx.setSender(userAddress);
|
|
97
|
+
return tx;
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=single-chain-dca-order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"single-chain-dca-order.js","sourceRoot":"","sources":["../../../../src/core/sui/single-chain-dca-order.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAGpI;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAC9B,WAAmB,EACnB,QAAgB,EAChB,YAAoB,EACpB,oBAA6B,EAC7B,qBAA8B;IAE9B,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAClC,kBAAkB,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EACjD,MAAM,CACP,CAAC;IACF,MAAM,aAAa,GAAG,OAAO,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAE7D,IAAI,QAAQ,GAAG;QACb,GAAG,gBAAgB;QACnB,GAAG,aAAa;KACjB,CAAC;IACF,IAAI,oBAAoB,IAAI,qBAAqB,EAAE,CAAC;QAClD,MAAM,yBAAyB,GAAG,MAAM,CAAC,IAAI,CAC3C,kBAAkB,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,EAC1D,MAAM,CACP,CAAC;QACF,MAAM,0BAA0B,GAAG,OAAO,CAAC,mBAAmB,CAAC,qBAAqB,CAAC,CAAC,CAAC;QAEvF,QAAQ,GAAG;YACT,GAAG,QAAQ;YACX,GAAG,yBAAyB;YAC5B,GAAG,0BAA0B;SAC9B,CAAC;IACJ,CAAC;IAED,QAAQ,GAAG;QACT,GAAG,QAAQ;QACX,GAAG,GAAG,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,EAAE;KAC/C,CAAC;IAEF,OAAO,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,KAA0B,EAC1B,UAAsB,EACtB,YAAoB,EACpB,MAA2C;IAE3C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;IAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,eAAe,EAAE,CAAC;IAC9C,MAAM,aAAa,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC;IAE/C,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC;QACrC,KAAK,EAAE,WAAW;QAClB,QAAQ,EAAE,KAAK,CAAC,OAAO;KACxB,CAAC,CAAC;IAEH,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5F,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACpC,MAAM,IAAI,eAAe,CAAC,aAAa,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;IAE5F,IAAI,UAAU,GAAG,aAAa,EAAE,CAAC;QAC/B,MAAM,IAAI,eAAe,CACvB,wDAAwD,UAAU,wBAAwB,aAAa,EAAE,CAC1G,CAAC;IACJ,CAAC;IAED,MAAM,eAAe,GACnB,oBAAoB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,oBAAoB,CAAC,wBAAwB,CAAC,CAAC;IAEzF,MAAM,EAAE,GAAG,IAAI,WAAW,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAE,CAAC,YAAY,CAAC;IAEjF,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAClC,qDAAqD;QACrD,EAAE,CAAC,UAAU;QACX,6BAA6B;QAC7B,SAAS;QACT,0BAA0B;QAC1B,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAC7D,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAE3D,4EAA4E;IAC5E,MAAM,mBAAmB,GAAG,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC;QACjF,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC;QACzC,CAAC,CAAC,EAAE,CAAC;IAEP,EAAE,CAAC,QAAQ,CAAC;QACV,OAAO,EAAE,cAAc;QACvB,MAAM,EAAE,yBAAyB;QACjC,QAAQ,EAAE,kBAAkB;QAC5B,SAAS,EAAE;YACT,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,uBAAuB;YAChD,MAAM,EAAE,iBAAiB;YACzB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,+BAA+B;YACvE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,uBAAuB;YACxD,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE,sCAAsC;YACxE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,EAAE,6CAA6C;YACjF,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,wBAAwB;YAC3D,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC,EAAE,sDAAsD;YAClG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,EAAE,oBAAoB;YAC3D,EAAE,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,eAAe;SACnC;QACD,aAAa,EAAE,CAAC,yBAAyB,EAAE,KAAK,CAAC,OAAO,EAAE,yBAAyB,CAAC;KACrF,CAAC,CAAC;IAEH,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAE1B,OAAO,EAAE,CAAC;AACZ,CAAC"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { bcs, fromHex } from '@mysten/bcs';
|
|
2
|
+
import { keccak256 } from "js-sha3";
|
|
3
|
+
import { normalizeStructTag, normalizeSuiAddress, normalizeSuiObjectId } from "@mysten/sui/utils";
|
|
4
|
+
import { Transaction } from '@mysten/sui/transactions';
|
|
5
|
+
import { ValidationError } from '../../errors/index.js';
|
|
6
|
+
import { createSuiClient } from './client.js';
|
|
7
|
+
import { SUI_PACKAGE_ID, SUI_GUARD_COLLATERAL_TYPE, SUI_GUARD_STABLECOIN_TYPE, NATIVE_SUI_TOKEN_ADDRESS } from '../../constants.js';
|
|
8
|
+
/**
|
|
9
|
+
* Generates random U64 number
|
|
10
|
+
*/
|
|
11
|
+
export function getRandomU64Number() {
|
|
12
|
+
return BigInt("0x" + [...crypto.getRandomValues(new Uint8Array(8))]
|
|
13
|
+
.map(n => n.toString(16))
|
|
14
|
+
.join("")).toString();
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Generates secret hash based on types, addresses and secret number for single chain limit orders
|
|
18
|
+
* @param coinOutType Type tag of Coin OUT
|
|
19
|
+
* @param receiver Main Coins OUT receiver
|
|
20
|
+
* @param secretNumber Secret number, for hash randomness
|
|
21
|
+
* @param extraTransferCoinOut Type tag of extra transfer coin OUT
|
|
22
|
+
* @param extraTransferReceiver Receiver of extra transfer
|
|
23
|
+
*/
|
|
24
|
+
export function getSecretHash(coinOutType, receiver, secretNumber, extraTransferCoinOut, extraTransferReceiver) {
|
|
25
|
+
const coinOutTypeBytes = Buffer.from(normalizeStructTag(coinOutType).replace("0x", ""), "utf8");
|
|
26
|
+
const receiverBytes = fromHex(normalizeSuiAddress(receiver));
|
|
27
|
+
let resBytes = [
|
|
28
|
+
...coinOutTypeBytes,
|
|
29
|
+
...receiverBytes,
|
|
30
|
+
];
|
|
31
|
+
if (extraTransferCoinOut && extraTransferReceiver) {
|
|
32
|
+
const extraTransferCoinOutBytes = Buffer.from(normalizeStructTag(extraTransferCoinOut).replace("0x", ""), "utf8");
|
|
33
|
+
const extraTransferReceiverBytes = fromHex(normalizeSuiAddress(extraTransferReceiver));
|
|
34
|
+
resBytes = [
|
|
35
|
+
...resBytes,
|
|
36
|
+
...extraTransferCoinOutBytes,
|
|
37
|
+
...extraTransferReceiverBytes,
|
|
38
|
+
];
|
|
39
|
+
}
|
|
40
|
+
resBytes = [
|
|
41
|
+
...resBytes,
|
|
42
|
+
...bcs.u64().serialize(secretNumber).toBytes(),
|
|
43
|
+
];
|
|
44
|
+
return keccak256.array(resBytes);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Generates Sui single-chain limit order transaction
|
|
48
|
+
* @param order The single-chain order to generate transaction for
|
|
49
|
+
* @param secretHash The secret hash for the order
|
|
50
|
+
* @param guardAddress The guard contract address
|
|
51
|
+
* @param client The Sui client instance
|
|
52
|
+
* @returns Transaction object for creating the limit order
|
|
53
|
+
*/
|
|
54
|
+
export async function getSuiSingleChainLimitOrderTransaction(order, secretHash, guardAddress, client) {
|
|
55
|
+
const userAddress = order.user;
|
|
56
|
+
const suiClient = client || createSuiClient();
|
|
57
|
+
const coins = await suiClient.getCoins({
|
|
58
|
+
owner: userAddress,
|
|
59
|
+
coinType: order.tokenIn,
|
|
60
|
+
});
|
|
61
|
+
const sourceTokenInCoins = coins.data.sort((a, b) => Number(b.balance) - Number(a.balance));
|
|
62
|
+
if (sourceTokenInCoins.length === 0) {
|
|
63
|
+
throw new ValidationError(`No token (${order.tokenIn}) to create order`);
|
|
64
|
+
}
|
|
65
|
+
const coinsInSum = sourceTokenInCoins.reduce((acc, coin) => acc + BigInt(coin.balance), 0n);
|
|
66
|
+
if (coinsInSum < order.amountIn) {
|
|
67
|
+
throw new ValidationError(`Insufficient balance to create order. Total coins is ${coinsInSum}, but order requires ${order.amountIn}`);
|
|
68
|
+
}
|
|
69
|
+
const spendingGasCoin = normalizeSuiObjectId(order.tokenIn) === normalizeSuiObjectId(NATIVE_SUI_TOKEN_ADDRESS);
|
|
70
|
+
const tx = new Transaction();
|
|
71
|
+
const coinInArg = spendingGasCoin ? tx.gas : sourceTokenInCoins[0].coinObjectId;
|
|
72
|
+
if (sourceTokenInCoins.length > 1) {
|
|
73
|
+
// Merging coins IN into a single object just in case
|
|
74
|
+
tx.mergeCoins(
|
|
75
|
+
// merge into 1st coin object
|
|
76
|
+
coinInArg,
|
|
77
|
+
// merge the rest of coins
|
|
78
|
+
sourceTokenInCoins.slice(1).map((coin) => coin.coinObjectId));
|
|
79
|
+
}
|
|
80
|
+
const [coinIn] = tx.splitCoins(coinInArg, [order.amountIn]);
|
|
81
|
+
// Get extra transfer amount - only first extra transfer is supported on Sui
|
|
82
|
+
const extraTransferAmount = order.extraTransfers && order.extraTransfers.length > 0
|
|
83
|
+
? BigInt(order.extraTransfers[0].amount)
|
|
84
|
+
: 0n;
|
|
85
|
+
tx.moveCall({
|
|
86
|
+
package: SUI_PACKAGE_ID,
|
|
87
|
+
module: 'single_chain_limit_orders',
|
|
88
|
+
function: 'create_limit_order',
|
|
89
|
+
arguments: [
|
|
90
|
+
tx.object(guardAddress), // arg0: &Guard<T0, T2>
|
|
91
|
+
coinIn, // arg1: Coin<T1>
|
|
92
|
+
tx.pure.u64(order.amountOutMin), // arg2: amount_out_min
|
|
93
|
+
tx.pure.u64(extraTransferAmount), // arg3: extra_transfer_amount_out_min
|
|
94
|
+
tx.pure.u64(order.deadline * 1000), // arg4: deadline (converted to milliseconds)
|
|
95
|
+
tx.pure.vector('u8', [...secretHash]), // arg5: secret_hash
|
|
96
|
+
tx.object.clock(), // arg6: &Clock
|
|
97
|
+
],
|
|
98
|
+
typeArguments: [SUI_GUARD_COLLATERAL_TYPE, order.tokenIn, SUI_GUARD_STABLECOIN_TYPE],
|
|
99
|
+
});
|
|
100
|
+
tx.setSender(userAddress);
|
|
101
|
+
return tx;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=single-chain-limit-order.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"single-chain-limit-order.js","sourceRoot":"","sources":["../../../../src/core/sui/single-chain-limit-order.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { isValidSuiAddress, normalizeSuiAddress } from '@mysten/sui/utils';
|
|
2
2
|
import { MAX_UINT_64 } from '../../constants.js';
|
|
3
3
|
import { BaseValidator } from '../../utils/base-validator.js';
|
|
4
|
-
import { ValidationError } from '../../errors/index.js';
|
|
5
4
|
const SUI_TOKEN_ADDRESS_REGEX = /^0x[a-fA-F0-9]{64}::\w+::\w+$/;
|
|
6
5
|
export class SuiValidator extends BaseValidator {
|
|
7
6
|
isValidAddress(address) {
|
|
@@ -26,7 +25,7 @@ export class SuiValidator extends BaseValidator {
|
|
|
26
25
|
return Promise.resolve();
|
|
27
26
|
}
|
|
28
27
|
validateDcaSingleChainOrderFeasability() {
|
|
29
|
-
|
|
28
|
+
return Promise.resolve();
|
|
30
29
|
}
|
|
31
30
|
}
|
|
32
31
|
//# sourceMappingURL=validator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../src/core/sui/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../../../src/core/sui/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,MAAM,uBAAuB,GAAG,+BAA+B,CAAC;AAEhE,MAAM,OAAO,YAAa,SAAQ,aAAa;IAC7C,cAAc,CAAC,OAAe;QAC5B,OAAO,iBAAiB,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,mBAAmB,CAAC,YAAoB;QACtC,MAAM,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE3C,MAAM,cAAc,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAEpF,OAAO,cAAc,IAAI,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACtE,CAAC;IAED,aAAa,CAAC,MAAc;QAC1B,OAAO,MAAM,GAAG,EAAE,IAAI,MAAM,GAAG,WAAW,CAAC;IAC7C,CAAC;IAES,YAAY;QACpB,OAAO,KAAK,CAAC;IACf,CAAC;IAEM,KAAK,CAAC,kCAAkC;QAC7C,2DAA2D;QAC3D,OAAO;IACT,CAAC;IAEQ,mCAAmC;QAC1C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEQ,sCAAsC;QAC7C,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
|
package/dist/esm/index.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { DcaSingleChainOrder } from './core/orders/dca-single-chain.js';
|
|
1
2
|
export { ChainID, ChainType, SupportedChains, isSupportedChain, chainIdToChainTypeMap, isEvmChain } from './chains.js';
|
|
2
3
|
export { EVMSDK } from './core/evm/sdk.js';
|
|
3
4
|
export { SolanaSDK } from './core/solana/sdk.js';
|
|
@@ -18,6 +19,20 @@ export { getSolanaCrossChainOrderInstructions, getSolanaSingleChainOrderInstruct
|
|
|
18
19
|
export { cancelCrossChainOrderInstructionsAsBytes, cancelSingleChainOrderInstructionsAsBytes, } from './core/solana/cancel-order.js';
|
|
19
20
|
export { getSuiOrderTransaction } from './core/sui/order-transaction.js';
|
|
20
21
|
export { getSuiCancelCrossChainOrder } from './core/sui/cancel.js';
|
|
22
|
+
export { getDcaSecretHash, getSuiSingleChainDcaOrderTransaction } from './core/sui/single-chain-dca-order.js';
|
|
23
|
+
export { getSecretHash, getRandomU64Number as getSuiRandomU64Number, getSuiSingleChainLimitOrderTransaction } from './core/sui/single-chain-limit-order.js';
|
|
24
|
+
export { generateExecutionDetailsHash } from './core/sui/cross-chain-limit-order.js';
|
|
25
|
+
export { createSuiSingleChainLimitOrderIntentRequest, createSuiSingleChainDcaOrderIntentRequest, createSuiCrossChainOrderIntentRequest, generateSuiLimitOrderSecretData, generateSuiDcaOrderSecretData, } from './core/sui/intent-helpers.js';
|
|
26
|
+
export * from './constants.js';
|
|
27
|
+
export { getSolanaDcaSingleChainOrderInstructions } from './core/solana/dca/create-order.js';
|
|
28
|
+
export { signSingleChainDcaOrder } from './core/evm/single-chain-dca-order.js';
|
|
29
|
+
export { signSingleChainLimitOrder } from './core/evm/single-chain-limit-order.js';
|
|
21
30
|
export { QuoteProvider } from './utils/quote/aggregator.js';
|
|
22
31
|
export { CROSS_CHAIN_GUARD_ADDRESSES, SINGLE_CHAIN_GUARD_ADDRESSES, PERMIT2_ADDRESS } from './constants.js';
|
|
32
|
+
export { prepareDcaSecretData, } from './core/solana/dca/single-chain-dca-order.js';
|
|
33
|
+
export { prepareSecretData } from './core/solana/dca/single-chain-limit-order.js';
|
|
34
|
+
// EVM Intent Helpers
|
|
35
|
+
export { createEvmSingleChainLimitOrderIntentRequest, createEvmSingleChainDcaOrderIntentRequest, createEvmCrossChainOrderIntentRequest, generateEvmSingleChainLimitOrderTypedData, generateEvmSingleChainDcaOrderTypedData, generateEvmCrossChainOrderTypedData, generateEvmRandomNonce, } from './core/evm/intent-helpers.js';
|
|
36
|
+
// Solana Intent Helpers
|
|
37
|
+
export { createSolanaSingleChainLimitOrderIntentRequest, createSolanaSingleChainDcaOrderIntentRequest, createSolanaCrossChainOrderIntentRequest, generateSolanaSingleChainLimitOrderInstructions, generateSolanaSingleChainDcaOrderInstructions, generateSolanaCrossChainOrderInstructions, generateSolanaLimitOrderSecretData, generateSolanaDcaOrderSecretData, generateSolanaRandomSecretNumber, } from './core/solana/intent-helpers.js';
|
|
23
38
|
//# sourceMappingURL=index.js.map
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIvH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAE/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAGjE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAoD,aAAa,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAML,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE5F,OAAO,EACL,+BAA+B,EAC/B,gCAAgC,EAGhC,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,qCAAqC,EAAE,MAAM,mCAAmC,CAAC;AAC1F,OAAO,EAAE,8BAA8B,EAAE,+BAA+B,EAAE,MAAM,+BAA+B,CAAC;AAEhH,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAE1E,OAAO,EACL,oCAAoC,EACpC,qCAAqC,GACtC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,wCAAwC,EACxC,yCAAyC,GAC1C,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AACzE,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import { type Address as SolanaAddress } from '@solana/kit';
|
|
|
2
2
|
import type { Address as EvmAddress } from 'viem';
|
|
3
3
|
import type { SupportedChain, SupportedEvmChain, SupportedSuiChain } from './chains.js';
|
|
4
4
|
import { ChainID } from './chains.js';
|
|
5
|
-
export declare enum
|
|
5
|
+
export declare enum IntentsOrderType {
|
|
6
6
|
CROSS_CHAIN_LIMIT = "CROSS_CHAIN_LIMIT",
|
|
7
7
|
SINGLE_CHAIN_LIMIT = "SINGLE_CHAIN_LIMIT"
|
|
8
8
|
}
|
|
@@ -24,10 +24,9 @@ type SolanaMint = {
|
|
|
24
24
|
decimals: number;
|
|
25
25
|
};
|
|
26
26
|
export declare const SOLANA_USDC_MINT: SolanaMint;
|
|
27
|
-
export declare const SOLANA_USDT_MINT: SolanaMint;
|
|
28
27
|
export declare const SOLANA_MINT_TOKEN: SolanaMint;
|
|
29
|
-
export declare const PROD_SUI_PACKAGE_ID = "
|
|
30
|
-
export declare const TEST_SUI_PACKAGE_ID = "
|
|
28
|
+
export declare const PROD_SUI_PACKAGE_ID = "0x9c993b10b072ff07f93437bdda25f0736195fa8d19a8af40d71408eb5b267730";
|
|
29
|
+
export declare const TEST_SUI_PACKAGE_ID = "0x14bd4a581cbaf2239a9c1472ca2f751a1d262c4872476eab700bfba7eab0ccc5";
|
|
31
30
|
export declare const SUI_PACKAGE_ID: string;
|
|
32
31
|
export declare const SUI_GUARD_COLLATERAL_TYPE = "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC";
|
|
33
32
|
export declare const SUI_GUARD_STABLECOIN_TYPE = "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7::usdc::USDC";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAItC,oBAAY,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,IAAI,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACxF,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAItC,oBAAY,gBAAgB;IAC1B,iBAAiB,sBAAsB;IACvC,kBAAkB,uBAAuB;CAC1C;AAED,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAKjE,CAAC;AAGF,eAAO,MAAM,gCAAgC,EAAE,MAAM,CAAC,cAAc,EAAE,aAAa,GAAG,UAAU,CAQ/F,CAAC;AAGF,eAAO,MAAM,gCAAgC,EAAE,MAAM,CAAC,cAAc,EAAE,aAAa,GAAG,UAAU,CAQ/F,CAAC;AAGF,eAAO,MAAM,iCAAiC,EAAE,MAAM,CACpD,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC,EACnC,aAAa,GAAG,UAAU,CAQ3B,CAAC;AAGF,eAAO,MAAM,iCAAiC,EAAE,MAAM,CACpD,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC,EACnC,aAAa,GAAG,UAAU,CAQ3B,CAAC;AAEF,eAAO,MAAM,qCAAqC,EAAE,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAKvF,CAAC;AAGF,eAAO,MAAM,qCAAqC,EAAE,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAKvF,CAAC;AAEF,eAAO,MAAM,2BAA2B,uDAEJ,CAAC;AAErC,eAAO,MAAM,4BAA4B,kIAEJ,CAAC;AAEtC,eAAO,MAAM,gCAAgC,0CAEJ,CAAC;AAE1C,eAAO,MAAM,2BAA2B,EACW,aAAa,CAAC,6CAA6C,CAAC,CAAC;AAChH,eAAO,MAAM,wBAAwB,EACc,aAAa,CAAC,6CAA6C,CAAC,CAAC;AAEhH,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAIxB,UAAU,CAAC;AAEhB,eAAO,MAAM,iBAAiB,YAAmB,CAAC;AAElD,eAAO,MAAM,mBAAmB,uEAAuE,CAAA;AACvG,eAAO,MAAM,mBAAmB,uEAAuE,CAAC;AACxG,eAAO,MAAM,cAAc,QAA4D,CAAC;AAExF,eAAO,MAAM,yBAAyB,mFAC4C,CAAC;AAEnF,eAAO,MAAM,yBAAyB,mFAC4C,CAAC;AAEnF,eAAO,MAAM,cAAc,QAEA,CAAC;AAE5B,eAAO,MAAM,WAAW,QAAiB,CAAC;AAC1C,eAAO,MAAM,WAAW,QAAiB,CAAC;AAC1C,eAAO,MAAM,YAAY,QAAkB,CAAC;AAC5C,eAAO,MAAM,YAAY,QAAkB,CAAC;AAE5C,eAAO,MAAM,wBAAwB,UAGpC,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,iBAAiB,EAAE,UAAU,CAKvE,CAAC;AAEF,eAAO,MAAM,wBAAwB,iFAAiF,CAAC;AAEvH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAI9D"}
|