@shogun-sdk/intents-sdk 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +124 -0
- package/dist/_esm/chains.js +46 -0
- package/dist/_esm/chains.js.map +1 -0
- package/dist/_esm/config.js +2 -0
- package/dist/_esm/config.js.map +1 -0
- package/dist/_esm/constants.js +46 -0
- package/dist/_esm/constants.js.map +1 -0
- package/dist/_esm/core/evm/abi/erc20.js +313 -0
- package/dist/_esm/core/evm/abi/erc20.js.map +1 -0
- package/dist/_esm/core/evm/abi/source-chain-guard.js +1716 -0
- package/dist/_esm/core/evm/abi/source-chain-guard.js.map +1 -0
- package/dist/_esm/core/evm/intent-provider.js +59 -0
- package/dist/_esm/core/evm/intent-provider.js.map +1 -0
- package/dist/_esm/core/evm/order-signature.js +19 -0
- package/dist/_esm/core/evm/order-signature.js.map +1 -0
- package/dist/_esm/core/evm/permit2.js +31 -0
- package/dist/_esm/core/evm/permit2.js.map +1 -0
- package/dist/_esm/core/evm/sdk.js +79 -0
- package/dist/_esm/core/evm/sdk.js.map +1 -0
- package/dist/_esm/core/evm/validator.js +46 -0
- package/dist/_esm/core/evm/validator.js.map +1 -0
- package/dist/_esm/core/evm/viem-provider.js +76 -0
- package/dist/_esm/core/evm/viem-provider.js.map +1 -0
- package/dist/_esm/core/order.js +190 -0
- package/dist/_esm/core/order.js.map +1 -0
- package/dist/_esm/core/sdk.js +120 -0
- package/dist/_esm/core/sdk.js.map +1 -0
- package/dist/_esm/core/solana/client.js +19 -0
- package/dist/_esm/core/solana/client.js.map +1 -0
- package/dist/_esm/core/solana/generated/accounts/adminSingleton.js +56 -0
- package/dist/_esm/core/solana/generated/accounts/adminSingleton.js.map +1 -0
- package/dist/_esm/core/solana/generated/accounts/guard.js +62 -0
- package/dist/_esm/core/solana/generated/accounts/guard.js.map +1 -0
- package/dist/_esm/core/solana/generated/accounts/index.js +11 -0
- package/dist/_esm/core/solana/generated/accounts/index.js.map +1 -0
- package/dist/_esm/core/solana/generated/accounts/order.js +78 -0
- package/dist/_esm/core/solana/generated/accounts/order.js.map +1 -0
- package/dist/_esm/core/solana/generated/errors/index.js +9 -0
- package/dist/_esm/core/solana/generated/errors/index.js.map +1 -0
- package/dist/_esm/core/solana/generated/errors/sourceChainGuard.js +35 -0
- package/dist/_esm/core/solana/generated/errors/sourceChainGuard.js.map +1 -0
- package/dist/_esm/core/solana/generated/index.js +13 -0
- package/dist/_esm/core/solana/generated/index.js.map +1 -0
- package/dist/_esm/core/solana/generated/instructions/cancelOrder.js +125 -0
- package/dist/_esm/core/solana/generated/instructions/cancelOrder.js.map +1 -0
- package/dist/_esm/core/solana/generated/instructions/claimTokens.js +142 -0
- package/dist/_esm/core/solana/generated/instructions/claimTokens.js.map +1 -0
- package/dist/_esm/core/solana/generated/instructions/collectProtocolFees.js +146 -0
- package/dist/_esm/core/solana/generated/instructions/collectProtocolFees.js.map +1 -0
- package/dist/_esm/core/solana/generated/instructions/createGuard.js +236 -0
- package/dist/_esm/core/solana/generated/instructions/createGuard.js.map +1 -0
- package/dist/_esm/core/solana/generated/instructions/createOrder.js +182 -0
- package/dist/_esm/core/solana/generated/instructions/createOrder.js.map +1 -0
- package/dist/_esm/core/solana/generated/instructions/index.js +19 -0
- package/dist/_esm/core/solana/generated/instructions/index.js.map +1 -0
- package/dist/_esm/core/solana/generated/instructions/initialize.js +109 -0
- package/dist/_esm/core/solana/generated/instructions/initialize.js.map +1 -0
- package/dist/_esm/core/solana/generated/instructions/preStartOrderExecution.js +123 -0
- package/dist/_esm/core/solana/generated/instructions/preStartOrderExecution.js.map +1 -0
- package/dist/_esm/core/solana/generated/instructions/setAdmin.js +98 -0
- package/dist/_esm/core/solana/generated/instructions/setAdmin.js.map +1 -0
- package/dist/_esm/core/solana/generated/instructions/setAuctioneerPubKey.js +104 -0
- package/dist/_esm/core/solana/generated/instructions/setAuctioneerPubKey.js.map +1 -0
- package/dist/_esm/core/solana/generated/instructions/startOrderExecution.js +105 -0
- package/dist/_esm/core/solana/generated/instructions/startOrderExecution.js.map +1 -0
- package/dist/_esm/core/solana/generated/instructions/startOrderExecutionAfterSwap.js +113 -0
- package/dist/_esm/core/solana/generated/instructions/startOrderExecutionAfterSwap.js.map +1 -0
- package/dist/_esm/core/solana/generated/programs/index.js +9 -0
- package/dist/_esm/core/solana/generated/programs/index.js.map +1 -0
- package/dist/_esm/core/solana/generated/programs/sourceChainGuard.js +82 -0
- package/dist/_esm/core/solana/generated/programs/sourceChainGuard.js.map +1 -0
- package/dist/_esm/core/solana/generated/shared/index.js +82 -0
- package/dist/_esm/core/solana/generated/shared/index.js.map +1 -0
- package/dist/_esm/core/solana/generated/types/adminUpdated.js +18 -0
- package/dist/_esm/core/solana/generated/types/adminUpdated.js.map +1 -0
- package/dist/_esm/core/solana/generated/types/auctioneerPubkeyUpdated.js +24 -0
- package/dist/_esm/core/solana/generated/types/auctioneerPubkeyUpdated.js.map +1 -0
- package/dist/_esm/core/solana/generated/types/executionStarted.js +30 -0
- package/dist/_esm/core/solana/generated/types/executionStarted.js.map +1 -0
- package/dist/_esm/core/solana/generated/types/guardCreated.js +28 -0
- package/dist/_esm/core/solana/generated/types/guardCreated.js.map +1 -0
- package/dist/_esm/core/solana/generated/types/index.js +16 -0
- package/dist/_esm/core/solana/generated/types/index.js.map +1 -0
- package/dist/_esm/core/solana/generated/types/orderCancelled.js +18 -0
- package/dist/_esm/core/solana/generated/types/orderCancelled.js.map +1 -0
- package/dist/_esm/core/solana/generated/types/orderCreated.js +36 -0
- package/dist/_esm/core/solana/generated/types/orderCreated.js.map +1 -0
- package/dist/_esm/core/solana/generated/types/orderFulfilled.js +18 -0
- package/dist/_esm/core/solana/generated/types/orderFulfilled.js.map +1 -0
- package/dist/_esm/core/solana/generated/types/tokenInSwapped.js +26 -0
- package/dist/_esm/core/solana/generated/types/tokenInSwapped.js.map +1 -0
- package/dist/_esm/core/solana/order-instructions.js +92 -0
- package/dist/_esm/core/solana/order-instructions.js.map +1 -0
- package/dist/_esm/core/solana/sdk.js +111 -0
- package/dist/_esm/core/solana/sdk.js.map +1 -0
- package/dist/_esm/core/solana/validator.js +22 -0
- package/dist/_esm/core/solana/validator.js.map +1 -0
- package/dist/_esm/core/sui/client.js +3 -0
- package/dist/_esm/core/sui/client.js.map +1 -0
- package/dist/_esm/core/sui/order-transaction.js +56 -0
- package/dist/_esm/core/sui/order-transaction.js.map +1 -0
- package/dist/_esm/core/sui/sdk.js +94 -0
- package/dist/_esm/core/sui/sdk.js.map +1 -0
- package/dist/_esm/core/sui/validator.js +25 -0
- package/dist/_esm/core/sui/validator.js.map +1 -0
- package/dist/_esm/errors/index.js +94 -0
- package/dist/_esm/errors/index.js.map +1 -0
- package/dist/_esm/index.js +7 -0
- package/dist/_esm/index.js.map +1 -0
- package/dist/_esm/package.json +1 -0
- package/dist/_esm/types/intent.js +2 -0
- package/dist/_esm/types/intent.js.map +1 -0
- package/dist/_esm/utils/base-validator.js +51 -0
- package/dist/_esm/utils/base-validator.js.map +1 -0
- package/dist/_esm/utils/logger.js +109 -0
- package/dist/_esm/utils/logger.js.map +1 -0
- package/dist/_esm/utils/order-validator.js +75 -0
- package/dist/_esm/utils/order-validator.js.map +1 -0
- package/dist/_esm/utils/parsers.js +10 -0
- package/dist/_esm/utils/parsers.js.map +1 -0
- package/dist/_esm/utils/type-utils.js +2 -0
- package/dist/_esm/utils/type-utils.js.map +1 -0
- package/dist/_types/chains.d.ts +69 -0
- package/dist/_types/chains.d.ts.map +1 -0
- package/dist/_types/config.d.ts +21 -0
- package/dist/_types/config.d.ts.map +1 -0
- package/dist/_types/constants.d.ts +18 -0
- package/dist/_types/constants.d.ts.map +1 -0
- package/dist/_types/core/evm/abi/erc20.d.ts +240 -0
- package/dist/_types/core/evm/abi/erc20.d.ts.map +1 -0
- package/dist/_types/core/evm/abi/source-chain-guard.d.ts +1343 -0
- package/dist/_types/core/evm/abi/source-chain-guard.d.ts.map +1 -0
- package/dist/_types/core/evm/intent-provider.d.ts +12 -0
- package/dist/_types/core/evm/intent-provider.d.ts.map +1 -0
- package/dist/_types/core/evm/order-signature.d.ts +19 -0
- package/dist/_types/core/evm/order-signature.d.ts.map +1 -0
- package/dist/_types/core/evm/permit2.d.ts +75 -0
- package/dist/_types/core/evm/permit2.d.ts.map +1 -0
- package/dist/_types/core/evm/sdk.d.ts +50 -0
- package/dist/_types/core/evm/sdk.d.ts.map +1 -0
- package/dist/_types/core/evm/validator.d.ts +13 -0
- package/dist/_types/core/evm/validator.d.ts.map +1 -0
- package/dist/_types/core/evm/viem-provider.d.ts +9657 -0
- package/dist/_types/core/evm/viem-provider.d.ts.map +1 -0
- package/dist/_types/core/order.d.ts +122 -0
- package/dist/_types/core/order.d.ts.map +1 -0
- package/dist/_types/core/sdk.d.ts +86 -0
- package/dist/_types/core/sdk.d.ts.map +1 -0
- package/dist/_types/core/solana/client.d.ts +11 -0
- package/dist/_types/core/solana/client.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/accounts/adminSingleton.d.ts +36 -0
- package/dist/_types/core/solana/generated/accounts/adminSingleton.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/accounts/guard.d.ts +48 -0
- package/dist/_types/core/solana/generated/accounts/guard.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/accounts/index.d.ts +11 -0
- package/dist/_types/core/solana/generated/accounts/index.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/accounts/order.d.ts +92 -0
- package/dist/_types/core/solana/generated/accounts/order.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/errors/index.d.ts +9 -0
- package/dist/_types/core/solana/generated/errors/index.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/errors/sourceChainGuard.d.ts +27 -0
- package/dist/_types/core/solana/generated/errors/sourceChainGuard.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/index.d.ts +13 -0
- package/dist/_types/core/solana/generated/index.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/instructions/cancelOrder.d.ts +108 -0
- package/dist/_types/core/solana/generated/instructions/cancelOrder.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/instructions/claimTokens.d.ts +131 -0
- package/dist/_types/core/solana/generated/instructions/claimTokens.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/instructions/collectProtocolFees.d.ts +91 -0
- package/dist/_types/core/solana/generated/instructions/collectProtocolFees.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/instructions/createGuard.d.ts +133 -0
- package/dist/_types/core/solana/generated/instructions/createGuard.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/instructions/createOrder.d.ts +122 -0
- package/dist/_types/core/solana/generated/instructions/createOrder.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/instructions/index.d.ts +19 -0
- package/dist/_types/core/solana/generated/instructions/index.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/instructions/initialize.d.ts +63 -0
- package/dist/_types/core/solana/generated/instructions/initialize.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/instructions/preStartOrderExecution.d.ts +105 -0
- package/dist/_types/core/solana/generated/instructions/preStartOrderExecution.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/instructions/setAdmin.d.ts +61 -0
- package/dist/_types/core/solana/generated/instructions/setAdmin.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/instructions/setAuctioneerPubKey.d.ts +68 -0
- package/dist/_types/core/solana/generated/instructions/setAuctioneerPubKey.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/instructions/startOrderExecution.d.ts +85 -0
- package/dist/_types/core/solana/generated/instructions/startOrderExecution.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/instructions/startOrderExecutionAfterSwap.d.ts +95 -0
- package/dist/_types/core/solana/generated/instructions/startOrderExecutionAfterSwap.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/programs/index.d.ts +9 -0
- package/dist/_types/core/solana/generated/programs/index.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/programs/sourceChainGuard.d.ts +59 -0
- package/dist/_types/core/solana/generated/programs/sourceChainGuard.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/shared/index.d.ts +52 -0
- package/dist/_types/core/solana/generated/shared/index.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/types/adminUpdated.d.ts +16 -0
- package/dist/_types/core/solana/generated/types/adminUpdated.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/types/auctioneerPubkeyUpdated.d.ts +17 -0
- package/dist/_types/core/solana/generated/types/auctioneerPubkeyUpdated.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/types/executionStarted.d.ts +26 -0
- package/dist/_types/core/solana/generated/types/executionStarted.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/types/guardCreated.d.ts +19 -0
- package/dist/_types/core/solana/generated/types/guardCreated.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/types/index.d.ts +16 -0
- package/dist/_types/core/solana/generated/types/index.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/types/orderCancelled.d.ts +16 -0
- package/dist/_types/core/solana/generated/types/orderCancelled.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/types/orderCreated.d.ts +32 -0
- package/dist/_types/core/solana/generated/types/orderCreated.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/types/orderFulfilled.d.ts +16 -0
- package/dist/_types/core/solana/generated/types/orderFulfilled.d.ts.map +1 -0
- package/dist/_types/core/solana/generated/types/tokenInSwapped.d.ts +22 -0
- package/dist/_types/core/solana/generated/types/tokenInSwapped.d.ts.map +1 -0
- package/dist/_types/core/solana/order-instructions.d.ts +12 -0
- package/dist/_types/core/solana/order-instructions.d.ts.map +1 -0
- package/dist/_types/core/solana/sdk.d.ts +65 -0
- package/dist/_types/core/solana/sdk.d.ts.map +1 -0
- package/dist/_types/core/solana/validator.d.ts +9 -0
- package/dist/_types/core/solana/validator.d.ts.map +1 -0
- package/dist/_types/core/sui/client.d.ts +3 -0
- package/dist/_types/core/sui/client.d.ts.map +1 -0
- package/dist/_types/core/sui/order-transaction.d.ts +9 -0
- package/dist/_types/core/sui/order-transaction.d.ts.map +1 -0
- package/dist/_types/core/sui/sdk.d.ts +55 -0
- package/dist/_types/core/sui/sdk.d.ts.map +1 -0
- package/dist/_types/core/sui/validator.d.ts +9 -0
- package/dist/_types/core/sui/validator.d.ts.map +1 -0
- package/dist/_types/errors/index.d.ts +32 -0
- package/dist/_types/errors/index.d.ts.map +1 -0
- package/dist/_types/index.d.ts +10 -0
- package/dist/_types/index.d.ts.map +1 -0
- package/dist/_types/types/intent.d.ts +129 -0
- package/dist/_types/types/intent.d.ts.map +1 -0
- package/dist/_types/utils/base-validator.d.ts +28 -0
- package/dist/_types/utils/base-validator.d.ts.map +1 -0
- package/dist/_types/utils/logger.d.ts +35 -0
- package/dist/_types/utils/logger.d.ts.map +1 -0
- package/dist/_types/utils/order-validator.d.ts +40 -0
- package/dist/_types/utils/order-validator.d.ts.map +1 -0
- package/dist/_types/utils/parsers.d.ts +4 -0
- package/dist/_types/utils/parsers.d.ts.map +1 -0
- package/dist/_types/utils/type-utils.d.ts +2 -0
- package/dist/_types/utils/type-utils.d.ts.map +1 -0
- package/package.json +62 -0
- package/src/chains.ts +77 -0
- package/src/config.ts +24 -0
- package/src/constants.ts +61 -0
- package/src/core/evm/abi/erc20.ts +312 -0
- package/src/core/evm/abi/source-chain-guard.ts +1715 -0
- package/src/core/evm/intent-provider.ts +63 -0
- package/src/core/evm/order-signature.ts +33 -0
- package/src/core/evm/permit2.ts +60 -0
- package/src/core/evm/sdk.ts +74 -0
- package/src/core/evm/validator.ts +60 -0
- package/src/core/evm/viem-provider.ts +79 -0
- package/src/core/order.ts +186 -0
- package/src/core/sdk.ts +154 -0
- package/src/core/solana/client.ts +37 -0
- package/src/core/solana/generated/accounts/adminSingleton.ts +136 -0
- package/src/core/solana/generated/accounts/guard.ts +156 -0
- package/src/core/solana/generated/accounts/index.ts +11 -0
- package/src/core/solana/generated/accounts/order.ts +218 -0
- package/src/core/solana/generated/errors/index.ts +9 -0
- package/src/core/solana/generated/errors/sourceChainGuard.ts +52 -0
- package/src/core/solana/generated/index.ts +13 -0
- package/src/core/solana/generated/instructions/cancelOrder.ts +357 -0
- package/src/core/solana/generated/instructions/claimTokens.ts +419 -0
- package/src/core/solana/generated/instructions/collectProtocolFees.ts +383 -0
- package/src/core/solana/generated/instructions/createGuard.ts +569 -0
- package/src/core/solana/generated/instructions/createOrder.ts +480 -0
- package/src/core/solana/generated/instructions/index.ts +19 -0
- package/src/core/solana/generated/instructions/initialize.ts +231 -0
- package/src/core/solana/generated/instructions/preStartOrderExecution.ts +362 -0
- package/src/core/solana/generated/instructions/setAdmin.ts +211 -0
- package/src/core/solana/generated/instructions/setAuctioneerPubKey.ts +241 -0
- package/src/core/solana/generated/instructions/startOrderExecution.ts +293 -0
- package/src/core/solana/generated/instructions/startOrderExecutionAfterSwap.ts +323 -0
- package/src/core/solana/generated/programs/index.ts +9 -0
- package/src/core/solana/generated/programs/sourceChainGuard.ts +223 -0
- package/src/core/solana/generated/shared/index.ts +124 -0
- package/src/core/solana/generated/types/adminUpdated.ts +35 -0
- package/src/core/solana/generated/types/auctioneerPubkeyUpdated.ts +44 -0
- package/src/core/solana/generated/types/executionStarted.ts +63 -0
- package/src/core/solana/generated/types/guardCreated.ts +50 -0
- package/src/core/solana/generated/types/index.ts +16 -0
- package/src/core/solana/generated/types/orderCancelled.ts +35 -0
- package/src/core/solana/generated/types/orderCreated.ts +80 -0
- package/src/core/solana/generated/types/orderFulfilled.ts +35 -0
- package/src/core/solana/generated/types/tokenInSwapped.ts +53 -0
- package/src/core/solana/order-instructions.ts +131 -0
- package/src/core/solana/sdk.ts +135 -0
- package/src/core/solana/validator.ts +26 -0
- package/src/core/sui/client.ts +3 -0
- package/src/core/sui/order-transaction.ts +78 -0
- package/src/core/sui/sdk.ts +95 -0
- package/src/core/sui/validator.ts +32 -0
- package/src/errors/index.ts +106 -0
- package/src/index.ts +10 -0
- package/src/types/intent.ts +143 -0
- package/src/utils/base-validator.ts +64 -0
- package/src/utils/logger.ts +128 -0
- package/src/utils/order-validator.ts +103 -0
- package/src/utils/parsers.ts +8 -0
- package/src/utils/type-utils.ts +1 -0
|
@@ -0,0 +1,480 @@
|
|
|
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 { type Address, getAddressEncoder, getProgramDerivedAddress } from '@solana/kit';
|
|
10
|
+
import {
|
|
11
|
+
type Codec,
|
|
12
|
+
combineCodec,
|
|
13
|
+
type Decoder,
|
|
14
|
+
type Encoder,
|
|
15
|
+
fixDecoderSize,
|
|
16
|
+
fixEncoderSize,
|
|
17
|
+
getBytesDecoder,
|
|
18
|
+
getBytesEncoder,
|
|
19
|
+
getStructDecoder,
|
|
20
|
+
getStructEncoder,
|
|
21
|
+
getU32Decoder,
|
|
22
|
+
getU32Encoder,
|
|
23
|
+
getU64Decoder,
|
|
24
|
+
getU64Encoder,
|
|
25
|
+
type ReadonlyUint8Array,
|
|
26
|
+
transformEncoder,
|
|
27
|
+
} from '@solana/kit';
|
|
28
|
+
import {
|
|
29
|
+
type IAccountMeta,
|
|
30
|
+
type IInstruction,
|
|
31
|
+
type IInstructionWithAccounts,
|
|
32
|
+
type IInstructionWithData,
|
|
33
|
+
type ReadonlyAccount,
|
|
34
|
+
type WritableAccount,
|
|
35
|
+
type WritableSignerAccount,
|
|
36
|
+
} from '@solana/kit';
|
|
37
|
+
import { type IAccountSignerMeta, type TransactionSigner } from '@solana/kit';
|
|
38
|
+
import { SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS } from '../programs/index.js';
|
|
39
|
+
import { expectAddress, getAccountMetaFactory, type ResolvedAccount } from '../shared/index.js';
|
|
40
|
+
|
|
41
|
+
export const CREATE_ORDER_DISCRIMINATOR = new Uint8Array([141, 54, 37, 207, 237, 210, 250, 215]);
|
|
42
|
+
|
|
43
|
+
export function getCreateOrderDiscriminatorBytes() {
|
|
44
|
+
return fixEncoderSize(getBytesEncoder(), 8).encode(CREATE_ORDER_DISCRIMINATOR);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export type CreateOrderInstruction<
|
|
48
|
+
TProgram extends string = typeof SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS,
|
|
49
|
+
TAccountUser extends string | IAccountMeta<string> = string,
|
|
50
|
+
TAccountOrder extends string | IAccountMeta<string> = string,
|
|
51
|
+
TAccountGuard extends string | IAccountMeta<string> = string,
|
|
52
|
+
TAccountSystemProgram extends string | IAccountMeta<string> = '11111111111111111111111111111111',
|
|
53
|
+
TAccountAssociatedTokenProgram extends string | IAccountMeta<string> = 'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL',
|
|
54
|
+
TAccountTokenInMint extends string | IAccountMeta<string> = string,
|
|
55
|
+
TAccountUserTokenInAccount extends string | IAccountMeta<string> = string,
|
|
56
|
+
TAccountGuardTokenInAccount extends string | IAccountMeta<string> = string,
|
|
57
|
+
TAccountTokenInProgram extends string | IAccountMeta<string> = string,
|
|
58
|
+
TRemainingAccounts extends readonly IAccountMeta<string>[] = [],
|
|
59
|
+
> = IInstruction<TProgram> &
|
|
60
|
+
IInstructionWithData<Uint8Array> &
|
|
61
|
+
IInstructionWithAccounts<
|
|
62
|
+
[
|
|
63
|
+
TAccountUser extends string
|
|
64
|
+
? WritableSignerAccount<TAccountUser> & IAccountSignerMeta<TAccountUser>
|
|
65
|
+
: TAccountUser,
|
|
66
|
+
TAccountOrder extends string
|
|
67
|
+
? WritableSignerAccount<TAccountOrder> & IAccountSignerMeta<TAccountOrder>
|
|
68
|
+
: TAccountOrder,
|
|
69
|
+
TAccountGuard extends string ? ReadonlyAccount<TAccountGuard> : TAccountGuard,
|
|
70
|
+
TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram,
|
|
71
|
+
TAccountAssociatedTokenProgram extends string
|
|
72
|
+
? ReadonlyAccount<TAccountAssociatedTokenProgram>
|
|
73
|
+
: TAccountAssociatedTokenProgram,
|
|
74
|
+
TAccountTokenInMint extends string ? ReadonlyAccount<TAccountTokenInMint> : TAccountTokenInMint,
|
|
75
|
+
TAccountUserTokenInAccount extends string
|
|
76
|
+
? WritableAccount<TAccountUserTokenInAccount>
|
|
77
|
+
: TAccountUserTokenInAccount,
|
|
78
|
+
TAccountGuardTokenInAccount extends string
|
|
79
|
+
? WritableAccount<TAccountGuardTokenInAccount>
|
|
80
|
+
: TAccountGuardTokenInAccount,
|
|
81
|
+
TAccountTokenInProgram extends string ? ReadonlyAccount<TAccountTokenInProgram> : TAccountTokenInProgram,
|
|
82
|
+
...TRemainingAccounts,
|
|
83
|
+
]
|
|
84
|
+
>;
|
|
85
|
+
|
|
86
|
+
export type CreateOrderInstructionData = {
|
|
87
|
+
discriminator: ReadonlyUint8Array;
|
|
88
|
+
amountIn: bigint;
|
|
89
|
+
minStablecoinsAmount: bigint;
|
|
90
|
+
deadline: number;
|
|
91
|
+
executionDetailsHash: ReadonlyUint8Array;
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
export type CreateOrderInstructionDataArgs = {
|
|
95
|
+
amountIn: number | bigint;
|
|
96
|
+
minStablecoinsAmount: number | bigint;
|
|
97
|
+
deadline: number;
|
|
98
|
+
executionDetailsHash: ReadonlyUint8Array;
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
export function getCreateOrderInstructionDataEncoder(): Encoder<CreateOrderInstructionDataArgs> {
|
|
102
|
+
return transformEncoder(
|
|
103
|
+
getStructEncoder([
|
|
104
|
+
['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
|
|
105
|
+
['amountIn', getU64Encoder()],
|
|
106
|
+
['minStablecoinsAmount', getU64Encoder()],
|
|
107
|
+
['deadline', getU32Encoder()],
|
|
108
|
+
['executionDetailsHash', fixEncoderSize(getBytesEncoder(), 32)],
|
|
109
|
+
]),
|
|
110
|
+
(value) => ({ ...value, discriminator: CREATE_ORDER_DISCRIMINATOR }),
|
|
111
|
+
);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export function getCreateOrderInstructionDataDecoder(): Decoder<CreateOrderInstructionData> {
|
|
115
|
+
return getStructDecoder([
|
|
116
|
+
['discriminator', fixDecoderSize(getBytesDecoder(), 8)],
|
|
117
|
+
['amountIn', getU64Decoder()],
|
|
118
|
+
['minStablecoinsAmount', getU64Decoder()],
|
|
119
|
+
['deadline', getU32Decoder()],
|
|
120
|
+
['executionDetailsHash', fixDecoderSize(getBytesDecoder(), 32)],
|
|
121
|
+
]);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
export function getCreateOrderInstructionDataCodec(): Codec<
|
|
125
|
+
CreateOrderInstructionDataArgs,
|
|
126
|
+
CreateOrderInstructionData
|
|
127
|
+
> {
|
|
128
|
+
return combineCodec(getCreateOrderInstructionDataEncoder(), getCreateOrderInstructionDataDecoder());
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
export type CreateOrderAsyncInput<
|
|
132
|
+
TAccountUser extends string = string,
|
|
133
|
+
TAccountOrder extends string = string,
|
|
134
|
+
TAccountGuard extends string = string,
|
|
135
|
+
TAccountSystemProgram extends string = string,
|
|
136
|
+
TAccountAssociatedTokenProgram extends string = string,
|
|
137
|
+
TAccountTokenInMint extends string = string,
|
|
138
|
+
TAccountUserTokenInAccount extends string = string,
|
|
139
|
+
TAccountGuardTokenInAccount extends string = string,
|
|
140
|
+
TAccountTokenInProgram extends string = string,
|
|
141
|
+
> = {
|
|
142
|
+
/** User creating the order */
|
|
143
|
+
user: TransactionSigner<TAccountUser>;
|
|
144
|
+
/** Account that will store order data */
|
|
145
|
+
order: TransactionSigner<TAccountOrder>;
|
|
146
|
+
/** Guard address, that will protect this order execution */
|
|
147
|
+
guard: Address<TAccountGuard>;
|
|
148
|
+
/** Solana System program */
|
|
149
|
+
systemProgram?: Address<TAccountSystemProgram>;
|
|
150
|
+
/** Solana token program */
|
|
151
|
+
associatedTokenProgram?: Address<TAccountAssociatedTokenProgram>;
|
|
152
|
+
/** Token IN that user wants to spend */
|
|
153
|
+
tokenInMint: Address<TAccountTokenInMint>;
|
|
154
|
+
/** Token IN account from which user is spending tokens IN */
|
|
155
|
+
userTokenInAccount: Address<TAccountUserTokenInAccount>;
|
|
156
|
+
/** Token IN account that will store Tokens IN after order creation */
|
|
157
|
+
guardTokenInAccount?: Address<TAccountGuardTokenInAccount>;
|
|
158
|
+
/** Solana token program */
|
|
159
|
+
tokenInProgram: Address<TAccountTokenInProgram>;
|
|
160
|
+
amountIn: CreateOrderInstructionDataArgs['amountIn'];
|
|
161
|
+
minStablecoinsAmount: CreateOrderInstructionDataArgs['minStablecoinsAmount'];
|
|
162
|
+
deadline: CreateOrderInstructionDataArgs['deadline'];
|
|
163
|
+
executionDetailsHash: CreateOrderInstructionDataArgs['executionDetailsHash'];
|
|
164
|
+
};
|
|
165
|
+
|
|
166
|
+
export async function getCreateOrderInstructionAsync<
|
|
167
|
+
TAccountUser extends string,
|
|
168
|
+
TAccountOrder extends string,
|
|
169
|
+
TAccountGuard extends string,
|
|
170
|
+
TAccountSystemProgram extends string,
|
|
171
|
+
TAccountAssociatedTokenProgram extends string,
|
|
172
|
+
TAccountTokenInMint extends string,
|
|
173
|
+
TAccountUserTokenInAccount extends string,
|
|
174
|
+
TAccountGuardTokenInAccount extends string,
|
|
175
|
+
TAccountTokenInProgram extends string,
|
|
176
|
+
TProgramAddress extends Address = typeof SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS,
|
|
177
|
+
>(
|
|
178
|
+
input: CreateOrderAsyncInput<
|
|
179
|
+
TAccountUser,
|
|
180
|
+
TAccountOrder,
|
|
181
|
+
TAccountGuard,
|
|
182
|
+
TAccountSystemProgram,
|
|
183
|
+
TAccountAssociatedTokenProgram,
|
|
184
|
+
TAccountTokenInMint,
|
|
185
|
+
TAccountUserTokenInAccount,
|
|
186
|
+
TAccountGuardTokenInAccount,
|
|
187
|
+
TAccountTokenInProgram
|
|
188
|
+
>,
|
|
189
|
+
config?: { programAddress?: TProgramAddress },
|
|
190
|
+
): Promise<
|
|
191
|
+
CreateOrderInstruction<
|
|
192
|
+
TProgramAddress,
|
|
193
|
+
TAccountUser,
|
|
194
|
+
TAccountOrder,
|
|
195
|
+
TAccountGuard,
|
|
196
|
+
TAccountSystemProgram,
|
|
197
|
+
TAccountAssociatedTokenProgram,
|
|
198
|
+
TAccountTokenInMint,
|
|
199
|
+
TAccountUserTokenInAccount,
|
|
200
|
+
TAccountGuardTokenInAccount,
|
|
201
|
+
TAccountTokenInProgram
|
|
202
|
+
>
|
|
203
|
+
> {
|
|
204
|
+
// Program address.
|
|
205
|
+
const programAddress = config?.programAddress ?? SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS;
|
|
206
|
+
|
|
207
|
+
// Original accounts.
|
|
208
|
+
const originalAccounts = {
|
|
209
|
+
user: { value: input.user ?? null, isWritable: true },
|
|
210
|
+
order: { value: input.order ?? null, isWritable: true },
|
|
211
|
+
guard: { value: input.guard ?? null, isWritable: false },
|
|
212
|
+
systemProgram: { value: input.systemProgram ?? null, isWritable: false },
|
|
213
|
+
associatedTokenProgram: {
|
|
214
|
+
value: input.associatedTokenProgram ?? null,
|
|
215
|
+
isWritable: false,
|
|
216
|
+
},
|
|
217
|
+
tokenInMint: { value: input.tokenInMint ?? null, isWritable: false },
|
|
218
|
+
userTokenInAccount: {
|
|
219
|
+
value: input.userTokenInAccount ?? null,
|
|
220
|
+
isWritable: true,
|
|
221
|
+
},
|
|
222
|
+
guardTokenInAccount: {
|
|
223
|
+
value: input.guardTokenInAccount ?? null,
|
|
224
|
+
isWritable: true,
|
|
225
|
+
},
|
|
226
|
+
tokenInProgram: { value: input.tokenInProgram ?? null, isWritable: false },
|
|
227
|
+
};
|
|
228
|
+
const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedAccount>;
|
|
229
|
+
|
|
230
|
+
// Original args.
|
|
231
|
+
const args = { ...input };
|
|
232
|
+
|
|
233
|
+
// Resolve default values.
|
|
234
|
+
if (!accounts.systemProgram.value) {
|
|
235
|
+
accounts.systemProgram.value = '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;
|
|
236
|
+
}
|
|
237
|
+
if (!accounts.associatedTokenProgram.value) {
|
|
238
|
+
accounts.associatedTokenProgram.value =
|
|
239
|
+
'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>;
|
|
240
|
+
}
|
|
241
|
+
if (!accounts.guardTokenInAccount.value) {
|
|
242
|
+
accounts.guardTokenInAccount.value = await getProgramDerivedAddress({
|
|
243
|
+
programAddress:
|
|
244
|
+
'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>,
|
|
245
|
+
seeds: [
|
|
246
|
+
getAddressEncoder().encode(expectAddress(accounts.guard.value)),
|
|
247
|
+
getAddressEncoder().encode(expectAddress(accounts.tokenInProgram.value)),
|
|
248
|
+
getAddressEncoder().encode(expectAddress(accounts.tokenInMint.value)),
|
|
249
|
+
],
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
|
|
254
|
+
const instruction = {
|
|
255
|
+
accounts: [
|
|
256
|
+
getAccountMeta(accounts.user),
|
|
257
|
+
getAccountMeta(accounts.order),
|
|
258
|
+
getAccountMeta(accounts.guard),
|
|
259
|
+
getAccountMeta(accounts.systemProgram),
|
|
260
|
+
getAccountMeta(accounts.associatedTokenProgram),
|
|
261
|
+
getAccountMeta(accounts.tokenInMint),
|
|
262
|
+
getAccountMeta(accounts.userTokenInAccount),
|
|
263
|
+
getAccountMeta(accounts.guardTokenInAccount),
|
|
264
|
+
getAccountMeta(accounts.tokenInProgram),
|
|
265
|
+
],
|
|
266
|
+
programAddress,
|
|
267
|
+
data: getCreateOrderInstructionDataEncoder().encode(args as CreateOrderInstructionDataArgs),
|
|
268
|
+
} as CreateOrderInstruction<
|
|
269
|
+
TProgramAddress,
|
|
270
|
+
TAccountUser,
|
|
271
|
+
TAccountOrder,
|
|
272
|
+
TAccountGuard,
|
|
273
|
+
TAccountSystemProgram,
|
|
274
|
+
TAccountAssociatedTokenProgram,
|
|
275
|
+
TAccountTokenInMint,
|
|
276
|
+
TAccountUserTokenInAccount,
|
|
277
|
+
TAccountGuardTokenInAccount,
|
|
278
|
+
TAccountTokenInProgram
|
|
279
|
+
>;
|
|
280
|
+
|
|
281
|
+
return instruction;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
export type CreateOrderInput<
|
|
285
|
+
TAccountUser extends string = string,
|
|
286
|
+
TAccountOrder extends string = string,
|
|
287
|
+
TAccountGuard extends string = string,
|
|
288
|
+
TAccountSystemProgram extends string = string,
|
|
289
|
+
TAccountAssociatedTokenProgram extends string = string,
|
|
290
|
+
TAccountTokenInMint extends string = string,
|
|
291
|
+
TAccountUserTokenInAccount extends string = string,
|
|
292
|
+
TAccountGuardTokenInAccount extends string = string,
|
|
293
|
+
TAccountTokenInProgram extends string = string,
|
|
294
|
+
> = {
|
|
295
|
+
/** User creating the order */
|
|
296
|
+
user: TransactionSigner<TAccountUser>;
|
|
297
|
+
/** Account that will store order data */
|
|
298
|
+
order: TransactionSigner<TAccountOrder>;
|
|
299
|
+
/** Guard address, that will protect this order execution */
|
|
300
|
+
guard: Address<TAccountGuard>;
|
|
301
|
+
/** Solana System program */
|
|
302
|
+
systemProgram?: Address<TAccountSystemProgram>;
|
|
303
|
+
/** Solana token program */
|
|
304
|
+
associatedTokenProgram?: Address<TAccountAssociatedTokenProgram>;
|
|
305
|
+
/** Token IN that user wants to spend */
|
|
306
|
+
tokenInMint: Address<TAccountTokenInMint>;
|
|
307
|
+
/** Token IN account from which user is spending tokens IN */
|
|
308
|
+
userTokenInAccount: Address<TAccountUserTokenInAccount>;
|
|
309
|
+
/** Token IN account that will store Tokens IN after order creation */
|
|
310
|
+
guardTokenInAccount: Address<TAccountGuardTokenInAccount>;
|
|
311
|
+
/** Solana token program */
|
|
312
|
+
tokenInProgram: Address<TAccountTokenInProgram>;
|
|
313
|
+
amountIn: CreateOrderInstructionDataArgs['amountIn'];
|
|
314
|
+
minStablecoinsAmount: CreateOrderInstructionDataArgs['minStablecoinsAmount'];
|
|
315
|
+
deadline: CreateOrderInstructionDataArgs['deadline'];
|
|
316
|
+
executionDetailsHash: CreateOrderInstructionDataArgs['executionDetailsHash'];
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
export function getCreateOrderInstruction<
|
|
320
|
+
TAccountUser extends string,
|
|
321
|
+
TAccountOrder extends string,
|
|
322
|
+
TAccountGuard extends string,
|
|
323
|
+
TAccountSystemProgram extends string,
|
|
324
|
+
TAccountAssociatedTokenProgram extends string,
|
|
325
|
+
TAccountTokenInMint extends string,
|
|
326
|
+
TAccountUserTokenInAccount extends string,
|
|
327
|
+
TAccountGuardTokenInAccount extends string,
|
|
328
|
+
TAccountTokenInProgram extends string,
|
|
329
|
+
TProgramAddress extends Address = typeof SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS,
|
|
330
|
+
>(
|
|
331
|
+
input: CreateOrderInput<
|
|
332
|
+
TAccountUser,
|
|
333
|
+
TAccountOrder,
|
|
334
|
+
TAccountGuard,
|
|
335
|
+
TAccountSystemProgram,
|
|
336
|
+
TAccountAssociatedTokenProgram,
|
|
337
|
+
TAccountTokenInMint,
|
|
338
|
+
TAccountUserTokenInAccount,
|
|
339
|
+
TAccountGuardTokenInAccount,
|
|
340
|
+
TAccountTokenInProgram
|
|
341
|
+
>,
|
|
342
|
+
config?: { programAddress?: TProgramAddress },
|
|
343
|
+
): CreateOrderInstruction<
|
|
344
|
+
TProgramAddress,
|
|
345
|
+
TAccountUser,
|
|
346
|
+
TAccountOrder,
|
|
347
|
+
TAccountGuard,
|
|
348
|
+
TAccountSystemProgram,
|
|
349
|
+
TAccountAssociatedTokenProgram,
|
|
350
|
+
TAccountTokenInMint,
|
|
351
|
+
TAccountUserTokenInAccount,
|
|
352
|
+
TAccountGuardTokenInAccount,
|
|
353
|
+
TAccountTokenInProgram
|
|
354
|
+
> {
|
|
355
|
+
// Program address.
|
|
356
|
+
const programAddress = config?.programAddress ?? SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS;
|
|
357
|
+
|
|
358
|
+
// Original accounts.
|
|
359
|
+
const originalAccounts = {
|
|
360
|
+
user: { value: input.user ?? null, isWritable: true },
|
|
361
|
+
order: { value: input.order ?? null, isWritable: true },
|
|
362
|
+
guard: { value: input.guard ?? null, isWritable: false },
|
|
363
|
+
systemProgram: { value: input.systemProgram ?? null, isWritable: false },
|
|
364
|
+
associatedTokenProgram: {
|
|
365
|
+
value: input.associatedTokenProgram ?? null,
|
|
366
|
+
isWritable: false,
|
|
367
|
+
},
|
|
368
|
+
tokenInMint: { value: input.tokenInMint ?? null, isWritable: false },
|
|
369
|
+
userTokenInAccount: {
|
|
370
|
+
value: input.userTokenInAccount ?? null,
|
|
371
|
+
isWritable: true,
|
|
372
|
+
},
|
|
373
|
+
guardTokenInAccount: {
|
|
374
|
+
value: input.guardTokenInAccount ?? null,
|
|
375
|
+
isWritable: true,
|
|
376
|
+
},
|
|
377
|
+
tokenInProgram: { value: input.tokenInProgram ?? null, isWritable: false },
|
|
378
|
+
};
|
|
379
|
+
const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedAccount>;
|
|
380
|
+
|
|
381
|
+
// Original args.
|
|
382
|
+
const args = { ...input };
|
|
383
|
+
|
|
384
|
+
// Resolve default values.
|
|
385
|
+
if (!accounts.systemProgram.value) {
|
|
386
|
+
accounts.systemProgram.value = '11111111111111111111111111111111' as Address<'11111111111111111111111111111111'>;
|
|
387
|
+
}
|
|
388
|
+
if (!accounts.associatedTokenProgram.value) {
|
|
389
|
+
accounts.associatedTokenProgram.value =
|
|
390
|
+
'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL' as Address<'ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'>;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
|
|
394
|
+
const instruction = {
|
|
395
|
+
accounts: [
|
|
396
|
+
getAccountMeta(accounts.user),
|
|
397
|
+
getAccountMeta(accounts.order),
|
|
398
|
+
getAccountMeta(accounts.guard),
|
|
399
|
+
getAccountMeta(accounts.systemProgram),
|
|
400
|
+
getAccountMeta(accounts.associatedTokenProgram),
|
|
401
|
+
getAccountMeta(accounts.tokenInMint),
|
|
402
|
+
getAccountMeta(accounts.userTokenInAccount),
|
|
403
|
+
getAccountMeta(accounts.guardTokenInAccount),
|
|
404
|
+
getAccountMeta(accounts.tokenInProgram),
|
|
405
|
+
],
|
|
406
|
+
programAddress,
|
|
407
|
+
data: getCreateOrderInstructionDataEncoder().encode(args as CreateOrderInstructionDataArgs),
|
|
408
|
+
} as CreateOrderInstruction<
|
|
409
|
+
TProgramAddress,
|
|
410
|
+
TAccountUser,
|
|
411
|
+
TAccountOrder,
|
|
412
|
+
TAccountGuard,
|
|
413
|
+
TAccountSystemProgram,
|
|
414
|
+
TAccountAssociatedTokenProgram,
|
|
415
|
+
TAccountTokenInMint,
|
|
416
|
+
TAccountUserTokenInAccount,
|
|
417
|
+
TAccountGuardTokenInAccount,
|
|
418
|
+
TAccountTokenInProgram
|
|
419
|
+
>;
|
|
420
|
+
|
|
421
|
+
return instruction;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
export type ParsedCreateOrderInstruction<
|
|
425
|
+
TProgram extends string = typeof SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS,
|
|
426
|
+
TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[],
|
|
427
|
+
> = {
|
|
428
|
+
programAddress: Address<TProgram>;
|
|
429
|
+
accounts: {
|
|
430
|
+
/** User creating the order */
|
|
431
|
+
user: TAccountMetas[0];
|
|
432
|
+
/** Account that will store order data */
|
|
433
|
+
order: TAccountMetas[1];
|
|
434
|
+
/** Guard address, that will protect this order execution */
|
|
435
|
+
guard: TAccountMetas[2];
|
|
436
|
+
/** Solana System program */
|
|
437
|
+
systemProgram: TAccountMetas[3];
|
|
438
|
+
/** Solana token program */
|
|
439
|
+
associatedTokenProgram: TAccountMetas[4];
|
|
440
|
+
/** Token IN that user wants to spend */
|
|
441
|
+
tokenInMint: TAccountMetas[5];
|
|
442
|
+
/** Token IN account from which user is spending tokens IN */
|
|
443
|
+
userTokenInAccount: TAccountMetas[6];
|
|
444
|
+
/** Token IN account that will store Tokens IN after order creation */
|
|
445
|
+
guardTokenInAccount: TAccountMetas[7];
|
|
446
|
+
/** Solana token program */
|
|
447
|
+
tokenInProgram: TAccountMetas[8];
|
|
448
|
+
};
|
|
449
|
+
data: CreateOrderInstructionData;
|
|
450
|
+
};
|
|
451
|
+
|
|
452
|
+
export function parseCreateOrderInstruction<TProgram extends string, TAccountMetas extends readonly IAccountMeta[]>(
|
|
453
|
+
instruction: IInstruction<TProgram> & IInstructionWithAccounts<TAccountMetas> & IInstructionWithData<Uint8Array>,
|
|
454
|
+
): ParsedCreateOrderInstruction<TProgram, TAccountMetas> {
|
|
455
|
+
if (instruction.accounts.length < 9) {
|
|
456
|
+
// TODO: Coded error.
|
|
457
|
+
throw new Error('Not enough accounts');
|
|
458
|
+
}
|
|
459
|
+
let accountIndex = 0;
|
|
460
|
+
const getNextAccount = () => {
|
|
461
|
+
const accountMeta = instruction.accounts![accountIndex]!;
|
|
462
|
+
accountIndex += 1;
|
|
463
|
+
return accountMeta;
|
|
464
|
+
};
|
|
465
|
+
return {
|
|
466
|
+
programAddress: instruction.programAddress,
|
|
467
|
+
accounts: {
|
|
468
|
+
user: getNextAccount(),
|
|
469
|
+
order: getNextAccount(),
|
|
470
|
+
guard: getNextAccount(),
|
|
471
|
+
systemProgram: getNextAccount(),
|
|
472
|
+
associatedTokenProgram: getNextAccount(),
|
|
473
|
+
tokenInMint: getNextAccount(),
|
|
474
|
+
userTokenInAccount: getNextAccount(),
|
|
475
|
+
guardTokenInAccount: getNextAccount(),
|
|
476
|
+
tokenInProgram: getNextAccount(),
|
|
477
|
+
},
|
|
478
|
+
data: getCreateOrderInstructionDataDecoder().decode(instruction.data),
|
|
479
|
+
};
|
|
480
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
export * from './cancelOrder.js';
|
|
10
|
+
export * from './claimTokens.js';
|
|
11
|
+
export * from './collectProtocolFees.js';
|
|
12
|
+
export * from './createGuard.js';
|
|
13
|
+
export * from './createOrder.js';
|
|
14
|
+
export * from './initialize.js';
|
|
15
|
+
export * from './preStartOrderExecution.js';
|
|
16
|
+
export * from './setAdmin.js';
|
|
17
|
+
export * from './setAuctioneerPubKey.js';
|
|
18
|
+
export * from './startOrderExecution.js';
|
|
19
|
+
export * from './startOrderExecutionAfterSwap.js';
|