@tokenops/sdk 1.0.0 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +102 -18
- package/dist/{chunk-HTOMTEA3.cjs → chunk-23F7JIK5.cjs} +2 -2
- package/dist/{chunk-ECT3NL2L.js → chunk-3PQ2RFPC.js} +3 -3
- package/dist/{chunk-OLDGMKW2.cjs → chunk-3ZRHDTEX.cjs} +33 -0
- package/dist/chunk-5KHIQG7Y.cjs +2180 -0
- package/dist/{chunk-T5LVV3KY.cjs → chunk-FPQBFIUW.cjs} +3 -3
- package/dist/{chunk-QIHZVLIK.js → chunk-FXCW7LVB.js} +1 -1
- package/dist/{chunk-K6MFFDBJ.cjs → chunk-G7G75C46.cjs} +6 -6
- package/dist/{chunk-72YGZEQE.js → chunk-IR5AK5U5.js} +6 -8
- package/dist/{chunk-CMRETRZO.js → chunk-ITQBDRWX.js} +1 -1
- package/dist/{chunk-ZHFLRKFY.js → chunk-JJ4R5QXF.js} +1 -1
- package/dist/{chunk-COPFW5Z4.js → chunk-M7V2EDPB.js} +30 -1
- package/dist/{chunk-UOG4PJL5.js → chunk-OQZAZIAS.js} +8 -10
- package/dist/{chunk-SUOG3BQS.cjs → chunk-OYLZEEHF.cjs} +1 -2
- package/dist/chunk-QE7ZONJ2.js +2171 -0
- package/dist/{chunk-62DF53UQ.cjs → chunk-SAGJIEQK.cjs} +7 -9
- package/dist/{chunk-JFR5J4FL.cjs → chunk-SEKC7H5Y.cjs} +8 -8
- package/dist/{chunk-6ECAHP5O.cjs → chunk-SYHXDHWX.cjs} +9 -11
- package/dist/{chunk-QCA7O2Q5.cjs → chunk-W7JHOK7G.cjs} +4 -4
- package/dist/{chunk-52TC6BF7.js → chunk-X56UVEXS.js} +1 -2
- package/dist/{chunk-HGXNRR25.js → chunk-XWDVPV42.js} +2 -2
- package/dist/core/addresses.d.ts +22 -0
- package/dist/core/errors.d.ts +1 -1
- package/dist/core/telemetry.d.ts +0 -3
- package/dist/fhe/operators.d.ts +1 -1
- package/dist/fhe-airdrop/advanced/factory-advanced.d.ts +3 -3
- package/dist/fhe-airdrop/advanced/index.cjs +5 -5
- package/dist/fhe-airdrop/advanced/index.d.cts +2 -2
- package/dist/fhe-airdrop/advanced/index.d.ts +2 -2
- package/dist/fhe-airdrop/advanced/index.js +3 -3
- package/dist/fhe-airdrop/advanced/react/index.cjs +8 -8
- package/dist/fhe-airdrop/advanced/react/index.d.cts +1 -1
- package/dist/fhe-airdrop/advanced/react/index.d.ts +1 -1
- package/dist/fhe-airdrop/advanced/react/index.js +4 -4
- package/dist/fhe-airdrop/factory.d.ts +8 -10
- package/dist/fhe-airdrop/index.cjs +9 -9
- package/dist/fhe-airdrop/index.js +2 -2
- package/dist/fhe-airdrop/react/index.cjs +69 -69
- package/dist/fhe-airdrop/react/index.js +4 -4
- package/dist/fhe-disperse/index.cjs +19 -19
- package/dist/fhe-disperse/index.js +2 -2
- package/dist/fhe-disperse/react/index.cjs +20 -20
- package/dist/fhe-disperse/react/index.js +3 -3
- package/dist/fhe-disperse/react/useSingletonWithdrawTokenFee.d.ts +2 -2
- package/dist/fhe-vesting/advanced/factory-advanced.d.ts +2 -2
- package/dist/fhe-vesting/advanced/index.cjs +5 -5
- package/dist/fhe-vesting/advanced/index.d.cts +2 -2
- package/dist/fhe-vesting/advanced/index.d.ts +2 -2
- package/dist/fhe-vesting/advanced/index.js +3 -3
- package/dist/fhe-vesting/advanced/react/index.cjs +8 -8
- package/dist/fhe-vesting/advanced/react/index.d.cts +1 -1
- package/dist/fhe-vesting/advanced/react/index.d.ts +1 -1
- package/dist/fhe-vesting/advanced/react/index.js +5 -5
- package/dist/fhe-vesting/factory.d.ts +6 -8
- package/dist/fhe-vesting/index.cjs +25 -25
- package/dist/fhe-vesting/index.js +3 -3
- package/dist/fhe-vesting/manager.d.ts +1 -2
- package/dist/fhe-vesting/react/index.cjs +126 -126
- package/dist/fhe-vesting/react/index.js +4 -4
- package/dist/fhe-vesting/react/useManagerWithdrawTokenFee.d.ts +1 -1
- package/dist/fhe-vesting/types.d.ts +0 -2
- package/dist/index.cjs +27 -11
- package/dist/index.js +1 -1
- package/dist/testnet-faucet/abis/confidential-test-token.d.ts +1039 -0
- package/dist/testnet-faucet/abis/index.d.ts +2 -0
- package/dist/testnet-faucet/abis/test-token.d.ts +253 -0
- package/dist/testnet-faucet/errors.d.ts +21 -0
- package/dist/testnet-faucet/faucet.d.ts +173 -0
- package/dist/testnet-faucet/index.cjs +208 -0
- package/dist/testnet-faucet/index.d.cts +8 -0
- package/dist/testnet-faucet/index.d.ts +8 -0
- package/dist/testnet-faucet/index.js +7 -0
- package/dist/testnet-faucet/react/_shared.d.ts +61 -0
- package/dist/testnet-faucet/react/index.cjs +379 -0
- package/dist/testnet-faucet/react/index.d.cts +38 -0
- package/dist/testnet-faucet/react/index.d.ts +38 -0
- package/dist/testnet-faucet/react/index.js +219 -0
- package/dist/testnet-faucet/react/useConfidentialBalance.d.ts +24 -0
- package/dist/testnet-faucet/react/useFaucetDecimals.d.ts +9 -0
- package/dist/testnet-faucet/react/useFaucetMetadata.d.ts +14 -0
- package/dist/testnet-faucet/react/useFaucetRate.d.ts +11 -0
- package/dist/testnet-faucet/react/useInferredTotalSupply.d.ts +11 -0
- package/dist/testnet-faucet/react/useMaxTotalSupply.d.ts +10 -0
- package/dist/testnet-faucet/react/useMintConfidential.d.ts +35 -0
- package/dist/testnet-faucet/react/useMintUnderlying.d.ts +31 -0
- package/dist/testnet-faucet/react/useUnderlyingBalance.d.ts +19 -0
- package/dist/testnet-faucet/react/useUnderlyingDecimals.d.ts +9 -0
- package/dist/testnet-faucet/react/useUnderlyingTokenAddress.d.ts +12 -0
- package/dist/testnet-faucet/types.d.ts +92 -0
- package/dist/testnet-faucet/validate.d.ts +44 -0
- package/package.json +77 -29
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkSYHXDHWX_cjs = require('./chunk-SYHXDHWX.cjs');
|
|
4
4
|
|
|
5
5
|
// src/fhe-airdrop/advanced/factory-advanced.ts
|
|
6
|
-
var ConfidentialAirdropFactoryAdvancedClient = class extends
|
|
6
|
+
var ConfidentialAirdropFactoryAdvancedClient = class extends chunkSYHXDHWX_cjs.ConfidentialAirdropFactoryClient {
|
|
7
7
|
/**
|
|
8
8
|
* Compute the deterministic CREATE2 address for an airdrop clone without
|
|
9
9
|
* deploying it.
|
|
@@ -21,7 +21,7 @@ var ConfidentialAirdropFactoryAdvancedClient = class extends chunk6ECAHP5O_cjs.C
|
|
|
21
21
|
async predictAirdropAddress(args) {
|
|
22
22
|
return this.publicClient.readContract({
|
|
23
23
|
address: this.address,
|
|
24
|
-
abi:
|
|
24
|
+
abi: chunkSYHXDHWX_cjs.confidentialAirdropFactoryAbi,
|
|
25
25
|
functionName: "predictAirdropAddress",
|
|
26
26
|
args: [toAbiParams(args.params), args.userSalt, args.deployer, args.gasFee]
|
|
27
27
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { mapZamaError } from './chunk-ZXCOJY2Z.js';
|
|
2
2
|
import { getFhevmAclAddress, requireFhevmAclAddress, ACL_ALLOWED_EVENT } from './chunk-FYQ2UW4T.js';
|
|
3
3
|
import { SDK_VERSION, isContractRevert, mapContractRevert } from './chunk-JFLEEXKP.js';
|
|
4
|
-
import { getFheDisperseSingletonAddress } from './chunk-
|
|
4
|
+
import { getFheDisperseSingletonAddress } from './chunk-M7V2EDPB.js';
|
|
5
5
|
import { normaliseAddress } from './chunk-BE2AIZ3K.js';
|
|
6
6
|
import { withTelemetry } from './chunk-Q2GP5UDC.js';
|
|
7
7
|
import { asExternalInputProof, asEncryptedHandle } from './chunk-KWFFIJYX.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunk5SA2HF2W_cjs = require('./chunk-5SA2HF2W.cjs');
|
|
4
|
-
var
|
|
5
|
-
var
|
|
4
|
+
var chunkSYHXDHWX_cjs = require('./chunk-SYHXDHWX.cjs');
|
|
5
|
+
var chunk3ZRHDTEX_cjs = require('./chunk-3ZRHDTEX.cjs');
|
|
6
6
|
var chunk56UI7LUR_cjs = require('./chunk-56UI7LUR.cjs');
|
|
7
7
|
var react = require('react');
|
|
8
8
|
var wagmi = require('wagmi');
|
|
@@ -12,7 +12,7 @@ var FHE_AIRDROP_NAMESPACE = "fhe-airdrop";
|
|
|
12
12
|
function tryResolveFactoryAddress(override, chainId) {
|
|
13
13
|
if (override) return override;
|
|
14
14
|
if (chainId === void 0) return void 0;
|
|
15
|
-
return
|
|
15
|
+
return chunk3ZRHDTEX_cjs.getFheAirdropFactoryAddress(chainId);
|
|
16
16
|
}
|
|
17
17
|
function useMemoFactoryClient(opts = {}) {
|
|
18
18
|
const publicClient = wagmi.usePublicClient({ chainId: opts.chainId });
|
|
@@ -25,14 +25,14 @@ function useMemoFactoryClient(opts = {}) {
|
|
|
25
25
|
const client = react.useMemo(() => {
|
|
26
26
|
if (!publicClient) return void 0;
|
|
27
27
|
if (!resolvedAddress) return void 0;
|
|
28
|
-
return
|
|
28
|
+
return chunkSYHXDHWX_cjs.createConfidentialAirdropFactoryClient({
|
|
29
29
|
publicClient,
|
|
30
30
|
...walletClient ? { walletClient } : {},
|
|
31
31
|
address: resolvedAddress,
|
|
32
32
|
...chainId !== void 0 ? { chainId } : {},
|
|
33
33
|
// Lazy — invoked per-encryption inside the headless client. Picks up
|
|
34
34
|
// whichever EncryptorSource the consumer last passed in.
|
|
35
|
-
encryptor: () =>
|
|
35
|
+
encryptor: () => chunkSYHXDHWX_cjs.resolveEncryptor(encryptorSourceRef.current)
|
|
36
36
|
});
|
|
37
37
|
}, [publicClient, walletClient, resolvedAddress, chainId]);
|
|
38
38
|
return {
|
|
@@ -54,7 +54,7 @@ function computeFactoryResolutionError(override, chainId) {
|
|
|
54
54
|
clientLabel: "ConfidentialAirdropFactoryClient"
|
|
55
55
|
});
|
|
56
56
|
}
|
|
57
|
-
const resolved =
|
|
57
|
+
const resolved = chunk3ZRHDTEX_cjs.getFheAirdropFactoryAddress(chainId);
|
|
58
58
|
if (!resolved) {
|
|
59
59
|
return new chunk56UI7LUR_cjs.DeploymentAddressUnavailableError({
|
|
60
60
|
reason: "registry-not-deployed",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SDK_VERSION, mapContractRevert, isContractRevert } from './chunk-JFLEEXKP.js';
|
|
2
|
-
import { getFheVestingFactoryAddress } from './chunk-
|
|
2
|
+
import { getFheVestingFactoryAddress } from './chunk-M7V2EDPB.js';
|
|
3
3
|
import { normaliseAddress } from './chunk-BE2AIZ3K.js';
|
|
4
4
|
import { withTelemetry } from './chunk-Q2GP5UDC.js';
|
|
5
5
|
import { asTxHash } from './chunk-KWFFIJYX.js';
|
|
@@ -469,11 +469,10 @@ var ConfidentialVestingFactoryClient = class {
|
|
|
469
469
|
* Deploy a new `ConfidentialVestingManager` clone via the factory and return
|
|
470
470
|
* its address, parsed from the `ManagerCreated` event in the tx receipt.
|
|
471
471
|
*
|
|
472
|
-
* **This is the headline factory entry point.**
|
|
473
|
-
*
|
|
474
|
-
* the address is only knowable after the tx mines (the factory packs
|
|
472
|
+
* **This is the headline factory entry point.** It returns one rich-return
|
|
473
|
+
* shape: the address is only knowable after the tx mines (the factory packs
|
|
475
474
|
* `block.number` into the clone's immutable args), so a hash-only variant
|
|
476
|
-
*
|
|
475
|
+
* would force consumers to re-derive what the SDK already had to compute.
|
|
477
476
|
*
|
|
478
477
|
* Calls `createManagerWithOptions` when `splitEnabled` or `pausableEnabled`
|
|
479
478
|
* is provided; otherwise calls the simpler `createManager` entry point.
|
|
@@ -594,9 +593,8 @@ var ConfidentialVestingFactoryClient = class {
|
|
|
594
593
|
* Alias for {@link ConfidentialVestingFactoryClient.implementation} that matches
|
|
595
594
|
* the contract's storage field name (`_managerImplementation`).
|
|
596
595
|
*
|
|
597
|
-
*
|
|
598
|
-
*
|
|
599
|
-
* server devs reading the Solidity reach for `factory.managerImplementation()`
|
|
596
|
+
* Named for clarity: server devs reading the Solidity reach for
|
|
597
|
+
* `factory.managerImplementation()`
|
|
600
598
|
* via autocomplete (the contract storage slot name) and hit a TS2551. The
|
|
601
599
|
* canonical `implementation()` method is retained for backwards-compat and
|
|
602
600
|
* cross-factory uniformity (fhe-airdrop exposes the same shape).
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConfidentialVestingFactoryClient, confidentialVestingFactoryAbi } from './chunk-
|
|
1
|
+
import { ConfidentialVestingFactoryClient, confidentialVestingFactoryAbi } from './chunk-IR5AK5U5.js';
|
|
2
2
|
|
|
3
3
|
// src/fhe-vesting/advanced/factory-advanced.ts
|
|
4
4
|
var ConfidentialVestingFactoryAdvancedClient = class extends ConfidentialVestingFactoryClient {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ConfidentialAirdropFactoryClient, confidentialAirdropFactoryAbi } from './chunk-
|
|
1
|
+
import { ConfidentialAirdropFactoryClient, confidentialAirdropFactoryAbi } from './chunk-OQZAZIAS.js';
|
|
2
2
|
|
|
3
3
|
// src/fhe-airdrop/advanced/factory-advanced.ts
|
|
4
4
|
var ConfidentialAirdropFactoryAdvancedClient = class extends ConfidentialAirdropFactoryClient {
|
|
@@ -19,6 +19,23 @@ var DEPLOYED_ADDRESSES = {
|
|
|
19
19
|
[mainnet.id]: "0x4fC0d28cBe4B82D512Ad0B42F6787480Cc98cC70",
|
|
20
20
|
[sepolia.id]: "0x710dD9885Cc9986EfD234E7719483147a6d8DBb4"
|
|
21
21
|
}
|
|
22
|
+
},
|
|
23
|
+
// Testnet-only faucet token pair (see `/testnet-faucet`). The standard
|
|
24
|
+
// `TokenopsTestToken` (TTT, 18-decimal ERC-20, open mint) and its
|
|
25
|
+
// confidential ERC-7984 wrapper `ConfidentialTokenopsTestToken` (CTTT,
|
|
26
|
+
// 6-decimal, open backed faucet mint). Sepolia only — these mint value-less
|
|
27
|
+
// test tokens to anyone, so they MUST NOT appear on mainnet.
|
|
28
|
+
// `confidentialTestToken` is the UUPS *proxy* address; call it with the
|
|
29
|
+
// implementation ABI.
|
|
30
|
+
testnetFaucet: {
|
|
31
|
+
testToken: {
|
|
32
|
+
[sepolia.id]: "0x37a057Fa8C201a7bf8caF32dfa9A0878f577D92b"
|
|
33
|
+
// mainnet omitted — testnet-only by design.
|
|
34
|
+
},
|
|
35
|
+
confidentialTestToken: {
|
|
36
|
+
[sepolia.id]: "0x258F9D60dc023870e4E3109c894D834D5377361a"
|
|
37
|
+
// mainnet omitted — testnet-only by design.
|
|
38
|
+
}
|
|
22
39
|
}
|
|
23
40
|
};
|
|
24
41
|
function getDeployedAddress(product, contract, chainId) {
|
|
@@ -56,6 +73,18 @@ function getFheDisperseSingletonAddress(chainId) {
|
|
|
56
73
|
function requireFheDisperseSingletonAddress(chainId) {
|
|
57
74
|
return requireDeployedAddress("fheDisperse", "disperseConfidentialSingleton", chainId);
|
|
58
75
|
}
|
|
76
|
+
function getTestTokenAddress(chainId) {
|
|
77
|
+
return getDeployedAddress("testnetFaucet", "testToken", chainId);
|
|
78
|
+
}
|
|
79
|
+
function requireTestTokenAddress(chainId) {
|
|
80
|
+
return requireDeployedAddress("testnetFaucet", "testToken", chainId);
|
|
81
|
+
}
|
|
82
|
+
function getConfidentialTestTokenAddress(chainId) {
|
|
83
|
+
return getDeployedAddress("testnetFaucet", "confidentialTestToken", chainId);
|
|
84
|
+
}
|
|
85
|
+
function requireConfidentialTestTokenAddress(chainId) {
|
|
86
|
+
return requireDeployedAddress("testnetFaucet", "confidentialTestToken", chainId);
|
|
87
|
+
}
|
|
59
88
|
function chainsWithKnownRegistryEntry(product) {
|
|
60
89
|
const productEntry = DEPLOYED_ADDRESSES[product];
|
|
61
90
|
const ids = /* @__PURE__ */ new Set();
|
|
@@ -79,4 +108,4 @@ function chainsWithDeployment(product) {
|
|
|
79
108
|
).sort((a, b) => a - b);
|
|
80
109
|
}
|
|
81
110
|
|
|
82
|
-
export { DEPLOYED_ADDRESSES, chainsWithDeployment, chainsWithKnownRegistryEntry, getDeployedAddress, getFheAirdropFactoryAddress, getFheDisperseSingletonAddress, getFheVestingFactoryAddress, requireFheAirdropFactoryAddress, requireFheDisperseSingletonAddress, requireFheVestingFactoryAddress };
|
|
111
|
+
export { DEPLOYED_ADDRESSES, chainsWithDeployment, chainsWithKnownRegistryEntry, getConfidentialTestTokenAddress, getDeployedAddress, getFheAirdropFactoryAddress, getFheDisperseSingletonAddress, getFheVestingFactoryAddress, getTestTokenAddress, requireConfidentialTestTokenAddress, requireFheAirdropFactoryAddress, requireFheDisperseSingletonAddress, requireFheVestingFactoryAddress, requireTestTokenAddress };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SDK_VERSION, mapContractRevert, isContractRevert } from './chunk-JFLEEXKP.js';
|
|
2
|
-
import { getFheAirdropFactoryAddress } from './chunk-
|
|
2
|
+
import { getFheAirdropFactoryAddress } from './chunk-M7V2EDPB.js';
|
|
3
3
|
import { normaliseAddress } from './chunk-BE2AIZ3K.js';
|
|
4
4
|
import { withTelemetry } from './chunk-Q2GP5UDC.js';
|
|
5
5
|
import { asExternalInputProof, asEncryptedHandle, asSignature, asTxHash } from './chunk-KWFFIJYX.js';
|
|
@@ -1077,11 +1077,10 @@ var ConfidentialAirdropFactoryClient = class {
|
|
|
1077
1077
|
* Deploy a new airdrop clone via the factory and return its address, parsed
|
|
1078
1078
|
* from the `ConfidentialAirdropCreated` event in the tx receipt.
|
|
1079
1079
|
*
|
|
1080
|
-
* **This is the headline factory entry point.**
|
|
1081
|
-
*
|
|
1082
|
-
*
|
|
1083
|
-
*
|
|
1084
|
-
* themselves.
|
|
1080
|
+
* **This is the headline factory entry point.** It returns one rich-return
|
|
1081
|
+
* shape: most consumers want the deployed address back, and the SDK already
|
|
1082
|
+
* waits for and parses the event, so there's no reason to make consumers do
|
|
1083
|
+
* it themselves.
|
|
1085
1084
|
*
|
|
1086
1085
|
* Internally: `writeContract` → {@link PublicClient.waitForTransactionReceipt} →
|
|
1087
1086
|
* `parseEventLogs({ eventName: "ConfidentialAirdropCreated" })`.
|
|
@@ -1119,7 +1118,7 @@ var ConfidentialAirdropFactoryClient = class {
|
|
|
1119
1118
|
*
|
|
1120
1119
|
* Symmetric with {@link ConfidentialAirdropFactoryClient.createConfidentialAirdrop}
|
|
1121
1120
|
* — both return `{ hash, airdrop }` parsed from the
|
|
1122
|
-
* `ConfidentialAirdropCreated` event
|
|
1121
|
+
* `ConfidentialAirdropCreated` event.
|
|
1123
1122
|
*
|
|
1124
1123
|
* @example
|
|
1125
1124
|
* const { hash, airdrop } = await factory.createAndFundConfidentialAirdrop({
|
|
@@ -1294,9 +1293,8 @@ var ConfidentialAirdropFactoryClient = class {
|
|
|
1294
1293
|
* Alias for {@link ConfidentialAirdropFactoryClient.implementation} that matches
|
|
1295
1294
|
* the contract's storage field name (`_airdropImplementation`).
|
|
1296
1295
|
*
|
|
1297
|
-
*
|
|
1298
|
-
*
|
|
1299
|
-
* backend-integrator-r14 minor). The airdrop factory has the same
|
|
1296
|
+
* Provided for parity with `fhe-vesting`'s `managerImplementation()` alias.
|
|
1297
|
+
* The airdrop factory has the same
|
|
1300
1298
|
* LibClone shape mirroring `_airdropImplementation` storage, so server
|
|
1301
1299
|
* devs reading the Solidity first reach for `factory.airdropImplementation()`
|
|
1302
1300
|
* via autocomplete and would otherwise hit a TS2551 on the SDK's
|
|
@@ -1400,8 +1400,7 @@ var ConfidentialVestingManagerClient = class {
|
|
|
1400
1400
|
* Accepts `bigint | number` for `start` / `end` for ergonomics on read paths
|
|
1401
1401
|
* — CI scripts typically derive these from `Number(process.env.X)` and
|
|
1402
1402
|
* forcing bigint coercion at the call site is a pure paper cut. The
|
|
1403
|
-
* underlying contract reads through unchanged (viem coerces).
|
|
1404
|
-
* devops-integrator MINOR-4; R25 close.
|
|
1403
|
+
* underlying contract reads through unchanged (viem coerces).
|
|
1405
1404
|
*/
|
|
1406
1405
|
async getAllRecipientsSliced(start, end) {
|
|
1407
1406
|
return this.#read("getAllRecipientsSliced", [BigInt(start), BigInt(end)]);
|