@tokenops/sdk 1.5.1 → 2.0.0-alpha.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/CHANGELOG.md +198 -2
- package/CONTRIBUTING.md +4 -2
- package/README.md +146 -90
- package/SECURITY.md +7 -1
- package/SUPPORT.md +47 -0
- package/dist/{chunk-YQIBBEFJ.js → chunk-335Z2W67.js} +1 -1
- package/dist/{chunk-2NCLOQ56.cjs → chunk-3QHNYEQD.cjs} +77 -0
- package/dist/chunk-456VDDA3.js +370 -0
- package/dist/{chunk-SG65XWH7.js → chunk-4RAAATVY.js} +1 -3
- package/dist/{chunk-6BMP4ICG.js → chunk-4TSDNZQ3.js} +60 -2
- package/dist/{chunk-PUPKNW3R.cjs → chunk-5576FRT3.cjs} +30 -6
- package/dist/{chunk-AOP6HMPW.js → chunk-6GNR22OV.js} +75 -1
- package/dist/{chunk-NTZY6IB7.js → chunk-6NAVMWZQ.js} +4 -3
- package/dist/{chunk-C7BRZXJA.cjs → chunk-6PXXGACR.cjs} +8 -7
- package/dist/{chunk-IJFQ5L4I.js → chunk-74QFZ5MK.js} +4 -3
- package/dist/chunk-7AFPOE7N.cjs +59 -0
- package/dist/chunk-AXIPOR3C.js +56 -0
- package/dist/chunk-CTED3MTR.cjs +380 -0
- package/dist/{chunk-XGGTQQFH.js → chunk-DZHYSUGY.js} +28 -7
- package/dist/{chunk-OXTLPTO3.js → chunk-EAJ7SYHE.js} +4 -3
- package/dist/{chunk-V2PXZVBF.cjs → chunk-FGEB7RMY.cjs} +4 -4
- package/dist/chunk-GKKDAW44.js +8823 -0
- package/dist/{chunk-2PWNH3UE.js → chunk-H5POPGOZ.js} +63 -5
- package/dist/{chunk-W7IGCOVL.cjs → chunk-JQYC66TO.cjs} +9 -8
- package/dist/{chunk-PFXURMBZ.cjs → chunk-JZLGCTGK.cjs} +68 -8
- package/dist/{chunk-JYOTGRSO.cjs → chunk-KFRDLKMA.cjs} +61 -1
- package/dist/chunk-M4IT6DNJ.cjs +608 -0
- package/dist/{chunk-KLKI352M.cjs → chunk-MVDQMV25.cjs} +0 -3
- package/dist/chunk-NCVX3K2N.cjs +161 -0
- package/dist/chunk-NWFMBLSQ.js +4 -0
- package/dist/chunk-O5676ZWY.js +585 -0
- package/dist/chunk-PUX5VXDB.cjs +8845 -0
- package/dist/{chunk-IXLO7GO5.js → chunk-TWT3STIX.js} +46 -80
- package/dist/chunk-UG5RKLU2.cjs +6 -0
- package/dist/chunk-VP2B4WM2.js +154 -0
- package/dist/{chunk-5X5WL5CU.cjs → chunk-WJLECC22.cjs} +51 -88
- package/dist/{chunk-WENHUPZC.cjs → chunk-XAYGD4E4.cjs} +9 -8
- package/dist/core/addresses.d.ts +15 -3
- package/dist/core/brands.d.ts +8 -2
- package/dist/core/errors.d.ts +71 -10
- package/dist/core/preflight.d.ts +1 -0
- package/dist/fhe/erc7984-abi.d.ts +1 -0
- package/dist/fhe/index.cjs +34 -13
- package/dist/fhe/index.d.cts +1 -0
- package/dist/fhe/index.d.ts +1 -0
- package/dist/fhe/index.js +19 -6
- package/dist/fhe/mock-erc7984.d.ts +4 -4
- package/dist/fhe/operators.d.ts +160 -3
- package/dist/fhe/react/index.cjs +14 -0
- package/dist/fhe/react/index.d.cts +2 -0
- package/dist/fhe/react/index.d.ts +2 -0
- package/dist/fhe/react/index.js +6 -0
- package/dist/fhe/react/useEnsureOperator.d.ts +56 -0
- package/dist/fhe/react/useIsOperator.d.ts +54 -0
- package/dist/fhe/sepolia-encryptor-web.d.ts +18 -3
- package/dist/fhe/types.d.ts +6 -0
- package/dist/fhe-airdrop/abis/{cloneable.d.ts → airdrop-base.d.ts} +254 -396
- package/dist/fhe-airdrop/abis/compliance.d.ts +422 -0
- package/dist/fhe-airdrop/abis/ecdsa.d.ts +1316 -0
- package/dist/fhe-airdrop/abis/factory.d.ts +1319 -190
- package/dist/fhe-airdrop/abis/index.d.ts +5 -2
- package/dist/fhe-airdrop/abis/merkle.d.ts +1238 -0
- package/dist/fhe-airdrop/advanced/index.cjs +10 -12
- package/dist/fhe-airdrop/advanced/index.d.cts +34 -11
- package/dist/fhe-airdrop/advanced/index.d.ts +34 -11
- package/dist/fhe-airdrop/advanced/index.js +2 -8
- package/dist/fhe-airdrop/advanced/react/index.cjs +34 -48
- package/dist/fhe-airdrop/advanced/react/index.d.cts +9 -3
- package/dist/fhe-airdrop/advanced/react/index.d.ts +9 -3
- package/dist/fhe-airdrop/advanced/react/index.js +33 -48
- package/dist/fhe-airdrop/advanced/react/usePredictEcdsaAirdropAddress.d.ts +33 -0
- package/dist/fhe-airdrop/advanced/react/usePredictMerkleAirdropAddress.d.ts +27 -0
- package/dist/fhe-airdrop/airdrop-base.d.ts +600 -0
- package/dist/fhe-airdrop/campaign.d.ts +297 -0
- package/dist/fhe-airdrop/compliance.d.ts +302 -0
- package/dist/fhe-airdrop/constants.d.ts +33 -0
- package/dist/fhe-airdrop/ecdsa.d.ts +263 -0
- package/dist/fhe-airdrop/encryption.d.ts +92 -14
- package/dist/fhe-airdrop/errors.d.ts +245 -15
- package/dist/fhe-airdrop/factory.d.ts +533 -274
- package/dist/fhe-airdrop/guards.d.ts +273 -0
- package/dist/fhe-airdrop/index.cjs +1089 -33
- package/dist/fhe-airdrop/index.d.cts +46 -8
- package/dist/fhe-airdrop/index.d.ts +46 -8
- package/dist/fhe-airdrop/index.js +929 -7
- package/dist/fhe-airdrop/merkle-tree.d.ts +103 -0
- package/dist/fhe-airdrop/merkle.d.ts +180 -0
- package/dist/fhe-airdrop/react/_shared.d.ts +144 -71
- package/dist/fhe-airdrop/react/index.cjs +364 -413
- package/dist/fhe-airdrop/react/index.d.cts +53 -72
- package/dist/fhe-airdrop/react/index.d.ts +53 -72
- package/dist/fhe-airdrop/react/index.js +258 -369
- package/dist/fhe-airdrop/react/useAirdropGasFee.d.ts +10 -5
- package/dist/fhe-airdrop/react/useAirdropHasRole.d.ts +15 -6
- package/dist/fhe-airdrop/react/useAirdropPause.d.ts +30 -0
- package/dist/fhe-airdrop/react/useAirdropPaused.d.ts +17 -0
- package/dist/fhe-airdrop/react/useAirdropToken.d.ts +11 -4
- package/dist/fhe-airdrop/react/useAirdropWindow.d.ts +37 -0
- package/dist/fhe-airdrop/react/useClaimedAmount.d.ts +29 -0
- package/dist/fhe-airdrop/react/useComplianceManager.d.ts +16 -0
- package/dist/fhe-airdrop/react/useCreateEcdsaAirdrop.d.ts +28 -0
- package/dist/fhe-airdrop/react/useCreateMerkleAirdrop.d.ts +25 -0
- package/dist/fhe-airdrop/react/useEcdsaClaim.d.ts +23 -0
- package/dist/fhe-airdrop/react/useEffectiveUpgradeable.d.ts +20 -0
- package/dist/fhe-airdrop/react/useExtendClaimWindow.d.ts +17 -12
- package/dist/fhe-airdrop/react/useFactoryFees.d.ts +28 -0
- package/dist/fhe-airdrop/react/useFactoryRegistry.d.ts +35 -0
- package/dist/fhe-airdrop/react/useFundAirdrop.d.ts +35 -0
- package/dist/fhe-airdrop/react/useGrantInstanceRoles.d.ts +35 -0
- package/dist/fhe-airdrop/react/useMerkleClaim.d.ts +34 -0
- package/dist/fhe-airdrop/react/useMerkleRoot.d.ts +15 -0
- package/dist/fhe-airdrop/react/useSetMerkleRoot.d.ts +22 -0
- package/dist/fhe-airdrop/react/useWithdrawConfidential.d.ts +23 -0
- package/dist/fhe-airdrop/roles.d.ts +147 -0
- package/dist/fhe-airdrop/types.d.ts +68 -55
- package/dist/fhe-disperse/errors.d.ts +55 -0
- package/dist/fhe-disperse/index.cjs +34 -25
- package/dist/fhe-disperse/index.d.cts +1 -1
- package/dist/fhe-disperse/index.d.ts +1 -1
- package/dist/fhe-disperse/index.js +6 -5
- package/dist/fhe-disperse/react/index.cjs +42 -23
- package/dist/fhe-disperse/react/index.d.cts +3 -1
- package/dist/fhe-disperse/react/index.d.ts +3 -1
- package/dist/fhe-disperse/react/index.js +9 -6
- package/dist/fhe-vesting/advanced/index.cjs +8 -7
- package/dist/fhe-vesting/advanced/index.js +6 -5
- package/dist/fhe-vesting/advanced/react/index.cjs +12 -11
- package/dist/fhe-vesting/advanced/react/index.js +9 -8
- package/dist/fhe-vesting/index.cjs +35 -34
- package/dist/fhe-vesting/index.js +7 -6
- package/dist/fhe-vesting/manager.d.ts +19 -0
- package/dist/fhe-vesting/react/index.cjs +160 -140
- package/dist/fhe-vesting/react/index.d.cts +6 -4
- package/dist/fhe-vesting/react/index.d.ts +6 -4
- package/dist/fhe-vesting/react/index.js +24 -16
- package/dist/fhe-vesting/react/useAccessClaimableAmount.d.ts +11 -3
- package/dist/fhe-vesting/react/useAccessSettledAmount.d.ts +11 -3
- package/dist/fhe-vesting/react/useAccessTotalAllocation.d.ts +11 -3
- package/dist/fhe-vesting/react/useAccessVestedAmount.d.ts +11 -3
- package/dist/fhe-vesting/react/useAdminGetClaimableAmount.d.ts +1 -1
- package/dist/fhe-vesting/react/useAdminGetSettledAmount.d.ts +1 -1
- package/dist/fhe-vesting/react/useAdminGetTotalAllocation.d.ts +1 -1
- package/dist/fhe-vesting/react/useAdminGetVestedAmount.d.ts +1 -1
- package/dist/fhe-vesting/react/useAdminPartialClaim.d.ts +8 -0
- package/dist/fhe-vesting/react/useClaim.d.ts +1 -1
- package/dist/fhe-vesting/react/useDiscloseHandleToParty.d.ts +1 -1
- package/dist/fhe-vesting/react/useManagerDiscloseHandleToParty.d.ts +1 -1
- package/dist/fhe-vesting/react/usePartialClaim.d.ts +1 -1
- package/dist/fhe-vesting/react/useVestingInfo.d.ts +1 -1
- package/dist/fhe-vesting/types.d.ts +12 -1
- package/dist/index.cjs +27 -15
- package/dist/index.js +1 -1
- package/dist/testnet-faucet/index.cjs +17 -16
- package/dist/testnet-faucet/index.js +5 -4
- package/dist/testnet-faucet/react/index.cjs +11 -10
- package/dist/testnet-faucet/react/index.js +6 -5
- package/package.json +18 -9
- package/dist/chunk-4WPGQSNT.cjs +0 -44
- package/dist/chunk-6R4KNAPK.js +0 -1630
- package/dist/chunk-DUZIIRPF.js +0 -1655
- package/dist/chunk-MCRBVJGZ.cjs +0 -1637
- package/dist/chunk-ODLTEGHB.js +0 -41
- package/dist/chunk-ORFTDNFZ.js +0 -105
- package/dist/chunk-T46YXSBP.cjs +0 -109
- package/dist/chunk-TIUKIY5V.cjs +0 -1663
- package/dist/fhe-airdrop/advanced/factory-advanced.d.ts +0 -53
- package/dist/fhe-airdrop/advanced/react/usePredictAirdropAddress.d.ts +0 -49
- package/dist/fhe-airdrop/airdrop.d.ts +0 -310
- package/dist/fhe-airdrop/react/useAccessClaimAmount.d.ts +0 -31
- package/dist/fhe-airdrop/react/useAirdropCanExtendClaimWindow.d.ts +0 -7
- package/dist/fhe-airdrop/react/useAirdropClaim.d.ts +0 -27
- package/dist/fhe-airdrop/react/useAirdropClaimTypehash.d.ts +0 -10
- package/dist/fhe-airdrop/react/useAirdropClaimedSignatures.d.ts +0 -16
- package/dist/fhe-airdrop/react/useAirdropDeploymentBlockNumber.d.ts +0 -6
- package/dist/fhe-airdrop/react/useAirdropDomainSeparator.d.ts +0 -8
- package/dist/fhe-airdrop/react/useAirdropEndTime.d.ts +0 -10
- package/dist/fhe-airdrop/react/useAirdropFactoryCustomFee.d.ts +0 -17
- package/dist/fhe-airdrop/react/useAirdropFactoryDefaultGasFee.d.ts +0 -10
- package/dist/fhe-airdrop/react/useAirdropFactoryDisableCustomFee.d.ts +0 -15
- package/dist/fhe-airdrop/react/useAirdropFactoryFeeCollector.d.ts +0 -11
- package/dist/fhe-airdrop/react/useAirdropFactoryInitCodeHash.d.ts +0 -17
- package/dist/fhe-airdrop/react/useAirdropFactorySetCustomFee.d.ts +0 -17
- package/dist/fhe-airdrop/react/useAirdropFactorySetDefaultGasFee.d.ts +0 -16
- package/dist/fhe-airdrop/react/useAirdropFactorySetFeeCollector.d.ts +0 -15
- package/dist/fhe-airdrop/react/useAirdropGrantRole.d.ts +0 -16
- package/dist/fhe-airdrop/react/useAirdropHasClaimEnded.d.ts +0 -7
- package/dist/fhe-airdrop/react/useAirdropHasClaimStarted.d.ts +0 -7
- package/dist/fhe-airdrop/react/useAirdropIsClaimWindowActive.d.ts +0 -9
- package/dist/fhe-airdrop/react/useAirdropIsPaused.d.ts +0 -8
- package/dist/fhe-airdrop/react/useAirdropIsSignatureClaimed.d.ts +0 -22
- package/dist/fhe-airdrop/react/useAirdropIsSignatureValid.d.ts +0 -51
- package/dist/fhe-airdrop/react/useAirdropRevokeRole.d.ts +0 -15
- package/dist/fhe-airdrop/react/useAirdropStartTime.d.ts +0 -10
- package/dist/fhe-airdrop/react/useAirdropWithdrawGasFee.d.ts +0 -15
- package/dist/fhe-airdrop/react/useAirdropWithdrawOtherConfidentialToken.d.ts +0 -14
- package/dist/fhe-airdrop/react/useAirdropWithdrawOtherToken.d.ts +0 -14
- package/dist/fhe-airdrop/react/useClaim.d.ts +0 -31
- package/dist/fhe-airdrop/react/useConfidentialAirdropFactoryImplementation.d.ts +0 -11
- package/dist/fhe-airdrop/react/useCreateAndFundConfidentialAirdrop.d.ts +0 -41
- package/dist/fhe-airdrop/react/useCreateAndFundConfidentialAirdropAndGetAddress.d.ts +0 -48
- package/dist/fhe-airdrop/react/useCreateConfidentialAirdrop.d.ts +0 -29
- package/dist/fhe-airdrop/react/useCreateConfidentialAirdropAndGetAddress.d.ts +0 -31
- package/dist/fhe-airdrop/react/useDisableCustomFee.d.ts +0 -14
- package/dist/fhe-airdrop/react/useFactoryCustomFee.d.ts +0 -17
- package/dist/fhe-airdrop/react/useFactoryDefaultGasFee.d.ts +0 -10
- package/dist/fhe-airdrop/react/useFactoryFeeCollector.d.ts +0 -11
- package/dist/fhe-airdrop/react/useFactoryInitCodeHash.d.ts +0 -17
- package/dist/fhe-airdrop/react/useFundConfidentialAirdrop.d.ts +0 -33
- package/dist/fhe-airdrop/react/useGetClaimAmount.d.ts +0 -30
- package/dist/fhe-airdrop/react/usePreflightCreateAirdrop.d.ts +0 -51
- package/dist/fhe-airdrop/react/useSetCustomFee.d.ts +0 -16
- package/dist/fhe-airdrop/react/useSetDefaultGasFee.d.ts +0 -15
- package/dist/fhe-airdrop/react/useSetFeeCollector.d.ts +0 -14
- package/dist/fhe-airdrop/react/useSetPaused.d.ts +0 -14
- package/dist/fhe-airdrop/react/useSignClaimAuthorization.d.ts +0 -31
- package/dist/fhe-airdrop/react/useWithdraw.d.ts +0 -12
- package/dist/fhe-airdrop/react/useWithdrawOtherConfidentialToken.d.ts +0 -13
- package/dist/fhe-airdrop/react/useWithdrawOtherToken.d.ts +0 -13
- package/dist/fhe-vesting/react/useGetClaimableAmount.d.ts +0 -13
- package/dist/fhe-vesting/react/useGetSettledAmount.d.ts +0 -14
- package/dist/fhe-vesting/react/useGetTotalAllocation.d.ts +0 -13
- package/dist/fhe-vesting/react/useGetVestedAmount.d.ts +0 -25
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { mapZamaError } from './chunk-WMACINXO.js';
|
|
2
2
|
import { getFhevmAclAddress, requireFhevmAclAddress, ACL_ALLOWED_EVENT } from './chunk-ZWXJTBZO.js';
|
|
3
|
-
import { SDK_VERSION
|
|
4
|
-
import {
|
|
3
|
+
import { SDK_VERSION } from './chunk-NWFMBLSQ.js';
|
|
4
|
+
import { isContractRevert, mapContractRevert } from './chunk-4RAAATVY.js';
|
|
5
|
+
import { getFheDisperseSingletonAddress } from './chunk-DZHYSUGY.js';
|
|
5
6
|
import { normaliseAddress } from './chunk-ZA673I3O.js';
|
|
6
|
-
import { withTelemetry } from './chunk-Q2GP5UDC.js';
|
|
7
7
|
import { asExternalInputProof, asEncryptedHandle } from './chunk-KWFFIJYX.js';
|
|
8
8
|
import { InvalidArgumentError, TokenOpsSdkError, DeploymentAddressUnavailableError, PausedError, InsufficientFeeError, MissingEncryptorError, ReceiptEventAmbiguousError, MissingWalletClientError, MissingAccountError, BatchTooLargeError } from './chunk-QBJ7O2B4.js';
|
|
9
|
+
import { withTelemetry } from './chunk-Q2GP5UDC.js';
|
|
9
10
|
import { bytesToHex, keccak256, encodePacked, parseEventLogs, isAddress, getCreate2Address } from 'viem';
|
|
10
11
|
|
|
11
12
|
// src/fhe-disperse/abis/singleton.ts
|
|
@@ -1771,6 +1772,44 @@ var NotRegisteredError = class extends TokenOpsSdkError {
|
|
|
1771
1772
|
);
|
|
1772
1773
|
}
|
|
1773
1774
|
};
|
|
1775
|
+
var SubwalletsNotApprovedError = class extends TokenOpsSdkError {
|
|
1776
|
+
name = "SubwalletsNotApprovedError";
|
|
1777
|
+
constructor(args) {
|
|
1778
|
+
super(
|
|
1779
|
+
`${args.method}: sub-wallets are not fully approved for token ${args.token} \u2014 wallet0: ${args.wallet0Approved}, wallet1: ${args.wallet1Approved}. Call \`approveUserWalletsForToken\` first.`,
|
|
1780
|
+
{
|
|
1781
|
+
code: "TOKENOPS_SUBWALLETS_NOT_APPROVED",
|
|
1782
|
+
cause: args.cause,
|
|
1783
|
+
context: {
|
|
1784
|
+
method: args.method,
|
|
1785
|
+
contractAddress: args.contractAddress,
|
|
1786
|
+
user: args.user,
|
|
1787
|
+
token: args.token,
|
|
1788
|
+
wallet0Approved: args.wallet0Approved,
|
|
1789
|
+
wallet1Approved: args.wallet1Approved
|
|
1790
|
+
}
|
|
1791
|
+
}
|
|
1792
|
+
);
|
|
1793
|
+
}
|
|
1794
|
+
};
|
|
1795
|
+
var SingletonNotApprovedError = class extends TokenOpsSdkError {
|
|
1796
|
+
name = "SingletonNotApprovedError";
|
|
1797
|
+
constructor(args) {
|
|
1798
|
+
super(
|
|
1799
|
+
`${args.method}: ${args.user} has not approved the singleton ${args.contractAddress} as an operator on token ${args.token}. Call setOperator() (see @tokenops/sdk/fhe) before this transaction.`,
|
|
1800
|
+
{
|
|
1801
|
+
code: "TOKENOPS_SINGLETON_NOT_APPROVED",
|
|
1802
|
+
cause: args.cause,
|
|
1803
|
+
context: {
|
|
1804
|
+
method: args.method,
|
|
1805
|
+
contractAddress: args.contractAddress,
|
|
1806
|
+
user: args.user,
|
|
1807
|
+
token: args.token
|
|
1808
|
+
}
|
|
1809
|
+
}
|
|
1810
|
+
);
|
|
1811
|
+
}
|
|
1812
|
+
};
|
|
1774
1813
|
var AlreadyRegisteredError = class extends TokenOpsSdkError {
|
|
1775
1814
|
name = "AlreadyRegisteredError";
|
|
1776
1815
|
constructor(args) {
|
|
@@ -2335,13 +2374,32 @@ var ConfidentialDisperseClient = class {
|
|
|
2335
2374
|
})
|
|
2336
2375
|
);
|
|
2337
2376
|
} else if (mode === "wallet" || mode === "wallet-token-fee") {
|
|
2338
|
-
if (!hasApprovedSubwallets.both)
|
|
2377
|
+
if (!hasApprovedSubwallets.both) {
|
|
2339
2378
|
blockers.push(
|
|
2340
2379
|
`Wallets not fully approved for token \u2014 wallet0: ${hasApprovedSubwallets.wallet0}, wallet1: ${hasApprovedSubwallets.wallet1}`
|
|
2341
2380
|
);
|
|
2381
|
+
blockerErrors.push(
|
|
2382
|
+
new SubwalletsNotApprovedError({
|
|
2383
|
+
method: "preflightDisperse",
|
|
2384
|
+
contractAddress: this.address,
|
|
2385
|
+
user: args.user,
|
|
2386
|
+
token: args.token,
|
|
2387
|
+
wallet0Approved: hasApprovedSubwallets.wallet0,
|
|
2388
|
+
wallet1Approved: hasApprovedSubwallets.wallet1
|
|
2389
|
+
})
|
|
2390
|
+
);
|
|
2391
|
+
}
|
|
2342
2392
|
}
|
|
2343
2393
|
if (mode === "direct" && hasApprovedSingleton === false) {
|
|
2344
2394
|
blockers.push("Sender has not approved the singleton as operator on the token");
|
|
2395
|
+
blockerErrors.push(
|
|
2396
|
+
new SingletonNotApprovedError({
|
|
2397
|
+
method: "preflightDisperse",
|
|
2398
|
+
contractAddress: this.address,
|
|
2399
|
+
user: args.user,
|
|
2400
|
+
token: args.token
|
|
2401
|
+
})
|
|
2402
|
+
);
|
|
2345
2403
|
}
|
|
2346
2404
|
if (isPaused) {
|
|
2347
2405
|
blockers.push("Singleton is paused");
|
|
@@ -3414,4 +3472,4 @@ var PAUSER_ROLE = "0x65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440
|
|
|
3414
3472
|
var WITHDRAWER_ROLE = "0x10dac8c06a04bec0b551627dad28bc00d6516b0caacd1c7b345fcdb5211334e4";
|
|
3415
3473
|
var DEFAULT_ADMIN_ROLE = "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
3416
3474
|
|
|
3417
|
-
export { AlreadyRegisteredError, ConfidentialDisperseClient, DEFAULT_ADMIN_ROLE, DisperseEncryptedReserveNotGrantedError, DisperseSubwalletNotFoundError, FEE_COLLECTOR_ROLE, FEE_MANAGER_ROLE, NotRegisteredError, PAUSER_ROLE, WITHDRAWER_ROLE, computeSubtotals, createConfidentialDisperseClient, disperseConfidentialAbi, disperseWalletAbi, encryptUint64, encryptUint64Batch, resolveEncryptor };
|
|
3475
|
+
export { AlreadyRegisteredError, ConfidentialDisperseClient, DEFAULT_ADMIN_ROLE, DisperseEncryptedReserveNotGrantedError, DisperseSubwalletNotFoundError, FEE_COLLECTOR_ROLE, FEE_MANAGER_ROLE, NotRegisteredError, PAUSER_ROLE, SingletonNotApprovedError, SubwalletsNotApprovedError, WITHDRAWER_ROLE, computeSubtotals, createConfidentialDisperseClient, disperseConfidentialAbi, disperseWalletAbi, encryptUint64, encryptUint64Batch, resolveEncryptor };
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
3
|
+
var chunkWJLECC22_cjs = require('./chunk-WJLECC22.cjs');
|
|
4
|
+
var chunk3QHNYEQD_cjs = require('./chunk-3QHNYEQD.cjs');
|
|
5
|
+
var chunk6PXXGACR_cjs = require('./chunk-6PXXGACR.cjs');
|
|
6
|
+
var chunk5576FRT3_cjs = require('./chunk-5576FRT3.cjs');
|
|
6
7
|
var chunk67OV5CX2_cjs = require('./chunk-67OV5CX2.cjs');
|
|
7
8
|
var react = require('react');
|
|
8
9
|
var wagmi = require('wagmi');
|
|
@@ -25,7 +26,7 @@ function useHookFiredEvent(hookName, telemetry, hasWallet, chainId) {
|
|
|
25
26
|
function tryResolveFactoryAddress(override, chainId) {
|
|
26
27
|
if (override) return override;
|
|
27
28
|
if (chainId === void 0) return void 0;
|
|
28
|
-
return
|
|
29
|
+
return chunk5576FRT3_cjs.getFheVestingFactoryAddress(chainId);
|
|
29
30
|
}
|
|
30
31
|
function useMemoFactoryClient(opts = {}) {
|
|
31
32
|
const publicClient = wagmi.usePublicClient({ chainId: opts.chainId });
|
|
@@ -38,7 +39,7 @@ function useMemoFactoryClient(opts = {}) {
|
|
|
38
39
|
const client = react.useMemo(() => {
|
|
39
40
|
if (!publicClient) return void 0;
|
|
40
41
|
if (!resolvedAddress) return void 0;
|
|
41
|
-
return
|
|
42
|
+
return chunk6PXXGACR_cjs.createConfidentialVestingFactoryClient({
|
|
42
43
|
publicClient,
|
|
43
44
|
...walletClient ? { walletClient } : {},
|
|
44
45
|
address: resolvedAddress,
|
|
@@ -65,7 +66,7 @@ function computeFactoryResolutionError(override, chainId) {
|
|
|
65
66
|
clientLabel: "ConfidentialVestingFactoryClient"
|
|
66
67
|
});
|
|
67
68
|
}
|
|
68
|
-
const resolved =
|
|
69
|
+
const resolved = chunk5576FRT3_cjs.getFheVestingFactoryAddress(chainId);
|
|
69
70
|
if (!resolved) {
|
|
70
71
|
return new chunk67OV5CX2_cjs.DeploymentAddressUnavailableError({
|
|
71
72
|
reason: "registry-not-deployed",
|
|
@@ -88,13 +89,13 @@ function useMemoManagerClient(opts) {
|
|
|
88
89
|
const client = react.useMemo(() => {
|
|
89
90
|
if (!publicClient) return void 0;
|
|
90
91
|
if (!opts.address) return void 0;
|
|
91
|
-
return
|
|
92
|
+
return chunkWJLECC22_cjs.createConfidentialVestingManagerClient({
|
|
92
93
|
publicClient,
|
|
93
94
|
...walletClient ? { walletClient } : {},
|
|
94
95
|
address: opts.address,
|
|
95
96
|
// Lazy — invoked per-encryption inside the headless client. Picks up
|
|
96
97
|
// whichever EncryptorSource the consumer last passed in.
|
|
97
|
-
encryptor: () =>
|
|
98
|
+
encryptor: () => chunk3QHNYEQD_cjs.resolveEncryptor(encryptorSourceRef.current),
|
|
98
99
|
...opts.aclAddress ? { aclAddress: opts.aclAddress } : {},
|
|
99
100
|
...telemetry ? { telemetry } : {}
|
|
100
101
|
});
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
var chunkTEBM66WA_cjs = require('./chunk-TEBM66WA.cjs');
|
|
4
4
|
var chunkFAXIIH5R_cjs = require('./chunk-FAXIIH5R.cjs');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
5
|
+
var chunkUG5RKLU2_cjs = require('./chunk-UG5RKLU2.cjs');
|
|
6
|
+
var chunkMVDQMV25_cjs = require('./chunk-MVDQMV25.cjs');
|
|
7
|
+
var chunk5576FRT3_cjs = require('./chunk-5576FRT3.cjs');
|
|
7
8
|
var chunkJK4XMMKM_cjs = require('./chunk-JK4XMMKM.cjs');
|
|
8
|
-
var chunkVJKZWYYJ_cjs = require('./chunk-VJKZWYYJ.cjs');
|
|
9
9
|
var chunk66IHPTOK_cjs = require('./chunk-66IHPTOK.cjs');
|
|
10
10
|
var chunk67OV5CX2_cjs = require('./chunk-67OV5CX2.cjs');
|
|
11
|
+
var chunkVJKZWYYJ_cjs = require('./chunk-VJKZWYYJ.cjs');
|
|
11
12
|
var viem = require('viem');
|
|
12
13
|
|
|
13
14
|
// src/fhe-disperse/abis/singleton.ts
|
|
@@ -1773,6 +1774,44 @@ var NotRegisteredError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
|
|
|
1773
1774
|
);
|
|
1774
1775
|
}
|
|
1775
1776
|
};
|
|
1777
|
+
var SubwalletsNotApprovedError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
|
|
1778
|
+
name = "SubwalletsNotApprovedError";
|
|
1779
|
+
constructor(args) {
|
|
1780
|
+
super(
|
|
1781
|
+
`${args.method}: sub-wallets are not fully approved for token ${args.token} \u2014 wallet0: ${args.wallet0Approved}, wallet1: ${args.wallet1Approved}. Call \`approveUserWalletsForToken\` first.`,
|
|
1782
|
+
{
|
|
1783
|
+
code: "TOKENOPS_SUBWALLETS_NOT_APPROVED",
|
|
1784
|
+
cause: args.cause,
|
|
1785
|
+
context: {
|
|
1786
|
+
method: args.method,
|
|
1787
|
+
contractAddress: args.contractAddress,
|
|
1788
|
+
user: args.user,
|
|
1789
|
+
token: args.token,
|
|
1790
|
+
wallet0Approved: args.wallet0Approved,
|
|
1791
|
+
wallet1Approved: args.wallet1Approved
|
|
1792
|
+
}
|
|
1793
|
+
}
|
|
1794
|
+
);
|
|
1795
|
+
}
|
|
1796
|
+
};
|
|
1797
|
+
var SingletonNotApprovedError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
|
|
1798
|
+
name = "SingletonNotApprovedError";
|
|
1799
|
+
constructor(args) {
|
|
1800
|
+
super(
|
|
1801
|
+
`${args.method}: ${args.user} has not approved the singleton ${args.contractAddress} as an operator on token ${args.token}. Call setOperator() (see @tokenops/sdk/fhe) before this transaction.`,
|
|
1802
|
+
{
|
|
1803
|
+
code: "TOKENOPS_SINGLETON_NOT_APPROVED",
|
|
1804
|
+
cause: args.cause,
|
|
1805
|
+
context: {
|
|
1806
|
+
method: args.method,
|
|
1807
|
+
contractAddress: args.contractAddress,
|
|
1808
|
+
user: args.user,
|
|
1809
|
+
token: args.token
|
|
1810
|
+
}
|
|
1811
|
+
}
|
|
1812
|
+
);
|
|
1813
|
+
}
|
|
1814
|
+
};
|
|
1776
1815
|
var AlreadyRegisteredError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
|
|
1777
1816
|
name = "AlreadyRegisteredError";
|
|
1778
1817
|
constructor(args) {
|
|
@@ -2013,7 +2052,7 @@ var ConfidentialDisperseClient = class {
|
|
|
2013
2052
|
this.#telemetry = config.telemetry;
|
|
2014
2053
|
const chainId = config.chainId ?? config.publicClient.chain?.id;
|
|
2015
2054
|
const addressOverride = config.address ? chunkJK4XMMKM_cjs.normaliseAddress(config.address) : void 0;
|
|
2016
|
-
const resolved = addressOverride ?? (chainId === void 0 ? void 0 :
|
|
2055
|
+
const resolved = addressOverride ?? (chainId === void 0 ? void 0 : chunk5576FRT3_cjs.getFheDisperseSingletonAddress(chainId));
|
|
2017
2056
|
if (!resolved) {
|
|
2018
2057
|
throw new chunk67OV5CX2_cjs.DeploymentAddressUnavailableError({
|
|
2019
2058
|
reason: chainId === void 0 ? "chain-id-missing" : "registry-not-deployed",
|
|
@@ -2030,7 +2069,7 @@ var ConfidentialDisperseClient = class {
|
|
|
2030
2069
|
chainId: chainId ?? null,
|
|
2031
2070
|
hasWallet: !!this.walletClient,
|
|
2032
2071
|
aclResolved: !!config.aclAddress || chainId !== void 0 && !!chunkFAXIIH5R_cjs.getFhevmAclAddress(chainId),
|
|
2033
|
-
sdkVersion:
|
|
2072
|
+
sdkVersion: chunkUG5RKLU2_cjs.SDK_VERSION
|
|
2034
2073
|
});
|
|
2035
2074
|
}
|
|
2036
2075
|
/**
|
|
@@ -2337,13 +2376,32 @@ var ConfidentialDisperseClient = class {
|
|
|
2337
2376
|
})
|
|
2338
2377
|
);
|
|
2339
2378
|
} else if (mode === "wallet" || mode === "wallet-token-fee") {
|
|
2340
|
-
if (!hasApprovedSubwallets.both)
|
|
2379
|
+
if (!hasApprovedSubwallets.both) {
|
|
2341
2380
|
blockers.push(
|
|
2342
2381
|
`Wallets not fully approved for token \u2014 wallet0: ${hasApprovedSubwallets.wallet0}, wallet1: ${hasApprovedSubwallets.wallet1}`
|
|
2343
2382
|
);
|
|
2383
|
+
blockerErrors.push(
|
|
2384
|
+
new SubwalletsNotApprovedError({
|
|
2385
|
+
method: "preflightDisperse",
|
|
2386
|
+
contractAddress: this.address,
|
|
2387
|
+
user: args.user,
|
|
2388
|
+
token: args.token,
|
|
2389
|
+
wallet0Approved: hasApprovedSubwallets.wallet0,
|
|
2390
|
+
wallet1Approved: hasApprovedSubwallets.wallet1
|
|
2391
|
+
})
|
|
2392
|
+
);
|
|
2393
|
+
}
|
|
2344
2394
|
}
|
|
2345
2395
|
if (mode === "direct" && hasApprovedSingleton === false) {
|
|
2346
2396
|
blockers.push("Sender has not approved the singleton as operator on the token");
|
|
2397
|
+
blockerErrors.push(
|
|
2398
|
+
new SingletonNotApprovedError({
|
|
2399
|
+
method: "preflightDisperse",
|
|
2400
|
+
contractAddress: this.address,
|
|
2401
|
+
user: args.user,
|
|
2402
|
+
token: args.token
|
|
2403
|
+
})
|
|
2404
|
+
);
|
|
2347
2405
|
}
|
|
2348
2406
|
if (isPaused) {
|
|
2349
2407
|
blockers.push("Singleton is paused");
|
|
@@ -3231,13 +3289,13 @@ var ConfidentialDisperseClient = class {
|
|
|
3231
3289
|
...value !== void 0 ? { value } : {}
|
|
3232
3290
|
});
|
|
3233
3291
|
} catch (err) {
|
|
3234
|
-
if (
|
|
3292
|
+
if (chunkMVDQMV25_cjs.isContractRevert(err)) {
|
|
3235
3293
|
throw this.#mapRevert(method, err, productContext, accountAddress(account));
|
|
3236
3294
|
}
|
|
3237
3295
|
}
|
|
3238
3296
|
}
|
|
3239
3297
|
#mapRevert(method, err, productContext, account) {
|
|
3240
|
-
return
|
|
3298
|
+
return chunkMVDQMV25_cjs.mapContractRevert(err, {
|
|
3241
3299
|
method,
|
|
3242
3300
|
contractAddress: this.address,
|
|
3243
3301
|
abi: disperseConfidentialAbi,
|
|
@@ -3425,6 +3483,8 @@ exports.FEE_COLLECTOR_ROLE = FEE_COLLECTOR_ROLE;
|
|
|
3425
3483
|
exports.FEE_MANAGER_ROLE = FEE_MANAGER_ROLE;
|
|
3426
3484
|
exports.NotRegisteredError = NotRegisteredError;
|
|
3427
3485
|
exports.PAUSER_ROLE = PAUSER_ROLE;
|
|
3486
|
+
exports.SingletonNotApprovedError = SingletonNotApprovedError;
|
|
3487
|
+
exports.SubwalletsNotApprovedError = SubwalletsNotApprovedError;
|
|
3428
3488
|
exports.WITHDRAWER_ROLE = WITHDRAWER_ROLE;
|
|
3429
3489
|
exports.computeSubtotals = computeSubtotals;
|
|
3430
3490
|
exports.createConfidentialDisperseClient = createConfidentialDisperseClient;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunkFWHYQZ5E_cjs = require('./chunk-FWHYQZ5E.cjs');
|
|
3
4
|
var chunkJK4XMMKM_cjs = require('./chunk-JK4XMMKM.cjs');
|
|
4
|
-
var chunkVJKZWYYJ_cjs = require('./chunk-VJKZWYYJ.cjs');
|
|
5
5
|
var chunk67OV5CX2_cjs = require('./chunk-67OV5CX2.cjs');
|
|
6
|
+
var chunkVJKZWYYJ_cjs = require('./chunk-VJKZWYYJ.cjs');
|
|
6
7
|
|
|
7
8
|
// src/fhe/operators.ts
|
|
8
9
|
var ERC7984_SET_OPERATOR_ABI = [
|
|
@@ -94,8 +95,67 @@ async function revokeOperator(args) {
|
|
|
94
95
|
});
|
|
95
96
|
});
|
|
96
97
|
}
|
|
98
|
+
async function isOperator(args) {
|
|
99
|
+
const token = chunkJK4XMMKM_cjs.normaliseAddress(args.token);
|
|
100
|
+
const holder = chunkJK4XMMKM_cjs.normaliseAddress(args.holder);
|
|
101
|
+
const spender = chunkJK4XMMKM_cjs.normaliseAddress(args.spender);
|
|
102
|
+
return chunkVJKZWYYJ_cjs.withTelemetry(args.telemetry, "fhe.isOperator", async () => {
|
|
103
|
+
try {
|
|
104
|
+
return await args.publicClient.readContract({
|
|
105
|
+
address: token,
|
|
106
|
+
abi: chunkFWHYQZ5E_cjs.erc7984OperatorAbi,
|
|
107
|
+
functionName: "isOperator",
|
|
108
|
+
args: [holder, spender]
|
|
109
|
+
});
|
|
110
|
+
} catch (err) {
|
|
111
|
+
throw new chunk67OV5CX2_cjs.TokenOpsContractError(
|
|
112
|
+
`isOperator: readContract failed (token=${token}, holder=${holder}, spender=${spender})`,
|
|
113
|
+
{ contract: "ERC7984", call: "isOperator", token, holder, spender, cause: err }
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
async function ensureOperator(args) {
|
|
119
|
+
return chunkVJKZWYYJ_cjs.withTelemetry(args.telemetry, "fhe.ensureOperator", async () => {
|
|
120
|
+
if (args.deadline <= 0n || args.deadline > ERC7984_OPERATOR_MAX_DEADLINE) {
|
|
121
|
+
throw new chunk67OV5CX2_cjs.TokenOpsContractError(
|
|
122
|
+
`ensureOperator: deadline ${args.deadline} out of range (0, ${ERC7984_OPERATOR_MAX_DEADLINE}]`,
|
|
123
|
+
{ contract: "ERC7984", call: "ensureOperator", deadline: args.deadline.toString() }
|
|
124
|
+
);
|
|
125
|
+
}
|
|
126
|
+
const fromAccount = args.account ?? args.walletClient.account;
|
|
127
|
+
if (!fromAccount) {
|
|
128
|
+
throw new chunk67OV5CX2_cjs.TokenOpsContractError(
|
|
129
|
+
"ensureOperator: no account available \u2014 pass `account` explicitly or attach an account to the walletClient",
|
|
130
|
+
{ contract: "ERC7984", call: "ensureOperator" }
|
|
131
|
+
);
|
|
132
|
+
}
|
|
133
|
+
const holder = typeof fromAccount === "string" ? fromAccount : fromAccount.address;
|
|
134
|
+
const authorized = await isOperator({
|
|
135
|
+
publicClient: args.publicClient,
|
|
136
|
+
token: args.token,
|
|
137
|
+
holder,
|
|
138
|
+
spender: args.spender
|
|
139
|
+
});
|
|
140
|
+
if (authorized) {
|
|
141
|
+
return { alreadyOperator: true, hash: null };
|
|
142
|
+
}
|
|
143
|
+
const hash = await setOperator({
|
|
144
|
+
publicClient: args.publicClient,
|
|
145
|
+
walletClient: args.walletClient,
|
|
146
|
+
...args.account !== void 0 ? { account: args.account } : {},
|
|
147
|
+
token: args.token,
|
|
148
|
+
spender: args.spender,
|
|
149
|
+
deadline: args.deadline,
|
|
150
|
+
...args.waitForReceipt !== void 0 ? { waitForReceipt: args.waitForReceipt } : {}
|
|
151
|
+
});
|
|
152
|
+
return { alreadyOperator: false, hash };
|
|
153
|
+
});
|
|
154
|
+
}
|
|
97
155
|
|
|
98
156
|
exports.ERC7984_OPERATOR_MAX_DEADLINE = ERC7984_OPERATOR_MAX_DEADLINE;
|
|
99
157
|
exports.ERC7984_SET_OPERATOR_ABI = ERC7984_SET_OPERATOR_ABI;
|
|
158
|
+
exports.ensureOperator = ensureOperator;
|
|
159
|
+
exports.isOperator = isOperator;
|
|
100
160
|
exports.revokeOperator = revokeOperator;
|
|
101
161
|
exports.setOperator = setOperator;
|