ox 0.14.16 → 0.14.18

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 (60) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/_cjs/tempo/TransactionRequest.js +10 -1
  3. package/_cjs/tempo/TransactionRequest.js.map +1 -1
  4. package/_cjs/tempo/VirtualAddress.js +70 -0
  5. package/_cjs/tempo/VirtualAddress.js.map +1 -0
  6. package/_cjs/tempo/VirtualMaster.js +99 -0
  7. package/_cjs/tempo/VirtualMaster.js.map +1 -0
  8. package/_cjs/tempo/ZoneId.js +13 -0
  9. package/_cjs/tempo/ZoneId.js.map +1 -0
  10. package/_cjs/tempo/ZoneRpcAuthentication.js +101 -0
  11. package/_cjs/tempo/ZoneRpcAuthentication.js.map +1 -0
  12. package/_cjs/tempo/index.js +5 -1
  13. package/_cjs/tempo/index.js.map +1 -1
  14. package/_cjs/version.js +1 -1
  15. package/_esm/tempo/TransactionRequest.js +10 -1
  16. package/_esm/tempo/TransactionRequest.js.map +1 -1
  17. package/_esm/tempo/VirtualAddress.js +154 -0
  18. package/_esm/tempo/VirtualAddress.js.map +1 -0
  19. package/_esm/tempo/VirtualMaster.js +200 -0
  20. package/_esm/tempo/VirtualMaster.js.map +1 -0
  21. package/_esm/tempo/ZoneId.js +47 -0
  22. package/_esm/tempo/ZoneId.js.map +1 -0
  23. package/_esm/tempo/ZoneRpcAuthentication.js +256 -0
  24. package/_esm/tempo/ZoneRpcAuthentication.js.map +1 -0
  25. package/_esm/tempo/index.js +107 -0
  26. package/_esm/tempo/index.js.map +1 -1
  27. package/_esm/version.js +1 -1
  28. package/_types/core/RpcSchema.d.ts +0 -2
  29. package/_types/core/RpcSchema.d.ts.map +1 -1
  30. package/_types/tempo/TransactionRequest.d.ts +6 -4
  31. package/_types/tempo/TransactionRequest.d.ts.map +1 -1
  32. package/_types/tempo/VirtualAddress.d.ts +129 -0
  33. package/_types/tempo/VirtualAddress.d.ts.map +1 -0
  34. package/_types/tempo/VirtualMaster.d.ts +155 -0
  35. package/_types/tempo/VirtualMaster.d.ts.map +1 -0
  36. package/_types/tempo/ZoneId.d.ts +50 -0
  37. package/_types/tempo/ZoneId.d.ts.map +1 -0
  38. package/_types/tempo/ZoneRpcAuthentication.d.ts +268 -0
  39. package/_types/tempo/ZoneRpcAuthentication.d.ts.map +1 -0
  40. package/_types/tempo/index.d.ts +107 -0
  41. package/_types/tempo/index.d.ts.map +1 -1
  42. package/_types/version.d.ts +1 -1
  43. package/core/RpcSchema.ts +0 -2
  44. package/package.json +21 -1
  45. package/tempo/TransactionRequest.test.ts +26 -2
  46. package/tempo/TransactionRequest.ts +17 -7
  47. package/tempo/VirtualAddress/package.json +6 -0
  48. package/tempo/VirtualAddress.test.ts +88 -0
  49. package/tempo/VirtualAddress.ts +201 -0
  50. package/tempo/VirtualMaster/package.json +6 -0
  51. package/tempo/VirtualMaster.test.ts +127 -0
  52. package/tempo/VirtualMaster.ts +303 -0
  53. package/tempo/ZoneId/package.json +6 -0
  54. package/tempo/ZoneId.test.ts +42 -0
  55. package/tempo/ZoneId.ts +58 -0
  56. package/tempo/ZoneRpcAuthentication/package.json +6 -0
  57. package/tempo/ZoneRpcAuthentication.test.ts +226 -0
  58. package/tempo/ZoneRpcAuthentication.ts +423 -0
  59. package/tempo/index.ts +107 -8
  60. package/version.ts +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # ox
2
2
 
