@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,293 @@
|
|
|
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 } 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
|
+
type ReadonlyUint8Array,
|
|
22
|
+
transformEncoder,
|
|
23
|
+
} from '@solana/kit';
|
|
24
|
+
import {
|
|
25
|
+
type IAccountMeta,
|
|
26
|
+
type IInstruction,
|
|
27
|
+
type IInstructionWithAccounts,
|
|
28
|
+
type IInstructionWithData,
|
|
29
|
+
type ReadonlyAccount,
|
|
30
|
+
type WritableAccount,
|
|
31
|
+
type WritableSignerAccount,
|
|
32
|
+
} from '@solana/kit';
|
|
33
|
+
import { type IAccountSignerMeta, type TransactionSigner } from '@solana/kit';
|
|
34
|
+
import { SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS } from '../programs/index.js';
|
|
35
|
+
import { getAccountMetaFactory, type ResolvedAccount } from '../shared/index.js';
|
|
36
|
+
|
|
37
|
+
export const START_ORDER_EXECUTION_DISCRIMINATOR = new Uint8Array([38, 237, 19, 225, 182, 31, 246, 143]);
|
|
38
|
+
|
|
39
|
+
export function getStartOrderExecutionDiscriminatorBytes() {
|
|
40
|
+
return fixEncoderSize(getBytesEncoder(), 8).encode(START_ORDER_EXECUTION_DISCRIMINATOR);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
export type StartOrderExecutionInstruction<
|
|
44
|
+
TProgram extends string = typeof SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS,
|
|
45
|
+
TAccountSolver extends string | IAccountMeta<string> = string,
|
|
46
|
+
TAccountOrder extends string | IAccountMeta<string> = string,
|
|
47
|
+
TAccountGuard extends string | IAccountMeta<string> = string,
|
|
48
|
+
TAccountIxSysvar extends string | IAccountMeta<string> = 'Sysvar1nstructions1111111111111111111111111',
|
|
49
|
+
TAccountCollateralTokenMint extends string | IAccountMeta<string> = string,
|
|
50
|
+
TAccountSolverCollateralTokenAccount extends string | IAccountMeta<string> = string,
|
|
51
|
+
TAccountGuardCollateralTokenAccount extends string | IAccountMeta<string> = string,
|
|
52
|
+
TAccountCollateralTokenProgram extends string | IAccountMeta<string> = string,
|
|
53
|
+
TRemainingAccounts extends readonly IAccountMeta<string>[] = [],
|
|
54
|
+
> = IInstruction<TProgram> &
|
|
55
|
+
IInstructionWithData<Uint8Array> &
|
|
56
|
+
IInstructionWithAccounts<
|
|
57
|
+
[
|
|
58
|
+
TAccountSolver extends string
|
|
59
|
+
? WritableSignerAccount<TAccountSolver> & IAccountSignerMeta<TAccountSolver>
|
|
60
|
+
: TAccountSolver,
|
|
61
|
+
TAccountOrder extends string ? WritableAccount<TAccountOrder> : TAccountOrder,
|
|
62
|
+
TAccountGuard extends string ? WritableAccount<TAccountGuard> : TAccountGuard,
|
|
63
|
+
TAccountIxSysvar extends string ? ReadonlyAccount<TAccountIxSysvar> : TAccountIxSysvar,
|
|
64
|
+
TAccountCollateralTokenMint extends string
|
|
65
|
+
? ReadonlyAccount<TAccountCollateralTokenMint>
|
|
66
|
+
: TAccountCollateralTokenMint,
|
|
67
|
+
TAccountSolverCollateralTokenAccount extends string
|
|
68
|
+
? WritableAccount<TAccountSolverCollateralTokenAccount>
|
|
69
|
+
: TAccountSolverCollateralTokenAccount,
|
|
70
|
+
TAccountGuardCollateralTokenAccount extends string
|
|
71
|
+
? WritableAccount<TAccountGuardCollateralTokenAccount>
|
|
72
|
+
: TAccountGuardCollateralTokenAccount,
|
|
73
|
+
TAccountCollateralTokenProgram extends string
|
|
74
|
+
? ReadonlyAccount<TAccountCollateralTokenProgram>
|
|
75
|
+
: TAccountCollateralTokenProgram,
|
|
76
|
+
...TRemainingAccounts,
|
|
77
|
+
]
|
|
78
|
+
>;
|
|
79
|
+
|
|
80
|
+
export type StartOrderExecutionInstructionData = {
|
|
81
|
+
discriminator: ReadonlyUint8Array;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export type StartOrderExecutionInstructionDataArgs = {};
|
|
85
|
+
|
|
86
|
+
export function getStartOrderExecutionInstructionDataEncoder(): Encoder<StartOrderExecutionInstructionDataArgs> {
|
|
87
|
+
return transformEncoder(getStructEncoder([['discriminator', fixEncoderSize(getBytesEncoder(), 8)]]), (value) => ({
|
|
88
|
+
...value,
|
|
89
|
+
discriminator: START_ORDER_EXECUTION_DISCRIMINATOR,
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export function getStartOrderExecutionInstructionDataDecoder(): Decoder<StartOrderExecutionInstructionData> {
|
|
94
|
+
return getStructDecoder([['discriminator', fixDecoderSize(getBytesDecoder(), 8)]]);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export function getStartOrderExecutionInstructionDataCodec(): Codec<
|
|
98
|
+
StartOrderExecutionInstructionDataArgs,
|
|
99
|
+
StartOrderExecutionInstructionData
|
|
100
|
+
> {
|
|
101
|
+
return combineCodec(getStartOrderExecutionInstructionDataEncoder(), getStartOrderExecutionInstructionDataDecoder());
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export type StartOrderExecutionInput<
|
|
105
|
+
TAccountSolver extends string = string,
|
|
106
|
+
TAccountOrder extends string = string,
|
|
107
|
+
TAccountGuard extends string = string,
|
|
108
|
+
TAccountIxSysvar extends string = string,
|
|
109
|
+
TAccountCollateralTokenMint extends string = string,
|
|
110
|
+
TAccountSolverCollateralTokenAccount extends string = string,
|
|
111
|
+
TAccountGuardCollateralTokenAccount extends string = string,
|
|
112
|
+
TAccountCollateralTokenProgram extends string = string,
|
|
113
|
+
> = {
|
|
114
|
+
/** Solver that starts order execution */
|
|
115
|
+
solver: TransactionSigner<TAccountSolver>;
|
|
116
|
+
/** Order data */
|
|
117
|
+
order: Address<TAccountOrder>;
|
|
118
|
+
/** Guard address, that protects this order execution */
|
|
119
|
+
guard: Address<TAccountGuard>;
|
|
120
|
+
/**
|
|
121
|
+
* the supplied Sysvar could be anything else.
|
|
122
|
+
* The Instruction Sysvar has not been implemented
|
|
123
|
+
* in the Anchor framework yet, so this is the safe approach.
|
|
124
|
+
*/
|
|
125
|
+
ixSysvar?: Address<TAccountIxSysvar>;
|
|
126
|
+
/** Collateral token mint */
|
|
127
|
+
collateralTokenMint: Address<TAccountCollateralTokenMint>;
|
|
128
|
+
/** Solver collateral account, from which solver is paying collateral tokens and fees */
|
|
129
|
+
solverCollateralTokenAccount: Address<TAccountSolverCollateralTokenAccount>;
|
|
130
|
+
/** Guard collateral account, where Guard is collecting collateral tokens */
|
|
131
|
+
guardCollateralTokenAccount: Address<TAccountGuardCollateralTokenAccount>;
|
|
132
|
+
/** Solana token program */
|
|
133
|
+
collateralTokenProgram: Address<TAccountCollateralTokenProgram>;
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
export function getStartOrderExecutionInstruction<
|
|
137
|
+
TAccountSolver extends string,
|
|
138
|
+
TAccountOrder extends string,
|
|
139
|
+
TAccountGuard extends string,
|
|
140
|
+
TAccountIxSysvar extends string,
|
|
141
|
+
TAccountCollateralTokenMint extends string,
|
|
142
|
+
TAccountSolverCollateralTokenAccount extends string,
|
|
143
|
+
TAccountGuardCollateralTokenAccount extends string,
|
|
144
|
+
TAccountCollateralTokenProgram extends string,
|
|
145
|
+
TProgramAddress extends Address = typeof SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS,
|
|
146
|
+
>(
|
|
147
|
+
input: StartOrderExecutionInput<
|
|
148
|
+
TAccountSolver,
|
|
149
|
+
TAccountOrder,
|
|
150
|
+
TAccountGuard,
|
|
151
|
+
TAccountIxSysvar,
|
|
152
|
+
TAccountCollateralTokenMint,
|
|
153
|
+
TAccountSolverCollateralTokenAccount,
|
|
154
|
+
TAccountGuardCollateralTokenAccount,
|
|
155
|
+
TAccountCollateralTokenProgram
|
|
156
|
+
>,
|
|
157
|
+
config?: { programAddress?: TProgramAddress },
|
|
158
|
+
): StartOrderExecutionInstruction<
|
|
159
|
+
TProgramAddress,
|
|
160
|
+
TAccountSolver,
|
|
161
|
+
TAccountOrder,
|
|
162
|
+
TAccountGuard,
|
|
163
|
+
TAccountIxSysvar,
|
|
164
|
+
TAccountCollateralTokenMint,
|
|
165
|
+
TAccountSolverCollateralTokenAccount,
|
|
166
|
+
TAccountGuardCollateralTokenAccount,
|
|
167
|
+
TAccountCollateralTokenProgram
|
|
168
|
+
> {
|
|
169
|
+
// Program address.
|
|
170
|
+
const programAddress = config?.programAddress ?? SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS;
|
|
171
|
+
|
|
172
|
+
// Original accounts.
|
|
173
|
+
const originalAccounts = {
|
|
174
|
+
solver: { value: input.solver ?? null, isWritable: true },
|
|
175
|
+
order: { value: input.order ?? null, isWritable: true },
|
|
176
|
+
guard: { value: input.guard ?? null, isWritable: true },
|
|
177
|
+
ixSysvar: { value: input.ixSysvar ?? null, isWritable: false },
|
|
178
|
+
collateralTokenMint: {
|
|
179
|
+
value: input.collateralTokenMint ?? null,
|
|
180
|
+
isWritable: false,
|
|
181
|
+
},
|
|
182
|
+
solverCollateralTokenAccount: {
|
|
183
|
+
value: input.solverCollateralTokenAccount ?? null,
|
|
184
|
+
isWritable: true,
|
|
185
|
+
},
|
|
186
|
+
guardCollateralTokenAccount: {
|
|
187
|
+
value: input.guardCollateralTokenAccount ?? null,
|
|
188
|
+
isWritable: true,
|
|
189
|
+
},
|
|
190
|
+
collateralTokenProgram: {
|
|
191
|
+
value: input.collateralTokenProgram ?? null,
|
|
192
|
+
isWritable: false,
|
|
193
|
+
},
|
|
194
|
+
};
|
|
195
|
+
const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedAccount>;
|
|
196
|
+
|
|
197
|
+
// Resolve default values.
|
|
198
|
+
if (!accounts.ixSysvar.value) {
|
|
199
|
+
accounts.ixSysvar.value =
|
|
200
|
+
'Sysvar1nstructions1111111111111111111111111' as Address<'Sysvar1nstructions1111111111111111111111111'>;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
|
|
204
|
+
const instruction = {
|
|
205
|
+
accounts: [
|
|
206
|
+
getAccountMeta(accounts.solver),
|
|
207
|
+
getAccountMeta(accounts.order),
|
|
208
|
+
getAccountMeta(accounts.guard),
|
|
209
|
+
getAccountMeta(accounts.ixSysvar),
|
|
210
|
+
getAccountMeta(accounts.collateralTokenMint),
|
|
211
|
+
getAccountMeta(accounts.solverCollateralTokenAccount),
|
|
212
|
+
getAccountMeta(accounts.guardCollateralTokenAccount),
|
|
213
|
+
getAccountMeta(accounts.collateralTokenProgram),
|
|
214
|
+
],
|
|
215
|
+
programAddress,
|
|
216
|
+
data: getStartOrderExecutionInstructionDataEncoder().encode({}),
|
|
217
|
+
} as StartOrderExecutionInstruction<
|
|
218
|
+
TProgramAddress,
|
|
219
|
+
TAccountSolver,
|
|
220
|
+
TAccountOrder,
|
|
221
|
+
TAccountGuard,
|
|
222
|
+
TAccountIxSysvar,
|
|
223
|
+
TAccountCollateralTokenMint,
|
|
224
|
+
TAccountSolverCollateralTokenAccount,
|
|
225
|
+
TAccountGuardCollateralTokenAccount,
|
|
226
|
+
TAccountCollateralTokenProgram
|
|
227
|
+
>;
|
|
228
|
+
|
|
229
|
+
return instruction;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
export type ParsedStartOrderExecutionInstruction<
|
|
233
|
+
TProgram extends string = typeof SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS,
|
|
234
|
+
TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[],
|
|
235
|
+
> = {
|
|
236
|
+
programAddress: Address<TProgram>;
|
|
237
|
+
accounts: {
|
|
238
|
+
/** Solver that starts order execution */
|
|
239
|
+
solver: TAccountMetas[0];
|
|
240
|
+
/** Order data */
|
|
241
|
+
order: TAccountMetas[1];
|
|
242
|
+
/** Guard address, that protects this order execution */
|
|
243
|
+
guard: TAccountMetas[2];
|
|
244
|
+
/**
|
|
245
|
+
* the supplied Sysvar could be anything else.
|
|
246
|
+
* The Instruction Sysvar has not been implemented
|
|
247
|
+
* in the Anchor framework yet, so this is the safe approach.
|
|
248
|
+
*/
|
|
249
|
+
|
|
250
|
+
ixSysvar: TAccountMetas[3];
|
|
251
|
+
/** Collateral token mint */
|
|
252
|
+
collateralTokenMint: TAccountMetas[4];
|
|
253
|
+
/** Solver collateral account, from which solver is paying collateral tokens and fees */
|
|
254
|
+
solverCollateralTokenAccount: TAccountMetas[5];
|
|
255
|
+
/** Guard collateral account, where Guard is collecting collateral tokens */
|
|
256
|
+
guardCollateralTokenAccount: TAccountMetas[6];
|
|
257
|
+
/** Solana token program */
|
|
258
|
+
collateralTokenProgram: TAccountMetas[7];
|
|
259
|
+
};
|
|
260
|
+
data: StartOrderExecutionInstructionData;
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
export function parseStartOrderExecutionInstruction<
|
|
264
|
+
TProgram extends string,
|
|
265
|
+
TAccountMetas extends readonly IAccountMeta[],
|
|
266
|
+
>(
|
|
267
|
+
instruction: IInstruction<TProgram> & IInstructionWithAccounts<TAccountMetas> & IInstructionWithData<Uint8Array>,
|
|
268
|
+
): ParsedStartOrderExecutionInstruction<TProgram, TAccountMetas> {
|
|
269
|
+
if (instruction.accounts.length < 8) {
|
|
270
|
+
// TODO: Coded error.
|
|
271
|
+
throw new Error('Not enough accounts');
|
|
272
|
+
}
|
|
273
|
+
let accountIndex = 0;
|
|
274
|
+
const getNextAccount = () => {
|
|
275
|
+
const accountMeta = instruction.accounts![accountIndex]!;
|
|
276
|
+
accountIndex += 1;
|
|
277
|
+
return accountMeta;
|
|
278
|
+
};
|
|
279
|
+
return {
|
|
280
|
+
programAddress: instruction.programAddress,
|
|
281
|
+
accounts: {
|
|
282
|
+
solver: getNextAccount(),
|
|
283
|
+
order: getNextAccount(),
|
|
284
|
+
guard: getNextAccount(),
|
|
285
|
+
ixSysvar: getNextAccount(),
|
|
286
|
+
collateralTokenMint: getNextAccount(),
|
|
287
|
+
solverCollateralTokenAccount: getNextAccount(),
|
|
288
|
+
guardCollateralTokenAccount: getNextAccount(),
|
|
289
|
+
collateralTokenProgram: getNextAccount(),
|
|
290
|
+
},
|
|
291
|
+
data: getStartOrderExecutionInstructionDataDecoder().decode(instruction.data),
|
|
292
|
+
};
|
|
293
|
+
}
|
|
@@ -0,0 +1,323 @@
|
|
|
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 } 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
|
+
getU64Decoder,
|
|
22
|
+
getU64Encoder,
|
|
23
|
+
type ReadonlyUint8Array,
|
|
24
|
+
transformEncoder,
|
|
25
|
+
} from '@solana/kit';
|
|
26
|
+
import {
|
|
27
|
+
type IAccountMeta,
|
|
28
|
+
type IInstruction,
|
|
29
|
+
type IInstructionWithAccounts,
|
|
30
|
+
type IInstructionWithData,
|
|
31
|
+
type ReadonlyAccount,
|
|
32
|
+
type WritableAccount,
|
|
33
|
+
type WritableSignerAccount,
|
|
34
|
+
} from '@solana/kit';
|
|
35
|
+
import { type IAccountSignerMeta, type TransactionSigner } from '@solana/kit';
|
|
36
|
+
import { SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS } from '../programs/index.js';
|
|
37
|
+
import { getAccountMetaFactory, type ResolvedAccount } from '../shared/index.js';
|
|
38
|
+
|
|
39
|
+
export const START_ORDER_EXECUTION_AFTER_SWAP_DISCRIMINATOR = new Uint8Array([142, 117, 45, 141, 169, 107, 117, 209]);
|
|
40
|
+
|
|
41
|
+
export function getStartOrderExecutionAfterSwapDiscriminatorBytes() {
|
|
42
|
+
return fixEncoderSize(getBytesEncoder(), 8).encode(START_ORDER_EXECUTION_AFTER_SWAP_DISCRIMINATOR);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export type StartOrderExecutionAfterSwapInstruction<
|
|
46
|
+
TProgram extends string = typeof SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS,
|
|
47
|
+
TAccountSolver extends string | IAccountMeta<string> = string,
|
|
48
|
+
TAccountOrder extends string | IAccountMeta<string> = string,
|
|
49
|
+
TAccountGuard extends string | IAccountMeta<string> = string,
|
|
50
|
+
TAccountIxSysvar extends string | IAccountMeta<string> = 'Sysvar1nstructions1111111111111111111111111',
|
|
51
|
+
TAccountStablecoinTokenMint extends string | IAccountMeta<string> = string,
|
|
52
|
+
TAccountSolverStablecoinTokenAccount extends string | IAccountMeta<string> = string,
|
|
53
|
+
TAccountGuardStablecoinTokenAccount extends string | IAccountMeta<string> = string,
|
|
54
|
+
TAccountStablecoinTokenProgram extends string | IAccountMeta<string> = string,
|
|
55
|
+
TRemainingAccounts extends readonly IAccountMeta<string>[] = [],
|
|
56
|
+
> = IInstruction<TProgram> &
|
|
57
|
+
IInstructionWithData<Uint8Array> &
|
|
58
|
+
IInstructionWithAccounts<
|
|
59
|
+
[
|
|
60
|
+
TAccountSolver extends string
|
|
61
|
+
? WritableSignerAccount<TAccountSolver> & IAccountSignerMeta<TAccountSolver>
|
|
62
|
+
: TAccountSolver,
|
|
63
|
+
TAccountOrder extends string ? WritableAccount<TAccountOrder> : TAccountOrder,
|
|
64
|
+
TAccountGuard extends string ? ReadonlyAccount<TAccountGuard> : TAccountGuard,
|
|
65
|
+
TAccountIxSysvar extends string ? ReadonlyAccount<TAccountIxSysvar> : TAccountIxSysvar,
|
|
66
|
+
TAccountStablecoinTokenMint extends string
|
|
67
|
+
? ReadonlyAccount<TAccountStablecoinTokenMint>
|
|
68
|
+
: TAccountStablecoinTokenMint,
|
|
69
|
+
TAccountSolverStablecoinTokenAccount extends string
|
|
70
|
+
? WritableAccount<TAccountSolverStablecoinTokenAccount>
|
|
71
|
+
: TAccountSolverStablecoinTokenAccount,
|
|
72
|
+
TAccountGuardStablecoinTokenAccount extends string
|
|
73
|
+
? WritableAccount<TAccountGuardStablecoinTokenAccount>
|
|
74
|
+
: TAccountGuardStablecoinTokenAccount,
|
|
75
|
+
TAccountStablecoinTokenProgram extends string
|
|
76
|
+
? ReadonlyAccount<TAccountStablecoinTokenProgram>
|
|
77
|
+
: TAccountStablecoinTokenProgram,
|
|
78
|
+
...TRemainingAccounts,
|
|
79
|
+
]
|
|
80
|
+
>;
|
|
81
|
+
|
|
82
|
+
export type StartOrderExecutionAfterSwapInstructionData = {
|
|
83
|
+
discriminator: ReadonlyUint8Array;
|
|
84
|
+
stablecoinsAmount: bigint;
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
export type StartOrderExecutionAfterSwapInstructionDataArgs = {
|
|
88
|
+
stablecoinsAmount: number | bigint;
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
export function getStartOrderExecutionAfterSwapInstructionDataEncoder(): Encoder<StartOrderExecutionAfterSwapInstructionDataArgs> {
|
|
92
|
+
return transformEncoder(
|
|
93
|
+
getStructEncoder([
|
|
94
|
+
['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
|
|
95
|
+
['stablecoinsAmount', getU64Encoder()],
|
|
96
|
+
]),
|
|
97
|
+
(value) => ({
|
|
98
|
+
...value,
|
|
99
|
+
discriminator: START_ORDER_EXECUTION_AFTER_SWAP_DISCRIMINATOR,
|
|
100
|
+
}),
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export function getStartOrderExecutionAfterSwapInstructionDataDecoder(): Decoder<StartOrderExecutionAfterSwapInstructionData> {
|
|
105
|
+
return getStructDecoder([
|
|
106
|
+
['discriminator', fixDecoderSize(getBytesDecoder(), 8)],
|
|
107
|
+
['stablecoinsAmount', getU64Decoder()],
|
|
108
|
+
]);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
export function getStartOrderExecutionAfterSwapInstructionDataCodec(): Codec<
|
|
112
|
+
StartOrderExecutionAfterSwapInstructionDataArgs,
|
|
113
|
+
StartOrderExecutionAfterSwapInstructionData
|
|
114
|
+
> {
|
|
115
|
+
return combineCodec(
|
|
116
|
+
getStartOrderExecutionAfterSwapInstructionDataEncoder(),
|
|
117
|
+
getStartOrderExecutionAfterSwapInstructionDataDecoder(),
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export type StartOrderExecutionAfterSwapInput<
|
|
122
|
+
TAccountSolver extends string = string,
|
|
123
|
+
TAccountOrder extends string = string,
|
|
124
|
+
TAccountGuard extends string = string,
|
|
125
|
+
TAccountIxSysvar extends string = string,
|
|
126
|
+
TAccountStablecoinTokenMint extends string = string,
|
|
127
|
+
TAccountSolverStablecoinTokenAccount extends string = string,
|
|
128
|
+
TAccountGuardStablecoinTokenAccount extends string = string,
|
|
129
|
+
TAccountStablecoinTokenProgram extends string = string,
|
|
130
|
+
> = {
|
|
131
|
+
/** Solver that starts order execution */
|
|
132
|
+
solver: TransactionSigner<TAccountSolver>;
|
|
133
|
+
/** Order data */
|
|
134
|
+
order: Address<TAccountOrder>;
|
|
135
|
+
/** Guard address, that protects this order execution */
|
|
136
|
+
guard: Address<TAccountGuard>;
|
|
137
|
+
/**
|
|
138
|
+
* the supplied Sysvar could be anything else.
|
|
139
|
+
* The Instruction Sysvar has not been implemented
|
|
140
|
+
* in the Anchor framework yet, so this is the safe approach.
|
|
141
|
+
*/
|
|
142
|
+
ixSysvar?: Address<TAccountIxSysvar>;
|
|
143
|
+
/** Stablecoin token mint */
|
|
144
|
+
stablecoinTokenMint: Address<TAccountStablecoinTokenMint>;
|
|
145
|
+
/**
|
|
146
|
+
* Solver stablecoin account, from which solver is paying stablecoin tokens
|
|
147
|
+
* after swapping Tokens IN
|
|
148
|
+
*/
|
|
149
|
+
solverStablecoinTokenAccount: Address<TAccountSolverStablecoinTokenAccount>;
|
|
150
|
+
/** Guard stablecoin account, where Guard is collecting stablecoins */
|
|
151
|
+
guardStablecoinTokenAccount: Address<TAccountGuardStablecoinTokenAccount>;
|
|
152
|
+
/** Solana token program */
|
|
153
|
+
stablecoinTokenProgram: Address<TAccountStablecoinTokenProgram>;
|
|
154
|
+
stablecoinsAmount: StartOrderExecutionAfterSwapInstructionDataArgs['stablecoinsAmount'];
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
export function getStartOrderExecutionAfterSwapInstruction<
|
|
158
|
+
TAccountSolver extends string,
|
|
159
|
+
TAccountOrder extends string,
|
|
160
|
+
TAccountGuard extends string,
|
|
161
|
+
TAccountIxSysvar extends string,
|
|
162
|
+
TAccountStablecoinTokenMint extends string,
|
|
163
|
+
TAccountSolverStablecoinTokenAccount extends string,
|
|
164
|
+
TAccountGuardStablecoinTokenAccount extends string,
|
|
165
|
+
TAccountStablecoinTokenProgram extends string,
|
|
166
|
+
TProgramAddress extends Address = typeof SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS,
|
|
167
|
+
>(
|
|
168
|
+
input: StartOrderExecutionAfterSwapInput<
|
|
169
|
+
TAccountSolver,
|
|
170
|
+
TAccountOrder,
|
|
171
|
+
TAccountGuard,
|
|
172
|
+
TAccountIxSysvar,
|
|
173
|
+
TAccountStablecoinTokenMint,
|
|
174
|
+
TAccountSolverStablecoinTokenAccount,
|
|
175
|
+
TAccountGuardStablecoinTokenAccount,
|
|
176
|
+
TAccountStablecoinTokenProgram
|
|
177
|
+
>,
|
|
178
|
+
config?: { programAddress?: TProgramAddress },
|
|
179
|
+
): StartOrderExecutionAfterSwapInstruction<
|
|
180
|
+
TProgramAddress,
|
|
181
|
+
TAccountSolver,
|
|
182
|
+
TAccountOrder,
|
|
183
|
+
TAccountGuard,
|
|
184
|
+
TAccountIxSysvar,
|
|
185
|
+
TAccountStablecoinTokenMint,
|
|
186
|
+
TAccountSolverStablecoinTokenAccount,
|
|
187
|
+
TAccountGuardStablecoinTokenAccount,
|
|
188
|
+
TAccountStablecoinTokenProgram
|
|
189
|
+
> {
|
|
190
|
+
// Program address.
|
|
191
|
+
const programAddress = config?.programAddress ?? SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS;
|
|
192
|
+
|
|
193
|
+
// Original accounts.
|
|
194
|
+
const originalAccounts = {
|
|
195
|
+
solver: { value: input.solver ?? null, isWritable: true },
|
|
196
|
+
order: { value: input.order ?? null, isWritable: true },
|
|
197
|
+
guard: { value: input.guard ?? null, isWritable: false },
|
|
198
|
+
ixSysvar: { value: input.ixSysvar ?? null, isWritable: false },
|
|
199
|
+
stablecoinTokenMint: {
|
|
200
|
+
value: input.stablecoinTokenMint ?? null,
|
|
201
|
+
isWritable: false,
|
|
202
|
+
},
|
|
203
|
+
solverStablecoinTokenAccount: {
|
|
204
|
+
value: input.solverStablecoinTokenAccount ?? null,
|
|
205
|
+
isWritable: true,
|
|
206
|
+
},
|
|
207
|
+
guardStablecoinTokenAccount: {
|
|
208
|
+
value: input.guardStablecoinTokenAccount ?? null,
|
|
209
|
+
isWritable: true,
|
|
210
|
+
},
|
|
211
|
+
stablecoinTokenProgram: {
|
|
212
|
+
value: input.stablecoinTokenProgram ?? null,
|
|
213
|
+
isWritable: false,
|
|
214
|
+
},
|
|
215
|
+
};
|
|
216
|
+
const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedAccount>;
|
|
217
|
+
|
|
218
|
+
// Original args.
|
|
219
|
+
const args = { ...input };
|
|
220
|
+
|
|
221
|
+
// Resolve default values.
|
|
222
|
+
if (!accounts.ixSysvar.value) {
|
|
223
|
+
accounts.ixSysvar.value =
|
|
224
|
+
'Sysvar1nstructions1111111111111111111111111' as Address<'Sysvar1nstructions1111111111111111111111111'>;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
const getAccountMeta = getAccountMetaFactory(programAddress, 'programId');
|
|
228
|
+
const instruction = {
|
|
229
|
+
accounts: [
|
|
230
|
+
getAccountMeta(accounts.solver),
|
|
231
|
+
getAccountMeta(accounts.order),
|
|
232
|
+
getAccountMeta(accounts.guard),
|
|
233
|
+
getAccountMeta(accounts.ixSysvar),
|
|
234
|
+
getAccountMeta(accounts.stablecoinTokenMint),
|
|
235
|
+
getAccountMeta(accounts.solverStablecoinTokenAccount),
|
|
236
|
+
getAccountMeta(accounts.guardStablecoinTokenAccount),
|
|
237
|
+
getAccountMeta(accounts.stablecoinTokenProgram),
|
|
238
|
+
],
|
|
239
|
+
programAddress,
|
|
240
|
+
data: getStartOrderExecutionAfterSwapInstructionDataEncoder().encode(
|
|
241
|
+
args as StartOrderExecutionAfterSwapInstructionDataArgs,
|
|
242
|
+
),
|
|
243
|
+
} as StartOrderExecutionAfterSwapInstruction<
|
|
244
|
+
TProgramAddress,
|
|
245
|
+
TAccountSolver,
|
|
246
|
+
TAccountOrder,
|
|
247
|
+
TAccountGuard,
|
|
248
|
+
TAccountIxSysvar,
|
|
249
|
+
TAccountStablecoinTokenMint,
|
|
250
|
+
TAccountSolverStablecoinTokenAccount,
|
|
251
|
+
TAccountGuardStablecoinTokenAccount,
|
|
252
|
+
TAccountStablecoinTokenProgram
|
|
253
|
+
>;
|
|
254
|
+
|
|
255
|
+
return instruction;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
export type ParsedStartOrderExecutionAfterSwapInstruction<
|
|
259
|
+
TProgram extends string = typeof SOURCE_CHAIN_GUARD_PROGRAM_ADDRESS,
|
|
260
|
+
TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[],
|
|
261
|
+
> = {
|
|
262
|
+
programAddress: Address<TProgram>;
|
|
263
|
+
accounts: {
|
|
264
|
+
/** Solver that starts order execution */
|
|
265
|
+
solver: TAccountMetas[0];
|
|
266
|
+
/** Order data */
|
|
267
|
+
order: TAccountMetas[1];
|
|
268
|
+
/** Guard address, that protects this order execution */
|
|
269
|
+
guard: TAccountMetas[2];
|
|
270
|
+
/**
|
|
271
|
+
* the supplied Sysvar could be anything else.
|
|
272
|
+
* The Instruction Sysvar has not been implemented
|
|
273
|
+
* in the Anchor framework yet, so this is the safe approach.
|
|
274
|
+
*/
|
|
275
|
+
|
|
276
|
+
ixSysvar: TAccountMetas[3];
|
|
277
|
+
/** Stablecoin token mint */
|
|
278
|
+
stablecoinTokenMint: TAccountMetas[4];
|
|
279
|
+
/**
|
|
280
|
+
* Solver stablecoin account, from which solver is paying stablecoin tokens
|
|
281
|
+
* after swapping Tokens IN
|
|
282
|
+
*/
|
|
283
|
+
|
|
284
|
+
solverStablecoinTokenAccount: TAccountMetas[5];
|
|
285
|
+
/** Guard stablecoin account, where Guard is collecting stablecoins */
|
|
286
|
+
guardStablecoinTokenAccount: TAccountMetas[6];
|
|
287
|
+
/** Solana token program */
|
|
288
|
+
stablecoinTokenProgram: TAccountMetas[7];
|
|
289
|
+
};
|
|
290
|
+
data: StartOrderExecutionAfterSwapInstructionData;
|
|
291
|
+
};
|
|
292
|
+
|
|
293
|
+
export function parseStartOrderExecutionAfterSwapInstruction<
|
|
294
|
+
TProgram extends string,
|
|
295
|
+
TAccountMetas extends readonly IAccountMeta[],
|
|
296
|
+
>(
|
|
297
|
+
instruction: IInstruction<TProgram> & IInstructionWithAccounts<TAccountMetas> & IInstructionWithData<Uint8Array>,
|
|
298
|
+
): ParsedStartOrderExecutionAfterSwapInstruction<TProgram, TAccountMetas> {
|
|
299
|
+
if (instruction.accounts.length < 8) {
|
|
300
|
+
// TODO: Coded error.
|
|
301
|
+
throw new Error('Not enough accounts');
|
|
302
|
+
}
|
|
303
|
+
let accountIndex = 0;
|
|
304
|
+
const getNextAccount = () => {
|
|
305
|
+
const accountMeta = instruction.accounts![accountIndex]!;
|
|
306
|
+
accountIndex += 1;
|
|
307
|
+
return accountMeta;
|
|
308
|
+
};
|
|
309
|
+
return {
|
|
310
|
+
programAddress: instruction.programAddress,
|
|
311
|
+
accounts: {
|
|
312
|
+
solver: getNextAccount(),
|
|
313
|
+
order: getNextAccount(),
|
|
314
|
+
guard: getNextAccount(),
|
|
315
|
+
ixSysvar: getNextAccount(),
|
|
316
|
+
stablecoinTokenMint: getNextAccount(),
|
|
317
|
+
solverStablecoinTokenAccount: getNextAccount(),
|
|
318
|
+
guardStablecoinTokenAccount: getNextAccount(),
|
|
319
|
+
stablecoinTokenProgram: getNextAccount(),
|
|
320
|
+
},
|
|
321
|
+
data: getStartOrderExecutionAfterSwapInstructionDataDecoder().decode(instruction.data),
|
|
322
|
+
};
|
|
323
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
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 './sourceChainGuard.js';
|