ox 0.11.2 → 0.11.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # ox
2
2
 
3
+ ## 0.11.3
4
+
5
+ ### Patch Changes
6
+
7
+ - [`4a79129`](https://github.com/wevm/ox/commit/4a79129da654098ee28ac63b4771a47a4bb57179) Thanks [@jxom](https://github.com/jxom)! - Fixed `TokenId.compute` return value.
8
+
3
9
  ## 0.11.2
4
10
 
5
11
  ### Patch Changes
@@ -33,6 +33,6 @@ function compute(value) {
33
33
  value.sender,
34
34
  value.salt,
35
35
  ]));
36
- return Hex.concat(Hex.padRight(tip20Prefix, 12), Hex.slice(hash, 0, 8));
36
+ return Hex.toBigInt(Hex.slice(hash, 0, 8));
37
37
  }
38
38
  //# sourceMappingURL=TokenId.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenId.js","sourceRoot":"","sources":["../../tempo/TokenId.ts"],"names":[],"mappings":";;AA4BA,oBAOC;AAiBD,kCAIC;AAiBD,8BAQC;AAsBD,0BAWC;AAlHD,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,MAAM,CACf,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,EAC7B,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CACH,CAAA;AACtB,CAAC"}
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"}
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.11.2';
4
+ exports.version = '0.11.3';
5
5
  //# sourceMappingURL=version.js.map