3
+ ## 0.14.18
4
+
5
+ ### Patch Changes
6
+
7
+ - [#221](https://github.com/wevm/ox/pull/221) [`3b84126`](https://github.com/wevm/ox/commit/3b841266704b2e2bc24359462bafd8acd7a16ec9) Thanks [@tmm](https://github.com/tmm)! - Added [TIP-1022](https://docs.tempo.xyz/protocol/tips/tip-1022) virtual address utilities to `ox/tempo`, including `VirtualAddress` helpers for formatting and parsing virtual addresses and `VirtualMaster` helpers for deriving registration hashes, validating salts, and mining bounded salt ranges.
8
+
9
+ ## 0.14.17
10
+
11
+ ### Patch Changes
12
+
13
+ - [#220](https://github.com/wevm/ox/pull/220) [`da7a62c`](https://github.com/wevm/ox/commit/da7a62cfbecb99b3cc24f275703e33b1320abb1b) Thanks [@Zygimantass](https://github.com/Zygimantass)! - Added Tempo zones support
14
+
15
+ - [#219](https://github.com/wevm/ox/pull/219) [`a934992`](https://github.com/wevm/ox/commit/a934992257add3724f16538c7a14d72e647a2b66) Thanks [@jxom](https://github.com/jxom)! - Added `feePayer` to `TransactionRequest` in `ox/tempo`.
16
+
17
+ - [#217](https://github.com/wevm/ox/pull/217) [`5e2ae4d`](https://github.com/wevm/ox/commit/5e2ae4d9a007bb4071896c5e4c0f258e9a637a54) Thanks [@jxom](https://github.com/jxom)! - Fixed `TransactionRequest.fromRpc` in `ox/tempo`. `TransactionRequest.toRpc` now folds top-level `to`/`data`/`value` into `calls` when `calls` is not provided.
18
+
3
19
  ## 0.14.16
4
20
 
5
21
  ### Patch Changes
@@ -28,7 +28,7 @@ function fromRpc(request) {
28
28
  return mapped;
29
29
  });
30
30
  if (typeof request.feeToken !== 'undefined')
31
- request_.feeToken = TokenId.fromAddress(request.feeToken);
31
+ request_.feeToken = request.feeToken;
32
32
  if (request.keyAuthorization)
33
33
  request_.keyAuthorization = KeyAuthorization.fromRpc(request.keyAuthorization);
34
34
  if (typeof request.validBefore !== 'undefined')
@@ -52,6 +52,14 @@ function toRpc(request) {
52
52
  value: call.value ? Hex.fromNumber(call.value) : '0x',
53
53
  data: call.data ?? '0x',
54
54
  }));
55
+ else if (request.to || request.data || request.value)
56
+ request_rpc.calls = [
57
+ {
58
+ to: request.to ? TempoAddress.resolve(request.to) : undefined,
59
+ value: request.value ? Hex.fromNumber(request.value) : '0x',
60
+ data: request.data ?? '0x',
61
+ },
62
+ ];
55
63
  if (typeof request.feeToken !== 'undefined')
56
64
  request_rpc.feeToken = TokenId.toAddress(request.feeToken);
57
65
  if (request.keyAuthorization)
@@ -70,6 +78,7 @@ function toRpc(request) {
70
78
  if (nonceKey)
71
79
  request_rpc.nonceKey = nonceKey;
72
80
  if (typeof request.calls !== 'undefined' ||
81
+ typeof request.feePayer !== 'undefined' ||
73
82
  typeof request.feeToken !== 'undefined' ||
74
83
  typeof request.keyAuthorization !== 'undefined' ||
75
84
  typeof request.nonceKey !== 'undefined' ||
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionRequest.js","sourceRoot":"","sources":["../../tempo/TransactionRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransactionRequest.js","sourceRoot":"","sources":["../../tempo/TransactionRequest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InvalidMagicError = exports.magic = void 0;
4
+ exports.from = from;
5
+ exports.isVirtual = isVirtual;
6
+ exports.parse = parse;
7
+ exports.validate = validate;
8
+ const Address = require("../core/Address.js");
9
+ const Bytes = require("../core/Bytes.js");
10
+ const Errors = require("../core/Errors.js");
11
+ const Hex = require("../core/Hex.js");
12
+ const TempoAddress = require("./TempoAddress.js");
13
+ exports.magic = '0xfdfdfdfdfdfdfdfdfdfd';
14
+ function from(value) {
15
+ return Address.from(Hex.concat(toFixedHex(value.masterId, 4), exports.magic, toFixedHex(value.userTag, 6)));
16
+ }
17
+ function isVirtual(address) {
18
+ try {
19
+ const resolved = resolveAddress(address);
20
+ return Hex.slice(resolved, 4, 14).toLowerCase() === exports.magic;
21
+ }
22
+ catch {
23
+ return false;
24
+ }
25
+ }
26
+ function parse(address) {
27
+ const resolved = resolveAddress(address);
28
+ if (Hex.slice(resolved, 4, 14).toLowerCase() !== exports.magic)
29
+ throw new InvalidMagicError({ address: resolved });
30
+ return {
31
+ masterId: Hex.slice(resolved, 0, 4),
32
+ userTag: Hex.slice(resolved, 14, 20),
33
+ };
34
+ }
35
+ function validate(address) {
36
+ try {
37
+ parse(address);
38
+ return true;
39
+ }
40
+ catch {
41
+ return false;
42
+ }
43
+ }
44
+ class InvalidMagicError extends Errors.BaseError {
45
+ constructor({ address }) {
46
+ super(`Address "${address}" does not contain the TIP-1022 virtual address marker.`);
47
+ Object.defineProperty(this, "name", {
48
+ enumerable: true,
49
+ configurable: true,
50
+ writable: true,
51
+ value: 'VirtualAddress.InvalidMagicError'
52
+ });
53
+ }
54
+ }
55
+ exports.InvalidMagicError = InvalidMagicError;
56
+ function resolveAddress(address) {
57
+ const resolved = TempoAddress.resolve(address);
58
+ Address.assert(resolved, { strict: false });
59
+ return resolved;
60
+ }
61
+ function toFixedHex(value, size) {
62
+ if (typeof value === 'number' || typeof value === 'bigint')
63
+ return Hex.fromNumber(value, { size });
64
+ if (typeof value === 'string') {
65
+ Hex.assert(value, { strict: true });
66
+ return Hex.padLeft(value, size);
67
+ }
68
+ return Hex.fromBytes(Bytes.padLeft(value, size));
69
+ }
70
+ //# sourceMappingURL=VirtualAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualAddress.js","sourceRoot":"","sources":["../../tempo/VirtualAddress.ts"],"names":[],"mappings":";;;AAoCA,oBAQC;AA2CD,8BAOC;AAsBD,sBAUC;AAwCD,4BAOC;AA7KD,8CAA6C;AAC7C,0CAAyC;AACzC,4CAA2C;AAC3C,sCAAqC;AACrC,kDAAiD;AAGpC,QAAA,KAAK,GAAG,wBAAiC,CAAA;AA6BtD,SAAgB,IAAI,CAAC,KAAiB;IACpC,OAAO,OAAO,CAAC,IAAI,CACjB,GAAG,CAAC,MAAM,CACR,UAAU,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAC7B,aAAK,EACL,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAC7B,CACF,CAAA;AACH,CAAC;AA2CD,SAAgB,SAAS,CAAC,OAAe;IACvC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;QACxC,OAAO,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,aAAK,CAAA;IAC3D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAsBD,SAAgB,KAAK,CAAC,OAAe;IACnC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAExC,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,aAAK;QACpD,MAAM,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAA;IAEpD,OAAO;QACL,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;QACnC,OAAO,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC;KACrC,CAAA;AACH,CAAC;AAwCD,SAAgB,QAAQ,CAAC,OAAe;IACtC,IAAI,CAAC;QACH,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAGD,MAAa,iBAAkB,SAAQ,MAAM,CAAC,SAAS;IAGrD,YAAY,EAAE,OAAO,EAAuB;QAC1C,KAAK,CACH,YAAY,OAAO,yDAAyD,CAC7E,CAAA;QALe;;;;mBAAO,kCAAkC;WAAA;IAM3D,CAAC;CACF;AARD,8CAQC;AAED,SAAS,cAAc,CAAC,OAAe;IACrC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,OAA+B,CAAC,CAAA;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;IAC3C,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,KAAW,EAAE,IAAY;IAC3C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ;QACxD,OAAO,GAAG,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;QACnC,OAAO,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;AAClD,CAAC"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRegistrationHash = getRegistrationHash;
4
+ exports.getMasterId = getMasterId;
5
+ exports.validateSalt = validateSalt;
6
+ exports.mineSalt = mineSalt;
7
+ const Address = require("../core/Address.js");
8
+ const Bytes = require("../core/Bytes.js");
9
+ const Errors = require("../core/Errors.js");
10
+ const Hash = require("../core/Hash.js");
11
+ const Hex = require("../core/Hex.js");
12
+ const TempoAddress = require("./TempoAddress.js");
13
+ const VirtualAddress = require("./VirtualAddress.js");
14
+ const tip20Prefix = '0x20c000000000000000000000';
15
+ const zeroAddress = '0x0000000000000000000000000000000000000000';
16
+ function getRegistrationHash(value) {
17
+ return Hash.keccak256(Hex.concat(resolveAddress(value.address), toFixedHex(value.salt, 32)));
18
+ }
19
+ function getMasterId(value) {
20
+ return Hex.slice(getRegistrationHash(value), 4, 8);
21
+ }
22
+ function validateSalt(value) {
23
+ try {
24
+ return hasProofOfWork(Hash.keccak256(Hex.concat(resolveAddress(value.address), toFixedHex(value.salt, 32)), { as: 'Bytes' }));
25
+ }
26
+ catch {
27
+ return false;
28
+ }
29
+ }
30
+ function mineSalt(value) {
31
+ assertCount(value.count);
32
+ const address = resolveAddress(value.address);
33
+ const addressBytes = Bytes.fromHex(address);
34
+ const saltBytes = toFixedBytes(value.start ?? 0n, 32);
35
+ const input = new Uint8Array(addressBytes.length + saltBytes.length);
36
+ input.set(addressBytes);
37
+ for (let i = 0; i < value.count; i++) {
38
+ input.set(saltBytes, addressBytes.length);
39
+ const registrationHash = Hash.keccak256(input, { as: 'Bytes' });
40
+ if (hasProofOfWork(registrationHash)) {
41
+ return {
42
+ masterId: Hex.fromBytes(registrationHash.subarray(4, 8)),
43
+ registrationHash: Hex.fromBytes(registrationHash),
44
+ salt: Hex.fromBytes(saltBytes),
45
+ };
46
+ }
47
+ if (i < value.count - 1 && !increment(saltBytes))
48
+ break;
49
+ }
50
+ return undefined;
51
+ }
52
+ function hasProofOfWork(hash) {
53
+ return hash[0] === 0 && hash[1] === 0 && hash[2] === 0 && hash[3] === 0;
54
+ }
55
+ function assertCount(count) {
56
+ if (Number.isSafeInteger(count) && count > 0)
57
+ return;
58
+ throw new Errors.BaseError(`Count "${count}" is invalid. Expected a positive safe integer.`);
59
+ }
60
+ function increment(bytes) {
61
+ for (let i = bytes.length - 1; i >= 0; i--) {
62
+ const value = bytes[i];
63
+ if (value === 0xff) {
64
+ bytes[i] = 0;
65
+ continue;
66
+ }
67
+ bytes[i] = value + 1;
68
+ return true;
69
+ }
70
+ return false;
71
+ }
72
+ function resolveAddress(address) {
73
+ const resolved = TempoAddress.resolve(address);
74
+ Address.assert(resolved, { strict: false });
75
+ assertValidMasterAddress(resolved);
76
+ return resolved;
77
+ }
78
+ function assertValidMasterAddress(address) {
79
+ const normalized = address.toLowerCase();
80
+ if (normalized === zeroAddress)
81
+ throw new Errors.BaseError('Virtual master address cannot be the zero address.');
82
+ if (VirtualAddress.isVirtual(address))
83
+ throw new Errors.BaseError('Virtual master address cannot itself be a virtual address.');
84
+ if (normalized.startsWith(tip20Prefix))
85
+ throw new Errors.BaseError('Virtual master address cannot be a TIP-20 token address.');
86
+ }
87
+ function toFixedBytes(value, size) {
88
+ return Bytes.fromHex(toFixedHex(value, size));
89
+ }
90
+ function toFixedHex(value, size) {
91
+ if (typeof value === 'number' || typeof value === 'bigint')
92
+ return Hex.fromNumber(value, { size });
93
+ if (typeof value === 'string') {
94
+ Hex.assert(value, { strict: true });
95
+ return Hex.padLeft(value, size);
96
+ }
97
+ return Hex.fromBytes(Bytes.padLeft(value, size));
98
+ }
99
+ //# sourceMappingURL=VirtualMaster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualMaster.js","sourceRoot":"","sources":["../../tempo/VirtualMaster.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.chainIdBase = void 0;
4
+ exports.fromChainId = fromChainId;
5
+ exports.toChainId = toChainId;
6
+ exports.chainIdBase = 4_217_000_000;
7
+ function fromChainId(chainId) {
8
+ return chainId - exports.chainIdBase;
9
+ }
10
+ function toChainId(zoneId) {
11
+ return exports.chainIdBase + zoneId;
12
+ }
13
+ //# sourceMappingURL=ZoneId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoneId.js","sourceRoot":"","sources":["../../tempo/ZoneId.ts"],"names":[],"mappings":";;;AA0BA,kCAEC;AAuBD,8BAEC;AA9CY,QAAA,WAAW,GAAG,aAAsB,CAAA;AAmBjD,SAAgB,WAAW,CAAC,OAAe;IACzC,OAAO,OAAO,GAAG,mBAAW,CAAA;AAC9B,CAAC;AAuBD,SAAgB,SAAS,CAAC,MAAc;IACtC,OAAO,mBAAW,GAAG,MAAM,CAAA;AAC7B,CAAC"}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MissingSignatureError = exports.InvalidSerializedError = exports.version = exports.fieldsSize = exports.magicBytes = exports.headerName = void 0;
4
+ exports.from = from;
5
+ exports.deserialize = deserialize;
6
+ exports.getFields = getFields;
7
+ exports.getSignPayload = getSignPayload;
8
+ exports.hash = hash;
9
+ exports.serialize = serialize;
10
+ const Errors = require("../core/Errors.js");
11
+ const Hash = require("../core/Hash.js");
12
+ const Hex = require("../core/Hex.js");
13
+ const SignatureEnvelope = require("./SignatureEnvelope.js");
14
+ const TempoAddress = require("./TempoAddress.js");
15
+ exports.headerName = 'X-Authorization-Token';
16
+ exports.magicBytes = '0x54656d706f5a6f6e655250430000000000000000000000000000000000000000';
17
+ exports.fieldsSize = 29;
18
+ exports.version = 0;
19
+ function from(authentication, options = {}) {
20
+ const auth = authentication;
21
+ const resolved = {
22
+ ...auth,
23
+ version: exports.version,
24
+ };
25
+ if (options.signature)
26
+ return {
27
+ ...resolved,
28
+ signature: SignatureEnvelope.from(options.signature),
29
+ };
30
+ return resolved;
31
+ }
32
+ function deserialize(serialized) {
33
+ const size = Hex.size(serialized);
34
+ if (size <= exports.fieldsSize)
35
+ throw new InvalidSerializedError({
36
+ reason: `Serialized authentication must be longer than ${exports.fieldsSize} bytes.`,
37
+ serialized,
38
+ });
39
+ const fieldsOffset = size - exports.fieldsSize;
40
+ const signature = Hex.slice(serialized, 0, fieldsOffset);
41
+ const fields = Hex.slice(serialized, fieldsOffset);
42
+ const parsedVersion = Hex.toNumber(Hex.slice(fields, 0, 1), { size: 1 });
43
+ if (parsedVersion !== exports.version)
44
+ throw new InvalidSerializedError({
45
+ reason: `Unsupported authentication version "${parsedVersion}". Expected "${exports.version}".`,
46
+ serialized,
47
+ });
48
+ return {
49
+ chainId: Hex.toNumber(Hex.slice(fields, 5, 13), { size: 8 }),
50
+ expiresAt: Hex.toNumber(Hex.slice(fields, 21, 29), { size: 8 }),
51
+ issuedAt: Hex.toNumber(Hex.slice(fields, 13, 21), { size: 8 }),
52
+ signature: SignatureEnvelope.deserialize(signature),
53
+ version: exports.version,
54
+ zoneId: Hex.toNumber(Hex.slice(fields, 1, 5), { size: 4 }),
55
+ };
56
+ }
57
+ function getFields(authentication) {
58
+ return Hex.concat(Hex.fromNumber(exports.version, { size: 1 }), Hex.fromNumber(authentication.zoneId, { size: 4 }), Hex.fromNumber(authentication.chainId, { size: 8 }), Hex.fromNumber(authentication.issuedAt, { size: 8 }), Hex.fromNumber(authentication.expiresAt, { size: 8 }));
59
+ }
60
+ function getSignPayload(authentication, options = {}) {
61
+ const authHash = hash(authentication);
62
+ if (options.userAddress)
63
+ return Hash.keccak256(Hex.concat('0x04', authHash, TempoAddress.resolve(options.userAddress)));
64
+ return authHash;
65
+ }
66
+ function hash(authentication) {
67
+ return Hash.keccak256(Hex.concat(exports.magicBytes, getFields(authentication)));
68
+ }
69
+ function serialize(authentication, options = {}) {
70
+ const signature = options.signature || authentication.signature;
71
+ if (!signature)
72
+ throw new MissingSignatureError();
73
+ return Hex.concat(SignatureEnvelope.serialize(SignatureEnvelope.from(signature)), getFields(authentication));
74
+ }
75
+ class InvalidSerializedError extends Errors.BaseError {
76
+ constructor({ reason, serialized }) {
77
+ super(`Unable to deserialize Zone RPC authentication: ${reason}`, {
78
+ metaMessages: [`Serialized: ${serialized}`],
79
+ });
80
+ Object.defineProperty(this, "name", {
81
+ enumerable: true,
82
+ configurable: true,
83
+ writable: true,
84
+ value: 'ZoneRpcAuthentication.InvalidSerializedError'
85
+ });
86
+ }
87
+ }
88
+ exports.InvalidSerializedError = InvalidSerializedError;
89
+ class MissingSignatureError extends Errors.BaseError {
90
+ constructor() {
91
+ super('Zone RPC authentication is missing a signature.');
92
+ Object.defineProperty(this, "name", {
93
+ enumerable: true,
94
+ configurable: true,
95
+ writable: true,
96
+ value: 'ZoneRpcAuthentication.MissingSignatureError'
97
+ });
98
+ }
99
+ }
100
+ exports.MissingSignatureError = MissingSignatureError;
101
+ //# sourceMappingURL=ZoneRpcAuthentication.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ZoneRpcAuthentication.js","sourceRoot":"","sources":["../../tempo/ZoneRpcAuthentication.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- 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.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.AuthorizationTempo = void 0;
4
4
  exports.AuthorizationTempo = require("./AuthorizationTempo.js");
5
5
  exports.KeyAuthorization = require("./KeyAuthorization.js");
6
6
  exports.Period = require("./Period.js");
@@ -15,4 +15,8 @@ exports.Transaction = require("./Transaction.js");
15
15
  exports.TransactionReceipt = require("./TransactionReceipt.js");
16
16
  exports.TransactionRequest = require("./TransactionRequest.js");
17
17
  exports.TxEnvelopeTempo = require("./TxEnvelopeTempo.js");
18
+ exports.VirtualAddress = require("./VirtualAddress.js");
19
+ exports.VirtualMaster = require("./VirtualMaster.js");
20
+ exports.ZoneId = require("./ZoneId.js");
21
+ exports.ZoneRpcAuthentication = require("./ZoneRpcAuthentication.js");
18
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../tempo/index.ts"],"names":[],"mappings":";;;AAoCA,gEAA6D;AAyC7D,4DAAyD;AA8BzD,wCAAqC;AAsBrC,wCAAqC;AAoBrC,wDAAqD;AAuBrD,8DAA2D;AAoB3D,oDAAiD;AAqBjD,oCAAiC;AAsBjC,0CAAuC;AAmBvC,8CAA2C;AAmD3C,kDAA+C;AAuB/C,gEAA6D;AAqB7D,gEAA6D;AA6B7D,0DAAuD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../tempo/index.ts"],"names":[],"mappings":";;;AAoCA,gEAA6D;AAwC7D,4DAAyD;AA6BzD,wCAAqC;AAsBrC,wCAAqC;AAmBrC,wDAAqD;AAuBrD,8DAA2D;AAmB3D,oDAAiD;AAoBjD,oCAAiC;AAqBjC,0CAAuC;AAkBvC,8CAA2C;AAkD3C,kDAA+C;AAuB/C,gEAA6D;AAqB7D,gEAA6D;AA6B7D,0DAAuD;AA4BvD,wDAAqD;AAwBrD,sDAAmD;AAoBnD,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.16';
4
+ exports.version = '0.14.18';
5
5
  //# sourceMappingURL=version.js.map
@@ -44,7 +44,7 @@ export function fromRpc(request) {
44
44
  return mapped;
45
45
  });
46
46
  if (typeof request.feeToken !== 'undefined')
47
- request_.feeToken = TokenId.fromAddress(request.feeToken);
47
+ request_.feeToken = request.feeToken;
48
48
  if (request.keyAuthorization)
49
49
  request_.keyAuthorization = KeyAuthorization.fromRpc(request.keyAuthorization);
50
50
  if (typeof request.validBefore !== 'undefined')
@@ -117,6 +117,14 @@ export function toRpc(request) {
117
117
  value: call.value ? Hex.fromNumber(call.value) : '0x',
118
118
  data: call.data ?? '0x',
119
119
  }));
