ox 0.13.2 → 0.14.1

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 (85) hide show
  1. package/Bech32m/package.json +6 -0
  2. package/CHANGELOG.md +25 -0
  3. package/_cjs/core/Bech32m.js +205 -0
  4. package/_cjs/core/Bech32m.js.map +1 -0
  5. package/_cjs/index.js +3 -2
  6. package/_cjs/index.js.map +1 -1
  7. package/_cjs/tempo/AuthorizationTempo.js +7 -2
  8. package/_cjs/tempo/AuthorizationTempo.js.map +1 -1
  9. package/_cjs/tempo/KeyAuthorization.js +22 -8
  10. package/_cjs/tempo/KeyAuthorization.js.map +1 -1
  11. package/_cjs/tempo/SignatureEnvelope.js +39 -4
  12. package/_cjs/tempo/SignatureEnvelope.js.map +1 -1
  13. package/_cjs/tempo/TempoAddress.js +49 -41
  14. package/_cjs/tempo/TempoAddress.js.map +1 -1
  15. package/_cjs/tempo/TokenId.js +8 -5
  16. package/_cjs/tempo/TokenId.js.map +1 -1
  17. package/_cjs/tempo/TransactionRequest.js +2 -1
  18. package/_cjs/tempo/TransactionRequest.js.map +1 -1
  19. package/_cjs/tempo/TxEnvelopeTempo.js +17 -4
  20. package/_cjs/tempo/TxEnvelopeTempo.js.map +1 -1
  21. package/_cjs/tempo/index.js.map +1 -1
  22. package/_cjs/version.js +1 -1
  23. package/_esm/core/Bech32m.js +238 -0
  24. package/_esm/core/Bech32m.js.map +1 -0
  25. package/_esm/index.js +24 -0
  26. package/_esm/index.js.map +1 -1
  27. package/_esm/tempo/AuthorizationTempo.js +24 -19
  28. package/_esm/tempo/AuthorizationTempo.js.map +1 -1
  29. package/_esm/tempo/KeyAuthorization.js +38 -13
  30. package/_esm/tempo/KeyAuthorization.js.map +1 -1
  31. package/_esm/tempo/SignatureEnvelope.js +43 -6
  32. package/_esm/tempo/SignatureEnvelope.js.map +1 -1
  33. package/_esm/tempo/TempoAddress.js +79 -48
  34. package/_esm/tempo/TempoAddress.js.map +1 -1
  35. package/_esm/tempo/TokenId.js +9 -6
  36. package/_esm/tempo/TokenId.js.map +1 -1
  37. package/_esm/tempo/TransactionRequest.js +2 -1
  38. package/_esm/tempo/TransactionRequest.js.map +1 -1
  39. package/_esm/tempo/TxEnvelopeTempo.js +66 -15
  40. package/_esm/tempo/TxEnvelopeTempo.js.map +1 -1
  41. package/_esm/tempo/index.js +11 -10
  42. package/_esm/tempo/index.js.map +1 -1
  43. package/_esm/version.js +1 -1
  44. package/_types/core/Bech32m.d.ts +93 -0
  45. package/_types/core/Bech32m.d.ts.map +1 -0
  46. package/_types/index.d.ts +24 -0
  47. package/_types/index.d.ts.map +1 -1
  48. package/_types/tempo/AuthorizationTempo.d.ts +19 -19
  49. package/_types/tempo/AuthorizationTempo.d.ts.map +1 -1
  50. package/_types/tempo/KeyAuthorization.d.ts +21 -9
  51. package/_types/tempo/KeyAuthorization.d.ts.map +1 -1
  52. package/_types/tempo/SignatureEnvelope.d.ts +30 -7
  53. package/_types/tempo/SignatureEnvelope.d.ts.map +1 -1
  54. package/_types/tempo/TempoAddress.d.ts +51 -15
  55. package/_types/tempo/TempoAddress.d.ts.map +1 -1
  56. package/_types/tempo/TokenId.d.ts +6 -5
  57. package/_types/tempo/TokenId.d.ts.map +1 -1
  58. package/_types/tempo/TransactionRequest.d.ts +2 -1
  59. package/_types/tempo/TransactionRequest.d.ts.map +1 -1
  60. package/_types/tempo/TxEnvelopeTempo.d.ts +64 -17
  61. package/_types/tempo/TxEnvelopeTempo.d.ts.map +1 -1
  62. package/_types/tempo/index.d.ts +11 -10
  63. package/_types/tempo/index.d.ts.map +1 -1
  64. package/_types/version.d.ts +1 -1
  65. package/core/Bech32m.ts +263 -0
  66. package/index.ts +24 -2
  67. package/package.json +6 -1
  68. package/tempo/AuthorizationTempo.test.ts +13 -0
  69. package/tempo/AuthorizationTempo.ts +27 -21
  70. package/tempo/KeyAuthorization.test.ts +95 -23
  71. package/tempo/KeyAuthorization.ts +44 -25
  72. package/tempo/PoolId.test.ts +9 -0
  73. package/tempo/SignatureEnvelope.test.ts +123 -8
  74. package/tempo/SignatureEnvelope.ts +82 -9
  75. package/tempo/TempoAddress.test.ts +70 -14
  76. package/tempo/TempoAddress.ts +95 -67
  77. package/tempo/TokenId.test.ts +14 -0
  78. package/tempo/TokenId.ts +13 -10
  79. package/tempo/Transaction.test.ts +4 -2
  80. package/tempo/TransactionRequest.ts +3 -2
  81. package/tempo/TxEnvelopeTempo.test.ts +79 -3
  82. package/tempo/TxEnvelopeTempo.ts +86 -19
  83. package/tempo/e2e.test.ts +33 -9
  84. package/tempo/index.ts +15 -10
  85. package/version.ts +1 -1
@@ -1,71 +1,67 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InvalidChecksumError = exports.InvalidLengthError = exports.InvalidPrefixError = void 0;
3
+ exports.InvalidChecksumError = exports.InvalidLengthError = exports.InvalidVersionError = exports.InvalidPrefixError = void 0;
4
+ exports.resolve = resolve;
4
5
  exports.format = format;
5
6
  exports.parse = parse;
6
7
  exports.validate = validate;
7
- const Address = require("../core/Address.js");
8
- const Base32 = require("../core/Base32.js");
8
+ const core_Address = require("../core/Address.js");
9
+ const Bech32m = require("../core/Bech32m.js");
9
10
  const Bytes = require("../core/Bytes.js");
10
11
  const CompactSize = require("../core/CompactSize.js");
11
12
  const Errors = require("../core/Errors.js");
12
- const Hash = require("../core/Hash.js");
13
13
  const Hex = require("../core/Hex.js");
