ox 0.11.2 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +12 -0
- package/_cjs/core/Base64.js.map +1 -1
- package/_cjs/core/Hash.js +9 -0
- package/_cjs/core/Hash.js.map +1 -1
- package/_cjs/tempo/TokenId.js +1 -1
- package/_cjs/tempo/TokenId.js.map +1 -1
- package/_cjs/version.js +1 -1
- package/_esm/core/Base64.js +1 -1
- package/_esm/core/Base64.js.map +1 -1
- package/_esm/core/Hash.js +36 -0
- package/_esm/core/Hash.js.map +1 -1
- package/_esm/tempo/TokenId.js +3 -3
- package/_esm/tempo/TokenId.js.map +1 -1
- package/_esm/version.js +1 -1
- package/_types/core/Hash.d.ts +37 -0
- package/_types/core/Hash.d.ts.map +1 -1
- package/_types/tempo/TokenId.d.ts +3 -3
- package/_types/tempo/TokenId.d.ts.map +1 -1
- package/_types/version.d.ts +1 -1
- package/core/Base64.ts +1 -1
- package/core/Hash.ts +61 -0
- package/package.json +1 -1
- package/tempo/TokenId.test.ts +9 -3
- package/tempo/TokenId.ts +4 -7
- package/version.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# ox
|
|
2
2
|
|
|
3
|
+
## 0.12.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`f605321`](https://github.com/wevm/ox/commit/f60532162ff75c3dd19ebfa9ad1c56905fb35fb6) Thanks [@jxom](https://github.com/jxom)! - Added `Hash.hmac256` for computing HMAC-SHA256 hashes.
|
|
8
|
+
|
|
9
|
+
## 0.11.3
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`4a79129`](https://github.com/wevm/ox/commit/4a79129da654098ee28ac63b4771a47a4bb57179) Thanks [@jxom](https://github.com/jxom)! - Fixed `TokenId.compute` return value.
|
|
14
|
+
|
|
3
15
|
## 0.11.2
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/_cjs/core/Base64.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Base64.js","sourceRoot":"","sources":["../../core/Base64.ts"],"names":[],"mappings":";;AA8DA,8BAoBC;AA2DD,0BAEC;AA2DD,gCAEC;AAmCD,0BAqBC;AAoBD,sBAEC;AAoBD,4BAEC;AAhTD,oCAAmC;AAEnC,gCAA+B;AAE/B,MAAM,OAAO,GAAiB,IAAI,WAAW,EAAE,CAAA;AAC/C,MAAM,OAAO,GAAiB,IAAI,WAAW,EAAE,CAAA;AAE/C,MAAM,kBAAkB,GAAiB,MAAM,CAAC,WAAW,CACzD,KAAK,CAAC,IAAI,CACR,kEAAkE,CACnE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CACtC,CAAA;AAED,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"Base64.js","sourceRoot":"","sources":["../../core/Base64.ts"],"names":[],"mappings":"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"}
|
package/_cjs/core/Hash.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.keccak256 = keccak256;
|
|
4
|
+
exports.hmac256 = hmac256;
|
|
4
5
|
exports.ripemd160 = ripemd160;
|
|
5
6
|
exports.sha256 = sha256;
|
|
6
7
|
exports.validate = validate;
|
|
8
|
+
const hmac_1 = require("@noble/hashes/hmac");
|
|
7
9
|
const ripemd160_1 = require("@noble/hashes/ripemd160");
|
|
8
10
|
const sha3_1 = require("@noble/hashes/sha3");
|
|
9
11
|
const sha256_1 = require("@noble/hashes/sha256");
|
|
@@ -16,6 +18,13 @@ function keccak256(value, options = {}) {
|
|
|
16
18
|
return bytes;
|
|
17
19
|
return Hex.fromBytes(bytes);
|
|
18
20
|
}
|
|
21
|
+
function hmac256(key, value, options = {}) {
|
|
22
|
+
const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options;
|
|
23
|
+
const bytes = (0, hmac_1.hmac)(sha256_1.sha256, Bytes.from(key), Bytes.from(value));
|
|
24
|
+
if (as === 'Bytes')
|
|
25
|
+
return bytes;
|
|
26
|
+
return Hex.fromBytes(bytes);
|
|
27
|
+
}
|
|
19
28
|
function ripemd160(value, options = {}) {
|
|
20
29
|
const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options;
|
|
21
30
|
const bytes = (0, ripemd160_1.ripemd160)(Bytes.from(value));
|
package/_cjs/core/Hash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hash.js","sourceRoot":"","sources":["../../core/Hash.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"Hash.js","sourceRoot":"","sources":["../../core/Hash.ts"],"names":[],"mappings":";;AA6CA,8BAaC;AA8CD,0BAcC;AAmCD,8BAaC;AAmCD,wBAaC;AAmCD,4BAEC;AA3PD,6CAAyC;AACzC,uDAAsE;AACtE,6CAAkE;AAClE,iDAA6D;AAC7D,oCAAmC;AAEnC,gCAA+B;AAuC/B,SAAgB,SAAS,CAMvB,KAAoC,EACpC,UAAiC,EAAE;IAEnC,MAAM,EAAE,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAAA;IACpE,MAAM,KAAK,GAAG,IAAA,iBAAe,EAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAChD,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,KAAc,CAAA;IACzC,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAU,CAAA;AACtC,CAAC;AA8CD,SAAgB,OAAO,CAMrB,GAA0B,EAC1B,KAAoC,EACpC,UAA+B,EAAE;IAEjC,MAAM,EAAE,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAAA;IACpE,MAAM,KAAK,GAAG,IAAA,WAAI,EAAC,eAAY,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACpE,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,KAAc,CAAA;IACzC,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAU,CAAA;AACtC,CAAC;AAmCD,SAAgB,SAAS,CAMvB,KAAoC,EACpC,UAAiC,EAAE;IAEnC,MAAM,EAAE,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAAA;IACpE,MAAM,KAAK,GAAG,IAAA,qBAAe,EAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAChD,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,KAAc,CAAA;IACzC,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAU,CAAA;AACtC,CAAC;AAmCD,SAAgB,MAAM,CAMpB,KAAoC,EACpC,UAA8B,EAAE;IAEhC,MAAM,EAAE,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAAA;IACpE,MAAM,KAAK,GAAG,IAAA,eAAY,EAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7C,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,KAAc,CAAA;IACzC,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAU,CAAA;AACtC,CAAC;AAmCD,SAAgB,QAAQ,CAAC,KAAa;IACpC,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;AACtD,CAAC"}
|
package/_cjs/tempo/TokenId.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenId.js","sourceRoot":"","sources":["../../tempo/TokenId.ts"],"names":[],"mappings":";;AA4BA,oBAOC;AAiBD,kCAIC;AAiBD,8BAQC;AAsBD,
|
|
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
package/_esm/core/Base64.js
CHANGED
|
@@ -3,7 +3,7 @@ import * as Hex from './Hex.js';
|
|
|
3
3
|
const encoder = /*#__PURE__*/ new TextEncoder();
|
|
4
4
|
const decoder = /*#__PURE__*/ new TextDecoder();
|
|
5
5
|
const integerToCharacter = /*#__PURE__*/ Object.fromEntries(Array.from('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/').map((a, i) => [i, a.charCodeAt(0)]));
|
|
6
|
-
const characterToInteger =
|
|
6
|
+
const characterToInteger = {
|
|
7
7
|
...Object.fromEntries(Array.from('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/').map((a, i) => [a.charCodeAt(0), i])),
|
|
8
8
|
['='.charCodeAt(0)]: 0,
|
|
9
9
|
['-'.charCodeAt(0)]: 62,
|
package/_esm/core/Base64.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Base64.js","sourceRoot":"","sources":["../../core/Base64.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,WAAW,EAAE,CAAA;AAC/C,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,WAAW,EAAE,CAAA;AAE/C,MAAM,kBAAkB,GAAG,aAAa,CAAC,MAAM,CAAC,WAAW,CACzD,KAAK,CAAC,IAAI,CACR,kEAAkE,CACnE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CACtC,CAAA;AAED,MAAM,kBAAkB,GAAG
|
|
1
|
+
{"version":3,"file":"Base64.js","sourceRoot":"","sources":["../../core/Base64.ts"],"names":[],"mappings":"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"}
|
package/_esm/core/Hash.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { hmac } from '@noble/hashes/hmac';
|
|
1
2
|
import { ripemd160 as noble_ripemd160 } from '@noble/hashes/ripemd160';
|
|
2
3
|
import { keccak_256 as noble_keccak256 } from '@noble/hashes/sha3';
|
|
3
4
|
import { sha256 as noble_sha256 } from '@noble/hashes/sha256';
|
|
@@ -47,6 +48,41 @@ export function keccak256(value, options = {}) {
|
|
|
47
48
|
return bytes;
|
|
48
49
|
return Hex.fromBytes(bytes);
|
|
49
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Calculates the [HMAC-SHA256](https://en.wikipedia.org/wiki/HMAC) of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
53
|
+
*
|
|
54
|
+
* This function is a re-export of `hmac` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts twoslash
|
|
58
|
+
* import { Hash, Hex } from 'ox'
|
|
59
|
+
*
|
|
60
|
+
* Hash.hmac256(Hex.fromString('key'), '0xdeadbeef')
|
|
61
|
+
* // @log: '0x...'
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ### Configure Return Type
|
|
66
|
+
*
|
|
67
|
+
* ```ts twoslash
|
|
68
|
+
* import { Hash, Hex } from 'ox'
|
|
69
|
+
*
|
|
70
|
+
* Hash.hmac256(Hex.fromString('key'), '0xdeadbeef', { as: 'Bytes' })
|
|
71
|
+
* // @log: Uint8Array [...]
|
|
72
|
+
* ```
|
|
73
|
+
*
|
|
74
|
+
* @param key - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} key.
|
|
75
|
+
* @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
76
|
+
* @param options - Options.
|
|
77
|
+
* @returns HMAC-SHA256 hash.
|
|
78
|
+
*/
|
|
79
|
+
export function hmac256(key, value, options = {}) {
|
|
80
|
+
const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options;
|
|
81
|
+
const bytes = hmac(noble_sha256, Bytes.from(key), Bytes.from(value));
|
|
82
|
+
if (as === 'Bytes')
|
|
83
|
+
return bytes;
|
|
84
|
+
return Hex.fromBytes(bytes);
|
|
85
|
+
}
|
|
50
86
|
/**
|
|
51
87
|
* Calculates the [Ripemd160](https://en.wikipedia.org/wiki/RIPEMD) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
52
88
|
*
|
package/_esm/core/Hash.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hash.js","sourceRoot":"","sources":["../../core/Hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,SAAS,CAMvB,KAAoC,EACpC,UAAiC,EAAE;IAEnC,MAAM,EAAE,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAAA;IACpE,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAChD,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,KAAc,CAAA;IACzC,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAU,CAAA;AACtC,CAAC;AAkBD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,SAAS,CAMvB,KAAoC,EACpC,UAAiC,EAAE;IAEnC,MAAM,EAAE,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAAA;IACpE,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAChD,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,KAAc,CAAA;IACzC,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAU,CAAA;AACtC,CAAC;AAkBD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,MAAM,CAMpB,KAAoC,EACpC,UAA8B,EAAE;IAEhC,MAAM,EAAE,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAAA;IACpE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7C,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,KAAc,CAAA;IACzC,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAU,CAAA;AACtC,CAAC;AAkBD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;AACtD,CAAC"}
|
|
1
|
+
{"version":3,"file":"Hash.js","sourceRoot":"","sources":["../../core/Hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAA;AACzC,OAAO,EAAE,SAAS,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAA;AACtE,OAAO,EAAE,UAAU,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAClE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,SAAS,CAMvB,KAAoC,EACpC,UAAiC,EAAE;IAEnC,MAAM,EAAE,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAAA;IACpE,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAChD,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,KAAc,CAAA;IACzC,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAU,CAAA;AACtC,CAAC;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,UAAU,OAAO,CAMrB,GAA0B,EAC1B,KAAoC,EACpC,UAA+B,EAAE;IAEjC,MAAM,EAAE,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAAA;IACpE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IACpE,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,KAAc,CAAA;IACzC,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAU,CAAA;AACtC,CAAC;AAkBD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,SAAS,CAMvB,KAAoC,EACpC,UAAiC,EAAE;IAEnC,MAAM,EAAE,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAAA;IACpE,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAChD,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,KAAc,CAAA;IACzC,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAU,CAAA;AACtC,CAAC;AAkBD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,MAAM,CAMpB,KAAoC,EACpC,UAA8B,EAAE;IAEhC,MAAM,EAAE,EAAE,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,OAAO,CAAA;IACpE,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;IAC7C,IAAI,EAAE,KAAK,OAAO;QAAE,OAAO,KAAc,CAAA;IACzC,OAAO,GAAG,CAAC,SAAS,CAAC,KAAK,CAAU,CAAA;AACtC,CAAC;AAkBD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAA;AACtD,CAAC"}
|
package/_esm/tempo/TokenId.js
CHANGED
|
@@ -81,20 +81,20 @@ export function toAddress(tokenId) {
|
|
|
81
81
|
* ```ts twoslash
|
|
82
82
|
* import { TokenId } from 'ox/tempo'
|
|
83
83
|
*
|
|
84
|
-
* const
|
|
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
|
|
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.
|
|
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,
|
|
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
package/_types/core/Hash.d.ts
CHANGED
|
@@ -47,6 +47,43 @@ export declare namespace keccak256 {
|
|
|
47
47
|
type ReturnType<as extends 'Hex' | 'Bytes' = 'Hex' | 'Bytes'> = (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
48
48
|
type ErrorType = Bytes.from.ErrorType | Hex.fromBytes.ErrorType | Errors.GlobalErrorType;
|
|
49
49
|
}
|
|
50
|
+
/**
|
|
51
|
+
* Calculates the [HMAC-SHA256](https://en.wikipedia.org/wiki/HMAC) of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
52
|
+
*
|
|
53
|
+
* This function is a re-export of `hmac` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```ts twoslash
|
|
57
|
+
* import { Hash, Hex } from 'ox'
|
|
58
|
+
*
|
|
59
|
+
* Hash.hmac256(Hex.fromString('key'), '0xdeadbeef')
|
|
60
|
+
* // @log: '0x...'
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ### Configure Return Type
|
|
65
|
+
*
|
|
66
|
+
* ```ts twoslash
|
|
67
|
+
* import { Hash, Hex } from 'ox'
|
|
68
|
+
*
|
|
69
|
+
* Hash.hmac256(Hex.fromString('key'), '0xdeadbeef', { as: 'Bytes' })
|
|
70
|
+
* // @log: Uint8Array [...]
|
|
71
|
+
* ```
|
|
72
|
+
*
|
|
73
|
+
* @param key - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} key.
|
|
74
|
+
* @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
75
|
+
* @param options - Options.
|
|
76
|
+
* @returns HMAC-SHA256 hash.
|
|
77
|
+
*/
|
|
78
|
+
export declare function hmac256<value extends Hex.Hex | Bytes.Bytes, as extends 'Hex' | 'Bytes' = (value extends Hex.Hex ? 'Hex' : never) | (value extends Bytes.Bytes ? 'Bytes' : never)>(key: Hex.Hex | Bytes.Bytes, value: value | Hex.Hex | Bytes.Bytes, options?: hmac256.Options<as>): hmac256.ReturnType<as>;
|
|
79
|
+
export declare namespace hmac256 {
|
|
80
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex' | 'Bytes'> = {
|
|
81
|
+
/** The return type. @default 'Hex' */
|
|
82
|
+
as?: as | 'Hex' | 'Bytes' | undefined;
|
|
83
|
+
};
|
|
84
|
+
type ReturnType<as extends 'Hex' | 'Bytes' = 'Hex' | 'Bytes'> = (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
85
|
+
type ErrorType = Bytes.from.ErrorType | Hex.fromBytes.ErrorType | Errors.GlobalErrorType;
|
|
86
|
+
}
|
|
50
87
|
/**
|
|
51
88
|
* Calculates the [Ripemd160](https://en.wikipedia.org/wiki/RIPEMD) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
52
89
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Hash.d.ts","sourceRoot":"","sources":["../../core/Hash.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Hash.d.ts","sourceRoot":"","sources":["../../core/Hash.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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
|
|
74
|
+
* @returns The computed TIP-20 token id.
|
|
75
75
|
*/
|
|
76
|
-
export declare function compute(value: compute.Value):
|
|
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,
|
|
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"}
|
package/_types/version.d.ts
CHANGED
package/core/Base64.ts
CHANGED
|
@@ -11,7 +11,7 @@ const integerToCharacter = /*#__PURE__*/ Object.fromEntries(
|
|
|
11
11
|
).map((a, i) => [i, a.charCodeAt(0)]),
|
|
12
12
|
)
|
|
13
13
|
|
|
14
|
-
const characterToInteger =
|
|
14
|
+
const characterToInteger = {
|
|
15
15
|
...Object.fromEntries(
|
|
16
16
|
Array.from(
|
|
17
17
|
'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',
|
package/core/Hash.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { hmac } from '@noble/hashes/hmac'
|
|
1
2
|
import { ripemd160 as noble_ripemd160 } from '@noble/hashes/ripemd160'
|
|
2
3
|
import { keccak_256 as noble_keccak256 } from '@noble/hashes/sha3'
|
|
3
4
|
import { sha256 as noble_sha256 } from '@noble/hashes/sha256'
|
|
@@ -73,6 +74,66 @@ export declare namespace keccak256 {
|
|
|
73
74
|
| Errors.GlobalErrorType
|
|
74
75
|
}
|
|
75
76
|
|
|
77
|
+
/**
|
|
78
|
+
* Calculates the [HMAC-SHA256](https://en.wikipedia.org/wiki/HMAC) of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
79
|
+
*
|
|
80
|
+
* This function is a re-export of `hmac` from [`@noble/hashes`](https://github.com/paulmillr/noble-hashes), an audited & minimal JS hashing library.
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```ts twoslash
|
|
84
|
+
* import { Hash, Hex } from 'ox'
|
|
85
|
+
*
|
|
86
|
+
* Hash.hmac256(Hex.fromString('key'), '0xdeadbeef')
|
|
87
|
+
* // @log: '0x...'
|
|
88
|
+
* ```
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ### Configure Return Type
|
|
92
|
+
*
|
|
93
|
+
* ```ts twoslash
|
|
94
|
+
* import { Hash, Hex } from 'ox'
|
|
95
|
+
*
|
|
96
|
+
* Hash.hmac256(Hex.fromString('key'), '0xdeadbeef', { as: 'Bytes' })
|
|
97
|
+
* // @log: Uint8Array [...]
|
|
98
|
+
* ```
|
|
99
|
+
*
|
|
100
|
+
* @param key - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} key.
|
|
101
|
+
* @param value - {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
102
|
+
* @param options - Options.
|
|
103
|
+
* @returns HMAC-SHA256 hash.
|
|
104
|
+
*/
|
|
105
|
+
export function hmac256<
|
|
106
|
+
value extends Hex.Hex | Bytes.Bytes,
|
|
107
|
+
as extends 'Hex' | 'Bytes' =
|
|
108
|
+
| (value extends Hex.Hex ? 'Hex' : never)
|
|
109
|
+
| (value extends Bytes.Bytes ? 'Bytes' : never),
|
|
110
|
+
>(
|
|
111
|
+
key: Hex.Hex | Bytes.Bytes,
|
|
112
|
+
value: value | Hex.Hex | Bytes.Bytes,
|
|
113
|
+
options: hmac256.Options<as> = {},
|
|
114
|
+
): hmac256.ReturnType<as> {
|
|
115
|
+
const { as = typeof value === 'string' ? 'Hex' : 'Bytes' } = options
|
|
116
|
+
const bytes = hmac(noble_sha256, Bytes.from(key), Bytes.from(value))
|
|
117
|
+
if (as === 'Bytes') return bytes as never
|
|
118
|
+
return Hex.fromBytes(bytes) as never
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export declare namespace hmac256 {
|
|
122
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex' | 'Bytes'> = {
|
|
123
|
+
/** The return type. @default 'Hex' */
|
|
124
|
+
as?: as | 'Hex' | 'Bytes' | undefined
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
type ReturnType<as extends 'Hex' | 'Bytes' = 'Hex' | 'Bytes'> =
|
|
128
|
+
| (as extends 'Bytes' ? Bytes.Bytes : never)
|
|
129
|
+
| (as extends 'Hex' ? Hex.Hex : never)
|
|
130
|
+
|
|
131
|
+
type ErrorType =
|
|
132
|
+
| Bytes.from.ErrorType
|
|
133
|
+
| Hex.fromBytes.ErrorType
|
|
134
|
+
| Errors.GlobalErrorType
|
|
135
|
+
}
|
|
136
|
+
|
|
76
137
|
/**
|
|
77
138
|
* Calculates the [Ripemd160](https://en.wikipedia.org/wiki/RIPEMD) hash of a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value.
|
|
78
139
|
*
|
package/package.json
CHANGED
package/tempo/TokenId.test.ts
CHANGED
|
@@ -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
|
|
50
|
-
const
|
|
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(
|
|
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
|
|
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
|
|
102
|
+
* @returns The computed TIP-20 token id.
|
|
103
103
|
*/
|
|
104
|
-
export function compute(value: compute.Value):
|
|
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.
|
|
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.
|
|
2
|
+
export const version = '0.12.0'
|