tempo.ts 0.7.5 → 0.8.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 +32 -0
- package/dist/chains.d.ts +6 -20
- package/dist/chains.d.ts.map +1 -1
- package/dist/chains.js +14 -15
- package/dist/chains.js.map +1 -1
- package/dist/ox/KeyAuthorization.d.ts +356 -0
- package/dist/ox/KeyAuthorization.d.ts.map +1 -0
- package/dist/ox/KeyAuthorization.js +360 -0
- package/dist/ox/KeyAuthorization.js.map +1 -0
- package/dist/ox/SignatureEnvelope.d.ts +21 -6
- package/dist/ox/SignatureEnvelope.d.ts.map +1 -1
- package/dist/ox/SignatureEnvelope.js +43 -3
- package/dist/ox/SignatureEnvelope.js.map +1 -1
- package/dist/ox/Transaction.d.ts +5 -1
- package/dist/ox/Transaction.d.ts.map +1 -1
- package/dist/ox/Transaction.js +5 -0
- package/dist/ox/Transaction.js.map +1 -1
- package/dist/ox/TransactionEnvelopeAA.d.ts +9 -0
- package/dist/ox/TransactionEnvelopeAA.d.ts.map +1 -1
- package/dist/ox/TransactionEnvelopeAA.js +17 -4
- package/dist/ox/TransactionEnvelopeAA.js.map +1 -1
- package/dist/ox/TransactionRequest.d.ts +7 -1
- package/dist/ox/TransactionRequest.d.ts.map +1 -1
- package/dist/ox/TransactionRequest.js +12 -0
- package/dist/ox/TransactionRequest.js.map +1 -1
- package/dist/ox/index.d.ts +1 -0
- package/dist/ox/index.d.ts.map +1 -1
- package/dist/ox/index.js +1 -0
- package/dist/ox/index.js.map +1 -1
- package/dist/prool/Instance.js +1 -1
- package/dist/prool/Instance.js.map +1 -1
- package/{src/prool/internal → dist/prool}/chain.json +4 -2
- package/dist/viem/Abis.d.ts +319 -6
- package/dist/viem/Abis.d.ts.map +1 -1
- package/dist/viem/Abis.js +199 -7
- package/dist/viem/Abis.js.map +1 -1
- package/dist/viem/Account.d.ts +103 -14
- package/dist/viem/Account.d.ts.map +1 -1
- package/dist/viem/Account.js +177 -23
- package/dist/viem/Account.js.map +1 -1
- package/dist/viem/Actions/account.d.ts.map +1 -1
- package/dist/viem/Actions/account.js +4 -5
- package/dist/viem/Actions/account.js.map +1 -1
- package/dist/viem/Actions/amm.d.ts +84 -32
- package/dist/viem/Actions/amm.d.ts.map +1 -1
- package/dist/viem/Actions/amm.js +12 -32
- package/dist/viem/Actions/amm.js.map +1 -1
- package/dist/viem/Actions/dex.d.ts +156 -4
- package/dist/viem/Actions/dex.d.ts.map +1 -1
- package/dist/viem/Actions/fee.d.ts +4 -0
- package/dist/viem/Actions/fee.d.ts.map +1 -1
- package/dist/viem/Actions/reward.d.ts +78 -0
- package/dist/viem/Actions/reward.d.ts.map +1 -1
- package/dist/viem/Actions/token.d.ts +585 -0
- package/dist/viem/Actions/token.d.ts.map +1 -1
- package/dist/viem/Actions/token.js +2 -2
- package/dist/viem/Actions/token.js.map +1 -1
- package/dist/viem/Addresses.d.ts +1 -1
- package/dist/viem/Addresses.d.ts.map +1 -1
- package/dist/viem/Addresses.js +1 -1
- package/dist/viem/Addresses.js.map +1 -1
- package/dist/viem/Chain.d.ts +35 -0
- package/dist/viem/Chain.d.ts.map +1 -1
- package/dist/viem/Chain.js +37 -0
- package/dist/viem/Chain.js.map +1 -1
- package/dist/viem/Decorator.d.ts +193 -16
- package/dist/viem/Decorator.d.ts.map +1 -1
- package/dist/viem/Decorator.js +7 -0
- package/dist/viem/Decorator.js.map +1 -1
- package/dist/viem/Formatters.d.ts.map +1 -1
- package/dist/viem/Formatters.js +8 -7
- package/dist/viem/Formatters.js.map +1 -1
- package/dist/viem/Storage.d.ts +1 -0
- package/dist/viem/Storage.d.ts.map +1 -1
- package/dist/viem/Storage.js +21 -0
- package/dist/viem/Storage.js.map +1 -1
- package/dist/viem/TokenIds.d.ts +1 -1
- package/dist/viem/TokenIds.d.ts.map +1 -1
- package/dist/viem/TokenIds.js +1 -1
- package/dist/viem/TokenIds.js.map +1 -1
- package/dist/viem/Transaction.d.ts +9 -1
- package/dist/viem/Transaction.d.ts.map +1 -1
- package/dist/viem/Transaction.js +2 -1
- package/dist/viem/Transaction.js.map +1 -1
- package/dist/viem/WebAuthnP256.d.ts +4 -1
- package/dist/viem/WebAuthnP256.d.ts.map +1 -1
- package/dist/viem/WebAuthnP256.js +3 -1
- package/dist/viem/WebAuthnP256.js.map +1 -1
- package/dist/wagmi/Actions/amm.d.ts +6 -16
- package/dist/wagmi/Actions/amm.d.ts.map +1 -1
- package/dist/wagmi/Actions/amm.js +6 -16
- package/dist/wagmi/Actions/amm.js.map +1 -1
- package/dist/wagmi/Connector.d.ts +25 -8
- package/dist/wagmi/Connector.d.ts.map +1 -1
- package/dist/wagmi/Connector.js +120 -27
- package/dist/wagmi/Connector.js.map +1 -1
- package/dist/wagmi/Hooks/amm.d.ts +6 -16
- package/dist/wagmi/Hooks/amm.d.ts.map +1 -1
- package/dist/wagmi/Hooks/amm.js +6 -16
- package/dist/wagmi/Hooks/amm.js.map +1 -1
- package/package.json +3 -2
- package/src/chains.ts +14 -15
- package/src/ox/KeyAuthorization.test.ts +1332 -0
- package/src/ox/KeyAuthorization.ts +542 -0
- package/src/ox/SignatureEnvelope.test.ts +624 -0
- package/src/ox/SignatureEnvelope.ts +89 -9
- package/src/ox/Transaction.test.ts +214 -0
- package/src/ox/Transaction.ts +13 -1
- package/src/ox/TransactionEnvelopeAA.test.ts +164 -4
- package/src/ox/TransactionEnvelopeAA.ts +36 -3
- package/src/ox/TransactionRequest.ts +22 -1
- package/src/ox/e2e.test.ts +612 -5
- package/src/ox/index.ts +1 -0
- package/src/prool/Instance.ts +1 -1
- package/src/prool/chain.json +238 -0
- package/src/server/Handler.test.ts +20 -36
- package/src/viem/Abis.ts +200 -7
- package/src/viem/Account.test.ts +444 -0
- package/src/viem/Account.ts +355 -42
- package/src/viem/Actions/account.ts +3 -5
- package/src/viem/Actions/amm.test.ts +220 -1
- package/src/viem/Actions/amm.ts +12 -32
- package/src/viem/Actions/token.test.ts +8 -8
- package/src/viem/Actions/token.ts +2 -2
- package/src/viem/Addresses.ts +1 -1
- package/src/viem/Chain.test.ts +168 -0
- package/src/viem/Chain.ts +37 -1
- package/src/viem/Decorator.ts +214 -16
- package/src/viem/Formatters.ts +8 -7
- package/src/viem/Storage.ts +22 -0
- package/src/viem/TokenIds.ts +1 -1
- package/src/viem/Transaction.ts +14 -2
- package/src/viem/WebAuthnP256.ts +8 -2
- package/src/viem/e2e.test.ts +299 -96
- package/src/wagmi/Actions/amm.test.ts +93 -2
- package/src/wagmi/Actions/amm.ts +6 -16
- package/src/wagmi/Connector.test.ts +1 -1
- package/src/wagmi/Connector.ts +184 -54
- package/src/wagmi/Hooks/amm.test.ts +335 -0
- package/src/wagmi/Hooks/amm.ts +6 -16
- package/src/wagmi/Hooks/fee.test.ts +10 -4
- package/src/wagmi/Hooks/token.test.ts +0 -488
- package/dist/viem/internal/account.d.ts +0 -21
- package/dist/viem/internal/account.d.ts.map +0 -1
- package/dist/viem/internal/account.js +0 -61
- package/dist/viem/internal/account.js.map +0 -1
- package/src/viem/internal/account.ts +0 -89
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# tempo.ts
|
|
2
2
|
|
|
3
|
+
## 0.8.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#84](https://github.com/tempoxyz/tempo-ts/pull/84) [`4524445`](https://github.com/tempoxyz/tempo-ts/commit/45244456dda69c590c912a1ea914abcdf02b2f61) Thanks [@jxom](https://github.com/jxom)! - **Breaking:** Renamed `tempoDev` chain to `tempoDevnet`.
|
|
8
|
+
|
|
9
|
+
- [#84](https://github.com/tempoxyz/tempo-ts/pull/84) [`4524445`](https://github.com/tempoxyz/tempo-ts/commit/45244456dda69c590c912a1ea914abcdf02b2f61) Thanks [@jxom](https://github.com/jxom)! - **Breaking:** Renamed `linkingUsd` to `pathUsd`.
|
|
10
|
+
|
|
11
|
+
- [#84](https://github.com/tempoxyz/tempo-ts/pull/84) [`4524445`](https://github.com/tempoxyz/tempo-ts/commit/45244456dda69c590c912a1ea914abcdf02b2f61) Thanks [@jxom](https://github.com/jxom)! - **Breaking:** Removed `createAccount` capability from `webAuthn` connector. Use `type: 'sign-up'` instead.
|
|
12
|
+
|
|
13
|
+
- [#84](https://github.com/tempoxyz/tempo-ts/pull/84) [`4524445`](https://github.com/tempoxyz/tempo-ts/commit/45244456dda69c590c912a1ea914abcdf02b2f61) Thanks [@jxom](https://github.com/jxom)! - **Breaking:** Removed `tempoAndantino` chain. Use `tempoTestnet` instead.
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- [#84](https://github.com/tempoxyz/tempo-ts/pull/84) [`4524445`](https://github.com/tempoxyz/tempo-ts/commit/45244456dda69c590c912a1ea914abcdf02b2f61) Thanks [@jxom](https://github.com/jxom)! - `tempo.ts/ox`: Added `keychain` type to `SignatureEnvelope`.
|
|
18
|
+
|
|
19
|
+
- [#84](https://github.com/tempoxyz/tempo-ts/pull/84) [`4524445`](https://github.com/tempoxyz/tempo-ts/commit/45244456dda69c590c912a1ea914abcdf02b2f61) Thanks [@jxom](https://github.com/jxom)! - `tempo.ts/ox`: Added `KeyAuthorization` module.
|
|
20
|
+
|
|
21
|
+
- [#84](https://github.com/tempoxyz/tempo-ts/pull/84) [`4524445`](https://github.com/tempoxyz/tempo-ts/commit/45244456dda69c590c912a1ea914abcdf02b2f61) Thanks [@jxom](https://github.com/jxom)! - `tempo.ts/viem`: Added `signKeyAuthorization` function to the `Account` to sign over key authorizations.
|
|
22
|
+
|
|
23
|
+
- [#84](https://github.com/tempoxyz/tempo-ts/pull/84) [`4524445`](https://github.com/tempoxyz/tempo-ts/commit/45244456dda69c590c912a1ea914abcdf02b2f61) Thanks [@jxom](https://github.com/jxom)! - `tempo.ts/viem`: Added `access` attribute to `Account` to indicate if the account is an "access key" variant.
|
|
24
|
+
|
|
25
|
+
- [#84](https://github.com/tempoxyz/tempo-ts/pull/84) [`4524445`](https://github.com/tempoxyz/tempo-ts/commit/45244456dda69c590c912a1ea914abcdf02b2f61) Thanks [@jxom](https://github.com/jxom)! - `tempo.ts/ox`: Added `keyAuthorization` attribute to `Transaction` & `TransactionEnvelopeAA`.
|
|
26
|
+
|
|
27
|
+
- [#84](https://github.com/tempoxyz/tempo-ts/pull/84) [`4524445`](https://github.com/tempoxyz/tempo-ts/commit/45244456dda69c590c912a1ea914abcdf02b2f61) Thanks [@jxom](https://github.com/jxom)! - `tempo.ts/wagmi`: Added `grantAccessKey` attribute to the `webAuthn` connector.
|
|
28
|
+
|
|
29
|
+
## 0.7.6
|
|
30
|
+
|
|
31
|
+
### Patch Changes
|
|
32
|
+
|
|
33
|
+
- [#96](https://github.com/tempoxyz/tempo-ts/pull/96) [`02c4885`](https://github.com/tempoxyz/tempo-ts/commit/02c48851cb11d664fc974157c31c2cb6fb478542) Thanks [@gorried](https://github.com/gorried)! - Adds FeeAMM decorators for burn, rebalanceSwap, and associated watch events
|
|
34
|
+
|
|
3
35
|
## 0.7.5
|
|
4
36
|
|
|
5
37
|
### Patch Changes
|
package/dist/chains.d.ts
CHANGED
|
@@ -1,20 +1,6 @@
|
|
|
1
1
|
import * as Chain from './viem/Chain.js';
|
|
2
|
-
export declare const
|
|
2
|
+
export declare const tempoDevnet: Chain.define.ReturnValue<{
|
|
3
3
|
readonly id: 42429;
|
|
4
|
-
readonly name: "Tempo Andantino";
|
|
5
|
-
readonly nativeCurrency: {
|
|
6
|
-
readonly name: "USD";
|
|
7
|
-
readonly symbol: "USD";
|
|
8
|
-
readonly decimals: 6;
|
|
9
|
-
};
|
|
10
|
-
readonly rpcUrls: {
|
|
11
|
-
readonly default: {
|
|
12
|
-
readonly http: readonly ["https://rpc.testnet.tempo.xyz"];
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
}>;
|
|
16
|
-
export declare const tempoDev: Chain.define.ReturnValue<{
|
|
17
|
-
readonly id: 42427;
|
|
18
4
|
readonly name: "Tempo Devnet";
|
|
19
5
|
readonly nativeCurrency: {
|
|
20
6
|
readonly name: "USD";
|
|
@@ -23,7 +9,7 @@ export declare const tempoDev: Chain.define.ReturnValue<{
|
|
|
23
9
|
};
|
|
24
10
|
readonly rpcUrls: {
|
|
25
11
|
readonly default: {
|
|
26
|
-
readonly http: readonly ["https://devnet.
|
|
12
|
+
readonly http: readonly ["https://rpc.devnet.tempo.xyz"];
|
|
27
13
|
};
|
|
28
14
|
};
|
|
29
15
|
}>;
|
|
@@ -41,9 +27,9 @@ export declare const tempoLocal: Chain.define.ReturnValue<{
|
|
|
41
27
|
};
|
|
42
28
|
};
|
|
43
29
|
}>;
|
|
44
|
-
export declare const
|
|
30
|
+
export declare const tempoTestnet: Chain.define.ReturnValue<{
|
|
45
31
|
readonly id: 42429;
|
|
46
|
-
readonly name: "Tempo
|
|
32
|
+
readonly name: "Tempo Testnet";
|
|
47
33
|
readonly nativeCurrency: {
|
|
48
34
|
readonly name: "USD";
|
|
49
35
|
readonly symbol: "USD";
|
|
@@ -55,9 +41,9 @@ export declare const tempo: Chain.define.ReturnValue<{
|
|
|
55
41
|
};
|
|
56
42
|
};
|
|
57
43
|
}>;
|
|
58
|
-
export declare const
|
|
44
|
+
export declare const tempo: Chain.define.ReturnValue<{
|
|
59
45
|
readonly id: 42429;
|
|
60
|
-
readonly name: "Tempo
|
|
46
|
+
readonly name: "Tempo Testnet";
|
|
61
47
|
readonly nativeCurrency: {
|
|
62
48
|
readonly name: "USD";
|
|
63
49
|
readonly symbol: "USD";
|
package/dist/chains.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AAExC,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AAExC,eAAO,MAAM,WAAW;;;;;;;;;;;;;EAatB,CAAA;AAEF,eAAO,MAAM,UAAU;;;;;;;;;;;;;EAWrB,CAAA;AAEF,eAAO,MAAM,YAAY;;;;;;;;;;;;;EAWvB,CAAA;AAEF,eAAO,MAAM,KAAK;;;;;;;;;;;;;EAA6B,CAAA"}
|
package/dist/chains.js
CHANGED
|
@@ -1,42 +1,41 @@
|
|
|
1
1
|
import * as Chain from './viem/Chain.js';
|
|
2
|
-
export const
|
|
2
|
+
export const tempoDevnet = /*#__PURE__*/ Chain.define({
|
|
3
3
|
id: 42429,
|
|
4
|
-
name: 'Tempo
|
|
4
|
+
name: 'Tempo Devnet',
|
|
5
5
|
nativeCurrency: {
|
|
6
6
|
name: 'USD',
|
|
7
7
|
symbol: 'USD',
|
|
8
8
|
decimals: 6,
|
|
9
9
|
},
|
|
10
10
|
rpcUrls: {
|
|
11
|
-
default: {
|
|
11
|
+
default: {
|
|
12
|
+
http: ['https://rpc.devnet.tempo.xyz'],
|
|
13
|
+
},
|
|
12
14
|
},
|
|
13
15
|
});
|
|
14
|
-
export const
|
|
15
|
-
id:
|
|
16
|
-
name: 'Tempo
|
|
16
|
+
export const tempoLocal = /*#__PURE__*/ Chain.define({
|
|
17
|
+
id: 1337,
|
|
18
|
+
name: 'Tempo',
|
|
17
19
|
nativeCurrency: {
|
|
18
20
|
name: 'USD',
|
|
19
21
|
symbol: 'USD',
|
|
20
22
|
decimals: 6,
|
|
21
23
|
},
|
|
22
24
|
rpcUrls: {
|
|
23
|
-
default: {
|
|
24
|
-
http: ['https://devnet.tempoxyz.dev'],
|
|
25
|
-
},
|
|
25
|
+
default: { http: ['http://localhost:8545'] },
|
|
26
26
|
},
|
|
27
27
|
});
|
|
28
|
-
export const
|
|
29
|
-
id:
|
|
30
|
-
name: 'Tempo',
|
|
28
|
+
export const tempoTestnet = /*#__PURE__*/ Chain.define({
|
|
29
|
+
id: 42429,
|
|
30
|
+
name: 'Tempo Testnet',
|
|
31
31
|
nativeCurrency: {
|
|
32
32
|
name: 'USD',
|
|
33
33
|
symbol: 'USD',
|
|
34
34
|
decimals: 6,
|
|
35
35
|
},
|
|
36
36
|
rpcUrls: {
|
|
37
|
-
default: { http: ['
|
|
37
|
+
default: { http: ['https://rpc.testnet.tempo.xyz'] },
|
|
38
38
|
},
|
|
39
39
|
});
|
|
40
|
-
export const tempo = /*#__PURE__*/
|
|
41
|
-
export const tempoTestnet = /*#__PURE__*/ tempoAndantino;
|
|
40
|
+
export const tempo = /*#__PURE__*/ tempoTestnet;
|
|
42
41
|
//# sourceMappingURL=chains.js.map
|
package/dist/chains.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AAExC,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,iBAAiB,CAAA;AAExC,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;IACpD,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,cAAc;IACpB,cAAc,EAAE;QACd,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,CAAC;KACZ;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,8BAA8B,CAAC;SACvC;KACF;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;IACnD,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,OAAO;IACb,cAAc,EAAE;QACd,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,CAAC;KACZ;IACD,OAAO,EAAE;QACP,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,uBAAuB,CAAC,EAAE;KAC7C;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC;IACrD,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,eAAe;IACrB,cAAc,EAAE;QACd,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,CAAC;KACZ;IACD,OAAO,EAAE;QACP,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,+BAA+B,CAAC,EAAE;KACrD;CACF,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,aAAa,CAAC,YAAY,CAAA"}
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
import type * as Address from 'ox/Address';
|
|
2
|
+
import type * as Errors from 'ox/Errors';
|
|
3
|
+
import * as Hash from 'ox/Hash';
|
|
4
|
+
import * as Hex from 'ox/Hex';
|
|
5
|
+
import * as Rlp from 'ox/Rlp';
|
|
6
|
+
import type { Compute } from '../internal/types.js';
|
|
7
|
+
import * as SignatureEnvelope from './SignatureEnvelope.js';
|
|
8
|
+
/**
|
|
9
|
+
* Key authorization for provisioning access keys.
|
|
10
|
+
*
|
|
11
|
+
* Used in TransactionEnvelopeAA to add a new key to the keychain precompile.
|
|
12
|
+
* The transaction must be signed by the root key to authorize adding this access key.
|
|
13
|
+
*/
|
|
14
|
+
export type KeyAuthorization<signed extends boolean = boolean, bigintType = bigint, numberType = number> = {
|
|
15
|
+
/** Address derived from the public key of the key type. */
|
|
16
|
+
address: Address.Address;
|
|
17
|
+
/** Chain ID for replay protection (0 = valid on any chain). */
|
|
18
|
+
chainId?: bigintType | undefined;
|
|
19
|
+
/** Unix timestamp when key expires (0 = never expires). */
|
|
20
|
+
expiry?: numberType | undefined;
|
|
21
|
+
/** TIP20 spending limits for this key. */
|
|
22
|
+
limits?: readonly TokenLimit<bigintType>[] | undefined;
|
|
23
|
+
/** Key type. (secp256k1, P256, WebAuthn). */
|
|
24
|
+
type: SignatureEnvelope.Type;
|
|
25
|
+
} & (signed extends true ? {
|
|
26
|
+
signature: SignatureEnvelope.SignatureEnvelope<bigintType, numberType>;
|
|
27
|
+
} : {
|
|
28
|
+
signature?: SignatureEnvelope.SignatureEnvelope<bigintType, numberType> | undefined;
|
|
29
|
+
});
|
|
30
|
+
/** RPC representation of an {@link ox#KeyAuthorization.KeyAuthorization}. */
|
|
31
|
+
export type Rpc = Omit<KeyAuthorization<false, Hex.Hex, Hex.Hex>, 'address' | 'signature' | 'type'> & {
|
|
32
|
+
keyId: Address.Address;
|
|
33
|
+
signature: SignatureEnvelope.SignatureEnvelopeRpc;
|
|
34
|
+
keyType: SignatureEnvelope.Type;
|
|
35
|
+
};
|
|
36
|
+
/** Signed representation of a Key Authorization. */
|
|
37
|
+
export type Signed<bigintType = bigint, numberType = number> = KeyAuthorization<true, bigintType, numberType>;
|
|
38
|
+
type BaseTuple = readonly [
|
|
39
|
+
chainId: Hex.Hex,
|
|
40
|
+
keyType: Hex.Hex,
|
|
41
|
+
keyId: Address.Address
|
|
42
|
+
];
|
|
43
|
+
/** Tuple representation of a Key Authorization. */
|
|
44
|
+
export type Tuple<signed extends boolean = boolean> = signed extends true ? readonly [
|
|
45
|
+
authorization: BaseTuple | readonly [...BaseTuple, expiry: Hex.Hex] | readonly [
|
|
46
|
+
...BaseTuple,
|
|
47
|
+
expiry: Hex.Hex,
|
|
48
|
+
limits: readonly [token: Address.Address, limit: Hex.Hex][]
|
|
49
|
+
],
|
|
50
|
+
signature: Hex.Hex
|
|
51
|
+
] : readonly [
|
|
52
|
+
authorization: BaseTuple | readonly [...BaseTuple, expiry: Hex.Hex] | readonly [
|
|
53
|
+
...BaseTuple,
|
|
54
|
+
expiry: Hex.Hex,
|
|
55
|
+
limits: readonly [token: Address.Address, limit: Hex.Hex][]
|
|
56
|
+
]
|
|
57
|
+
];
|
|
58
|
+
/**
|
|
59
|
+
* Token spending limit for access keys.
|
|
60
|
+
*
|
|
61
|
+
* Defines a per-token spending limit for an access key provisioned via a key authorization.
|
|
62
|
+
* This limit is enforced by the keychain precompile when the key is used.
|
|
63
|
+
*/
|
|
64
|
+
export type TokenLimit<bigintType = bigint> = {
|
|
65
|
+
/** Address of the TIP-20 token. */
|
|
66
|
+
token: Address.Address;
|
|
67
|
+
/** Maximum spending amount for this token (enforced over the key's lifetime). */
|
|
68
|
+
limit: bigintType;
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Converts a Key Authorization object into a typed {@link ox#KeyAuthorization.KeyAuthorization}.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* A Key Authorization can be instantiated from a Key Authorization tuple in object format.
|
|
75
|
+
*
|
|
76
|
+
* ```ts twoslash
|
|
77
|
+
* import { KeyAuthorization } from 'tempo.ts/ox'
|
|
78
|
+
* import { Value } from 'ox'
|
|
79
|
+
*
|
|
80
|
+
* const authorization = KeyAuthorization.from({
|
|
81
|
+
* expiry: 1234567890,
|
|
82
|
+
* keyId: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
83
|
+
* keyType: 'secp256k1',
|
|
84
|
+
* limits: [{
|
|
85
|
+
* token: '0x20c0000000000000000000000000000000000001',
|
|
86
|
+
* limit: Value.from('10', 6)
|
|
87
|
+
* }],
|
|
88
|
+
* })
|
|
89
|
+
* ```
|
|
90
|
+
*
|
|
91
|
+
* @example
|
|
92
|
+
* ### Attaching Signatures
|
|
93
|
+
*
|
|
94
|
+
* A {@link ox#SignatureEnvelope.SignatureEnvelope} can be attached with the `signature` option. The example below demonstrates signing
|
|
95
|
+
* a Key Authorization with {@link ox#Secp256k1.(sign:function)}.
|
|
96
|
+
*
|
|
97
|
+
* ```ts twoslash
|
|
98
|
+
* import { KeyAuthorization } from 'tempo.ts/ox'
|
|
99
|
+
* import { Secp256k1 } from 'ox'
|
|
100
|
+
*
|
|
101
|
+
* const authorization = KeyAuthorization.from({
|
|
102
|
+
* expiry: 1234567890,
|
|
103
|
+
* keyId: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
104
|
+
* keyType: 'secp256k1',
|
|
105
|
+
* limits: [{
|
|
106
|
+
* token: '0x20c0000000000000000000000000000000000001',
|
|
107
|
+
* limit: Value.from('10', 6)
|
|
108
|
+
* }],
|
|
109
|
+
* })
|
|
110
|
+
*
|
|
111
|
+
* const signature = Secp256k1.sign({
|
|
112
|
+
* payload: KeyAuthorization.getSignPayload(authorization),
|
|
113
|
+
* privateKey: '0x...',
|
|
114
|
+
* })
|
|
115
|
+
*
|
|
116
|
+
* const authorization_signed = KeyAuthorization.from(authorization, { signature }) // [!code focus]
|
|
117
|
+
* ```
|
|
118
|
+
*
|
|
119
|
+
* @param authorization - A Key Authorization tuple in object format.
|
|
120
|
+
* @param options - Key Authorization options.
|
|
121
|
+
* @returns The {@link ox#KeyAuthorization.KeyAuthorization}.
|
|
122
|
+
*/
|
|
123
|
+
export declare function from<const authorization extends KeyAuthorization | Rpc, const signature extends SignatureEnvelope.SignatureEnvelope | undefined = undefined>(authorization: authorization | KeyAuthorization, options?: from.Options<signature>): from.ReturnType<authorization, signature>;
|
|
124
|
+
export declare namespace from {
|
|
125
|
+
type Options<signature extends SignatureEnvelope.SignatureEnvelope | undefined = SignatureEnvelope.SignatureEnvelope | undefined> = {
|
|
126
|
+
/** The {@link ox#SignatureEnvelope.SignatureEnvelope} to attach to the Key Authorization. */
|
|
127
|
+
signature?: signature | SignatureEnvelope.SignatureEnvelope | undefined;
|
|
128
|
+
};
|
|
129
|
+
type ReturnType<authorization extends KeyAuthorization | Rpc = KeyAuthorization, signature extends SignatureEnvelope.SignatureEnvelope | undefined = SignatureEnvelope.SignatureEnvelope | undefined> = Compute<authorization extends Rpc ? Signed : authorization & (signature extends SignatureEnvelope.SignatureEnvelope ? {
|
|
130
|
+
signature: SignatureEnvelope.from.ReturnValue<signature>;
|
|
131
|
+
} : {})>;
|
|
132
|
+
type ErrorType = Errors.GlobalErrorType;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Converts an {@link ox#AuthorizationAA.Rpc} to an {@link ox#AuthorizationAA.AuthorizationAA}.
|
|
136
|
+
*
|
|
137
|
+
* @example
|
|
138
|
+
* ```ts twoslash
|
|
139
|
+
* import { KeyAuthorization } from 'tempo.ts/ox'
|
|
140
|
+
*
|
|
141
|
+
* const keyAuthorization = KeyAuthorization.fromRpc({
|
|
142
|
+
* expiry: '0x174876e800',
|
|
143
|
+
* keyId: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
144
|
+
* keyType: 'secp256k1',
|
|
145
|
+
* limits: [{ token: '0x20c0000000000000000000000000000000000001', limit: '0xf4240' }],
|
|
146
|
+
* signature: {
|
|
147
|
+
* type: 'secp256k1',
|
|
148
|
+
* r: '0x635dc2033e60185bb36709c29c75d64ea51dfbd91c32ef4be198e4ceb169fb4d',
|
|
149
|
+
* s: '0x50c2667ac4c771072746acfdcf1f1483336dcca8bd2df47cd83175dbe60f0540',
|
|
150
|
+
* yParity: '0x0'
|
|
151
|
+
* },
|
|
152
|
+
* })
|
|
153
|
+
* ```
|
|
154
|
+
*
|
|
155
|
+
* @param authorization - The RPC-formatted Key Authorization.
|
|
156
|
+
* @returns A signed {@link ox#AuthorizationAA.AuthorizationAA}.
|
|
157
|
+
*/
|
|
158
|
+
export declare function fromRpc(authorization: Rpc): Signed;
|
|
159
|
+
export declare namespace fromRpc {
|
|
160
|
+
type ErrorType = Errors.GlobalErrorType;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Converts an {@link ox#KeyAuthorization.Tuple} to an {@link ox#KeyAuthorization.KeyAuthorization}.
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```ts twoslash
|
|
167
|
+
* import { KeyAuthorization } from 'tempo.ts/ox'
|
|
168
|
+
*
|
|
169
|
+
* const authorization = KeyAuthorization.fromTuple([
|
|
170
|
+
* '0x174876e800',
|
|
171
|
+
* [['0x20c0000000000000000000000000000000000001', '0xf4240']],
|
|
172
|
+
* 'secp256k1',
|
|
173
|
+
* '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
174
|
+
* '0x01a068a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b907e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064'
|
|
175
|
+
* ])
|
|
176
|
+
* // @log: {
|
|
177
|
+
* // @log: expiry: 1234567890,
|
|
178
|
+
* // @log: keyId: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
179
|
+
* // @log: keyType: 'secp256k1',
|
|
180
|
+
* // @log: limits: [{ token: '0x20c0000000000000000000000000000000000001', limit: '0xf4240' }],
|
|
181
|
+
* // @log: signature: {
|
|
182
|
+
* // @log: type: 'secp256k1',
|
|
183
|
+
* // @log: r: '0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90',
|
|
184
|
+
* // @log: s: '0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064',
|
|
185
|
+
* // @log: yParity: 0,
|
|
186
|
+
* // @log: },
|
|
187
|
+
* // @log: }
|
|
188
|
+
* ```
|
|
189
|
+
*
|
|
190
|
+
* @example
|
|
191
|
+
* It is also possible to append a serialized SignatureEnvelope to the end of a Key Authorization tuple.
|
|
192
|
+
*
|
|
193
|
+
* ```ts twoslash
|
|
194
|
+
* import { KeyAuthorization } from 'tempo.ts/ox'
|
|
195
|
+
*
|
|
196
|
+
* const authorization = KeyAuthorization.fromTuple([
|
|
197
|
+
* '0x174876e800',
|
|
198
|
+
* [['0x20c0000000000000000000000000000000000001', '0xf4240']],
|
|
199
|
+
* 'secp256k1',
|
|
200
|
+
* '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
201
|
+
* '0x01a068a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b907e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064',
|
|
202
|
+
* ])
|
|
203
|
+
* // @log: {
|
|
204
|
+
* // @log: expiry: 1234567890,
|
|
205
|
+
* // @log: keyId: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
206
|
+
* // @log: keyType: 'secp256k1',
|
|
207
|
+
* // @log: limits: [{ token: '0x20c0000000000000000000000000000000000001', limit: '0xf4240' }],
|
|
208
|
+
* // @log: signature: {
|
|
209
|
+
* // @log: type: 'secp256k1',
|
|
210
|
+
* // @log: r: '0x68a020a209d3d56c46f38cc50a33f704f4a9a10a59377f8dd762ac66910e9b90',
|
|
211
|
+
* // @log: s: '0x7e865ad05c4035ab5792787d4a0297a43617ae897930a6fe4d822b8faea52064',
|
|
212
|
+
* // @log: yParity: 0,
|
|
213
|
+
* // @log: },
|
|
214
|
+
* // @log: }
|
|
215
|
+
* ```
|
|
216
|
+
*
|
|
217
|
+
* @param tuple - The Key Authorization tuple.
|
|
218
|
+
* @returns The {@link ox#KeyAuthorization.KeyAuthorization}.
|
|
219
|
+
*/
|
|
220
|
+
export declare function fromTuple<const tuple extends Tuple>(tuple: tuple): fromTuple.ReturnType<tuple>;
|
|
221
|
+
export declare namespace fromTuple {
|
|
222
|
+
type ReturnType<authorization extends Tuple = Tuple> = Compute<KeyAuthorization<authorization extends Tuple<true> ? true : false>>;
|
|
223
|
+
type ErrorType = Errors.GlobalErrorType;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Computes the sign payload for an {@link ox#KeyAuthorization.KeyAuthorization}.
|
|
227
|
+
*
|
|
228
|
+
* @example
|
|
229
|
+
* The example below demonstrates computing the sign payload for an {@link ox#KeyAuthorization.KeyAuthorization}. This payload
|
|
230
|
+
* can then be passed to signing functions like {@link ox#Secp256k1.(sign:function)}.
|
|
231
|
+
*
|
|
232
|
+
* ```ts twoslash
|
|
233
|
+
* import { KeyAuthorization } from 'tempo.ts/ox'
|
|
234
|
+
* import { Secp256k1 } from 'ox'
|
|
235
|
+
*
|
|
236
|
+
* const authorization = KeyAuthorization.from({
|
|
237
|
+
* expiry: 1234567890,
|
|
238
|
+
* keyId: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
239
|
+
* keyType: 'secp256k1',
|
|
240
|
+
* limits: [{
|
|
241
|
+
* token: '0x20c0000000000000000000000000000000000001',
|
|
242
|
+
* limit: Value.from('10', 6)
|
|
243
|
+
* }],
|
|
244
|
+
* })
|
|
245
|
+
*
|
|
246
|
+
* const payload = KeyAuthorization.getSignPayload(authorization) // [!code focus]
|
|
247
|
+
*
|
|
248
|
+
* const signature = Secp256k1.sign({
|
|
249
|
+
* payload,
|
|
250
|
+
* privateKey: '0x...',
|
|
251
|
+
* })
|
|
252
|
+
* ```
|
|
253
|
+
*
|
|
254
|
+
* @param authorization - The {@link ox#KeyAuthorization.KeyAuthorization}.
|
|
255
|
+
* @returns The sign payload.
|
|
256
|
+
*/
|
|
257
|
+
export declare function getSignPayload(authorization: KeyAuthorization): Hex.Hex;
|
|
258
|
+
export declare namespace getSignPayload {
|
|
259
|
+
type ErrorType = hash.ErrorType | Errors.GlobalErrorType;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Computes the hash for an {@link ox#KeyAuthorization.KeyAuthorization}.
|
|
263
|
+
*
|
|
264
|
+
* @example
|
|
265
|
+
* ```ts twoslash
|
|
266
|
+
* import { KeyAuthorization } from 'tempo.ts/ox'
|
|
267
|
+
* import { Value } from 'ox'
|
|
268
|
+
*
|
|
269
|
+
* const authorization = KeyAuthorization.from({
|
|
270
|
+
* expiry: 1234567890,
|
|
271
|
+
* keyId: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
272
|
+
* keyType: 'secp256k1',
|
|
273
|
+
* limits: [{
|
|
274
|
+
* token: '0x20c0000000000000000000000000000000000001',
|
|
275
|
+
* limit: Value.from('10', 6)
|
|
276
|
+
* }],
|
|
277
|
+
* })
|
|
278
|
+
*
|
|
279
|
+
* const hash = KeyAuthorization.hash(authorization) // [!code focus]
|
|
280
|
+
* ```
|
|
281
|
+
*
|
|
282
|
+
* @param authorization - The {@link ox#KeyAuthorization.KeyAuthorization}.
|
|
283
|
+
* @returns The hash.
|
|
284
|
+
*/
|
|
285
|
+
export declare function hash(authorization: KeyAuthorization): Hex.Hex;
|
|
286
|
+
export declare namespace hash {
|
|
287
|
+
type ErrorType = toTuple.ErrorType | Hash.keccak256.ErrorType | Hex.concat.ErrorType | Rlp.fromHex.ErrorType | Errors.GlobalErrorType;
|
|
288
|
+
}
|
|
289
|
+
/**
|
|
290
|
+
* Converts an {@link ox#KeyAuthorization.KeyAuthorization} to an {@link ox#KeyAuthorization.Rpc}.
|
|
291
|
+
*
|
|
292
|
+
* @example
|
|
293
|
+
* ```ts twoslash
|
|
294
|
+
* import { KeyAuthorization } from 'tempo.ts/ox'
|
|
295
|
+
*
|
|
296
|
+
* const authorization = KeyAuthorization.toRpc({
|
|
297
|
+
* expiry: 1234567890,
|
|
298
|
+
* keyId: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
299
|
+
* keyType: 'secp256k1',
|
|
300
|
+
* limits: [{
|
|
301
|
+
* token: '0x20c0000000000000000000000000000000000001',
|
|
302
|
+
* limit: Value.from('10', 6)
|
|
303
|
+
* }],
|
|
304
|
+
* signature: {
|
|
305
|
+
* type: 'secp256k1',
|
|
306
|
+
* r: 44944627813007772897391531230081695102703289123332187696115181104739239197517n,
|
|
307
|
+
* s: 36528503505192438307355164441104001310566505351980369085208178712678799181120n,
|
|
308
|
+
* yParity: 0,
|
|
309
|
+
* },
|
|
310
|
+
* })
|
|
311
|
+
* ```
|
|
312
|
+
*
|
|
313
|
+
* @param authorization - A Key Authorization.
|
|
314
|
+
* @returns An RPC-formatted Key Authorization.
|
|
315
|
+
*/
|
|
316
|
+
export declare function toRpc(authorization: Signed): Rpc;
|
|
317
|
+
export declare namespace toRpc {
|
|
318
|
+
type ErrorType = Errors.GlobalErrorType;
|
|
319
|
+
}
|
|
320
|
+
/**
|
|
321
|
+
* Converts an {@link ox#KeyAuthorization.KeyAuthorization} to an {@link ox#KeyAuthorization.Tuple}.
|
|
322
|
+
*
|
|
323
|
+
* @example
|
|
324
|
+
* ```ts twoslash
|
|
325
|
+
* import { KeyAuthorization } from 'tempo.ts/ox'
|
|
326
|
+
* import { Value } from 'ox'
|
|
327
|
+
*
|
|
328
|
+
* const authorization = KeyAuthorization.from({
|
|
329
|
+
* expiry: 1234567890,
|
|
330
|
+
* keyId: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
331
|
+
* keyType: 'secp256k1',
|
|
332
|
+
* limits: [{
|
|
333
|
+
* token: '0x20c0000000000000000000000000000000000001',
|
|
334
|
+
* limit: Value.from('10', 6)
|
|
335
|
+
* }],
|
|
336
|
+
* })
|
|
337
|
+
*
|
|
338
|
+
* const tuple = KeyAuthorization.toTuple(authorization) // [!code focus]
|
|
339
|
+
* // @log: [
|
|
340
|
+
* // @log: '0x174876e800',
|
|
341
|
+
* // @log: [['0x20c0000000000000000000000000000000000001', '0xf4240']],
|
|
342
|
+
* // @log: '0xbe95c3f554e9fc85ec51be69a3d807a0d55bcf2c',
|
|
343
|
+
* // @log: 'secp256k1',
|
|
344
|
+
* // @log: ]
|
|
345
|
+
* ```
|
|
346
|
+
*
|
|
347
|
+
* @param authorization - The {@link ox#AuthorizationAA.AuthorizationAA}.
|
|
348
|
+
* @returns An [EIP-7702](https://eips.ethereum.org/EIPS/eip-7702) AA Authorization tuple.
|
|
349
|
+
*/
|
|
350
|
+
export declare function toTuple<const authorization extends KeyAuthorization>(authorization: authorization): toTuple.ReturnType<authorization>;
|
|
351
|
+
export declare namespace toTuple {
|
|
352
|
+
type ReturnType<authorization extends KeyAuthorization = KeyAuthorization> = Compute<Tuple<authorization extends KeyAuthorization<true> ? true : false>>;
|
|
353
|
+
type ErrorType = Errors.GlobalErrorType;
|
|
354
|
+
}
|
|
355
|
+
export {};
|
|
356
|
+
//# sourceMappingURL=KeyAuthorization.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyAuthorization.d.ts","sourceRoot":"","sources":["../../src/ox/KeyAuthorization.ts"],"names":[],"mappings":"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"}
|