14
+ function resolve(address) {
15
+ if (address.startsWith('tempo'))
16
+ return parse(address).address;
17
+ return address;
18
+ }
14
19
  function format(address, options = {}) {
15
20
  const { zoneId } = options;
16
- const prefix = zoneId != null ? 'tempoz1' : 'tempo1';
21
+ const resolved = resolve(address);
22
+ const hrp = zoneId != null ? 'tempoz' : 'tempo';
23
+ const version = new Uint8Array([0x00]);
17
24
  const zone = zoneId != null ? CompactSize.toBytes(zoneId) : new Uint8Array();
18
- const address_bytes = Bytes.fromHex(address);
19
- const input = Bytes.concat(Bytes.fromString(prefix), zone, address_bytes);
20
- const checksum = Hash.sha256(Hash.sha256(input, { as: 'Bytes' }), {
21
- as: 'Bytes',
22
- }).slice(0, 4);
23
- const payload = Bytes.concat(zone, address_bytes, checksum);
24
- return `${prefix}${Base32.fromBytes(payload)}`;
25
+ const data = Bytes.concat(version, zone, Bytes.fromHex(resolved));
26
+ return Bech32m.encode(hrp, data);
25
27
  }
26
28
  function parse(tempoAddress) {
27
- const lower = tempoAddress.toLowerCase();
28
- let prefix;
29
- let hasZone;
30
- if (lower.startsWith('tempoz1')) {
31
- prefix = 'tempoz1';
32
- hasZone = true;
29
+ let hrp;
30
+ let data;
31
+ try {
32
+ const decoded = Bech32m.decode(tempoAddress);
33
+ hrp = decoded.hrp;
34
+ data = decoded.data;
33
35
  }
34
- else if (lower.startsWith('tempo1')) {
35
- prefix = 'tempo1';
36
- hasZone = false;
36
+ catch {
37
+ throw new InvalidChecksumError({ address: tempoAddress });
37
38
  }
38
- else {
39
+ if (hrp !== 'tempo' && hrp !== 'tempoz')
39
40
  throw new InvalidPrefixError({ address: tempoAddress });
40
- }
41
- const payload = Base32.toBytes(lower.slice(prefix.length));
41
+ if (data.length < 1 || data[0] !== 0x00)
42
+ throw new InvalidVersionError({
43
+ address: tempoAddress,
44
+ version: data.length > 0 ? data[0] : undefined,
45
+ });
46
+ const payload = data.slice(1);
42
47
  let zoneId;
43
- let remaining;
44
- if (hasZone) {
48
+ let rawAddress;
49
+ if (hrp === 'tempoz') {
45
50
  const { value, size } = CompactSize.fromBytes(payload);
46
51
  zoneId = value;
47
- remaining = payload.slice(size);
52
+ rawAddress = payload.slice(size);
48
53
  }
49
54
  else {
50
55
  zoneId = undefined;
51
- remaining = payload;
56
+ rawAddress = payload;
52
57
  }
53
- if (remaining.length !== 24)
58
+ if (rawAddress.length !== 20)
54
59
  throw new InvalidLengthError({
55
60
  address: tempoAddress,
56
- expected: 24,
57
- actual: remaining.length,
61
+ expected: 20,
62
+ actual: rawAddress.length,
58
63
  });
59
- const rawAddress = remaining.slice(0, 20);
60
- const checksum = remaining.slice(20, 24);
61
- const zoneBytes = zoneId != null ? CompactSize.toBytes(zoneId) : new Uint8Array();
62
- const checksumInput = Bytes.concat(Bytes.fromString(prefix), zoneBytes, rawAddress);
63
- const expected = Hash.sha256(Hash.sha256(checksumInput, { as: 'Bytes' }), {
64
- as: 'Bytes',
65
- }).slice(0, 4);
66
- if (!Bytes.isEqual(checksum, expected))
67
- throw new InvalidChecksumError({ address: tempoAddress });
68
- const address = Address.checksum(Hex.fromBytes(rawAddress));
64
+ const address = core_Address.checksum(Hex.fromBytes(rawAddress));
69
65
  return { address, zoneId };
70
66
  }
71
67
  function validate(tempoAddress) {
@@ -89,6 +85,18 @@ class InvalidPrefixError extends Errors.BaseError {
89
85
  }
90
86
  }
91
87
  exports.InvalidPrefixError = InvalidPrefixError;
88
+ class InvalidVersionError extends Errors.BaseError {
89
+ constructor({ address, version, }) {
90
+ super(`Tempo address "${address}" has unsupported version ${version === undefined ? '(missing)' : `0x${version.toString(16).padStart(2, '0')}`}. Only version 0x00 is supported.`);
91
+ Object.defineProperty(this, "name", {
92
+ enumerable: true,
93
+ configurable: true,
94
+ writable: true,
95
+ value: 'TempoAddress.InvalidVersionError'
96
+ });
97
+ }
98
+ }
99
+ exports.InvalidVersionError = InvalidVersionError;
92
100
  class InvalidLengthError extends Errors.BaseError {
93
101
  constructor({ address, expected, actual, }) {
94
102
  super(`Tempo address "${address}" has an invalid payload length. Expected ${expected} bytes, got ${actual}.`);
@@ -1 +1 @@
1
- {"version":3,"file":"TempoAddress.js","sourceRoot":"","sources":["../../tempo/TempoAddress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TempoAddress.js","sourceRoot":"","sources":["../../tempo/TempoAddress.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ const AbiParameters = require("../core/AbiParameters.js");
8
8
  const Address = require("../core/Address.js");
9
9
  const Hash = require("../core/Hash.js");
10
10
  const Hex = require("../core/Hex.js");
11
+ const TempoAddress = require("./TempoAddress.js");
11
12
  const tip20Prefix = '0x20c0';
12
13
  function from(tokenIdOrAddress) {
13
14
  if (typeof tokenIdOrAddress === 'bigint' ||
@@ -16,21 +17,23 @@ function from(tokenIdOrAddress) {
16
17
  return fromAddress(tokenIdOrAddress);
17
18
  }
18
19
  function fromAddress(address) {
19
- if (!address.toLowerCase().startsWith(tip20Prefix))
20
+ const resolved = TempoAddress.resolve(address);
21
+ if (!resolved.toLowerCase().startsWith(tip20Prefix))
20
22
  throw new Error('invalid tip20 address.');
21
- return Hex.toBigInt(Hex.slice(address, tip20Prefix.length));
23
+ return Hex.toBigInt(Hex.slice(resolved, tip20Prefix.length));
22
24
  }
23
25
  function toAddress(tokenId) {
24
26
  if (typeof tokenId === 'string') {
25
- Address.assert(tokenId);
26
- return tokenId;
27
+ const resolved = TempoAddress.resolve(tokenId);
28
+ Address.assert(resolved);
29
+ return resolved;
27
30
  }
28
31
  const tokenIdHex = Hex.fromNumber(tokenId, { size: 18 });
29
32
  return Hex.concat(tip20Prefix, tokenIdHex);
30
33
  }
31
34
  function compute(value) {
32
35
  const hash = Hash.keccak256(AbiParameters.encode(AbiParameters.from('address, bytes32'), [
33
- value.sender,
36
+ TempoAddress.resolve(value.sender),
34
37
  value.salt,
35
38
  ]));
36
39
  return Hex.toBigInt(Hex.slice(hash, 0, 8));
@@ -1 +1 @@
1
- {"version":3,"file":"TokenId.js","sourceRoot":"","sources":["../../tempo/TokenId.ts"],"names":[],"mappings":";;AA4BA,oBAOC;AAiBD,kCAIC;AAiBD,8BAQC;AAsBD,0BAQC;AA/GD,0DAAyD;AACzD,8CAA6C;AAC7C,wCAAuC;AACvC,sCAAqC;AAErC,MAAM,WAAW,GAAG,QAAQ,CAAA;AAuB5B,SAAgB,IAAI,CAAC,gBAA2C;IAC9D,IACE,OAAO,gBAAgB,KAAK,QAAQ;QACpC,OAAO,gBAAgB,KAAK,QAAQ;QAEpC,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACjC,OAAO,WAAW,CAAC,gBAAgB,CAAC,CAAA;AACtC,CAAC;AAiBD,SAAgB,WAAW,CAAC,OAAwB;IAClD,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAC3C,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;AAC7D,CAAC;AAiBD,SAAgB,SAAS,CAAC,OAAyB;IACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACvB,OAAO,OAAO,CAAA;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IACxD,OAAO,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;AAC5C,CAAC;AAsBD,SAAgB,OAAO,CAAC,KAAoB;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CACzB,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;QAC3D,KAAK,CAAC,MAAM;QACZ,KAAK,CAAC,IAAI;KACX,CAAC,CACH,CAAA;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAC5C,CAAC"}
1
+ {"version":3,"file":"TokenId.js","sourceRoot":"","sources":["../../tempo/TokenId.ts"],"names":[],"mappings":";;AA6BA,oBAOC;AAiBD,kCAKC;AAiBD,8BASC;AAsBD,0BAQC;AAlHD,0DAAyD;AACzD,8CAA6C;AAC7C,wCAAuC;AACvC,sCAAqC;AACrC,kDAAiD;AAEjD,MAAM,WAAW,GAAG,QAAQ,CAAA;AAuB5B,SAAgB,IAAI,CAAC,gBAA2C;IAC9D,IACE,OAAO,gBAAgB,KAAK,QAAQ;QACpC,OAAO,gBAAgB,KAAK,QAAQ;QAEpC,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAA;IACjC,OAAO,WAAW,CAAC,gBAAgB,CAAC,CAAA;AACtC,CAAC;AAiBD,SAAgB,WAAW,CAAC,OAA6B;IACvD,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC9C,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;QACjD,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;IAC3C,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC,CAAA;AAC9D,CAAC;AAiBD,SAAgB,SAAS,CAAC,OAAyB;IACjD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,OAA+B,CAAC,CAAA;QACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;QACxB,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IACxD,OAAO,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;AAC5C,CAAC;AAsBD,SAAgB,OAAO,CAAC,KAAoB;IAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CACzB,aAAa,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;QAC3D,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAClC,KAAK,CAAC,IAAI;KACX,CAAC,CACH,CAAA;IACD,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AAC5C,CAAC"}
@@ -5,6 +5,7 @@ const Hex = require("../core/Hex.js");
5
5
  const ox_TransactionRequest = require("../core/TransactionRequest.js");
6
6
  const AuthorizationTempo = require("./AuthorizationTempo.js");
7
7
  const KeyAuthorization = require("./KeyAuthorization.js");
8
+ const TempoAddress = require("./TempoAddress.js");
8
9
  const TokenId = require("./TokenId.js");
9
10
  const Transaction = require("./Transaction.js");
10
11
  function toRpc(request) {
@@ -16,7 +17,7 @@ function toRpc(request) {
16
17
  request_rpc.authorizationList = AuthorizationTempo.toRpcList(request.authorizationList);
17
18
  if (request.calls)
18
19
  request_rpc.calls = request.calls.map((call) => ({
19
- to: call.to,
20
+ to: call.to ? TempoAddress.resolve(call.to) : call.to,
20
21
  value: call.value ? Hex.fromNumber(call.value) : '0x',
21
22
  data: call.data ?? '0x',
22
23
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionRequest.js","sourceRoot":"","sources":["../../tempo/TransactionRequest.ts"],"names":[],"mappings":";;AAsGA,sBAoDC;AAzJD,sCAAqC;AAErC,uEAAsE;AACtE,8DAA6D;AAC7D,0DAAyD;AACzD,wCAAuC;AACvC,gDAA+C;AA+F/C,SAAgB,KAAK,CAAC,OAA2B;IAC/C,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC;QAC9C,GAAG,OAAO;QACV,iBAAiB,EAAE,SAAS;KAC7B,CAAQ,CAAA;IAET,IAAI,OAAO,CAAC,iBAAiB;QAC3B,WAAW,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,SAAS,CAC1D,OAAO,CAAC,iBAAiB,CAC1B,CAAA;IACH,IAAI,OAAO,CAAC,KAAK;QACf,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/C,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;YACrD,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;SACxB,CAAC,CAAC,CAAA;IACL,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;QACzC,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC5D,IAAI,OAAO,CAAC,gBAAgB;QAC1B,WAAW,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CACnD,OAAO,CAAC,gBAAgB,CACzB,CAAA;IACH,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,WAAW;QAC5C,WAAW,CAAC,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC/D,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,WAAW;QAC3C,WAAW,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAE7D,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;QACrB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACvD,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;YACtC,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACzC,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,EAAE,CAAA;IACJ,IAAI,QAAQ;QAAE,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAE7C,IACE,OAAO,OAAO,CAAC,KAAK,KAAK,WAAW;QACpC,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;QACvC,OAAO,OAAO,CAAC,gBAAgB,KAAK,WAAW;QAC/C,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;QACvC,OAAO,OAAO,CAAC,WAAW,KAAK,WAAW;QAC1C,OAAO,OAAO,CAAC,UAAU,KAAK,WAAW;QACzC,OAAO,CAAC,IAAI,KAAK,OAAO,EACxB,CAAC;QACD,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAA;QAC9C,OAAO,WAAW,CAAC,IAAI,CAAA;QACvB,OAAO,WAAW,CAAC,KAAK,CAAA;QACxB,OAAO,WAAW,CAAC,EAAE,CAAA;QACrB,OAAO,WAAW,CAAC,KAAK,CAAA;IAC1B,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC"}
1
+ {"version":3,"file":"TransactionRequest.js","sourceRoot":"","sources":["../../tempo/TransactionRequest.ts"],"names":[],"mappings":";;AAuGA,sBAoDC;AA1JD,sCAAqC;AAErC,uEAAsE;AACtE,8DAA6D;AAC7D,0DAAyD;AACzD,kDAAiD;AACjD,wCAAuC;AACvC,gDAA+C;AA+F/C,SAAgB,KAAK,CAAC,OAA2B;IAC/C,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC;QAC9C,GAAG,OAAO;QACV,iBAAiB,EAAE,SAAS;KAC7B,CAAQ,CAAA;IAET,IAAI,OAAO,CAAC,iBAAiB;QAC3B,WAAW,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,SAAS,CAC1D,OAAO,CAAC,iBAAiB,CAC1B,CAAA;IACH,IAAI,OAAO,CAAC,KAAK;QACf,WAAW,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/C,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE;YACrD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;YACrD,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;SACxB,CAAC,CAAC,CAAA;IACL,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;QACzC,WAAW,CAAC,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC5D,IAAI,OAAO,CAAC,gBAAgB;QAC1B,WAAW,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CACnD,OAAO,CAAC,gBAAgB,CACzB,CAAA;IACH,IAAI,OAAO,OAAO,CAAC,WAAW,KAAK,WAAW;QAC5C,WAAW,CAAC,WAAW,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IAC/D,IAAI,OAAO,OAAO,CAAC,UAAU,KAAK,WAAW;QAC3C,WAAW,CAAC,UAAU,GAAG,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;IAE7D,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE;QACrB,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;YAAE,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACvD,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ;YACtC,OAAO,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACzC,OAAO,SAAS,CAAA;IAClB,CAAC,CAAC,EAAE,CAAA;IACJ,IAAI,QAAQ;QAAE,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAE7C,IACE,OAAO,OAAO,CAAC,KAAK,KAAK,WAAW;QACpC,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;QACvC,OAAO,OAAO,CAAC,gBAAgB,KAAK,WAAW;QAC/C,OAAO,OAAO,CAAC,QAAQ,KAAK,WAAW;QACvC,OAAO,OAAO,CAAC,WAAW,KAAK,WAAW;QAC1C,OAAO,OAAO,CAAC,UAAU,KAAK,WAAW;QACzC,OAAO,CAAC,IAAI,KAAK,OAAO,EACxB,CAAC;QACD,WAAW,CAAC,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,KAAK,CAAA;QAC9C,OAAO,WAAW,CAAC,IAAI,CAAA;QACvB,OAAO,WAAW,CAAC,KAAK,CAAA;QACxB,OAAO,WAAW,CAAC,EAAE,CAAA;QACrB,OAAO,WAAW,CAAC,KAAK,CAAA;IAC1B,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC"}
@@ -21,6 +21,7 @@ const TransactionEnvelope = require("../core/TxEnvelope.js");
21
21
  const AuthorizationTempo = require("./AuthorizationTempo.js");
22
22
  const KeyAuthorization = require("./KeyAuthorization.js");
23
23
  const SignatureEnvelope = require("./SignatureEnvelope.js");
24
+ const TempoAddress = require("./TempoAddress.js");
24
25
  const TokenId = require("./TokenId.js");
25
26
  exports.feePayerMagic = '0x78';
26
27
  exports.serializedType = '0x76';
@@ -167,6 +168,15 @@ function deserialize(serialized) {
167
168
  function from(envelope, options = {}) {
168
169
  const { feePayerSignature, signature } = options;
169
170
  const envelope_ = (typeof envelope === 'string' ? deserialize(envelope) : envelope);
171
+ if (envelope_.from)
172
+ envelope_.from = TempoAddress.resolve(envelope_.from);
173
+ if (envelope_.calls)
174
+ envelope_.calls = envelope_.calls.map((call) => ({
175
+ ...call,
176
+ ...(call.to
177
+ ? { to: TempoAddress.resolve(call.to) }
178
+ : {}),
179
+ }));
170
180
  assert(envelope_);
171
181
  return {
172
182
  ...envelope_,
@@ -184,7 +194,7 @@ function serialize(envelope, options = {}) {
184
194
  const signature = options.signature || envelope.signature;
185
195
  const authorizationTupleList = AuthorizationTempo.toTupleList(authorizationList);
186
196
  const callsTupleList = calls.map((call) => [
187
- call.to ?? '0x',
197
+ call.to ? TempoAddress.resolve(call.to) : '0x',
188
198
  call.value ? Hex.fromNumber(call.value) : '0x',
189
199
  call.data ?? '0x',
190
200
  ]);
@@ -235,8 +245,11 @@ function serialize(envelope, options = {}) {
235
245
  ];
236
246
  return Hex.concat(options.format === 'feePayer' ? exports.feePayerMagic : exports.serializedType, Rlp.fromHex(serialized));
237
247
  }
238
- function getSignPayload(envelope) {
239
- return hash(envelope, { presign: true });
248
+ function getSignPayload(envelope, options = {}) {
249
+ const sigHash = hash(envelope, { presign: true });
250
+ if (options.from)
251
+ return Hash.keccak256(Hex.concat('0x04', sigHash, TempoAddress.resolve(options.from)));
252
+ return sigHash;
240
253
  }
241
254
  function hash(envelope, options = {}) {
242
255
  const serialized = serialize({
@@ -250,7 +263,7 @@ function hash(envelope, options = {}) {
250
263
  return Hash.keccak256(serialized);
251
264
  }
252
265
  function getFeePayerSignPayload(envelope, options) {
253
- const { sender } = options;
266
+ const sender = TempoAddress.resolve(options.sender);
254
267
  const serialized = serialize({ ...envelope, signature: undefined }, {
255
268
  sender,
256
269
  format: 'feePayer',
@@ -1 +1 @@
1
- {"version":3,"file":"TxEnvelopeTempo.js","sourceRoot":"","sources":["../../tempo/TxEnvelopeTempo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TxEnvelopeTempo.js","sourceRoot":"","sources":["../../tempo/TxEnvelopeTempo.ts"],"names":[],"mappings":";;;AAqKA,wBAiDC;AA8BD,kCAoJC;AA+FD,oBAoCC;AA+FD,8BAiGC;AAwHD,wCAUC;AAoDD,oBAaC;AA2DD,wDAaC;AAmCD,4BAOC;AAhgCD,oDAAmD;AACnD,8CAA6C;AAC7C,4CAA2C;AAC3C,wCAAuC;AACvC,sCAAqC;AAQrC,sCAAqC;AACrC,kDAAiD;AACjD,kDAAiD;AACjD,6DAA4D;AAC5D,8DAA6D;AAC7D,0DAAyD;AACzD,4DAA2D;AAC3D,kDAAiD;AACjD,wCAAuC;AAoH1B,QAAA,aAAa,GAAG,MAAe,CAAA;AAO/B,QAAA,cAAc,GAAG,MAAe,CAAA;AAGhC,QAAA,IAAI,GAAG,OAAgB,CAAA;AAmBpC,SAAgB,MAAM,CAAC,QAA4C;IACjE,MAAM,EACJ,KAAK,EACL,OAAO,EACP,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,UAAU,GACX,GAAG,QAAQ,CAAA;IAGZ,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,eAAe,EAAE,CAAA;IAG7D,IACE,OAAO,WAAW,KAAK,QAAQ;QAC/B,OAAO,UAAU,KAAK,QAAQ;QAC9B,WAAW,IAAI,UAAU,EACzB,CAAC;QACD,MAAM,IAAI,0BAA0B,CAAC;YACnC,WAAW,EAAE,WAAW;YACxB,UAAU,EAAE,UAAU;SACvB,CAAC,CAAA;IACJ,CAAC;IAGD,IAAI,KAAK;QACP,KAAK,MAAM,IAAI,IAAI,KAAK;YACtB,IAAI,IAAI,CAAC,EAAE;gBAAE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;IAG3D,IAAI,OAAO,IAAI,CAAC;QACd,MAAM,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IAGhE,IAAI,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,IAAI,GAAG,EAAE;QACxD,MAAM,IAAI,mBAAmB,CAAC,kBAAkB,CAAC;YAC/C,MAAM,EAAE,YAAY;SACrB,CAAC,CAAA;IAEJ,IACE,oBAAoB;QACpB,YAAY;QACZ,oBAAoB,GAAG,YAAY;QAEnC,MAAM,IAAI,mBAAmB,CAAC,mBAAmB,CAAC;YAChD,YAAY;YACZ,oBAAoB;SACrB,CAAC,CAAA;AACN,CAAC;AA8BD,SAAgB,WAAW,CAAC,UAAsB;IAChD,MAAM,gBAAgB,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAA;IAE5D,MAAM,CACJ,OAAO,EACP,oBAAoB,EACpB,YAAY,EACZ,GAAG,EACH,KAAK,EACL,UAAU,EACV,QAAQ,EACR,KAAK,EACL,WAAW,EACX,UAAU,EACV,QAAQ,EACR,yBAAyB,EACzB,iBAAiB,EACjB,2BAA2B,EAC3B,cAAc,EACf,GAAG,gBAAsC,CAAA;IAE1C,MAAM,gBAAgB,GAAG,KAAK,CAAC,OAAO,CAAC,2BAA2B,CAAC;QACjE,CAAC,CAAC,2BAA2B;QAC7B,CAAC,CAAC,SAAS,CAAA;IACb,MAAM,SAAS,GAAG,gBAAgB;QAChC,CAAC,CAAC,cAAc;QAChB,CAAC,CAAC,2BAA2B,CAAA;IAE/B,IACE,CAAC,CACC,gBAAgB,CAAC,MAAM,KAAK,EAAE;QAC9B,gBAAgB,CAAC,MAAM,KAAK,EAAE;QAC9B,gBAAgB,CAAC,MAAM,KAAK,EAAE,CAC/B;QAED,MAAM,IAAI,mBAAmB,CAAC,sBAAsB,CAAC;YACnD,UAAU,EAAE;gBACV,iBAAiB;gBACjB,OAAO;gBACP,oBAAoB;gBACpB,YAAY;gBACZ,GAAG;gBACH,KAAK;gBACL,UAAU;gBACV,gBAAgB;gBAChB,QAAQ;gBACR,KAAK;gBACL,WAAW;gBACX,UAAU;gBACV,QAAQ;gBACR,yBAAyB;gBACzB,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,EAAE;oBAC9B,CAAC,CAAC;wBACE,SAAS;qBACV;oBACH,CAAC,CAAC,EAAE,CAAC;aACR;YACD,UAAU;YACV,IAAI,EAAJ,YAAI;SACL,CAAC,CAAA;IAEJ,IAAI,WAAW,GAAG;QAChB,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;QACxB,IAAI,EAAJ,YAAI;KACc,CAAA;IAEpB,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,IAAI;QAAE,WAAW,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;IACpE,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC;QACrB,WAAW,CAAC,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACzD,IAAI,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,KAAK,IAAI;QACrD,WAAW,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;IACjD,IAAI,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,IAAI,oBAAoB,KAAK,IAAI;QACrE,WAAW,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC,CAAA;IACjE,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACxB,WAAW,CAAC,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAA;IAClE,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,KAAK,IAAI;QACnD,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC,CAAA;IAC/C,IAAI,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,KAAK,IAAI;QACjD,WAAW,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAA;IAC7C,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,QAAQ,KAAK,IAAI;QAC7C,WAAW,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAGjC,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,KAAwC,CAAA;QAC3D,WAAW,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;YAC/C,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,SAAS,CAAA;YACnC,MAAM,IAAI,GAAS,EAAE,CAAA;YACrB,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI;gBAAE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAA;YACnC,IAAI,KAAK,IAAI,KAAK,KAAK,IAAI;gBAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;YACvD,IAAI,IAAI,IAAI,IAAI,KAAK,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;YAC3C,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,UAAU,EAAE,MAAM,KAAK,CAAC,IAAI,UAAU,KAAK,IAAI;QACjD,WAAW,CAAC,UAAU,GAAG,UAAU,CAAC,aAAa,CAAC,UAAmB,CAAC,CAAA;IAExE,IAAI,iBAAiB,EAAE,MAAM,KAAK,CAAC,IAAI,iBAAiB,KAAK,IAAI;QAC/D,WAAW,CAAC,iBAAiB,GAAG,kBAAkB,CAAC,aAAa,CAC9D,iBAA0B,CAC3B,CAAA;IAEH,IACE,yBAAyB,KAAK,IAAI;QAClC,yBAAyB,KAAK,SAAS,EACvC,CAAC;QACD,IACE,yBAAyB,KAAK,MAAM;YACpC,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAC3C,CAAC;YACD,WAAW,CAAC,iBAAiB,GAAG,IAAI,CAAA;YACpC,IAAI,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC;gBAC7C,WAAW,CAAC,IAAI,GAAG,yBAAyB,CAAA;QAChD,CAAC;;YACC,WAAW,CAAC,iBAAiB,GAAG,SAAS,CAAC,SAAS,CACjD,yBAAkC,CACnC,CAAA;IACL,CAAC;IAED,IAAI,gBAAgB;QAClB,WAAW,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,SAAS,CACvD,gBAAyB,CAC1B,CAAA;IAEH,MAAM,iBAAiB,GAAG,SAAS;QACjC,CAAC,CAAC,iBAAiB,CAAC,WAAW,CAAC,SAAS,CAAC;QAC1C,CAAC,CAAC,SAAS,CAAA;IACb,IAAI,iBAAiB;QACnB,WAAW,GAAG;YACZ,GAAG,WAAW;YACd,SAAS,EAAE,iBAAiB;SAC7B,CAAA;IAGH,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,iBAAiB,EAAE,CAAC;QAC3C,IAAI,CAAC;YACH,WAAW,CAAC,IAAI,GAAG,iBAAiB,CAAC,cAAc,CAAC;gBAClD,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC1C,SAAS,EAAE,iBAAiB;gBAC5B,IAAI,EAAE,IAAI;aACX,CAAC,CAAA;QACJ,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,CAAA;IAEnB,OAAO,WAAW,CAAA;AACpB,CAAC;AA+FD,SAAgB,IAAI,CAIlB,QAAyE,EACzE,UAAmC,EAAE;IAErC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAEhD,MAAM,SAAS,GAAG,CAChB,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAC7C,CAAA;IAGpB,IAAI,SAAS,CAAC,IAAI;QAChB,SAAS,CAAC,IAAI,GAAG,YAAY,CAAC,OAAO,CACnC,SAAS,CAAC,IAA4B,CACvC,CAAA;IACH,IAAI,SAAS,CAAC,KAAK;QACjB,SAAS,CAAC,KAAK,GAAI,SAAS,CAAC,KAAyB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACpE,GAAG,IAAI;YACP,GAAG,CAAC,IAAI,CAAC,EAAE;gBACT,CAAC,CAAC,EAAE,EAAE,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAA0B,CAAC,EAAE;gBAC/D,CAAC,CAAC,EAAE,CAAC;SACR,CAAC,CAAoB,CAAA;IAExB,MAAM,CAAC,SAAS,CAAC,CAAA;IAEjB,OAAO;QACL,GAAG,SAAS;QACZ,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,GAAG,CAAC,iBAAiB;YACnB,CAAC,CAAC,EAAE,iBAAiB,EAAE,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;YAC1D,CAAC,CAAC,EAAE,CAAC;QACP,IAAI,EAAE,OAAO;KACL,CAAA;AACZ,CAAC;AA+FD,SAAgB,SAAS,CACvB,QAA4C,EAC5C,UAA6B,EAAE;IAE/B,MAAM,EACJ,UAAU,EACV,iBAAiB,EACjB,KAAK,EACL,OAAO,EACP,QAAQ,EACR,GAAG,EACH,gBAAgB,EAChB,KAAK,EACL,QAAQ,EACR,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,UAAU,GACX,GAAG,QAAQ,CAAA;IAEZ,MAAM,CAAC,QAAQ,CAAC,CAAA;IAEhB,MAAM,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;IAC1D,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAA;IAEzD,MAAM,sBAAsB,GAC1B,kBAAkB,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAA;IAGnD,MAAM,cAAc,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;QACzC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;QAC9C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QAC9C,IAAI,CAAC,IAAI,IAAI,IAAI;KAClB,CAAC,CAAA;IAEF,MAAM,yBAAyB,GAAG,CAAC,GAAG,EAAE;QAEtC,IAAI,OAAO,CAAC,MAAM;YAAE,OAAO,OAAO,CAAC,MAAM,CAAA;QASzC,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,IAAI,SAAS,EAAE,CAAC;YAC/C,MAAM,GAAG,GAAG,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU;gBAAE,OAAO,GAAG,CAAC,WAAW,CAAA;YACnD,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,IAAI,GAAG,CAAC,IAAI,KAAK,UAAU;gBAChD,OAAO,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YAC7C,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW;gBAC1B,OAAO,SAAS,CAAC,cAAc,CAAC;oBAC9B,OAAO,EAAE,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;oBACvC,SAAS,EAAE,GAAG,CAAC,SAAS;iBACzB,CAAC,CAAA;QACN,CAAC;QAED,MAAM,iBAAiB,GACrB,OAAO,OAAO,CAAC,iBAAiB,KAAK,WAAW;YAC9C,CAAC,CAAC,OAAO,CAAC,iBAAiB;YAC3B,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAA;QAGhC,IAAI,iBAAiB,KAAK,IAAI;YAAE,OAAO,MAAM,CAAA;QAE7C,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAA;QAEnC,OAAO,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC7C,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,UAAU,GAAG;QACjB,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;QACvB,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,IAAI;QAClE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;QAClD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI;QAChC,cAAc;QACd,eAAe;QACf,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;QAC1C,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;QACpC,OAAO,WAAW,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI;QACpE,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;QAClE,OAAO,QAAQ,KAAK,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAC1D,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC;YAC7B,CAAC,CAAC,IAAI;QACR,yBAAyB;QACzB,sBAAsB;QACtB,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACzE,GAAG,CAAC,SAAS;YACX,CAAC,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;YAClE,CAAC,CAAC,EAAE,CAAC;KACC,CAAA;IAEV,OAAO,GAAG,CAAC,MAAM,CACf,OAAO,CAAC,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,qBAAa,CAAC,CAAC,CAAC,sBAAc,EAC9D,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CACV,CAAA;AACjB,CAAC;AAwHD,SAAgB,cAAc,CAC5B,QAAyB,EACzB,UAAkC,EAAE;IAEpC,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IACjD,IAAI,OAAO,CAAC,IAAI;QACd,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAChE,CAAA;IACH,OAAO,OAAO,CAAA;AAChB,CAAC;AAoDD,SAAgB,IAAI,CAClB,QAA8D,EAC9D,UAAiC,EAAE;IAEnC,MAAM,UAAU,GAAG,SAAS,CAAC;QAC3B,GAAG,QAAQ;QACX,GAAG,CAAC,OAAO,CAAC,OAAO;YACjB,CAAC,CAAC;gBACE,SAAS,EAAE,SAAS;aACrB;YACH,CAAC,CAAC,EAAE,CAAC;KACR,CAAC,CAAA;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;AACnC,CAAC;AA2DD,SAAgB,sBAAsB,CACpC,QAAyB,EACzB,OAAuC;IAEvC,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACnD,MAAM,UAAU,GAAG,SAAS,CAC1B,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,EACrC;QACE,MAAM;QACN,MAAM,EAAE,UAAU;KACnB,CACF,CAAA;IACD,OAAO,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;AACnC,CAAC;AAmCD,SAAgB,QAAQ,CAAC,QAA4C;IACnE,IAAI,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,CAAA;QAChB,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAoBD,MAAa,eAAgB,SAAQ,MAAM,CAAC,SAAS;IAEnD;QACE,KAAK,CAAC,6BAA6B,CAAC,CAAA;QAFpB;;;;mBAAO,iCAAiC;WAAA;IAG1D,CAAC;CACF;AALD,0CAKC;AAkBD,MAAa,0BAA2B,SAAQ,MAAM,CAAC,SAAS;IAE9D,YAAY,EACV,WAAW,EACX,UAAU,GAIX;QACC,KAAK,CACH,gBAAgB,WAAW,sCAAsC,UAAU,IAAI,CAChF,CAAA;QAVe;;;;mBAAO,4CAA4C;WAAA;IAWrE,CAAC;CACF;AAbD,gEAaC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../tempo/index.ts"],"names":[],"mappings":";;;AAoCA,gEAA6D;AAwC7D,4DAAyD;AAsBzD,wCAAqC;AAuBrC,8DAA2D;AAqB3D,oDAAiD;AAoBjD,oCAAiC;AAqBjC,0CAAuC;AAkBvC,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;AAyC7D,4DAAyD;AAsBzD,wCAAqC;AAuBrC,8DAA2D;AAsB3D,oDAAiD;AAqBjD,oCAAiC;AAsBjC,0CAAuC;AAmBvC,8CAA2C;AAmD3C,kDAA+C;AAuB/C,gEAA6D;AAqB7D,gEAA6D;AA6B7D,0DAAuD"}
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.13.2';
4
+ exports.version = '0.14.1';
5
5
  //# sourceMappingURL=version.js.map
@@ -0,0 +1,238 @@
1
+ import { BaseError } from './Errors.js';
2
+ /**
3
+ * Encodes data bytes with a human-readable part (HRP) into a bech32m string (BIP-350).
4
+ *
5
+ * @example
6
+ * ```ts twoslash
7
+ * import { Bech32m } from 'ox'
8
+ *
9
+ * const encoded = Bech32m.encode('tempo', new Uint8Array(20))
10
+ * // @log: 'tempo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwa7xtm'
11
+ * ```
12
+ *
13
+ * @param hrp - The human-readable part (e.g. `"tempo"`, `"tempoz"`).
14
+ * @param data - The data bytes to encode.
15
+ * @returns The bech32m-encoded string.
16
+ */
17
+ export function encode(hrp, data, options = {}) {
18
+ const { limit = 90 } = options;
19
+ hrp = hrp.toLowerCase();
20
+ if (hrp.length === 0)
21
+ throw new InvalidHrpError();
22
+ for (let i = 0; i < hrp.length; i++) {
23
+ const c = hrp.charCodeAt(i);
24
+ if (c < 33 || c > 126)
25
+ throw new InvalidHrpError();
26
+ }
27
+ const data5 = convertBits(data, 8, 5, true);
28
+ if (hrp.length + 1 + data5.length + 6 > limit)
29
+ throw new ExceedsLengthError({ limit });
30
+ const checksum = createChecksum(hrp, data5);
31
+ let result = hrp + '1';
32
+ for (const d of data5.concat(checksum))
33
+ result += alphabet[d];
34
+ return result;
35
+ }
36
+ /**
37
+ * Decodes a bech32m string (BIP-350) into a human-readable part and data bytes.
38
+ *
39
+ * @example
40
+ * ```ts twoslash
41
+ * import { Bech32m } from 'ox'
42
+ *
43
+ * const { hrp, data } = Bech32m.decode('tempo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwa7xtm')
44
+ * // @log: { hrp: 'tempo', data: Uint8Array(20) }
45
+ * ```
46
+ *
47
+ * @param str - The bech32m-encoded string to decode.
48
+ * @returns The decoded HRP and data bytes.
49
+ */
50
+ export function decode(str, options = {}) {
51
+ const { limit = 90 } = options;
52
+ if (str.length > limit)
53
+ throw new ExceedsLengthError({ limit });
54
+ if (str !== str.toLowerCase() && str !== str.toUpperCase())
55
+ throw new MixedCaseError();
56
+ const lower = str.toLowerCase();
57
+ const pos = lower.lastIndexOf('1');
58
+ if (pos === -1)
59
+ throw new NoSeparatorError();
60
+ if (pos === 0)
61
+ throw new InvalidHrpError();
62
+ if (pos + 7 > lower.length)
63
+ throw new InvalidChecksumError();
64
+ const hrp = lower.slice(0, pos);
65
+ for (let i = 0; i < hrp.length; i++) {
66
+ const c = hrp.charCodeAt(i);
67
+ if (c < 33 || c > 126)
68
+ throw new InvalidHrpError();
69
+ }
70
+ const dataChars = lower.slice(pos + 1);
71
+ const data5 = [];
72
+ for (const c of dataChars) {
73
+ const v = alphabetMap[c];
74
+ if (v === undefined)
75
+ throw new InvalidCharacterError({ character: c });
76
+ data5.push(v);
77
+ }
78
+ if (!verifyChecksum(hrp, data5))
79
+ throw new InvalidChecksumError();
80
+ const data8 = convertBits(data5.slice(0, -6), 5, 8, false);
81
+ return { hrp, data: new Uint8Array(data8) };
82
+ }
83
+ /** Thrown when a bech32m string has no separator. */
84
+ export class NoSeparatorError extends BaseError {
85
+ constructor() {
86
+ super('Bech32m string has no separator.');
87
+ Object.defineProperty(this, "name", {
88
+ enumerable: true,
89
+ configurable: true,
90
+ writable: true,
91
+ value: 'Bech32m.NoSeparatorError'
92
+ });
93
+ }
94
+ }
95
+ /** Thrown when a bech32m string has an invalid checksum. */
96
+ export class InvalidChecksumError extends BaseError {
97
+ constructor() {
98
+ super('Invalid bech32m checksum.');
99
+ Object.defineProperty(this, "name", {
100
+ enumerable: true,
101
+ configurable: true,
102
+ writable: true,
103
+ value: 'Bech32m.InvalidChecksumError'
104
+ });
105
+ }
106
+ }
107
+ /** Thrown when a bech32m string contains an invalid character. */
108
+ export class InvalidCharacterError extends BaseError {
109
+ constructor({ character }) {
110
+ super(`Invalid bech32m character: "${character}".`);
111
+ Object.defineProperty(this, "name", {
112
+ enumerable: true,
113
+ configurable: true,
114
+ writable: true,
115
+ value: 'Bech32m.InvalidCharacterError'
116
+ });
117
+ }
118
+ }
119
+ /** Thrown when the padding bits are invalid during base32 conversion. */
120
+ export class InvalidPaddingError extends BaseError {
121
+ constructor() {
122
+ super('Invalid padding in bech32m data.');
123
+ Object.defineProperty(this, "name", {
124
+ enumerable: true,
125
+ configurable: true,
126
+ writable: true,
127
+ value: 'Bech32m.InvalidPaddingError'
128
+ });
129
+ }
130
+ }
131
+ /** Thrown when a bech32m string contains mixed case. */
132
+ export class MixedCaseError extends BaseError {
133
+ constructor() {
134
+ super('Bech32m string must not contain mixed case.');
135
+ Object.defineProperty(this, "name", {
136
+ enumerable: true,
137
+ configurable: true,
138
+ writable: true,
139
+ value: 'Bech32m.MixedCaseError'
140
+ });
141
+ }
142
+ }
143
+ /** Thrown when the HRP is invalid (empty or contains non-ASCII characters). */
144
+ export class InvalidHrpError extends BaseError {
145
+ constructor() {
146
+ super('Invalid bech32m human-readable part (HRP). Must be 1+ characters in ASCII range 33-126.');
147
+ Object.defineProperty(this, "name", {
148
+ enumerable: true,
149
+ configurable: true,
150
+ writable: true,
151
+ value: 'Bech32m.InvalidHrpError'
152
+ });
153
+ }
154
+ }
155
+ /** Thrown when the encoded string exceeds the length limit. */
156
+ export class ExceedsLengthError extends BaseError {
157
+ constructor({ limit }) {
158
+ super(`Bech32m string exceeds length limit of ${limit}.`);
159
+ Object.defineProperty(this, "name", {
160
+ enumerable: true,
161
+ configurable: true,
162
+ writable: true,
163
+ value: 'Bech32m.ExceedsLengthError'
164
+ });
165
+ }
166
+ }
167
+ /** @internal */
168
+ const alphabet = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';
169
+ /** @internal */
170
+ const alphabetMap = /*#__PURE__*/ (() => {
171
+ const map = {};
172
+ for (let i = 0; i < alphabet.length; i++)
173
+ map[alphabet[i]] = i;
174
+ return map;
175
+ })();
176
+ /** @internal */
177
+ const BECH32M_CONST = 0x2bc830a3;
178
+ /** @internal */
179
+ const GEN = [0x3b6a57b2, 0x26508e6d, 0x1ea119fa, 0x3d4233dd, 0x2a1462b3];
180
+ /** @internal */
181
+ function polymod(values) {
182
+ let chk = 1;
183
+ for (const v of values) {
184
+ const b = chk >> 25;
185
+ chk = ((chk & 0x1ffffff) << 5) ^ v;
186
+ for (let i = 0; i < 5; i++)
187
+ if ((b >> i) & 1)
188
+ chk ^= GEN[i];
189
+ }
190
+ return chk;
191
+ }
192
+ /** @internal */
193
+ function hrpExpand(hrp) {
194
+ const ret = [];
195
+ for (let i = 0; i < hrp.length; i++)
196
+ ret.push(hrp.charCodeAt(i) >> 5);
197
+ ret.push(0);
198
+ for (let i = 0; i < hrp.length; i++)
199
+ ret.push(hrp.charCodeAt(i) & 31);
200
+ return ret;
201
+ }
202
+ /** @internal */
203
+ function createChecksum(hrp, data) {
204
+ const values = hrpExpand(hrp).concat(data).concat([0, 0, 0, 0, 0, 0]);
205
+ const mod = polymod(values) ^ BECH32M_CONST;
206
+ const ret = [];
207
+ for (let i = 0; i < 6; i++)
208
+ ret.push((mod >> (5 * (5 - i))) & 31);
209
+ return ret;
210
+ }
211
+ /** @internal */
212
+ function verifyChecksum(hrp, data) {
213
+ return polymod(hrpExpand(hrp).concat(data)) === BECH32M_CONST;
214
+ }
215
+ /** @internal */
216
+ function convertBits(data, fromBits, toBits, pad) {
217
+ let acc = 0;
218
+ let bits = 0;
219
+ const maxv = (1 << toBits) - 1;
220
+ const ret = [];
221
+ for (const value of data) {
222
+ acc = (acc << fromBits) | value;
223
+ bits += fromBits;
224
+ while (bits >= toBits) {
225
+ bits -= toBits;
226
+ ret.push((acc >> bits) & maxv);
227
+ }
228
+ }
229
+ if (pad) {
230
+ if (bits > 0)
231
+ ret.push((acc << (toBits - bits)) & maxv);
232
+ }
233
+ else if (bits >= fromBits || (acc << (toBits - bits)) & maxv) {
234
+ throw new InvalidPaddingError();
235
+ }
236
+ return ret;
237
+ }
238
+ //# sourceMappingURL=Bech32m.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Bech32m.js","sourceRoot":"","sources":["../../core/Bech32m.ts"],"names":[],"mappings":"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"}
package/_esm/index.js CHANGED
@@ -953,6 +953,30 @@ export * as Base58 from './core/Base58.js';
953
953
  * @category Data
954
954
  */
955
955
  export * as Base64 from './core/Base64.js';
956
+ /**
957
+ * Utility functions for [BIP-350](https://github.com/bitcoin/bips/blob/master/bip-0350.mediawiki) bech32m encoding and decoding.
958
+ *
959
+ * @example
960
+ * ### Encoding
961
+ *
962
+ * ```ts twoslash
963
+ * import { Bech32m } from 'ox'
964
+ *
965
+ * const encoded = Bech32m.encode('tempo', new Uint8Array(20))
966
+ * ```
967
+ *
968
+ * @example
969
+ * ### Decoding
970
+ *
971
+ * ```ts twoslash
972
+ * import { Bech32m } from 'ox'
973
+ *
974
+ * const { hrp, data } = Bech32m.decode('tempo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq7w9gdx')
975
+ * ```
976
+ *
977
+ * @category Data
978
+ */
979
+ export * as Bech32m from './core/Bech32m.js';
956
980
  /**
957
981
  * Utility functions for working with [EIP-7864](https://eips.ethereum.org/EIPS/eip-7864) Binary State Trees.
958
982
  *