ox 0.14.24 → 0.14.26

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.
Files changed (39) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/_cjs/tempo/Channel.js +31 -11
  3. package/_cjs/tempo/Channel.js.map +1 -1
  4. package/_cjs/tempo/KeyAuthorization.js +130 -57
  5. package/_cjs/tempo/KeyAuthorization.js.map +1 -1
  6. package/_cjs/tempo/index.js +1 -2
  7. package/_cjs/tempo/index.js.map +1 -1
  8. package/_cjs/version.js +1 -1
  9. package/_esm/tempo/Channel.js +56 -13
  10. package/_esm/tempo/Channel.js.map +1 -1
  11. package/_esm/tempo/KeyAuthorization.js +155 -62
  12. package/_esm/tempo/KeyAuthorization.js.map +1 -1
  13. package/_esm/tempo/index.js +9 -30
  14. package/_esm/tempo/index.js.map +1 -1
  15. package/_esm/version.js +1 -1
  16. package/_types/tempo/Channel.d.ts +73 -8
  17. package/_types/tempo/Channel.d.ts.map +1 -1
  18. package/_types/tempo/KeyAuthorization.d.ts +54 -2
  19. package/_types/tempo/KeyAuthorization.d.ts.map +1 -1
  20. package/_types/tempo/index.d.ts +9 -30
  21. package/_types/tempo/index.d.ts.map +1 -1
  22. package/_types/version.d.ts +1 -1
  23. package/package.json +2 -8
  24. package/tempo/Channel.test.ts +99 -16
  25. package/tempo/Channel.ts +127 -18
  26. package/tempo/KeyAuthorization.test.ts +333 -0
  27. package/tempo/KeyAuthorization.ts +240 -72
  28. package/tempo/e2e.test.ts +330 -0
  29. package/tempo/index.ts +9 -30
  30. package/version.ts +1 -1
  31. package/_cjs/tempo/ChannelDescriptor.js +0 -24
  32. package/_cjs/tempo/ChannelDescriptor.js.map +0 -1
  33. package/_esm/tempo/ChannelDescriptor.js +0 -43
  34. package/_esm/tempo/ChannelDescriptor.js.map +0 -1
  35. package/_types/tempo/ChannelDescriptor.d.ts +0 -73
  36. package/_types/tempo/ChannelDescriptor.d.ts.map +0 -1
  37. package/tempo/ChannelDescriptor/package.json +0 -6
  38. package/tempo/ChannelDescriptor.test.ts +0 -93
  39. package/tempo/ChannelDescriptor.ts +0 -115
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # ox
2
2
 
