zkcloudworker 0.23.4 → 0.23.6
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/node/index.cjs +23 -15
- package/dist/node/mina/transactions/send.d.ts +1 -0
- package/dist/node/mina/transactions/send.js +21 -12
- package/dist/node/mina/transactions/send.js.map +1 -1
- package/dist/web/mina/transactions/send.d.ts +1 -0
- package/dist/web/mina/transactions/send.js +21 -12
- package/dist/web/mina/transactions/send.js.map +1 -1
- package/package.json +1 -1
- package/src/mina/transactions/send.ts +38 -20
package/dist/node/index.cjs
CHANGED
@@ -2418,7 +2418,7 @@ var TinyContract = class extends import_o1js9.SmartContract {
|
|
2418
2418
|
// dist/node/mina/transactions/send.js
|
2419
2419
|
var import_o1js10 = require("o1js");
|
2420
2420
|
async function sendTx(params) {
|
2421
|
-
const { tx, description = "", verbose = true, wait = true, chain = getCurrentNetwork().network.chainId } = params;
|
2421
|
+
const { tx, description = "", verbose = true, wait = true, chain = getCurrentNetwork().network.chainId, delay = chain === "zeko" ? 5e3 : 3e4 } = params;
|
2422
2422
|
const accountUpdates = JSON.parse(tx.toJSON()).accountUpdates;
|
2423
2423
|
const auCount = [];
|
2424
2424
|
let proofAuthorizationCount = 0;
|
@@ -2477,11 +2477,9 @@ async function sendTx(params) {
|
|
2477
2477
|
if (verbose)
|
2478
2478
|
console.log(`Waiting for tx inclusion...`);
|
2479
2479
|
let txIncluded = await txSent.safeWait();
|
2480
|
-
if (txIncluded.status
|
2481
|
-
|
2482
|
-
|
2483
|
-
else
|
2484
|
-
console.error(`${description ?? ""} tx NOT included into block: hash: ${txIncluded.hash} status: ${txIncluded.status}`);
|
2480
|
+
if (txIncluded.status !== "included") {
|
2481
|
+
console.error(`${description ?? ""} tx NOT included into block: hash: ${txIncluded.hash} status: ${txIncluded.status}, errors: ${String(txIncluded.errors ?? "")}`);
|
2482
|
+
}
|
2485
2483
|
if (chain !== "local") {
|
2486
2484
|
const { publicKey, nonce } = tx.transaction.feePayer.body;
|
2487
2485
|
const started = Date.now();
|
@@ -2491,21 +2489,31 @@ async function sendTx(params) {
|
|
2491
2489
|
force: true
|
2492
2490
|
})).account?.nonce;
|
2493
2491
|
if (newNonce && Number(newNonce.toBigint()) > Number(nonce.toBigint())) {
|
2494
|
-
|
2495
|
-
if (txIncluded2.status === "included")
|
2492
|
+
let txIncluded2 = await txSent.safeWait();
|
2493
|
+
if (txIncluded2.status === "included") {
|
2494
|
+
if (verbose)
|
2495
|
+
console.log(`${description ?? ""} tx included into block: hash: ${txIncluded2.hash} status: ${txIncluded2.status}`);
|
2496
|
+
if (delay > 0)
|
2497
|
+
await sleep(delay);
|
2496
2498
|
return txIncluded2;
|
2497
|
-
else if (txIncluded2.status === "rejected") {
|
2499
|
+
} else if (txIncluded2.status === "rejected") {
|
2500
|
+
console.error(`tx rejected: ${chain}: hash: ${txIncluded2.hash} status: ${txIncluded2.status} errors: ${txIncluded2.errors}`);
|
2498
2501
|
await sleep(3e4);
|
2499
|
-
|
2500
|
-
if (
|
2501
|
-
|
2502
|
-
|
2503
|
-
|
2502
|
+
txIncluded2 = await txSent.safeWait();
|
2503
|
+
if (txIncluded2.status === "included") {
|
2504
|
+
if (verbose)
|
2505
|
+
console.log(`${description ?? ""} tx included into block: hash: ${txIncluded2.hash} status: ${txIncluded2.status}`);
|
2506
|
+
if (delay > 0)
|
2507
|
+
await sleep(delay);
|
2508
|
+
return txIncluded2;
|
2509
|
+
}
|
2510
|
+
console.error(`tx failed: ${chain}: hash: ${txIncluded2.hash} status: ${txIncluded2.status} errors: ${txIncluded2.errors}`);
|
2511
|
+
return txIncluded2;
|
2504
2512
|
}
|
2505
2513
|
}
|
2506
2514
|
if (verbose)
|
2507
2515
|
console.log(`Waiting for ${chain} to update state for ${Math.floor((Date.now() - started) / 1e3)} sec...`);
|
2508
|
-
await sleep(
|
2516
|
+
await sleep(3e4);
|
2509
2517
|
}
|
2510
2518
|
console.error(`${chain} do not reflect nonce update for tx ${txIncluded.hash} with status ${txIncluded.status}`);
|
2511
2519
|
}
|
@@ -18,6 +18,7 @@ export declare function sendTx(params: {
|
|
18
18
|
verbose?: boolean;
|
19
19
|
wait?: boolean;
|
20
20
|
chain?: blockchain;
|
21
|
+
delay?: number;
|
21
22
|
}): Promise<Mina.IncludedTransaction | Mina.PendingTransaction | Mina.RejectedTransaction | undefined>;
|
22
23
|
export declare function getTxStatusFast(params: {
|
23
24
|
hash: string;
|
@@ -15,7 +15,7 @@ import { getCurrentNetwork } from "../utils/mina.js";
|
|
15
15
|
* `Mina.RejectedTransaction`, or `undefined` if there was an error during the process.
|
16
16
|
*/
|
17
17
|
export async function sendTx(params) {
|
18
|
-
const { tx, description = "", verbose = true, wait = true, chain = getCurrentNetwork().network.chainId, } = params;
|
18
|
+
const { tx, description = "", verbose = true, wait = true, chain = getCurrentNetwork().network.chainId, delay = chain === "zeko" ? 5000 : 30000, } = params;
|
19
19
|
// flatten accountUpdates
|
20
20
|
const accountUpdates = JSON.parse(tx.toJSON()).accountUpdates;
|
21
21
|
const auCount = [];
|
@@ -80,11 +80,9 @@ export async function sendTx(params) {
|
|
80
80
|
if (verbose)
|
81
81
|
console.log(`Waiting for tx inclusion...`);
|
82
82
|
let txIncluded = await txSent.safeWait();
|
83
|
-
if (txIncluded.status
|
84
|
-
|
85
|
-
|
86
|
-
else
|
87
|
-
console.error(`${description ?? ""} tx NOT included into block: hash: ${txIncluded.hash} status: ${txIncluded.status}`);
|
83
|
+
if (txIncluded.status !== "included") {
|
84
|
+
console.error(`${description ?? ""} tx NOT included into block: hash: ${txIncluded.hash} status: ${txIncluded.status}, errors: ${String(txIncluded.errors ?? "")}`);
|
85
|
+
}
|
88
86
|
if (chain !== "local") {
|
89
87
|
// we still wait for the tx to be included in the block by checking the nonce
|
90
88
|
// even in the case of tx NOT included
|
@@ -98,23 +96,34 @@ export async function sendTx(params) {
|
|
98
96
|
})).account?.nonce;
|
99
97
|
if (newNonce &&
|
100
98
|
Number(newNonce.toBigint()) > Number(nonce.toBigint())) {
|
101
|
-
|
102
|
-
if (txIncluded.status === "included")
|
99
|
+
let txIncluded = await txSent.safeWait();
|
100
|
+
if (txIncluded.status === "included") {
|
101
|
+
if (verbose)
|
102
|
+
console.log(`${description ?? ""} tx included into block: hash: ${txIncluded.hash} status: ${txIncluded.status}`);
|
103
|
+
if (delay > 0)
|
104
|
+
await sleep(delay);
|
103
105
|
return txIncluded;
|
106
|
+
}
|
104
107
|
else if (txIncluded.status === "rejected") {
|
105
108
|
// We never should see this error as the nonce is updated (except when tx failed due to a preconditions),
|
106
109
|
// so we retry to check if the tx is included
|
110
|
+
console.error(`tx rejected: ${chain}: hash: ${txIncluded.hash} status: ${txIncluded.status} errors: ${txIncluded.errors}`);
|
107
111
|
await sleep(30000);
|
108
|
-
|
109
|
-
if (txIncluded.status === "included")
|
112
|
+
txIncluded = await txSent.safeWait();
|
113
|
+
if (txIncluded.status === "included") {
|
114
|
+
if (verbose)
|
115
|
+
console.log(`${description ?? ""} tx included into block: hash: ${txIncluded.hash} status: ${txIncluded.status}`);
|
116
|
+
if (delay > 0)
|
117
|
+
await sleep(delay);
|
110
118
|
return txIncluded;
|
111
|
-
|
119
|
+
}
|
120
|
+
console.error(`tx failed: ${chain}: hash: ${txIncluded.hash} status: ${txIncluded.status} errors: ${txIncluded.errors}`);
|
112
121
|
return txIncluded;
|
113
122
|
}
|
114
123
|
}
|
115
124
|
if (verbose)
|
116
125
|
console.log(`Waiting for ${chain} to update state for ${Math.floor((Date.now() - started) / 1000)} sec...`);
|
117
|
-
await sleep(
|
126
|
+
await sleep(30000);
|
118
127
|
}
|
119
128
|
// finally, if the tx is still not included, show an error
|
120
129
|
console.error(`${chain} do not reflect nonce update for tx ${txIncluded.hash} with status ${txIncluded.status}`);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../../src/mina/transactions/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,MAAM,CAAC;AAG7C,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../../src/mina/transactions/send.ts"],"names":[],"mappings":"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"}
|
@@ -18,6 +18,7 @@ export declare function sendTx(params: {
|
|
18
18
|
verbose?: boolean;
|
19
19
|
wait?: boolean;
|
20
20
|
chain?: blockchain;
|
21
|
+
delay?: number;
|
21
22
|
}): Promise<Mina.IncludedTransaction | Mina.PendingTransaction | Mina.RejectedTransaction | undefined>;
|
22
23
|
export declare function getTxStatusFast(params: {
|
23
24
|
hash: string;
|
@@ -15,7 +15,7 @@ import { getCurrentNetwork } from "../utils/mina.js";
|
|
15
15
|
* `Mina.RejectedTransaction`, or `undefined` if there was an error during the process.
|
16
16
|
*/
|
17
17
|
export async function sendTx(params) {
|
18
|
-
const { tx, description = "", verbose = true, wait = true, chain = getCurrentNetwork().network.chainId, } = params;
|
18
|
+
const { tx, description = "", verbose = true, wait = true, chain = getCurrentNetwork().network.chainId, delay = chain === "zeko" ? 5000 : 30000, } = params;
|
19
19
|
// flatten accountUpdates
|
20
20
|
const accountUpdates = JSON.parse(tx.toJSON()).accountUpdates;
|
21
21
|
const auCount = [];
|
@@ -80,11 +80,9 @@ export async function sendTx(params) {
|
|
80
80
|
if (verbose)
|
81
81
|
console.log(`Waiting for tx inclusion...`);
|
82
82
|
let txIncluded = await txSent.safeWait();
|
83
|
-
if (txIncluded.status
|
84
|
-
|
85
|
-
|
86
|
-
else
|
87
|
-
console.error(`${description ?? ""} tx NOT included into block: hash: ${txIncluded.hash} status: ${txIncluded.status}`);
|
83
|
+
if (txIncluded.status !== "included") {
|
84
|
+
console.error(`${description ?? ""} tx NOT included into block: hash: ${txIncluded.hash} status: ${txIncluded.status}, errors: ${String(txIncluded.errors ?? "")}`);
|
85
|
+
}
|
88
86
|
if (chain !== "local") {
|
89
87
|
// we still wait for the tx to be included in the block by checking the nonce
|
90
88
|
// even in the case of tx NOT included
|
@@ -98,23 +96,34 @@ export async function sendTx(params) {
|
|
98
96
|
})).account?.nonce;
|
99
97
|
if (newNonce &&
|
100
98
|
Number(newNonce.toBigint()) > Number(nonce.toBigint())) {
|
101
|
-
|
102
|
-
if (txIncluded.status === "included")
|
99
|
+
let txIncluded = await txSent.safeWait();
|
100
|
+
if (txIncluded.status === "included") {
|
101
|
+
if (verbose)
|
102
|
+
console.log(`${description ?? ""} tx included into block: hash: ${txIncluded.hash} status: ${txIncluded.status}`);
|
103
|
+
if (delay > 0)
|
104
|
+
await sleep(delay);
|
103
105
|
return txIncluded;
|
106
|
+
}
|
104
107
|
else if (txIncluded.status === "rejected") {
|
105
108
|
// We never should see this error as the nonce is updated (except when tx failed due to a preconditions),
|
106
109
|
// so we retry to check if the tx is included
|
110
|
+
console.error(`tx rejected: ${chain}: hash: ${txIncluded.hash} status: ${txIncluded.status} errors: ${txIncluded.errors}`);
|
107
111
|
await sleep(30000);
|
108
|
-
|
109
|
-
if (txIncluded.status === "included")
|
112
|
+
txIncluded = await txSent.safeWait();
|
113
|
+
if (txIncluded.status === "included") {
|
114
|
+
if (verbose)
|
115
|
+
console.log(`${description ?? ""} tx included into block: hash: ${txIncluded.hash} status: ${txIncluded.status}`);
|
116
|
+
if (delay > 0)
|
117
|
+
await sleep(delay);
|
110
118
|
return txIncluded;
|
111
|
-
|
119
|
+
}
|
120
|
+
console.error(`tx failed: ${chain}: hash: ${txIncluded.hash} status: ${txIncluded.status} errors: ${txIncluded.errors}`);
|
112
121
|
return txIncluded;
|
113
122
|
}
|
114
123
|
}
|
115
124
|
if (verbose)
|
116
125
|
console.log(`Waiting for ${chain} to update state for ${Math.floor((Date.now() - started) / 1000)} sec...`);
|
117
|
-
await sleep(
|
126
|
+
await sleep(30000);
|
118
127
|
}
|
119
128
|
// finally, if the tx is still not included, show an error
|
120
129
|
console.error(`${chain} do not reflect nonce update for tx ${txIncluded.hash} with status ${txIncluded.status}`);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../../src/mina/transactions/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,MAAM,CAAC;AAG7C,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../../../src/mina/transactions/send.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -23,6 +23,7 @@ export async function sendTx(params: {
|
|
23
23
|
verbose?: boolean;
|
24
24
|
wait?: boolean;
|
25
25
|
chain?: blockchain;
|
26
|
+
delay?: number;
|
26
27
|
}): Promise<
|
27
28
|
| Mina.IncludedTransaction
|
28
29
|
| Mina.PendingTransaction
|
@@ -35,6 +36,7 @@ export async function sendTx(params: {
|
|
35
36
|
verbose = true,
|
36
37
|
wait = true,
|
37
38
|
chain = getCurrentNetwork().network.chainId,
|
39
|
+
delay = chain === "zeko" ? 5000 : 30000,
|
38
40
|
} = params;
|
39
41
|
// flatten accountUpdates
|
40
42
|
const accountUpdates = JSON.parse(tx.toJSON()).accountUpdates;
|
@@ -118,19 +120,15 @@ export async function sendTx(params: {
|
|
118
120
|
if (txSent.status === "pending" && wait !== false && chain !== "zeko") {
|
119
121
|
if (verbose) console.log(`Waiting for tx inclusion...`);
|
120
122
|
let txIncluded = await txSent.safeWait();
|
121
|
-
if (txIncluded.status
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
)
|
128
|
-
|
129
|
-
|
130
|
-
`${description ?? ""} tx NOT included into block: hash: ${
|
131
|
-
txIncluded.hash
|
132
|
-
} status: ${txIncluded.status}`
|
133
|
-
);
|
123
|
+
if (txIncluded.status !== "included") {
|
124
|
+
console.error(
|
125
|
+
`${description ?? ""} tx NOT included into block: hash: ${
|
126
|
+
txIncluded.hash
|
127
|
+
} status: ${txIncluded.status}, errors: ${String(
|
128
|
+
txIncluded.errors ?? ""
|
129
|
+
)}`
|
130
|
+
);
|
131
|
+
}
|
134
132
|
if (chain !== "local") {
|
135
133
|
// we still wait for the tx to be included in the block by checking the nonce
|
136
134
|
// even in the case of tx NOT included
|
@@ -148,16 +146,36 @@ export async function sendTx(params: {
|
|
148
146
|
newNonce &&
|
149
147
|
Number(newNonce.toBigint()) > Number(nonce.toBigint())
|
150
148
|
) {
|
151
|
-
|
152
|
-
if (txIncluded.status === "included")
|
153
|
-
|
149
|
+
let txIncluded = await txSent.safeWait();
|
150
|
+
if (txIncluded.status === "included") {
|
151
|
+
if (verbose)
|
152
|
+
console.log(
|
153
|
+
`${description ?? ""} tx included into block: hash: ${
|
154
|
+
txIncluded.hash
|
155
|
+
} status: ${txIncluded.status}`
|
156
|
+
);
|
157
|
+
if (delay > 0) await sleep(delay);
|
158
|
+
return txIncluded;
|
159
|
+
} else if (txIncluded.status === "rejected") {
|
154
160
|
// We never should see this error as the nonce is updated (except when tx failed due to a preconditions),
|
155
161
|
// so we retry to check if the tx is included
|
162
|
+
console.error(
|
163
|
+
`tx rejected: ${chain}: hash: ${txIncluded.hash} status: ${txIncluded.status} errors: ${txIncluded.errors}`
|
164
|
+
);
|
156
165
|
await sleep(30000);
|
157
|
-
|
158
|
-
if (txIncluded.status === "included")
|
166
|
+
txIncluded = await txSent.safeWait();
|
167
|
+
if (txIncluded.status === "included") {
|
168
|
+
if (verbose)
|
169
|
+
console.log(
|
170
|
+
`${description ?? ""} tx included into block: hash: ${
|
171
|
+
txIncluded.hash
|
172
|
+
} status: ${txIncluded.status}`
|
173
|
+
);
|
174
|
+
if (delay > 0) await sleep(delay);
|
175
|
+
return txIncluded;
|
176
|
+
}
|
159
177
|
console.error(
|
160
|
-
`tx failed: ${chain}
|
178
|
+
`tx failed: ${chain}: hash: ${txIncluded.hash} status: ${txIncluded.status} errors: ${txIncluded.errors}`
|
161
179
|
);
|
162
180
|
return txIncluded;
|
163
181
|
}
|
@@ -168,7 +186,7 @@ export async function sendTx(params: {
|
|
168
186
|
(Date.now() - started) / 1000
|
169
187
|
)} sec...`
|
170
188
|
);
|
171
|
-
await sleep(
|
189
|
+
await sleep(30000);
|
172
190
|
}
|
173
191
|
// finally, if the tx is still not included, show an error
|
174
192
|
console.error(
|