ox 0.14.45 → 0.14.46
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 +6 -0
- package/Frame/package.json +6 -0
- package/FrameReceipt/package.json +6 -0
- package/FrameSignature/package.json +6 -0
- package/TxEnvelopeEip8141/package.json +6 -0
- package/_cjs/core/Frame.js +147 -0
- package/_cjs/core/Frame.js.map +1 -0
- package/_cjs/core/FrameReceipt.js +34 -0
- package/_cjs/core/FrameReceipt.js.map +1 -0
- package/_cjs/core/FrameSignature.js +203 -0
- package/_cjs/core/FrameSignature.js.map +1 -0
- package/_cjs/core/Transaction.js +18 -2
- package/_cjs/core/Transaction.js.map +1 -1
- package/_cjs/core/TransactionReceipt.js +10 -0
- package/_cjs/core/TransactionReceipt.js.map +1 -1
- package/_cjs/core/TransactionRequest.js +11 -1
- package/_cjs/core/TransactionRequest.js.map +1 -1
- package/_cjs/core/TxEnvelopeEip8141.js +283 -0
- package/_cjs/core/TxEnvelopeEip8141.js.map +1 -0
- package/_cjs/core/internal/curves.js +6 -0
- package/_cjs/core/internal/curves.js.map +1 -0
- package/_cjs/core/internal/quantity.js +10 -0
- package/_cjs/core/internal/quantity.js.map +1 -0
- package/_cjs/erc4337/UserOperationReceipt.js.map +1 -1
- package/_cjs/index.js +6 -2
- package/_cjs/index.js.map +1 -1
- package/_cjs/version.js +1 -1
- package/_esm/core/Frame.js +311 -0
- package/_esm/core/Frame.js.map +1 -0
- package/_esm/core/FrameReceipt.js +72 -0
- package/_esm/core/FrameReceipt.js.map +1 -0
- package/_esm/core/FrameSignature.js +422 -0
- package/_esm/core/FrameSignature.js.map +1 -0
- package/_esm/core/Transaction.js +18 -2
- package/_esm/core/Transaction.js.map +1 -1
- package/_esm/core/TransactionReceipt.js +10 -0
- package/_esm/core/TransactionReceipt.js.map +1 -1
- package/_esm/core/TransactionRequest.js +11 -1
- package/_esm/core/TransactionRequest.js.map +1 -1
- package/_esm/core/TxEnvelopeEip8141.js +490 -0
- package/_esm/core/TxEnvelopeEip8141.js.map +1 -0
- package/_esm/core/internal/curves.js +19 -0
- package/_esm/core/internal/curves.js.map +1 -0
- package/_esm/core/internal/quantity.js +14 -0
- package/_esm/core/internal/quantity.js.map +1 -0
- package/_esm/erc4337/UserOperationReceipt.js.map +1 -1
- package/_esm/index.js +73 -0
- package/_esm/index.js.map +1 -1
- package/_esm/version.js +1 -1
- package/_types/core/Frame.d.ts +290 -0
- package/_types/core/Frame.d.ts.map +1 -0
- package/_types/core/FrameReceipt.d.ts +92 -0
- package/_types/core/FrameReceipt.d.ts.map +1 -0
- package/_types/core/FrameSignature.d.ts +357 -0
- package/_types/core/FrameSignature.d.ts.map +1 -0
- package/_types/core/Transaction.d.ts +29 -4
- package/_types/core/Transaction.d.ts.map +1 -1
- package/_types/core/TransactionReceipt.d.ts +15 -6
- package/_types/core/TransactionReceipt.d.ts.map +1 -1
- package/_types/core/TransactionRequest.d.ts +10 -4
- package/_types/core/TransactionRequest.d.ts.map +1 -1
- package/_types/core/TxEnvelopeEip8141.d.ts +343 -0
- package/_types/core/TxEnvelopeEip8141.d.ts.map +1 -0
- package/_types/core/internal/curves.d.ts +19 -0
- package/_types/core/internal/curves.d.ts.map +1 -0
- package/_types/core/internal/quantity.d.ts +10 -0
- package/_types/core/internal/quantity.d.ts.map +1 -0
- package/_types/erc4337/UserOperationReceipt.d.ts +1 -1
- package/_types/erc4337/UserOperationReceipt.d.ts.map +1 -1
- package/_types/index.d.ts +73 -0
- package/_types/index.d.ts.map +1 -1
- package/_types/tempo/Transaction.d.ts +2 -0
- package/_types/tempo/Transaction.d.ts.map +1 -1
- package/_types/tempo/TransactionReceipt.d.ts +2 -0
- package/_types/tempo/TransactionReceipt.d.ts.map +1 -1
- package/_types/version.d.ts +1 -1
- package/core/Frame.ts +443 -0
- package/core/FrameReceipt.ts +117 -0
- package/core/FrameSignature.ts +606 -0
- package/core/Transaction.ts +73 -4
- package/core/TransactionReceipt.ts +41 -4
- package/core/TransactionRequest.ts +26 -2
- package/core/TxEnvelopeEip8141.ts +717 -0
- package/core/internal/curves.ts +22 -0
- package/core/internal/quantity.ts +16 -0
- package/erc4337/UserOperationReceipt.ts +1 -6
- package/index.ts +73 -0
- package/package.json +21 -1
- package/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# ox
|
|
2
2
|
|
|
3
|
+
## 0.14.46
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#460](https://github.com/wevm/ox/pull/460) [`4c9ef11`](https://github.com/wevm/ox/commit/4c9ef11a69e5b5780dee963ea2005e2bb17c44d2) Thanks [@jxom](https://github.com/jxom)! - Added Frame Transactions
|
|
8
|
+
|
|
3
9
|
## 0.14.45
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidError = exports.flags = exports.modes = void 0;
|
|
4
|
+
exports.assert = assert;
|
|
5
|
+
exports.from = from;
|
|
6
|
+
exports.fromRpc = fromRpc;
|
|
7
|
+
exports.toRpc = toRpc;
|
|
8
|
+
exports.fromTuple = fromTuple;
|
|
9
|
+
exports.toTuple = toTuple;
|
|
10
|
+
exports.validate = validate;
|
|
11
|
+
const Address = require("./Address.js");
|
|
12
|
+
const Bytes = require("./Bytes.js");
|
|
13
|
+
const Errors = require("./Errors.js");
|
|
14
|
+
const Hex = require("./Hex.js");
|
|
15
|
+
const Quantity = require("./internal/quantity.js");
|
|
16
|
+
exports.modes = { default: 0, sender: 2, verify: 1 };
|
|
17
|
+
exports.flags = {
|
|
18
|
+
approveExecution: 2,
|
|
19
|
+
approveExecutionAndPayment: 3,
|
|
20
|
+
approvePayment: 1,
|
|
21
|
+
atomicBatch: 4,
|
|
22
|
+
none: 0,
|
|
23
|
+
};
|
|
24
|
+
function assert(frame) {
|
|
25
|
+
const { data = '0x', flags: flagsValue = 0, gas = 0n, mode: modeValue = 0, stateGas = 0n, value = 0n, } = frame;
|
|
26
|
+
const mode = typeof modeValue === 'string' ? exports.modes[modeValue] : modeValue;
|
|
27
|
+
if (!Number.isInteger(mode) || mode < 0 || mode > 2)
|
|
28
|
+
throw new InvalidError('mode must be a supported name or 0, 1, or 2.');
|
|
29
|
+
const flags_ = typeof flagsValue === 'string' ? exports.flags[flagsValue] : flagsValue;
|
|
30
|
+
if (!Number.isInteger(flags_) || flags_ < 0 || flags_ > 7)
|
|
31
|
+
throw new InvalidError('flags must be a supported name or an integer from 0 to 7.');
|
|
32
|
+
if (flags_ & exports.flags.atomicBatch) {
|
|
33
|
+
if (mode === exports.modes.verify)
|
|
34
|
+
throw new InvalidError('VERIFY frames cannot belong to an atomic batch.');
|
|
35
|
+
if (flags_ & exports.flags.approveExecutionAndPayment)
|
|
36
|
+
throw new InvalidError('Atomic batch frames cannot approve execution or payment.');
|
|
37
|
+
}
|
|
38
|
+
if (frame.target !== undefined)
|
|
39
|
+
Address.assert(frame.target, { strict: false });
|
|
40
|
+
for (const [field, limit] of [
|
|
41
|
+
['gas', gas],
|
|
42
|
+
['stateGas', stateGas],
|
|
43
|
+
])
|
|
44
|
+
if (typeof limit !== 'bigint' || limit < 0n || limit >= 2n ** 64n)
|
|
45
|
+
throw new InvalidError(`${field} must be an unsigned 64-bit integer.`);
|
|
46
|
+
if (gas + stateGas >= 2n ** 64n)
|
|
47
|
+
throw new InvalidError('Combined frame gas must be less than 2^64.');
|
|
48
|
+
if (typeof value !== 'bigint' || value < 0n || value >= 2n ** 256n)
|
|
49
|
+
throw new InvalidError('value must be an unsigned 256-bit integer.');
|
|
50
|
+
if (mode !== exports.modes.sender && value !== 0n)
|
|
51
|
+
throw new InvalidError('Only SENDER frames can transfer value.');
|
|
52
|
+
Hex.assert(data, { strict: true });
|
|
53
|
+
if (data.length % 2 !== 0)
|
|
54
|
+
throw new InvalidError('data must contain whole bytes.');
|
|
55
|
+
}
|
|
56
|
+
function from(frame) {
|
|
57
|
+
assert(frame);
|
|
58
|
+
return { ...frame };
|
|
59
|
+
}
|
|
60
|
+
function fromRpc(frame) {
|
|
61
|
+
return from({
|
|
62
|
+
data: frame.data,
|
|
63
|
+
flags: frame.flags,
|
|
64
|
+
gas: Hex.toBigInt(frame.executionGasLimit),
|
|
65
|
+
mode: frame.mode,
|
|
66
|
+
stateGas: Hex.toBigInt(frame.stateGasLimit),
|
|
67
|
+
...(frame.target == null ? {} : { target: frame.target }),
|
|
68
|
+
value: Hex.toBigInt(frame.value),
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
function toRpc(frame) {
|
|
72
|
+
const { flags: flags_ = 0, mode = 0 } = frame;
|
|
73
|
+
return {
|
|
74
|
+
data: frame.data ?? '0x',
|
|
75
|
+
executionGasLimit: Quantity.fromNumberish(frame.gas ?? 0n),
|
|
76
|
+
flags: typeof flags_ === 'string' ? exports.flags[flags_] : flags_,
|
|
77
|
+
mode: typeof mode === 'string' ? exports.modes[mode] : mode,
|
|
78
|
+
stateGasLimit: Quantity.fromNumberish(frame.stateGas ?? 0n),
|
|
79
|
+
...(frame.target === undefined ? {} : { target: frame.target }),
|
|
80
|
+
value: Quantity.fromNumberish(frame.value ?? 0n),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
function fromTuple(tuple) {
|
|
84
|
+
if (!Array.isArray(tuple) ||
|
|
85
|
+
tuple.length !== 6 ||
|
|
86
|
+
!Array.isArray(tuple[3]) ||
|
|
87
|
+
tuple[3].length !== 2)
|
|
88
|
+
throw new InvalidError('Expected [mode, flags, target, [execution, state], value, data].');
|
|
89
|
+
const [mode, flags, target, [execution, state], value, data] = tuple;
|
|
90
|
+
Hex.assert(target, { strict: true });
|
|
91
|
+
Hex.assert(data, { strict: true });
|
|
92
|
+
const quantities = [mode, flags, execution, state, value];
|
|
93
|
+
for (const quantity of quantities) {
|
|
94
|
+
Hex.assert(quantity, { strict: true });
|
|
95
|
+
if (quantity.length % 2 !== 0 || quantity.startsWith('0x00'))
|
|
96
|
+
throw new InvalidError('Integers must use minimal whole-byte encodings, with empty bytes for zero.');
|
|
97
|
+
}
|
|
98
|
+
const frame = {
|
|
99
|
+
...(target === '0x' ? {} : { target }),
|
|
100
|
+
data,
|
|
101
|
+
flags: flags === '0x' ? 0 : Hex.toNumber(flags),
|
|
102
|
+
gas: execution === '0x' ? 0n : Hex.toBigInt(execution),
|
|
103
|
+
mode: mode === '0x' ? 0 : Hex.toNumber(mode),
|
|
104
|
+
stateGas: state === '0x' ? 0n : Hex.toBigInt(state),
|
|
105
|
+
value: value === '0x' ? 0n : Hex.toBigInt(value),
|
|
106
|
+
};
|
|
107
|
+
assert(frame);
|
|
108
|
+
return frame;
|
|
109
|
+
}
|
|
110
|
+
function toTuple(frame) {
|
|
111
|
+
assert(frame);
|
|
112
|
+
const mode = typeof frame.mode === 'string' ? exports.modes[frame.mode] : (frame.mode ?? 0);
|
|
113
|
+
const flags_ = typeof frame.flags === 'string' ? exports.flags[frame.flags] : (frame.flags ?? 0);
|
|
114
|
+
return [
|
|
115
|
+
mode ? Hex.fromBytes(Bytes.fromNumber(mode)) : '0x',
|
|
116
|
+
flags_ ? Hex.fromBytes(Bytes.fromNumber(flags_)) : '0x',
|
|
117
|
+
frame.target ?? '0x',
|
|
118
|
+
[
|
|
119
|
+
frame.gas ? Hex.fromBytes(Bytes.fromNumber(frame.gas)) : '0x',
|
|
120
|
+
frame.stateGas ? Hex.fromBytes(Bytes.fromNumber(frame.stateGas)) : '0x',
|
|
121
|
+
],
|
|
122
|
+
frame.value ? Hex.fromBytes(Bytes.fromNumber(frame.value)) : '0x',
|
|
123
|
+
frame.data ?? '0x',
|
|
124
|
+
];
|
|
125
|
+
}
|
|
126
|
+
function validate(frame) {
|
|
127
|
+
try {
|
|
128
|
+
assert(frame);
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
catch {
|
|
132
|
+
return false;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
class InvalidError extends Errors.BaseError {
|
|
136
|
+
constructor(details) {
|
|
137
|
+
super('Invalid frame.', { details });
|
|
138
|
+
Object.defineProperty(this, "name", {
|
|
139
|
+
enumerable: true,
|
|
140
|
+
configurable: true,
|
|
141
|
+
writable: true,
|
|
142
|
+
value: 'Frame.InvalidError'
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
exports.InvalidError = InvalidError;
|
|
147
|
+
//# sourceMappingURL=Frame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Frame.js","sourceRoot":"","sources":["../../core/Frame.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.toRpcStatus = exports.fromRpcStatus = void 0;
|
|
4
|
+
exports.fromRpc = fromRpc;
|
|
5
|
+
exports.toRpc = toRpc;
|
|
6
|
+
const Hex = require("./Hex.js");
|
|
7
|
+
const Quantity = require("./internal/quantity.js");
|
|
8
|
+
exports.fromRpcStatus = {
|
|
9
|
+
0: 'reverted',
|
|
10
|
+
1: 'success',
|
|
11
|
+
2: 'skipped',
|
|
12
|
+
};
|
|
13
|
+
exports.toRpcStatus = {
|
|
14
|
+
reverted: 0,
|
|
15
|
+
skipped: 2,
|
|
16
|
+
success: 1,
|
|
17
|
+
};
|
|
18
|
+
function fromRpc(receipt) {
|
|
19
|
+
return {
|
|
20
|
+
gasUsed: Hex.toBigInt(receipt.executionGasUsed),
|
|
21
|
+
logs: receipt.logs,
|
|
22
|
+
stateGasUsed: Hex.toBigInt(receipt.stateGasUsed),
|
|
23
|
+
status: exports.fromRpcStatus[receipt.status],
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
function toRpc(receipt) {
|
|
27
|
+
return {
|
|
28
|
+
executionGasUsed: Quantity.fromNumberish(receipt.gasUsed),
|
|
29
|
+
logs: receipt.logs,
|
|
30
|
+
stateGasUsed: Quantity.fromNumberish(receipt.stateGasUsed),
|
|
31
|
+
status: exports.toRpcStatus[receipt.status],
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=FrameReceipt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameReceipt.js","sourceRoot":"","sources":["../../core/FrameReceipt.ts"],"names":[],"mappings":";;;AAqEA,0BAOC;AA2BD,sBAOC;AA7GD,gCAA+B;AAC/B,mDAAkD;AAkCrC,QAAA,aAAa,GAAG;IAC3B,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;CACJ,CAAA;AAGG,QAAA,WAAW,GAAG;IACzB,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;CACF,CAAA;AAsBV,SAAgB,OAAO,CAAC,OAAY;IAClC,OAAO;QACL,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAC/C,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC;QAChD,MAAM,EAAE,qBAAa,CAAC,OAAO,CAAC,MAAM,CAAC;KACtC,CAAA;AACH,CAAC;AA2BD,SAAgB,KAAK,CAAC,OAAoB;IACxC,OAAO;QACL,gBAAgB,EAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;QACzD,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,YAAY,EAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,CAAC;QAC1D,MAAM,EAAE,mBAAW,CAAC,OAAO,CAAC,MAAM,CAAC;KACpC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidError = exports.schemes = void 0;
|
|
4
|
+
exports.assert = assert;
|
|
5
|
+
exports.from = from;
|
|
6
|
+
exports.fromRpc = fromRpc;
|
|
7
|
+
exports.toRpc = toRpc;
|
|
8
|
+
exports.fromTuple = fromTuple;
|
|
9
|
+
exports.toTuple = toTuple;
|
|
10
|
+
exports.validate = validate;
|
|
11
|
+
const Address = require("./Address.js");
|
|
12
|
+
const Errors = require("./Errors.js");
|
|
13
|
+
const Hex = require("./Hex.js");
|
|
14
|
+
const curves_js_1 = require("./internal/curves.js");
|
|
15
|
+
const PublicKey = require("./PublicKey.js");
|
|
16
|
+
const Signature = require("./Signature.js");
|
|
17
|
+
exports.schemes = { arbitrary: 0, p256: 2, secp256k1: 1 };
|
|
18
|
+
function assert(entry, options = {}) {
|
|
19
|
+
const scheme = typeof entry.scheme === 'string' ? exports.schemes[entry.scheme] : entry.scheme;
|
|
20
|
+
if (!Number.isInteger(scheme) || scheme < 0 || scheme > 2)
|
|
21
|
+
throw new InvalidError('Unsupported signature scheme.');
|
|
22
|
+
if (scheme === 0 && entry.signer !== undefined)
|
|
23
|
+
throw new InvalidError('Arbitrary signatures cannot specify a signer.');
|
|
24
|
+
if (entry.signer !== undefined)
|
|
25
|
+
Address.assert(entry.signer, { strict: false });
|
|
26
|
+
const payload = entry.payload ?? '0x';
|
|
27
|
+
Hex.assert(payload, { strict: true });
|
|
28
|
+
if (payload !== '0x' &&
|
|
29
|
+
(payload.length !== 66 || Hex.toBigInt(payload) === 0n))
|
|
30
|
+
throw new InvalidError('payload must be empty or a nonzero 32-byte digest.');
|
|
31
|
+
switch (entry.scheme) {
|
|
32
|
+
case 0:
|
|
33
|
+
case 'arbitrary':
|
|
34
|
+
Hex.assert(entry.signature, { strict: true });
|
|
35
|
+
if (entry.signature.length % 2 !== 0)
|
|
36
|
+
throw new InvalidError('signature must contain whole bytes.');
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
if (entry.scheme === 2 || entry.scheme === 'p256') {
|
|
40
|
+
if (entry.publicKey !== undefined) {
|
|
41
|
+
PublicKey.assert(entry.publicKey, { compressed: false });
|
|
42
|
+
for (const coordinate of [entry.publicKey.x, entry.publicKey.y]) {
|
|
43
|
+
if (typeof coordinate !== 'bigint' ||
|
|
44
|
+
coordinate < 0n ||
|
|
45
|
+
coordinate >= 2n ** 256n)
|
|
46
|
+
throw new InvalidError('Public key coordinates must fit in 32 bytes.');
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (entry.signature !== undefined && entry.publicKey === undefined)
|
|
50
|
+
throw new InvalidError('P-256 signatures require a public key.');
|
|
51
|
+
}
|
|
52
|
+
if (entry.signature === undefined) {
|
|
53
|
+
if (options.signed)
|
|
54
|
+
throw new InvalidError('Signature is required.');
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
if (typeof entry.signature.r !== 'bigint' ||
|
|
58
|
+
typeof entry.signature.s !== 'bigint')
|
|
59
|
+
throw new InvalidError('Signature scalars must be bigint.');
|
|
60
|
+
if ((scheme === 1 || entry.signature.yParity !== undefined) &&
|
|
61
|
+
entry.signature.yParity !== 0 &&
|
|
62
|
+
entry.signature.yParity !== 1)
|
|
63
|
+
throw new InvalidError('Signature parity must be 0 or 1.');
|
|
64
|
+
Signature.assert(entry.signature, { recovered: scheme === 1 });
|
|
65
|
+
const r = entry.signature.r;
|
|
66
|
+
const s = entry.signature.s;
|
|
67
|
+
const order = scheme === 1 ? curves_js_1.secp256k1N : curves_js_1.p256N;
|
|
68
|
+
if (r === 0n ||
|
|
69
|
+
r >= order ||
|
|
70
|
+
s === 0n ||
|
|
71
|
+
s >= order ||
|
|
72
|
+
(scheme === 1 && s > order / 2n))
|
|
73
|
+
throw new InvalidError('Signature scalars must be in range; secp256k1 requires low-s.');
|
|
74
|
+
}
|
|
75
|
+
function from(entry) {
|
|
76
|
+
const result = (typeof entry === 'string'
|
|
77
|
+
? { payload: '0x', scheme: 'arbitrary', signature: entry }
|
|
78
|
+
: {
|
|
79
|
+
...entry,
|
|
80
|
+
payload: entry.payload ?? '0x',
|
|
81
|
+
scheme: entry.scheme ?? 'arbitrary',
|
|
82
|
+
});
|
|
83
|
+
assert(result);
|
|
84
|
+
return result;
|
|
85
|
+
}
|
|
86
|
+
function fromRpc(entry) {
|
|
87
|
+
return fromTuple([
|
|
88
|
+
entry.scheme === 0 ? '0x' : Hex.fromNumber(entry.scheme, { size: 1 }),
|
|
89
|
+
entry.signer ?? '0x',
|
|
90
|
+
entry.msg,
|
|
91
|
+
entry.signature,
|
|
92
|
+
]);
|
|
93
|
+
}
|
|
94
|
+
function toRpc(entry) {
|
|
95
|
+
const [scheme, signer, msg, signature] = toTuple(entry);
|
|
96
|
+
return {
|
|
97
|
+
msg,
|
|
98
|
+
scheme: (scheme === '0x' ? 0 : Hex.toNumber(scheme)),
|
|
99
|
+
signature,
|
|
100
|
+
...(signer === '0x' ? {} : { signer }),
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
function fromTuple(tuple) {
|
|
104
|
+
if (!Array.isArray(tuple) || tuple.length !== 4)
|
|
105
|
+
throw new InvalidError('Expected [scheme, signer, payload, signature].');
|
|
106
|
+
const [scheme, signer, payload, signature] = tuple;
|
|
107
|
+
Hex.assert(signer, { strict: true });
|
|
108
|
+
Hex.assert(signature, { strict: true });
|
|
109
|
+
if (signature.length % 2 !== 0)
|
|
110
|
+
throw new InvalidError('signature must contain whole bytes.');
|
|
111
|
+
if (scheme !== '0x' && scheme !== '0x01' && scheme !== '0x02')
|
|
112
|
+
throw new InvalidError('Expected a canonical scheme encoding: empty bytes, 0x01, or 0x02.');
|
|
113
|
+
const metadata = { ...(signer === '0x' ? {} : { signer }), payload };
|
|
114
|
+
if (scheme === '0x') {
|
|
115
|
+
if (signer !== '0x')
|
|
116
|
+
throw new InvalidError('Arbitrary signatures cannot specify a signer.');
|
|
117
|
+
return from({ payload, scheme: 'arbitrary', signature });
|
|
118
|
+
}
|
|
119
|
+
if (signature === '0x')
|
|
120
|
+
return scheme === '0x01'
|
|
121
|
+
? from({ ...metadata, scheme: 'secp256k1' })
|
|
122
|
+
: from({ ...metadata, scheme: 'p256' });
|
|
123
|
+
if (Hex.size(signature) !== (scheme === '0x01' ? 65 : 128))
|
|
124
|
+
throw new InvalidError('Invalid protocol signature length.');
|
|
125
|
+
if (scheme === '0x01') {
|
|
126
|
+
if (Hex.toNumber(Hex.slice(signature, 0, 1)) > 1)
|
|
127
|
+
throw new InvalidError('Recovery parity must be 0 or 1.');
|
|
128
|
+
return from({
|
|
129
|
+
...metadata,
|
|
130
|
+
scheme: 'secp256k1',
|
|
131
|
+
signature: {
|
|
132
|
+
r: Hex.toBigInt(Hex.slice(signature, 1, 33)),
|
|
133
|
+
s: Hex.toBigInt(Hex.slice(signature, 33, 65)),
|
|
134
|
+
yParity: Hex.toNumber(Hex.slice(signature, 0, 1)),
|
|
135
|
+
},
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
const s = Hex.toBigInt(Hex.slice(signature, 32, 64));
|
|
139
|
+
if (s > curves_js_1.p256N / 2n)
|
|
140
|
+
throw new InvalidError('P-256 wire signatures require low-s.');
|
|
141
|
+
return from({
|
|
142
|
+
...metadata,
|
|
143
|
+
publicKey: {
|
|
144
|
+
prefix: 4,
|
|
145
|
+
x: Hex.toBigInt(Hex.slice(signature, 64, 96)),
|
|
146
|
+
y: Hex.toBigInt(Hex.slice(signature, 96, 128)),
|
|
147
|
+
},
|
|
148
|
+
scheme: 'p256',
|
|
149
|
+
signature: { r: Hex.toBigInt(Hex.slice(signature, 0, 32)), s },
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
function toTuple(entry) {
|
|
153
|
+
assert(entry);
|
|
154
|
+
const scheme = typeof entry.scheme === 'string' ? exports.schemes[entry.scheme] : entry.scheme;
|
|
155
|
+
const signature = (() => {
|
|
156
|
+
switch (entry.scheme) {
|
|
157
|
+
case 0:
|
|
158
|
+
case 'arbitrary':
|
|
159
|
+
return entry.signature;
|
|
160
|
+
case 1:
|
|
161
|
+
case 'secp256k1':
|
|
162
|
+
return entry.signature === undefined
|
|
163
|
+
? '0x'
|
|
164
|
+
: Hex.concat(Hex.fromNumber(entry.signature.yParity, { size: 1 }), Hex.fromNumber(entry.signature.r, { size: 32 }), Hex.fromNumber(entry.signature.s, { size: 32 }));
|
|
165
|
+
case 2:
|
|
166
|
+
case 'p256': {
|
|
167
|
+
if (entry.signature === undefined)
|
|
168
|
+
return '0x';
|
|
169
|
+
const { publicKey, signature } = entry;
|
|
170
|
+
const s = signature.s;
|
|
171
|
+
return Hex.concat(Hex.fromNumber(signature.r, { size: 32 }), Hex.fromNumber(s > curves_js_1.p256N / 2n ? curves_js_1.p256N - s : s, { size: 32 }), Hex.fromNumber(publicKey.x, { size: 32 }), Hex.fromNumber(publicKey.y, { size: 32 }));
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
})();
|
|
175
|
+
return [
|
|
176
|
+
scheme ? Hex.fromNumber(scheme, { size: 1 }) : '0x',
|
|
177
|
+
entry.signer ?? '0x',
|
|
178
|
+
entry.payload ?? '0x',
|
|
179
|
+
signature,
|
|
180
|
+
];
|
|
181
|
+
}
|
|
182
|
+
function validate(entry, options = {}) {
|
|
183
|
+
try {
|
|
184
|
+
assert(entry, options);
|
|
185
|
+
return true;
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
return false;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
class InvalidError extends Errors.BaseError {
|
|
192
|
+
constructor(details) {
|
|
193
|
+
super('Invalid frame signature.', { details });
|
|
194
|
+
Object.defineProperty(this, "name", {
|
|
195
|
+
enumerable: true,
|
|
196
|
+
configurable: true,
|
|
197
|
+
writable: true,
|
|
198
|
+
value: 'FrameSignature.InvalidError'
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
exports.InvalidError = InvalidError;
|
|
203
|
+
//# sourceMappingURL=FrameSignature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FrameSignature.js","sourceRoot":"","sources":["../../core/FrameSignature.ts"],"names":[],"mappings":"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"}
|
package/_cjs/core/Transaction.js
CHANGED
|
@@ -4,6 +4,8 @@ exports.fromRpcType = exports.toRpcType = void 0;
|
|
|
4
4
|
exports.fromRpc = fromRpc;
|
|
5
5
|
exports.toRpc = toRpc;
|
|
6
6
|
const Authorization = require("./Authorization.js");
|
|
7
|
+
const Frame = require("./Frame.js");
|
|
8
|
+
const FrameSignature = require("./FrameSignature.js");
|
|
7
9
|
const Hex = require("./Hex.js");
|
|
8
10
|
const Signature = require("./Signature.js");
|
|
9
11
|
exports.toRpcType = {
|
|
@@ -12,6 +14,7 @@ exports.toRpcType = {
|
|
|
12
14
|
eip1559: '0x2',
|
|
13
15
|
eip4844: '0x3',
|
|
14
16
|
eip7702: '0x4',
|
|
17
|
+
eip8141: '0x6',
|
|
15
18
|
};
|
|
16
19
|
exports.fromRpcType = {
|
|
17
20
|
'0x0': 'legacy',
|
|
@@ -19,11 +22,12 @@ exports.fromRpcType = {
|
|
|
19
22
|
'0x2': 'eip1559',
|
|
20
23
|
'0x3': 'eip4844',
|
|
21
24
|
'0x4': 'eip7702',
|
|
25
|
+
'0x6': 'eip8141',
|
|
22
26
|
};
|
|
23
27
|
function fromRpc(transaction, _options = {}) {
|
|
24
28
|
if (!transaction)
|
|
25
29
|
return null;
|
|
26
|
-
const signature = Signature.extract(transaction);
|
|
30
|
+
const signature = transaction.type === '0x6' ? undefined : Signature.extract(transaction);
|
|
27
31
|
const transaction_ = {
|
|
28
32
|
...transaction,
|
|
29
33
|
...signature,
|
|
@@ -44,10 +48,18 @@ function fromRpc(transaction, _options = {}) {
|
|
|
44
48
|
? Number(transaction.transactionIndex)
|
|
45
49
|
: null;
|
|
46
50
|
transaction_.value = BigInt(transaction.value ?? 0n);
|
|
51
|
+
if (transaction.frames)
|
|
52
|
+
transaction_.frames = transaction.frames.map(Frame.fromRpc);
|
|
53
|
+
if (transaction.signatures)
|
|
54
|
+
transaction_.signatures = transaction.signatures.map(FrameSignature.fromRpc);
|
|
47
55
|
if (transaction.authorizationList)
|
|
48
56
|
transaction_.authorizationList = Authorization.fromRpcList(transaction.authorizationList);
|
|
49
57
|
if (transaction.chainId)
|
|
50
|
-
transaction_.chainId =
|
|
58
|
+
transaction_.chainId =
|
|
59
|
+
transaction.type === '0x6' &&
|
|
60
|
+
BigInt(transaction.chainId) > BigInt(Number.MAX_SAFE_INTEGER)
|
|
61
|
+
? BigInt(transaction.chainId)
|
|
62
|
+
: Number(transaction.chainId);
|
|
51
63
|
if (transaction.gasPrice)
|
|
52
64
|
transaction_.gasPrice = BigInt(transaction.gasPrice);
|
|
53
65
|
if (transaction.maxFeePerBlobGas)
|
|
@@ -85,6 +97,10 @@ function toRpc(transaction, _options) {
|
|
|
85
97
|
: null;
|
|
86
98
|
rpc.type = exports.toRpcType[transaction.type] ?? transaction.type;
|
|
87
99
|
rpc.value = Hex.fromNumber(transaction.value ?? 0n);
|
|
100
|
+
if (transaction.frames)
|
|
101
|
+
rpc.frames = transaction.frames.map(Frame.toRpc);
|
|
102
|
+
if (transaction.signatures)
|
|
103
|
+
rpc.signatures = transaction.signatures.map(FrameSignature.toRpc);
|
|
88
104
|
if (transaction.accessList)
|
|
89
105
|
rpc.accessList = transaction.accessList;
|
|
90
106
|
if (transaction.authorizationList)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../core/Transaction.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"Transaction.js","sourceRoot":"","sources":["../../core/Transaction.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.toRpcType = exports.fromRpcType = exports.toRpcStatus = exports.fromRpcStatus = void 0;
|
|
4
4
|
exports.fromRpc = fromRpc;
|
|
5
5
|
exports.toRpc = toRpc;
|
|
6
|
+
const FrameReceipt = require("./FrameReceipt.js");
|
|
6
7
|
const Hex = require("./Hex.js");
|
|
7
8
|
const Log = require("./Log.js");
|
|
8
9
|
exports.fromRpcStatus = {
|
|
@@ -19,6 +20,7 @@ exports.fromRpcType = {
|
|
|
19
20
|
'0x2': 'eip1559',
|
|
20
21
|
'0x3': 'eip4844',
|
|
21
22
|
'0x4': 'eip7702',
|
|
23
|
+
'0x6': 'eip8141',
|
|
22
24
|
};
|
|
23
25
|
exports.toRpcType = {
|
|
24
26
|
legacy: '0x0',
|
|
@@ -26,12 +28,16 @@ exports.toRpcType = {
|
|
|
26
28
|
eip1559: '0x2',
|
|
27
29
|
eip4844: '0x3',
|
|
28
30
|
eip7702: '0x4',
|
|
31
|
+
eip8141: '0x6',
|
|
29
32
|
};
|
|
30
33
|
function fromRpc(receipt) {
|
|
31
34
|
if (!receipt)
|
|
32
35
|
return null;
|
|
33
36
|
return {
|
|
34
37
|
...receipt,
|
|
38
|
+
...(receipt.frameReceipts
|
|
39
|
+
? { frameReceipts: receipt.frameReceipts.map(FrameReceipt.fromRpc) }
|
|
40
|
+
: {}),
|
|
35
41
|
blobGasPrice: receipt.blobGasPrice
|
|
36
42
|
? BigInt(receipt.blobGasPrice)
|
|
37
43
|
: undefined,
|
|
@@ -48,6 +54,10 @@ function fromRpc(receipt) {
|
|
|
48
54
|
}
|
|
49
55
|
function toRpc(receipt) {
|
|
50
56
|
return {
|
|
57
|
+
...(receipt.frameReceipts
|
|
58
|
+
? { frameReceipts: receipt.frameReceipts.map(FrameReceipt.toRpc) }
|
|
59
|
+
: {}),
|
|
60
|
+
...(receipt.payer ? { payer: receipt.payer } : {}),
|
|
51
61
|
blobGasPrice: receipt.blobGasPrice
|
|
52
62
|
? Hex.fromNumber(receipt.blobGasPrice)
|
|
53
63
|
: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionReceipt.js","sourceRoot":"","sources":["../../core/TransactionReceipt.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"TransactionReceipt.js","sourceRoot":"","sources":["../../core/TransactionReceipt.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,14 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.fromRpc = fromRpc;
|
|
4
4
|
exports.toRpc = toRpc;
|
|
5
5
|
const Authorization = require("./Authorization.js");
|
|
6
|
+
const Frame = require("./Frame.js");
|
|
7
|
+
const FrameSignature = require("./FrameSignature.js");
|
|
6
8
|
const Hex = require("./Hex.js");
|
|
7
9
|
const Transaction = require("./Transaction.js");
|
|
8
10
|
function fromRpc(request) {
|
|
9
|
-
const request_ = request;
|
|
11
|
+
const request_ = { ...request };
|
|
10
12
|
if (typeof request.authorizationList !== 'undefined')
|
|
11
13
|
request_.authorizationList = Authorization.fromRpcList(request.authorizationList);
|
|
12
14
|
if (typeof request.chainId !== 'undefined')
|
|
13
15
|
request_.chainId = Hex.toNumber(request.chainId);
|
|
16
|
+
if (request.frames)
|
|
17
|
+
request_.frames = request.frames.map(Frame.fromRpc);
|
|
18
|
+
if (request.signatures)
|
|
19
|
+
request_.signatures = request.signatures.map(FrameSignature.fromRpc);
|
|
14
20
|
if (typeof request.gas !== 'undefined')
|
|
15
21
|
request_.gas = Hex.toBigInt(request.gas);
|
|
16
22
|
if (typeof request.gasPrice !== 'undefined')
|
|
@@ -52,6 +58,10 @@ function toRpc(request) {
|
|
|
52
58
|
}
|
|
53
59
|
if (typeof request.from !== 'undefined')
|
|
54
60
|
request_rpc.from = request.from;
|
|
61
|
+
if (request.frames)
|
|
62
|
+
request_rpc.frames = request.frames.map(Frame.toRpc);
|
|
63
|
+
if (request.signatures)
|
|
64
|
+
request_rpc.signatures = request.signatures.map(FrameSignature.toRpc);
|
|
55
65
|
if (typeof request.gas !== 'undefined')
|
|
56
66
|
request_rpc.gas = Hex.fromNumber(request.gas);
|
|
57
67
|
if (typeof request.gasPrice !== 'undefined')
|