@metamask/transaction-controller 52.1.0 → 52.2.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 +39 -4
- package/dist/TransactionController.cjs +89 -24
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +35 -5
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +35 -5
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +89 -24
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/hooks/CollectPublishHook.cjs +84 -0
- package/dist/hooks/CollectPublishHook.cjs.map +1 -0
- package/dist/hooks/CollectPublishHook.d.cts +29 -0
- package/dist/hooks/CollectPublishHook.d.cts.map +1 -0
- package/dist/hooks/CollectPublishHook.d.mts +29 -0
- package/dist/hooks/CollectPublishHook.d.mts.map +1 -0
- package/dist/hooks/CollectPublishHook.mjs +80 -0
- package/dist/hooks/CollectPublishHook.mjs.map +1 -0
- package/dist/hooks/ExtraTransactionsPublishHook.cjs +90 -0
- package/dist/hooks/ExtraTransactionsPublishHook.cjs.map +1 -0
- package/dist/hooks/ExtraTransactionsPublishHook.d.cts +18 -0
- package/dist/hooks/ExtraTransactionsPublishHook.d.cts.map +1 -0
- package/dist/hooks/ExtraTransactionsPublishHook.d.mts +18 -0
- package/dist/hooks/ExtraTransactionsPublishHook.d.mts.map +1 -0
- package/dist/hooks/ExtraTransactionsPublishHook.mjs +86 -0
- package/dist/hooks/ExtraTransactionsPublishHook.mjs.map +1 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +143 -2
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +143 -2
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/batch.cjs +142 -1
- package/dist/utils/batch.cjs.map +1 -1
- package/dist/utils/batch.d.cts +7 -1
- package/dist/utils/batch.d.cts.map +1 -1
- package/dist/utils/batch.d.mts +7 -1
- package/dist/utils/batch.d.mts.map +1 -1
- package/dist/utils/batch.mjs +142 -1
- package/dist/utils/batch.mjs.map +1 -1
- package/dist/utils/eip7702.cjs +12 -0
- package/dist/utils/eip7702.cjs.map +1 -1
- package/dist/utils/eip7702.d.cts.map +1 -1
- package/dist/utils/eip7702.d.mts.map +1 -1
- package/dist/utils/eip7702.mjs +12 -0
- package/dist/utils/eip7702.mjs.map +1 -1
- package/dist/utils/gas.cjs +7 -3
- package/dist/utils/gas.cjs.map +1 -1
- package/dist/utils/gas.mjs +7 -3
- package/dist/utils/gas.mjs.map +1 -1
- package/dist/utils/nonce.cjs +3 -3
- package/dist/utils/nonce.cjs.map +1 -1
- package/dist/utils/nonce.d.cts +2 -2
- package/dist/utils/nonce.d.cts.map +1 -1
- package/dist/utils/nonce.d.mts +2 -2
- package/dist/utils/nonce.d.mts.map +1 -1
- package/dist/utils/nonce.mjs +3 -3
- package/dist/utils/nonce.mjs.map +1 -1
- package/dist/utils/simulation-api.cjs.map +1 -1
- package/dist/utils/simulation-api.d.cts +37 -0
- package/dist/utils/simulation-api.d.cts.map +1 -1
- package/dist/utils/simulation-api.d.mts +37 -0
- package/dist/utils/simulation-api.d.mts.map +1 -1
- package/dist/utils/simulation-api.mjs.map +1 -1
- package/dist/utils/simulation.cjs +46 -7
- package/dist/utils/simulation.cjs.map +1 -1
- package/dist/utils/simulation.d.cts +6 -2
- package/dist/utils/simulation.d.cts.map +1 -1
- package/dist/utils/simulation.d.mts +6 -2
- package/dist/utils/simulation.d.mts.map +1 -1
- package/dist/utils/simulation.mjs +46 -7
- package/dist/utils/simulation.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _CollectPublishHook_instances, _CollectPublishHook_publishPromises, _CollectPublishHook_signedTransactions, _CollectPublishHook_transactionCount, _CollectPublishHook_readyPromise, _CollectPublishHook_hook;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.CollectPublishHook = void 0;
|
|
16
|
+
const utils_1 = require("@metamask/utils");
|
|
17
|
+
const logger_1 = require("../logger.cjs");
|
|
18
|
+
const log = (0, utils_1.createModuleLogger)(logger_1.projectLogger, 'collect-publish-hook');
|
|
19
|
+
/**
|
|
20
|
+
* Custom publish logic that collects multiple signed transactions until a specific number is reached.
|
|
21
|
+
* Used by batch transactions to publish multiple transactions at once.
|
|
22
|
+
*/
|
|
23
|
+
class CollectPublishHook {
|
|
24
|
+
constructor(transactionCount) {
|
|
25
|
+
_CollectPublishHook_instances.add(this);
|
|
26
|
+
_CollectPublishHook_publishPromises.set(this, void 0);
|
|
27
|
+
_CollectPublishHook_signedTransactions.set(this, void 0);
|
|
28
|
+
_CollectPublishHook_transactionCount.set(this, void 0);
|
|
29
|
+
_CollectPublishHook_readyPromise.set(this, void 0);
|
|
30
|
+
__classPrivateFieldSet(this, _CollectPublishHook_publishPromises, [], "f");
|
|
31
|
+
__classPrivateFieldSet(this, _CollectPublishHook_readyPromise, (0, utils_1.createDeferredPromise)(), "f");
|
|
32
|
+
__classPrivateFieldSet(this, _CollectPublishHook_signedTransactions, [], "f");
|
|
33
|
+
__classPrivateFieldSet(this, _CollectPublishHook_transactionCount, transactionCount, "f");
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @returns The publish hook function to be passed to `addTransaction`.
|
|
37
|
+
*/
|
|
38
|
+
getHook() {
|
|
39
|
+
return __classPrivateFieldGet(this, _CollectPublishHook_instances, "m", _CollectPublishHook_hook).bind(this);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* @returns A promise that resolves when all transactions are signed.
|
|
43
|
+
*/
|
|
44
|
+
ready() {
|
|
45
|
+
return __classPrivateFieldGet(this, _CollectPublishHook_readyPromise, "f").promise;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Resolve all publish promises with the provided transaction hashes.
|
|
49
|
+
*
|
|
50
|
+
* @param transactionHashes - The transaction hashes to pass to the original publish promises.
|
|
51
|
+
*/
|
|
52
|
+
success(transactionHashes) {
|
|
53
|
+
log('Success', { transactionHashes });
|
|
54
|
+
if (transactionHashes.length !== __classPrivateFieldGet(this, _CollectPublishHook_transactionCount, "f")) {
|
|
55
|
+
throw new Error('Transaction hash count mismatch');
|
|
56
|
+
}
|
|
57
|
+
for (let i = 0; i < __classPrivateFieldGet(this, _CollectPublishHook_publishPromises, "f").length; i++) {
|
|
58
|
+
const publishPromise = __classPrivateFieldGet(this, _CollectPublishHook_publishPromises, "f")[i];
|
|
59
|
+
const transactionHash = transactionHashes[i];
|
|
60
|
+
publishPromise.resolve({ transactionHash });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
error(error) {
|
|
64
|
+
log('Error', { error });
|
|
65
|
+
for (const publishPromise of __classPrivateFieldGet(this, _CollectPublishHook_publishPromises, "f")) {
|
|
66
|
+
publishPromise.reject(error);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
exports.CollectPublishHook = CollectPublishHook;
|
|
71
|
+
_CollectPublishHook_publishPromises = new WeakMap(), _CollectPublishHook_signedTransactions = new WeakMap(), _CollectPublishHook_transactionCount = new WeakMap(), _CollectPublishHook_readyPromise = new WeakMap(), _CollectPublishHook_instances = new WeakSet(), _CollectPublishHook_hook = function _CollectPublishHook_hook(transactionMeta, signedTx) {
|
|
72
|
+
__classPrivateFieldGet(this, _CollectPublishHook_signedTransactions, "f").push(signedTx);
|
|
73
|
+
log('Processing transaction', { transactionMeta, signedTx });
|
|
74
|
+
const publishPromise = (0, utils_1.createDeferredPromise)();
|
|
75
|
+
__classPrivateFieldGet(this, _CollectPublishHook_publishPromises, "f").push(publishPromise);
|
|
76
|
+
if (__classPrivateFieldGet(this, _CollectPublishHook_signedTransactions, "f").length === __classPrivateFieldGet(this, _CollectPublishHook_transactionCount, "f")) {
|
|
77
|
+
log('All transactions signed');
|
|
78
|
+
__classPrivateFieldGet(this, _CollectPublishHook_readyPromise, "f").resolve({
|
|
79
|
+
signedTransactions: __classPrivateFieldGet(this, _CollectPublishHook_signedTransactions, "f"),
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
return publishPromise.promise;
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=CollectPublishHook.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollectPublishHook.cjs","sourceRoot":"","sources":["../../src/hooks/CollectPublishHook.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,2CAA4E;AAE5E,0CAA0C;AAG1C,MAAM,GAAG,GAAG,IAAA,0BAAkB,EAAC,sBAAa,EAAE,sBAAsB,CAAC,CAAC;AAMtE;;;GAGG;AACH,MAAa,kBAAkB;IAS7B,YAAY,gBAAwB;;QAR3B,sDAAuD;QAEvD,yDAA2B;QAE3B,uDAA0B;QAE1B,mDAAyD;QAGhE,uBAAA,IAAI,uCAAoB,EAAE,MAAA,CAAC;QAC3B,uBAAA,IAAI,oCAAiB,IAAA,6BAAqB,GAAE,MAAA,CAAC;QAC7C,uBAAA,IAAI,0CAAuB,EAAE,MAAA,CAAC;QAC9B,uBAAA,IAAI,wCAAqB,gBAAgB,MAAA,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,uBAAA,IAAI,+DAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,uBAAA,IAAI,wCAAc,CAAC,OAAO,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,iBAAwB;QAC9B,GAAG,CAAC,SAAS,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAEtC,IAAI,iBAAiB,CAAC,MAAM,KAAK,uBAAA,IAAI,4CAAkB,EAAE;YACvD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACpD;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAA,IAAI,2CAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrD,MAAM,cAAc,GAAG,uBAAA,IAAI,2CAAiB,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,eAAe,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAE7C,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;SAC7C;IACH,CAAC;IAED,KAAK,CAAC,KAAc;QAClB,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAExB,KAAK,MAAM,cAAc,IAAI,uBAAA,IAAI,2CAAiB,EAAE;YAClD,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;CAwBF;AAhFD,gDAgFC;iUArBG,eAAgC,EAChC,QAAgB;IAEhB,uBAAA,IAAI,8CAAoB,CAAC,IAAI,CAAC,QAAe,CAAC,CAAC;IAE/C,GAAG,CAAC,wBAAwB,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE7D,MAAM,cAAc,GAAG,IAAA,6BAAqB,GAAqB,CAAC;IAElE,uBAAA,IAAI,2CAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE3C,IAAI,uBAAA,IAAI,8CAAoB,CAAC,MAAM,KAAK,uBAAA,IAAI,4CAAkB,EAAE;QAC9D,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAE/B,uBAAA,IAAI,wCAAc,CAAC,OAAO,CAAC;YACzB,kBAAkB,EAAE,uBAAA,IAAI,8CAAoB;SAC7C,CAAC,CAAC;KACJ;IAED,OAAO,cAAc,CAAC,OAAO,CAAC;AAChC,CAAC","sourcesContent":["import type { DeferredPromise, Hex } from '@metamask/utils';\nimport { createDeferredPromise, createModuleLogger } from '@metamask/utils';\n\nimport { projectLogger } from '../logger';\nimport type { PublishHook, PublishHookResult, TransactionMeta } from '../types';\n\nconst log = createModuleLogger(projectLogger, 'collect-publish-hook');\n\nexport type CollectPublishHookResult = {\n signedTransactions: Hex[];\n};\n\n/**\n * Custom publish logic that collects multiple signed transactions until a specific number is reached.\n * Used by batch transactions to publish multiple transactions at once.\n */\nexport class CollectPublishHook {\n readonly #publishPromises: DeferredPromise<PublishHookResult>[];\n\n readonly #signedTransactions: Hex[];\n\n readonly #transactionCount: number;\n\n readonly #readyPromise: DeferredPromise<CollectPublishHookResult>;\n\n constructor(transactionCount: number) {\n this.#publishPromises = [];\n this.#readyPromise = createDeferredPromise();\n this.#signedTransactions = [];\n this.#transactionCount = transactionCount;\n }\n\n /**\n * @returns The publish hook function to be passed to `addTransaction`.\n */\n getHook(): PublishHook {\n return this.#hook.bind(this);\n }\n\n /**\n * @returns A promise that resolves when all transactions are signed.\n */\n ready(): Promise<CollectPublishHookResult> {\n return this.#readyPromise.promise;\n }\n\n /**\n * Resolve all publish promises with the provided transaction hashes.\n *\n * @param transactionHashes - The transaction hashes to pass to the original publish promises.\n */\n success(transactionHashes: Hex[]) {\n log('Success', { transactionHashes });\n\n if (transactionHashes.length !== this.#transactionCount) {\n throw new Error('Transaction hash count mismatch');\n }\n\n for (let i = 0; i < this.#publishPromises.length; i++) {\n const publishPromise = this.#publishPromises[i];\n const transactionHash = transactionHashes[i];\n\n publishPromise.resolve({ transactionHash });\n }\n }\n\n error(error: unknown) {\n log('Error', { error });\n\n for (const publishPromise of this.#publishPromises) {\n publishPromise.reject(error);\n }\n }\n\n #hook(\n transactionMeta: TransactionMeta,\n signedTx: string,\n ): Promise<PublishHookResult> {\n this.#signedTransactions.push(signedTx as Hex);\n\n log('Processing transaction', { transactionMeta, signedTx });\n\n const publishPromise = createDeferredPromise<PublishHookResult>();\n\n this.#publishPromises.push(publishPromise);\n\n if (this.#signedTransactions.length === this.#transactionCount) {\n log('All transactions signed');\n\n this.#readyPromise.resolve({\n signedTransactions: this.#signedTransactions,\n });\n }\n\n return publishPromise.promise;\n }\n}\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Hex } from "@metamask/utils";
|
|
2
|
+
import type { PublishHook } from "../types.cjs";
|
|
3
|
+
export type CollectPublishHookResult = {
|
|
4
|
+
signedTransactions: Hex[];
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Custom publish logic that collects multiple signed transactions until a specific number is reached.
|
|
8
|
+
* Used by batch transactions to publish multiple transactions at once.
|
|
9
|
+
*/
|
|
10
|
+
export declare class CollectPublishHook {
|
|
11
|
+
#private;
|
|
12
|
+
constructor(transactionCount: number);
|
|
13
|
+
/**
|
|
14
|
+
* @returns The publish hook function to be passed to `addTransaction`.
|
|
15
|
+
*/
|
|
16
|
+
getHook(): PublishHook;
|
|
17
|
+
/**
|
|
18
|
+
* @returns A promise that resolves when all transactions are signed.
|
|
19
|
+
*/
|
|
20
|
+
ready(): Promise<CollectPublishHookResult>;
|
|
21
|
+
/**
|
|
22
|
+
* Resolve all publish promises with the provided transaction hashes.
|
|
23
|
+
*
|
|
24
|
+
* @param transactionHashes - The transaction hashes to pass to the original publish promises.
|
|
25
|
+
*/
|
|
26
|
+
success(transactionHashes: Hex[]): void;
|
|
27
|
+
error(error: unknown): void;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=CollectPublishHook.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollectPublishHook.d.cts","sourceRoot":"","sources":["../../src/hooks/CollectPublishHook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,GAAG,EAAE,wBAAwB;AAI5D,OAAO,KAAK,EAAE,WAAW,EAAsC,qBAAiB;AAIhF,MAAM,MAAM,wBAAwB,GAAG;IACrC,kBAAkB,EAAE,GAAG,EAAE,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,qBAAa,kBAAkB;;gBASjB,gBAAgB,EAAE,MAAM;IAOpC;;OAEG;IACH,OAAO,IAAI,WAAW;IAItB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAI1C;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAehC,KAAK,CAAC,KAAK,EAAE,OAAO;CA8BrB"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Hex } from "@metamask/utils";
|
|
2
|
+
import type { PublishHook } from "../types.mjs";
|
|
3
|
+
export type CollectPublishHookResult = {
|
|
4
|
+
signedTransactions: Hex[];
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Custom publish logic that collects multiple signed transactions until a specific number is reached.
|
|
8
|
+
* Used by batch transactions to publish multiple transactions at once.
|
|
9
|
+
*/
|
|
10
|
+
export declare class CollectPublishHook {
|
|
11
|
+
#private;
|
|
12
|
+
constructor(transactionCount: number);
|
|
13
|
+
/**
|
|
14
|
+
* @returns The publish hook function to be passed to `addTransaction`.
|
|
15
|
+
*/
|
|
16
|
+
getHook(): PublishHook;
|
|
17
|
+
/**
|
|
18
|
+
* @returns A promise that resolves when all transactions are signed.
|
|
19
|
+
*/
|
|
20
|
+
ready(): Promise<CollectPublishHookResult>;
|
|
21
|
+
/**
|
|
22
|
+
* Resolve all publish promises with the provided transaction hashes.
|
|
23
|
+
*
|
|
24
|
+
* @param transactionHashes - The transaction hashes to pass to the original publish promises.
|
|
25
|
+
*/
|
|
26
|
+
success(transactionHashes: Hex[]): void;
|
|
27
|
+
error(error: unknown): void;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=CollectPublishHook.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollectPublishHook.d.mts","sourceRoot":"","sources":["../../src/hooks/CollectPublishHook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,GAAG,EAAE,wBAAwB;AAI5D,OAAO,KAAK,EAAE,WAAW,EAAsC,qBAAiB;AAIhF,MAAM,MAAM,wBAAwB,GAAG;IACrC,kBAAkB,EAAE,GAAG,EAAE,CAAC;CAC3B,CAAC;AAEF;;;GAGG;AACH,qBAAa,kBAAkB;;gBASjB,gBAAgB,EAAE,MAAM;IAOpC;;OAEG;IACH,OAAO,IAAI,WAAW;IAItB;;OAEG;IACH,KAAK,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAI1C;;;;OAIG;IACH,OAAO,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAehC,KAAK,CAAC,KAAK,EAAE,OAAO;CA8BrB"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _CollectPublishHook_instances, _CollectPublishHook_publishPromises, _CollectPublishHook_signedTransactions, _CollectPublishHook_transactionCount, _CollectPublishHook_readyPromise, _CollectPublishHook_hook;
|
|
13
|
+
import { createDeferredPromise, createModuleLogger } from "@metamask/utils";
|
|
14
|
+
import { projectLogger } from "../logger.mjs";
|
|
15
|
+
const log = createModuleLogger(projectLogger, 'collect-publish-hook');
|
|
16
|
+
/**
|
|
17
|
+
* Custom publish logic that collects multiple signed transactions until a specific number is reached.
|
|
18
|
+
* Used by batch transactions to publish multiple transactions at once.
|
|
19
|
+
*/
|
|
20
|
+
export class CollectPublishHook {
|
|
21
|
+
constructor(transactionCount) {
|
|
22
|
+
_CollectPublishHook_instances.add(this);
|
|
23
|
+
_CollectPublishHook_publishPromises.set(this, void 0);
|
|
24
|
+
_CollectPublishHook_signedTransactions.set(this, void 0);
|
|
25
|
+
_CollectPublishHook_transactionCount.set(this, void 0);
|
|
26
|
+
_CollectPublishHook_readyPromise.set(this, void 0);
|
|
27
|
+
__classPrivateFieldSet(this, _CollectPublishHook_publishPromises, [], "f");
|
|
28
|
+
__classPrivateFieldSet(this, _CollectPublishHook_readyPromise, createDeferredPromise(), "f");
|
|
29
|
+
__classPrivateFieldSet(this, _CollectPublishHook_signedTransactions, [], "f");
|
|
30
|
+
__classPrivateFieldSet(this, _CollectPublishHook_transactionCount, transactionCount, "f");
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @returns The publish hook function to be passed to `addTransaction`.
|
|
34
|
+
*/
|
|
35
|
+
getHook() {
|
|
36
|
+
return __classPrivateFieldGet(this, _CollectPublishHook_instances, "m", _CollectPublishHook_hook).bind(this);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* @returns A promise that resolves when all transactions are signed.
|
|
40
|
+
*/
|
|
41
|
+
ready() {
|
|
42
|
+
return __classPrivateFieldGet(this, _CollectPublishHook_readyPromise, "f").promise;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Resolve all publish promises with the provided transaction hashes.
|
|
46
|
+
*
|
|
47
|
+
* @param transactionHashes - The transaction hashes to pass to the original publish promises.
|
|
48
|
+
*/
|
|
49
|
+
success(transactionHashes) {
|
|
50
|
+
log('Success', { transactionHashes });
|
|
51
|
+
if (transactionHashes.length !== __classPrivateFieldGet(this, _CollectPublishHook_transactionCount, "f")) {
|
|
52
|
+
throw new Error('Transaction hash count mismatch');
|
|
53
|
+
}
|
|
54
|
+
for (let i = 0; i < __classPrivateFieldGet(this, _CollectPublishHook_publishPromises, "f").length; i++) {
|
|
55
|
+
const publishPromise = __classPrivateFieldGet(this, _CollectPublishHook_publishPromises, "f")[i];
|
|
56
|
+
const transactionHash = transactionHashes[i];
|
|
57
|
+
publishPromise.resolve({ transactionHash });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
error(error) {
|
|
61
|
+
log('Error', { error });
|
|
62
|
+
for (const publishPromise of __classPrivateFieldGet(this, _CollectPublishHook_publishPromises, "f")) {
|
|
63
|
+
publishPromise.reject(error);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
_CollectPublishHook_publishPromises = new WeakMap(), _CollectPublishHook_signedTransactions = new WeakMap(), _CollectPublishHook_transactionCount = new WeakMap(), _CollectPublishHook_readyPromise = new WeakMap(), _CollectPublishHook_instances = new WeakSet(), _CollectPublishHook_hook = function _CollectPublishHook_hook(transactionMeta, signedTx) {
|
|
68
|
+
__classPrivateFieldGet(this, _CollectPublishHook_signedTransactions, "f").push(signedTx);
|
|
69
|
+
log('Processing transaction', { transactionMeta, signedTx });
|
|
70
|
+
const publishPromise = createDeferredPromise();
|
|
71
|
+
__classPrivateFieldGet(this, _CollectPublishHook_publishPromises, "f").push(publishPromise);
|
|
72
|
+
if (__classPrivateFieldGet(this, _CollectPublishHook_signedTransactions, "f").length === __classPrivateFieldGet(this, _CollectPublishHook_transactionCount, "f")) {
|
|
73
|
+
log('All transactions signed');
|
|
74
|
+
__classPrivateFieldGet(this, _CollectPublishHook_readyPromise, "f").resolve({
|
|
75
|
+
signedTransactions: __classPrivateFieldGet(this, _CollectPublishHook_signedTransactions, "f"),
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
return publishPromise.promise;
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=CollectPublishHook.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CollectPublishHook.mjs","sourceRoot":"","sources":["../../src/hooks/CollectPublishHook.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,wBAAwB;AAE5E,OAAO,EAAE,aAAa,EAAE,sBAAkB;AAG1C,MAAM,GAAG,GAAG,kBAAkB,CAAC,aAAa,EAAE,sBAAsB,CAAC,CAAC;AAMtE;;;GAGG;AACH,MAAM,OAAO,kBAAkB;IAS7B,YAAY,gBAAwB;;QAR3B,sDAAuD;QAEvD,yDAA2B;QAE3B,uDAA0B;QAE1B,mDAAyD;QAGhE,uBAAA,IAAI,uCAAoB,EAAE,MAAA,CAAC;QAC3B,uBAAA,IAAI,oCAAiB,qBAAqB,EAAE,MAAA,CAAC;QAC7C,uBAAA,IAAI,0CAAuB,EAAE,MAAA,CAAC;QAC9B,uBAAA,IAAI,wCAAqB,gBAAgB,MAAA,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,uBAAA,IAAI,+DAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,OAAO,uBAAA,IAAI,wCAAc,CAAC,OAAO,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,iBAAwB;QAC9B,GAAG,CAAC,SAAS,EAAE,EAAE,iBAAiB,EAAE,CAAC,CAAC;QAEtC,IAAI,iBAAiB,CAAC,MAAM,KAAK,uBAAA,IAAI,4CAAkB,EAAE;YACvD,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;SACpD;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,uBAAA,IAAI,2CAAiB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrD,MAAM,cAAc,GAAG,uBAAA,IAAI,2CAAiB,CAAC,CAAC,CAAC,CAAC;YAChD,MAAM,eAAe,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAE7C,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;SAC7C;IACH,CAAC;IAED,KAAK,CAAC,KAAc;QAClB,GAAG,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAExB,KAAK,MAAM,cAAc,IAAI,uBAAA,IAAI,2CAAiB,EAAE;YAClD,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC9B;IACH,CAAC;CAwBF;iUArBG,eAAgC,EAChC,QAAgB;IAEhB,uBAAA,IAAI,8CAAoB,CAAC,IAAI,CAAC,QAAe,CAAC,CAAC;IAE/C,GAAG,CAAC,wBAAwB,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;IAE7D,MAAM,cAAc,GAAG,qBAAqB,EAAqB,CAAC;IAElE,uBAAA,IAAI,2CAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAE3C,IAAI,uBAAA,IAAI,8CAAoB,CAAC,MAAM,KAAK,uBAAA,IAAI,4CAAkB,EAAE;QAC9D,GAAG,CAAC,yBAAyB,CAAC,CAAC;QAE/B,uBAAA,IAAI,wCAAc,CAAC,OAAO,CAAC;YACzB,kBAAkB,EAAE,uBAAA,IAAI,8CAAoB;SAC7C,CAAC,CAAC;KACJ;IAED,OAAO,cAAc,CAAC,OAAO,CAAC;AAChC,CAAC","sourcesContent":["import type { DeferredPromise, Hex } from '@metamask/utils';\nimport { createDeferredPromise, createModuleLogger } from '@metamask/utils';\n\nimport { projectLogger } from '../logger';\nimport type { PublishHook, PublishHookResult, TransactionMeta } from '../types';\n\nconst log = createModuleLogger(projectLogger, 'collect-publish-hook');\n\nexport type CollectPublishHookResult = {\n signedTransactions: Hex[];\n};\n\n/**\n * Custom publish logic that collects multiple signed transactions until a specific number is reached.\n * Used by batch transactions to publish multiple transactions at once.\n */\nexport class CollectPublishHook {\n readonly #publishPromises: DeferredPromise<PublishHookResult>[];\n\n readonly #signedTransactions: Hex[];\n\n readonly #transactionCount: number;\n\n readonly #readyPromise: DeferredPromise<CollectPublishHookResult>;\n\n constructor(transactionCount: number) {\n this.#publishPromises = [];\n this.#readyPromise = createDeferredPromise();\n this.#signedTransactions = [];\n this.#transactionCount = transactionCount;\n }\n\n /**\n * @returns The publish hook function to be passed to `addTransaction`.\n */\n getHook(): PublishHook {\n return this.#hook.bind(this);\n }\n\n /**\n * @returns A promise that resolves when all transactions are signed.\n */\n ready(): Promise<CollectPublishHookResult> {\n return this.#readyPromise.promise;\n }\n\n /**\n * Resolve all publish promises with the provided transaction hashes.\n *\n * @param transactionHashes - The transaction hashes to pass to the original publish promises.\n */\n success(transactionHashes: Hex[]) {\n log('Success', { transactionHashes });\n\n if (transactionHashes.length !== this.#transactionCount) {\n throw new Error('Transaction hash count mismatch');\n }\n\n for (let i = 0; i < this.#publishPromises.length; i++) {\n const publishPromise = this.#publishPromises[i];\n const transactionHash = transactionHashes[i];\n\n publishPromise.resolve({ transactionHash });\n }\n }\n\n error(error: unknown) {\n log('Error', { error });\n\n for (const publishPromise of this.#publishPromises) {\n publishPromise.reject(error);\n }\n }\n\n #hook(\n transactionMeta: TransactionMeta,\n signedTx: string,\n ): Promise<PublishHookResult> {\n this.#signedTransactions.push(signedTx as Hex);\n\n log('Processing transaction', { transactionMeta, signedTx });\n\n const publishPromise = createDeferredPromise<PublishHookResult>();\n\n this.#publishPromises.push(publishPromise);\n\n if (this.#signedTransactions.length === this.#transactionCount) {\n log('All transactions signed');\n\n this.#readyPromise.resolve({\n signedTransactions: this.#signedTransactions,\n });\n }\n\n return publishPromise.promise;\n }\n}\n"]}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
3
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
4
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
5
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
6
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
7
|
+
};
|
|
8
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
9
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
10
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
|
+
};
|
|
13
|
+
var _ExtraTransactionsPublishHook_instances, _ExtraTransactionsPublishHook_addTransactionBatch, _ExtraTransactionsPublishHook_transactions, _ExtraTransactionsPublishHook_hook;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.ExtraTransactionsPublishHook = void 0;
|
|
16
|
+
const utils_1 = require("@metamask/utils");
|
|
17
|
+
const logger_1 = require("../logger.cjs");
|
|
18
|
+
const log = (0, utils_1.createModuleLogger)(logger_1.projectLogger, 'extra-transactions-publish-hook');
|
|
19
|
+
/**
|
|
20
|
+
* Custom publish logic that also publishes additional transactions in an batch.
|
|
21
|
+
* Requires the batch to be successful to resolve.
|
|
22
|
+
*/
|
|
23
|
+
class ExtraTransactionsPublishHook {
|
|
24
|
+
constructor({ addTransactionBatch, transactions, }) {
|
|
25
|
+
_ExtraTransactionsPublishHook_instances.add(this);
|
|
26
|
+
_ExtraTransactionsPublishHook_addTransactionBatch.set(this, void 0);
|
|
27
|
+
_ExtraTransactionsPublishHook_transactions.set(this, void 0);
|
|
28
|
+
__classPrivateFieldSet(this, _ExtraTransactionsPublishHook_addTransactionBatch, addTransactionBatch, "f");
|
|
29
|
+
__classPrivateFieldSet(this, _ExtraTransactionsPublishHook_transactions, transactions, "f");
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @returns The publish hook function.
|
|
33
|
+
*/
|
|
34
|
+
getHook() {
|
|
35
|
+
return __classPrivateFieldGet(this, _ExtraTransactionsPublishHook_instances, "m", _ExtraTransactionsPublishHook_hook).bind(this);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.ExtraTransactionsPublishHook = ExtraTransactionsPublishHook;
|
|
39
|
+
_ExtraTransactionsPublishHook_addTransactionBatch = new WeakMap(), _ExtraTransactionsPublishHook_transactions = new WeakMap(), _ExtraTransactionsPublishHook_instances = new WeakSet(), _ExtraTransactionsPublishHook_hook = async function _ExtraTransactionsPublishHook_hook(transactionMeta, signedTx) {
|
|
40
|
+
log('Publishing transaction as batch', { transactionMeta, signedTx });
|
|
41
|
+
const { id, networkClientId, txParams } = transactionMeta;
|
|
42
|
+
const from = txParams.from;
|
|
43
|
+
const to = txParams.to;
|
|
44
|
+
const data = txParams.data;
|
|
45
|
+
const value = txParams.value;
|
|
46
|
+
const gas = txParams.gas;
|
|
47
|
+
const maxFeePerGas = txParams.maxFeePerGas;
|
|
48
|
+
const maxPriorityFeePerGas = txParams.maxPriorityFeePerGas;
|
|
49
|
+
const signedTransaction = signedTx;
|
|
50
|
+
const resultPromise = (0, utils_1.createDeferredPromise)();
|
|
51
|
+
const onPublish = ({ transactionHash }) => {
|
|
52
|
+
resultPromise.resolve({ transactionHash });
|
|
53
|
+
};
|
|
54
|
+
const firstParams = {
|
|
55
|
+
data,
|
|
56
|
+
gas,
|
|
57
|
+
maxFeePerGas,
|
|
58
|
+
maxPriorityFeePerGas,
|
|
59
|
+
to,
|
|
60
|
+
value,
|
|
61
|
+
};
|
|
62
|
+
const firstTransaction = {
|
|
63
|
+
existingTransaction: {
|
|
64
|
+
id,
|
|
65
|
+
onPublish,
|
|
66
|
+
signedTransaction,
|
|
67
|
+
},
|
|
68
|
+
params: firstParams,
|
|
69
|
+
};
|
|
70
|
+
const extraTransactions = __classPrivateFieldGet(this, _ExtraTransactionsPublishHook_transactions, "f").map((transaction) => ({
|
|
71
|
+
params: transaction,
|
|
72
|
+
}));
|
|
73
|
+
const transactions = [
|
|
74
|
+
firstTransaction,
|
|
75
|
+
...extraTransactions,
|
|
76
|
+
];
|
|
77
|
+
log('Adding transaction batch', {
|
|
78
|
+
from,
|
|
79
|
+
networkClientId,
|
|
80
|
+
transactions,
|
|
81
|
+
});
|
|
82
|
+
await __classPrivateFieldGet(this, _ExtraTransactionsPublishHook_addTransactionBatch, "f").call(this, {
|
|
83
|
+
from,
|
|
84
|
+
networkClientId,
|
|
85
|
+
transactions,
|
|
86
|
+
useHook: true,
|
|
87
|
+
});
|
|
88
|
+
return resultPromise.promise;
|
|
89
|
+
};
|
|
90
|
+
//# sourceMappingURL=ExtraTransactionsPublishHook.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtraTransactionsPublishHook.cjs","sourceRoot":"","sources":["../../src/hooks/ExtraTransactionsPublishHook.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAIyB;AAGzB,0CAA0C;AAS1C,MAAM,GAAG,GAAG,IAAA,0BAAkB,EAC5B,sBAAa,EACb,iCAAiC,CAClC,CAAC;AAEF;;;GAGG;AACH,MAAa,4BAA4B;IAKvC,YAAY,EACV,mBAAmB,EACnB,YAAY,GAIb;;QAVQ,oEAAmE;QAEnE,6DAAwC;QAS/C,uBAAA,IAAI,qDAAwB,mBAAmB,MAAA,CAAC;QAChD,uBAAA,IAAI,8CAAiB,YAAY,MAAA,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,uBAAA,IAAI,mFAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CAoEF;AAzFD,oEAyFC;6NAlEC,KAAK,6CACH,eAAgC,EAChC,QAAgB;IAEhB,GAAG,CAAC,iCAAiC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEtE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;IAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAW,CAAC;IAClC,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAqB,CAAC;IAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAuB,CAAC;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAwB,CAAC;IAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAsB,CAAC;IAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,YAA+B,CAAC;IAC9D,MAAM,oBAAoB,GAAG,QAAQ,CAAC,oBAEzB,CAAC;IACd,MAAM,iBAAiB,GAAG,QAAe,CAAC;IAC1C,MAAM,aAAa,GAAG,IAAA,6BAAqB,GAAqB,CAAC;IAEjE,MAAM,SAAS,GAAG,CAAC,EAAE,eAAe,EAAgC,EAAE,EAAE;QACtE,aAAa,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,MAAM,WAAW,GAA2B;QAC1C,IAAI;QACJ,GAAG;QACH,YAAY;QACZ,oBAAoB;QACpB,EAAE;QACF,KAAK;KACN,CAAC;IAEF,MAAM,gBAAgB,GAAkC;QACtD,mBAAmB,EAAE;YACnB,EAAE;YACF,SAAS;YACT,iBAAiB;SAClB;QACD,MAAM,EAAE,WAAW;KACpB,CAAC;IAEF,MAAM,iBAAiB,GACrB,uBAAA,IAAI,kDAAc,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC,CAAC;IAEN,MAAM,YAAY,GAAoC;QACpD,gBAAgB;QAChB,GAAG,iBAAiB;KACrB,CAAC;IAEF,GAAG,CAAC,0BAA0B,EAAE;QAC9B,IAAI;QACJ,eAAe;QACf,YAAY;KACb,CAAC,CAAC;IAEH,MAAM,uBAAA,IAAI,yDAAqB,MAAzB,IAAI,EAAsB;QAC9B,IAAI;QACJ,eAAe;QACf,YAAY;QACZ,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC,OAAO,CAAC;AAC/B,CAAC","sourcesContent":["import {\n createDeferredPromise,\n createModuleLogger,\n type Hex,\n} from '@metamask/utils';\n\nimport type { TransactionController } from '..';\nimport { projectLogger } from '../logger';\nimport type {\n BatchTransactionParams,\n PublishHook,\n PublishHookResult,\n TransactionBatchSingleRequest,\n TransactionMeta,\n} from '../types';\n\nconst log = createModuleLogger(\n projectLogger,\n 'extra-transactions-publish-hook',\n);\n\n/**\n * Custom publish logic that also publishes additional transactions in an batch.\n * Requires the batch to be successful to resolve.\n */\nexport class ExtraTransactionsPublishHook {\n readonly #addTransactionBatch: TransactionController['addTransactionBatch'];\n\n readonly #transactions: BatchTransactionParams[];\n\n constructor({\n addTransactionBatch,\n transactions,\n }: {\n addTransactionBatch: TransactionController['addTransactionBatch'];\n transactions: BatchTransactionParams[];\n }) {\n this.#addTransactionBatch = addTransactionBatch;\n this.#transactions = transactions;\n }\n\n /**\n * @returns The publish hook function.\n */\n getHook(): PublishHook {\n return this.#hook.bind(this);\n }\n\n async #hook(\n transactionMeta: TransactionMeta,\n signedTx: string,\n ): Promise<PublishHookResult> {\n log('Publishing transaction as batch', { transactionMeta, signedTx });\n\n const { id, networkClientId, txParams } = transactionMeta;\n const from = txParams.from as Hex;\n const to = txParams.to as Hex | undefined;\n const data = txParams.data as Hex | undefined;\n const value = txParams.value as Hex | undefined;\n const gas = txParams.gas as Hex | undefined;\n const maxFeePerGas = txParams.maxFeePerGas as Hex | undefined;\n const maxPriorityFeePerGas = txParams.maxPriorityFeePerGas as\n | Hex\n | undefined;\n const signedTransaction = signedTx as Hex;\n const resultPromise = createDeferredPromise<PublishHookResult>();\n\n const onPublish = ({ transactionHash }: { transactionHash?: string }) => {\n resultPromise.resolve({ transactionHash });\n };\n\n const firstParams: BatchTransactionParams = {\n data,\n gas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n to,\n value,\n };\n\n const firstTransaction: TransactionBatchSingleRequest = {\n existingTransaction: {\n id,\n onPublish,\n signedTransaction,\n },\n params: firstParams,\n };\n\n const extraTransactions: TransactionBatchSingleRequest[] =\n this.#transactions.map((transaction) => ({\n params: transaction,\n }));\n\n const transactions: TransactionBatchSingleRequest[] = [\n firstTransaction,\n ...extraTransactions,\n ];\n\n log('Adding transaction batch', {\n from,\n networkClientId,\n transactions,\n });\n\n await this.#addTransactionBatch({\n from,\n networkClientId,\n transactions,\n useHook: true,\n });\n\n return resultPromise.promise;\n }\n}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TransactionController } from "../index.cjs";
|
|
2
|
+
import type { BatchTransactionParams, PublishHook } from "../types.cjs";
|
|
3
|
+
/**
|
|
4
|
+
* Custom publish logic that also publishes additional transactions in an batch.
|
|
5
|
+
* Requires the batch to be successful to resolve.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ExtraTransactionsPublishHook {
|
|
8
|
+
#private;
|
|
9
|
+
constructor({ addTransactionBatch, transactions, }: {
|
|
10
|
+
addTransactionBatch: TransactionController['addTransactionBatch'];
|
|
11
|
+
transactions: BatchTransactionParams[];
|
|
12
|
+
});
|
|
13
|
+
/**
|
|
14
|
+
* @returns The publish hook function.
|
|
15
|
+
*/
|
|
16
|
+
getHook(): PublishHook;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=ExtraTransactionsPublishHook.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtraTransactionsPublishHook.d.cts","sourceRoot":"","sources":["../../src/hooks/ExtraTransactionsPublishHook.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAW;AAEhD,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EAIZ,qBAAiB;AAOlB;;;GAGG;AACH,qBAAa,4BAA4B;;gBAK3B,EACV,mBAAmB,EACnB,YAAY,GACb,EAAE;QACD,mBAAmB,EAAE,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;QAClE,YAAY,EAAE,sBAAsB,EAAE,CAAC;KACxC;IAKD;;OAEG;IACH,OAAO,IAAI,WAAW;CAsEvB"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { TransactionController } from "../index.mjs";
|
|
2
|
+
import type { BatchTransactionParams, PublishHook } from "../types.mjs";
|
|
3
|
+
/**
|
|
4
|
+
* Custom publish logic that also publishes additional transactions in an batch.
|
|
5
|
+
* Requires the batch to be successful to resolve.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ExtraTransactionsPublishHook {
|
|
8
|
+
#private;
|
|
9
|
+
constructor({ addTransactionBatch, transactions, }: {
|
|
10
|
+
addTransactionBatch: TransactionController['addTransactionBatch'];
|
|
11
|
+
transactions: BatchTransactionParams[];
|
|
12
|
+
});
|
|
13
|
+
/**
|
|
14
|
+
* @returns The publish hook function.
|
|
15
|
+
*/
|
|
16
|
+
getHook(): PublishHook;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=ExtraTransactionsPublishHook.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtraTransactionsPublishHook.d.mts","sourceRoot":"","sources":["../../src/hooks/ExtraTransactionsPublishHook.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,qBAAqB,EAAE,qBAAW;AAEhD,OAAO,KAAK,EACV,sBAAsB,EACtB,WAAW,EAIZ,qBAAiB;AAOlB;;;GAGG;AACH,qBAAa,4BAA4B;;gBAK3B,EACV,mBAAmB,EACnB,YAAY,GACb,EAAE;QACD,mBAAmB,EAAE,qBAAqB,CAAC,qBAAqB,CAAC,CAAC;QAClE,YAAY,EAAE,sBAAsB,EAAE,CAAC;KACxC;IAKD;;OAEG;IACH,OAAO,IAAI,WAAW;CAsEvB"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _ExtraTransactionsPublishHook_instances, _ExtraTransactionsPublishHook_addTransactionBatch, _ExtraTransactionsPublishHook_transactions, _ExtraTransactionsPublishHook_hook;
|
|
13
|
+
import { createDeferredPromise, createModuleLogger } from "@metamask/utils";
|
|
14
|
+
import { projectLogger } from "../logger.mjs";
|
|
15
|
+
const log = createModuleLogger(projectLogger, 'extra-transactions-publish-hook');
|
|
16
|
+
/**
|
|
17
|
+
* Custom publish logic that also publishes additional transactions in an batch.
|
|
18
|
+
* Requires the batch to be successful to resolve.
|
|
19
|
+
*/
|
|
20
|
+
export class ExtraTransactionsPublishHook {
|
|
21
|
+
constructor({ addTransactionBatch, transactions, }) {
|
|
22
|
+
_ExtraTransactionsPublishHook_instances.add(this);
|
|
23
|
+
_ExtraTransactionsPublishHook_addTransactionBatch.set(this, void 0);
|
|
24
|
+
_ExtraTransactionsPublishHook_transactions.set(this, void 0);
|
|
25
|
+
__classPrivateFieldSet(this, _ExtraTransactionsPublishHook_addTransactionBatch, addTransactionBatch, "f");
|
|
26
|
+
__classPrivateFieldSet(this, _ExtraTransactionsPublishHook_transactions, transactions, "f");
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* @returns The publish hook function.
|
|
30
|
+
*/
|
|
31
|
+
getHook() {
|
|
32
|
+
return __classPrivateFieldGet(this, _ExtraTransactionsPublishHook_instances, "m", _ExtraTransactionsPublishHook_hook).bind(this);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
_ExtraTransactionsPublishHook_addTransactionBatch = new WeakMap(), _ExtraTransactionsPublishHook_transactions = new WeakMap(), _ExtraTransactionsPublishHook_instances = new WeakSet(), _ExtraTransactionsPublishHook_hook = async function _ExtraTransactionsPublishHook_hook(transactionMeta, signedTx) {
|
|
36
|
+
log('Publishing transaction as batch', { transactionMeta, signedTx });
|
|
37
|
+
const { id, networkClientId, txParams } = transactionMeta;
|
|
38
|
+
const from = txParams.from;
|
|
39
|
+
const to = txParams.to;
|
|
40
|
+
const data = txParams.data;
|
|
41
|
+
const value = txParams.value;
|
|
42
|
+
const gas = txParams.gas;
|
|
43
|
+
const maxFeePerGas = txParams.maxFeePerGas;
|
|
44
|
+
const maxPriorityFeePerGas = txParams.maxPriorityFeePerGas;
|
|
45
|
+
const signedTransaction = signedTx;
|
|
46
|
+
const resultPromise = createDeferredPromise();
|
|
47
|
+
const onPublish = ({ transactionHash }) => {
|
|
48
|
+
resultPromise.resolve({ transactionHash });
|
|
49
|
+
};
|
|
50
|
+
const firstParams = {
|
|
51
|
+
data,
|
|
52
|
+
gas,
|
|
53
|
+
maxFeePerGas,
|
|
54
|
+
maxPriorityFeePerGas,
|
|
55
|
+
to,
|
|
56
|
+
value,
|
|
57
|
+
};
|
|
58
|
+
const firstTransaction = {
|
|
59
|
+
existingTransaction: {
|
|
60
|
+
id,
|
|
61
|
+
onPublish,
|
|
62
|
+
signedTransaction,
|
|
63
|
+
},
|
|
64
|
+
params: firstParams,
|
|
65
|
+
};
|
|
66
|
+
const extraTransactions = __classPrivateFieldGet(this, _ExtraTransactionsPublishHook_transactions, "f").map((transaction) => ({
|
|
67
|
+
params: transaction,
|
|
68
|
+
}));
|
|
69
|
+
const transactions = [
|
|
70
|
+
firstTransaction,
|
|
71
|
+
...extraTransactions,
|
|
72
|
+
];
|
|
73
|
+
log('Adding transaction batch', {
|
|
74
|
+
from,
|
|
75
|
+
networkClientId,
|
|
76
|
+
transactions,
|
|
77
|
+
});
|
|
78
|
+
await __classPrivateFieldGet(this, _ExtraTransactionsPublishHook_addTransactionBatch, "f").call(this, {
|
|
79
|
+
from,
|
|
80
|
+
networkClientId,
|
|
81
|
+
transactions,
|
|
82
|
+
useHook: true,
|
|
83
|
+
});
|
|
84
|
+
return resultPromise.promise;
|
|
85
|
+
};
|
|
86
|
+
//# sourceMappingURL=ExtraTransactionsPublishHook.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExtraTransactionsPublishHook.mjs","sourceRoot":"","sources":["../../src/hooks/ExtraTransactionsPublishHook.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAEnB,wBAAwB;AAGzB,OAAO,EAAE,aAAa,EAAE,sBAAkB;AAS1C,MAAM,GAAG,GAAG,kBAAkB,CAC5B,aAAa,EACb,iCAAiC,CAClC,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,4BAA4B;IAKvC,YAAY,EACV,mBAAmB,EACnB,YAAY,GAIb;;QAVQ,oEAAmE;QAEnE,6DAAwC;QAS/C,uBAAA,IAAI,qDAAwB,mBAAmB,MAAA,CAAC;QAChD,uBAAA,IAAI,8CAAiB,YAAY,MAAA,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,OAAO,uBAAA,IAAI,mFAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;CAoEF;6NAlEC,KAAK,6CACH,eAAgC,EAChC,QAAgB;IAEhB,GAAG,CAAC,iCAAiC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEtE,MAAM,EAAE,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,GAAG,eAAe,CAAC;IAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAW,CAAC;IAClC,MAAM,EAAE,GAAG,QAAQ,CAAC,EAAqB,CAAC;IAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAuB,CAAC;IAC9C,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAwB,CAAC;IAChD,MAAM,GAAG,GAAG,QAAQ,CAAC,GAAsB,CAAC;IAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,YAA+B,CAAC;IAC9D,MAAM,oBAAoB,GAAG,QAAQ,CAAC,oBAEzB,CAAC;IACd,MAAM,iBAAiB,GAAG,QAAe,CAAC;IAC1C,MAAM,aAAa,GAAG,qBAAqB,EAAqB,CAAC;IAEjE,MAAM,SAAS,GAAG,CAAC,EAAE,eAAe,EAAgC,EAAE,EAAE;QACtE,aAAa,CAAC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC;IAEF,MAAM,WAAW,GAA2B;QAC1C,IAAI;QACJ,GAAG;QACH,YAAY;QACZ,oBAAoB;QACpB,EAAE;QACF,KAAK;KACN,CAAC;IAEF,MAAM,gBAAgB,GAAkC;QACtD,mBAAmB,EAAE;YACnB,EAAE;YACF,SAAS;YACT,iBAAiB;SAClB;QACD,MAAM,EAAE,WAAW;KACpB,CAAC;IAEF,MAAM,iBAAiB,GACrB,uBAAA,IAAI,kDAAc,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QACvC,MAAM,EAAE,WAAW;KACpB,CAAC,CAAC,CAAC;IAEN,MAAM,YAAY,GAAoC;QACpD,gBAAgB;QAChB,GAAG,iBAAiB;KACrB,CAAC;IAEF,GAAG,CAAC,0BAA0B,EAAE;QAC9B,IAAI;QACJ,eAAe;QACf,YAAY;KACb,CAAC,CAAC;IAEH,MAAM,uBAAA,IAAI,yDAAqB,MAAzB,IAAI,EAAsB;QAC9B,IAAI;QACJ,eAAe;QACf,YAAY;QACZ,OAAO,EAAE,IAAI;KACd,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC,OAAO,CAAC;AAC/B,CAAC","sourcesContent":["import {\n createDeferredPromise,\n createModuleLogger,\n type Hex,\n} from '@metamask/utils';\n\nimport type { TransactionController } from '..';\nimport { projectLogger } from '../logger';\nimport type {\n BatchTransactionParams,\n PublishHook,\n PublishHookResult,\n TransactionBatchSingleRequest,\n TransactionMeta,\n} from '../types';\n\nconst log = createModuleLogger(\n projectLogger,\n 'extra-transactions-publish-hook',\n);\n\n/**\n * Custom publish logic that also publishes additional transactions in an batch.\n * Requires the batch to be successful to resolve.\n */\nexport class ExtraTransactionsPublishHook {\n readonly #addTransactionBatch: TransactionController['addTransactionBatch'];\n\n readonly #transactions: BatchTransactionParams[];\n\n constructor({\n addTransactionBatch,\n transactions,\n }: {\n addTransactionBatch: TransactionController['addTransactionBatch'];\n transactions: BatchTransactionParams[];\n }) {\n this.#addTransactionBatch = addTransactionBatch;\n this.#transactions = transactions;\n }\n\n /**\n * @returns The publish hook function.\n */\n getHook(): PublishHook {\n return this.#hook.bind(this);\n }\n\n async #hook(\n transactionMeta: TransactionMeta,\n signedTx: string,\n ): Promise<PublishHookResult> {\n log('Publishing transaction as batch', { transactionMeta, signedTx });\n\n const { id, networkClientId, txParams } = transactionMeta;\n const from = txParams.from as Hex;\n const to = txParams.to as Hex | undefined;\n const data = txParams.data as Hex | undefined;\n const value = txParams.value as Hex | undefined;\n const gas = txParams.gas as Hex | undefined;\n const maxFeePerGas = txParams.maxFeePerGas as Hex | undefined;\n const maxPriorityFeePerGas = txParams.maxPriorityFeePerGas as\n | Hex\n | undefined;\n const signedTransaction = signedTx as Hex;\n const resultPromise = createDeferredPromise<PublishHookResult>();\n\n const onPublish = ({ transactionHash }: { transactionHash?: string }) => {\n resultPromise.resolve({ transactionHash });\n };\n\n const firstParams: BatchTransactionParams = {\n data,\n gas,\n maxFeePerGas,\n maxPriorityFeePerGas,\n to,\n value,\n };\n\n const firstTransaction: TransactionBatchSingleRequest = {\n existingTransaction: {\n id,\n onPublish,\n signedTransaction,\n },\n params: firstParams,\n };\n\n const extraTransactions: TransactionBatchSingleRequest[] =\n this.#transactions.map((transaction) => ({\n params: transaction,\n }));\n\n const transactions: TransactionBatchSingleRequest[] = [\n firstTransaction,\n ...extraTransactions,\n ];\n\n log('Adding transaction batch', {\n from,\n networkClientId,\n transactions,\n });\n\n await this.#addTransactionBatch({\n from,\n networkClientId,\n transactions,\n useHook: true,\n });\n\n return resultPromise.promise;\n }\n}\n"]}
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AA0BA,qEAIiC;AAH/B,oHAAA,WAAW,OAAA;AACX,sHAAA,aAAa,OAAA;AACb,8HAAA,qBAAqB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.cjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AA0BA,qEAIiC;AAH/B,oHAAA,WAAW,OAAA;AACX,sHAAA,aAAa,OAAA;AACb,8HAAA,qBAAqB,OAAA;AA4CvB,qCAUiB;AATf,4GAAA,mBAAmB,OAAA;AACnB,2GAAA,kBAAkB,OAAA;AAClB,4GAAA,mBAAmB,OAAA;AACnB,gHAAA,uBAAuB,OAAA;AACvB,gHAAA,uBAAuB,OAAA;AACvB,0GAAA,iBAAiB,OAAA;AACjB,wGAAA,eAAe,OAAA;AACf,qGAAA,YAAY,OAAA;AACZ,qGAAA,YAAY,OAAA;AAEd,+CAGyB;AAFvB,8HAAA,mCAAmC,OAAA;AACnC,yHAAA,8BAA8B,OAAA;AAEhC,iEAAoE;AAA3D,4HAAA,wBAAwB,OAAA;AACjC,iDAAwD;AAA/C,gHAAA,oBAAoB,OAAA;AAC7B,2CAGuB;AAFrB,6GAAA,oBAAoB,OAAA;AACpB,mHAAA,0BAA0B,OAAA;AAE5B,6CAAwC;AAA/B,sGAAA,SAAS,OAAA;AAClB,uGAAgI;AAAvH,+JAAA,mBAAmB,OAA6C;AACzE,+CAA2C;AAAlC,mGAAA,QAAQ,OAAA","sourcesContent":["export type {\n MethodData,\n Result,\n TransactionControllerActions,\n TransactionControllerEvents,\n TransactionControllerGetStateAction,\n TransactionControllerIncomingTransactionsReceivedEvent,\n TransactionControllerPostTransactionBalanceUpdatedEvent,\n TransactionControllerSpeedupTransactionAddedEvent,\n TransactionControllerState,\n TransactionControllerStateChangeEvent,\n TransactionControllerTransactionApprovedEvent,\n TransactionControllerTransactionConfirmedEvent,\n TransactionControllerTransactionDroppedEvent,\n TransactionControllerTransactionFailedEvent,\n TransactionControllerTransactionFinishedEvent,\n TransactionControllerTransactionNewSwapApprovalEvent,\n TransactionControllerTransactionNewSwapEvent,\n TransactionControllerTransactionPublishingSkipped,\n TransactionControllerTransactionRejectedEvent,\n TransactionControllerTransactionStatusUpdatedEvent,\n TransactionControllerTransactionSubmittedEvent,\n TransactionControllerUnapprovedTransactionAddedEvent,\n TransactionControllerMessenger,\n TransactionControllerOptions,\n} from './TransactionController';\nexport {\n CANCEL_RATE,\n SPEED_UP_RATE,\n TransactionController,\n} from './TransactionController';\nexport type {\n Authorization,\n AuthorizationList,\n BatchTransactionParams,\n DappSuggestedGasFees,\n DefaultGasEstimates,\n FeeMarketEIP1559Values,\n FeeMarketGasFeeEstimateForLevel,\n FeeMarketGasFeeEstimates,\n GasFeeEstimates,\n GasFeeToken,\n GasPriceGasFeeEstimates,\n GasPriceValue,\n InferTransactionTypeResult,\n LegacyGasFeeEstimates,\n Log,\n NestedTransactionMetadata,\n PublishBatchHook,\n PublishBatchHookRequest,\n PublishBatchHookResult,\n PublishBatchHookTransaction,\n PublishHook,\n PublishHookResult,\n SavedGasFees,\n SecurityAlertResponse,\n SecurityProviderRequest,\n SendFlowHistoryEntry,\n SimulationBalanceChange,\n SimulationData,\n SimulationError,\n SimulationToken,\n SimulationTokenBalanceChange,\n TransactionBatchRequest,\n TransactionBatchResult,\n TransactionError,\n TransactionHistory,\n TransactionHistoryEntry,\n TransactionMeta,\n TransactionParams,\n TransactionReceipt,\n ValidateSecurityRequest,\n} from './types';\nexport {\n GasFeeEstimateLevel,\n GasFeeEstimateType,\n SimulationErrorCode,\n SimulationTokenStandard,\n TransactionEnvelopeType,\n TransactionStatus,\n TransactionType,\n UserFeeLevel,\n WalletDevice,\n} from './types';\nexport {\n DISPLAYED_TRANSACTION_HISTORY_PATHS,\n MAX_TRANSACTION_HISTORY_LENGTH,\n} from './utils/history';\nexport { determineTransactionType } from './utils/transaction-type';\nexport { mergeGasFeeEstimates } from './utils/gas-flow';\nexport {\n isEIP1559Transaction,\n normalizeTransactionParams,\n} from './utils/utils';\nexport { CHAIN_IDS } from './constants';\nexport { SUPPORTED_CHAIN_IDS as INCOMING_TRANSACTIONS_SUPPORTED_CHAIN_IDS } from './helpers/AccountsApiRemoteTransactionSource';\nexport { HARDFORK } from './utils/prepare';\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type { MethodData, Result, TransactionControllerActions, TransactionControllerEvents, TransactionControllerGetStateAction, TransactionControllerIncomingTransactionsReceivedEvent, TransactionControllerPostTransactionBalanceUpdatedEvent, TransactionControllerSpeedupTransactionAddedEvent, TransactionControllerState, TransactionControllerStateChangeEvent, TransactionControllerTransactionApprovedEvent, TransactionControllerTransactionConfirmedEvent, TransactionControllerTransactionDroppedEvent, TransactionControllerTransactionFailedEvent, TransactionControllerTransactionFinishedEvent, TransactionControllerTransactionNewSwapApprovalEvent, TransactionControllerTransactionNewSwapEvent, TransactionControllerTransactionPublishingSkipped, TransactionControllerTransactionRejectedEvent, TransactionControllerTransactionStatusUpdatedEvent, TransactionControllerTransactionSubmittedEvent, TransactionControllerUnapprovedTransactionAddedEvent, TransactionControllerMessenger, TransactionControllerOptions, } from "./TransactionController.cjs";
|
|
2
2
|
export { CANCEL_RATE, SPEED_UP_RATE, TransactionController, } from "./TransactionController.cjs";
|
|
3
|
-
export type { Authorization, AuthorizationList, BatchTransactionParams, DappSuggestedGasFees, DefaultGasEstimates, FeeMarketEIP1559Values, FeeMarketGasFeeEstimateForLevel, FeeMarketGasFeeEstimates, GasFeeEstimates, GasPriceGasFeeEstimates, GasPriceValue, InferTransactionTypeResult, LegacyGasFeeEstimates, Log, NestedTransactionMetadata, SavedGasFees, SecurityAlertResponse, SecurityProviderRequest, SendFlowHistoryEntry, SimulationBalanceChange, SimulationData, SimulationError, SimulationToken, SimulationTokenBalanceChange, TransactionBatchRequest, TransactionBatchResult, TransactionError, TransactionHistory, TransactionHistoryEntry, TransactionMeta, TransactionParams, TransactionReceipt, } from "./types.cjs";
|
|
3
|
+
export type { Authorization, AuthorizationList, BatchTransactionParams, DappSuggestedGasFees, DefaultGasEstimates, FeeMarketEIP1559Values, FeeMarketGasFeeEstimateForLevel, FeeMarketGasFeeEstimates, GasFeeEstimates, GasFeeToken, GasPriceGasFeeEstimates, GasPriceValue, InferTransactionTypeResult, LegacyGasFeeEstimates, Log, NestedTransactionMetadata, PublishBatchHook, PublishBatchHookRequest, PublishBatchHookResult, PublishBatchHookTransaction, PublishHook, PublishHookResult, SavedGasFees, SecurityAlertResponse, SecurityProviderRequest, SendFlowHistoryEntry, SimulationBalanceChange, SimulationData, SimulationError, SimulationToken, SimulationTokenBalanceChange, TransactionBatchRequest, TransactionBatchResult, TransactionError, TransactionHistory, TransactionHistoryEntry, TransactionMeta, TransactionParams, TransactionReceipt, ValidateSecurityRequest, } from "./types.cjs";
|
|
4
4
|
export { GasFeeEstimateLevel, GasFeeEstimateType, SimulationErrorCode, SimulationTokenStandard, TransactionEnvelopeType, TransactionStatus, TransactionType, UserFeeLevel, WalletDevice, } from "./types.cjs";
|
|
5
5
|
export { DISPLAYED_TRANSACTION_HISTORY_PATHS, MAX_TRANSACTION_HISTORY_LENGTH, } from "./utils/history.cjs";
|
|
6
6
|
export { determineTransactionType } from "./utils/transaction-type.cjs";
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,MAAM,EACN,4BAA4B,EAC5B,2BAA2B,EAC3B,mCAAmC,EACnC,sDAAsD,EACtD,uDAAuD,EACvD,iDAAiD,EACjD,0BAA0B,EAC1B,qCAAqC,EACrC,6CAA6C,EAC7C,8CAA8C,EAC9C,4CAA4C,EAC5C,2CAA2C,EAC3C,6CAA6C,EAC7C,oDAAoD,EACpD,4CAA4C,EAC5C,iDAAiD,EACjD,6CAA6C,EAC7C,kDAAkD,EAClD,8CAA8C,EAC9C,oDAAoD,EACpD,8BAA8B,EAC9B,4BAA4B,GAC7B,oCAAgC;AACjC,OAAO,EACL,WAAW,EACX,aAAa,EACb,qBAAqB,GACtB,oCAAgC;AACjC,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,+BAA+B,EAC/B,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,0BAA0B,EAC1B,qBAAqB,EACrB,GAAG,EACH,yBAAyB,EACzB,YAAY,EACZ,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,eAAe,EACf,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,MAAM,EACN,4BAA4B,EAC5B,2BAA2B,EAC3B,mCAAmC,EACnC,sDAAsD,EACtD,uDAAuD,EACvD,iDAAiD,EACjD,0BAA0B,EAC1B,qCAAqC,EACrC,6CAA6C,EAC7C,8CAA8C,EAC9C,4CAA4C,EAC5C,2CAA2C,EAC3C,6CAA6C,EAC7C,oDAAoD,EACpD,4CAA4C,EAC5C,iDAAiD,EACjD,6CAA6C,EAC7C,kDAAkD,EAClD,8CAA8C,EAC9C,oDAAoD,EACpD,8BAA8B,EAC9B,4BAA4B,GAC7B,oCAAgC;AACjC,OAAO,EACL,WAAW,EACX,aAAa,EACb,qBAAqB,GACtB,oCAAgC;AACjC,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,+BAA+B,EAC/B,wBAAwB,EACxB,eAAe,EACf,WAAW,EACX,uBAAuB,EACvB,aAAa,EACb,0BAA0B,EAC1B,qBAAqB,EACrB,GAAG,EACH,yBAAyB,EACzB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,eAAe,EACf,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,GACxB,oBAAgB;AACjB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,GACb,oBAAgB;AACjB,OAAO,EACL,mCAAmC,EACnC,8BAA8B,GAC/B,4BAAwB;AACzB,OAAO,EAAE,wBAAwB,EAAE,qCAAiC;AACpE,OAAO,EAAE,oBAAoB,EAAE,6BAAyB;AACxD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAC3B,0BAAsB;AACvB,OAAO,EAAE,SAAS,EAAE,wBAAoB;AACxC,OAAO,EAAE,mBAAmB,IAAI,yCAAyC,EAAE,yDAAqD;AAChI,OAAO,EAAE,QAAQ,EAAE,4BAAwB"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type { MethodData, Result, TransactionControllerActions, TransactionControllerEvents, TransactionControllerGetStateAction, TransactionControllerIncomingTransactionsReceivedEvent, TransactionControllerPostTransactionBalanceUpdatedEvent, TransactionControllerSpeedupTransactionAddedEvent, TransactionControllerState, TransactionControllerStateChangeEvent, TransactionControllerTransactionApprovedEvent, TransactionControllerTransactionConfirmedEvent, TransactionControllerTransactionDroppedEvent, TransactionControllerTransactionFailedEvent, TransactionControllerTransactionFinishedEvent, TransactionControllerTransactionNewSwapApprovalEvent, TransactionControllerTransactionNewSwapEvent, TransactionControllerTransactionPublishingSkipped, TransactionControllerTransactionRejectedEvent, TransactionControllerTransactionStatusUpdatedEvent, TransactionControllerTransactionSubmittedEvent, TransactionControllerUnapprovedTransactionAddedEvent, TransactionControllerMessenger, TransactionControllerOptions, } from "./TransactionController.mjs";
|
|
2
2
|
export { CANCEL_RATE, SPEED_UP_RATE, TransactionController, } from "./TransactionController.mjs";
|
|
3
|
-
export type { Authorization, AuthorizationList, BatchTransactionParams, DappSuggestedGasFees, DefaultGasEstimates, FeeMarketEIP1559Values, FeeMarketGasFeeEstimateForLevel, FeeMarketGasFeeEstimates, GasFeeEstimates, GasPriceGasFeeEstimates, GasPriceValue, InferTransactionTypeResult, LegacyGasFeeEstimates, Log, NestedTransactionMetadata, SavedGasFees, SecurityAlertResponse, SecurityProviderRequest, SendFlowHistoryEntry, SimulationBalanceChange, SimulationData, SimulationError, SimulationToken, SimulationTokenBalanceChange, TransactionBatchRequest, TransactionBatchResult, TransactionError, TransactionHistory, TransactionHistoryEntry, TransactionMeta, TransactionParams, TransactionReceipt, } from "./types.mjs";
|
|
3
|
+
export type { Authorization, AuthorizationList, BatchTransactionParams, DappSuggestedGasFees, DefaultGasEstimates, FeeMarketEIP1559Values, FeeMarketGasFeeEstimateForLevel, FeeMarketGasFeeEstimates, GasFeeEstimates, GasFeeToken, GasPriceGasFeeEstimates, GasPriceValue, InferTransactionTypeResult, LegacyGasFeeEstimates, Log, NestedTransactionMetadata, PublishBatchHook, PublishBatchHookRequest, PublishBatchHookResult, PublishBatchHookTransaction, PublishHook, PublishHookResult, SavedGasFees, SecurityAlertResponse, SecurityProviderRequest, SendFlowHistoryEntry, SimulationBalanceChange, SimulationData, SimulationError, SimulationToken, SimulationTokenBalanceChange, TransactionBatchRequest, TransactionBatchResult, TransactionError, TransactionHistory, TransactionHistoryEntry, TransactionMeta, TransactionParams, TransactionReceipt, ValidateSecurityRequest, } from "./types.mjs";
|
|
4
4
|
export { GasFeeEstimateLevel, GasFeeEstimateType, SimulationErrorCode, SimulationTokenStandard, TransactionEnvelopeType, TransactionStatus, TransactionType, UserFeeLevel, WalletDevice, } from "./types.mjs";
|
|
5
5
|
export { DISPLAYED_TRANSACTION_HISTORY_PATHS, MAX_TRANSACTION_HISTORY_LENGTH, } from "./utils/history.mjs";
|
|
6
6
|
export { determineTransactionType } from "./utils/transaction-type.mjs";
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,MAAM,EACN,4BAA4B,EAC5B,2BAA2B,EAC3B,mCAAmC,EACnC,sDAAsD,EACtD,uDAAuD,EACvD,iDAAiD,EACjD,0BAA0B,EAC1B,qCAAqC,EACrC,6CAA6C,EAC7C,8CAA8C,EAC9C,4CAA4C,EAC5C,2CAA2C,EAC3C,6CAA6C,EAC7C,oDAAoD,EACpD,4CAA4C,EAC5C,iDAAiD,EACjD,6CAA6C,EAC7C,kDAAkD,EAClD,8CAA8C,EAC9C,oDAAoD,EACpD,8BAA8B,EAC9B,4BAA4B,GAC7B,oCAAgC;AACjC,OAAO,EACL,WAAW,EACX,aAAa,EACb,qBAAqB,GACtB,oCAAgC;AACjC,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,+BAA+B,EAC/B,wBAAwB,EACxB,eAAe,EACf,uBAAuB,EACvB,aAAa,EACb,0BAA0B,EAC1B,qBAAqB,EACrB,GAAG,EACH,yBAAyB,EACzB,YAAY,EACZ,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,eAAe,EACf,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.mts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,UAAU,EACV,MAAM,EACN,4BAA4B,EAC5B,2BAA2B,EAC3B,mCAAmC,EACnC,sDAAsD,EACtD,uDAAuD,EACvD,iDAAiD,EACjD,0BAA0B,EAC1B,qCAAqC,EACrC,6CAA6C,EAC7C,8CAA8C,EAC9C,4CAA4C,EAC5C,2CAA2C,EAC3C,6CAA6C,EAC7C,oDAAoD,EACpD,4CAA4C,EAC5C,iDAAiD,EACjD,6CAA6C,EAC7C,kDAAkD,EAClD,8CAA8C,EAC9C,oDAAoD,EACpD,8BAA8B,EAC9B,4BAA4B,GAC7B,oCAAgC;AACjC,OAAO,EACL,WAAW,EACX,aAAa,EACb,qBAAqB,GACtB,oCAAgC;AACjC,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,+BAA+B,EAC/B,wBAAwB,EACxB,eAAe,EACf,WAAW,EACX,uBAAuB,EACvB,aAAa,EACb,0BAA0B,EAC1B,qBAAqB,EACrB,GAAG,EACH,yBAAyB,EACzB,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,EAC3B,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,uBAAuB,EACvB,oBAAoB,EACpB,uBAAuB,EACvB,cAAc,EACd,eAAe,EACf,eAAe,EACf,4BAA4B,EAC5B,uBAAuB,EACvB,sBAAsB,EACtB,gBAAgB,EAChB,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,GACxB,oBAAgB;AACjB,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,GACb,oBAAgB;AACjB,OAAO,EACL,mCAAmC,EACnC,8BAA8B,GAC/B,4BAAwB;AACzB,OAAO,EAAE,wBAAwB,EAAE,qCAAiC;AACpE,OAAO,EAAE,oBAAoB,EAAE,6BAAyB;AACxD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,GAC3B,0BAAsB;AACvB,OAAO,EAAE,SAAS,EAAE,wBAAoB;AACxC,OAAO,EAAE,mBAAmB,IAAI,yCAAyC,EAAE,yDAAqD;AAChI,OAAO,EAAE,QAAQ,EAAE,4BAAwB"}
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA0BA,OAAO,EACL,WAAW,EACX,aAAa,EACb,qBAAqB,EACtB,oCAAgC;
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA0BA,OAAO,EACL,WAAW,EACX,aAAa,EACb,qBAAqB,EACtB,oCAAgC;AA2CjC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,uBAAuB,EACvB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,YAAY,EACb,oBAAgB;AACjB,OAAO,EACL,mCAAmC,EACnC,8BAA8B,EAC/B,4BAAwB;AACzB,OAAO,EAAE,wBAAwB,EAAE,qCAAiC;AACpE,OAAO,EAAE,oBAAoB,EAAE,6BAAyB;AACxD,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC3B,0BAAsB;AACvB,OAAO,EAAE,SAAS,EAAE,wBAAoB;AACxC,OAAO,EAAE,mBAAmB,IAAI,yCAAyC,EAAE,yDAAqD;AAChI,OAAO,EAAE,QAAQ,EAAE,4BAAwB","sourcesContent":["export type {\n MethodData,\n Result,\n TransactionControllerActions,\n TransactionControllerEvents,\n TransactionControllerGetStateAction,\n TransactionControllerIncomingTransactionsReceivedEvent,\n TransactionControllerPostTransactionBalanceUpdatedEvent,\n TransactionControllerSpeedupTransactionAddedEvent,\n TransactionControllerState,\n TransactionControllerStateChangeEvent,\n TransactionControllerTransactionApprovedEvent,\n TransactionControllerTransactionConfirmedEvent,\n TransactionControllerTransactionDroppedEvent,\n TransactionControllerTransactionFailedEvent,\n TransactionControllerTransactionFinishedEvent,\n TransactionControllerTransactionNewSwapApprovalEvent,\n TransactionControllerTransactionNewSwapEvent,\n TransactionControllerTransactionPublishingSkipped,\n TransactionControllerTransactionRejectedEvent,\n TransactionControllerTransactionStatusUpdatedEvent,\n TransactionControllerTransactionSubmittedEvent,\n TransactionControllerUnapprovedTransactionAddedEvent,\n TransactionControllerMessenger,\n TransactionControllerOptions,\n} from './TransactionController';\nexport {\n CANCEL_RATE,\n SPEED_UP_RATE,\n TransactionController,\n} from './TransactionController';\nexport type {\n Authorization,\n AuthorizationList,\n BatchTransactionParams,\n DappSuggestedGasFees,\n DefaultGasEstimates,\n FeeMarketEIP1559Values,\n FeeMarketGasFeeEstimateForLevel,\n FeeMarketGasFeeEstimates,\n GasFeeEstimates,\n GasFeeToken,\n GasPriceGasFeeEstimates,\n GasPriceValue,\n InferTransactionTypeResult,\n LegacyGasFeeEstimates,\n Log,\n NestedTransactionMetadata,\n PublishBatchHook,\n PublishBatchHookRequest,\n PublishBatchHookResult,\n PublishBatchHookTransaction,\n PublishHook,\n PublishHookResult,\n SavedGasFees,\n SecurityAlertResponse,\n SecurityProviderRequest,\n SendFlowHistoryEntry,\n SimulationBalanceChange,\n SimulationData,\n SimulationError,\n SimulationToken,\n SimulationTokenBalanceChange,\n TransactionBatchRequest,\n TransactionBatchResult,\n TransactionError,\n TransactionHistory,\n TransactionHistoryEntry,\n TransactionMeta,\n TransactionParams,\n TransactionReceipt,\n ValidateSecurityRequest,\n} from './types';\nexport {\n GasFeeEstimateLevel,\n GasFeeEstimateType,\n SimulationErrorCode,\n SimulationTokenStandard,\n TransactionEnvelopeType,\n TransactionStatus,\n TransactionType,\n UserFeeLevel,\n WalletDevice,\n} from './types';\nexport {\n DISPLAYED_TRANSACTION_HISTORY_PATHS,\n MAX_TRANSACTION_HISTORY_LENGTH,\n} from './utils/history';\nexport { determineTransactionType } from './utils/transaction-type';\nexport { mergeGasFeeEstimates } from './utils/gas-flow';\nexport {\n isEIP1559Transaction,\n normalizeTransactionParams,\n} from './utils/utils';\nexport { CHAIN_IDS } from './constants';\nexport { SUPPORTED_CHAIN_IDS as INCOMING_TRANSACTIONS_SUPPORTED_CHAIN_IDS } from './helpers/AccountsApiRemoteTransactionSource';\nexport { HARDFORK } from './utils/prepare';\n"]}
|