thirdweb 5.101.2-nightly-91750eddc6cc3eb20c36b74490d820b92ea5500f-20250529000432 → 5.102.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/dist/cjs/bridge/Webhook.js +3 -1
- package/dist/cjs/bridge/Webhook.js.map +1 -1
- package/dist/cjs/cli/commands/stylus/builder.js +39 -12
- package/dist/cjs/cli/commands/stylus/builder.js.map +1 -1
- package/dist/cjs/cli/commands/stylus/create.js +31 -7
- package/dist/cjs/cli/commands/stylus/create.js.map +1 -1
- package/dist/cjs/engine/create-server-wallet.js +46 -0
- package/dist/cjs/engine/create-server-wallet.js.map +1 -0
- package/dist/cjs/engine/get-status.js +0 -54
- package/dist/cjs/engine/get-status.js.map +1 -1
- package/dist/cjs/engine/index.js +9 -2
- package/dist/cjs/engine/index.js.map +1 -1
- package/dist/cjs/engine/list-server-wallets.js +40 -0
- package/dist/cjs/engine/list-server-wallets.js.map +1 -0
- package/dist/cjs/engine/search-transactions.js +115 -0
- package/dist/cjs/engine/search-transactions.js.map +1 -0
- package/dist/cjs/engine/server-wallet.js +97 -17
- package/dist/cjs/engine/server-wallet.js.map +1 -1
- package/dist/cjs/engine/wait-for-tx-hash.js +59 -0
- package/dist/cjs/engine/wait-for-tx-hash.js.map +1 -0
- package/dist/cjs/insight/get-nfts.js +6 -1
- package/dist/cjs/insight/get-nfts.js.map +1 -1
- package/dist/cjs/pay/buyWithCrypto/getTransfer.js +1 -0
- package/dist/cjs/pay/buyWithCrypto/getTransfer.js.map +1 -1
- package/dist/cjs/pay/buyWithFiat/getQuote.js +1 -0
- package/dist/cjs/pay/buyWithFiat/getQuote.js.map +1 -1
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js +4 -10
- package/dist/cjs/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js.map +1 -1
- package/dist/cjs/utils/fetch.js +1 -0
- package/dist/cjs/utils/fetch.js.map +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/bridge/Webhook.js +3 -1
- package/dist/esm/bridge/Webhook.js.map +1 -1
- package/dist/esm/cli/commands/stylus/builder.js +39 -12
- package/dist/esm/cli/commands/stylus/builder.js.map +1 -1
- package/dist/esm/cli/commands/stylus/create.js +31 -7
- package/dist/esm/cli/commands/stylus/create.js.map +1 -1
- package/dist/esm/engine/create-server-wallet.js +43 -0
- package/dist/esm/engine/create-server-wallet.js.map +1 -0
- package/dist/esm/engine/get-status.js +0 -53
- package/dist/esm/engine/get-status.js.map +1 -1
- package/dist/esm/engine/index.js +5 -1
- package/dist/esm/engine/index.js.map +1 -1
- package/dist/esm/engine/list-server-wallets.js +37 -0
- package/dist/esm/engine/list-server-wallets.js.map +1 -0
- package/dist/esm/engine/search-transactions.js +112 -0
- package/dist/esm/engine/search-transactions.js.map +1 -0
- package/dist/esm/engine/server-wallet.js +96 -16
- package/dist/esm/engine/server-wallet.js.map +1 -1
- package/dist/esm/engine/wait-for-tx-hash.js +56 -0
- package/dist/esm/engine/wait-for-tx-hash.js.map +1 -0
- package/dist/esm/insight/get-nfts.js +6 -1
- package/dist/esm/insight/get-nfts.js.map +1 -1
- package/dist/esm/pay/buyWithCrypto/getTransfer.js +1 -0
- package/dist/esm/pay/buyWithCrypto/getTransfer.js.map +1 -1
- package/dist/esm/pay/buyWithFiat/getQuote.js +1 -0
- package/dist/esm/pay/buyWithFiat/getQuote.js.map +1 -1
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js +4 -10
- package/dist/esm/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.js.map +1 -1
- package/dist/esm/utils/fetch.js +1 -0
- package/dist/esm/utils/fetch.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/types/bridge/Webhook.d.ts +3 -1
- package/dist/types/bridge/Webhook.d.ts.map +1 -1
- package/dist/types/cli/commands/stylus/builder.d.ts.map +1 -1
- package/dist/types/cli/commands/stylus/create.d.ts.map +1 -1
- package/dist/types/engine/create-server-wallet.d.ts +29 -0
- package/dist/types/engine/create-server-wallet.d.ts.map +1 -0
- package/dist/types/engine/get-status.d.ts +0 -23
- package/dist/types/engine/get-status.d.ts.map +1 -1
- package/dist/types/engine/index.d.ts +5 -1
- package/dist/types/engine/index.d.ts.map +1 -1
- package/dist/types/engine/list-server-wallets.d.ts +25 -0
- package/dist/types/engine/list-server-wallets.d.ts.map +1 -0
- package/dist/types/engine/search-transactions.d.ts +127 -0
- package/dist/types/engine/search-transactions.d.ts.map +1 -0
- package/dist/types/engine/server-wallet.d.ts +36 -0
- package/dist/types/engine/server-wallet.d.ts.map +1 -1
- package/dist/types/engine/wait-for-tx-hash.d.ts +25 -0
- package/dist/types/engine/wait-for-tx-hash.d.ts.map +1 -0
- package/dist/types/pay/buyWithCrypto/getTransfer.d.ts.map +1 -1
- package/dist/types/pay/buyWithFiat/getQuote.d.ts +1 -0
- package/dist/types/pay/buyWithFiat/getQuote.d.ts.map +1 -1
- package/dist/types/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.d.ts.map +1 -1
- package/dist/types/utils/fetch.d.ts.map +1 -1
- package/dist/types/version.d.ts +1 -1
- package/dist/types/version.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/bridge/Chains.test.ts +1 -1
- package/src/bridge/Webhook.ts +3 -1
- package/src/cli/commands/stylus/builder.ts +45 -12
- package/src/cli/commands/stylus/create.ts +33 -8
- package/src/engine/create-server-wallet.ts +57 -0
- package/src/engine/get-status.ts +0 -69
- package/src/engine/index.ts +13 -1
- package/src/engine/list-server-wallets.ts +46 -0
- package/src/engine/search-transactions.ts +132 -0
- package/src/engine/server-wallet.test.ts +54 -0
- package/src/engine/server-wallet.ts +104 -17
- package/src/engine/wait-for-tx-hash.ts +75 -0
- package/src/extensions/erc1155/read/getOwnedNFTs.test.ts +25 -0
- package/src/extensions/erc20/drop20.test.ts +91 -1
- package/src/insight/get-nfts.ts +6 -1
- package/src/pay/buyWithCrypto/getTransfer.ts +1 -0
- package/src/pay/buyWithFiat/getQuote.ts +1 -0
- package/src/react/web/ui/ConnectWallet/screens/Buy/swap/SwapScreenContent.tsx +3 -16
- package/src/utils/fetch.ts +1 -0
- package/src/version.ts +1 -1
@@ -3,6 +3,7 @@ import { existsSync, readFileSync } from "node:fs";
|
|
3
3
|
import { join } from "node:path";
|
4
4
|
import open from "open";
|
5
5
|
import ora, {} from "ora";
|
6
|
+
import prompts from "prompts";
|
6
7
|
import { parse } from "toml";
|
7
8
|
import { createThirdwebClient } from "../../../client/client.js";
|
8
9
|
import { upload } from "../../../storage/upload.js";
|
@@ -76,14 +77,42 @@ async function buildStylus(spinner, secretKey) {
|
|
76
77
|
}
|
77
78
|
spinner.succeed("ABI generated.");
|
78
79
|
// Step 4: Process the output
|
79
|
-
const
|
80
|
-
|
80
|
+
const parts = abiContent.split(/======= <stdin>:/g).filter(Boolean);
|
81
|
+
const contractNames = extractContractNamesFromExportAbi(abiContent);
|
82
|
+
let selectedContractName;
|
83
|
+
let selectedAbiContent;
|
84
|
+
if (contractNames.length === 1) {
|
85
|
+
selectedContractName = contractNames[0]?.replace(/^I/, "");
|
86
|
+
selectedAbiContent = parts[0];
|
87
|
+
}
|
88
|
+
else {
|
89
|
+
const response = await prompts({
|
90
|
+
type: "select",
|
91
|
+
name: "contract",
|
92
|
+
message: "Select entrypoint:",
|
93
|
+
choices: contractNames.map((name, idx) => ({
|
94
|
+
title: name,
|
95
|
+
value: idx,
|
96
|
+
})),
|
97
|
+
});
|
98
|
+
const selectedIndex = response.contract;
|
99
|
+
if (typeof selectedIndex !== "number") {
|
100
|
+
spinner.fail("No contract selected.");
|
101
|
+
process.exit(1);
|
102
|
+
}
|
103
|
+
selectedContractName = contractNames[selectedIndex]?.replace(/^I/, "");
|
104
|
+
selectedAbiContent = parts[selectedIndex];
|
105
|
+
}
|
106
|
+
if (!selectedAbiContent) {
|
107
|
+
throw new Error("Entrypoint not found");
|
108
|
+
}
|
109
|
+
if (!selectedContractName) {
|
81
110
|
spinner.fail("Error: Could not determine contract name from ABI output.");
|
82
111
|
process.exit(1);
|
83
112
|
}
|
84
113
|
let cleanedAbi = "";
|
85
114
|
try {
|
86
|
-
const jsonMatch =
|
115
|
+
const jsonMatch = selectedAbiContent.match(/\[.*\]/s);
|
87
116
|
if (jsonMatch) {
|
88
117
|
cleanedAbi = jsonMatch[0];
|
89
118
|
}
|
@@ -106,7 +135,7 @@ async function buildStylus(spinner, secretKey) {
|
|
106
135
|
},
|
107
136
|
settings: {
|
108
137
|
compilationTarget: {
|
109
|
-
"src/main.rs":
|
138
|
+
"src/main.rs": selectedContractName,
|
110
139
|
},
|
111
140
|
},
|
112
141
|
sources: {},
|
@@ -129,12 +158,12 @@ async function buildStylus(spinner, secretKey) {
|
|
129
158
|
client,
|
130
159
|
files: [
|
131
160
|
{
|
132
|
-
name:
|
161
|
+
name: selectedContractName,
|
133
162
|
metadataUri,
|
134
163
|
bytecodeUri,
|
135
164
|
analytics: {
|
136
165
|
command: "publish-stylus",
|
137
|
-
contract_name:
|
166
|
+
contract_name: selectedContractName,
|
138
167
|
cli_version: "",
|
139
168
|
project_type: "stylus",
|
140
169
|
},
|
@@ -154,12 +183,10 @@ async function buildStylus(spinner, secretKey) {
|
|
154
183
|
process.exit(1);
|
155
184
|
}
|
156
185
|
}
|
157
|
-
function
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
}
|
162
|
-
return null;
|
186
|
+
function extractContractNamesFromExportAbi(abiRawOutput) {
|
187
|
+
return [...abiRawOutput.matchAll(/<stdin>:(I?[A-Za-z0-9_]+)/g)]
|
188
|
+
.map((m) => m[1])
|
189
|
+
.filter((name) => typeof name === "string");
|
163
190
|
}
|
164
191
|
function getUrl(hash, command) {
|
165
192
|
const url = new URL(`${THIRDWEB_URL}/contracts/${command}/${encodeURIComponent(hash.replace("ipfs://", ""))}`);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../../src/cli/commands/stylus/builder.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../../src/cli/commands/stylus/builder.ts"],"names":[],"mappings":"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"}
|
@@ -32,15 +32,39 @@ export async function createStylusProject() {
|
|
32
32
|
message: "Project name:",
|
33
33
|
initial: "my-stylus-project",
|
34
34
|
});
|
35
|
-
|
36
|
-
const
|
37
|
-
|
35
|
+
// Step 4: Select project type
|
36
|
+
const { projectType } = await prompts({
|
37
|
+
type: "select",
|
38
|
+
name: "projectType",
|
39
|
+
message: "Select a template:",
|
40
|
+
choices: [
|
41
|
+
{ title: "Default", value: "default" },
|
42
|
+
{ title: "ERC20", value: "erc20" },
|
43
|
+
],
|
38
44
|
});
|
39
|
-
|
40
|
-
|
41
|
-
|
45
|
+
// Step 5: Create the project
|
46
|
+
if (projectType === "default") {
|
47
|
+
spinner.start(`Creating new Stylus project: ${projectName}...`);
|
48
|
+
const newProject = spawnSync("cargo", ["stylus", "new", projectName], {
|
49
|
+
stdio: "inherit",
|
50
|
+
});
|
51
|
+
if (newProject.status !== 0) {
|
52
|
+
spinner.fail("Failed to create Stylus project.");
|
53
|
+
process.exit(1);
|
54
|
+
}
|
55
|
+
}
|
56
|
+
else if (projectType === "erc20") {
|
57
|
+
const repoUrl = "git@github.com:thirdweb-example/stylus-erc20-template.git";
|
58
|
+
spinner.start(`Creating new ERC20 Stylus project: ${projectName}...`);
|
59
|
+
const clone = spawnSync("git", ["clone", repoUrl, projectName], {
|
60
|
+
stdio: "inherit",
|
61
|
+
});
|
62
|
+
if (clone.status !== 0) {
|
63
|
+
spinner.fail("Failed to create Stylus project.");
|
64
|
+
process.exit(1);
|
65
|
+
}
|
42
66
|
}
|
43
67
|
spinner.succeed("Project created successfully.");
|
44
|
-
console.log(`\n✅
|
68
|
+
console.log(`\n✅ cd into your project: ${projectName}`);
|
45
69
|
}
|
46
70
|
//# sourceMappingURL=create.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../src/cli/commands/stylus/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;IAEtB,oCAAoC;IACpC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;IACrD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,8BAA8B;IAC9B,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACtC,MAAM,OAAO,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,cAAc,CAAC,EAAE;QACzE,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAErC,SAAS,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE;QACvC,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IACH,SAAS,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,wBAAwB,CAAC,EAAE;QAC/D,KAAK,EAAE,SAAS;KACjB,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,OAAO,CAAC;QACpC,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,aAAa;QACnB,OAAO,EAAE,eAAe;QACxB,OAAO,EAAE,mBAAmB;KAC7B,CAAC,CAAC;
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../../../../../src/cli/commands/stylus/create.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import { createAccount } from "@thirdweb-dev/engine";
|
2
|
+
import { stringify } from "viem";
|
3
|
+
import { getThirdwebBaseUrl } from "../utils/domains.js";
|
4
|
+
import { getClientFetch } from "../utils/fetch.js";
|
5
|
+
/**
|
6
|
+
* Create a server wallet.
|
7
|
+
* @param params - The parameters for the server wallet.
|
8
|
+
* @param params.client - The thirdweb client to use.
|
9
|
+
* @param params.label - The label for the server wallet.
|
10
|
+
* @returns The server wallet signer address and the predicted smart account address.
|
11
|
+
* @engine
|
12
|
+
* @example
|
13
|
+
* ```ts
|
14
|
+
* import { Engine } from "thirdweb";
|
15
|
+
*
|
16
|
+
* const serverWallet = await Engine.createServerWallet({
|
17
|
+
* client,
|
18
|
+
* label: "My Server Wallet",
|
19
|
+
* });
|
20
|
+
* console.log(serverWallet.address);
|
21
|
+
* console.log(serverWallet.smartAccountAddress);
|
22
|
+
* ```
|
23
|
+
*/
|
24
|
+
export async function createServerWallet(params) {
|
25
|
+
const { client, label } = params;
|
26
|
+
const result = await createAccount({
|
27
|
+
baseUrl: getThirdwebBaseUrl("engineCloud"),
|
28
|
+
bodySerializer: stringify,
|
29
|
+
fetch: getClientFetch(client),
|
30
|
+
body: {
|
31
|
+
label,
|
32
|
+
},
|
33
|
+
});
|
34
|
+
if (result.error) {
|
35
|
+
throw new Error(`Error creating server wallet with label ${label}: ${stringify(result.error)}`);
|
36
|
+
}
|
37
|
+
const data = result.data?.result;
|
38
|
+
if (!data) {
|
39
|
+
throw new Error(`No server wallet created with label ${label}`);
|
40
|
+
}
|
41
|
+
return data;
|
42
|
+
}
|
43
|
+
//# sourceMappingURL=create-server-wallet.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"create-server-wallet.js","sourceRoot":"","sources":["../../../src/engine/create-server-wallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAOnD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAA8B;IACrE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;QACjC,OAAO,EAAE,kBAAkB,CAAC,aAAa,CAAC;QAC1C,cAAc,EAAE,SAAS;QACzB,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC;QAC7B,IAAI,EAAE;YACJ,KAAK;SACN;KACF,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,2CAA2C,KAAK,KAAK,SAAS,CAC5D,MAAM,CAAC,KAAK,CACb,EAAE,CACJ,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;IAEjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,uCAAuC,KAAK,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
@@ -54,57 +54,4 @@ export async function getTransactionStatus(args) {
|
|
54
54
|
id: data.id,
|
55
55
|
};
|
56
56
|
}
|
57
|
-
/**
|
58
|
-
* Wait for a transaction to be submitted onchain and return the transaction hash.
|
59
|
-
* @param args - The arguments for the transaction.
|
60
|
-
* @param args.client - The thirdweb client to use.
|
61
|
-
* @param args.transactionId - The id of the transaction to wait for.
|
62
|
-
* @param args.timeoutInSeconds - The timeout in seconds.
|
63
|
-
* @engine
|
64
|
-
* @example
|
65
|
-
* ```ts
|
66
|
-
* import { Engine } from "thirdweb";
|
67
|
-
*
|
68
|
-
* const { transactionHash } = await Engine.waitForTransactionHash({
|
69
|
-
* client,
|
70
|
-
* transactionId, // the transaction id returned from enqueueTransaction
|
71
|
-
* });
|
72
|
-
* ```
|
73
|
-
*/
|
74
|
-
export async function waitForTransactionHash(args) {
|
75
|
-
const startTime = Date.now();
|
76
|
-
const TIMEOUT_IN_MS = args.timeoutInSeconds
|
77
|
-
? args.timeoutInSeconds * 1000
|
78
|
-
: 5 * 60 * 1000; // 5 minutes in milliseconds
|
79
|
-
while (Date.now() - startTime < TIMEOUT_IN_MS) {
|
80
|
-
const executionResult = await getTransactionStatus(args);
|
81
|
-
const status = executionResult.status;
|
82
|
-
switch (status) {
|
83
|
-
case "FAILED": {
|
84
|
-
throw new Error(`Transaction failed: ${executionResult.error || "Unknown error"}`);
|
85
|
-
}
|
86
|
-
case "CONFIRMED": {
|
87
|
-
const onchainStatus = executionResult && "onchainStatus" in executionResult
|
88
|
-
? executionResult.onchainStatus
|
89
|
-
: null;
|
90
|
-
if (onchainStatus === "REVERTED") {
|
91
|
-
const revertData = "revertData" in executionResult
|
92
|
-
? executionResult.revertData
|
93
|
-
: undefined;
|
94
|
-
throw new Error(`Transaction reverted: ${revertData?.errorName || ""} ${revertData?.errorArgs ? stringify(revertData.errorArgs) : ""}`);
|
95
|
-
}
|
96
|
-
return {
|
97
|
-
transactionHash: executionResult.transactionHash,
|
98
|
-
client: args.client,
|
99
|
-
chain: executionResult.chain,
|
100
|
-
};
|
101
|
-
}
|
102
|
-
default: {
|
103
|
-
// wait for the transaction to be confirmed
|
104
|
-
await new Promise((resolve) => setTimeout(resolve, 1000));
|
105
|
-
}
|
106
|
-
}
|
107
|
-
}
|
108
|
-
throw new Error(`Transaction timed out after ${TIMEOUT_IN_MS / 1000} seconds`);
|
109
|
-
}
|
110
57
|
//# sourceMappingURL=get-status.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"get-status.js","sourceRoot":"","sources":["../../../src/engine/get-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;
|
1
|
+
{"version":3,"file":"get-status.js","sourceRoot":"","sources":["../../../src/engine/get-status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAiD7C;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,IAG1C;IACC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IACvC,MAAM,YAAY,GAAG,MAAM,kBAAkB,CAAC;QAC5C,OAAO,EAAE,kBAAkB,CAAC,aAAa,CAAC;QAC1C,cAAc,EAAE,SAAS;QACzB,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC;QAC7B,IAAI,EAAE;YACJ,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,IAAI;oBACX,MAAM,EAAE,CAAC,aAAa,CAAC;oBACvB,SAAS,EAAE,IAAI;iBAChB;aACF;SACF;KACF,CAAC,CAAC;IAEH,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,mCAAmC,aAAa,KAAK,SAAS,CAC5D,YAAY,CAAC,KAAK,CACnB,EAAE,CACJ,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,CAAC;IAE1D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,eAAe,aAAa,YAAY,CAAC,CAAC;IAC5D,CAAC;IAED,MAAM,eAAe,GAAG,IAAI,CAAC,eAAgD,CAAC;IAC9E,OAAO;QACL,GAAG,eAAe;QAClB,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS;QAC5B,EAAE,EAAE,IAAI,CAAC,EAAE;KACZ,CAAC;AACJ,CAAC"}
|
package/dist/esm/engine/index.js
CHANGED
@@ -1,3 +1,7 @@
|
|
1
1
|
export { serverWallet, } from "./server-wallet.js";
|
2
|
-
export { getTransactionStatus,
|
2
|
+
export { getTransactionStatus, } from "./get-status.js";
|
3
|
+
export { waitForTransactionHash } from "./wait-for-tx-hash.js";
|
4
|
+
export { searchTransactions, } from "./search-transactions.js";
|
5
|
+
export { createServerWallet, } from "./create-server-wallet.js";
|
6
|
+
export { getServerWallets, } from "./list-server-wallets.js";
|
3
7
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engine/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,GAGb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,oBAAoB,GAGrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EACL,kBAAkB,GAEnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,kBAAkB,GAEnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,gBAAgB,GAEjB,MAAM,0BAA0B,CAAC"}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import { listAccounts } from "@thirdweb-dev/engine";
|
2
|
+
import { stringify } from "viem";
|
3
|
+
import { getThirdwebBaseUrl } from "../utils/domains.js";
|
4
|
+
import { getClientFetch } from "../utils/fetch.js";
|
5
|
+
/**
|
6
|
+
* List all server wallets.
|
7
|
+
* @param params - The parameters for the server wallet.
|
8
|
+
* @param params.client - The thirdweb client to use.
|
9
|
+
* @returns an array of server wallets with their signer address and predicted smart account address.
|
10
|
+
* @engine
|
11
|
+
* @example
|
12
|
+
* ```ts
|
13
|
+
* import { Engine } from "thirdweb";
|
14
|
+
*
|
15
|
+
* const serverWallets = await Engine.getServerWallets({
|
16
|
+
* client,
|
17
|
+
* });
|
18
|
+
* console.log(serverWallets);
|
19
|
+
* ```
|
20
|
+
*/
|
21
|
+
export async function getServerWallets(params) {
|
22
|
+
const { client } = params;
|
23
|
+
const result = await listAccounts({
|
24
|
+
baseUrl: getThirdwebBaseUrl("engineCloud"),
|
25
|
+
bodySerializer: stringify,
|
26
|
+
fetch: getClientFetch(client),
|
27
|
+
});
|
28
|
+
if (result.error) {
|
29
|
+
throw new Error(`Error listing server wallets: ${stringify(result.error)}`);
|
30
|
+
}
|
31
|
+
const data = result.data?.result;
|
32
|
+
if (!data) {
|
33
|
+
throw new Error("No server wallets found");
|
34
|
+
}
|
35
|
+
return data;
|
36
|
+
}
|
37
|
+
//# sourceMappingURL=list-server-wallets.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"list-server-wallets.js","sourceRoot":"","sources":["../../../src/engine/list-server-wallets.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMnD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAA4B;IACjE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC;QAChC,OAAO,EAAE,kBAAkB,CAAC,aAAa,CAAC;QAC1C,cAAc,EAAE,SAAS;QACzB,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC;KAC9B,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;IAEjC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
@@ -0,0 +1,112 @@
|
|
1
|
+
import { searchTransactions as engineSearchTransactions, } from "@thirdweb-dev/engine";
|
2
|
+
import { getThirdwebBaseUrl } from "../utils/domains.js";
|
3
|
+
import { getClientFetch } from "../utils/fetch.js";
|
4
|
+
import { stringify } from "../utils/json.js";
|
5
|
+
/**
|
6
|
+
* Search for transactions by their ids.
|
7
|
+
* @param args - The arguments for the search.
|
8
|
+
* @param args.client - The thirdweb client to use.
|
9
|
+
* @param args.transactionIds - The ids of the transactions to search for.
|
10
|
+
* @engine
|
11
|
+
* @example
|
12
|
+
* ## Search for transactions by their ids
|
13
|
+
*
|
14
|
+
* ```ts
|
15
|
+
* import { Engine } from "thirdweb";
|
16
|
+
*
|
17
|
+
* const transactions = await Engine.searchTransactions({
|
18
|
+
* client,
|
19
|
+
* filters: [
|
20
|
+
* {
|
21
|
+
* field: "id",
|
22
|
+
* values: ["1", "2", "3"],
|
23
|
+
* },
|
24
|
+
* ],
|
25
|
+
* });
|
26
|
+
* console.log(transactions);
|
27
|
+
* ```
|
28
|
+
*
|
29
|
+
* ## Search for transactions by chain id
|
30
|
+
*
|
31
|
+
* ```ts
|
32
|
+
* import { Engine } from "thirdweb";
|
33
|
+
*
|
34
|
+
* const transactions = await Engine.searchTransactions({
|
35
|
+
* client,
|
36
|
+
* filters: [
|
37
|
+
* {
|
38
|
+
* field: "chainId",
|
39
|
+
* values: ["1", "137"],
|
40
|
+
* },
|
41
|
+
* ],
|
42
|
+
* });
|
43
|
+
* console.log(transactions);
|
44
|
+
* ```
|
45
|
+
*
|
46
|
+
* ## Search for transactions by sender wallet address
|
47
|
+
*
|
48
|
+
* ```ts
|
49
|
+
* import { Engine } from "thirdweb";
|
50
|
+
*
|
51
|
+
* const transactions = await Engine.searchTransactions({
|
52
|
+
* client,
|
53
|
+
* filters: [
|
54
|
+
* {
|
55
|
+
* field: "from",
|
56
|
+
* values: ["0x1234567890123456789012345678901234567890"],
|
57
|
+
* },
|
58
|
+
* ],
|
59
|
+
* });
|
60
|
+
* console.log(transactions);
|
61
|
+
* ```
|
62
|
+
*
|
63
|
+
* ## Combined search
|
64
|
+
*
|
65
|
+
* ```ts
|
66
|
+
* import { Engine } from "thirdweb";
|
67
|
+
*
|
68
|
+
* const transactions = await Engine.searchTransactions({
|
69
|
+
* client,
|
70
|
+
* filters: [
|
71
|
+
* {
|
72
|
+
* filters: [
|
73
|
+
* {
|
74
|
+
* field: "from",
|
75
|
+
* values: ["0x1234567890123456789012345678901234567890"],
|
76
|
+
* },
|
77
|
+
* {
|
78
|
+
* field: "chainId",
|
79
|
+
* values: ["8453"],
|
80
|
+
* },
|
81
|
+
* ],
|
82
|
+
* operation: "AND",
|
83
|
+
* },
|
84
|
+
* ],
|
85
|
+
* pageSize: 100,
|
86
|
+
* page: 0,
|
87
|
+
* });
|
88
|
+
* console.log(transactions);
|
89
|
+
* ```
|
90
|
+
*/
|
91
|
+
export async function searchTransactions(args) {
|
92
|
+
const { client, filters, pageSize = 100, page = 1 } = args;
|
93
|
+
const searchResult = await engineSearchTransactions({
|
94
|
+
baseUrl: getThirdwebBaseUrl("engineCloud"),
|
95
|
+
bodySerializer: stringify,
|
96
|
+
fetch: getClientFetch(client),
|
97
|
+
body: {
|
98
|
+
filters,
|
99
|
+
limit: pageSize,
|
100
|
+
page,
|
101
|
+
},
|
102
|
+
});
|
103
|
+
if (searchResult.error) {
|
104
|
+
throw new Error(`Error searching for transaction with filters ${stringify(filters)}: ${stringify(searchResult.error)}`);
|
105
|
+
}
|
106
|
+
const data = searchResult.data?.result;
|
107
|
+
if (!data) {
|
108
|
+
throw new Error(`No transactions found with filters ${stringify(filters)}`);
|
109
|
+
}
|
110
|
+
return data;
|
111
|
+
}
|
112
|
+
//# sourceMappingURL=search-transactions.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"search-transactions.js","sourceRoot":"","sources":["../../../src/engine/search-transactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,kBAAkB,IAAI,wBAAwB,GAC/C,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAS7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqFG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAA4B;IACnE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,GAAG,EAAE,IAAI,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC;IAC3D,MAAM,YAAY,GAAG,MAAM,wBAAwB,CAAC;QAClD,OAAO,EAAE,kBAAkB,CAAC,aAAa,CAAC;QAC1C,cAAc,EAAE,SAAS;QACzB,KAAK,EAAE,cAAc,CAAC,MAAM,CAAC;QAC7B,IAAI,EAAE;YACJ,OAAO;YACP,KAAK,EAAE,QAAQ;YACf,IAAI;SACL;KACF,CAAC,CAAC;IAEH,IAAI,YAAY,CAAC,KAAK,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,gDAAgD,SAAS,CAAC,OAAO,CAAC,KAAK,SAAS,CAC9E,YAAY,CAAC,KAAK,CACnB,EAAE,CACJ,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;IAEvC,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,sCAAsC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
@@ -6,7 +6,7 @@ import { toHex } from "../utils/encoding/hex.js";
|
|
6
6
|
import { getClientFetch } from "../utils/fetch.js";
|
7
7
|
import { stringify } from "../utils/json.js";
|
8
8
|
import { resolvePromisedValue } from "../utils/promise/resolve-promised-value.js";
|
9
|
-
import { waitForTransactionHash } from "./
|
9
|
+
import { waitForTransactionHash } from "./wait-for-tx-hash.js";
|
10
10
|
/**
|
11
11
|
* Create a server wallet for sending transactions and signing messages via engine (v3+).
|
12
12
|
* @param options - The server wallet options.
|
@@ -53,6 +53,37 @@ import { waitForTransactionHash } from "./get-status.js";
|
|
53
53
|
* console.log("Transaction sent:", transactionHash);
|
54
54
|
* ```
|
55
55
|
*
|
56
|
+
* ### Sending a batch of transactions
|
57
|
+
* ```ts
|
58
|
+
* // prepare the transactions
|
59
|
+
* const transaction1 = claimTo({
|
60
|
+
* contract,
|
61
|
+
* to: firstRecipient,
|
62
|
+
* quantity: 1n,
|
63
|
+
* });
|
64
|
+
* const transaction2 = claimTo({
|
65
|
+
* contract,
|
66
|
+
* to: secondRecipient,
|
67
|
+
* quantity: 1n,
|
68
|
+
* });
|
69
|
+
*
|
70
|
+
*
|
71
|
+
* // enqueue the transactions in a batch
|
72
|
+
* const { transactionId } = await myServerWallet.enqueueBatchTransaction({
|
73
|
+
* transactions: [transaction1, transaction2],
|
74
|
+
* });
|
75
|
+
* ```
|
76
|
+
*
|
77
|
+
* ### Polling for the batch of transactions to be submitted onchain
|
78
|
+
* ```ts
|
79
|
+
* // optionally poll for the transaction to be submitted onchain
|
80
|
+
* const { transactionHash } = await Engine.waitForTransactionHash({
|
81
|
+
* client,
|
82
|
+
* transactionId,
|
83
|
+
* });
|
84
|
+
* console.log("Transaction sent:", transactionHash);
|
85
|
+
* ```
|
86
|
+
*
|
56
87
|
* ### Getting the execution status of a transaction
|
57
88
|
* ```ts
|
58
89
|
* const executionResult = await Engine.getTransactionStatus({
|
@@ -79,15 +110,27 @@ export function serverWallet(options) {
|
|
79
110
|
};
|
80
111
|
};
|
81
112
|
const enqueueTx = async (transaction) => {
|
113
|
+
if (transaction.length === 0) {
|
114
|
+
throw new Error("No transactions to enqueue");
|
115
|
+
}
|
116
|
+
const firstTransaction = transaction[0];
|
117
|
+
if (!firstTransaction) {
|
118
|
+
throw new Error("No transactions to enqueue");
|
119
|
+
}
|
120
|
+
const chainId = firstTransaction.chainId;
|
121
|
+
// Validate all transactions are on the same chain
|
122
|
+
for (let i = 1; i < transaction.length; i++) {
|
123
|
+
if (transaction[i]?.chainId !== chainId) {
|
124
|
+
throw new Error(`All transactions in batch must be on the same chain. Expected ${chainId}, got ${transaction[i]?.chainId} at index ${i}`);
|
125
|
+
}
|
126
|
+
}
|
82
127
|
const body = {
|
83
|
-
executionOptions: getExecutionOptions(
|
84
|
-
params:
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
},
|
90
|
-
],
|
128
|
+
executionOptions: getExecutionOptions(chainId),
|
129
|
+
params: transaction.map((t) => ({
|
130
|
+
to: t.to ?? undefined,
|
131
|
+
data: t.data,
|
132
|
+
value: t.value?.toString(),
|
133
|
+
})),
|
91
134
|
};
|
92
135
|
const result = await sendTransaction({
|
93
136
|
baseUrl: getThirdwebBaseUrl("engineCloud"),
|
@@ -103,11 +146,7 @@ export function serverWallet(options) {
|
|
103
146
|
if (!data) {
|
104
147
|
throw new Error("No data returned from engine");
|
105
148
|
}
|
106
|
-
|
107
|
-
if (!transactionId) {
|
108
|
-
throw new Error("No transactionId returned from engine");
|
109
|
-
}
|
110
|
-
return transactionId;
|
149
|
+
return data.transactions.map((t) => t.id);
|
111
150
|
};
|
112
151
|
return {
|
113
152
|
address,
|
@@ -135,11 +174,52 @@ export function serverWallet(options) {
|
|
135
174
|
value: value ?? undefined,
|
136
175
|
};
|
137
176
|
}
|
138
|
-
const
|
177
|
+
const transactionIds = await enqueueTx([serializedTransaction]);
|
178
|
+
const transactionId = transactionIds[0];
|
179
|
+
if (!transactionId) {
|
180
|
+
throw new Error("No transactionId returned from engine");
|
181
|
+
}
|
182
|
+
return { transactionId };
|
183
|
+
},
|
184
|
+
enqueueBatchTransaction: async (args) => {
|
185
|
+
const serializedTransactions = [];
|
186
|
+
for (const transaction of args.transactions) {
|
187
|
+
const [to, data, value] = await Promise.all([
|
188
|
+
transaction.to ? resolvePromisedValue(transaction.to) : null,
|
189
|
+
encode(transaction),
|
190
|
+
transaction.value ? resolvePromisedValue(transaction.value) : null,
|
191
|
+
]);
|
192
|
+
serializedTransactions.push({
|
193
|
+
chainId: transaction.chain.id,
|
194
|
+
data,
|
195
|
+
to: to ?? undefined,
|
196
|
+
value: value ?? undefined,
|
197
|
+
});
|
198
|
+
}
|
199
|
+
const transactionIds = await enqueueTx(serializedTransactions);
|
200
|
+
const transactionId = transactionIds[0];
|
201
|
+
if (!transactionId) {
|
202
|
+
throw new Error("No transactionId returned from engine");
|
203
|
+
}
|
139
204
|
return { transactionId };
|
140
205
|
},
|
141
206
|
sendTransaction: async (transaction) => {
|
142
|
-
const
|
207
|
+
const transactionIds = await enqueueTx([transaction]);
|
208
|
+
const transactionId = transactionIds[0];
|
209
|
+
if (!transactionId) {
|
210
|
+
throw new Error("No transactionId returned from engine");
|
211
|
+
}
|
212
|
+
return waitForTransactionHash({
|
213
|
+
client,
|
214
|
+
transactionId,
|
215
|
+
});
|
216
|
+
},
|
217
|
+
sendBatchTransaction: async (transactions) => {
|
218
|
+
const transactionIds = await enqueueTx(transactions);
|
219
|
+
const transactionId = transactionIds[0];
|
220
|
+
if (!transactionId) {
|
221
|
+
throw new Error("No transactionId returned from engine");
|
222
|
+
}
|
143
223
|
return waitForTransactionHash({
|
144
224
|
client,
|
145
225
|
transactionId,
|