@coinbase/cdp-sdk 1.27.0 → 1.28.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/CHANGELOG.md +12 -0
- package/_cjs/accounts/evm/toNetworkScopedEvmServerAccount.js +11 -6
- package/_cjs/accounts/evm/toNetworkScopedEvmServerAccount.js.map +1 -1
- package/_cjs/actions/solana/transfer.js +25 -38
- package/_cjs/actions/solana/transfer.js.map +1 -1
- package/_cjs/actions/solana/utils.js +4 -14
- package/_cjs/actions/solana/utils.js.map +1 -1
- package/_cjs/policies/schema.js +6 -6
- package/_cjs/version.js +1 -1
- package/_esm/accounts/evm/toNetworkScopedEvmServerAccount.js +11 -6
- package/_esm/accounts/evm/toNetworkScopedEvmServerAccount.js.map +1 -1
- package/_esm/actions/solana/transfer.js +26 -39
- package/_esm/actions/solana/transfer.js.map +1 -1
- package/_esm/actions/solana/utils.js +5 -15
- package/_esm/actions/solana/utils.js.map +1 -1
- package/_esm/policies/schema.js +6 -6
- package/_esm/version.js +1 -1
- package/_types/accounts/evm/toNetworkScopedEvmServerAccount.d.ts.map +1 -1
- package/_types/actions/solana/transfer.d.ts.map +1 -1
- package/_types/actions/solana/utils.d.ts +2 -2
- package/_types/actions/solana/utils.d.ts.map +1 -1
- package/_types/policies/schema.d.ts +34 -34
- package/_types/version.d.ts +1 -1
- package/accounts/evm/toNetworkScopedEvmServerAccount.ts +12 -6
- package/actions/solana/transfer.ts +33 -52
- package/actions/solana/utils.ts +5 -13
- package/package.json +1 -1
- package/policies/schema.ts +6 -6
- package/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# CDP SDK Changelog
|
|
2
2
|
|
|
3
|
+
## 1.28.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#304](https://github.com/coinbase/cdp-sdk/pull/304) [`d6363f6`](https://github.com/coinbase/cdp-sdk/commit/d6363f667457e172474c3aadcfb7cbdaadb536f2) Thanks [@sammccord](https://github.com/sammccord)! - Increased address criterion validation to 300 from 100
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [#309](https://github.com/coinbase/cdp-sdk/pull/309) [`ee7601c`](https://github.com/coinbase/cdp-sdk/commit/ee7601ce9700272162684435721f42bc9e0af3b5) Thanks [@sddioulde](https://github.com/sddioulde)! - Updated transfer to use SendSolanaTransaction
|
|
12
|
+
|
|
13
|
+
- [#299](https://github.com/coinbase/cdp-sdk/pull/299) [`d5e6e20`](https://github.com/coinbase/cdp-sdk/commit/d5e6e206d760e2b72d46ea9676d3a0b9306877b3) Thanks [@0xRAG](https://github.com/0xRAG)! - Fixed managed methods not being available when using custom RPC URLs with EVM server accounts
|
|
14
|
+
|
|
3
15
|
## 1.27.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
|
@@ -21,6 +21,11 @@ async function toNetworkScopedEvmServerAccount(options) {
|
|
|
21
21
|
networkOrNodeUrl: options.network,
|
|
22
22
|
account: options.account,
|
|
23
23
|
});
|
|
24
|
+
/*
|
|
25
|
+
* Determine the actual network name from the resolved chain
|
|
26
|
+
* This handles cases where options.network is an RPC URL
|
|
27
|
+
*/
|
|
28
|
+
const resolvedNetworkName = (0, chainToNetworkMapper_js_1.mapChainToNetwork)(chain) ?? options.network;
|
|
24
29
|
const shouldUseApiForSends = chain.id === chains_1.base.id ||
|
|
25
30
|
chain.id === chains_1.baseSepolia.id ||
|
|
26
31
|
chain.id === chains_1.mainnet.id ||
|
|
@@ -85,7 +90,7 @@ async function toNetworkScopedEvmServerAccount(options) {
|
|
|
85
90
|
return publicClient.waitForTransactionReceipt(waitOptions);
|
|
86
91
|
},
|
|
87
92
|
};
|
|
88
|
-
if ((0, networkCapabilities_js_1.isMethodSupportedOnNetwork)("listTokenBalances",
|
|
93
|
+
if ((0, networkCapabilities_js_1.isMethodSupportedOnNetwork)("listTokenBalances", resolvedNetworkName)) {
|
|
89
94
|
Object.assign(account, {
|
|
90
95
|
listTokenBalances: async (listTokenBalancesOptions) => {
|
|
91
96
|
return options.account.listTokenBalances({
|
|
@@ -95,7 +100,7 @@ async function toNetworkScopedEvmServerAccount(options) {
|
|
|
95
100
|
},
|
|
96
101
|
});
|
|
97
102
|
}
|
|
98
|
-
if ((0, networkCapabilities_js_1.isMethodSupportedOnNetwork)("requestFaucet",
|
|
103
|
+
if ((0, networkCapabilities_js_1.isMethodSupportedOnNetwork)("requestFaucet", resolvedNetworkName)) {
|
|
99
104
|
Object.assign(account, {
|
|
100
105
|
requestFaucet: async (faucetOptions) => {
|
|
101
106
|
return options.account.requestFaucet({
|
|
@@ -105,7 +110,7 @@ async function toNetworkScopedEvmServerAccount(options) {
|
|
|
105
110
|
},
|
|
106
111
|
});
|
|
107
112
|
}
|
|
108
|
-
if ((0, networkCapabilities_js_1.isMethodSupportedOnNetwork)("quoteFund",
|
|
113
|
+
if ((0, networkCapabilities_js_1.isMethodSupportedOnNetwork)("quoteFund", resolvedNetworkName)) {
|
|
109
114
|
Object.assign(account, {
|
|
110
115
|
quoteFund: async (quoteFundOptions) => {
|
|
111
116
|
return options.account.quoteFund({
|
|
@@ -114,7 +119,7 @@ async function toNetworkScopedEvmServerAccount(options) {
|
|
|
114
119
|
},
|
|
115
120
|
});
|
|
116
121
|
}
|
|
117
|
-
if ((0, networkCapabilities_js_1.isMethodSupportedOnNetwork)("fund",
|
|
122
|
+
if ((0, networkCapabilities_js_1.isMethodSupportedOnNetwork)("fund", resolvedNetworkName)) {
|
|
118
123
|
Object.assign(account, {
|
|
119
124
|
fund: async (fundOptions) => {
|
|
120
125
|
return options.account.fund({
|
|
@@ -126,14 +131,14 @@ async function toNetworkScopedEvmServerAccount(options) {
|
|
|
126
131
|
},
|
|
127
132
|
});
|
|
128
133
|
}
|
|
129
|
-
if ((0, networkCapabilities_js_1.isMethodSupportedOnNetwork)("quoteSwap",
|
|
134
|
+
if ((0, networkCapabilities_js_1.isMethodSupportedOnNetwork)("quoteSwap", resolvedNetworkName)) {
|
|
130
135
|
Object.assign(account, {
|
|
131
136
|
quoteSwap: async (quoteSwapOptions) => {
|
|
132
137
|
return options.account.quoteSwap(quoteSwapOptions);
|
|
133
138
|
},
|
|
134
139
|
});
|
|
135
140
|
}
|
|
136
|
-
if ((0, networkCapabilities_js_1.isMethodSupportedOnNetwork)("swap",
|
|
141
|
+
if ((0, networkCapabilities_js_1.isMethodSupportedOnNetwork)("swap", resolvedNetworkName)) {
|
|
137
142
|
Object.assign(account, {
|
|
138
143
|
swap: async (swapOptions) => {
|
|
139
144
|
return options.account.swap(swapOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toNetworkScopedEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toNetworkScopedEvmServerAccount.ts"],"names":[],"mappings":";;AA8CA,
|
|
1
|
+
{"version":3,"file":"toNetworkScopedEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toNetworkScopedEvmServerAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.transfer = transfer;
|
|
4
4
|
const spl_token_1 = require("@solana/spl-token");
|
|
5
5
|
const web3_js_1 = require("@solana/web3.js");
|
|
6
|
+
const sendTransaction_js_1 = require("./sendTransaction.js");
|
|
6
7
|
const utils_js_1 = require("./utils.js");
|
|
7
8
|
/**
|
|
8
9
|
* Transfers SOL or SPL tokens between accounts
|
|
@@ -14,9 +15,9 @@ const utils_js_1 = require("./utils.js");
|
|
|
14
15
|
*/
|
|
15
16
|
async function transfer(apiClient, options) {
|
|
16
17
|
const connection = (0, utils_js_1.getOrCreateConnection)({ networkOrConnection: options.network });
|
|
18
|
+
const connectedNetwork = await (0, utils_js_1.getConnectedNetwork)(connection);
|
|
17
19
|
const tx = options.token === "sol"
|
|
18
20
|
? await getNativeTransfer({
|
|
19
|
-
connection,
|
|
20
21
|
from: options.from,
|
|
21
22
|
to: options.to,
|
|
22
23
|
amount: options.amount,
|
|
@@ -25,52 +26,40 @@ async function transfer(apiClient, options) {
|
|
|
25
26
|
connection,
|
|
26
27
|
from: options.from,
|
|
27
28
|
to: options.to,
|
|
28
|
-
mintAddress: options.token === "usdc"
|
|
29
|
-
? (0, utils_js_1.getUsdcMintAddress)(await (0, utils_js_1.getConnectedNetwork)(connection))
|
|
30
|
-
: options.token,
|
|
29
|
+
mintAddress: options.token === "usdc" ? (0, utils_js_1.getUsdcMintAddress)(connectedNetwork) : options.token,
|
|
31
30
|
amount: options.amount,
|
|
32
31
|
});
|
|
33
|
-
const serializedTx = Buffer.from(tx.serialize()).toString("base64");
|
|
34
|
-
const
|
|
32
|
+
const serializedTx = Buffer.from(tx.serialize({ requireAllSignatures: false })).toString("base64");
|
|
33
|
+
const signature = await (0, sendTransaction_js_1.sendTransaction)(apiClient, {
|
|
34
|
+
network: connectedNetwork === "mainnet" ? "solana" : "solana-devnet",
|
|
35
35
|
transaction: serializedTx,
|
|
36
36
|
});
|
|
37
|
-
|
|
38
|
-
const signature = await connection.sendRawTransaction(decodedSignedTx, {
|
|
39
|
-
skipPreflight: false,
|
|
40
|
-
maxRetries: 3,
|
|
41
|
-
});
|
|
42
|
-
return { signature };
|
|
37
|
+
return signature;
|
|
43
38
|
}
|
|
44
39
|
/**
|
|
45
|
-
* Gets the
|
|
40
|
+
* Gets the transaction for a native SOL transfer
|
|
46
41
|
*
|
|
47
42
|
* @param options - The options for the native SOL transfer
|
|
48
43
|
*
|
|
49
|
-
* @param options.connection - The Solana connection
|
|
50
44
|
* @param options.from - The source address
|
|
51
45
|
* @param options.to - The destination address
|
|
52
46
|
* @param options.amount - The amount to transfer
|
|
53
47
|
*
|
|
54
48
|
* @returns The native SOL transfer transaction
|
|
55
49
|
*/
|
|
56
|
-
async function getNativeTransfer({
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
web3_js_1.
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
payerKey: new web3_js_1.PublicKey(from),
|
|
67
|
-
recentBlockhash: blockhash,
|
|
68
|
-
instructions,
|
|
69
|
-
}).compileToV0Message();
|
|
70
|
-
return new web3_js_1.VersionedTransaction(messageV0);
|
|
50
|
+
async function getNativeTransfer({ from, to, amount, }) {
|
|
51
|
+
const transaction = new web3_js_1.Transaction();
|
|
52
|
+
transaction.add(web3_js_1.SystemProgram.transfer({
|
|
53
|
+
fromPubkey: new web3_js_1.PublicKey(from),
|
|
54
|
+
toPubkey: new web3_js_1.PublicKey(to),
|
|
55
|
+
lamports: amount,
|
|
56
|
+
}));
|
|
57
|
+
transaction.recentBlockhash = web3_js_1.SYSVAR_RECENT_BLOCKHASHES_PUBKEY.toBase58();
|
|
58
|
+
transaction.feePayer = new web3_js_1.PublicKey(from);
|
|
59
|
+
return transaction;
|
|
71
60
|
}
|
|
72
61
|
/**
|
|
73
|
-
* Gets the
|
|
62
|
+
* Gets the transaction for a SPL token transfer
|
|
74
63
|
*
|
|
75
64
|
* @param options - The options for the SPL token transfer
|
|
76
65
|
*
|
|
@@ -95,7 +84,7 @@ async function getSplTransfer({ connection, from, to, mintAddress, amount, }) {
|
|
|
95
84
|
}
|
|
96
85
|
const sourceAta = await (0, spl_token_1.getAssociatedTokenAddress)(mintPubkey, fromPubkey);
|
|
97
86
|
const destinationAta = await (0, spl_token_1.getAssociatedTokenAddress)(mintPubkey, toPubkey);
|
|
98
|
-
const
|
|
87
|
+
const transaction = new web3_js_1.Transaction();
|
|
99
88
|
const sourceAccount = await (0, spl_token_1.getAccount)(connection, sourceAta);
|
|
100
89
|
if (sourceAccount.amount < amount) {
|
|
101
90
|
throw new Error(`Insufficient token balance. Have ${sourceAccount.amount}, need ${amount}`);
|
|
@@ -105,13 +94,11 @@ async function getSplTransfer({ connection, from, to, mintAddress, amount, }) {
|
|
|
105
94
|
await (0, spl_token_1.getAccount)(connection, destinationAta);
|
|
106
95
|
}
|
|
107
96
|
catch {
|
|
108
|
-
|
|
97
|
+
transaction.add((0, spl_token_1.createAssociatedTokenAccountInstruction)(fromPubkey, destinationAta, toPubkey, mintPubkey));
|
|
109
98
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
recentBlockhash: (await connection.getLatestBlockhash()).blockhash,
|
|
115
|
-
}));
|
|
99
|
+
transaction.add((0, spl_token_1.createTransferCheckedInstruction)(sourceAta, mintPubkey, destinationAta, fromPubkey, amount, mintInfo.decimals));
|
|
100
|
+
transaction.recentBlockhash = web3_js_1.SYSVAR_RECENT_BLOCKHASHES_PUBKEY.toBase58();
|
|
101
|
+
transaction.feePayer = new web3_js_1.PublicKey(from);
|
|
102
|
+
return transaction;
|
|
116
103
|
}
|
|
117
104
|
//# sourceMappingURL=transfer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../actions/solana/transfer.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../actions/solana/transfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,15 +20,13 @@ function getOrCreateConnection({ networkOrConnection, }) {
|
|
|
20
20
|
}
|
|
21
21
|
return new web3_js_1.Connection(networkOrConnection === "mainnet"
|
|
22
22
|
? "https://api.mainnet-beta.solana.com"
|
|
23
|
-
:
|
|
24
|
-
? "https://api.devnet.solana.com"
|
|
25
|
-
: "https://api.testnet.solana.com");
|
|
23
|
+
: "https://api.devnet.solana.com");
|
|
26
24
|
}
|
|
27
25
|
/**
|
|
28
26
|
* Get the network of the connected Solana node
|
|
29
27
|
*
|
|
30
28
|
* @param connection - The connection to the Solana network
|
|
31
|
-
* @throws {Error} If the network is not mainnet
|
|
29
|
+
* @throws {Error} If the network is not mainnet or devnet
|
|
32
30
|
*
|
|
33
31
|
* @returns The network of the connected Solana node
|
|
34
32
|
*/
|
|
@@ -40,10 +38,7 @@ async function getConnectedNetwork(connection) {
|
|
|
40
38
|
else if (genesisHash === constants_js_1.GENESIS_HASH_DEVNET) {
|
|
41
39
|
return "devnet";
|
|
42
40
|
}
|
|
43
|
-
|
|
44
|
-
return "testnet";
|
|
45
|
-
}
|
|
46
|
-
throw new Error("Unknown network");
|
|
41
|
+
throw new Error("Unknown or unsupported network");
|
|
47
42
|
}
|
|
48
43
|
/**
|
|
49
44
|
* Get the USDC mint address for the given connection
|
|
@@ -56,11 +51,6 @@ function getUsdcMintAddress(network) {
|
|
|
56
51
|
if (network === "mainnet") {
|
|
57
52
|
return constants_js_1.USDC_MAINNET_MINT_ADDRESS;
|
|
58
53
|
}
|
|
59
|
-
|
|
60
|
-
return constants_js_1.USDC_DEVNET_MINT_ADDRESS;
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
throw new Error("Testnet is not supported for USDC");
|
|
64
|
-
}
|
|
54
|
+
return constants_js_1.USDC_DEVNET_MINT_ADDRESS;
|
|
65
55
|
}
|
|
66
56
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../actions/solana/utils.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../actions/solana/utils.ts"],"names":[],"mappings":";;AAwBA,sDAYC;AAUD,kDAUC;AASD,gDAKC;AAtED,6CAA6C;AAE7C,iDAKwB;AAQxB;;;;;;;;GAQG;AACH,SAAgB,qBAAqB,CAAC,EACpC,mBAAmB,GACU;IAC7B,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,OAAO,IAAI,oBAAU,CACnB,mBAAmB,KAAK,SAAS;QAC/B,CAAC,CAAC,qCAAqC;QACvC,CAAC,CAAC,+BAA+B,CACpC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACI,KAAK,UAAU,mBAAmB,CAAC,UAAsB;IAC9D,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,cAAc,EAAE,CAAC;IAEtD,IAAI,WAAW,KAAK,mCAAoB,EAAE,CAAC;QACzC,OAAO,SAAS,CAAC;IACnB,CAAC;SAAM,IAAI,WAAW,KAAK,kCAAmB,EAAE,CAAC;QAC/C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,OAAgB;IACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,wCAAyB,CAAC;IACnC,CAAC;IACD,OAAO,uCAAwB,CAAC;AAClC,CAAC"}
|
package/_cjs/policies/schema.js
CHANGED
|
@@ -42,9 +42,9 @@ exports.EvmAddressCriterionSchema = zod_2.z.object({
|
|
|
42
42
|
/**
|
|
43
43
|
* Array of EVM addresses to compare against.
|
|
44
44
|
* Each address must be a 0x-prefixed 40-character hexadecimal string.
|
|
45
|
-
* Limited to a maximum of
|
|
45
|
+
* Limited to a maximum of 300 addresses per criterion.
|
|
46
46
|
*/
|
|
47
|
-
addresses: zod_2.z.array(zod_1.Address).max(
|
|
47
|
+
addresses: zod_2.z.array(zod_1.Address).max(300),
|
|
48
48
|
/**
|
|
49
49
|
* The operator to use for evaluating transaction addresses.
|
|
50
50
|
* "in" checks if an address is in the provided list.
|
|
@@ -93,9 +93,9 @@ exports.EvmTypedAddressConditionSchema = zod_2.z.object({
|
|
|
93
93
|
/**
|
|
94
94
|
* Array of EVM addresses to compare against.
|
|
95
95
|
* Each address must be a 0x-prefixed 40-character hexadecimal string.
|
|
96
|
-
* Limited to a maximum of
|
|
96
|
+
* Limited to a maximum of 300 addresses per condition.
|
|
97
97
|
*/
|
|
98
|
-
addresses: zod_2.z.array(zod_1.Address).max(
|
|
98
|
+
addresses: zod_2.z.array(zod_1.Address).max(300),
|
|
99
99
|
/**
|
|
100
100
|
* The operator to use for evaluating addresses.
|
|
101
101
|
* "in" checks if an address is in the provided list.
|
|
@@ -186,9 +186,9 @@ exports.SignEvmTypedDataVerifyingContractCriterionSchema = zod_2.z.object({
|
|
|
186
186
|
/**
|
|
187
187
|
* Array of EVM addresses allowed or disallowed as verifying contracts.
|
|
188
188
|
* Each address must be a 0x-prefixed 40-character hexadecimal string.
|
|
189
|
-
* Limited to a maximum of
|
|
189
|
+
* Limited to a maximum of 300 addresses per criterion.
|
|
190
190
|
*/
|
|
191
|
-
addresses: zod_2.z.array(zod_1.Address).max(
|
|
191
|
+
addresses: zod_2.z.array(zod_1.Address).max(300),
|
|
192
192
|
/**
|
|
193
193
|
* The operator to use for evaluating verifying contract addresses.
|
|
194
194
|
* "in" checks if the verifying contract is in the provided list.
|
package/_cjs/version.js
CHANGED
|
@@ -18,6 +18,11 @@ export async function toNetworkScopedEvmServerAccount(options) {
|
|
|
18
18
|
networkOrNodeUrl: options.network,
|
|
19
19
|
account: options.account,
|
|
20
20
|
});
|
|
21
|
+
/*
|
|
22
|
+
* Determine the actual network name from the resolved chain
|
|
23
|
+
* This handles cases where options.network is an RPC URL
|
|
24
|
+
*/
|
|
25
|
+
const resolvedNetworkName = mapChainToNetwork(chain) ?? options.network;
|
|
21
26
|
const shouldUseApiForSends = chain.id === base.id ||
|
|
22
27
|
chain.id === baseSepolia.id ||
|
|
23
28
|
chain.id === mainnet.id ||
|
|
@@ -82,7 +87,7 @@ export async function toNetworkScopedEvmServerAccount(options) {
|
|
|
82
87
|
return publicClient.waitForTransactionReceipt(waitOptions);
|
|
83
88
|
},
|
|
84
89
|
};
|
|
85
|
-
if (isMethodSupportedOnNetwork("listTokenBalances",
|
|
90
|
+
if (isMethodSupportedOnNetwork("listTokenBalances", resolvedNetworkName)) {
|
|
86
91
|
Object.assign(account, {
|
|
87
92
|
listTokenBalances: async (listTokenBalancesOptions) => {
|
|
88
93
|
return options.account.listTokenBalances({
|
|
@@ -92,7 +97,7 @@ export async function toNetworkScopedEvmServerAccount(options) {
|
|
|
92
97
|
},
|
|
93
98
|
});
|
|
94
99
|
}
|
|
95
|
-
if (isMethodSupportedOnNetwork("requestFaucet",
|
|
100
|
+
if (isMethodSupportedOnNetwork("requestFaucet", resolvedNetworkName)) {
|
|
96
101
|
Object.assign(account, {
|
|
97
102
|
requestFaucet: async (faucetOptions) => {
|
|
98
103
|
return options.account.requestFaucet({
|
|
@@ -102,7 +107,7 @@ export async function toNetworkScopedEvmServerAccount(options) {
|
|
|
102
107
|
},
|
|
103
108
|
});
|
|
104
109
|
}
|
|
105
|
-
if (isMethodSupportedOnNetwork("quoteFund",
|
|
110
|
+
if (isMethodSupportedOnNetwork("quoteFund", resolvedNetworkName)) {
|
|
106
111
|
Object.assign(account, {
|
|
107
112
|
quoteFund: async (quoteFundOptions) => {
|
|
108
113
|
return options.account.quoteFund({
|
|
@@ -111,7 +116,7 @@ export async function toNetworkScopedEvmServerAccount(options) {
|
|
|
111
116
|
},
|
|
112
117
|
});
|
|
113
118
|
}
|
|
114
|
-
if (isMethodSupportedOnNetwork("fund",
|
|
119
|
+
if (isMethodSupportedOnNetwork("fund", resolvedNetworkName)) {
|
|
115
120
|
Object.assign(account, {
|
|
116
121
|
fund: async (fundOptions) => {
|
|
117
122
|
return options.account.fund({
|
|
@@ -123,14 +128,14 @@ export async function toNetworkScopedEvmServerAccount(options) {
|
|
|
123
128
|
},
|
|
124
129
|
});
|
|
125
130
|
}
|
|
126
|
-
if (isMethodSupportedOnNetwork("quoteSwap",
|
|
131
|
+
if (isMethodSupportedOnNetwork("quoteSwap", resolvedNetworkName)) {
|
|
127
132
|
Object.assign(account, {
|
|
128
133
|
quoteSwap: async (quoteSwapOptions) => {
|
|
129
134
|
return options.account.quoteSwap(quoteSwapOptions);
|
|
130
135
|
},
|
|
131
136
|
});
|
|
132
137
|
}
|
|
133
|
-
if (isMethodSupportedOnNetwork("swap",
|
|
138
|
+
if (isMethodSupportedOnNetwork("swap", resolvedNetworkName)) {
|
|
134
139
|
Object.assign(account, {
|
|
135
140
|
swap: async (swapOptions) => {
|
|
136
141
|
return options.account.swap(swapOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toNetworkScopedEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toNetworkScopedEvmServerAccount.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"toNetworkScopedEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toNetworkScopedEvmServerAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { getMint, getAssociatedTokenAddress, getAccount, createAssociatedTokenAccountInstruction, createTransferCheckedInstruction, } from "@solana/spl-token";
|
|
2
|
-
import {
|
|
2
|
+
import { PublicKey, SystemProgram, SYSVAR_RECENT_BLOCKHASHES_PUBKEY, Transaction, } from "@solana/web3.js";
|
|
3
|
+
import { sendTransaction } from "./sendTransaction.js";
|
|
3
4
|
import { getConnectedNetwork, getOrCreateConnection, getUsdcMintAddress, } from "./utils.js";
|
|
4
5
|
/**
|
|
5
6
|
* Transfers SOL or SPL tokens between accounts
|
|
@@ -11,9 +12,9 @@ import { getConnectedNetwork, getOrCreateConnection, getUsdcMintAddress, } from
|
|
|
11
12
|
*/
|
|
12
13
|
export async function transfer(apiClient, options) {
|
|
13
14
|
const connection = getOrCreateConnection({ networkOrConnection: options.network });
|
|
15
|
+
const connectedNetwork = await getConnectedNetwork(connection);
|
|
14
16
|
const tx = options.token === "sol"
|
|
15
17
|
? await getNativeTransfer({
|
|
16
|
-
connection,
|
|
17
18
|
from: options.from,
|
|
18
19
|
to: options.to,
|
|
19
20
|
amount: options.amount,
|
|
@@ -22,52 +23,40 @@ export async function transfer(apiClient, options) {
|
|
|
22
23
|
connection,
|
|
23
24
|
from: options.from,
|
|
24
25
|
to: options.to,
|
|
25
|
-
mintAddress: options.token === "usdc"
|
|
26
|
-
? getUsdcMintAddress(await getConnectedNetwork(connection))
|
|
27
|
-
: options.token,
|
|
26
|
+
mintAddress: options.token === "usdc" ? getUsdcMintAddress(connectedNetwork) : options.token,
|
|
28
27
|
amount: options.amount,
|
|
29
28
|
});
|
|
30
|
-
const serializedTx = Buffer.from(tx.serialize()).toString("base64");
|
|
31
|
-
const
|
|
29
|
+
const serializedTx = Buffer.from(tx.serialize({ requireAllSignatures: false })).toString("base64");
|
|
30
|
+
const signature = await sendTransaction(apiClient, {
|
|
31
|
+
network: connectedNetwork === "mainnet" ? "solana" : "solana-devnet",
|
|
32
32
|
transaction: serializedTx,
|
|
33
33
|
});
|
|
34
|
-
|
|
35
|
-
const signature = await connection.sendRawTransaction(decodedSignedTx, {
|
|
36
|
-
skipPreflight: false,
|
|
37
|
-
maxRetries: 3,
|
|
38
|
-
});
|
|
39
|
-
return { signature };
|
|
34
|
+
return signature;
|
|
40
35
|
}
|
|
41
36
|
/**
|
|
42
|
-
* Gets the
|
|
37
|
+
* Gets the transaction for a native SOL transfer
|
|
43
38
|
*
|
|
44
39
|
* @param options - The options for the native SOL transfer
|
|
45
40
|
*
|
|
46
|
-
* @param options.connection - The Solana connection
|
|
47
41
|
* @param options.from - The source address
|
|
48
42
|
* @param options.to - The destination address
|
|
49
43
|
* @param options.amount - The amount to transfer
|
|
50
44
|
*
|
|
51
45
|
* @returns The native SOL transfer transaction
|
|
52
46
|
*/
|
|
53
|
-
async function getNativeTransfer({
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
payerKey: new PublicKey(from),
|
|
64
|
-
recentBlockhash: blockhash,
|
|
65
|
-
instructions,
|
|
66
|
-
}).compileToV0Message();
|
|
67
|
-
return new VersionedTransaction(messageV0);
|
|
47
|
+
async function getNativeTransfer({ from, to, amount, }) {
|
|
48
|
+
const transaction = new Transaction();
|
|
49
|
+
transaction.add(SystemProgram.transfer({
|
|
50
|
+
fromPubkey: new PublicKey(from),
|
|
51
|
+
toPubkey: new PublicKey(to),
|
|
52
|
+
lamports: amount,
|
|
53
|
+
}));
|
|
54
|
+
transaction.recentBlockhash = SYSVAR_RECENT_BLOCKHASHES_PUBKEY.toBase58();
|
|
55
|
+
transaction.feePayer = new PublicKey(from);
|
|
56
|
+
return transaction;
|
|
68
57
|
}
|
|
69
58
|
/**
|
|
70
|
-
* Gets the
|
|
59
|
+
* Gets the transaction for a SPL token transfer
|
|
71
60
|
*
|
|
72
61
|
* @param options - The options for the SPL token transfer
|
|
73
62
|
*
|
|
@@ -92,7 +81,7 @@ async function getSplTransfer({ connection, from, to, mintAddress, amount, }) {
|
|
|
92
81
|
}
|
|
93
82
|
const sourceAta = await getAssociatedTokenAddress(mintPubkey, fromPubkey);
|
|
94
83
|
const destinationAta = await getAssociatedTokenAddress(mintPubkey, toPubkey);
|
|
95
|
-
const
|
|
84
|
+
const transaction = new Transaction();
|
|
96
85
|
const sourceAccount = await getAccount(connection, sourceAta);
|
|
97
86
|
if (sourceAccount.amount < amount) {
|
|
98
87
|
throw new Error(`Insufficient token balance. Have ${sourceAccount.amount}, need ${amount}`);
|
|
@@ -102,13 +91,11 @@ async function getSplTransfer({ connection, from, to, mintAddress, amount, }) {
|
|
|
102
91
|
await getAccount(connection, destinationAta);
|
|
103
92
|
}
|
|
104
93
|
catch {
|
|
105
|
-
|
|
94
|
+
transaction.add(createAssociatedTokenAccountInstruction(fromPubkey, destinationAta, toPubkey, mintPubkey));
|
|
106
95
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
recentBlockhash: (await connection.getLatestBlockhash()).blockhash,
|
|
112
|
-
}));
|
|
96
|
+
transaction.add(createTransferCheckedInstruction(sourceAta, mintPubkey, destinationAta, fromPubkey, amount, mintInfo.decimals));
|
|
97
|
+
transaction.recentBlockhash = SYSVAR_RECENT_BLOCKHASHES_PUBKEY.toBase58();
|
|
98
|
+
transaction.feePayer = new PublicKey(from);
|
|
99
|
+
return transaction;
|
|
113
100
|
}
|
|
114
101
|
//# sourceMappingURL=transfer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../actions/solana/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,yBAAyB,EACzB,UAAU,EACV,uCAAuC,EACvC,gCAAgC,GACjC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"transfer.js","sourceRoot":"","sources":["../../../actions/solana/transfer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Connection } from "@solana/web3.js";
|
|
2
|
-
import { GENESIS_HASH_MAINNET,
|
|
2
|
+
import { GENESIS_HASH_MAINNET, GENESIS_HASH_DEVNET, USDC_MAINNET_MINT_ADDRESS, USDC_DEVNET_MINT_ADDRESS, } from "./constants.js";
|
|
3
3
|
/**
|
|
4
4
|
* Get a connection to the Solana network
|
|
5
5
|
*
|
|
@@ -15,15 +15,13 @@ export function getOrCreateConnection({ networkOrConnection, }) {
|
|
|
15
15
|
}
|
|
16
16
|
return new Connection(networkOrConnection === "mainnet"
|
|
17
17
|
? "https://api.mainnet-beta.solana.com"
|
|
18
|
-
:
|
|
19
|
-
? "https://api.devnet.solana.com"
|
|
20
|
-
: "https://api.testnet.solana.com");
|
|
18
|
+
: "https://api.devnet.solana.com");
|
|
21
19
|
}
|
|
22
20
|
/**
|
|
23
21
|
* Get the network of the connected Solana node
|
|
24
22
|
*
|
|
25
23
|
* @param connection - The connection to the Solana network
|
|
26
|
-
* @throws {Error} If the network is not mainnet
|
|
24
|
+
* @throws {Error} If the network is not mainnet or devnet
|
|
27
25
|
*
|
|
28
26
|
* @returns The network of the connected Solana node
|
|
29
27
|
*/
|
|
@@ -35,10 +33,7 @@ export async function getConnectedNetwork(connection) {
|
|
|
35
33
|
else if (genesisHash === GENESIS_HASH_DEVNET) {
|
|
36
34
|
return "devnet";
|
|
37
35
|
}
|
|
38
|
-
|
|
39
|
-
return "testnet";
|
|
40
|
-
}
|
|
41
|
-
throw new Error("Unknown network");
|
|
36
|
+
throw new Error("Unknown or unsupported network");
|
|
42
37
|
}
|
|
43
38
|
/**
|
|
44
39
|
* Get the USDC mint address for the given connection
|
|
@@ -51,11 +46,6 @@ export function getUsdcMintAddress(network) {
|
|
|
51
46
|
if (network === "mainnet") {
|
|
52
47
|
return USDC_MAINNET_MINT_ADDRESS;
|
|
53
48
|
}
|
|
54
|
-
|
|
55
|
-
return USDC_DEVNET_MINT_ADDRESS;
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
throw new Error("Testnet is not supported for USDC");
|
|
59
|
-
}
|
|
49
|
+
return USDC_DEVNET_MINT_ADDRESS;
|
|
60
50
|
}
|
|
61
51
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../actions/solana/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EACL,oBAAoB,EACpB,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../actions/solana/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AAQxB;;;;;;;;GAQG;AACH,MAAM,UAAU,qBAAqB,CAAC,EACpC,mBAAmB,GACU;IAC7B,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE,CAAC;QAC5C,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,OAAO,IAAI,UAAU,CACnB,mBAAmB,KAAK,SAAS;QAC/B,CAAC,CAAC,qCAAqC;QACvC,CAAC,CAAC,+BAA+B,CACpC,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,UAAsB;IAC9D,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,cAAc,EAAE,CAAC;IAEtD,IAAI,WAAW,KAAK,oBAAoB,EAAE,CAAC;QACzC,OAAO,SAAS,CAAC;IACnB,CAAC;SAAM,IAAI,WAAW,KAAK,mBAAmB,EAAE,CAAC;QAC/C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACpD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,yBAAyB,CAAC;IACnC,CAAC;IACD,OAAO,wBAAwB,CAAC;AAClC,CAAC"}
|