@coinbase/cdp-sdk 1.27.0 → 1.29.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 +18 -0
- package/_cjs/accounts/evm/toEvmServerAccount.js +1 -1
- package/_cjs/accounts/evm/toEvmServerAccount.js.map +1 -1
- package/_cjs/accounts/evm/toEvmSmartAccount.js +1 -1
- package/_cjs/accounts/evm/toEvmSmartAccount.js.map +1 -1
- package/_cjs/accounts/evm/toNetworkScopedEvmServerAccount.js +11 -6
- package/_cjs/accounts/evm/toNetworkScopedEvmServerAccount.js.map +1 -1
- package/_cjs/accounts/evm/toNetworkScopedEvmSmartAccount.js +1 -1
- package/_cjs/accounts/evm/toNetworkScopedEvmSmartAccount.js.map +1 -1
- package/_cjs/accounts/solana/toSolanaAccount.js +30 -0
- package/_cjs/accounts/solana/toSolanaAccount.js.map +1 -1
- package/_cjs/actions/Quote.js +106 -0
- package/_cjs/actions/Quote.js.map +1 -0
- package/_cjs/actions/evm/fund/fund.js +5 -5
- package/_cjs/actions/evm/fund/fund.js.map +1 -1
- package/_cjs/actions/evm/fund/quoteFund.js +7 -7
- package/_cjs/actions/evm/fund/quoteFund.js.map +1 -1
- package/_cjs/actions/evm/transfer/accountTransferStrategy.js +1 -0
- package/_cjs/actions/evm/transfer/accountTransferStrategy.js.map +1 -1
- package/_cjs/actions/solana/fund/fund.js +50 -0
- package/_cjs/actions/solana/fund/fund.js.map +1 -0
- package/_cjs/actions/solana/fund/quoteFund.js +47 -0
- package/_cjs/actions/solana/fund/quoteFund.js.map +1 -0
- 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/{_esm/actions/evm/fund → _cjs/actions}/types.js.map +1 -1
- package/_cjs/actions/{evm/fund/waitForFundOperationReceipt.js → waitForFundOperationReceipt.js} +2 -2
- package/_cjs/actions/waitForFundOperationReceipt.js.map +1 -0
- package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +15 -6
- package/_cjs/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
- package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js +4 -3
- package/_cjs/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js.map +1 -1
- package/_cjs/policies/schema.js +6 -6
- package/_cjs/version.js +1 -1
- package/_esm/accounts/evm/toEvmServerAccount.js +1 -1
- package/_esm/accounts/evm/toEvmServerAccount.js.map +1 -1
- package/_esm/accounts/evm/toEvmSmartAccount.js +1 -1
- package/_esm/accounts/evm/toEvmSmartAccount.js.map +1 -1
- package/_esm/accounts/evm/toNetworkScopedEvmServerAccount.js +11 -6
- package/_esm/accounts/evm/toNetworkScopedEvmServerAccount.js.map +1 -1
- package/_esm/accounts/evm/toNetworkScopedEvmSmartAccount.js +1 -1
- package/_esm/accounts/evm/toNetworkScopedEvmSmartAccount.js.map +1 -1
- package/_esm/accounts/solana/toSolanaAccount.js +30 -0
- package/_esm/accounts/solana/toSolanaAccount.js.map +1 -1
- package/_esm/actions/Quote.js +101 -0
- package/_esm/actions/Quote.js.map +1 -0
- package/_esm/actions/evm/fund/fund.js +5 -5
- package/_esm/actions/evm/fund/fund.js.map +1 -1
- package/_esm/actions/evm/fund/quoteFund.js +7 -7
- package/_esm/actions/evm/fund/quoteFund.js.map +1 -1
- package/_esm/actions/evm/transfer/accountTransferStrategy.js +1 -0
- package/_esm/actions/evm/transfer/accountTransferStrategy.js.map +1 -1
- package/_esm/actions/solana/fund/fund.js +47 -0
- package/_esm/actions/solana/fund/fund.js.map +1 -0
- package/_esm/actions/solana/fund/quoteFund.js +44 -0
- package/_esm/actions/solana/fund/quoteFund.js.map +1 -0
- 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/{_cjs/actions/evm/fund → _esm/actions}/types.js.map +1 -1
- package/_esm/actions/{evm/fund/waitForFundOperationReceipt.js → waitForFundOperationReceipt.js} +2 -2
- package/_esm/actions/waitForFundOperationReceipt.js.map +1 -0
- package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js +14 -5
- package/_esm/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.js.map +1 -1
- package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.js +4 -3
- package/_esm/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.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/accounts/evm/types.d.ts +9 -9
- package/_types/accounts/evm/types.d.ts.map +1 -1
- package/_types/accounts/solana/toSolanaAccount.d.ts.map +1 -1
- package/_types/actions/Quote.d.ts +97 -0
- package/_types/actions/Quote.d.ts.map +1 -0
- package/_types/actions/evm/fund/fund.d.ts +3 -7
- package/_types/actions/evm/fund/fund.d.ts.map +1 -1
- package/_types/actions/evm/fund/quoteFund.d.ts +4 -7
- package/_types/actions/evm/fund/quoteFund.d.ts.map +1 -1
- package/_types/actions/evm/transfer/accountTransferStrategy.d.ts.map +1 -1
- package/_types/actions/evm/types.d.ts +7 -7
- package/_types/actions/evm/types.d.ts.map +1 -1
- package/_types/actions/solana/fund/fund.d.ts +19 -0
- package/_types/actions/solana/fund/fund.d.ts.map +1 -0
- package/_types/actions/solana/fund/quoteFund.d.ts +20 -0
- package/_types/actions/solana/fund/quoteFund.d.ts.map +1 -0
- package/_types/actions/solana/transfer.d.ts.map +1 -1
- package/_types/actions/solana/types.d.ts +61 -0
- package/_types/actions/solana/types.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/actions/types.d.ts +37 -0
- package/_types/actions/types.d.ts.map +1 -0
- package/_types/actions/{evm/fund/waitForFundOperationReceipt.d.ts → waitForFundOperationReceipt.d.ts} +2 -2
- package/_types/actions/waitForFundOperationReceipt.d.ts.map +1 -0
- package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts +26 -22
- package/_types/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.d.ts.map +1 -1
- package/_types/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.d.ts.map +1 -1
- package/_types/policies/schema.d.ts +34 -34
- package/_types/version.d.ts +1 -1
- package/accounts/evm/toEvmServerAccount.ts +11 -11
- package/accounts/evm/toEvmSmartAccount.ts +11 -11
- package/accounts/evm/toNetworkScopedEvmServerAccount.ts +17 -11
- package/accounts/evm/toNetworkScopedEvmSmartAccount.ts +6 -6
- package/accounts/evm/types.ts +16 -12
- package/accounts/solana/toSolanaAccount.ts +41 -0
- package/actions/Quote.ts +154 -0
- package/actions/evm/fund/fund.ts +10 -14
- package/actions/evm/fund/quoteFund.ts +13 -16
- package/actions/evm/transfer/accountTransferStrategy.ts +2 -0
- package/actions/evm/types.ts +7 -7
- package/actions/solana/fund/fund.ts +71 -0
- package/actions/solana/fund/quoteFund.ts +77 -0
- package/actions/solana/transfer.ts +33 -52
- package/actions/solana/types.ts +69 -0
- package/actions/solana/utils.ts +5 -13
- package/actions/types.ts +39 -0
- package/actions/{evm/fund/waitForFundOperationReceipt.ts → waitForFundOperationReceipt.ts} +2 -2
- package/openapi-client/generated/coinbaseDeveloperPlatformAPIs.schemas.ts +30 -30
- package/openapi-client/generated/evm-smart-accounts/evm-smart-accounts.msw.ts +4 -3
- package/package.json +1 -1
- package/policies/schema.ts +6 -6
- package/version.ts +1 -1
- package/_cjs/actions/evm/fund/Quote.js +0 -63
- package/_cjs/actions/evm/fund/Quote.js.map +0 -1
- package/_cjs/actions/evm/fund/waitForFundOperationReceipt.js.map +0 -1
- package/_esm/actions/evm/fund/Quote.js +0 -59
- package/_esm/actions/evm/fund/Quote.js.map +0 -1
- package/_esm/actions/evm/fund/waitForFundOperationReceipt.js.map +0 -1
- package/_types/actions/evm/fund/Quote.d.ts +0 -51
- package/_types/actions/evm/fund/Quote.d.ts.map +0 -1
- package/_types/actions/evm/fund/types.d.ts +0 -16
- package/_types/actions/evm/fund/types.d.ts.map +0 -1
- package/_types/actions/evm/fund/waitForFundOperationReceipt.d.ts.map +0 -1
- package/actions/evm/fund/Quote.ts +0 -83
- package/actions/evm/fund/types.ts +0 -16
- /package/_cjs/actions/{evm/fund/types.js → types.js} +0 -0
- /package/_esm/actions/{evm/fund/types.js → types.js} +0 -0
|
@@ -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":"AACA,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAElE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAClF,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AA8B/C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,+BAA+B,CACnD,OAAsE;IAEtE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,MAAM,kBAAkB,CAAC;QACrE,gBAAgB,EAAE,OAAO,CAAC,OAAO;QACjC,OAAO,EAAE,OAAO,CAAC,OAAO;KACzB,CAAC,CAAC;IAEH,MAAM,oBAAoB,GACxB,KAAK,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE;QACpB,KAAK,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE;QAC3B,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE;QACvB,KAAK,CAAC,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC;IAE1B,MAAM,OAAO,GAAG;QACd,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,OAAkB;QAC3C,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,WAAW;QACxC,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;QAC1B,eAAe,EAAE,OAAO,CAAC,OAAO,CAAC,eAAe;QAChD,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,aAAa;QAC5C,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI;QAC1B,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;QAClC,eAAe,EAAE,KAAK,EAAE,MAA2D,EAAE,EAAE;YACrF,IAAI,oBAAoB,EAAE,CAAC;gBACzB,OAAO,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC;oBACrC,GAAG,MAAM;oBACT,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAkC;iBACnE,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,WAAW,CAAC;oBACpB,MAAM,EAAE,kBAAkB;oBAC1B,WAAW,EAAE,YAAY;oBACzB,UAAU,EAAE;wBACV,OAAO,EAAE,OAAO,CAAC,OAAO;qBACzB;iBACF,CAAC,CAAC;gBAEH,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,eAAe,CAC7C,MAAM,CAAC,WAAwC,CAChD,CAAC;gBACF,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;YACnC,CAAC;QACH,CAAC;QACD,QAAQ,EAAE,KAAK,EAAE,YAA0D,EAAE,EAAE;YAC7E,IAAI,oBAAoB,EAAE,CAAC;gBACzB,OAAO,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAC9B,GAAG,YAAY;oBACf,OAAO,EAAE,iBAAiB,CAAC,KAAK,CAAkC;iBACnE,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,SAAS,CAAC,WAAW,CAAC;oBACpB,MAAM,EAAE,UAAU;oBAClB,WAAW,EAAE,YAAY;oBACzB,UAAU,EAAE;wBACV,OAAO,EAAE,OAAO,CAAC,OAAO;qBACzB;iBACF,CAAC,CAAC;gBAEH,OAAO,gBAAgB,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC;YAC/D,CAAC;QACH,CAAC;QACD,yBAAyB,EAAE,KAAK,EAC9B,WAAoE,EACpE,EAAE;YACF,SAAS,CAAC,WAAW,CAAC;gBACpB,MAAM,EAAE,8BAA8B;gBACtC,WAAW,EAAE,YAAY;aAC1B,CAAC,CAAC;YAEH,IAAI,iBAAiB,IAAI,WAAW,EAAE,CAAC;gBACrC,OAAO,YAAY,CAAC,yBAAyB,CAAC;oBAC5C,IAAI,EAAE,WAAW,CAAC,eAAe;iBAClC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,YAAY,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;QAC7D,CAAC;KACwC,CAAC;IAE5C,IAAI,0BAA0B,CAAC,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"toNetworkScopedEvmServerAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toNetworkScopedEvmServerAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@ import { getBaseNodeRpcUrl } from "./getBaseNodeRpcUrl.js";
|
|
|
2
2
|
import { isMethodSupportedOnNetwork } from "./networkCapabilities.js";
|
|
3
3
|
import { fund } from "../../actions/evm/fund/fund.js";
|
|
4
4
|
import { quoteFund } from "../../actions/evm/fund/quoteFund.js";
|
|
5
|
-
import { waitForFundOperationReceipt } from "../../actions/evm/fund/waitForFundOperationReceipt.js";
|
|
6
5
|
import { getUserOperation } from "../../actions/evm/getUserOperation.js";
|
|
7
6
|
import { listTokenBalances } from "../../actions/evm/listTokenBalances.js";
|
|
8
7
|
import { requestFaucet } from "../../actions/evm/requestFaucet.js";
|
|
@@ -12,6 +11,7 @@ import { sendSwapOperation } from "../../actions/evm/swap/sendSwapOperation.js";
|
|
|
12
11
|
import { smartAccountTransferStrategy } from "../../actions/evm/transfer/smartAccountTransferStrategy.js";
|
|
13
12
|
import { transfer } from "../../actions/evm/transfer/transfer.js";
|
|
14
13
|
import { waitForUserOperation } from "../../actions/evm/waitForUserOperation.js";
|
|
14
|
+
import { waitForFundOperationReceipt } from "../../actions/waitForFundOperationReceipt.js";
|
|
15
15
|
import { Analytics } from "../../analytics.js";
|
|
16
16
|
/**
|
|
17
17
|
* Creates a NetworkScopedEvmSmartAccount instance from an existing EvmSmartAccount and owner.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toNetworkScopedEvmSmartAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toNetworkScopedEvmSmartAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,IAAI,EAAE,MAAM,gCAAgC,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"toNetworkScopedEvmSmartAccount.js","sourceRoot":"","sources":["../../../accounts/evm/toNetworkScopedEvmSmartAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { fund } from "../../actions/solana/fund/fund.js";
|
|
2
|
+
import { quoteFund } from "../../actions/solana/fund/quoteFund.js";
|
|
1
3
|
import { requestFaucet } from "../../actions/solana/requestFaucet.js";
|
|
2
4
|
import { signMessage } from "../../actions/solana/signMessage.js";
|
|
3
5
|
import { signTransaction } from "../../actions/solana/signTransaction.js";
|
|
4
6
|
import { transfer } from "../../actions/solana/transfer.js";
|
|
7
|
+
import { waitForFundOperationReceipt, } from "../../actions/waitForFundOperationReceipt.js";
|
|
5
8
|
import { Analytics } from "../../analytics.js";
|
|
6
9
|
/**
|
|
7
10
|
* Creates a Solana account instance with actions from an existing Solana account.
|
|
@@ -60,6 +63,33 @@ export function toSolanaAccount(apiClient, options) {
|
|
|
60
63
|
from: account.address,
|
|
61
64
|
});
|
|
62
65
|
},
|
|
66
|
+
async quoteFund(options) {
|
|
67
|
+
Analytics.trackAction({
|
|
68
|
+
action: "quote_fund",
|
|
69
|
+
accountType: "solana",
|
|
70
|
+
});
|
|
71
|
+
return quoteFund(apiClient, {
|
|
72
|
+
...options,
|
|
73
|
+
address: account.address,
|
|
74
|
+
});
|
|
75
|
+
},
|
|
76
|
+
async fund(options) {
|
|
77
|
+
Analytics.trackAction({
|
|
78
|
+
action: "fund",
|
|
79
|
+
accountType: "solana",
|
|
80
|
+
});
|
|
81
|
+
return fund(apiClient, {
|
|
82
|
+
...options,
|
|
83
|
+
address: account.address,
|
|
84
|
+
});
|
|
85
|
+
},
|
|
86
|
+
async waitForFundOperationReceipt(options) {
|
|
87
|
+
Analytics.trackAction({
|
|
88
|
+
action: "wait_for_fund_operation_receipt",
|
|
89
|
+
accountType: "solana",
|
|
90
|
+
});
|
|
91
|
+
return waitForFundOperationReceipt(apiClient, options);
|
|
92
|
+
},
|
|
63
93
|
};
|
|
64
94
|
return account;
|
|
65
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toSolanaAccount.js","sourceRoot":"","sources":["../../../accounts/solana/toSolanaAccount.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"toSolanaAccount.js","sourceRoot":"","sources":["../../../accounts/solana/toSolanaAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class representing a funding quote that can be executed.
|
|
3
|
+
*/
|
|
4
|
+
class BaseQuote {
|
|
5
|
+
/** Quote for the transfer. */
|
|
6
|
+
quoteId;
|
|
7
|
+
/** The amount in fiat currency. */
|
|
8
|
+
fiatAmount;
|
|
9
|
+
/** The fiat currency. */
|
|
10
|
+
fiatCurrency;
|
|
11
|
+
/** The amount in the token to transfer. */
|
|
12
|
+
tokenAmount;
|
|
13
|
+
/** The token to transfer. */
|
|
14
|
+
token;
|
|
15
|
+
/** Fees in the token to transfer. */
|
|
16
|
+
fees;
|
|
17
|
+
apiClient;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a new BaseQuote instance.
|
|
20
|
+
*
|
|
21
|
+
* @param apiClient - The API client.
|
|
22
|
+
* @param quoteId - The quote ID.
|
|
23
|
+
* @param fiatAmount - The amount in fiat currency.
|
|
24
|
+
* @param fiatCurrency - The fiat currency.
|
|
25
|
+
* @param tokenAmount - The amount in the token to transfer.
|
|
26
|
+
* @param token - The token to transfer.
|
|
27
|
+
* @param fees - Fees for the transfer.
|
|
28
|
+
*/
|
|
29
|
+
constructor(apiClient, quoteId, fiatAmount, fiatCurrency, tokenAmount, token, fees) {
|
|
30
|
+
this.apiClient = apiClient;
|
|
31
|
+
this.quoteId = quoteId;
|
|
32
|
+
this.fiatAmount = fiatAmount;
|
|
33
|
+
this.fiatCurrency = fiatCurrency;
|
|
34
|
+
this.tokenAmount = tokenAmount;
|
|
35
|
+
this.token = token;
|
|
36
|
+
this.fees = fees;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Executes the quote to perform the actual fund transfer.
|
|
40
|
+
*
|
|
41
|
+
* @returns A promise that resolves to the result of the executed quote.
|
|
42
|
+
*/
|
|
43
|
+
async execute() {
|
|
44
|
+
const transfer = await this.apiClient.executePaymentTransferQuote(this.quoteId);
|
|
45
|
+
return {
|
|
46
|
+
id: transfer.id,
|
|
47
|
+
network: transfer.target.network,
|
|
48
|
+
targetAmount: transfer.targetAmount,
|
|
49
|
+
targetCurrency: transfer.targetCurrency,
|
|
50
|
+
status: transfer.status,
|
|
51
|
+
transactionHash: transfer.transactionHash,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* A class representing an EVM funding quote that can be executed.
|
|
57
|
+
*/
|
|
58
|
+
export class EvmQuote extends BaseQuote {
|
|
59
|
+
/** Network to transfer the funds to (EVM networks). */
|
|
60
|
+
network;
|
|
61
|
+
/**
|
|
62
|
+
* Creates a new EvmQuote instance.
|
|
63
|
+
*
|
|
64
|
+
* @param apiClient - The API client.
|
|
65
|
+
* @param quoteId - The quote ID.
|
|
66
|
+
* @param network - The EVM network to transfer funds to.
|
|
67
|
+
* @param fiatAmount - The amount in fiat currency.
|
|
68
|
+
* @param fiatCurrency - The fiat currency.
|
|
69
|
+
* @param tokenAmount - The amount in the token to transfer.
|
|
70
|
+
* @param token - The token to transfer.
|
|
71
|
+
* @param fees - Fees for the transfer.
|
|
72
|
+
*/
|
|
73
|
+
constructor(apiClient, quoteId, network, fiatAmount, fiatCurrency, tokenAmount, token, fees) {
|
|
74
|
+
super(apiClient, quoteId, fiatAmount, fiatCurrency, tokenAmount, token, fees);
|
|
75
|
+
this.network = network;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* A class representing a Solana funding quote that can be executed.
|
|
80
|
+
*/
|
|
81
|
+
export class SolanaQuote extends BaseQuote {
|
|
82
|
+
/** Network to transfer the funds to (Solana). */
|
|
83
|
+
network;
|
|
84
|
+
/**
|
|
85
|
+
* Creates a new SolanaQuote instance.
|
|
86
|
+
*
|
|
87
|
+
* @param apiClient - The API client.
|
|
88
|
+
* @param quoteId - The quote ID.
|
|
89
|
+
* @param network - The Solana network to transfer funds to.
|
|
90
|
+
* @param fiatAmount - The amount in fiat currency.
|
|
91
|
+
* @param fiatCurrency - The fiat currency.
|
|
92
|
+
* @param tokenAmount - The amount in the token to transfer.
|
|
93
|
+
* @param token - The token to transfer.
|
|
94
|
+
* @param fees - Fees for the transfer.
|
|
95
|
+
*/
|
|
96
|
+
constructor(apiClient, quoteId, network, fiatAmount, fiatCurrency, tokenAmount, token, fees) {
|
|
97
|
+
super(apiClient, quoteId, fiatAmount, fiatCurrency, tokenAmount, token, fees);
|
|
98
|
+
this.network = network;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=Quote.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Quote.js","sourceRoot":"","sources":["../../actions/Quote.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAe,SAAS;IACtB,8BAA8B;IACvB,OAAO,CAAS;IACvB,mCAAmC;IAC5B,UAAU,CAAS;IAC1B,yBAAyB;IAClB,YAAY,CAAS;IAC5B,2CAA2C;IACpC,WAAW,CAAS;IAC3B,6BAA6B;IACtB,KAAK,CAAS;IACrB,qCAAqC;IAC9B,IAAI,CAKP;IAEM,SAAS,CAAuB;IAE1C;;;;;;;;;;OAUG;IACH,YACE,SAA+B,EAC/B,OAAe,EACf,UAAkB,EAClB,YAAoB,EACpB,WAAmB,EACnB,KAAa,EACb,IAIG;QAEH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,2BAA2B,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhF,OAAO;YACL,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO;YAChC,YAAY,EAAE,QAAQ,CAAC,YAAY;YACnC,cAAc,EAAE,QAAQ,CAAC,cAAc;YACvC,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,eAAe,EAAE,QAAQ,CAAC,eAAe;SAC1C,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,QAAS,SAAQ,SAAS;IACrC,uDAAuD;IAChD,OAAO,CAAsB;IAEpC;;;;;;;;;;;OAWG;IACH,YACE,SAA+B,EAC/B,OAAe,EACf,OAA4B,EAC5B,UAAkB,EAClB,YAAoB,EACpB,WAAmB,EACnB,KAAa,EACb,IAIG;QAEH,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,WAAY,SAAQ,SAAS;IACxC,iDAAiD;IAC1C,OAAO,CAAW;IAEzB;;;;;;;;;;;OAWG;IACH,YACE,SAA+B,EAC/B,OAAe,EACf,OAAiB,EACjB,UAAkB,EAClB,YAAoB,EACpB,WAAmB,EACnB,KAAa,EACb,IAIG;QAEH,KAAK,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9E,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -10,16 +10,16 @@ import { CreatePaymentTransferQuoteBodySourceType, CreatePaymentTransferQuoteBod
|
|
|
10
10
|
* @returns A promise that resolves to the fund operation result.
|
|
11
11
|
*/
|
|
12
12
|
export async function fund(apiClient, options) {
|
|
13
|
-
const paymentMethods = await apiClient.getPaymentMethods();
|
|
14
|
-
const cardPaymentMethod = paymentMethods.find(method => method.type === "card" && method.actions.includes("source"));
|
|
15
|
-
if (!cardPaymentMethod) {
|
|
16
|
-
throw new Error("No card found to fund account");
|
|
17
|
-
}
|
|
18
13
|
if (options.token !== "eth" && options.token !== "usdc") {
|
|
19
14
|
throw new UserInputValidationError("Invalid token, must be eth or usdc");
|
|
20
15
|
}
|
|
21
16
|
const decimals = options.token === "eth" ? 18 : 6;
|
|
22
17
|
const amount = formatUnits(options.amount, decimals);
|
|
18
|
+
const paymentMethods = await apiClient.getPaymentMethods();
|
|
19
|
+
const cardPaymentMethod = paymentMethods.find(method => method.type === "card" && method.actions.includes("source"));
|
|
20
|
+
if (!cardPaymentMethod) {
|
|
21
|
+
throw new Error("No card found to fund account");
|
|
22
|
+
}
|
|
23
23
|
const response = await apiClient.createPaymentTransferQuote({
|
|
24
24
|
sourceType: CreatePaymentTransferQuoteBodySourceType.payment_method,
|
|
25
25
|
source: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fund.js","sourceRoot":"","sources":["../../../../actions/evm/fund/fund.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"fund.js","sourceRoot":"","sources":["../../../../actions/evm/fund/fund.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,wCAAwC,EACxC,wCAAwC,GAEzC,MAAM,kCAAkC,CAAC;AAa1C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,SAA+B,EAC/B,OAAuB;IAEvB,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QACxD,MAAM,IAAI,wBAAwB,CAAC,oCAAoC,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAErD,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAC3D,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAC3C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACtE,CAAC;IAEF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC;QAC1D,UAAU,EAAE,wCAAwC,CAAC,cAAc;QACnE,MAAM,EAAE;YACN,EAAE,EAAE,iBAAiB,CAAC,EAAE;SACzB;QACD,UAAU,EAAE,wCAAwC,CAAC,WAAW;QAChE,MAAM,EAAE;YACN,QAAQ,EAAE,OAAO,CAAC,KAAK;YACvB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB;QACD,MAAM;QACN,QAAQ,EAAE,OAAO,CAAC,KAAK;QACvB,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACxB,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO;QACzC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;QAChC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY;QAC5C,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc;QAChD,eAAe,EAAE,QAAQ,CAAC,QAAQ,CAAC,eAAe;KACnD,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { formatUnits } from "viem";
|
|
2
|
-
import { Quote } from "./Quote.js";
|
|
3
2
|
import { UserInputValidationError } from "../../../errors.js";
|
|
4
3
|
import { CreatePaymentTransferQuoteBodySourceType, CreatePaymentTransferQuoteBodyTargetType, } from "../../../openapi-client/index.js";
|
|
4
|
+
import { EvmQuote } from "../../Quote.js";
|
|
5
5
|
/**
|
|
6
6
|
* Gets a quote to fund an EVM account.
|
|
7
7
|
*
|
|
@@ -11,16 +11,16 @@ import { CreatePaymentTransferQuoteBodySourceType, CreatePaymentTransferQuoteBod
|
|
|
11
11
|
* @returns A promise that resolves to the quote.
|
|
12
12
|
*/
|
|
13
13
|
export async function quoteFund(apiClient, options) {
|
|
14
|
-
const paymentMethods = await apiClient.getPaymentMethods();
|
|
15
|
-
const cardPaymentMethod = paymentMethods.find(method => method.type === "card" && method.actions.includes("source"));
|
|
16
|
-
if (!cardPaymentMethod) {
|
|
17
|
-
throw new Error("No card found to fund account");
|
|
18
|
-
}
|
|
19
14
|
if (options.token !== "eth" && options.token !== "usdc") {
|
|
20
15
|
throw new UserInputValidationError("Invalid token, must be eth or usdc");
|
|
21
16
|
}
|
|
22
17
|
const decimals = options.token === "eth" ? 18 : 6;
|
|
23
18
|
const amount = formatUnits(options.amount, decimals);
|
|
19
|
+
const paymentMethods = await apiClient.getPaymentMethods();
|
|
20
|
+
const cardPaymentMethod = paymentMethods.find(method => method.type === "card" && method.actions.includes("source"));
|
|
21
|
+
if (!cardPaymentMethod) {
|
|
22
|
+
throw new Error("No card found to fund account");
|
|
23
|
+
}
|
|
24
24
|
const response = await apiClient.createPaymentTransferQuote({
|
|
25
25
|
sourceType: CreatePaymentTransferQuoteBodySourceType.payment_method,
|
|
26
26
|
source: {
|
|
@@ -35,7 +35,7 @@ export async function quoteFund(apiClient, options) {
|
|
|
35
35
|
amount,
|
|
36
36
|
currency: options.token,
|
|
37
37
|
});
|
|
38
|
-
return new
|
|
38
|
+
return new EvmQuote(apiClient, response.transfer.id, options.network, response.transfer.sourceAmount, response.transfer.sourceCurrency, response.transfer.targetAmount, response.transfer.targetCurrency, response.transfer.fees.map(fee => ({
|
|
39
39
|
type: fee.type,
|
|
40
40
|
amount: fee.amount,
|
|
41
41
|
currency: fee.currency,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quoteFund.js","sourceRoot":"","sources":["../../../../actions/evm/fund/quoteFund.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"quoteFund.js","sourceRoot":"","sources":["../../../../actions/evm/fund/quoteFund.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,wCAAwC,EACxC,wCAAwC,GAEzC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAa1C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,SAA+B,EAC/B,OAA4B;IAE5B,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QACxD,MAAM,IAAI,wBAAwB,CAAC,oCAAoC,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAErD,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAC3D,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAC3C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACtE,CAAC;IAEF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC;QAC1D,UAAU,EAAE,wCAAwC,CAAC,cAAc;QACnE,MAAM,EAAE;YACN,EAAE,EAAE,iBAAiB,CAAC,EAAE;SACzB;QACD,UAAU,EAAE,wCAAwC,CAAC,WAAW;QAChE,MAAM,EAAE;YACN,QAAQ,EAAE,OAAO,CAAC,KAAK;YACvB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB;QACD,MAAM;QACN,QAAQ,EAAE,OAAO,CAAC,KAAK;KACxB,CAAC,CAAC;IAEH,OAAO,IAAI,QAAQ,CACjB,SAAS,EACT,QAAQ,CAAC,QAAQ,CAAC,EAAE,EACpB,OAAO,CAAC,OAAO,EACf,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAC9B,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAChC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAC9B,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAChC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC"}
|
|
@@ -3,6 +3,7 @@ import { getErc20Address } from "./utils.js";
|
|
|
3
3
|
import { serializeEIP1559Transaction } from "../../../utils/serializeTransaction.js";
|
|
4
4
|
export const accountTransferStrategy = {
|
|
5
5
|
executeTransfer: async ({ apiClient, from, to, value, token, network }) => {
|
|
6
|
+
network = network;
|
|
6
7
|
if (token === "eth") {
|
|
7
8
|
return apiClient.sendEvmTransaction(from.address, {
|
|
8
9
|
transaction: serializeEIP1559Transaction({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountTransferStrategy.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/accountTransferStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"accountTransferStrategy.js","sourceRoot":"","sources":["../../../../actions/evm/transfer/accountTransferStrategy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEpD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAC;AAMrF,MAAM,CAAC,MAAM,uBAAuB,GAA0C;IAC5E,eAAe,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QACxE,OAAO,GAAG,OAAwC,CAAC;QACnD,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACpB,OAAO,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE;gBAChD,WAAW,EAAE,2BAA2B,CAAC;oBACvC,KAAK;oBACL,EAAE;iBACH,CAAC;gBACF,OAAO;aACR,CAA+B,CAAC;QACnC,CAAC;QAED,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAErD,MAAM,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE;YAC/C,WAAW,EAAE,2BAA2B,CAAC;gBACvC,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,kBAAkB,CAAC;oBACvB,GAAG,EAAE,QAAQ;oBACb,YAAY,EAAE,SAAS;oBACvB,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;iBAClB,CAAC;aACH,CAAC;YACF,OAAO;SACR,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE;YAChD,WAAW,EAAE,2BAA2B,CAAC;gBACvC,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,kBAAkB,CAAC;oBACvB,GAAG,EAAE,QAAQ;oBACb,YAAY,EAAE,UAAU;oBACxB,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC;iBAClB,CAAC;aACH,CAAC;YACF,OAAO;SACR,CAA+B,CAAC;IACnC,CAAC;CACF,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { formatUnits } from "viem";
|
|
2
|
+
import { UserInputValidationError } from "../../../errors.js";
|
|
3
|
+
import { CreatePaymentTransferQuoteBodySourceType, CreatePaymentTransferQuoteBodyTargetType, } from "../../../openapi-client/index.js";
|
|
4
|
+
/**
|
|
5
|
+
* Funds a Solana account.
|
|
6
|
+
*
|
|
7
|
+
* @param apiClient - The API client.
|
|
8
|
+
* @param options - The options for funding a Solana account.
|
|
9
|
+
*
|
|
10
|
+
* @returns A promise that resolves to the fund operation result.
|
|
11
|
+
*/
|
|
12
|
+
export async function fund(apiClient, options) {
|
|
13
|
+
if (options.token !== "sol" && options.token !== "usdc") {
|
|
14
|
+
throw new UserInputValidationError("Invalid token, must be sol or usdc");
|
|
15
|
+
}
|
|
16
|
+
const decimals = options.token === "sol" ? 9 : 6;
|
|
17
|
+
const amount = formatUnits(options.amount, decimals);
|
|
18
|
+
const paymentMethods = await apiClient.getPaymentMethods();
|
|
19
|
+
const cardPaymentMethod = paymentMethods.find(method => method.type === "card" && method.actions.includes("source"));
|
|
20
|
+
if (!cardPaymentMethod) {
|
|
21
|
+
throw new Error("No card found to fund account");
|
|
22
|
+
}
|
|
23
|
+
const response = await apiClient.createPaymentTransferQuote({
|
|
24
|
+
sourceType: CreatePaymentTransferQuoteBodySourceType.payment_method,
|
|
25
|
+
source: {
|
|
26
|
+
id: cardPaymentMethod.id,
|
|
27
|
+
},
|
|
28
|
+
targetType: CreatePaymentTransferQuoteBodyTargetType.crypto_rail,
|
|
29
|
+
target: {
|
|
30
|
+
currency: options.token,
|
|
31
|
+
network: "solana",
|
|
32
|
+
address: options.address,
|
|
33
|
+
},
|
|
34
|
+
amount,
|
|
35
|
+
currency: options.token,
|
|
36
|
+
execute: true,
|
|
37
|
+
});
|
|
38
|
+
return {
|
|
39
|
+
id: response.transfer.id,
|
|
40
|
+
network: response.transfer.target.network,
|
|
41
|
+
status: response.transfer.status,
|
|
42
|
+
targetAmount: response.transfer.targetAmount,
|
|
43
|
+
targetCurrency: response.transfer.targetCurrency,
|
|
44
|
+
transactionHash: response.transfer.transactionHash,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=fund.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fund.js","sourceRoot":"","sources":["../../../../actions/solana/fund/fund.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EACL,wCAAwC,EACxC,wCAAwC,GAEzC,MAAM,kCAAkC,CAAC;AAW1C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,IAAI,CACxB,SAA+B,EAC/B,OAA0B;IAE1B,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QACxD,MAAM,IAAI,wBAAwB,CAAC,oCAAoC,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAErD,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAC3D,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAC3C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACtE,CAAC;IAEF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC;QAC1D,UAAU,EAAE,wCAAwC,CAAC,cAAc;QACnE,MAAM,EAAE;YACN,EAAE,EAAE,iBAAiB,CAAC,EAAE;SACzB;QACD,UAAU,EAAE,wCAAwC,CAAC,WAAW;QAChE,MAAM,EAAE;YACN,QAAQ,EAAE,OAAO,CAAC,KAAK;YACvB,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB;QACD,MAAM;QACN,QAAQ,EAAE,OAAO,CAAC,KAAK;QACvB,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACxB,OAAO,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO;QACzC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;QAChC,YAAY,EAAE,QAAQ,CAAC,QAAQ,CAAC,YAAY;QAC5C,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,cAAc;QAChD,eAAe,EAAE,QAAQ,CAAC,QAAQ,CAAC,eAAe;KACnD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { formatUnits } from "viem";
|
|
2
|
+
import { UserInputValidationError } from "../../../errors.js";
|
|
3
|
+
import { CreatePaymentTransferQuoteBodySourceType, CreatePaymentTransferQuoteBodyTargetType, } from "../../../openapi-client/index.js";
|
|
4
|
+
import { SolanaQuote } from "../../Quote.js";
|
|
5
|
+
/**
|
|
6
|
+
* Gets a quote to fund a Solana account.
|
|
7
|
+
*
|
|
8
|
+
* @param apiClient - The API client.
|
|
9
|
+
* @param options - The options for getting a quote to fund a Solana account.
|
|
10
|
+
*
|
|
11
|
+
* @returns A promise that resolves to the quote.
|
|
12
|
+
*/
|
|
13
|
+
export async function quoteFund(apiClient, options) {
|
|
14
|
+
if (options.token !== "sol" && options.token !== "usdc") {
|
|
15
|
+
throw new UserInputValidationError("Invalid token, must be sol or usdc");
|
|
16
|
+
}
|
|
17
|
+
const decimals = options.token === "sol" ? 9 : 6;
|
|
18
|
+
const amount = formatUnits(options.amount, decimals);
|
|
19
|
+
const paymentMethods = await apiClient.getPaymentMethods();
|
|
20
|
+
const cardPaymentMethod = paymentMethods.find(method => method.type === "card" && method.actions.includes("source"));
|
|
21
|
+
if (!cardPaymentMethod) {
|
|
22
|
+
throw new Error("No card found to fund account");
|
|
23
|
+
}
|
|
24
|
+
const response = await apiClient.createPaymentTransferQuote({
|
|
25
|
+
sourceType: CreatePaymentTransferQuoteBodySourceType.payment_method,
|
|
26
|
+
source: {
|
|
27
|
+
id: cardPaymentMethod.id,
|
|
28
|
+
},
|
|
29
|
+
targetType: CreatePaymentTransferQuoteBodyTargetType.crypto_rail,
|
|
30
|
+
target: {
|
|
31
|
+
currency: options.token,
|
|
32
|
+
network: "solana",
|
|
33
|
+
address: options.address,
|
|
34
|
+
},
|
|
35
|
+
amount,
|
|
36
|
+
currency: options.token,
|
|
37
|
+
});
|
|
38
|
+
return new SolanaQuote(apiClient, response.transfer.id, "solana", response.transfer.sourceAmount, response.transfer.sourceCurrency, response.transfer.targetAmount, response.transfer.targetCurrency, response.transfer.fees.map(fee => ({
|
|
39
|
+
type: fee.type,
|
|
40
|
+
amount: fee.amount,
|
|
41
|
+
currency: fee.currency,
|
|
42
|
+
})));
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=quoteFund.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quoteFund.js","sourceRoot":"","sources":["../../../../actions/solana/fund/quoteFund.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAEnC,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAEL,wCAAwC,EACxC,wCAAwC,GACzC,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAW7C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,SAA+B,EAC/B,OAA+B;IAE/B,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;QACxD,MAAM,IAAI,wBAAwB,CAAC,oCAAoC,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAErD,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAC3D,MAAM,iBAAiB,GAAG,cAAc,CAAC,IAAI,CAC3C,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CACtE,CAAC;IAEF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,0BAA0B,CAAC;QAC1D,UAAU,EAAE,wCAAwC,CAAC,cAAc;QACnE,MAAM,EAAE;YACN,EAAE,EAAE,iBAAiB,CAAC,EAAE;SACzB;QACD,UAAU,EAAE,wCAAwC,CAAC,WAAW;QAChE,MAAM,EAAE;YACN,QAAQ,EAAE,OAAO,CAAC,KAAK;YACvB,OAAO,EAAE,QAAQ;YACjB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB;QACD,MAAM;QACN,QAAQ,EAAE,OAAO,CAAC,KAAK;KACxB,CAAC,CAAC;IAEH,OAAO,IAAI,WAAW,CACpB,SAAS,EACT,QAAQ,CAAC,QAAQ,CAAC,EAAE,EACpB,QAAQ,EACR,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAC9B,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAChC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAC9B,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAChC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,QAAQ,EAAE,GAAG,CAAC,QAAQ;KACvB,CAAC,CAAC,CACJ,CAAC;AACJ,CAAC"}
|
|
@@ -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
|