kokio-sdk 3.0.2 → 3.2.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/README.md +15 -15
- package/dist/esm/admin/config-admin.js +6 -1
- package/dist/esm/admin/interface/callsClass.js +30 -0
- package/dist/esm/config.js +1 -1
- package/dist/esm/interface/deviceWalletClass.js +10 -1
- package/dist/esm/interface/eSIMWalletClass.js +17 -1
- package/dist/esm/interface/eSIMWalletFactoryClass.js +9 -1
- package/dist/esm/interface/registryClass.js +8 -0
- package/dist/esm/interface/smartAccountClass.js +9 -2
- package/dist/esm/logic/P256Verifier.js +2 -2
- package/dist/esm/logic/account-kit/createSmartAccount.js +47 -36
- package/dist/esm/logic/admin/deviceWallet.eoa.js +5 -5
- package/dist/esm/logic/admin/deviceWalletFactory.eoa.js +13 -13
- package/dist/esm/logic/admin/eSIMWallet.eoa.js +3 -3
- package/dist/esm/logic/admin/eSIMWalletFactory.eoa.js +9 -9
- package/dist/esm/logic/admin/lazyWalletRegistry.eoa.js +13 -13
- package/dist/esm/logic/admin/paymentAdapter.eoa.js +11 -11
- package/dist/esm/logic/admin/protocolAdmin.eoa.js +14 -14
- package/dist/esm/logic/admin/reads/deviceWalletFactory.reads.js +9 -9
- package/dist/esm/logic/admin/reads/eSIMWalletFactory.reads.js +7 -7
- package/dist/esm/logic/admin/reads/lazyWalletRegistry.reads.js +18 -18
- package/dist/esm/logic/admin/reads/paymentAdapter.reads.js +8 -8
- package/dist/esm/logic/admin/reads/protocolAdmin.reads.js +2 -2
- package/dist/esm/logic/admin/reads/registry.reads.js +31 -31
- package/dist/esm/logic/admin/registry.eoa.js +27 -27
- package/dist/esm/logic/calls/eSIMWallet.calls.js +72 -0
- package/dist/esm/logic/constants.js +14 -1
- package/dist/esm/logic/deviceWallet.js +35 -1
- package/dist/esm/logic/deviceWalletFactory.js +11 -11
- package/dist/esm/logic/eSIMWallet.js +32 -0
- package/dist/esm/logic/eSIMWalletFactory.js +15 -3
- package/dist/esm/logic/errors.js +15 -9
- package/dist/esm/logic/paymentAdapter.js +8 -8
- package/dist/esm/logic/registry.js +17 -17
- package/dist/esm/logic/utils.js +1 -81
- package/dist/types/admin/config-admin.d.ts +4 -1
- package/dist/types/admin/interface/callsClass.d.ts +26 -0
- package/dist/types/config.d.ts +1 -1
- package/dist/types/interface/deviceWalletClass.d.ts +12 -0
- package/dist/types/interface/eSIMWalletClass.d.ts +14 -0
- package/dist/types/interface/eSIMWalletFactoryClass.d.ts +6 -0
- package/dist/types/interface/registryClass.d.ts +8 -0
- package/dist/types/interface/smartAccountClass.d.ts +10 -1
- package/dist/types/logic/account-kit/createSmartAccount.d.ts +1 -1
- package/dist/types/logic/calls/eSIMWallet.calls.d.ts +25 -0
- package/dist/types/logic/constants.d.ts +3 -0
- package/dist/types/logic/deviceWallet.d.ts +12 -0
- package/dist/types/logic/eSIMWallet.d.ts +16 -0
- package/dist/types/logic/eSIMWalletFactory.d.ts +2 -0
- package/dist/types/logic/errors.d.ts +6 -5
- package/dist/types/logic/utils.d.ts +0 -21
- package/dist/types/types.d.ts +1 -1
- package/package.json +21 -7
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _getChainSpecificConstants } from "../constants.js";
|
|
1
|
+
import { _chainId, _getChainSpecificConstants } from "../constants.js";
|
|
2
2
|
import { MissingEOAWalletError, writeContractOrThrow } from "../errors.js";
|
|
3
3
|
import { ESIMWalletFactory } from "../../abis/index.js";
|
|
4
4
|
// Admin-EOA logic for `ESIMWalletFactory`. Both functions are owner-gated
|
|
@@ -14,7 +14,7 @@ import { ESIMWalletFactory } from "../../abis/index.js";
|
|
|
14
14
|
// `onlyRegistryOrDeviceWalletFactoryOrDeviceWallet`, so a bare EOA always reverts.
|
|
15
15
|
/** One-time wiring of the registry into the eSIM factory. Owner only. */
|
|
16
16
|
export const _addRegistryAddress = async (client, registryContractAddress) => {
|
|
17
|
-
const chainID = await client
|
|
17
|
+
const chainID = await _chainId(client);
|
|
18
18
|
const rpcURL = client.transport.url;
|
|
19
19
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
20
20
|
if (!client.account)
|
|
@@ -22,7 +22,7 @@ export const _addRegistryAddress = async (client, registryContractAddress) => {
|
|
|
22
22
|
return writeContractOrThrow(client, {
|
|
23
23
|
address: values.factoryAddresses.ESIM_WALLET_FACTORY,
|
|
24
24
|
chain: values.chain,
|
|
25
|
-
account: client.account
|
|
25
|
+
account: client.account,
|
|
26
26
|
abi: ESIMWalletFactory,
|
|
27
27
|
functionName: 'addRegistryAddress',
|
|
28
28
|
args: [registryContractAddress]
|
|
@@ -30,7 +30,7 @@ export const _addRegistryAddress = async (client, registryContractAddress) => {
|
|
|
30
30
|
};
|
|
31
31
|
/** Point the eSIM-wallet beacon at a new implementation. `onlyOwner`. */
|
|
32
32
|
export const _updateESIMWalletImplementation = async (client, eSIMWalletImpl) => {
|
|
33
|
-
const chainID = await client
|
|
33
|
+
const chainID = await _chainId(client);
|
|
34
34
|
const rpcURL = client.transport.url;
|
|
35
35
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
36
36
|
if (!client.account)
|
|
@@ -38,7 +38,7 @@ export const _updateESIMWalletImplementation = async (client, eSIMWalletImpl) =>
|
|
|
38
38
|
return writeContractOrThrow(client, {
|
|
39
39
|
address: values.factoryAddresses.ESIM_WALLET_FACTORY,
|
|
40
40
|
chain: values.chain,
|
|
41
|
-
account: client.account
|
|
41
|
+
account: client.account,
|
|
42
42
|
abi: ESIMWalletFactory,
|
|
43
43
|
functionName: 'updateESIMWalletImplementation',
|
|
44
44
|
args: [eSIMWalletImpl]
|
|
@@ -58,7 +58,7 @@ export const _updateESIMWalletImplementation = async (client, eSIMWalletImpl) =>
|
|
|
58
58
|
* it, so the new owner can move every deployed eSIM wallet at once.
|
|
59
59
|
*/
|
|
60
60
|
export const _transferOwnershipCall = async (client, newOwner) => {
|
|
61
|
-
const chainID = await client
|
|
61
|
+
const chainID = await _chainId(client);
|
|
62
62
|
const rpcURL = client.transport.url;
|
|
63
63
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
64
64
|
return {
|
|
@@ -76,7 +76,7 @@ export const _transferOwnershipCall = async (client, newOwner) => {
|
|
|
76
76
|
* the beacon, which moves through `updateESIMWalletImplementation` instead.
|
|
77
77
|
*/
|
|
78
78
|
export const _upgradeCall = async (client, newImplementation, data = '0x') => {
|
|
79
|
-
const chainID = await client
|
|
79
|
+
const chainID = await _chainId(client);
|
|
80
80
|
const rpcURL = client.transport.url;
|
|
81
81
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
82
82
|
return {
|
|
@@ -95,7 +95,7 @@ export const _upgradeCall = async (client, newImplementation, data = '0x') => {
|
|
|
95
95
|
* at once.
|
|
96
96
|
*/
|
|
97
97
|
export const _acceptOwnership = async (client) => {
|
|
98
|
-
const chainID = await client
|
|
98
|
+
const chainID = await _chainId(client);
|
|
99
99
|
const rpcURL = client.transport.url;
|
|
100
100
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
101
101
|
if (!client.account)
|
|
@@ -103,7 +103,7 @@ export const _acceptOwnership = async (client) => {
|
|
|
103
103
|
return writeContractOrThrow(client, {
|
|
104
104
|
address: values.factoryAddresses.ESIM_WALLET_FACTORY,
|
|
105
105
|
chain: values.chain,
|
|
106
|
-
account: client.account
|
|
106
|
+
account: client.account,
|
|
107
107
|
abi: ESIMWalletFactory,
|
|
108
108
|
functionName: 'acceptOwnership',
|
|
109
109
|
args: []
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BaseError, ContractFunctionRevertedError, isAddressEqual, parseEventLogs, publicActions, } from "viem";
|
|
2
|
-
import { _getChainSpecificConstants } from "../constants.js";
|
|
2
|
+
import { _chainId, _getChainSpecificConstants } from "../constants.js";
|
|
3
3
|
import { BatchSizeOutOfRangeError, DepositOnResumeError, ESIMWalletNotLazyDeployedError, MissingBatchEventError, MissingEOAWalletError, StalledBatchError, writeContractOrThrow, } from "../errors.js";
|
|
4
4
|
import { LazyWalletRegistry, Registry } from "../../abis/index.js";
|
|
5
5
|
import { _eSIMWalletsDeployed, _lazyDeployedESIMWallet } from "./reads/lazyWalletRegistry.reads.js";
|
|
@@ -33,7 +33,7 @@ export const MAX_HISTORY_ENTRIES_PER_CALL = 50n;
|
|
|
33
33
|
export const DEFAULT_ESIM_WALLETS_PER_CALL = 10n;
|
|
34
34
|
export const DEFAULT_HISTORY_ENTRIES_PER_CALL = 25n;
|
|
35
35
|
const _resolve = async (client) => {
|
|
36
|
-
const chainID = await client
|
|
36
|
+
const chainID = await _chainId(client);
|
|
37
37
|
const rpcURL = client.transport.url;
|
|
38
38
|
return _getChainSpecificConstants(chainID, rpcURL);
|
|
39
39
|
};
|
|
@@ -48,7 +48,7 @@ export const _batchPopulateHistory = async (client, deviceUniqueIdentifiers, eSI
|
|
|
48
48
|
return writeContractOrThrow(client, {
|
|
49
49
|
address: values.factoryAddresses.LAZY_WALLET_REGISTRY,
|
|
50
50
|
chain: values.chain,
|
|
51
|
-
account: client.account
|
|
51
|
+
account: client.account,
|
|
52
52
|
abi: LazyWalletRegistry,
|
|
53
53
|
functionName: 'batchPopulateHistory',
|
|
54
54
|
args: [deviceUniqueIdentifiers, eSIMUniqueIdentifiers, dataBundleDetails]
|
|
@@ -70,7 +70,7 @@ export const _deployLazyWalletAndSetESIMIdentifier = async (client, deviceOwnerP
|
|
|
70
70
|
return writeContractOrThrow(client, {
|
|
71
71
|
address: values.factoryAddresses.LAZY_WALLET_REGISTRY,
|
|
72
72
|
chain: values.chain,
|
|
73
|
-
account: client.account
|
|
73
|
+
account: client.account,
|
|
74
74
|
abi: LazyWalletRegistry,
|
|
75
75
|
functionName: 'deployLazyWalletAndSetESIMIdentifier',
|
|
76
76
|
args: [deviceOwnerPublicKey, deviceUniqueIdentifier, salt, depositAmount, maxWallets],
|
|
@@ -93,7 +93,7 @@ export const _deployMoreESIMWalletsForLazyDevice = async (client, deviceUniqueId
|
|
|
93
93
|
return writeContractOrThrow(client, {
|
|
94
94
|
address: values.factoryAddresses.LAZY_WALLET_REGISTRY,
|
|
95
95
|
chain: values.chain,
|
|
96
|
-
account: client.account
|
|
96
|
+
account: client.account,
|
|
97
97
|
abi: LazyWalletRegistry,
|
|
98
98
|
functionName: 'deployMoreESIMWalletsForLazyDevice',
|
|
99
99
|
args: [deviceUniqueIdentifier, maxWallets]
|
|
@@ -113,7 +113,7 @@ export const _setHistoryForLazyWallet = async (client, eSIMIdentifier, maxEntrie
|
|
|
113
113
|
return writeContractOrThrow(client, {
|
|
114
114
|
address: values.factoryAddresses.LAZY_WALLET_REGISTRY,
|
|
115
115
|
chain: values.chain,
|
|
116
|
-
account: client.account
|
|
116
|
+
account: client.account,
|
|
117
117
|
abi: LazyWalletRegistry,
|
|
118
118
|
functionName: 'setHistoryForLazyWallet',
|
|
119
119
|
args: [eSIMIdentifier, maxEntries]
|
|
@@ -127,7 +127,7 @@ export const _switchESIMIdentifierToNewDeviceIdentifier = async (client, eSIMIde
|
|
|
127
127
|
return writeContractOrThrow(client, {
|
|
128
128
|
address: values.factoryAddresses.LAZY_WALLET_REGISTRY,
|
|
129
129
|
chain: values.chain,
|
|
130
|
-
account: client.account
|
|
130
|
+
account: client.account,
|
|
131
131
|
abi: LazyWalletRegistry,
|
|
132
132
|
functionName: 'switchESIMIdentifierToNewDeviceIdentifier',
|
|
133
133
|
args: [eSIMIdentifier, oldDeviceIdentifier, newDeviceIdentifier]
|
|
@@ -227,7 +227,7 @@ export const _deployLazyWalletAllBatches = async (client, deviceOwnerPublicKey,
|
|
|
227
227
|
abi: LazyWalletRegistry,
|
|
228
228
|
functionName: "deployMoreESIMWalletsForLazyDevice",
|
|
229
229
|
args: [deviceUniqueIdentifier, maxWallets],
|
|
230
|
-
account: client.account
|
|
230
|
+
account: client.account,
|
|
231
231
|
}, "AllESIMWalletsDeployed");
|
|
232
232
|
if (finished) {
|
|
233
233
|
return { deviceWallet, eSIMWallets: [], eSIMIdentifiers: [], batches: [], alreadyComplete: true };
|
|
@@ -287,7 +287,7 @@ export const _setHistoryForLazyWalletAllBatches = async (client, eSIMIdentifier,
|
|
|
287
287
|
abi: LazyWalletRegistry,
|
|
288
288
|
functionName: "setHistoryForLazyWallet",
|
|
289
289
|
args: [eSIMIdentifier, maxEntries],
|
|
290
|
-
account: client.account
|
|
290
|
+
account: client.account,
|
|
291
291
|
}, "HistoryAlreadyCopied");
|
|
292
292
|
if (finished)
|
|
293
293
|
return { eSIMWallet, copied: 0n, batches: [], alreadyComplete: true };
|
|
@@ -318,7 +318,7 @@ export const _setHistoryForLazyWalletAllBatches = async (client, eSIMIdentifier,
|
|
|
318
318
|
* `acceptOwnership`. Until then the current owner keeps every power.
|
|
319
319
|
*/
|
|
320
320
|
export const _transferOwnershipCall = async (client, newOwner) => {
|
|
321
|
-
const chainID = await client
|
|
321
|
+
const chainID = await _chainId(client);
|
|
322
322
|
const rpcURL = client.transport.url;
|
|
323
323
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
324
324
|
return {
|
|
@@ -338,7 +338,7 @@ export const _transferOwnershipCall = async (client, newOwner) => {
|
|
|
338
338
|
* where a `reinitializer` goes.
|
|
339
339
|
*/
|
|
340
340
|
export const _upgradeCall = async (client, newImplementation, data = '0x') => {
|
|
341
|
-
const chainID = await client
|
|
341
|
+
const chainID = await _chainId(client);
|
|
342
342
|
const rpcURL = client.transport.url;
|
|
343
343
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
344
344
|
return {
|
|
@@ -357,7 +357,7 @@ export const _upgradeCall = async (client, newImplementation, data = '0x') => {
|
|
|
357
357
|
* at once.
|
|
358
358
|
*/
|
|
359
359
|
export const _acceptOwnership = async (client) => {
|
|
360
|
-
const chainID = await client
|
|
360
|
+
const chainID = await _chainId(client);
|
|
361
361
|
const rpcURL = client.transport.url;
|
|
362
362
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
363
363
|
if (!client.account)
|
|
@@ -365,7 +365,7 @@ export const _acceptOwnership = async (client) => {
|
|
|
365
365
|
return writeContractOrThrow(client, {
|
|
366
366
|
address: values.factoryAddresses.LAZY_WALLET_REGISTRY,
|
|
367
367
|
chain: values.chain,
|
|
368
|
-
account: client.account
|
|
368
|
+
account: client.account,
|
|
369
369
|
abi: LazyWalletRegistry,
|
|
370
370
|
functionName: 'acceptOwnership',
|
|
371
371
|
args: []
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _getChainSpecificConstants } from "../constants.js";
|
|
1
|
+
import { _chainId, _getChainSpecificConstants } from "../constants.js";
|
|
2
2
|
import { MissingEOAWalletError, writeContractOrThrow } from "../errors.js";
|
|
3
3
|
import { PaymentAdapter } from "../../abis/index.js";
|
|
4
4
|
// Admin-EOA logic for `PaymentAdapter`. `registerAsset`/`updateAsset` are
|
|
@@ -9,7 +9,7 @@ import { PaymentAdapter } from "../../abis/index.js";
|
|
|
9
9
|
// `protocolAdmin.proposer.schedule` instead, via the payload builders below.
|
|
10
10
|
/** Add a currency the adapter has never seen. Reverts if `_symbol` is already registered. Owner only. */
|
|
11
11
|
export const _registerAsset = async (client, symbol, asset) => {
|
|
12
|
-
const chainID = await client
|
|
12
|
+
const chainID = await _chainId(client);
|
|
13
13
|
const rpcURL = client.transport.url;
|
|
14
14
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
15
15
|
if (!client.account)
|
|
@@ -17,7 +17,7 @@ export const _registerAsset = async (client, symbol, asset) => {
|
|
|
17
17
|
return writeContractOrThrow(client, {
|
|
18
18
|
address: values.factoryAddresses.PAYMENT_ADAPTER,
|
|
19
19
|
chain: values.chain,
|
|
20
|
-
account: client.account
|
|
20
|
+
account: client.account,
|
|
21
21
|
abi: PaymentAdapter,
|
|
22
22
|
functionName: 'registerAsset',
|
|
23
23
|
args: [symbol, asset]
|
|
@@ -25,7 +25,7 @@ export const _registerAsset = async (client, symbol, asset) => {
|
|
|
25
25
|
};
|
|
26
26
|
/** Change a currency already in the table (its decimals, token, or allowed flag). Owner only. */
|
|
27
27
|
export const _updateAsset = async (client, symbol, asset) => {
|
|
28
|
-
const chainID = await client
|
|
28
|
+
const chainID = await _chainId(client);
|
|
29
29
|
const rpcURL = client.transport.url;
|
|
30
30
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
31
31
|
if (!client.account)
|
|
@@ -33,7 +33,7 @@ export const _updateAsset = async (client, symbol, asset) => {
|
|
|
33
33
|
return writeContractOrThrow(client, {
|
|
34
34
|
address: values.factoryAddresses.PAYMENT_ADAPTER,
|
|
35
35
|
chain: values.chain,
|
|
36
|
-
account: client.account
|
|
36
|
+
account: client.account,
|
|
37
37
|
abi: PaymentAdapter,
|
|
38
38
|
functionName: 'updateAsset',
|
|
39
39
|
args: [symbol, asset]
|
|
@@ -47,7 +47,7 @@ export const _updateAsset = async (client, symbol, asset) => {
|
|
|
47
47
|
// `OwnerCall` to hand to `protocolAdmin.schedule`.
|
|
48
48
|
/** Add or change a currency, scheduled through the timelock. Pass the result to `schedule`. */
|
|
49
49
|
export const _registerAssetCall = async (client, symbol, asset) => {
|
|
50
|
-
const chainID = await client
|
|
50
|
+
const chainID = await _chainId(client);
|
|
51
51
|
const rpcURL = client.transport.url;
|
|
52
52
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
53
53
|
return {
|
|
@@ -59,7 +59,7 @@ export const _registerAssetCall = async (client, symbol, asset) => {
|
|
|
59
59
|
};
|
|
60
60
|
/** Change a currency already in the table, scheduled through the timelock. Pass the result to `schedule`. */
|
|
61
61
|
export const _updateAssetCall = async (client, symbol, asset) => {
|
|
62
|
-
const chainID = await client
|
|
62
|
+
const chainID = await _chainId(client);
|
|
63
63
|
const rpcURL = client.transport.url;
|
|
64
64
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
65
65
|
return {
|
|
@@ -76,7 +76,7 @@ export const _updateAssetCall = async (client, symbol, asset) => {
|
|
|
76
76
|
* `acceptOwnership`.
|
|
77
77
|
*/
|
|
78
78
|
export const _transferOwnershipCall = async (client, newOwner) => {
|
|
79
|
-
const chainID = await client
|
|
79
|
+
const chainID = await _chainId(client);
|
|
80
80
|
const rpcURL = client.transport.url;
|
|
81
81
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
82
82
|
return {
|
|
@@ -88,7 +88,7 @@ export const _transferOwnershipCall = async (client, newOwner) => {
|
|
|
88
88
|
};
|
|
89
89
|
/** Point the adapter's proxy at a new implementation. Builds `upgradeToAndCall`. Pass the result to `schedule`. */
|
|
90
90
|
export const _upgradeCall = async (client, newImplementation, data = '0x') => {
|
|
91
|
-
const chainID = await client
|
|
91
|
+
const chainID = await _chainId(client);
|
|
92
92
|
const rpcURL = client.transport.url;
|
|
93
93
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
94
94
|
return {
|
|
@@ -107,7 +107,7 @@ export const _upgradeCall = async (client, newImplementation, data = '0x') => {
|
|
|
107
107
|
* contract at once.
|
|
108
108
|
*/
|
|
109
109
|
export const _acceptOwnership = async (client) => {
|
|
110
|
-
const chainID = await client
|
|
110
|
+
const chainID = await _chainId(client);
|
|
111
111
|
const rpcURL = client.transport.url;
|
|
112
112
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
113
113
|
if (!client.account)
|
|
@@ -115,7 +115,7 @@ export const _acceptOwnership = async (client) => {
|
|
|
115
115
|
return writeContractOrThrow(client, {
|
|
116
116
|
address: values.factoryAddresses.PAYMENT_ADAPTER,
|
|
117
117
|
chain: values.chain,
|
|
118
|
-
account: client.account
|
|
118
|
+
account: client.account,
|
|
119
119
|
abi: PaymentAdapter,
|
|
120
120
|
functionName: 'acceptOwnership',
|
|
121
121
|
args: []
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { encodeFunctionData, publicActions } from "viem";
|
|
2
|
-
import { _getChainSpecificConstants } from "../constants.js";
|
|
2
|
+
import { _chainId, _getChainSpecificConstants } from "../constants.js";
|
|
3
3
|
import { MissingEOAWalletError, writeContractOrThrow } from "../errors.js";
|
|
4
4
|
import { ProtocolAdmin, Registry } from "../../abis/index.js";
|
|
5
5
|
// Admin-EOA logic for `ProtocolAdmin`, the timelock that owns `Registry`,
|
|
@@ -14,7 +14,7 @@ import { ProtocolAdmin, Registry } from "../../abis/index.js";
|
|
|
14
14
|
// straight away with no delay.
|
|
15
15
|
const ZERO_BYTES32 = "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
16
16
|
const _resolve = async (client) => {
|
|
17
|
-
const chainID = await client
|
|
17
|
+
const chainID = await _chainId(client);
|
|
18
18
|
const rpcURL = client.transport.url;
|
|
19
19
|
return _getChainSpecificConstants(chainID, rpcURL);
|
|
20
20
|
};
|
|
@@ -119,7 +119,7 @@ export const _schedule = async (client, call, opts = {}, delay) => {
|
|
|
119
119
|
const hash = await writeContractOrThrow(client, {
|
|
120
120
|
address: values.factoryAddresses.PROTOCOL_ADMIN,
|
|
121
121
|
chain: values.chain,
|
|
122
|
-
account: client.account
|
|
122
|
+
account: client.account,
|
|
123
123
|
abi: ProtocolAdmin,
|
|
124
124
|
functionName: 'schedule',
|
|
125
125
|
args: [target, value, payload, predecessor, salt, resolvedDelay]
|
|
@@ -159,7 +159,7 @@ export const _scheduleBatch = async (client, calls, opts = {}, delay) => {
|
|
|
159
159
|
const hash = await writeContractOrThrow(client, {
|
|
160
160
|
address: values.factoryAddresses.PROTOCOL_ADMIN,
|
|
161
161
|
chain: values.chain,
|
|
162
|
-
account: client.account
|
|
162
|
+
account: client.account,
|
|
163
163
|
abi: ProtocolAdmin,
|
|
164
164
|
functionName: 'scheduleBatch',
|
|
165
165
|
args: [targets, callValues, payloads, predecessor, salt, resolvedDelay]
|
|
@@ -186,7 +186,7 @@ export const _scheduleRaw = async (client, target, value, payload, predecessor,
|
|
|
186
186
|
const hash = await writeContractOrThrow(client, {
|
|
187
187
|
address: values.factoryAddresses.PROTOCOL_ADMIN,
|
|
188
188
|
chain: values.chain,
|
|
189
|
-
account: client.account
|
|
189
|
+
account: client.account,
|
|
190
190
|
abi: ProtocolAdmin,
|
|
191
191
|
functionName: 'schedule',
|
|
192
192
|
args: [target, value, payload, predecessor, salt, delay]
|
|
@@ -211,7 +211,7 @@ export const _execute = async (client, operation) => {
|
|
|
211
211
|
return writeContractOrThrow(client, {
|
|
212
212
|
address: values.factoryAddresses.PROTOCOL_ADMIN,
|
|
213
213
|
chain: values.chain,
|
|
214
|
-
account: client.account
|
|
214
|
+
account: client.account,
|
|
215
215
|
abi: ProtocolAdmin,
|
|
216
216
|
functionName: 'execute',
|
|
217
217
|
args: [operation.target, operation.value, operation.payload, operation.predecessor, operation.salt],
|
|
@@ -226,7 +226,7 @@ export const _executeBatch = async (client, operation) => {
|
|
|
226
226
|
return writeContractOrThrow(client, {
|
|
227
227
|
address: values.factoryAddresses.PROTOCOL_ADMIN,
|
|
228
228
|
chain: values.chain,
|
|
229
|
-
account: client.account
|
|
229
|
+
account: client.account,
|
|
230
230
|
abi: ProtocolAdmin,
|
|
231
231
|
functionName: 'executeBatch',
|
|
232
232
|
args: [operation.targets, operation.values, operation.payloads, operation.predecessor, operation.salt],
|
|
@@ -241,7 +241,7 @@ export const _executeRaw = async (client, target, value, payload, predecessor, s
|
|
|
241
241
|
return writeContractOrThrow(client, {
|
|
242
242
|
address: values.factoryAddresses.PROTOCOL_ADMIN,
|
|
243
243
|
chain: values.chain,
|
|
244
|
-
account: client.account
|
|
244
|
+
account: client.account,
|
|
245
245
|
abi: ProtocolAdmin,
|
|
246
246
|
functionName: 'execute',
|
|
247
247
|
args: [target, value, payload, predecessor, salt],
|
|
@@ -262,7 +262,7 @@ export const _cancel = async (client, id) => {
|
|
|
262
262
|
return writeContractOrThrow(client, {
|
|
263
263
|
address: values.factoryAddresses.PROTOCOL_ADMIN,
|
|
264
264
|
chain: values.chain,
|
|
265
|
-
account: client.account
|
|
265
|
+
account: client.account,
|
|
266
266
|
abi: ProtocolAdmin,
|
|
267
267
|
functionName: 'cancel',
|
|
268
268
|
args: [id]
|
|
@@ -284,7 +284,7 @@ export const _unpauseInstantly = async (client, target) => {
|
|
|
284
284
|
return writeContractOrThrow(client, {
|
|
285
285
|
address: values.factoryAddresses.PROTOCOL_ADMIN,
|
|
286
286
|
chain: values.chain,
|
|
287
|
-
account: client.account
|
|
287
|
+
account: client.account,
|
|
288
288
|
abi: ProtocolAdmin,
|
|
289
289
|
functionName: 'unpauseInstantly',
|
|
290
290
|
args: [target]
|
|
@@ -304,7 +304,7 @@ export const _revokeCancellersInstantly = async (client, accounts) => {
|
|
|
304
304
|
return writeContractOrThrow(client, {
|
|
305
305
|
address: values.factoryAddresses.PROTOCOL_ADMIN,
|
|
306
306
|
chain: values.chain,
|
|
307
|
-
account: client.account
|
|
307
|
+
account: client.account,
|
|
308
308
|
abi: ProtocolAdmin,
|
|
309
309
|
functionName: 'revokeCancellersInstantly',
|
|
310
310
|
args: [accounts]
|
|
@@ -327,7 +327,7 @@ export const _disableAdminInstantly = async (client, target) => {
|
|
|
327
327
|
return writeContractOrThrow(client, {
|
|
328
328
|
address: values.factoryAddresses.PROTOCOL_ADMIN,
|
|
329
329
|
chain: values.chain,
|
|
330
|
-
account: client.account
|
|
330
|
+
account: client.account,
|
|
331
331
|
abi: ProtocolAdmin,
|
|
332
332
|
functionName: 'disableAdminInstantly',
|
|
333
333
|
args: [target ?? values.factoryAddresses.REGISTRY]
|
|
@@ -348,7 +348,7 @@ export const _acceptOwnershipBatch = async (client, targets) => {
|
|
|
348
348
|
return writeContractOrThrow(client, {
|
|
349
349
|
address: values.factoryAddresses.PROTOCOL_ADMIN,
|
|
350
350
|
chain: values.chain,
|
|
351
|
-
account: client.account
|
|
351
|
+
account: client.account,
|
|
352
352
|
abi: ProtocolAdmin,
|
|
353
353
|
functionName: 'acceptOwnershipBatch',
|
|
354
354
|
args: [targets]
|
|
@@ -365,7 +365,7 @@ export const _renounceRole = async (client, role, account) => {
|
|
|
365
365
|
return writeContractOrThrow(client, {
|
|
366
366
|
address: values.factoryAddresses.PROTOCOL_ADMIN,
|
|
367
367
|
chain: values.chain,
|
|
368
|
-
account: client.account
|
|
368
|
+
account: client.account,
|
|
369
369
|
abi: ProtocolAdmin,
|
|
370
370
|
functionName: 'renounceRole',
|
|
371
371
|
args: [role, account]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { publicActions } from "viem";
|
|
2
|
-
import { _getChainSpecificConstants } from "../../constants.js";
|
|
2
|
+
import { _chainId, _getChainSpecificConstants } from "../../constants.js";
|
|
3
3
|
import { DeviceWalletFactory } from "../../../abis/index.js";
|
|
4
4
|
// Read-only admin logic for `DeviceWalletFactory` - the contract's public
|
|
5
5
|
// storage getters and `view` functions, surfaced for the backend.
|
|
@@ -10,7 +10,7 @@ import { DeviceWalletFactory } from "../../../abis/index.js";
|
|
|
10
10
|
// `MissingEOAWalletError` guard.
|
|
11
11
|
/** The admin EOA (`eSIMWalletAdmin`) currently set on the factory. */
|
|
12
12
|
export const _eSIMWalletAdmin = async (client) => {
|
|
13
|
-
const chainID = await client
|
|
13
|
+
const chainID = await _chainId(client);
|
|
14
14
|
const rpcURL = client.transport.url;
|
|
15
15
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
16
16
|
return client.extend(publicActions).readContract({
|
|
@@ -22,7 +22,7 @@ export const _eSIMWalletAdmin = async (client) => {
|
|
|
22
22
|
};
|
|
23
23
|
/** Whether a device wallet has been registered with the factory. */
|
|
24
24
|
export const _deviceWalletInfoAdded = async (client, deviceWallet) => {
|
|
25
|
-
const chainID = await client
|
|
25
|
+
const chainID = await _chainId(client);
|
|
26
26
|
const rpcURL = client.transport.url;
|
|
27
27
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
28
28
|
return client.extend(publicActions).readContract({
|
|
@@ -34,7 +34,7 @@ export const _deviceWalletInfoAdded = async (client, deviceWallet) => {
|
|
|
34
34
|
};
|
|
35
35
|
/** The current device-wallet beacon implementation. */
|
|
36
36
|
export const _getCurrentDeviceWalletImplementation = async (client) => {
|
|
37
|
-
const chainID = await client
|
|
37
|
+
const chainID = await _chainId(client);
|
|
38
38
|
const rpcURL = client.transport.url;
|
|
39
39
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
40
40
|
return client.extend(publicActions).readContract({
|
|
@@ -57,7 +57,7 @@ export const _getCurrentDeviceWalletImplementation = async (client) => {
|
|
|
57
57
|
* Reverts on an empty identifier or a key that is not a point on the P256 curve.
|
|
58
58
|
*/
|
|
59
59
|
export const _preCreateAccountValidation = async (client, deviceUniqueIdentifier, deviceWalletOwnerKey) => {
|
|
60
|
-
const chainID = await client
|
|
60
|
+
const chainID = await _chainId(client);
|
|
61
61
|
const rpcURL = client.transport.url;
|
|
62
62
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
63
63
|
return client.extend(publicActions).readContract({
|
|
@@ -68,7 +68,7 @@ export const _preCreateAccountValidation = async (client, deviceUniqueIdentifier
|
|
|
68
68
|
});
|
|
69
69
|
};
|
|
70
70
|
const _addressGetter = async (client, functionName) => {
|
|
71
|
-
const chainID = await client
|
|
71
|
+
const chainID = await _chainId(client);
|
|
72
72
|
const rpcURL = client.transport.url;
|
|
73
73
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
74
74
|
return client.extend(publicActions).readContract({
|
|
@@ -106,7 +106,7 @@ export const _pendingOwner = (client) => _addressGetter(client, "pendingOwner");
|
|
|
106
106
|
* arg order is `(ownerKey, uid, salt)` - note this differs from `createAccount`.
|
|
107
107
|
*/
|
|
108
108
|
export const _getCounterFactualAddress = async (client, deviceWalletOwnerKey, deviceUniqueIdentifier, salt) => {
|
|
109
|
-
const chainID = await client
|
|
109
|
+
const chainID = await _chainId(client);
|
|
110
110
|
const rpcURL = client.transport.url;
|
|
111
111
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
112
112
|
return client.extend(publicActions).readContract({
|
|
@@ -122,7 +122,7 @@ export const _getCounterFactualAddress = async (client, deviceWalletOwnerKey, de
|
|
|
122
122
|
* is what stops a non-UUPS address being installed.
|
|
123
123
|
*/
|
|
124
124
|
export const _proxiableUUID = async (client) => {
|
|
125
|
-
const chainID = await client
|
|
125
|
+
const chainID = await _chainId(client);
|
|
126
126
|
const rpcURL = client.transport.url;
|
|
127
127
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
128
128
|
return client.extend(publicActions).readContract({
|
|
@@ -134,7 +134,7 @@ export const _proxiableUUID = async (client) => {
|
|
|
134
134
|
};
|
|
135
135
|
/** The OpenZeppelin upgrade interface this proxy speaks, currently `"5.0.0"`. */
|
|
136
136
|
export const _upgradeInterfaceVersion = async (client) => {
|
|
137
|
-
const chainID = await client
|
|
137
|
+
const chainID = await _chainId(client);
|
|
138
138
|
const rpcURL = client.transport.url;
|
|
139
139
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
140
140
|
return client.extend(publicActions).readContract({
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { publicActions } from "viem";
|
|
2
|
-
import { _getChainSpecificConstants } from "../../constants.js";
|
|
2
|
+
import { _chainId, _getChainSpecificConstants } from "../../constants.js";
|
|
3
3
|
import { ESIMWalletFactory } from "../../../abis/index.js";
|
|
4
4
|
// Read-only admin logic for `ESIMWalletFactory` - its public storage getter and
|
|
5
5
|
// `view` function, surfaced for the backend. Each read extends the `WalletClient`
|
|
6
6
|
// with `publicActions` (no EOA account required).
|
|
7
7
|
/** Whether an eSIM wallet was deployed by this factory. */
|
|
8
8
|
export const _isESIMWalletDeployed = async (client, eSIMWallet) => {
|
|
9
|
-
const chainID = await client
|
|
9
|
+
const chainID = await _chainId(client);
|
|
10
10
|
const rpcURL = client.transport.url;
|
|
11
11
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
12
12
|
return client.extend(publicActions).readContract({
|
|
@@ -18,7 +18,7 @@ export const _isESIMWalletDeployed = async (client, eSIMWallet) => {
|
|
|
18
18
|
};
|
|
19
19
|
/** The current eSIM-wallet beacon implementation. */
|
|
20
20
|
export const _getCurrentESIMWalletImplementation = async (client) => {
|
|
21
|
-
const chainID = await client
|
|
21
|
+
const chainID = await _chainId(client);
|
|
22
22
|
const rpcURL = client.transport.url;
|
|
23
23
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
24
24
|
return client.extend(publicActions).readContract({
|
|
@@ -34,7 +34,7 @@ export const _getCurrentESIMWalletImplementation = async (client) => {
|
|
|
34
34
|
* is what stops a non-UUPS address being installed.
|
|
35
35
|
*/
|
|
36
36
|
export const _proxiableUUID = async (client) => {
|
|
37
|
-
const chainID = await client
|
|
37
|
+
const chainID = await _chainId(client);
|
|
38
38
|
const rpcURL = client.transport.url;
|
|
39
39
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
40
40
|
return client.extend(publicActions).readContract({
|
|
@@ -46,7 +46,7 @@ export const _proxiableUUID = async (client) => {
|
|
|
46
46
|
};
|
|
47
47
|
/** The OpenZeppelin upgrade interface this proxy speaks, currently `"5.0.0"`. */
|
|
48
48
|
export const _upgradeInterfaceVersion = async (client) => {
|
|
49
|
-
const chainID = await client
|
|
49
|
+
const chainID = await _chainId(client);
|
|
50
50
|
const rpcURL = client.transport.url;
|
|
51
51
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
52
52
|
return client.extend(publicActions).readContract({
|
|
@@ -62,7 +62,7 @@ export const _upgradeInterfaceVersion = async (client) => {
|
|
|
62
62
|
* be scheduled instead.
|
|
63
63
|
*/
|
|
64
64
|
export const _owner = async (client) => {
|
|
65
|
-
const chainID = await client
|
|
65
|
+
const chainID = await _chainId(client);
|
|
66
66
|
const rpcURL = client.transport.url;
|
|
67
67
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
68
68
|
return client.extend(publicActions).readContract({
|
|
@@ -78,7 +78,7 @@ export const _owner = async (client) => {
|
|
|
78
78
|
* been offered to the timelock.
|
|
79
79
|
*/
|
|
80
80
|
export const _pendingOwner = async (client) => {
|
|
81
|
-
const chainID = await client
|
|
81
|
+
const chainID = await _chainId(client);
|
|
82
82
|
const rpcURL = client.transport.url;
|
|
83
83
|
const values = _getChainSpecificConstants(chainID, rpcURL);
|
|
84
84
|
return client.extend(publicActions).readContract({
|