@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
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
setTransactionMessageFeePayerSigner,
|
|
16
16
|
setTransactionMessageLifetimeUsingBlockhash,
|
|
17
17
|
type Address,
|
|
18
|
-
type
|
|
18
|
+
type Instruction,
|
|
19
19
|
} from '@solana/kit';
|
|
20
20
|
import type { DcaSingleChainOrder } from '../../orders/dca-single-chain.js';
|
|
21
21
|
import type { SolanaOrderInstructionResult } from '../order-instructions.js';
|
|
@@ -59,7 +59,7 @@ export async function getSolanaDcaSingleChainOrderInstructions(
|
|
|
59
59
|
|
|
60
60
|
const guardAddress = address(SINGLE_CHAIN_GUARD_ADDRESSES[ChainID.Solana]); // Assuming DCA uses same guard
|
|
61
61
|
const addressEncoder = getAddressEncoder();
|
|
62
|
-
const instructions: Array<
|
|
62
|
+
const instructions: Array<Instruction> = [];
|
|
63
63
|
|
|
64
64
|
const [tokenInProgramAccount] = await getProgramDerivedAddress({
|
|
65
65
|
programAddress: ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { BN } from "@coral-xyz/anchor";
|
|
2
|
+
import { PublicKey } from "@solana/web3.js";
|
|
3
|
+
import { keccak256 } from "js-sha3";
|
|
4
|
+
import type { ExtraTransfer } from "./single-chain-limit-order.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Generate secret number and prepare secret hash for single chain DCA orders
|
|
8
|
+
* @param tokenOut Token OUT Pubkey
|
|
9
|
+
* @param receiver Token OUT receiver Pubkey
|
|
10
|
+
* @param extraTransfers Requested extra transfers
|
|
11
|
+
*/
|
|
12
|
+
export function prepareDcaSecretData(
|
|
13
|
+
tokenOut: PublicKey,
|
|
14
|
+
receiver: PublicKey,
|
|
15
|
+
extraTransfers: ExtraTransfer[],
|
|
16
|
+
) {
|
|
17
|
+
const secretNumber = new BN(crypto.getRandomValues(new Uint8Array(8)));
|
|
18
|
+
const secretHash = [...Uint8Array.from(Buffer.from(
|
|
19
|
+
keccak256([
|
|
20
|
+
...tokenOut.toBuffer(),
|
|
21
|
+
...receiver.toBuffer(),
|
|
22
|
+
...Buffer.concat(extraTransfers.map(t => Buffer.concat([
|
|
23
|
+
t.token.toBuffer(),
|
|
24
|
+
t.receiver.toBuffer(),
|
|
25
|
+
]))),
|
|
26
|
+
...secretNumber.toBuffer('le', 8),
|
|
27
|
+
]),
|
|
28
|
+
'hex'
|
|
29
|
+
))];
|
|
30
|
+
|
|
31
|
+
return { secretHash, secretNumber };
|
|
32
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { BN } from "@coral-xyz/anchor";
|
|
2
|
+
import { PublicKey } from "@solana/web3.js";
|
|
3
|
+
import { keccak256 } from "js-sha3";
|
|
4
|
+
|
|
5
|
+
export type ExtraTransfer = {
|
|
6
|
+
token: PublicKey;
|
|
7
|
+
receiver: PublicKey;
|
|
8
|
+
amount: string;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Generate secret number and prepare secret hash for single chain limit orders
|
|
13
|
+
* @param tokenOut Token OUT Pubkey
|
|
14
|
+
* @param receiver Token OUT receiver Pubkey
|
|
15
|
+
* @param extraTransfers Requested extra transfers
|
|
16
|
+
*/
|
|
17
|
+
export function prepareSecretData(
|
|
18
|
+
tokenOut: PublicKey,
|
|
19
|
+
receiver: PublicKey,
|
|
20
|
+
extraTransfers: ExtraTransfer[],
|
|
21
|
+
) {
|
|
22
|
+
const secretNumber = new BN(crypto.getRandomValues(new Uint8Array(8)));
|
|
23
|
+
const secretHash = [...Uint8Array.from(Buffer.from(
|
|
24
|
+
keccak256([
|
|
25
|
+
...tokenOut.toBuffer(),
|
|
26
|
+
...receiver.toBuffer(),
|
|
27
|
+
...Buffer.concat(extraTransfers.map(t => Buffer.concat([
|
|
28
|
+
t.token.toBuffer(),
|
|
29
|
+
t.receiver.toBuffer(),
|
|
30
|
+
]))),
|
|
31
|
+
...secretNumber.toBuffer('le', 8),
|
|
32
|
+
]),
|
|
33
|
+
'hex'
|
|
34
|
+
))];
|
|
35
|
+
|
|
36
|
+
return { secretHash, secretNumber };
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
export function formatTokenPubkey(token: PublicKey) {
|
|
40
|
+
if (token.equals(new PublicKey("So11111111111111111111111111111111111111111"))) {
|
|
41
|
+
return PublicKey.default
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
return token;
|
|
45
|
+
}
|
|
@@ -18,8 +18,8 @@ import {
|
|
|
18
18
|
type FetchAccountsConfig,
|
|
19
19
|
type MaybeAccount,
|
|
20
20
|
type MaybeEncodedAccount,
|
|
21
|
-
} from '@solana/
|
|
22
|
-
import { getAddressDecoder, getAddressEncoder, type Address } from '@solana/
|
|
21
|
+
} from '@solana/accounts';
|
|
22
|
+
import { getAddressDecoder, getAddressEncoder, type Address } from '@solana/addresses';
|
|
23
23
|
import {
|
|
24
24
|
combineCodec,
|
|
25
25
|
fixDecoderSize,
|
|
@@ -31,13 +31,15 @@ import {
|
|
|
31
31
|
getU8Decoder,
|
|
32
32
|
getU8Encoder,
|
|
33
33
|
transformEncoder,
|
|
34
|
-
type
|
|
35
|
-
type
|
|
36
|
-
type
|
|
34
|
+
type FixedSizeCodec,
|
|
35
|
+
type FixedSizeDecoder,
|
|
36
|
+
type FixedSizeEncoder,
|
|
37
37
|
type ReadonlyUint8Array,
|
|
38
|
-
} from '@solana/
|
|
38
|
+
} from '@solana/codecs';
|
|
39
39
|
|
|
40
|
-
export const ADMIN_SINGLETON_DISCRIMINATOR = new Uint8Array([
|
|
40
|
+
export const ADMIN_SINGLETON_DISCRIMINATOR = new Uint8Array([
|
|
41
|
+
179, 22, 254, 245, 204, 230, 222, 194,
|
|
42
|
+
]);
|
|
41
43
|
|
|
42
44
|
export function getAdminSingletonDiscriminatorBytes() {
|
|
43
45
|
return fixEncoderSize(getBytesEncoder(), 8).encode(ADMIN_SINGLETON_DISCRIMINATOR);
|
|
@@ -62,7 +64,7 @@ export type AdminSingletonArgs = {
|
|
|
62
64
|
bump: number;
|
|
63
65
|
};
|
|
64
66
|
|
|
65
|
-
export function getAdminSingletonEncoder():
|
|
67
|
+
export function getAdminSingletonEncoder(): FixedSizeEncoder<AdminSingletonArgs> {
|
|
66
68
|
return transformEncoder(
|
|
67
69
|
getStructEncoder([
|
|
68
70
|
['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
|
|
@@ -70,11 +72,11 @@ export function getAdminSingletonEncoder(): Encoder<AdminSingletonArgs> {
|
|
|
70
72
|
['pendingAdmin', getAddressEncoder()],
|
|
71
73
|
['bump', getU8Encoder()],
|
|
72
74
|
]),
|
|
73
|
-
(value) => ({ ...value, discriminator: ADMIN_SINGLETON_DISCRIMINATOR })
|
|
75
|
+
(value) => ({ ...value, discriminator: ADMIN_SINGLETON_DISCRIMINATOR })
|
|
74
76
|
);
|
|
75
77
|
}
|
|
76
78
|
|
|
77
|
-
export function getAdminSingletonDecoder():
|
|
79
|
+
export function getAdminSingletonDecoder(): FixedSizeDecoder<AdminSingleton> {
|
|
78
80
|
return getStructDecoder([
|
|
79
81
|
['discriminator', fixDecoderSize(getBytesDecoder(), 8)],
|
|
80
82
|
['admin', getAddressDecoder()],
|
|
@@ -83,18 +85,18 @@ export function getAdminSingletonDecoder(): Decoder<AdminSingleton> {
|
|
|
83
85
|
]);
|
|
84
86
|
}
|
|
85
87
|
|
|
86
|
-
export function getAdminSingletonCodec():
|
|
88
|
+
export function getAdminSingletonCodec(): FixedSizeCodec<AdminSingletonArgs, AdminSingleton> {
|
|
87
89
|
return combineCodec(getAdminSingletonEncoder(), getAdminSingletonDecoder());
|
|
88
90
|
}
|
|
89
91
|
|
|
90
92
|
export function decodeAdminSingleton<TAddress extends string = string>(
|
|
91
|
-
encodedAccount: EncodedAccount<TAddress
|
|
93
|
+
encodedAccount: EncodedAccount<TAddress>
|
|
92
94
|
): Account<AdminSingleton, TAddress>;
|
|
93
95
|
export function decodeAdminSingleton<TAddress extends string = string>(
|
|
94
|
-
encodedAccount: MaybeEncodedAccount<TAddress
|
|
96
|
+
encodedAccount: MaybeEncodedAccount<TAddress>
|
|
95
97
|
): MaybeAccount<AdminSingleton, TAddress>;
|
|
96
98
|
export function decodeAdminSingleton<TAddress extends string = string>(
|
|
97
|
-
encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress
|
|
99
|
+
encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>
|
|
98
100
|
): Account<AdminSingleton, TAddress> | MaybeAccount<AdminSingleton, TAddress> {
|
|
99
101
|
return decodeAccount(encodedAccount as MaybeEncodedAccount<TAddress>, getAdminSingletonDecoder());
|
|
100
102
|
}
|
|
@@ -102,7 +104,7 @@ export function decodeAdminSingleton<TAddress extends string = string>(
|
|
|
102
104
|
export async function fetchAdminSingleton<TAddress extends string = string>(
|
|
103
105
|
rpc: Parameters<typeof fetchEncodedAccount>[0],
|
|
104
106
|
address: Address<TAddress>,
|
|
105
|
-
config?: FetchAccountConfig
|
|
107
|
+
config?: FetchAccountConfig
|
|
106
108
|
): Promise<Account<AdminSingleton, TAddress>> {
|
|
107
109
|
const maybeAccount = await fetchMaybeAdminSingleton(rpc, address, config);
|
|
108
110
|
assertAccountExists(maybeAccount);
|
|
@@ -112,7 +114,7 @@ export async function fetchAdminSingleton<TAddress extends string = string>(
|
|
|
112
114
|
export async function fetchMaybeAdminSingleton<TAddress extends string = string>(
|
|
113
115
|
rpc: Parameters<typeof fetchEncodedAccount>[0],
|
|
114
116
|
address: Address<TAddress>,
|
|
115
|
-
config?: FetchAccountConfig
|
|
117
|
+
config?: FetchAccountConfig
|
|
116
118
|
): Promise<MaybeAccount<AdminSingleton, TAddress>> {
|
|
117
119
|
const maybeAccount = await fetchEncodedAccount(rpc, address, config);
|
|
118
120
|
return decodeAdminSingleton(maybeAccount);
|
|
@@ -121,7 +123,7 @@ export async function fetchMaybeAdminSingleton<TAddress extends string = string>
|
|
|
121
123
|
export async function fetchAllAdminSingleton(
|
|
122
124
|
rpc: Parameters<typeof fetchEncodedAccounts>[0],
|
|
123
125
|
addresses: Array<Address>,
|
|
124
|
-
config?: FetchAccountsConfig
|
|
126
|
+
config?: FetchAccountsConfig
|
|
125
127
|
): Promise<Account<AdminSingleton>[]> {
|
|
126
128
|
const maybeAccounts = await fetchAllMaybeAdminSingleton(rpc, addresses, config);
|
|
127
129
|
assertAccountsExist(maybeAccounts);
|
|
@@ -131,7 +133,7 @@ export async function fetchAllAdminSingleton(
|
|
|
131
133
|
export async function fetchAllMaybeAdminSingleton(
|
|
132
134
|
rpc: Parameters<typeof fetchEncodedAccounts>[0],
|
|
133
135
|
addresses: Array<Address>,
|
|
134
|
-
config?: FetchAccountsConfig
|
|
136
|
+
config?: FetchAccountsConfig
|
|
135
137
|
): Promise<MaybeAccount<AdminSingleton>[]> {
|
|
136
138
|
const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
|
|
137
139
|
return maybeAccounts.map((maybeAccount) => decodeAdminSingleton(maybeAccount));
|
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was AUTOGENERATED using the codama library.
|
|
3
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
4
|
+
* to add features, then rerun codama to update it.
|
|
5
|
+
*
|
|
6
|
+
* @see https://github.com/codama-idl/codama
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import {
|
|
10
|
+
assertAccountExists,
|
|
11
|
+
assertAccountsExist,
|
|
12
|
+
decodeAccount,
|
|
13
|
+
fetchEncodedAccount,
|
|
14
|
+
fetchEncodedAccounts,
|
|
15
|
+
type Account,
|
|
16
|
+
type EncodedAccount,
|
|
17
|
+
type FetchAccountConfig,
|
|
18
|
+
type FetchAccountsConfig,
|
|
19
|
+
type MaybeAccount,
|
|
20
|
+
type MaybeEncodedAccount,
|
|
21
|
+
} from '@solana/accounts';
|
|
22
|
+
import { getAddressDecoder, getAddressEncoder, type Address } from '@solana/addresses';
|
|
23
|
+
import {
|
|
24
|
+
combineCodec,
|
|
25
|
+
fixDecoderSize,
|
|
26
|
+
fixEncoderSize,
|
|
27
|
+
getBooleanDecoder,
|
|
28
|
+
getBooleanEncoder,
|
|
29
|
+
getBytesDecoder,
|
|
30
|
+
getBytesEncoder,
|
|
31
|
+
getStructDecoder,
|
|
32
|
+
getStructEncoder,
|
|
33
|
+
getU32Decoder,
|
|
34
|
+
getU32Encoder,
|
|
35
|
+
getU64Decoder,
|
|
36
|
+
getU64Encoder,
|
|
37
|
+
transformEncoder,
|
|
38
|
+
type FixedSizeCodec,
|
|
39
|
+
type FixedSizeDecoder,
|
|
40
|
+
type FixedSizeEncoder,
|
|
41
|
+
type ReadonlyUint8Array,
|
|
42
|
+
} from '@solana/codecs';
|
|
43
|
+
|
|
44
|
+
export const DCA_ORDER_DISCRIMINATOR = new Uint8Array([55, 1, 103, 253, 215, 66, 27, 57]);
|
|
45
|
+
|
|
46
|
+
export function getDcaOrderDiscriminatorBytes() {
|
|
47
|
+
return fixEncoderSize(getBytesEncoder(), 8).encode(DCA_ORDER_DISCRIMINATOR);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export type DcaOrder = {
|
|
51
|
+
discriminator: ReadonlyUint8Array;
|
|
52
|
+
/** User address, that created this order */
|
|
53
|
+
user: Address;
|
|
54
|
+
/** Guard address, that will protect this order execution */
|
|
55
|
+
guard: Address;
|
|
56
|
+
/** Token IN that user wants to spend */
|
|
57
|
+
tokenInMint: Address;
|
|
58
|
+
/** Amount of tokens IN user is willing to spend per interval/trade */
|
|
59
|
+
amountInPerInterval: bigint;
|
|
60
|
+
/** Min amount of stablecoins to receive if token IN will be swapped */
|
|
61
|
+
minStablecoinsAmountPerInterval: bigint;
|
|
62
|
+
/** Timestamp (in seconds) when the user created and submitted the DCA order */
|
|
63
|
+
startTime: number;
|
|
64
|
+
/** Deadline for the operation, in Unix timestamp format, in SECONDS */
|
|
65
|
+
deadline: number;
|
|
66
|
+
/** Total number of intervals over which the DCA order will be executed */
|
|
67
|
+
totalIntervals: number;
|
|
68
|
+
/** DCA interval duration, in seconds */
|
|
69
|
+
intervalDuration: number;
|
|
70
|
+
/** 32 bytes SHA-256 hash of execution details JSON string. Everything that's not used in smart contract */
|
|
71
|
+
executionDetailsHash: ReadonlyUint8Array;
|
|
72
|
+
/** True if order was cancelled while execution was in progress */
|
|
73
|
+
cancelled: boolean;
|
|
74
|
+
/** `true` if tokens IN were taken for swap during `pre_swap` instruction */
|
|
75
|
+
tokensInWereSwapped: boolean;
|
|
76
|
+
/** Amount of stablecoins, locked after swap */
|
|
77
|
+
lockedStablecoins: bigint;
|
|
78
|
+
/** Collateral amount, locked during order execution */
|
|
79
|
+
lockedCollateral: bigint;
|
|
80
|
+
/** Active solver which is currently executing this order */
|
|
81
|
+
activeSolver: Address;
|
|
82
|
+
/**
|
|
83
|
+
* Timestamp, until which `active_solver` MUST execute the order and claim tokens
|
|
84
|
+
* Order is locked for everyone but `active_solver` until this deadline
|
|
85
|
+
*/
|
|
86
|
+
executionDeadline: number;
|
|
87
|
+
/** Interval INDEX when latest order execution has started */
|
|
88
|
+
intervalIndexOfLatestExecutionStart: number;
|
|
89
|
+
/** Total number of already executed intervals */
|
|
90
|
+
totalExecutedIntervals: number;
|
|
91
|
+
/** INDEX of last executed interval */
|
|
92
|
+
lastExecutedIntervalIndex: number;
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
export type DcaOrderArgs = {
|
|
96
|
+
/** User address, that created this order */
|
|
97
|
+
user: Address;
|
|
98
|
+
/** Guard address, that will protect this order execution */
|
|
99
|
+
guard: Address;
|
|
100
|
+
/** Token IN that user wants to spend */
|
|
101
|
+
tokenInMint: Address;
|
|
102
|
+
/** Amount of tokens IN user is willing to spend per interval/trade */
|
|
103
|
+
amountInPerInterval: number | bigint;
|
|
104
|
+
/** Min amount of stablecoins to receive if token IN will be swapped */
|
|
105
|
+
minStablecoinsAmountPerInterval: number | bigint;
|
|
106
|
+
/** Timestamp (in seconds) when the user created and submitted the DCA order */
|
|
107
|
+
startTime: number;
|
|
108
|
+
/** Deadline for the operation, in Unix timestamp format, in SECONDS */
|
|
109
|
+
deadline: number;
|
|
110
|
+
/** Total number of intervals over which the DCA order will be executed */
|
|
111
|
+
totalIntervals: number;
|
|
112
|
+
/** DCA interval duration, in seconds */
|
|
113
|
+
intervalDuration: number;
|
|
114
|
+
/** 32 bytes SHA-256 hash of execution details JSON string. Everything that's not used in smart contract */
|
|
115
|
+
executionDetailsHash: ReadonlyUint8Array;
|
|
116
|
+
/** True if order was cancelled while execution was in progress */
|
|
117
|
+
cancelled: boolean;
|
|
118
|
+
/** `true` if tokens IN were taken for swap during `pre_swap` instruction */
|
|
119
|
+
tokensInWereSwapped: boolean;
|
|
120
|
+
/** Amount of stablecoins, locked after swap */
|
|
121
|
+
lockedStablecoins: number | bigint;
|
|
122
|
+
/** Collateral amount, locked during order execution */
|
|
123
|
+
lockedCollateral: number | bigint;
|
|
124
|
+
/** Active solver which is currently executing this order */
|
|
125
|
+
activeSolver: Address;
|
|
126
|
+
/**
|
|
127
|
+
* Timestamp, until which `active_solver` MUST execute the order and claim tokens
|
|
128
|
+
* Order is locked for everyone but `active_solver` until this deadline
|
|
129
|
+
*/
|
|
130
|
+
executionDeadline: number;
|
|
131
|
+
/** Interval INDEX when latest order execution has started */
|
|
132
|
+
intervalIndexOfLatestExecutionStart: number;
|
|
133
|
+
/** Total number of already executed intervals */
|
|
134
|
+
totalExecutedIntervals: number;
|
|
135
|
+
/** INDEX of last executed interval */
|
|
136
|
+
lastExecutedIntervalIndex: number;
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
export function getDcaOrderEncoder(): FixedSizeEncoder<DcaOrderArgs> {
|
|
140
|
+
return transformEncoder(
|
|
141
|
+
getStructEncoder([
|
|
142
|
+
['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
|
|
143
|
+
['user', getAddressEncoder()],
|
|
144
|
+
['guard', getAddressEncoder()],
|
|
145
|
+
['tokenInMint', getAddressEncoder()],
|
|
146
|
+
['amountInPerInterval', getU64Encoder()],
|
|
147
|
+
['minStablecoinsAmountPerInterval', getU64Encoder()],
|
|
148
|
+
['startTime', getU32Encoder()],
|
|
149
|
+
['deadline', getU32Encoder()],
|
|
150
|
+
['totalIntervals', getU32Encoder()],
|
|
151
|
+
['intervalDuration', getU32Encoder()],
|
|
152
|
+
['executionDetailsHash', fixEncoderSize(getBytesEncoder(), 32)],
|
|
153
|
+
['cancelled', getBooleanEncoder()],
|
|
154
|
+
['tokensInWereSwapped', getBooleanEncoder()],
|
|
155
|
+
['lockedStablecoins', getU64Encoder()],
|
|
156
|
+
['lockedCollateral', getU64Encoder()],
|
|
157
|
+
['activeSolver', getAddressEncoder()],
|
|
158
|
+
['executionDeadline', getU32Encoder()],
|
|
159
|
+
['intervalIndexOfLatestExecutionStart', getU32Encoder()],
|
|
160
|
+
['totalExecutedIntervals', getU32Encoder()],
|
|
161
|
+
['lastExecutedIntervalIndex', getU32Encoder()],
|
|
162
|
+
]),
|
|
163
|
+
(value) => ({ ...value, discriminator: DCA_ORDER_DISCRIMINATOR })
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
export function getDcaOrderDecoder(): FixedSizeDecoder<DcaOrder> {
|
|
168
|
+
return getStructDecoder([
|
|
169
|
+
['discriminator', fixDecoderSize(getBytesDecoder(), 8)],
|
|
170
|
+
['user', getAddressDecoder()],
|
|
171
|
+
['guard', getAddressDecoder()],
|
|
172
|
+
['tokenInMint', getAddressDecoder()],
|
|
173
|
+
['amountInPerInterval', getU64Decoder()],
|
|
174
|
+
['minStablecoinsAmountPerInterval', getU64Decoder()],
|
|
175
|
+
['startTime', getU32Decoder()],
|
|
176
|
+
['deadline', getU32Decoder()],
|
|
177
|
+
['totalIntervals', getU32Decoder()],
|
|
178
|
+
['intervalDuration', getU32Decoder()],
|
|
179
|
+
['executionDetailsHash', fixDecoderSize(getBytesDecoder(), 32)],
|
|
180
|
+
['cancelled', getBooleanDecoder()],
|
|
181
|
+
['tokensInWereSwapped', getBooleanDecoder()],
|
|
182
|
+
['lockedStablecoins', getU64Decoder()],
|
|
183
|
+
['lockedCollateral', getU64Decoder()],
|
|
184
|
+
['activeSolver', getAddressDecoder()],
|
|
185
|
+
['executionDeadline', getU32Decoder()],
|
|
186
|
+
['intervalIndexOfLatestExecutionStart', getU32Decoder()],
|
|
187
|
+
['totalExecutedIntervals', getU32Decoder()],
|
|
188
|
+
['lastExecutedIntervalIndex', getU32Decoder()],
|
|
189
|
+
]);
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
export function getDcaOrderCodec(): FixedSizeCodec<DcaOrderArgs, DcaOrder> {
|
|
193
|
+
return combineCodec(getDcaOrderEncoder(), getDcaOrderDecoder());
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
export function decodeDcaOrder<TAddress extends string = string>(
|
|
197
|
+
encodedAccount: EncodedAccount<TAddress>
|
|
198
|
+
): Account<DcaOrder, TAddress>;
|
|
199
|
+
export function decodeDcaOrder<TAddress extends string = string>(
|
|
200
|
+
encodedAccount: MaybeEncodedAccount<TAddress>
|
|
201
|
+
): MaybeAccount<DcaOrder, TAddress>;
|
|
202
|
+
export function decodeDcaOrder<TAddress extends string = string>(
|
|
203
|
+
encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>
|
|
204
|
+
): Account<DcaOrder, TAddress> | MaybeAccount<DcaOrder, TAddress> {
|
|
205
|
+
return decodeAccount(encodedAccount as MaybeEncodedAccount<TAddress>, getDcaOrderDecoder());
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
export async function fetchDcaOrder<TAddress extends string = string>(
|
|
209
|
+
rpc: Parameters<typeof fetchEncodedAccount>[0],
|
|
210
|
+
address: Address<TAddress>,
|
|
211
|
+
config?: FetchAccountConfig
|
|
212
|
+
): Promise<Account<DcaOrder, TAddress>> {
|
|
213
|
+
const maybeAccount = await fetchMaybeDcaOrder(rpc, address, config);
|
|
214
|
+
assertAccountExists(maybeAccount);
|
|
215
|
+
return maybeAccount;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
export async function fetchMaybeDcaOrder<TAddress extends string = string>(
|
|
219
|
+
rpc: Parameters<typeof fetchEncodedAccount>[0],
|
|
220
|
+
address: Address<TAddress>,
|
|
221
|
+
config?: FetchAccountConfig
|
|
222
|
+
): Promise<MaybeAccount<DcaOrder, TAddress>> {
|
|
223
|
+
const maybeAccount = await fetchEncodedAccount(rpc, address, config);
|
|
224
|
+
return decodeDcaOrder(maybeAccount);
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
export async function fetchAllDcaOrder(
|
|
228
|
+
rpc: Parameters<typeof fetchEncodedAccounts>[0],
|
|
229
|
+
addresses: Array<Address>,
|
|
230
|
+
config?: FetchAccountsConfig
|
|
231
|
+
): Promise<Account<DcaOrder>[]> {
|
|
232
|
+
const maybeAccounts = await fetchAllMaybeDcaOrder(rpc, addresses, config);
|
|
233
|
+
assertAccountsExist(maybeAccounts);
|
|
234
|
+
return maybeAccounts;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
export async function fetchAllMaybeDcaOrder(
|
|
238
|
+
rpc: Parameters<typeof fetchEncodedAccounts>[0],
|
|
239
|
+
addresses: Array<Address>,
|
|
240
|
+
config?: FetchAccountsConfig
|
|
241
|
+
): Promise<MaybeAccount<DcaOrder>[]> {
|
|
242
|
+
const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
|
|
243
|
+
return maybeAccounts.map((maybeAccount) => decodeDcaOrder(maybeAccount));
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
export function getDcaOrderSize(): number {
|
|
247
|
+
return 234;
|
|
248
|
+
}
|
|
@@ -18,8 +18,8 @@ import {
|
|
|
18
18
|
type FetchAccountsConfig,
|
|
19
19
|
type MaybeAccount,
|
|
20
20
|
type MaybeEncodedAccount,
|
|
21
|
-
} from '@solana/
|
|
22
|
-
import { getAddressDecoder, getAddressEncoder, type Address } from '@solana/
|
|
21
|
+
} from '@solana/accounts';
|
|
22
|
+
import { getAddressDecoder, getAddressEncoder, type Address } from '@solana/addresses';
|
|
23
23
|
import {
|
|
24
24
|
combineCodec,
|
|
25
25
|
fixDecoderSize,
|
|
@@ -33,11 +33,11 @@ import {
|
|
|
33
33
|
getU8Decoder,
|
|
34
34
|
getU8Encoder,
|
|
35
35
|
transformEncoder,
|
|
36
|
-
type
|
|
37
|
-
type
|
|
38
|
-
type
|
|
36
|
+
type FixedSizeCodec,
|
|
37
|
+
type FixedSizeDecoder,
|
|
38
|
+
type FixedSizeEncoder,
|
|
39
39
|
type ReadonlyUint8Array,
|
|
40
|
-
} from '@solana/
|
|
40
|
+
} from '@solana/codecs';
|
|
41
41
|
|
|
42
42
|
export const GUARD_DISCRIMINATOR = new Uint8Array([54, 187, 84, 137, 192, 15, 74, 248]);
|
|
43
43
|
|
|
@@ -51,6 +51,8 @@ export type Guard = {
|
|
|
51
51
|
collateralToken: Address;
|
|
52
52
|
/** Token that is used as token OUT when swapping Token IN during order execution start */
|
|
53
53
|
stablecoinToken: Address;
|
|
54
|
+
/** Version that allows having multiple Guards with same `collateral_token` + `stablecoin_token` */
|
|
55
|
+
version: number;
|
|
54
56
|
/** PDA bump */
|
|
55
57
|
bump: number;
|
|
56
58
|
/** Public key of auctioneer that signs permissions and confirmations */
|
|
@@ -64,6 +66,8 @@ export type GuardArgs = {
|
|
|
64
66
|
collateralToken: Address;
|
|
65
67
|
/** Token that is used as token OUT when swapping Token IN during order execution start */
|
|
66
68
|
stablecoinToken: Address;
|
|
69
|
+
/** Version that allows having multiple Guards with same `collateral_token` + `stablecoin_token` */
|
|
70
|
+
version: number;
|
|
67
71
|
/** PDA bump */
|
|
68
72
|
bump: number;
|
|
69
73
|
/** Public key of auctioneer that signs permissions and confirmations */
|
|
@@ -72,43 +76,45 @@ export type GuardArgs = {
|
|
|
72
76
|
collectedFees: number | bigint;
|
|
73
77
|
};
|
|
74
78
|
|
|
75
|
-
export function getGuardEncoder():
|
|
79
|
+
export function getGuardEncoder(): FixedSizeEncoder<GuardArgs> {
|
|
76
80
|
return transformEncoder(
|
|
77
81
|
getStructEncoder([
|
|
78
82
|
['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
|
|
79
83
|
['collateralToken', getAddressEncoder()],
|
|
80
84
|
['stablecoinToken', getAddressEncoder()],
|
|
85
|
+
['version', getU8Encoder()],
|
|
81
86
|
['bump', getU8Encoder()],
|
|
82
87
|
['auctioneerPubKey', getAddressEncoder()],
|
|
83
88
|
['collectedFees', getU64Encoder()],
|
|
84
89
|
]),
|
|
85
|
-
(value) => ({ ...value, discriminator: GUARD_DISCRIMINATOR })
|
|
90
|
+
(value) => ({ ...value, discriminator: GUARD_DISCRIMINATOR })
|
|
86
91
|
);
|
|
87
92
|
}
|
|
88
93
|
|
|
89
|
-
export function getGuardDecoder():
|
|
94
|
+
export function getGuardDecoder(): FixedSizeDecoder<Guard> {
|
|
90
95
|
return getStructDecoder([
|
|
91
96
|
['discriminator', fixDecoderSize(getBytesDecoder(), 8)],
|
|
92
97
|
['collateralToken', getAddressDecoder()],
|
|
93
98
|
['stablecoinToken', getAddressDecoder()],
|
|
99
|
+
['version', getU8Decoder()],
|
|
94
100
|
['bump', getU8Decoder()],
|
|
95
101
|
['auctioneerPubKey', getAddressDecoder()],
|
|
96
102
|
['collectedFees', getU64Decoder()],
|
|
97
103
|
]);
|
|
98
104
|
}
|
|
99
105
|
|
|
100
|
-
export function getGuardCodec():
|
|
106
|
+
export function getGuardCodec(): FixedSizeCodec<GuardArgs, Guard> {
|
|
101
107
|
return combineCodec(getGuardEncoder(), getGuardDecoder());
|
|
102
108
|
}
|
|
103
109
|
|
|
104
110
|
export function decodeGuard<TAddress extends string = string>(
|
|
105
|
-
encodedAccount: EncodedAccount<TAddress
|
|
111
|
+
encodedAccount: EncodedAccount<TAddress>
|
|
106
112
|
): Account<Guard, TAddress>;
|
|
107
113
|
export function decodeGuard<TAddress extends string = string>(
|
|
108
|
-
encodedAccount: MaybeEncodedAccount<TAddress
|
|
114
|
+
encodedAccount: MaybeEncodedAccount<TAddress>
|
|
109
115
|
): MaybeAccount<Guard, TAddress>;
|
|
110
116
|
export function decodeGuard<TAddress extends string = string>(
|
|
111
|
-
encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress
|
|
117
|
+
encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>
|
|
112
118
|
): Account<Guard, TAddress> | MaybeAccount<Guard, TAddress> {
|
|
113
119
|
return decodeAccount(encodedAccount as MaybeEncodedAccount<TAddress>, getGuardDecoder());
|
|
114
120
|
}
|
|
@@ -116,7 +122,7 @@ export function decodeGuard<TAddress extends string = string>(
|
|
|
116
122
|
export async function fetchGuard<TAddress extends string = string>(
|
|
117
123
|
rpc: Parameters<typeof fetchEncodedAccount>[0],
|
|
118
124
|
address: Address<TAddress>,
|
|
119
|
-
config?: FetchAccountConfig
|
|
125
|
+
config?: FetchAccountConfig
|
|
120
126
|
): Promise<Account<Guard, TAddress>> {
|
|
121
127
|
const maybeAccount = await fetchMaybeGuard(rpc, address, config);
|
|
122
128
|
assertAccountExists(maybeAccount);
|
|
@@ -126,7 +132,7 @@ export async function fetchGuard<TAddress extends string = string>(
|
|
|
126
132
|
export async function fetchMaybeGuard<TAddress extends string = string>(
|
|
127
133
|
rpc: Parameters<typeof fetchEncodedAccount>[0],
|
|
128
134
|
address: Address<TAddress>,
|
|
129
|
-
config?: FetchAccountConfig
|
|
135
|
+
config?: FetchAccountConfig
|
|
130
136
|
): Promise<MaybeAccount<Guard, TAddress>> {
|
|
131
137
|
const maybeAccount = await fetchEncodedAccount(rpc, address, config);
|
|
132
138
|
return decodeGuard(maybeAccount);
|
|
@@ -135,7 +141,7 @@ export async function fetchMaybeGuard<TAddress extends string = string>(
|
|
|
135
141
|
export async function fetchAllGuard(
|
|
136
142
|
rpc: Parameters<typeof fetchEncodedAccounts>[0],
|
|
137
143
|
addresses: Array<Address>,
|
|
138
|
-
config?: FetchAccountsConfig
|
|
144
|
+
config?: FetchAccountsConfig
|
|
139
145
|
): Promise<Account<Guard>[]> {
|
|
140
146
|
const maybeAccounts = await fetchAllMaybeGuard(rpc, addresses, config);
|
|
141
147
|
assertAccountsExist(maybeAccounts);
|
|
@@ -145,12 +151,12 @@ export async function fetchAllGuard(
|
|
|
145
151
|
export async function fetchAllMaybeGuard(
|
|
146
152
|
rpc: Parameters<typeof fetchEncodedAccounts>[0],
|
|
147
153
|
addresses: Array<Address>,
|
|
148
|
-
config?: FetchAccountsConfig
|
|
154
|
+
config?: FetchAccountsConfig
|
|
149
155
|
): Promise<MaybeAccount<Guard>[]> {
|
|
150
156
|
const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
|
|
151
157
|
return maybeAccounts.map((maybeAccount) => decodeGuard(maybeAccount));
|
|
152
158
|
}
|
|
153
159
|
|
|
154
160
|
export function getGuardSize(): number {
|
|
155
|
-
return
|
|
161
|
+
return 114;
|
|
156
162
|
}
|