120
+ else if (request.to || request.data || request.value)
121
+ request_rpc.calls = [
122
+ {
123
+ to: request.to ? TempoAddress.resolve(request.to) : undefined,
124
+ value: request.value ? Hex.fromNumber(request.value) : '0x',
125
+ data: request.data ?? '0x',
126
+ },
127
+ ];
120
128
  if (typeof request.feeToken !== 'undefined')
121
129
  request_rpc.feeToken = TokenId.toAddress(request.feeToken);
122
130
  if (request.keyAuthorization)
@@ -135,6 +143,7 @@ export function toRpc(request) {
135
143
  if (nonceKey)
136
144
  request_rpc.nonceKey = nonceKey;
137
145
  if (typeof request.calls !== 'undefined' ||
146
+ typeof request.feePayer !== 'undefined' ||
138
147
  typeof request.feeToken !== 'undefined' ||
139
148
  typeof request.keyAuthorization !== 'undefined' ||
140
149
  typeof request.nonceKey !== 'undefined' ||
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionRequest.js","sourceRoot":"","sources":["../../tempo/TransactionRequest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransactionRequest.js","sourceRoot":"","sources":["../../tempo/TransactionRequest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,154 @@
1
+ import * as Address from '../core/Address.js';
2
+ import * as Bytes from '../core/Bytes.js';
3
+ import * as Errors from '../core/Errors.js';
4
+ import * as Hex from '../core/Hex.js';
5
+ import * as TempoAddress from './TempoAddress.js';
6
+ /** Fixed 10-byte marker used by TIP-1022 virtual addresses. */
7
+ export const magic = '0xfdfdfdfdfdfdfdfdfdfd';
8
+ /**
9
+ * Builds a TIP-1022 virtual address from a `masterId` and `userTag`.
10
+ *
11
+ * [TIP-1022](https://docs.tempo.xyz/protocol/tips/tip-1022)
12
+ *
13
+ * TIP-1022 encodes virtual addresses as:
14
+ * `[4-byte masterId][10-byte VIRTUAL_MAGIC][6-byte userTag]`
15
+ *
16
+ * @example
17
+ * ```ts twoslash
18
+ * import { VirtualAddress } from 'ox/tempo'
19
+ *
20
+ * const address = VirtualAddress.from({
21
+ * masterId: '0x58e21090',
22
+ * userTag: '0x010203040506',
23
+ * })
24
+ *
25
+ * address
26
+ * // @log: '0x58e21090fdfdfdfdfdfdfdfdfdfd010203040506'
27
+ * ```
28
+ *
29
+ * @param value - The virtual address parts.
30
+ * @returns The virtual address.
31
+ */
32
+ export function from(value) {
33
+ return Address.from(Hex.concat(toFixedHex(value.masterId, 4), magic, toFixedHex(value.userTag, 6)));
34
+ }
35
+ /**
36
+ * Checks whether an address matches the TIP-1022 virtual address format.
37
+ *
38
+ * [TIP-1022](https://docs.tempo.xyz/protocol/tips/tip-1022)
39
+ *
40
+ * This only checks the reserved byte layout, not whether the `masterId`
41
+ * is registered onchain.
42
+ *
43
+ * @example
44
+ * ```ts twoslash
45
+ * import { VirtualAddress } from 'ox/tempo'
46
+ *
47
+ * const isVirtual = VirtualAddress.isVirtual(
48
+ * '0x58e21090fdfdfdfdfdfdfdfdfdfd010203040506',
49
+ * )
50
+ *
51
+ * isVirtual
52
+ * // @log: true
53
+ * ```
54
+ *
55
+ * @param address - Address to check.
56
+ * @returns `true` if the address matches the virtual-address layout.
57
+ */
58
+ export function isVirtual(address) {
59
+ try {
60
+ const resolved = resolveAddress(address);
61
+ return Hex.slice(resolved, 4, 14).toLowerCase() === magic;
62
+ }
63
+ catch {
64
+ return false;
65
+ }
66
+ }
67
+ /**
68
+ * Parses a TIP-1022 virtual address into its `masterId` and `userTag` parts.
69
+ *
70
+ * [TIP-1022](https://docs.tempo.xyz/protocol/tips/tip-1022)
71
+ *
72
+ * @example
73
+ * ```ts twoslash
74
+ * import { VirtualAddress } from 'ox/tempo'
75
+ *
76
+ * const parsed = VirtualAddress.parse(
77
+ * '0x58e21090fdfdfdfdfdfdfdfdfdfd010203040506',
78
+ * )
79
+ *
80
+ * parsed
81
+ * // @log: { masterId: '0x58e21090', userTag: '0x010203040506' }
82
+ * ```
83
+ *
84
+ * @param address - The virtual address to parse.
85
+ * @returns The decoded virtual address components.
86
+ */
87
+ export function parse(address) {
88
+ const resolved = resolveAddress(address);
89
+ if (Hex.slice(resolved, 4, 14).toLowerCase() !== magic)
90
+ throw new InvalidMagicError({ address: resolved });
91
+ return {
92
+ masterId: Hex.slice(resolved, 0, 4),
93
+ userTag: Hex.slice(resolved, 14, 20),
94
+ };
95
+ }
96
+ /**
97
+ * Validates that an address matches the TIP-1022 virtual address format.
98
+ *
99
+ * [TIP-1022](https://docs.tempo.xyz/protocol/tips/tip-1022)
100
+ *
101
+ * This only validates the reserved byte layout, not whether the `masterId`
102
+ * resolves to a registered master onchain.
103
+ *
104
+ * @example
105
+ * ```ts twoslash
106
+ * import { VirtualAddress } from 'ox/tempo'
107
+ *
108
+ * const valid = VirtualAddress.validate(
109
+ * '0x58e21090fdfdfdfdfdfdfdfdfdfd010203040506',
110
+ * )
111
+ *
112
+ * valid
113
+ * // @log: true
114
+ * ```
115
+ *
116
+ * @param address - Address to validate.
117
+ * @returns `true` if the address has a valid virtual-address layout.
118
+ */
119
+ export function validate(address) {
120
+ try {
121
+ parse(address);
122
+ return true;
123
+ }
124
+ catch {
125
+ return false;
126
+ }
127
+ }
128
+ /** Thrown when an address does not contain the TIP-1022 virtual marker. */
129
+ export class InvalidMagicError extends Errors.BaseError {
130
+ constructor({ address }) {
131
+ super(`Address "${address}" does not contain the TIP-1022 virtual address marker.`);
132
+ Object.defineProperty(this, "name", {
133
+ enumerable: true,
134
+ configurable: true,
135
+ writable: true,
136
+ value: 'VirtualAddress.InvalidMagicError'
137
+ });
138
+ }
139
+ }
140
+ function resolveAddress(address) {
141
+ const resolved = TempoAddress.resolve(address);
142
+ Address.assert(resolved, { strict: false });
143
+ return resolved;
144
+ }
145
+ function toFixedHex(value, size) {
146
+ if (typeof value === 'number' || typeof value === 'bigint')
147
+ return Hex.fromNumber(value, { size });
148
+ if (typeof value === 'string') {
149
+ Hex.assert(value, { strict: true });
150
+ return Hex.padLeft(value, size);
151
+ }
152
+ return Hex.fromBytes(Bytes.padLeft(value, size));
153
+ }
154
+ //# sourceMappingURL=VirtualAddress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VirtualAddress.js","sourceRoot":"","sources":["../../tempo/VirtualAddress.ts"],"names":[],"mappings":"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"}