tempo.ts 0.8.3 → 0.10.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 +33 -0
- package/dist/ox/AuthorizationTempo.d.ts +450 -0
- package/dist/ox/AuthorizationTempo.d.ts.map +1 -0
- package/dist/ox/AuthorizationTempo.js +433 -0
- package/dist/ox/AuthorizationTempo.js.map +1 -0
- package/dist/ox/KeyAuthorization.d.ts +4 -4
- package/dist/ox/KeyAuthorization.d.ts.map +1 -1
- package/dist/ox/KeyAuthorization.js +5 -6
- package/dist/ox/KeyAuthorization.js.map +1 -1
- package/dist/ox/Transaction.d.ts +11 -10
- package/dist/ox/Transaction.d.ts.map +1 -1
- package/dist/ox/Transaction.js +10 -3
- package/dist/ox/Transaction.js.map +1 -1
- package/dist/ox/{TransactionEnvelopeAA.d.ts → TransactionEnvelopeTempo.d.ts} +73 -73
- package/dist/ox/TransactionEnvelopeTempo.d.ts.map +1 -0
- package/dist/ox/{TransactionEnvelopeAA.js → TransactionEnvelopeTempo.js} +65 -61
- package/dist/ox/TransactionEnvelopeTempo.js.map +1 -0
- package/dist/ox/TransactionReceipt.d.ts +3 -3
- package/dist/ox/TransactionReceipt.d.ts.map +1 -1
- package/dist/ox/TransactionReceipt.js +2 -2
- package/dist/ox/TransactionReceipt.js.map +1 -1
- package/dist/ox/TransactionRequest.d.ts +7 -5
- package/dist/ox/TransactionRequest.d.ts.map +1 -1
- package/dist/ox/TransactionRequest.js +9 -3
- package/dist/ox/TransactionRequest.js.map +1 -1
- package/dist/ox/index.d.ts +2 -1
- package/dist/ox/index.d.ts.map +1 -1
- package/dist/ox/index.js +2 -1
- package/dist/ox/index.js.map +1 -1
- package/dist/viem/Chain.d.ts +11 -6
- package/dist/viem/Chain.d.ts.map +1 -1
- package/dist/viem/Chain.js +1 -0
- package/dist/viem/Chain.js.map +1 -1
- package/dist/viem/Formatters.d.ts.map +1 -1
- package/dist/viem/Formatters.js +4 -17
- package/dist/viem/Formatters.js.map +1 -1
- package/dist/viem/Transaction.d.ts +21 -21
- package/dist/viem/Transaction.d.ts.map +1 -1
- package/dist/viem/Transaction.js +17 -30
- package/dist/viem/Transaction.js.map +1 -1
- package/dist/viem/internal/types.d.ts +2 -2
- package/dist/viem/internal/types.d.ts.map +1 -1
- package/dist/wagmi/Connector.d.ts +6 -12
- package/dist/wagmi/Connector.d.ts.map +1 -1
- package/dist/wagmi/Connector.js +73 -18
- package/dist/wagmi/Connector.js.map +1 -1
- package/package.json +1 -1
- package/src/ox/AuthorizationTempo.test.ts +1256 -0
- package/src/ox/AuthorizationTempo.ts +648 -0
- package/src/ox/KeyAuthorization.ts +8 -10
- package/src/ox/Transaction.test.ts +6 -6
- package/src/ox/Transaction.ts +25 -14
- package/src/ox/{TransactionEnvelopeAA.test.ts → TransactionEnvelopeTempo.test.ts} +326 -141
- package/src/ox/{TransactionEnvelopeAA.ts → TransactionEnvelopeTempo.ts} +93 -81
- package/src/ox/TransactionReceipt.ts +3 -3
- package/src/ox/TransactionRequest.ts +22 -8
- package/src/ox/e2e.test.ts +159 -78
- package/src/ox/index.ts +2 -1
- package/src/viem/Chain.ts +1 -0
- package/src/viem/Formatters.ts +6 -19
- package/src/viem/Transaction.ts +50 -68
- package/src/viem/e2e.test.ts +28 -42
- package/src/viem/internal/types.ts +2 -2
- package/src/wagmi/Connector.ts +104 -31
- package/dist/ox/TransactionEnvelopeAA.d.ts.map +0 -1
- package/dist/ox/TransactionEnvelopeAA.js.map +0 -1
|
@@ -0,0 +1,433 @@
|
|
|
1
|
+
import * as Hash from 'ox/Hash';
|
|
2
|
+
import * as Hex from 'ox/Hex';
|
|
3
|
+
import * as Rlp from 'ox/Rlp';
|
|
4
|
+
import * as SignatureEnvelope from './SignatureEnvelope.js';
|
|
5
|
+
/**
|
|
6
|
+
* Converts an [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) AA Authorization object into a typed {@link ox#AuthorizationTempo.AuthorizationTempo}.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* An AA Authorization can be instantiated from an [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) AA Authorization tuple in object format.
|
|
10
|
+
*
|
|
11
|
+
* ```ts twoslash
|
|
12
|
+
* import { AuthorizationTempo } from 'ox'
|
|
13
|
+
*
|
|
14
|
+
* const authorization = AuthorizationTempo.from({
|
|
15
|
+
* address: '0x1234567890abcdef1234567890abcdef12345678',
|
|
16
|
+
* chainId: 1,
|
|
17
|
+
* nonce: 69n,
|
|
18
|
+
* })
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ### Attaching Signatures
|
|
23
|
+
*
|
|
24
|
+
* A {@link ox#SignatureEnvelope.SignatureEnvelope} can be attached with the `signature` option. The example below demonstrates signing
|
|
25
|
+
* an AA Authorization with {@link ox#Secp256k1.(sign:function)}.
|
|
26
|
+
*
|
|
27
|
+
* ```ts twoslash
|
|
28
|
+
* import { AuthorizationTempo, Secp256k1 } from 'ox'
|
|
29
|
+
*
|
|
30
|
+
* const authorization = AuthorizationTempo.from({
|
|
31
|
+
* address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
32
|
+
* chainId: 1,
|
|
33
|
+
* nonce: 40n,
|
|
34
|
+
* })
|
|
35
|
+
*
|
|
36
|
+
* const signature = Secp256k1.sign({
|
|
37
|
+
* payload: AuthorizationTempo.getSignPayload(authorization),
|
|
38
|
+
* privateKey: '0x...',
|
|
39
|
+
* })
|
|
40
|
+
*
|
|
41
|
+
* const authorization_signed = AuthorizationTempo.from(authorization, { signature }) // [!code focus]
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @param authorization - An [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) AA Authorization tuple in object format.
|
|
45
|
+
* @param options - AA Authorization options.
|
|
46
|
+
* @returns The {@link ox#AuthorizationTempo.AuthorizationTempo}.
|
|
47
|
+
*/
|
|
48
|
+
export function from(authorization, options = {}) {
|
|
49
|
+
if (typeof authorization.chainId === 'string')
|
|
50
|
+
return fromRpc(authorization);
|
|
51
|
+
if (options.signature) {
|
|
52
|
+
return { ...authorization, signature: options.signature };
|
|
53
|
+
}
|
|
54
|
+
return authorization;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Converts an {@link ox#AuthorizationTempo.Rpc} to an {@link ox#AuthorizationTempo.AuthorizationTempo}.
|
|
58
|
+
*
|
|
59
|
+
* @example
|
|
60
|
+
* ```ts twoslash
|
|
61
|
+
* import { AuthorizationTempo } from 'ox'
|
|
62
|
+
*
|
|
63
|
+
* const authorization = AuthorizationTempo.fromRpc({
|
|
64
|
+
* address: '0x0000000000000000000000000000000000000000',
|
|
65
|
+
* chainId: '0x1',
|
|
66
|
+
* nonce: '0x1',
|
|
67
|
+
* signature: {
|
|
68
|
+
* r: '0x635dc2033e60185bb36709c29c75d64ea51dfbd91c32ef4be198e4ceb169fb4d',
|
|
69
|
+
* s: '0x50c2667ac4c771072746acfdcf1f1483336dcca8bd2df47cd83175dbe60f0540',
|
|
70
|
+
* yParity: '0x0',
|
|
71
|
+
* },
|
|
72
|
+
* })
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* @param authorization - The RPC-formatted AA Authorization.
|
|
76
|
+
* @returns A signed {@link ox#AuthorizationTempo.AuthorizationTempo}.
|
|
77
|
+
*/
|
|
78
|
+
export function fromRpc(authorization) {
|
|
79
|
+
const { address, chainId, nonce } = authorization;
|
|
80
|
+
const signature = SignatureEnvelope.fromRpc(authorization.signature);
|
|
81
|
+
return {
|
|
82
|
+
address,
|
|
83
|
+
chainId: Number(chainId),
|
|
84
|
+
nonce: BigInt(nonce),
|
|
85
|
+
signature,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Converts an {@link ox#AuthorizationTempo.ListRpc} to an {@link ox#AuthorizationTempo.List}.
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ```ts twoslash
|
|
93
|
+
* import { AuthorizationTempo } from 'ox'
|
|
94
|
+
*
|
|
95
|
+
* const authorizationList = AuthorizationTempo.fromRpcList([{
|
|
96
|
+
* address: '0x0000000000000000000000000000000000000000',
|
|
97
|
+
* chainId: '0x1',
|
|
98
|
+
* nonce: '0x1',
|
|
99
|
+
* signature: {
|
|
100
|
+
* r: '0x635dc2033e60185bb36709c29c75d64ea51dfbd91c32ef4be198e4ceb169fb4d',
|
|
101
|
+
* s: '0x50c2667ac4c771072746acfdcf1f1483336dcca8bd2df47cd83175dbe60f0540',
|
|
102
|
+
* yParity: '0x0',
|
|
103
|
+
* },
|
|
104
|
+
* }])
|
|
105
|
+
* ```
|
|
106
|
+
*
|
|
107
|
+
* @param authorizationList - The RPC-formatted AA Authorization list.
|
|
108
|
+
* @returns A signed {@link ox#AuthorizationTempo.List}.
|
|
109
|
+
*/
|
|
110
|
+
export function fromRpcList(authorizationList) {
|
|
111
|
+
return authorizationList.map((x) => fromRpc(x));
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Converts an {@link ox#AuthorizationTempo.Tuple} to an {@link ox#AuthorizationTempo.AuthorizationTempo}.
|
|
115
|
+
*
|
|
116
|
+
* @example
|
|
117
|
+
* ```ts twoslash
|
|
118
|
+
* import { AuthorizationTempo } from 'ox'
|
|
119
|
+
*
|
|
120
|
+
* const authorization = AuthorizationTempo.fromTuple([
|
|
121
|
+
* '0x1',
|
|
122
|
+
* '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
123
|
+
* '0x3'
|
|
124
|
+
* ])
|
|
125
|
+
* // @log: {
|
|
126
|
+
* // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
127
|
+
* // @log: chainId: 1,
|
|
128
|
+
* // @log: nonce: 3n
|
|
129
|
+
* // @log: }
|
|
130
|
+
* ```
|
|
131
|
+
*
|
|
132
|
+
* @example
|
|
133
|
+
* It is also possible to append a serialized SignatureEnvelope to the end of an AA Authorization tuple.
|
|
134
|
+
*
|
|
135
|
+
* ```ts twoslash
|
|
136
|
+
* import { AuthorizationTempo } from 'ox'
|
|
137
|
+
*
|
|
138
|
+
* const authorization = AuthorizationTempo.fromTuple([
|
|
139
|
+
* '0x1',
|
|
140
|
+
* '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
141
|
+
* '0x3',
|
|
142
|
+
* '0x01a068a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b907e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064',
|
|
143
|
+
* ])
|
|
144
|
+
* // @log: {
|
|
145
|
+
* // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
146
|
+
* // @log: chainId: 1,
|
|
147
|
+
* // @log: nonce: 3n
|
|
148
|
+
* // @log: signature: {
|
|
149
|
+
* // @log: r: BigInt('0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90'),
|
|
150
|
+
* // @log: s: BigInt('0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064'),
|
|
151
|
+
* // @log: yParity: 0,
|
|
152
|
+
* // @log: },
|
|
153
|
+
* // @log: }
|
|
154
|
+
* ```
|
|
155
|
+
*
|
|
156
|
+
* @param tuple - The [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) AA Authorization tuple.
|
|
157
|
+
* @returns The {@link ox#AuthorizationTempo.AuthorizationTempo}.
|
|
158
|
+
*/
|
|
159
|
+
export function fromTuple(tuple) {
|
|
160
|
+
const [chainId, address, nonce, signatureSerialized] = tuple;
|
|
161
|
+
const args = {
|
|
162
|
+
address,
|
|
163
|
+
chainId: chainId === '0x' ? 0 : Number(chainId),
|
|
164
|
+
nonce: nonce === '0x' ? 0n : BigInt(nonce),
|
|
165
|
+
};
|
|
166
|
+
if (signatureSerialized)
|
|
167
|
+
args.signature = SignatureEnvelope.deserialize(signatureSerialized);
|
|
168
|
+
return from(args);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Converts an {@link ox#AuthorizationTempo.TupleList} to an {@link ox#AuthorizationTempo.List}.
|
|
172
|
+
*
|
|
173
|
+
* @example
|
|
174
|
+
* ```ts twoslash
|
|
175
|
+
* import { AuthorizationTempo } from 'ox'
|
|
176
|
+
*
|
|
177
|
+
* const authorizationList = AuthorizationTempo.fromTupleList([
|
|
178
|
+
* ['0x1', '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c', '0x3'],
|
|
179
|
+
* ['0x3', '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c', '0x14'],
|
|
180
|
+
* ])
|
|
181
|
+
* // @log: [
|
|
182
|
+
* // @log: {
|
|
183
|
+
* // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
184
|
+
* // @log: chainId: 1,
|
|
185
|
+
* // @log: nonce: 3n,
|
|
186
|
+
* // @log: },
|
|
187
|
+
* // @log: {
|
|
188
|
+
* // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
189
|
+
* // @log: chainId: 3,
|
|
190
|
+
* // @log: nonce: 20n,
|
|
191
|
+
* // @log: },
|
|
192
|
+
* // @log: ]
|
|
193
|
+
* ```
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* It is also possible to append a serialized SignatureEnvelope to the end of an AA Authorization tuple.
|
|
197
|
+
*
|
|
198
|
+
* ```ts twoslash
|
|
199
|
+
* import { AuthorizationTempo } from 'ox'
|
|
200
|
+
*
|
|
201
|
+
* const authorizationList = AuthorizationTempo.fromTupleList([
|
|
202
|
+
* ['0x1', '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c', '0x3', '0x01a068a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b907e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064'],
|
|
203
|
+
* ['0x3', '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c', '0x14', '0x01a068a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b907e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064'],
|
|
204
|
+
* ])
|
|
205
|
+
* // @log: [
|
|
206
|
+
* // @log: {
|
|
207
|
+
* // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
208
|
+
* // @log: chainId: 1,
|
|
209
|
+
* // @log: nonce: 3n,
|
|
210
|
+
* // @log: signature: {
|
|
211
|
+
* // @log: r: BigInt('0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90'),
|
|
212
|
+
* // @log: s: BigInt('0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064'),
|
|
213
|
+
* // @log: yParity: 0,
|
|
214
|
+
* // @log: },
|
|
215
|
+
* // @log: },
|
|
216
|
+
* // @log: {
|
|
217
|
+
* // @log: address: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
218
|
+
* // @log: chainId: 3,
|
|
219
|
+
* // @log: nonce: 20n,
|
|
220
|
+
* // @log: signature: {
|
|
221
|
+
* // @log: r: BigInt('0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90'),
|
|
222
|
+
* // @log: s: BigInt('0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064'),
|
|
223
|
+
* // @log: yParity: 0,
|
|
224
|
+
* // @log: },
|
|
225
|
+
* // @log: },
|
|
226
|
+
* // @log: ]
|
|
227
|
+
* ```
|
|
228
|
+
*
|
|
229
|
+
* @param tupleList - The [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) AA Authorization tuple list.
|
|
230
|
+
* @returns An {@link ox#AuthorizationTempo.List}.
|
|
231
|
+
*/
|
|
232
|
+
export function fromTupleList(tupleList) {
|
|
233
|
+
const list = [];
|
|
234
|
+
for (const tuple of tupleList)
|
|
235
|
+
list.push(fromTuple(tuple));
|
|
236
|
+
return list;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Computes the sign payload for an {@link ox#AuthorizationTempo.AuthorizationTempo} in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.
|
|
240
|
+
*
|
|
241
|
+
* @example
|
|
242
|
+
* The example below demonstrates computing the sign payload for an {@link ox#AuthorizationTempo.AuthorizationTempo}. This payload
|
|
243
|
+
* can then be passed to signing functions like {@link ox#Secp256k1.(sign:function)}.
|
|
244
|
+
*
|
|
245
|
+
* ```ts twoslash
|
|
246
|
+
* import { AuthorizationTempo, Secp256k1 } from 'ox'
|
|
247
|
+
*
|
|
248
|
+
* const authorization = AuthorizationTempo.from({
|
|
249
|
+
* address: '0x1234567890abcdef1234567890abcdef12345678',
|
|
250
|
+
* chainId: 1,
|
|
251
|
+
* nonce: 69n,
|
|
252
|
+
* })
|
|
253
|
+
*
|
|
254
|
+
* const payload = AuthorizationTempo.getSignPayload(authorization) // [!code focus]
|
|
255
|
+
*
|
|
256
|
+
* const signature = Secp256k1.sign({
|
|
257
|
+
* payload,
|
|
258
|
+
* privateKey: '0x...',
|
|
259
|
+
* })
|
|
260
|
+
* ```
|
|
261
|
+
*
|
|
262
|
+
* @param authorization - The {@link ox#AuthorizationTempo.AuthorizationTempo}.
|
|
263
|
+
* @returns The sign payload.
|
|
264
|
+
*/
|
|
265
|
+
export function getSignPayload(authorization) {
|
|
266
|
+
return hash(authorization, { presign: true });
|
|
267
|
+
}
|
|
268
|
+
/**
|
|
269
|
+
* Computes the hash for an {@link ox#AuthorizationTempo.AuthorizationTempo} in [EIP-7702 format](https://eips.ethereum.org/EIPS/eip-7702): `keccak256('0x05' || rlp([chain_id, address, nonce]))`.
|
|
270
|
+
*
|
|
271
|
+
* @example
|
|
272
|
+
* ```ts twoslash
|
|
273
|
+
* import { AuthorizationTempo } from 'ox'
|
|
274
|
+
*
|
|
275
|
+
* const authorization = AuthorizationTempo.from({
|
|
276
|
+
* address: '0x1234567890abcdef1234567890abcdef12345678',
|
|
277
|
+
* chainId: 1,
|
|
278
|
+
* nonce: 69n,
|
|
279
|
+
* })
|
|
280
|
+
*
|
|
281
|
+
* const hash = AuthorizationTempo.hash(authorization) // [!code focus]
|
|
282
|
+
* ```
|
|
283
|
+
*
|
|
284
|
+
* @param authorization - The {@link ox#AuthorizationTempo.AuthorizationTempo}.
|
|
285
|
+
* @returns The hash.
|
|
286
|
+
*/
|
|
287
|
+
export function hash(authorization, options = {}) {
|
|
288
|
+
const { presign } = options;
|
|
289
|
+
return Hash.keccak256(Hex.concat('0x05', Rlp.fromHex(toTuple(presign
|
|
290
|
+
? {
|
|
291
|
+
address: authorization.address,
|
|
292
|
+
chainId: authorization.chainId,
|
|
293
|
+
nonce: authorization.nonce,
|
|
294
|
+
}
|
|
295
|
+
: authorization))));
|
|
296
|
+
}
|
|
297
|
+
/**
|
|
298
|
+
* Converts an {@link ox#AuthorizationTempo.AuthorizationTempo} to an {@link ox#AuthorizationTempo.Rpc}.
|
|
299
|
+
*
|
|
300
|
+
* @example
|
|
301
|
+
* ```ts twoslash
|
|
302
|
+
* import { AuthorizationTempo } from 'ox'
|
|
303
|
+
*
|
|
304
|
+
* const authorization = AuthorizationTempo.toRpc({
|
|
305
|
+
* address: '0x0000000000000000000000000000000000000000',
|
|
306
|
+
* chainId: 1,
|
|
307
|
+
* nonce: 1n,
|
|
308
|
+
* signature: {
|
|
309
|
+
* r: 44944627813007772897391531230081695102703289123332187696115181104739239197517n,
|
|
310
|
+
* s: 36528503505192438307355164441104001310566505351980369085208178712678799181120n,
|
|
311
|
+
* yParity: 0,
|
|
312
|
+
* },
|
|
313
|
+
* })
|
|
314
|
+
* ```
|
|
315
|
+
*
|
|
316
|
+
* @param authorization - An AA Authorization.
|
|
317
|
+
* @returns An RPC-formatted AA Authorization.
|
|
318
|
+
*/
|
|
319
|
+
export function toRpc(authorization) {
|
|
320
|
+
const { address, chainId, nonce, signature } = authorization;
|
|
321
|
+
return {
|
|
322
|
+
address,
|
|
323
|
+
chainId: Hex.fromNumber(chainId),
|
|
324
|
+
nonce: Hex.fromNumber(nonce),
|
|
325
|
+
signature: SignatureEnvelope.toRpc(signature),
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Converts an {@link ox#AuthorizationTempo.List} to an {@link ox#AuthorizationTempo.ListRpc}.
|
|
330
|
+
*
|
|
331
|
+
* @example
|
|
332
|
+
* ```ts twoslash
|
|
333
|
+
* import { AuthorizationTempo } from 'ox'
|
|
334
|
+
*
|
|
335
|
+
* const authorization = AuthorizationTempo.toRpcList([{
|
|
336
|
+
* address: '0x0000000000000000000000000000000000000000',
|
|
337
|
+
* chainId: 1,
|
|
338
|
+
* nonce: 1n,
|
|
339
|
+
* signature: {
|
|
340
|
+
* r: 44944627813007772897391531230081695102703289123332187696115181104739239197517n,
|
|
341
|
+
* s: 36528503505192438307355164441104001310566505351980369085208178712678799181120n,
|
|
342
|
+
* yParity: 0,
|
|
343
|
+
* },
|
|
344
|
+
* }])
|
|
345
|
+
* ```
|
|
346
|
+
*
|
|
347
|
+
* @param authorizationList - An AA Authorization List.
|
|
348
|
+
* @returns An RPC-formatted AA Authorization List.
|
|
349
|
+
*/
|
|
350
|
+
export function toRpcList(authorizationList) {
|
|
351
|
+
return authorizationList.map((x) => toRpc(x));
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Converts an {@link ox#AuthorizationTempo.AuthorizationTempo} to an {@link ox#AuthorizationTempo.Tuple}.
|
|
355
|
+
*
|
|
356
|
+
* @example
|
|
357
|
+
* ```ts twoslash
|
|
358
|
+
* import { AuthorizationTempo } from 'ox'
|
|
359
|
+
*
|
|
360
|
+
* const authorization = AuthorizationTempo.from({
|
|
361
|
+
* address: '0x1234567890abcdef1234567890abcdef12345678',
|
|
362
|
+
* chainId: 1,
|
|
363
|
+
* nonce: 69n,
|
|
364
|
+
* })
|
|
365
|
+
*
|
|
366
|
+
* const tuple = AuthorizationTempo.toTuple(authorization) // [!code focus]
|
|
367
|
+
* // @log: [
|
|
368
|
+
* // @log: address: '0x1234567890abcdef1234567890abcdef12345678',
|
|
369
|
+
* // @log: chainId: 1,
|
|
370
|
+
* // @log: nonce: 69n,
|
|
371
|
+
* // @log: ]
|
|
372
|
+
* ```
|
|
373
|
+
*
|
|
374
|
+
* @param authorization - The {@link ox#AuthorizationTempo.AuthorizationTempo}.
|
|
375
|
+
* @returns An [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) AA Authorization tuple.
|
|
376
|
+
*/
|
|
377
|
+
export function toTuple(authorization) {
|
|
378
|
+
const { address, chainId, nonce } = authorization;
|
|
379
|
+
const signature = authorization.signature
|
|
380
|
+
? SignatureEnvelope.serialize(authorization.signature)
|
|
381
|
+
: undefined;
|
|
382
|
+
return [
|
|
383
|
+
chainId ? Hex.fromNumber(chainId) : '0x',
|
|
384
|
+
address,
|
|
385
|
+
nonce ? Hex.fromNumber(nonce) : '0x',
|
|
386
|
+
...(signature ? [signature] : []),
|
|
387
|
+
];
|
|
388
|
+
}
|
|
389
|
+
/**
|
|
390
|
+
* Converts an {@link ox#AuthorizationTempo.List} to an {@link ox#AuthorizationTempo.TupleList}.
|
|
391
|
+
*
|
|
392
|
+
* @example
|
|
393
|
+
* ```ts twoslash
|
|
394
|
+
* import { AuthorizationTempo } from 'ox'
|
|
395
|
+
*
|
|
396
|
+
* const authorization_1 = AuthorizationTempo.from({
|
|
397
|
+
* address: '0x1234567890abcdef1234567890abcdef12345678',
|
|
398
|
+
* chainId: 1,
|
|
399
|
+
* nonce: 69n,
|
|
400
|
+
* })
|
|
401
|
+
* const authorization_2 = AuthorizationTempo.from({
|
|
402
|
+
* address: '0x1234567890abcdef1234567890abcdef12345678',
|
|
403
|
+
* chainId: 3,
|
|
404
|
+
* nonce: 20n,
|
|
405
|
+
* })
|
|
406
|
+
*
|
|
407
|
+
* const tuple = AuthorizationTempo.toTupleList([authorization_1, authorization_2]) // [!code focus]
|
|
408
|
+
* // @log: [
|
|
409
|
+
* // @log: [
|
|
410
|
+
* // @log: address: '0x1234567890abcdef1234567890abcdef12345678',
|
|
411
|
+
* // @log: chainId: 1,
|
|
412
|
+
* // @log: nonce: 69n,
|
|
413
|
+
* // @log: ],
|
|
414
|
+
* // @log: [
|
|
415
|
+
* // @log: address: '0x1234567890abcdef1234567890abcdef12345678',
|
|
416
|
+
* // @log: chainId: 3,
|
|
417
|
+
* // @log: nonce: 20n,
|
|
418
|
+
* // @log: ],
|
|
419
|
+
* // @log: ]
|
|
420
|
+
* ```
|
|
421
|
+
*
|
|
422
|
+
* @param list - An {@link ox#AuthorizationTempo.List}.
|
|
423
|
+
* @returns An [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) AA Authorization tuple list.
|
|
424
|
+
*/
|
|
425
|
+
export function toTupleList(list) {
|
|
426
|
+
if (!list || list.length === 0)
|
|
427
|
+
return [];
|
|
428
|
+
const tupleList = [];
|
|
429
|
+
for (const authorization of list)
|
|
430
|
+
tupleList.push(toTuple(authorization));
|
|
431
|
+
return tupleList;
|
|
432
|
+
}
|
|
433
|
+
//# sourceMappingURL=AuthorizationTempo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthorizationTempo.js","sourceRoot":"","sources":["../../src/ox/AuthorizationTempo.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import * as SignatureEnvelope from './SignatureEnvelope.js';
|
|
|
8
8
|
/**
|
|
9
9
|
* Key authorization for provisioning access keys.
|
|
10
10
|
*
|
|
11
|
-
* Used in
|
|
11
|
+
* Used in TransactionEnvelopeTempo to add a new key to the keychain precompile.
|
|
12
12
|
* The transaction must be signed by the root key to authorize adding this access key.
|
|
13
13
|
*/
|
|
14
14
|
export type KeyAuthorization<signed extends boolean = boolean, bigintType = bigint, numberType = number> = {
|
|
@@ -30,8 +30,8 @@ export type KeyAuthorization<signed extends boolean = boolean, bigintType = bigi
|
|
|
30
30
|
/** RPC representation of an {@link ox#KeyAuthorization.KeyAuthorization}. */
|
|
31
31
|
export type Rpc = Omit<KeyAuthorization<false, Hex.Hex, Hex.Hex>, 'address' | 'signature' | 'type'> & {
|
|
32
32
|
keyId: Address.Address;
|
|
33
|
-
signature: SignatureEnvelope.SignatureEnvelopeRpc;
|
|
34
33
|
keyType: SignatureEnvelope.Type;
|
|
34
|
+
signature: SignatureEnvelope.SignatureEnvelopeRpc;
|
|
35
35
|
};
|
|
36
36
|
/** Signed representation of a Key Authorization. */
|
|
37
37
|
export type Signed<bigintType = bigint, numberType = number> = KeyAuthorization<true, bigintType, numberType>;
|
|
@@ -344,8 +344,8 @@ export declare namespace toRpc {
|
|
|
344
344
|
* // @log: ]
|
|
345
345
|
* ```
|
|
346
346
|
*
|
|
347
|
-
* @param authorization - The {@link ox#
|
|
348
|
-
* @returns
|
|
347
|
+
* @param authorization - The {@link ox#KeyAuthorization.KeyAuthorization}.
|
|
348
|
+
* @returns A Tempo Key Authorization tuple.
|
|
349
349
|
*/
|
|
350
350
|
export declare function toTuple<const authorization extends KeyAuthorization>(authorization: authorization): toTuple.ReturnType<authorization>;
|
|
351
351
|
export declare namespace toTuple {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyAuthorization.d.ts","sourceRoot":"","sources":["../../src/ox/KeyAuthorization.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,OAAO,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,IAAI,MAAM,SAAS,CAAA;AAC/B,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAA;AAC7B,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAA;AAC7B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"KeyAuthorization.d.ts","sourceRoot":"","sources":["../../src/ox/KeyAuthorization.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@ import * as Hash from 'ox/Hash';
|
|
|
2
2
|
import * as Hex from 'ox/Hex';
|
|
3
3
|
import * as Rlp from 'ox/Rlp';
|
|
4
4
|
import * as SignatureEnvelope from './SignatureEnvelope.js';
|
|
5
|
-
const defaultExpiry = 0xffffffffffff;
|
|
6
5
|
/**
|
|
7
6
|
* Converts a Key Authorization object into a typed {@link ox#KeyAuthorization.KeyAuthorization}.
|
|
8
7
|
*
|
|
@@ -287,11 +286,11 @@ export function hash(authorization) {
|
|
|
287
286
|
* @returns An RPC-formatted Key Authorization.
|
|
288
287
|
*/
|
|
289
288
|
export function toRpc(authorization) {
|
|
290
|
-
const { address, chainId = 0n, expiry
|
|
289
|
+
const { address, chainId = 0n, expiry, limits, type, signature, } = authorization;
|
|
291
290
|
return {
|
|
292
291
|
chainId: chainId === 0n ? '0x' : Hex.fromNumber(chainId),
|
|
293
|
-
expiry: Hex.fromNumber(expiry),
|
|
294
|
-
limits: limits
|
|
292
|
+
expiry: typeof expiry === 'number' ? Hex.fromNumber(expiry) : undefined,
|
|
293
|
+
limits: limits?.map(({ token, limit }) => ({
|
|
295
294
|
token,
|
|
296
295
|
limit: Hex.fromNumber(limit),
|
|
297
296
|
})),
|
|
@@ -327,8 +326,8 @@ export function toRpc(authorization) {
|
|
|
327
326
|
* // @log: ]
|
|
328
327
|
* ```
|
|
329
328
|
*
|
|
330
|
-
* @param authorization - The {@link ox#
|
|
331
|
-
* @returns
|
|
329
|
+
* @param authorization - The {@link ox#KeyAuthorization.KeyAuthorization}.
|
|
330
|
+
* @returns A Tempo Key Authorization tuple.
|
|
332
331
|
*/
|
|
333
332
|
export function toTuple(authorization) {
|
|
334
333
|
const { address, chainId = 0n, expiry, limits } = authorization;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeyAuthorization.js","sourceRoot":"","sources":["../../src/ox/KeyAuthorization.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,IAAI,MAAM,SAAS,CAAA;AAC/B,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAA;AAC7B,OAAO,KAAK,GAAG,MAAM,QAAQ,CAAA;AAE7B,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;
|
|
1
|
+
{"version":3,"file":"KeyAuthorization.js","sourceRoot":"","sources":["../../src/ox/KeyAuthorization.ts"],"names":[],"mappings":"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"}
|
package/dist/ox/Transaction.d.ts
CHANGED
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import type * as AccessList from 'ox/AccessList';
|
|
2
2
|
import type * as Address from 'ox/Address';
|
|
3
|
-
import type * as Authorization from 'ox/Authorization';
|
|
4
3
|
import type * as Errors from 'ox/Errors';
|
|
5
4
|
import * as Hex from 'ox/Hex';
|
|
6
5
|
import * as ox_Transaction from 'ox/Transaction';
|
|
7
6
|
import type { Compute, OneOf, UnionCompute } from '../internal/types.js';
|
|
7
|
+
import * as AuthorizationTempo from './AuthorizationTempo.js';
|
|
8
8
|
import * as KeyAuthorization from './KeyAuthorization.js';
|
|
9
9
|
import * as SignatureEnvelope from './SignatureEnvelope.js';
|
|
10
|
-
import type { Call } from './
|
|
10
|
+
import type { Call } from './TransactionEnvelopeTempo.js';
|
|
11
11
|
/**
|
|
12
12
|
* A Transaction as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/main/src/schemas/transaction.yaml).
|
|
13
13
|
*/
|
|
14
|
-
export type Transaction<pending extends boolean = false, bigintType = bigint, numberType = number> = UnionCompute<OneOf<
|
|
14
|
+
export type Transaction<pending extends boolean = false, bigintType = bigint, numberType = number> = UnionCompute<OneOf<Tempo<pending, bigintType, numberType> | ox_Transaction.Transaction<pending, bigintType, numberType>>>;
|
|
15
15
|
/**
|
|
16
16
|
* An RPC Transaction as defined in the [Execution API specification](https://github.com/ethereum/execution-apis/blob/main/src/schemas/transaction.yaml).
|
|
17
17
|
*/
|
|
18
|
-
export type Rpc<pending extends boolean = false> = UnionCompute<OneOf<
|
|
18
|
+
export type Rpc<pending extends boolean = false> = UnionCompute<OneOf<TempoRpc<pending> | ox_Transaction.Rpc<pending>>>;
|
|
19
19
|
/**
|
|
20
20
|
* Native account abstraction transaction.
|
|
21
21
|
*/
|
|
22
|
-
export type
|
|
22
|
+
export type Tempo<pending extends boolean = false, bigintType = bigint, numberType = number, type extends string = 'tempo'> = Compute<Omit<ox_Transaction.Base<type, pending, bigintType, numberType>, 'input' | 'to' | 'value' | 'v' | 'r' | 's' | 'yParity'> & {
|
|
23
23
|
/** EIP-2930 Access List. */
|
|
24
24
|
accessList: AccessList.AccessList;
|
|
25
25
|
/** EIP-7702 Authorization list for the transaction. */
|
|
26
|
-
authorizationList?:
|
|
26
|
+
authorizationList?: AuthorizationTempo.ListSigned<bigintType, numberType> | undefined;
|
|
27
27
|
/** Array of calls to execute. */
|
|
28
28
|
calls: readonly Call<bigintType>[];
|
|
29
29
|
/** Fee payer signature. */
|
|
@@ -59,7 +59,8 @@ export type AA<pending extends boolean = false, bigintType = bigint, numberType
|
|
|
59
59
|
/**
|
|
60
60
|
* Native account abstraction transaction in RPC format.
|
|
61
61
|
*/
|
|
62
|
-
export type
|
|
62
|
+
export type TempoRpc<pending extends boolean = false> = Compute<Omit<Tempo<pending, Hex.Hex, Hex.Hex, ToRpcType['tempo']>, 'authorizationList' | 'calls' | 'keyAuthorization' | 'signature'> & {
|
|
63
|
+
aaAuthorizationList?: AuthorizationTempo.ListRpc | undefined;
|
|
63
64
|
calls: readonly {
|
|
64
65
|
input?: Hex.Hex | undefined;
|
|
65
66
|
to?: Hex.Hex | undefined;
|
|
@@ -70,7 +71,7 @@ export type AARpc<pending extends boolean = false> = Compute<Omit<AA<pending, He
|
|
|
70
71
|
}>;
|
|
71
72
|
/** Type to RPC Type mapping. */
|
|
72
73
|
export declare const toRpcType: {
|
|
73
|
-
readonly
|
|
74
|
+
readonly tempo: "0x76";
|
|
74
75
|
readonly legacy: "0x0";
|
|
75
76
|
readonly eip2930: "0x1";
|
|
76
77
|
readonly eip1559: "0x2";
|
|
@@ -83,7 +84,7 @@ export type ToRpcType = typeof toRpcType & {
|
|
|
83
84
|
};
|
|
84
85
|
/** RPC Type to Type mapping. */
|
|
85
86
|
export declare const fromRpcType: {
|
|
86
|
-
readonly '0x76': "
|
|
87
|
+
readonly '0x76': "tempo";
|
|
87
88
|
readonly '0x0': "legacy";
|
|
88
89
|
readonly '0x1': "eip2930";
|
|
89
90
|
readonly '0x2': "eip1559";
|
|
@@ -183,7 +184,7 @@ export declare namespace fromRpc {
|
|
|
183
184
|
* type: 'secp256k1',
|
|
184
185
|
* },
|
|
185
186
|
* transactionIndex: 2,
|
|
186
|
-
* type: '
|
|
187
|
+
* type: 'tempo',
|
|
187
188
|
* })
|
|
188
189
|
* ```
|
|
189
190
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../src/ox/Transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,UAAU,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,KAAK,OAAO,MAAM,YAAY,CAAA;AAC1C,OAAO,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"Transaction.d.ts","sourceRoot":"","sources":["../../src/ox/Transaction.ts"],"names":[],"mappings":"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"}
|