@@ -81,20 +81,20 @@ export function toAddress(tokenId) {
81
81
  * ```ts twoslash
82
82
  * import { TokenId } from 'ox/tempo'
83
83
  *
84
- * const address = TokenId.compute({
84
+ * const id = TokenId.compute({
85
85
  * sender: '0x1234567890123456789012345678901234567890',
86
86
  * salt: '0x0000000000000000000000000000000000000000000000000000000000000001',
87
87
  * })
88
88
  * ```
89
89
  *
90
90
  * @param value - The sender address and salt.
91
- * @returns The computed TIP-20 token address.
91
+ * @returns The computed TIP-20 token id.
92
92
  */
93
93
  export function compute(value) {
94
94
  const hash = Hash.keccak256(AbiParameters.encode(AbiParameters.from('address, bytes32'), [
95
95
  value.sender,
96
96
  value.salt,
97
97
  ]));
98
- return Hex.concat(Hex.padRight(tip20Prefix, 12), Hex.slice(hash, 0, 8));
98
+ return Hex.toBigInt(Hex.slice(hash, 0, 8));
99
99
  }
100
100
  //# sourceMappingURL=TokenId.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenId.js","sourceRoot":"","sources":["../../tempo/TokenId.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAErC,MAAM,WAAW,GAAG,QAAQ,CAAA;AAK5B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,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;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,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;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,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;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,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,MAAM,CACf,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,EAAE,CAAC,EAC7B,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CACH,CAAA;AACtB,CAAC"}
1
+ {"version":3,"file":"TokenId.js","sourceRoot":"","sources":["../../tempo/TokenId.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,IAAI,MAAM,iBAAiB,CAAA;AACvC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAErC,MAAM,WAAW,GAAG,QAAQ,CAAA;AAK5B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,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;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,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;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,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;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,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"}
package/_esm/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  /** @internal */
2
- export const version = '0.11.2';
2
+ export const version = '0.11.3';
3
3
  //# sourceMappingURL=version.js.map
@@ -64,16 +64,16 @@ export declare function toAddress(tokenId: TokenIdOrAddress): Address.Address;
64
64
  * ```ts twoslash
65
65
  * import { TokenId } from 'ox/tempo'
66
66
  *
67
- * const address = TokenId.compute({
67
+ * const id = TokenId.compute({
68
68
  * sender: '0x1234567890123456789012345678901234567890',
69
69
  * salt: '0x0000000000000000000000000000000000000000000000000000000000000001',
70
70
  * })
71
71
  * ```
72
72
  *
73
73
  * @param value - The sender address and salt.
74
- * @returns The computed TIP-20 token address.
74
+ * @returns The computed TIP-20 token id.
75
75
  */
76
- export declare function compute(value: compute.Value): Address.Address;
76
+ export declare function compute(value: compute.Value): bigint;
77
77
  export declare namespace compute {
78
78
  type Value = {
79
79
  /** The salt (32 bytes). */
@@ -1 +1 @@
1
- {"version":3,"file":"TokenId.d.ts","sourceRoot":"","sources":["../../tempo/TokenId.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAE7C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAIrC,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;AAExD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,MAAM,GAAG,OAAO,CAOzE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAI7D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAQpE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAW7D;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAY,KAAK,GAAG;QAClB,2BAA2B;QAC3B,IAAI,EAAE,GAAG,CAAC,GAAG,CAAA;QACb,0BAA0B;QAC1B,MAAM,EAAE,OAAO,CAAC,OAAO,CAAA;KACxB,CAAA;CACF"}
1
+ {"version":3,"file":"TokenId.d.ts","sourceRoot":"","sources":["../../tempo/TokenId.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAE7C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAIrC,MAAM,MAAM,OAAO,GAAG,MAAM,CAAA;AAC5B,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;AAExD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,IAAI,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,MAAM,GAAG,OAAO,CAOzE;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,GAAG,OAAO,CAI7D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAQpE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,GAAG,MAAM,CAQpD;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,KAAY,KAAK,GAAG;QAClB,2BAA2B;QAC3B,IAAI,EAAE,GAAG,CAAC,GAAG,CAAA;QACb,0BAA0B;QAC1B,MAAM,EAAE,OAAO,CAAC,OAAO,CAAA;KACxB,CAAA;CACF"}
@@ -1,3 +1,3 @@
1
1
  /** @internal */
2
- export declare const version = "0.11.2";
2
+ export declare const version = "0.11.3";
3
3
  //# sourceMappingURL=version.d.ts.map
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "ox",
3
3
  "description": "Ethereum Standard Library",
4
- "version": "0.11.2",
4
+ "version": "0.11.3",
5
5
  "main": "./_cjs/index.js",
6
6
  "module": "./_esm/index.js",
7
7
  "types": "./_types/index.d.ts",
@@ -1,3 +1,4 @@
1
+ import { Hex } from 'ox'
1
2
  import { TokenId } from 'ox/tempo'
2
3
  import { expect, test } from 'vitest'
3
4
 
@@ -46,15 +47,20 @@ test('compute', () => {
46
47
  const salt2 =
47
48
  '0x0000000000000000000000000000000000000000000000000000000000000002'
48
49
 
49
- const address1 = TokenId.compute({ sender, salt: salt1 })
50
- const address2 = TokenId.compute({ sender, salt: salt2 })
50
+ const id1 = TokenId.compute({ sender, salt: salt1 })
51
+ const id2 = TokenId.compute({ sender, salt: salt2 })
52
+ const address1 = TokenId.toAddress(id1)
53
+ const address2 = TokenId.toAddress(id2)
51
54
 
52
55
  // deterministic: same inputs produce same output
53
- expect(TokenId.compute({ sender, salt: salt1 })).toBe(address1)
56
+ expect(TokenId.compute({ sender, salt: salt1 })).toBe(id1)
54
57
 
55
58
  // different salts produce different addresses
56
59
  expect(address1).not.toBe(address2)
57
60
 
61
+ // address suffix matches id
62
+ expect(Hex.slice(address1, 12)).toBe(Hex.fromNumber(id1, { size: 8 }))
63
+
58
64
  // addresses have TIP-20 prefix (0x20c0 followed by zeroes for 12 bytes total)
59
65
  expect(address1.toLowerCase().startsWith('0x20c000000000000000000000')).toBe(
60
66
  true,
package/tempo/TokenId.ts CHANGED
@@ -92,26 +92,23 @@ export function toAddress(tokenId: TokenIdOrAddress): Address.Address {
92
92
  * ```ts twoslash
93
93
  * import { TokenId } from 'ox/tempo'
94
94
  *
95
- * const address = TokenId.compute({
95
+ * const id = TokenId.compute({
96
96
  * sender: '0x1234567890123456789012345678901234567890',
97
97
  * salt: '0x0000000000000000000000000000000000000000000000000000000000000001',
98
98
  * })
99
99
  * ```
100
100
  *
101
101
  * @param value - The sender address and salt.
102
- * @returns The computed TIP-20 token address.
102
+ * @returns The computed TIP-20 token id.
103
103
  */
104
- export function compute(value: compute.Value): Address.Address {
104
+ export function compute(value: compute.Value): bigint {
105
105
  const hash = Hash.keccak256(
106
106
  AbiParameters.encode(AbiParameters.from('address, bytes32'), [
107
107
  value.sender,
108
108
  value.salt,
109
109
  ]),
110
110
  )
111
- return Hex.concat(
112
- Hex.padRight(tip20Prefix, 12),
113
- Hex.slice(hash, 0, 8),
114
- ) as Address.Address
111
+ return Hex.toBigInt(Hex.slice(hash, 0, 8))
115
112
  }
116
113
 
117
114
  export declare namespace compute {
package/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  /** @internal */
2
- export const version = '0.11.2'
2
+ export const version = '0.11.3'