3
+ ## 0.14.26
4
+
5
+ ### Patch Changes
6
+
7
+ - [#262](https://github.com/wevm/ox/pull/262) [`b1ac8c8`](https://github.com/wevm/ox/commit/b1ac8c83f9f5f7a89e14f3486a1e32305e019292) Thanks [@jxom](https://github.com/jxom)! - `ox/tempo`: Added support for TIP-1049 (admin access keys) via optional `isAdmin` and `account` fields on `KeyAuthorization` that bind into the signing hash.
8
+
9
+ - [#260](https://github.com/wevm/ox/pull/260) [`581ccee`](https://github.com/wevm/ox/commit/581ccee2d9dab4a2c2f12aad0b2a63b1d4d0d62d) Thanks [@jxom](https://github.com/jxom)! - `ox/tempo`: Added support for TIP-1053 (witnesses in key authorizations) via an optional 32-byte `witness` field on `KeyAuthorization` that is included in the signing hash.
10
+
11
+ ## 0.14.25
12
+
13
+ ### Patch Changes
14
+
15
+ - [#256](https://github.com/wevm/ox/pull/256) [`ad7610b`](https://github.com/wevm/ox/commit/ad7610b115c1ebc20739289bfacead52652160be) Thanks [@jxom](https://github.com/jxom)! - Renamed `ChannelDescriptor.from` to `Channel.from`, made `Channel.Channel` the descriptor type, and changed `Channel.computeId` to receive channel and options separately.
16
+
3
17
  ## 0.14.24
4
18
 
5
19
  ### Patch Changes
@@ -1,34 +1,51 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.voucherTypehash = exports.closeGracePeriod = exports.address = void 0;
4
+ exports.from = from;
4
5
  exports.computeId = computeId;
5
6
  exports.domainSeparator = domainSeparator;
6
7
  exports.getVoucherSignPayload = getVoucherSignPayload;
7
8
  const AbiParameters = require("../core/AbiParameters.js");
9
+ const Address = require("../core/Address.js");
8
10
  const Hash = require("../core/Hash.js");
9
11
  const Hex = require("../core/Hex.js");
10
- const ChannelDescriptor = require("./ChannelDescriptor.js");
12
+ const TokenId = require("./TokenId.js");
11
13
  const channelIdParameters = AbiParameters.from('address, address, address, address, bytes32, address, bytes32, address, uint256');
12
14
  const domainSeparatorParameters = AbiParameters.from('bytes32, bytes32, bytes32, uint256, address');
13
15
  const voucherHashParameters = AbiParameters.from('bytes32, bytes32, uint96');
14
16
  const eip712DomainTypehash = Hash.keccak256(Hex.fromString('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'));
15
17
  const nameHash = Hash.keccak256(Hex.fromString('TIP20 Channel Reserve'));
16
18
  const versionHash = Hash.keccak256(Hex.fromString('1'));
19
+ const zeroAddress = '0x0000000000000000000000000000000000000000';
17
20
  exports.address = '0x4d50500000000000000000000000000000000000';
18
21
  exports.closeGracePeriod = 900n;
19
22
  exports.voucherTypehash = Hash.keccak256(Hex.fromString('Voucher(bytes32 channelId,uint96 cumulativeAmount)'));
20
- function computeId(value) {
21
- const descriptor = ChannelDescriptor.from(value);
23
+ function from(value) {
24
+ const { authorizedSigner = zeroAddress, expiringNonceHash, operator = zeroAddress, payee, payer, salt, token, } = value;
25
+ return {
26
+ authorizedSigner: resolveAddress(authorizedSigner),
27
+ expiringNonceHash,
28
+ operator: resolveAddress(operator),
29
+ payee: resolveAddress(payee),
30
+ payer: resolveAddress(payer),
31
+ salt,
32
+ token: typeof token === 'string'
33
+ ? resolveAddress(token)
34
+ : TokenId.toAddress(token),
35
+ };
36
+ }
37
+ function computeId(channel, options) {
38
+ const channel_ = from(channel);
22
39
  return Hash.keccak256(AbiParameters.encode(channelIdParameters, [
23
- descriptor.payer,
24
- descriptor.payee,
25
- descriptor.operator,
26
- descriptor.token,
27
- descriptor.salt,
28
- descriptor.authorizedSigner,
29
- descriptor.expiringNonceHash,
40
+ channel_.payer,
41
+ channel_.payee,
42
+ channel_.operator,
43
+ channel_.token,
44
+ channel_.salt,
45
+ channel_.authorizedSigner,
46
+ channel_.expiringNonceHash,
30
47
  exports.address,
31
- BigInt(value.chainId),
48
+ BigInt(options.chainId),
32
49
  ]));
33
50
  }
34
51
  function domainSeparator(value) {
@@ -48,4 +65,7 @@ function getVoucherSignPayload(value) {
48
65
  ]));
49
66
  return Hash.keccak256(Hex.concat('0x1901', domainSeparator({ chainId: value.chainId }), voucherHash));
50
67
  }
68
+ function resolveAddress(address) {
69
+ return Address.from(address);
70
+ }
51
71
  //# sourceMappingURL=Channel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Channel.js","sourceRoot":"","sources":["../../tempo/Channel.ts"],"names":[],"mappings":";;;AAsEA,8BAeC;AA8BD,0CAUC;AA+BD,sDAiBC;AA7KD,0DAAyD;AAEzD,wCAAuC;AACvC,sCAAqC;AACrC,4DAA2D;AAE3D,MAAM,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAC5C,iFAAiF,CAClF,CAAA;AACD,MAAM,yBAAyB,GAAG,aAAa,CAAC,IAAI,CAClD,6CAA6C,CAC9C,CAAA;AACD,MAAM,qBAAqB,GAAG,aAAa,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;AAE5E,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CACzC,GAAG,CAAC,UAAU,CACZ,oFAAoF,CACrF,CACF,CAAA;AACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAA;AACxE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;AAK1C,QAAA,OAAO,GAClB,4CAA+E,CAAA;AAKpE,QAAA,gBAAgB,GAAG,IAAI,CAAA;AAKvB,QAAA,eAAe,GAAG,IAAI,CAAC,SAAS,CAC3C,GAAG,CAAC,UAAU,CAAC,oDAAoD,CAAC,CACrE,CAAA;AAgCD,SAAgB,SAAS,CAAC,KAAsB;IAC9C,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAChD,OAAO,IAAI,CAAC,SAAS,CACnB,aAAa,CAAC,MAAM,CAAC,mBAAmB,EAAE;QACxC,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,QAAQ;QACnB,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,IAAI;QACf,UAAU,CAAC,gBAAgB;QAC3B,UAAU,CAAC,iBAAiB;QAC5B,eAAO;QACP,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;KACtB,CAAC,CACH,CAAA;AACH,CAAC;AA8BD,SAAgB,eAAe,CAAC,KAA4B;IAC1D,OAAO,IAAI,CAAC,SAAS,CACnB,aAAa,CAAC,MAAM,CAAC,yBAAyB,EAAE;QAC9C,oBAAoB;QACpB,QAAQ;QACR,WAAW;QACX,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QACrB,eAAO;KACR,CAAC,CACH,CAAA;AACH,CAAC;AA+BD,SAAgB,qBAAqB,CACnC,KAAkC;IAElC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAChC,aAAa,CAAC,MAAM,CAAC,qBAAqB,EAAE;QAC1C,uBAAe;QACf,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,gBAAgB;KACvB,CAAC,CACH,CAAA;IACD,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,CAAC,MAAM,CACR,QAAQ,EACR,eAAe,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAC3C,WAAW,CACZ,CACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"Channel.js","sourceRoot":"","sources":["../../tempo/Channel.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidAdminMarkerError = exports.InvalidWitnessSizeError = void 0;
3
4
  exports.from = from;
4
5
  exports.fromRpc = fromRpc;
5
6
  exports.fromTuple = fromTuple;
@@ -19,6 +20,8 @@ function from(authorization, options = {}) {
19
20
  if ('keyId' in authorization)
20
21
  return fromRpc(authorization);
21
22
  const auth = authorization;
23
+ if (auth.witness !== undefined)
24
+ assertWitness(auth.witness);
22
25
  const resolved = {
23
26
  ...auth,
24
27
  address: TempoAddress.resolve(auth.address),
@@ -54,7 +57,12 @@ function from(authorization, options = {}) {
54
57
  }
55
58
  function fromRpc(authorization) {
56
59
  const { allowedCalls, chainId, keyId, expiry, limits, keyType } = authorization;
60
+ const witness = authorization.witness ?? undefined;
61
+ const isAdmin = authorization.isAdmin ?? undefined;
62
+ const account = authorization.account ?? undefined;
57
63
  const signature = SignatureEnvelope.fromRpc(authorization.signature);
64
+ if (witness !== undefined)
65
+ assertWitness(witness);
58
66
  const scopes = allowedCalls
59
67
  ? allowedCalls.flatMap((callScope) => {
60
68
  if (!callScope.selectorRules || callScope.selectorRules.length === 0)
@@ -82,11 +90,14 @@ function fromRpc(authorization) {
82
90
  ...(scopes ? { scopes } : {}),
83
91
  signature,
84
92
  type: keyType,
93
+ ...(witness !== undefined ? { witness } : {}),
94
+ ...(isAdmin ? { isAdmin: true } : {}),
95
+ ...(account !== undefined ? { account } : {}),
85
96
  };
86
97
  }
87
98
  function fromTuple(tuple) {
88
99
  const [authorization, signatureSerialized] = tuple;
89
- const [chainId, keyType_hex, keyId, expiry, limits, scopes] = authorization;
100
+ const [chainId, keyType_hex, keyId, ...trailing] = authorization;
90
101
  const keyType = (() => {
91
102
  switch (keyType_hex) {
92
103
  case '0x':
@@ -100,51 +111,60 @@ function fromTuple(tuple) {
100
111
  throw new Error(`Invalid key type: ${keyType_hex}`);
101
112
  }
102
113
  })();
114
+ const [rawExpiry, rawLimits, rawScopes, rawWitness, rawIsAdmin, rawAccount] = trailing;
115
+ const expiry = isAbsent(rawExpiry)
116
+ ? undefined
117
+ : hexToNumber(rawExpiry) || undefined;
118
+ const limits = Array.isArray(rawLimits) && rawLimits.length > 0
119
+ ? rawLimits.map((limitTuple) => {
120
+ const [token, limit, period] = limitTuple;
121
+ return {
122
+ token,
123
+ limit: hexToBigint(limit),
124
+ ...(period !== undefined ? { period: hexToNumber(period) } : {}),
125
+ };
126
+ })
127
+ : undefined;
128
+ const scopes = Array.isArray(rawScopes)
129
+ ? rawScopes.flatMap((scopeTuple) => {
130
+ const [address, selectorRules] = scopeTuple;
131
+ if (!Array.isArray(selectorRules) || selectorRules.length === 0)
132
+ return [{ address }];
133
+ return selectorRules.map((ruleTuple) => {
134
+ const [selector, recipients] = ruleTuple;
135
+ return {
136
+ address,
137
+ selector,
138
+ ...(Array.isArray(recipients) && recipients.length > 0
139
+ ? { recipients }
140
+ : {}),
141
+ };
142
+ });
143
+ })
144
+ : undefined;
145
+ const witness = isAbsent(rawWitness) ? undefined : rawWitness;
146
+ if (witness !== undefined)
147
+ assertWitness(witness);
148
+ const isAdmin = (() => {
149
+ if (isAbsent(rawIsAdmin))
150
+ return undefined;
151
+ if (rawIsAdmin !== '0x01')
152
+ throw new InvalidAdminMarkerError(rawIsAdmin);
153
+ return true;
154
+ })();
155
+ const account = isAbsent(rawAccount)
156
+ ? undefined
157
+ : rawAccount;
158
+ const adminPair = account !== undefined && isAdmin ? { account, isAdmin: true } : {};
103
159
  const args = {
104
160
  address: keyId,
105
- expiry: typeof expiry !== 'undefined'
106
- ? hexToNumber(expiry) || undefined
107
- : undefined,
108
- type: keyType,
109
161
  chainId: chainId === '0x' ? 0n : Hex.toBigInt(chainId),
110
- ...(typeof expiry !== 'undefined'
111
- ? { expiry: hexToNumber(expiry) || undefined }
112
- : {}),
113
- ...(typeof limits !== 'undefined' &&
114
- Array.isArray(limits) &&
115
- limits.length > 0
116
- ? {
117
- limits: limits.map((limitTuple) => {
118
- const [token, limit, period] = limitTuple;
119
- return {
120
- token,
121
- limit: hexToBigint(limit),
122
- ...(typeof period !== 'undefined'
123
- ? { period: hexToNumber(period) }
124
- : {}),
125
- };
126
- }),
127
- }
128
- : {}),
129
- ...(typeof scopes !== 'undefined' && Array.isArray(scopes)
130
- ? {
131
- scopes: scopes.flatMap((scopeTuple) => {
132
- const [address, selectorRules] = scopeTuple;
133
- if (!Array.isArray(selectorRules) || selectorRules.length === 0)
134
- return [{ address }];
135
- return selectorRules.map((ruleTuple) => {
136
- const [selector, recipients] = ruleTuple;
137
- return {
138
- address,
139
- selector,
140
- ...(Array.isArray(recipients) && recipients.length > 0
141
- ? { recipients }
142
- : {}),
143
- };
144
- });
145
- }),
146
- }
147
- : {}),
162
+ type: keyType,
163
+ ...(expiry !== undefined ? { expiry } : {}),
164
+ ...(limits !== undefined ? { limits } : {}),
165
+ ...(scopes !== undefined ? { scopes } : {}),
166
+ ...(witness !== undefined ? { witness } : {}),
167
+ ...adminPair,
148
168
  };
149
169
  if (signatureSerialized)
150
170
  args.signature = SignatureEnvelope.deserialize(signatureSerialized);
@@ -167,7 +187,9 @@ function serialize(authorization) {
167
187
  return Rlp.fromHex(tuple);
168
188
  }
169
189
  function toRpc(authorization) {
170
- const { address, scopes, chainId, expiry, limits, type, signature } = authorization;
190
+ const { address, scopes, chainId, expiry, limits, type, signature, witness, isAdmin, account, } = authorization;
191
+ if (witness !== undefined)
192
+ assertWitness(witness);
171
193
  const allowedCalls = (() => {
172
194
  if (!scopes)
173
195
  return undefined;
@@ -202,10 +224,15 @@ function toRpc(authorization) {
202
224
  })),
203
225
  signature: SignatureEnvelope.toRpc(signature),
204
226
  ...(allowedCalls ? { allowedCalls } : {}),
227
+ ...(witness !== undefined ? { witness } : {}),
228
+ ...(isAdmin ? { isAdmin: true } : {}),
229
+ ...(account !== undefined ? { account } : {}),
205
230
  };
206
231
  }
207
232
  function toTuple(authorization) {
208
- const { address, chainId, scopes, expiry, limits } = authorization;
233
+ const { address, chainId, scopes, expiry, limits, witness, isAdmin, account, } = authorization;
234
+ if (witness !== undefined)
235
+ assertWitness(witness);
209
236
  const signature = authorization.signature
210
237
  ? SignatureEnvelope.serialize(authorization.signature)
211
238
  : undefined;
@@ -250,18 +277,33 @@ function toTuple(authorization) {
250
277
  selectorRules.map(([selector, recipients]) => [selector, recipients]),
251
278
  ]);
252
279
  })();
253
- const authorizationTuple = [
254
- bigintToHex(chainId),
255
- type,
256
- address,
257
- (expiry !== null && expiry !== undefined && expiry !== 0) ||
258
- limitsValue ||
259
- callsValue
260
- ? numberToHex(expiry ?? 0)
261
- : undefined,
262
- limitsValue || callsValue ? (limitsValue ?? []) : undefined,
263
- callsValue,
264
- ].filter((x) => typeof x !== 'undefined');
280
+ const hasTip1053Plus = witness !== undefined || isAdmin || account !== undefined;
281
+ const optionals = [
282
+ {
283
+ value: expiry !== null && expiry !== undefined && expiry !== 0
284
+ ? numberToHex(expiry)
285
+ : undefined,
286
+ placeholder: '0x',
287
+ },
288
+ {
289
+ value: limitsValue,
290
+ placeholder: hasTip1053Plus ? '0x' : [],
291
+ },
292
+ { value: callsValue, placeholder: '0x' },
293
+ { value: witness, placeholder: '0x' },
294
+ { value: isAdmin ? '0x01' : undefined, placeholder: '0x' },
295
+ { value: account, placeholder: '0x' },
296
+ ];
297
+ let lastPresent = -1;
298
+ for (let i = optionals.length - 1; i >= 0; i--)
299
+ if (optionals[i].value !== undefined) {
300
+ lastPresent = i;
301
+ break;
302
+ }
303
+ const trailing = optionals
304
+ .slice(0, lastPresent + 1)
305
+ .map(({ value, placeholder }) => value ?? placeholder);
306
+ const authorizationTuple = [bigintToHex(chainId), type, address, ...trailing];
265
307
  return [authorizationTuple, ...(signature ? [signature] : [])];
266
308
  }
267
309
  function bigintToHex(value) {
@@ -290,4 +332,35 @@ function resolveSelector(selector) {
290
332
  return selector;
291
333
  return AbiItem.getSelector(selector);
292
334
  }
335
+ function assertWitness(witness) {
336
+ if (Hex.size(witness) !== 32)
337
+ throw new InvalidWitnessSizeError(witness);
338
+ }
339
+ function isAbsent(value) {
340
+ return value === undefined || value === '0x';
341
+ }
342
+ class InvalidWitnessSizeError extends Error {
343
+ constructor(witness) {
344
+ super(`Witness \`${witness}\` must be exactly 32 bytes (got ${Hex.size(witness)} bytes).`);
345
+ Object.defineProperty(this, "name", {
346
+ enumerable: true,
347
+ configurable: true,
348
+ writable: true,
349
+ value: 'KeyAuthorization.InvalidWitnessSizeError'
350
+ });
351
+ }
352
+ }
353
+ exports.InvalidWitnessSizeError = InvalidWitnessSizeError;
354
+ class InvalidAdminMarkerError extends Error {
355
+ constructor(marker) {
356
+ super(`Admin marker \`${marker}\` is invalid; expected \`0x01\` (TIP-1049).`);
357
+ Object.defineProperty(this, "name", {
358
+ enumerable: true,
359
+ configurable: true,
360
+ writable: true,
361
+ value: 'KeyAuthorization.InvalidAdminMarkerError'
362
+ });
363
+ }
364
+ }
365
+ exports.InvalidAdminMarkerError = InvalidAdminMarkerError;
293
366
  //# sourceMappingURL=KeyAuthorization.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KeyAuthorization.js","sourceRoot":"","sources":["../../tempo/KeyAuthorization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KeyAuthorization.js","sourceRoot":"","sources":["../../tempo/KeyAuthorization.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ZoneRpcAuthentication = exports.ZoneId = exports.VirtualMaster = exports.VirtualAddress = exports.TxEnvelopeTempo = exports.TransactionRequest = exports.TransactionReceipt = exports.Transaction = exports.TokenRole = exports.TokenId = exports.Tick = exports.TempoAddress = exports.SignatureEnvelope = exports.RpcSchemaTempo = exports.PoolId = exports.Period = exports.KeyAuthorization = exports.ChannelDescriptor = exports.Channel = exports.AuthorizationTempo = void 0;
3
+ exports.ZoneRpcAuthentication = exports.ZoneId = exports.VirtualMaster = exports.VirtualAddress = exports.TxEnvelopeTempo = exports.TransactionRequest = exports.TransactionReceipt = exports.Transaction = exports.TokenRole = exports.TokenId = exports.Tick = exports.TempoAddress = exports.SignatureEnvelope = exports.RpcSchemaTempo = exports.PoolId = exports.Period = exports.KeyAuthorization = exports.Channel = exports.AuthorizationTempo = void 0;
4
4
  exports.AuthorizationTempo = require("./AuthorizationTempo.js");
5
5
  exports.Channel = require("./Channel.js");
6
- exports.ChannelDescriptor = require("./ChannelDescriptor.js");
7
6
  exports.KeyAuthorization = require("./KeyAuthorization.js");
8
7
  exports.Period = require("./Period.js");
9
8
  exports.PoolId = require("./PoolId.js");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../tempo/index.ts"],"names":[],"mappings":";;;AAoCA,gEAA6D;AA0B7D,0CAAuC;AAsBvC,8DAA2D;AAwC3D,4DAAyD;AA6BzD,wCAAqC;AAsBrC,wCAAqC;AAoBrC,wDAAqD;AAuBrD,8DAA2D;AAmB3D,oDAAiD;AAoBjD,oCAAiC;AAqBjC,0CAAuC;AAkBvC,8CAA2C;AAkD3C,kDAA+C;AAuB/C,gEAA6D;AAqB7D,gEAA6D;AA6B7D,0DAAuD;AA4BvD,wDAAqD;AAyBrD,sDAAmD;AAqBnD,wCAAqC;AAmCrC,sEAAmE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../tempo/index.ts"],"names":[],"mappings":";;;AAoCA,gEAA6D;AA2B7D,0CAAuC;AAwCvC,4DAAyD;AA6BzD,wCAAqC;AAsBrC,wCAAqC;AAoBrC,wDAAqD;AAuBrD,8DAA2D;AAmB3D,oDAAiD;AAoBjD,oCAAiC;AAqBjC,0CAAuC;AAkBvC,8CAA2C;AAkD3C,kDAA+C;AAuB/C,gEAA6D;AAqB7D,gEAA6D;AA6B7D,0DAAuD;AA4BvD,wDAAqD;AAyBrD,sDAAmD;AAqBnD,wCAAqC;AAmCrC,sEAAmE"}
package/_cjs/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.version = void 0;
4
- exports.version = '0.14.24';
4
+ exports.version = '0.14.26';
5
5
  //# sourceMappingURL=version.js.map
@@ -1,13 +1,15 @@
1
1
  import * as AbiParameters from '../core/AbiParameters.js';
2
+ import * as Address from '../core/Address.js';
2
3
  import * as Hash from '../core/Hash.js';
3
4
  import * as Hex from '../core/Hex.js';
4
- import * as ChannelDescriptor from './ChannelDescriptor.js';
5
+ import * as TokenId from './TokenId.js';
5
6
  const channelIdParameters = AbiParameters.from('address, address, address, address, bytes32, address, bytes32, address, uint256');
6
7
  const domainSeparatorParameters = AbiParameters.from('bytes32, bytes32, bytes32, uint256, address');
7
8
  const voucherHashParameters = AbiParameters.from('bytes32, bytes32, uint96');
8
9
  const eip712DomainTypehash = Hash.keccak256(Hex.fromString('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'));
9
10
  const nameHash = Hash.keccak256(Hex.fromString('TIP20 Channel Reserve'));
10
11
  const versionHash = Hash.keccak256(Hex.fromString('1'));
12
+ const zeroAddress = '0x0000000000000000000000000000000000000000';
11
13
  /**
12
14
  * TIP-20 channel reserve precompile address.
13
15
  */
@@ -20,6 +22,42 @@ export const closeGracePeriod = 900n;
20
22
  * EIP-712 type hash for `Voucher(bytes32 channelId,uint96 cumulativeAmount)`.
21
23
  */
22
24
  export const voucherTypehash = Hash.keccak256(Hex.fromString('Voucher(bytes32 channelId,uint96 cumulativeAmount)'));
25
+ /**
26
+ * Instantiates a TIP-20 channel reserve descriptor.
27
+ *
28
+ * Accepts a TIP-20 token ID or address, and defaults `operator` and
29
+ * `authorizedSigner` to the zero address.
30
+ *
31
+ * @example
32
+ * ```ts twoslash
33
+ * import { Channel } from 'ox/tempo'
34
+ *
35
+ * const channel = Channel.from({
36
+ * expiringNonceHash: '0x0000000000000000000000000000000000000000000000000000000000000002',
37
+ * payee: '0x2222222222222222222222222222222222222222',
38
+ * payer: '0x1111111111111111111111111111111111111111',
39
+ * salt: '0x0000000000000000000000000000000000000000000000000000000000000001',
40
+ * token: 1n,
41
+ * })
42
+ * ```
43
+ *
44
+ * @param value - The channel descriptor input.
45
+ * @returns The normalized channel descriptor.
46
+ */
47
+ export function from(value) {
48
+ const { authorizedSigner = zeroAddress, expiringNonceHash, operator = zeroAddress, payee, payer, salt, token, } = value;
49
+ return {
50
+ authorizedSigner: resolveAddress(authorizedSigner),
51
+ expiringNonceHash,
52
+ operator: resolveAddress(operator),
53
+ payee: resolveAddress(payee),
54
+ payer: resolveAddress(payer),
55
+ salt,
56
+ token: typeof token === 'string'
57
+ ? resolveAddress(token)
58
+ : TokenId.toAddress(token),
59
+ };
60
+ }
23
61
  /**
24
62
  * Computes the canonical TIP-20 channel id for a descriptor.
25
63
  *
@@ -32,31 +70,33 @@ export const voucherTypehash = Hash.keccak256(Hex.fromString('Voucher(bytes32 ch
32
70
  *
33
71
  * const channelId = Channel.computeId({
34
72
  * authorizedSigner: '0x0000000000000000000000000000000000000000',
35
- * chainId: 4217,
36
73
  * expiringNonceHash: '0x0000000000000000000000000000000000000000000000000000000000000000',
37
74
  * operator: '0x0000000000000000000000000000000000000000',
38
75
  * payee: '0x2222222222222222222222222222222222222222',
39
76
  * payer: '0x1111111111111111111111111111111111111111',
40
77
  * salt: '0x0000000000000000000000000000000000000000000000000000000000000001',
41
78
  * token: 1n,
79
+ * }, {
80
+ * chainId: 4217,
42
81
  * })
43
82
  * ```
44
83
  *
45
- * @param value - Channel descriptor and chain id.
84
+ * @param channel - Channel descriptor.
85
+ * @param options - Options.
46
86
  * @returns The channel id.
47
87
  */
48
- export function computeId(value) {
49
- const descriptor = ChannelDescriptor.from(value);
88
+ export function computeId(channel, options) {
89
+ const channel_ = from(channel);
50
90
  return Hash.keccak256(AbiParameters.encode(channelIdParameters, [
51
- descriptor.payer,
52
- descriptor.payee,
53
- descriptor.operator,
54
- descriptor.token,
55
- descriptor.salt,
56
- descriptor.authorizedSigner,
57
- descriptor.expiringNonceHash,
91
+ channel_.payer,
92
+ channel_.payee,
93
+ channel_.operator,
94
+ channel_.token,
95
+ channel_.salt,
96
+ channel_.authorizedSigner,
97
+ channel_.expiringNonceHash,
58
98
  address,
59
- BigInt(value.chainId),
99
+ BigInt(options.chainId),
60
100
  ]));
61
101
  }
62
102
  /**
@@ -112,4 +152,7 @@ export function getVoucherSignPayload(value) {
112
152
  ]));
113
153
  return Hash.keccak256(Hex.concat('0x1901', domainSeparator({ chainId: value.chainId }), voucherHash));
114
154
  }
155
+ function resolveAddress(address) {
156
+ return Address.from(address);
157
+ }
115
158
  //# sourceMappingURL=Channel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Channel.js","sourceRoot":"","sources":["../../tempo/Channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AAEzD,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AACrC,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAE3D,MAAM,mBAAmB,GAAG,aAAa,CAAC,IAAI,CAC5C,iFAAiF,CAClF,CAAA;AACD,MAAM,yBAAyB,GAAG,aAAa,CAAC,IAAI,CAClD,6CAA6C,CAC9C,CAAA;AACD,MAAM,qBAAqB,GAAG,aAAa,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;AAE5E,MAAM,oBAAoB,GAAG,IAAI,CAAC,SAAS,CACzC,GAAG,CAAC,UAAU,CACZ,oFAAoF,CACrF,CACF,CAAA;AACD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAA;AACxE,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA;AAEvD;;GAEG;AACH,MAAM,CAAC,MAAM,OAAO,GAClB,4CAA+E,CAAA;AAEjF;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,CAAA;AAEpC;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAC3C,GAAG,CAAC,UAAU,CAAC,oDAAoD,CAAC,CACrE,CAAA;AAOD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,SAAS,CAAC,KAAsB;IAC9C,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAChD,OAAO,IAAI,CAAC,SAAS,CACnB,aAAa,CAAC,MAAM,CAAC,mBAAmB,EAAE;QACxC,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,QAAQ;QACnB,UAAU,CAAC,KAAK;QAChB,UAAU,CAAC,IAAI;QACf,UAAU,CAAC,gBAAgB;QAC3B,UAAU,CAAC,iBAAiB;QAC5B,OAAO;QACP,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;KACtB,CAAC,CACH,CAAA;AACH,CAAC;AAcD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,eAAe,CAAC,KAA4B;IAC1D,OAAO,IAAI,CAAC,SAAS,CACnB,aAAa,CAAC,MAAM,CAAC,yBAAyB,EAAE;QAC9C,oBAAoB;QACpB,QAAQ;QACR,WAAW;QACX,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC;QACrB,OAAO;KACR,CAAC,CACH,CAAA;AACH,CAAC;AAWD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,qBAAqB,CACnC,KAAkC;IAElC,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAChC,aAAa,CAAC,MAAM,CAAC,qBAAqB,EAAE;QAC1C,eAAe;QACf,KAAK,CAAC,SAAS;QACf,KAAK,CAAC,gBAAgB;KACvB,CAAC,CACH,CAAA;IACD,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,CAAC,MAAM,CACR,QAAQ,EACR,eAAe,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,EAC3C,WAAW,CACZ,CACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"Channel.js","sourceRoot":"","sources":["../../tempo/Channel.ts"],"names":[],"mappings":"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"}