@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
package/src/core/sdk.ts
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { chainIdToChainTypeMap } from '../chains.js';
|
|
2
|
+
import { AUCTIONEER_URL } from '../constants.js';
|
|
3
|
+
import { NetworkError } from '../errors/index.js';
|
|
4
|
+
import type { CreateOrderParams, PreparedOrder, UserIntentRequest } from '../types/intent.js';
|
|
5
|
+
import { Parsers } from '../utils/parsers.js';
|
|
6
|
+
import { Order } from './order.js';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Base SDK providing common functionality for all blockchain implementations
|
|
10
|
+
*
|
|
11
|
+
* This abstract class serves as the foundation for chain-specific SDK implementations
|
|
12
|
+
* (EVM, Solana, Sui), providing shared functionality for creating and sending orders
|
|
13
|
+
* across different blockchains.
|
|
14
|
+
*/
|
|
15
|
+
export abstract class BaseSDK {
|
|
16
|
+
/**
|
|
17
|
+
* Gets the user's wallet address derived from their private key
|
|
18
|
+
*
|
|
19
|
+
* @returns Promise resolving to the user's address as a string
|
|
20
|
+
* @abstract Must be implemented by each chain-specific SDK
|
|
21
|
+
*/
|
|
22
|
+
public abstract getUserAddress(): Promise<string>;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Prepares an order for submission with chain-specific logic
|
|
26
|
+
*
|
|
27
|
+
* This method handles the chain-specific aspects of order creation, such as:
|
|
28
|
+
* - Creating and signing transactions
|
|
29
|
+
* - Interacting with blockchain-specific smart contracts
|
|
30
|
+
* - Generating proof of intent
|
|
31
|
+
*
|
|
32
|
+
* @param order The validated order to prepare
|
|
33
|
+
* @returns Promise resolving to a prepared order with chain-specific data
|
|
34
|
+
* @abstract Must be implemented by each chain-specific SDK
|
|
35
|
+
* @protected
|
|
36
|
+
*/
|
|
37
|
+
protected abstract prepareOrder(order: Order): Promise<PreparedOrder>;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Creates a cross-chain swap order
|
|
41
|
+
*
|
|
42
|
+
* This method:
|
|
43
|
+
* 1. Gets the user's address from their private key
|
|
44
|
+
* 2. Creates and validates an Order instance
|
|
45
|
+
* 3. Delegates to chain-specific preparation logic
|
|
46
|
+
*
|
|
47
|
+
* @param params Parameters for order creation including source/destination chain details
|
|
48
|
+
* @returns Promise resolving to a prepared order ready for submission
|
|
49
|
+
* @throws {ValidationError} If order parameters are invalid
|
|
50
|
+
* @throws {OrderCreationError} If order creation fails
|
|
51
|
+
*/
|
|
52
|
+
public async createOrder(params: CreateOrderParams): Promise<PreparedOrder> {
|
|
53
|
+
const userAddress = await this.getUserAddress();
|
|
54
|
+
|
|
55
|
+
// Order is validated upon creation
|
|
56
|
+
const order = await Order.create({
|
|
57
|
+
user: userAddress,
|
|
58
|
+
sourceChainId: params.sourceChainId,
|
|
59
|
+
sourceTokenAddress: params.sourceTokenAddress,
|
|
60
|
+
sourceTokenAmount: params.sourceTokenAmount,
|
|
61
|
+
minStablecoinAmount: params.minStablecoinAmount,
|
|
62
|
+
deadline: params.deadline,
|
|
63
|
+
destinationAddress: params.destinationAddress,
|
|
64
|
+
destinationChainId: params.destinationChainId,
|
|
65
|
+
destinationTokenAddress: params.destinationTokenAddress,
|
|
66
|
+
destinationTokenMinAmount: params.destinationTokenMinAmount,
|
|
67
|
+
extraTransfers: params.extraTransfers,
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
return this.prepareOrder(order);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Creates an order and sends it to the auctioneer in a single call
|
|
75
|
+
*
|
|
76
|
+
* Convenience method that combines order creation and submission
|
|
77
|
+
*
|
|
78
|
+
* @param params Parameters for order creation including source/destination chain details
|
|
79
|
+
* @returns Promise resolving to the auctioneer's HTTP response
|
|
80
|
+
* @throws {ValidationError} If order parameters are invalid
|
|
81
|
+
* @throws {OrderCreationError} If order creation fails
|
|
82
|
+
* @throws {NetworkError} If order submission fails
|
|
83
|
+
*/
|
|
84
|
+
public async createAndSendOrder(params: CreateOrderParams): Promise<Response> {
|
|
85
|
+
const preparedOrder = await this.createOrder(params);
|
|
86
|
+
return this.sendOrder(preparedOrder);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Converts a prepared order into a user intent request format for the auctioneer
|
|
91
|
+
*
|
|
92
|
+
* The UserIntentRequest format includes:
|
|
93
|
+
* - Generic data common to all chains
|
|
94
|
+
* - Chain-specific data (signatures, nonces, etc.)
|
|
95
|
+
* - Execution details for the destination chain
|
|
96
|
+
*
|
|
97
|
+
* @param preparedOrder The prepared order with chain-specific data
|
|
98
|
+
* @returns User intent request object ready for submission to the auctioneer
|
|
99
|
+
* @throws {BaseError} If conversion fails
|
|
100
|
+
*/
|
|
101
|
+
private getUserIntentRequest(preparedOrder: PreparedOrder): UserIntentRequest {
|
|
102
|
+
const sourceChain = preparedOrder.order.sourceChainId;
|
|
103
|
+
const sourceChainType = chainIdToChainTypeMap[sourceChain];
|
|
104
|
+
const executionDetails = preparedOrder.order.getExecutionDetails();
|
|
105
|
+
|
|
106
|
+
return {
|
|
107
|
+
genericData: preparedOrder.order.toSourceChainData(),
|
|
108
|
+
executionDetails: JSON.stringify(executionDetails, Parsers.bigIntReplacer),
|
|
109
|
+
chainSpecificData: {
|
|
110
|
+
[sourceChainType]: preparedOrder.preparedData,
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* Sends a prepared order to the auctioneer service
|
|
117
|
+
*
|
|
118
|
+
* This method:
|
|
119
|
+
* 1. Converts the prepared order to the auctioneer's expected format
|
|
120
|
+
* 2. Serializes the request with proper handling of bigint values
|
|
121
|
+
* 3. Submits the order to the auctioneer endpoint
|
|
122
|
+
* 4. Validates the response
|
|
123
|
+
*
|
|
124
|
+
* @param preparedOrder The prepared order with chain-specific data
|
|
125
|
+
* @returns Promise resolving to the specific-chain tx hash
|
|
126
|
+
* @throws {NetworkError} If the network request fails or returns an error
|
|
127
|
+
*/
|
|
128
|
+
public async sendOrder(preparedOrder: PreparedOrder): Promise<Response> {
|
|
129
|
+
const intentRequest = this.getUserIntentRequest(preparedOrder);
|
|
130
|
+
const body = JSON.stringify(intentRequest, Parsers.bigIntReplacer);
|
|
131
|
+
|
|
132
|
+
const url = `${AUCTIONEER_URL}/user_intent`;
|
|
133
|
+
const response = await fetch(url, {
|
|
134
|
+
method: 'POST',
|
|
135
|
+
headers: {
|
|
136
|
+
'Content-Type': 'application/json',
|
|
137
|
+
},
|
|
138
|
+
body,
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
if (!response.ok) {
|
|
142
|
+
const errorJson = await response.json();
|
|
143
|
+
|
|
144
|
+
const extraErrorData = errorJson.extra_error_data;
|
|
145
|
+
throw new NetworkError(`Server error`, {
|
|
146
|
+
status: response.status,
|
|
147
|
+
statusText: response.statusText,
|
|
148
|
+
body: extraErrorData,
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
return response;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createSolanaRpc,
|
|
3
|
+
createSolanaRpcSubscriptions,
|
|
4
|
+
type Rpc,
|
|
5
|
+
type RpcSubscriptions,
|
|
6
|
+
type SolanaRpcApiMainnet,
|
|
7
|
+
type SolanaRpcSubscriptionsApi,
|
|
8
|
+
sendAndConfirmTransactionFactory,
|
|
9
|
+
} from '@solana/kit';
|
|
10
|
+
import type { SolanaConfig } from '../../config.js';
|
|
11
|
+
|
|
12
|
+
export type SolanaClient = {
|
|
13
|
+
privateKey: string;
|
|
14
|
+
rpc: Rpc<SolanaRpcApiMainnet>;
|
|
15
|
+
rpcSubscriptions: RpcSubscriptions<SolanaRpcSubscriptionsApi>;
|
|
16
|
+
sendAndConfirmTransaction: ReturnType<typeof sendAndConfirmTransactionFactory>;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
export function createSolanaClient(config: SolanaConfig): SolanaClient {
|
|
20
|
+
const rpc = config.rpcProviderUrl ? createSolanaRpc(config.rpcProviderUrl) : getDefaultSolanaRPC();
|
|
21
|
+
const rpcSubscriptions = createSolanaRpcSubscriptions('wss://api.mainnet-beta.solana.com');
|
|
22
|
+
const sendAndConfirmTransaction = sendAndConfirmTransactionFactory({
|
|
23
|
+
rpc,
|
|
24
|
+
rpcSubscriptions,
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
privateKey: config.privateKey,
|
|
29
|
+
rpc,
|
|
30
|
+
rpcSubscriptions,
|
|
31
|
+
sendAndConfirmTransaction,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
export function getDefaultSolanaRPC(): Rpc<SolanaRpcApiMainnet> {
|
|
36
|
+
return createSolanaRpc('https://api.mainnet-beta.solana.com');
|
|
37
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
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
|
+
type Account,
|
|
11
|
+
assertAccountExists,
|
|
12
|
+
assertAccountsExist,
|
|
13
|
+
decodeAccount,
|
|
14
|
+
type EncodedAccount,
|
|
15
|
+
type FetchAccountConfig,
|
|
16
|
+
type FetchAccountsConfig,
|
|
17
|
+
fetchEncodedAccount,
|
|
18
|
+
fetchEncodedAccounts,
|
|
19
|
+
type MaybeAccount,
|
|
20
|
+
type MaybeEncodedAccount,
|
|
21
|
+
} from '@solana/kit';
|
|
22
|
+
import { type Address, getAddressDecoder, getAddressEncoder } from '@solana/kit';
|
|
23
|
+
import {
|
|
24
|
+
type Codec,
|
|
25
|
+
combineCodec,
|
|
26
|
+
type Decoder,
|
|
27
|
+
type Encoder,
|
|
28
|
+
fixDecoderSize,
|
|
29
|
+
fixEncoderSize,
|
|
30
|
+
getBytesDecoder,
|
|
31
|
+
getBytesEncoder,
|
|
32
|
+
getStructDecoder,
|
|
33
|
+
getStructEncoder,
|
|
34
|
+
getU8Decoder,
|
|
35
|
+
getU8Encoder,
|
|
36
|
+
type ReadonlyUint8Array,
|
|
37
|
+
transformEncoder,
|
|
38
|
+
} from '@solana/kit';
|
|
39
|
+
|
|
40
|
+
export const ADMIN_SINGLETON_DISCRIMINATOR = new Uint8Array([179, 22, 254, 245, 204, 230, 222, 194]);
|
|
41
|
+
|
|
42
|
+
export function getAdminSingletonDiscriminatorBytes() {
|
|
43
|
+
return fixEncoderSize(getBytesEncoder(), 8).encode(ADMIN_SINGLETON_DISCRIMINATOR);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export type AdminSingleton = {
|
|
47
|
+
discriminator: ReadonlyUint8Array;
|
|
48
|
+
/** Guard admin */
|
|
49
|
+
admin: Address;
|
|
50
|
+
/** PDA bump */
|
|
51
|
+
bump: number;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
export type AdminSingletonArgs = {
|
|
55
|
+
/** Guard admin */
|
|
56
|
+
admin: Address;
|
|
57
|
+
/** PDA bump */
|
|
58
|
+
bump: number;
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
export function getAdminSingletonEncoder(): Encoder<AdminSingletonArgs> {
|
|
62
|
+
return transformEncoder(
|
|
63
|
+
getStructEncoder([
|
|
64
|
+
['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
|
|
65
|
+
['admin', getAddressEncoder()],
|
|
66
|
+
['bump', getU8Encoder()],
|
|
67
|
+
]),
|
|
68
|
+
(value) => ({ ...value, discriminator: ADMIN_SINGLETON_DISCRIMINATOR }),
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export function getAdminSingletonDecoder(): Decoder<AdminSingleton> {
|
|
73
|
+
return getStructDecoder([
|
|
74
|
+
['discriminator', fixDecoderSize(getBytesDecoder(), 8)],
|
|
75
|
+
['admin', getAddressDecoder()],
|
|
76
|
+
['bump', getU8Decoder()],
|
|
77
|
+
]);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
export function getAdminSingletonCodec(): Codec<AdminSingletonArgs, AdminSingleton> {
|
|
81
|
+
return combineCodec(getAdminSingletonEncoder(), getAdminSingletonDecoder());
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
export function decodeAdminSingleton<TAddress extends string = string>(
|
|
85
|
+
encodedAccount: EncodedAccount<TAddress>,
|
|
86
|
+
): Account<AdminSingleton, TAddress>;
|
|
87
|
+
export function decodeAdminSingleton<TAddress extends string = string>(
|
|
88
|
+
encodedAccount: MaybeEncodedAccount<TAddress>,
|
|
89
|
+
): MaybeAccount<AdminSingleton, TAddress>;
|
|
90
|
+
export function decodeAdminSingleton<TAddress extends string = string>(
|
|
91
|
+
encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>,
|
|
92
|
+
): Account<AdminSingleton, TAddress> | MaybeAccount<AdminSingleton, TAddress> {
|
|
93
|
+
return decodeAccount(encodedAccount as MaybeEncodedAccount<TAddress>, getAdminSingletonDecoder());
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export async function fetchAdminSingleton<TAddress extends string = string>(
|
|
97
|
+
rpc: Parameters<typeof fetchEncodedAccount>[0],
|
|
98
|
+
address: Address<TAddress>,
|
|
99
|
+
config?: FetchAccountConfig,
|
|
100
|
+
): Promise<Account<AdminSingleton, TAddress>> {
|
|
101
|
+
const maybeAccount = await fetchMaybeAdminSingleton(rpc, address, config);
|
|
102
|
+
assertAccountExists(maybeAccount);
|
|
103
|
+
return maybeAccount;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
export async function fetchMaybeAdminSingleton<TAddress extends string = string>(
|
|
107
|
+
rpc: Parameters<typeof fetchEncodedAccount>[0],
|
|
108
|
+
address: Address<TAddress>,
|
|
109
|
+
config?: FetchAccountConfig,
|
|
110
|
+
): Promise<MaybeAccount<AdminSingleton, TAddress>> {
|
|
111
|
+
const maybeAccount = await fetchEncodedAccount(rpc, address, config);
|
|
112
|
+
return decodeAdminSingleton(maybeAccount);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export async function fetchAllAdminSingleton(
|
|
116
|
+
rpc: Parameters<typeof fetchEncodedAccounts>[0],
|
|
117
|
+
addresses: Array<Address>,
|
|
118
|
+
config?: FetchAccountsConfig,
|
|
119
|
+
): Promise<Account<AdminSingleton>[]> {
|
|
120
|
+
const maybeAccounts = await fetchAllMaybeAdminSingleton(rpc, addresses, config);
|
|
121
|
+
assertAccountsExist(maybeAccounts);
|
|
122
|
+
return maybeAccounts;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export async function fetchAllMaybeAdminSingleton(
|
|
126
|
+
rpc: Parameters<typeof fetchEncodedAccounts>[0],
|
|
127
|
+
addresses: Array<Address>,
|
|
128
|
+
config?: FetchAccountsConfig,
|
|
129
|
+
): Promise<MaybeAccount<AdminSingleton>[]> {
|
|
130
|
+
const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
|
|
131
|
+
return maybeAccounts.map((maybeAccount) => decodeAdminSingleton(maybeAccount));
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
export function getAdminSingletonSize(): number {
|
|
135
|
+
return 41;
|
|
136
|
+
}
|
|
@@ -0,0 +1,156 @@
|
|
|
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
|
+
type Account,
|
|
11
|
+
assertAccountExists,
|
|
12
|
+
assertAccountsExist,
|
|
13
|
+
decodeAccount,
|
|
14
|
+
type EncodedAccount,
|
|
15
|
+
type FetchAccountConfig,
|
|
16
|
+
type FetchAccountsConfig,
|
|
17
|
+
fetchEncodedAccount,
|
|
18
|
+
fetchEncodedAccounts,
|
|
19
|
+
type MaybeAccount,
|
|
20
|
+
type MaybeEncodedAccount,
|
|
21
|
+
} from '@solana/kit';
|
|
22
|
+
import { type Address, getAddressDecoder, getAddressEncoder } from '@solana/kit';
|
|
23
|
+
import {
|
|
24
|
+
type Codec,
|
|
25
|
+
combineCodec,
|
|
26
|
+
type Decoder,
|
|
27
|
+
type Encoder,
|
|
28
|
+
fixDecoderSize,
|
|
29
|
+
fixEncoderSize,
|
|
30
|
+
getBytesDecoder,
|
|
31
|
+
getBytesEncoder,
|
|
32
|
+
getStructDecoder,
|
|
33
|
+
getStructEncoder,
|
|
34
|
+
getU8Decoder,
|
|
35
|
+
getU8Encoder,
|
|
36
|
+
getU64Decoder,
|
|
37
|
+
getU64Encoder,
|
|
38
|
+
type ReadonlyUint8Array,
|
|
39
|
+
transformEncoder,
|
|
40
|
+
} from '@solana/kit';
|
|
41
|
+
|
|
42
|
+
export const GUARD_DISCRIMINATOR = new Uint8Array([54, 187, 84, 137, 192, 15, 74, 248]);
|
|
43
|
+
|
|
44
|
+
export function getGuardDiscriminatorBytes() {
|
|
45
|
+
return fixEncoderSize(getBytesEncoder(), 8).encode(GUARD_DISCRIMINATOR);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
export type Guard = {
|
|
49
|
+
discriminator: ReadonlyUint8Array;
|
|
50
|
+
/** Token that is used as collateral and fees */
|
|
51
|
+
collateralToken: Address;
|
|
52
|
+
/** Token that is used as token OUT when swapping Token IN during order execution start */
|
|
53
|
+
stablecoinToken: Address;
|
|
54
|
+
/** PDA bump */
|
|
55
|
+
bump: number;
|
|
56
|
+
/** Public key of auctioneer that signs permissions and confirmations */
|
|
57
|
+
auctioneerPubKey: Address;
|
|
58
|
+
/** Amount of collected fees, in collateral tokens */
|
|
59
|
+
collectedFees: bigint;
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export type GuardArgs = {
|
|
63
|
+
/** Token that is used as collateral and fees */
|
|
64
|
+
collateralToken: Address;
|
|
65
|
+
/** Token that is used as token OUT when swapping Token IN during order execution start */
|
|
66
|
+
stablecoinToken: Address;
|
|
67
|
+
/** PDA bump */
|
|
68
|
+
bump: number;
|
|
69
|
+
/** Public key of auctioneer that signs permissions and confirmations */
|
|
70
|
+
auctioneerPubKey: Address;
|
|
71
|
+
/** Amount of collected fees, in collateral tokens */
|
|
72
|
+
collectedFees: number | bigint;
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export function getGuardEncoder(): Encoder<GuardArgs> {
|
|
76
|
+
return transformEncoder(
|
|
77
|
+
getStructEncoder([
|
|
78
|
+
['discriminator', fixEncoderSize(getBytesEncoder(), 8)],
|
|
79
|
+
['collateralToken', getAddressEncoder()],
|
|
80
|
+
['stablecoinToken', getAddressEncoder()],
|
|
81
|
+
['bump', getU8Encoder()],
|
|
82
|
+
['auctioneerPubKey', getAddressEncoder()],
|
|
83
|
+
['collectedFees', getU64Encoder()],
|
|
84
|
+
]),
|
|
85
|
+
(value) => ({ ...value, discriminator: GUARD_DISCRIMINATOR }),
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
export function getGuardDecoder(): Decoder<Guard> {
|
|
90
|
+
return getStructDecoder([
|
|
91
|
+
['discriminator', fixDecoderSize(getBytesDecoder(), 8)],
|
|
92
|
+
['collateralToken', getAddressDecoder()],
|
|
93
|
+
['stablecoinToken', getAddressDecoder()],
|
|
94
|
+
['bump', getU8Decoder()],
|
|
95
|
+
['auctioneerPubKey', getAddressDecoder()],
|
|
96
|
+
['collectedFees', getU64Decoder()],
|
|
97
|
+
]);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export function getGuardCodec(): Codec<GuardArgs, Guard> {
|
|
101
|
+
return combineCodec(getGuardEncoder(), getGuardDecoder());
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
export function decodeGuard<TAddress extends string = string>(
|
|
105
|
+
encodedAccount: EncodedAccount<TAddress>,
|
|
106
|
+
): Account<Guard, TAddress>;
|
|
107
|
+
export function decodeGuard<TAddress extends string = string>(
|
|
108
|
+
encodedAccount: MaybeEncodedAccount<TAddress>,
|
|
109
|
+
): MaybeAccount<Guard, TAddress>;
|
|
110
|
+
export function decodeGuard<TAddress extends string = string>(
|
|
111
|
+
encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>,
|
|
112
|
+
): Account<Guard, TAddress> | MaybeAccount<Guard, TAddress> {
|
|
113
|
+
return decodeAccount(encodedAccount as MaybeEncodedAccount<TAddress>, getGuardDecoder());
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
export async function fetchGuard<TAddress extends string = string>(
|
|
117
|
+
rpc: Parameters<typeof fetchEncodedAccount>[0],
|
|
118
|
+
address: Address<TAddress>,
|
|
119
|
+
config?: FetchAccountConfig,
|
|
120
|
+
): Promise<Account<Guard, TAddress>> {
|
|
121
|
+
const maybeAccount = await fetchMaybeGuard(rpc, address, config);
|
|
122
|
+
assertAccountExists(maybeAccount);
|
|
123
|
+
return maybeAccount;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
export async function fetchMaybeGuard<TAddress extends string = string>(
|
|
127
|
+
rpc: Parameters<typeof fetchEncodedAccount>[0],
|
|
128
|
+
address: Address<TAddress>,
|
|
129
|
+
config?: FetchAccountConfig,
|
|
130
|
+
): Promise<MaybeAccount<Guard, TAddress>> {
|
|
131
|
+
const maybeAccount = await fetchEncodedAccount(rpc, address, config);
|
|
132
|
+
return decodeGuard(maybeAccount);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export async function fetchAllGuard(
|
|
136
|
+
rpc: Parameters<typeof fetchEncodedAccounts>[0],
|
|
137
|
+
addresses: Array<Address>,
|
|
138
|
+
config?: FetchAccountsConfig,
|
|
139
|
+
): Promise<Account<Guard>[]> {
|
|
140
|
+
const maybeAccounts = await fetchAllMaybeGuard(rpc, addresses, config);
|
|
141
|
+
assertAccountsExist(maybeAccounts);
|
|
142
|
+
return maybeAccounts;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
export async function fetchAllMaybeGuard(
|
|
146
|
+
rpc: Parameters<typeof fetchEncodedAccounts>[0],
|
|
147
|
+
addresses: Array<Address>,
|
|
148
|
+
config?: FetchAccountsConfig,
|
|
149
|
+
): Promise<MaybeAccount<Guard>[]> {
|
|
150
|
+
const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);
|
|
151
|
+
return maybeAccounts.map((maybeAccount) => decodeGuard(maybeAccount));
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
export function getGuardSize(): number {
|
|
155
|
+
return 113;
|
|
156
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
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 './adminSingleton.js';
|
|
10
|
+
export * from './guard.js';
|
|
11
|
+
export * from './order.js';
|