@tokenops/sdk 1.0.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 +207 -0
- package/CONTRIBUTING.md +113 -0
- package/LICENSE +32 -0
- package/README.md +677 -0
- package/SECURITY.md +59 -0
- package/dist/chunk-52TC6BF7.js +2755 -0
- package/dist/chunk-56UI7LUR.cjs +516 -0
- package/dist/chunk-5SA2HF2W.cjs +1635 -0
- package/dist/chunk-5SGMJADP.cjs +139 -0
- package/dist/chunk-62DF53UQ.cjs +749 -0
- package/dist/chunk-66IHPTOK.cjs +20 -0
- package/dist/chunk-6ECAHP5O.cjs +1496 -0
- package/dist/chunk-72YGZEQE.js +742 -0
- package/dist/chunk-7VELUOMI.js +35 -0
- package/dist/chunk-BE2AIZ3K.js +23 -0
- package/dist/chunk-CMRETRZO.js +46 -0
- package/dist/chunk-COPFW5Z4.js +82 -0
- package/dist/chunk-CQIPRNS7.cjs +25 -0
- package/dist/chunk-ECT3NL2L.js +124 -0
- package/dist/chunk-FWHYQZ5E.cjs +37 -0
- package/dist/chunk-FYQ2UW4T.js +37 -0
- package/dist/chunk-HGXNRR25.js +105 -0
- package/dist/chunk-HTOMTEA3.cjs +3406 -0
- package/dist/chunk-ITQ7WKVC.cjs +101 -0
- package/dist/chunk-IVE3QEGD.js +478 -0
- package/dist/chunk-JFLEEXKP.js +325 -0
- package/dist/chunk-JFR5J4FL.cjs +128 -0
- package/dist/chunk-K6MFFDBJ.cjs +109 -0
- package/dist/chunk-KWFFIJYX.js +11 -0
- package/dist/chunk-NS44KBV5.cjs +89 -0
- package/dist/chunk-OLDGMKW2.cjs +93 -0
- package/dist/chunk-Q2GP5UDC.js +29 -0
- package/dist/chunk-Q7ARQSUH.cjs +42 -0
- package/dist/chunk-QCA7O2Q5.cjs +49 -0
- package/dist/chunk-QIHZVLIK.js +3388 -0
- package/dist/chunk-SUOG3BQS.cjs +2772 -0
- package/dist/chunk-T5LVV3KY.cjs +44 -0
- package/dist/chunk-UOG4PJL5.js +1488 -0
- package/dist/chunk-VDXVNZCO.cjs +329 -0
- package/dist/chunk-VJKZWYYJ.cjs +32 -0
- package/dist/chunk-WRCUDSUJ.js +96 -0
- package/dist/chunk-XSNLAS5M.js +135 -0
- package/dist/chunk-XXXDQSHE.js +1628 -0
- package/dist/chunk-ZHFLRKFY.js +41 -0
- package/dist/chunk-ZXCOJY2Z.js +87 -0
- package/dist/core/addresses.d.ts +59 -0
- package/dist/core/brands.d.ts +87 -0
- package/dist/core/chains.d.ts +102 -0
- package/dist/core/errors.d.ts +687 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/normalise.d.ts +27 -0
- package/dist/core/preflight.d.ts +25 -0
- package/dist/core/revert-mapper.d.ts +74 -0
- package/dist/core/telemetry.d.ts +50 -0
- package/dist/core/types.d.ts +10 -0
- package/dist/core/version.d.ts +15 -0
- package/dist/core/zama-error-mapper.d.ts +27 -0
- package/dist/fhe/acl.d.ts +73 -0
- package/dist/fhe/erc7984-abi.d.ts +53 -0
- package/dist/fhe/index.cjs +599 -0
- package/dist/fhe/index.d.cts +11 -0
- package/dist/fhe/index.d.ts +11 -0
- package/dist/fhe/index.js +394 -0
- package/dist/fhe/mock-encryptor.d.ts +90 -0
- package/dist/fhe/mock-erc7984.d.ts +134 -0
- package/dist/fhe/operators.d.ts +190 -0
- package/dist/fhe/react/index.cjs +102 -0
- package/dist/fhe/react/index.d.cts +10 -0
- package/dist/fhe/react/index.d.ts +10 -0
- package/dist/fhe/react/index.js +85 -0
- package/dist/fhe/react/use-decrypted-handle.d.ts +102 -0
- package/dist/fhe/scale-ratio.d.ts +168 -0
- package/dist/fhe/sepolia-encryptor-web.d.ts +101 -0
- package/dist/fhe/sepolia-encryptor.d.ts +132 -0
- package/dist/fhe/types.d.ts +62 -0
- package/dist/fhe-airdrop/abis/cloneable.d.ts +781 -0
- package/dist/fhe-airdrop/abis/factory.d.ts +714 -0
- package/dist/fhe-airdrop/abis/index.d.ts +2 -0
- package/dist/fhe-airdrop/advanced/factory-advanced.d.ts +53 -0
- package/dist/fhe-airdrop/advanced/index.cjs +21 -0
- package/dist/fhe-airdrop/advanced/index.d.cts +13 -0
- package/dist/fhe-airdrop/advanced/index.d.ts +13 -0
- package/dist/fhe-airdrop/advanced/index.js +8 -0
- package/dist/fhe-airdrop/advanced/react/index.cjs +61 -0
- package/dist/fhe-airdrop/advanced/react/index.d.cts +5 -0
- package/dist/fhe-airdrop/advanced/react/index.d.ts +5 -0
- package/dist/fhe-airdrop/advanced/react/index.js +59 -0
- package/dist/fhe-airdrop/advanced/react/usePredictAirdropAddress.d.ts +49 -0
- package/dist/fhe-airdrop/airdrop.d.ts +308 -0
- package/dist/fhe-airdrop/encryption.d.ts +109 -0
- package/dist/fhe-airdrop/errors.d.ts +60 -0
- package/dist/fhe-airdrop/factory.d.ts +281 -0
- package/dist/fhe-airdrop/index.cjs +227 -0
- package/dist/fhe-airdrop/index.d.cts +10 -0
- package/dist/fhe-airdrop/index.d.ts +10 -0
- package/dist/fhe-airdrop/index.js +10 -0
- package/dist/fhe-airdrop/react/_shared.d.ts +107 -0
- package/dist/fhe-airdrop/react/index.cjs +638 -0
- package/dist/fhe-airdrop/react/index.d.cts +90 -0
- package/dist/fhe-airdrop/react/index.d.ts +90 -0
- package/dist/fhe-airdrop/react/index.js +430 -0
- package/dist/fhe-airdrop/react/useAccessClaimAmount.d.ts +31 -0
- package/dist/fhe-airdrop/react/useAirdropCanExtendClaimWindow.d.ts +7 -0
- package/dist/fhe-airdrop/react/useAirdropClaim.d.ts +25 -0
- package/dist/fhe-airdrop/react/useAirdropClaimTypehash.d.ts +10 -0
- package/dist/fhe-airdrop/react/useAirdropClaimedSignatures.d.ts +16 -0
- package/dist/fhe-airdrop/react/useAirdropDeploymentBlockNumber.d.ts +6 -0
- package/dist/fhe-airdrop/react/useAirdropDomainSeparator.d.ts +8 -0
- package/dist/fhe-airdrop/react/useAirdropEndTime.d.ts +10 -0
- package/dist/fhe-airdrop/react/useAirdropFactoryCustomFee.d.ts +17 -0
- package/dist/fhe-airdrop/react/useAirdropFactoryDefaultGasFee.d.ts +10 -0
- package/dist/fhe-airdrop/react/useAirdropFactoryDisableCustomFee.d.ts +15 -0
- package/dist/fhe-airdrop/react/useAirdropFactoryFeeCollector.d.ts +11 -0
- package/dist/fhe-airdrop/react/useAirdropFactoryInitCodeHash.d.ts +17 -0
- package/dist/fhe-airdrop/react/useAirdropFactorySetCustomFee.d.ts +17 -0
- package/dist/fhe-airdrop/react/useAirdropFactorySetDefaultGasFee.d.ts +16 -0
- package/dist/fhe-airdrop/react/useAirdropFactorySetFeeCollector.d.ts +15 -0
- package/dist/fhe-airdrop/react/useAirdropGasFee.d.ts +11 -0
- package/dist/fhe-airdrop/react/useAirdropGrantRole.d.ts +16 -0
- package/dist/fhe-airdrop/react/useAirdropHasClaimEnded.d.ts +7 -0
- package/dist/fhe-airdrop/react/useAirdropHasClaimStarted.d.ts +7 -0
- package/dist/fhe-airdrop/react/useAirdropHasRole.d.ts +14 -0
- package/dist/fhe-airdrop/react/useAirdropIsClaimWindowActive.d.ts +9 -0
- package/dist/fhe-airdrop/react/useAirdropIsPaused.d.ts +8 -0
- package/dist/fhe-airdrop/react/useAirdropIsSignatureClaimed.d.ts +22 -0
- package/dist/fhe-airdrop/react/useAirdropIsSignatureValid.d.ts +50 -0
- package/dist/fhe-airdrop/react/useAirdropRevokeRole.d.ts +15 -0
- package/dist/fhe-airdrop/react/useAirdropStartTime.d.ts +10 -0
- package/dist/fhe-airdrop/react/useAirdropToken.d.ts +11 -0
- package/dist/fhe-airdrop/react/useAirdropWithdrawGasFee.d.ts +15 -0
- package/dist/fhe-airdrop/react/useAirdropWithdrawOtherConfidentialToken.d.ts +14 -0
- package/dist/fhe-airdrop/react/useAirdropWithdrawOtherToken.d.ts +14 -0
- package/dist/fhe-airdrop/react/useClaim.d.ts +29 -0
- package/dist/fhe-airdrop/react/useConfidentialAirdropFactoryImplementation.d.ts +11 -0
- package/dist/fhe-airdrop/react/useCreateAndFundConfidentialAirdrop.d.ts +33 -0
- package/dist/fhe-airdrop/react/useCreateAndFundConfidentialAirdropAndGetAddress.d.ts +40 -0
- package/dist/fhe-airdrop/react/useCreateConfidentialAirdrop.d.ts +29 -0
- package/dist/fhe-airdrop/react/useCreateConfidentialAirdropAndGetAddress.d.ts +31 -0
- package/dist/fhe-airdrop/react/useDisableCustomFee.d.ts +14 -0
- package/dist/fhe-airdrop/react/useExtendClaimWindow.d.ts +16 -0
- package/dist/fhe-airdrop/react/useFactoryCustomFee.d.ts +17 -0
- package/dist/fhe-airdrop/react/useFactoryDefaultGasFee.d.ts +10 -0
- package/dist/fhe-airdrop/react/useFactoryFeeCollector.d.ts +11 -0
- package/dist/fhe-airdrop/react/useFactoryInitCodeHash.d.ts +17 -0
- package/dist/fhe-airdrop/react/useFundConfidentialAirdrop.d.ts +25 -0
- package/dist/fhe-airdrop/react/useGetClaimAmount.d.ts +30 -0
- package/dist/fhe-airdrop/react/useSetCustomFee.d.ts +16 -0
- package/dist/fhe-airdrop/react/useSetDefaultGasFee.d.ts +15 -0
- package/dist/fhe-airdrop/react/useSetFeeCollector.d.ts +14 -0
- package/dist/fhe-airdrop/react/useSetPaused.d.ts +14 -0
- package/dist/fhe-airdrop/react/useSignClaimAuthorization.d.ts +31 -0
- package/dist/fhe-airdrop/react/useWithdraw.d.ts +12 -0
- package/dist/fhe-airdrop/react/useWithdrawOtherConfidentialToken.d.ts +13 -0
- package/dist/fhe-airdrop/react/useWithdrawOtherToken.d.ts +13 -0
- package/dist/fhe-airdrop/types.d.ts +21 -0
- package/dist/fhe-disperse/abis/index.d.ts +2 -0
- package/dist/fhe-disperse/abis/singleton.d.ts +1297 -0
- package/dist/fhe-disperse/abis/wallet.d.ts +111 -0
- package/dist/fhe-disperse/encryption.d.ts +77 -0
- package/dist/fhe-disperse/errors.d.ts +39 -0
- package/dist/fhe-disperse/index.cjs +248 -0
- package/dist/fhe-disperse/index.d.cts +14 -0
- package/dist/fhe-disperse/index.d.ts +14 -0
- package/dist/fhe-disperse/index.js +11 -0
- package/dist/fhe-disperse/react/_shared.d.ts +104 -0
- package/dist/fhe-disperse/react/index.cjs +752 -0
- package/dist/fhe-disperse/react/index.d.cts +82 -0
- package/dist/fhe-disperse/react/index.d.ts +82 -0
- package/dist/fhe-disperse/react/index.js +522 -0
- package/dist/fhe-disperse/react/useAccessEncryptedFeeReserve.d.ts +35 -0
- package/dist/fhe-disperse/react/useApproveTokenOnWallets.d.ts +25 -0
- package/dist/fhe-disperse/react/useBatchDiscloseHandlesToParty.d.ts +16 -0
- package/dist/fhe-disperse/react/useCalculateFee.d.ts +26 -0
- package/dist/fhe-disperse/react/useDeploymentBlockNumber.d.ts +11 -0
- package/dist/fhe-disperse/react/useDisableCustomFee.d.ts +20 -0
- package/dist/fhe-disperse/react/useDiscloseHandleToParty.d.ts +20 -0
- package/dist/fhe-disperse/react/useDisperse.d.ts +28 -0
- package/dist/fhe-disperse/react/useGetBatchLimits.d.ts +12 -0
- package/dist/fhe-disperse/react/useGetFeeConfig.d.ts +15 -0
- package/dist/fhe-disperse/react/useGetFees.d.ts +19 -0
- package/dist/fhe-disperse/react/useGetWallets.d.ts +19 -0
- package/dist/fhe-disperse/react/useGrantRole.d.ts +24 -0
- package/dist/fhe-disperse/react/useHasApprovedSubwallets.d.ts +25 -0
- package/dist/fhe-disperse/react/useHasRole.d.ts +22 -0
- package/dist/fhe-disperse/react/useIsPaused.d.ts +11 -0
- package/dist/fhe-disperse/react/useIsRegistered.d.ts +15 -0
- package/dist/fhe-disperse/react/usePause.d.ts +18 -0
- package/dist/fhe-disperse/react/usePredictWallets.d.ts +19 -0
- package/dist/fhe-disperse/react/usePreflightDisperse.d.ts +37 -0
- package/dist/fhe-disperse/react/useRecoverERC20FromWallets.d.ts +21 -0
- package/dist/fhe-disperse/react/useRecoverFromWallets.d.ts +21 -0
- package/dist/fhe-disperse/react/useRegister.d.ts +40 -0
- package/dist/fhe-disperse/react/useRescueConfidentialTokens.d.ts +21 -0
- package/dist/fhe-disperse/react/useRescueERC20.d.ts +21 -0
- package/dist/fhe-disperse/react/useRevokeRole.d.ts +24 -0
- package/dist/fhe-disperse/react/useRevokeTokenOnWallets.d.ts +24 -0
- package/dist/fhe-disperse/react/useSetCustomFee.d.ts +24 -0
- package/dist/fhe-disperse/react/useSetFeeConfig.d.ts +23 -0
- package/dist/fhe-disperse/react/useSetMaxBatchSizeDirect.d.ts +20 -0
- package/dist/fhe-disperse/react/useSetMaxBatchSizeHolding.d.ts +20 -0
- package/dist/fhe-disperse/react/useSetMaxBatchSizeTokenFee.d.ts +20 -0
- package/dist/fhe-disperse/react/useSingletonBatchDiscloseHandlesToParty.d.ts +13 -0
- package/dist/fhe-disperse/react/useSingletonBatchLimits.d.ts +12 -0
- package/dist/fhe-disperse/react/useSingletonCalculateFee.d.ts +26 -0
- package/dist/fhe-disperse/react/useSingletonDeploymentBlockNumber.d.ts +11 -0
- package/dist/fhe-disperse/react/useSingletonDisableCustomFee.d.ts +21 -0
- package/dist/fhe-disperse/react/useSingletonDiscloseHandleToParty.d.ts +17 -0
- package/dist/fhe-disperse/react/useSingletonFees.d.ts +19 -0
- package/dist/fhe-disperse/react/useSingletonGrantRole.d.ts +26 -0
- package/dist/fhe-disperse/react/useSingletonHasApprovedSubwallets.d.ts +25 -0
- package/dist/fhe-disperse/react/useSingletonHasRole.d.ts +23 -0
- package/dist/fhe-disperse/react/useSingletonIsPaused.d.ts +11 -0
- package/dist/fhe-disperse/react/useSingletonIsRegistered.d.ts +15 -0
- package/dist/fhe-disperse/react/useSingletonPause.d.ts +19 -0
- package/dist/fhe-disperse/react/useSingletonPredictWallets.d.ts +19 -0
- package/dist/fhe-disperse/react/useSingletonRevokeRole.d.ts +26 -0
- package/dist/fhe-disperse/react/useSingletonSetCustomFee.d.ts +25 -0
- package/dist/fhe-disperse/react/useSingletonUnpause.d.ts +18 -0
- package/dist/fhe-disperse/react/useSingletonWalletImplementation.d.ts +12 -0
- package/dist/fhe-disperse/react/useSingletonWallets.d.ts +19 -0
- package/dist/fhe-disperse/react/useSingletonWithdrawGasFee.d.ts +21 -0
- package/dist/fhe-disperse/react/useSingletonWithdrawTokenFee.d.ts +50 -0
- package/dist/fhe-disperse/react/useUnpause.d.ts +17 -0
- package/dist/fhe-disperse/react/useWalletImplementation.d.ts +12 -0
- package/dist/fhe-disperse/react/useWithdrawGasFee.d.ts +26 -0
- package/dist/fhe-disperse/react/useWithdrawTokenFee.d.ts +70 -0
- package/dist/fhe-disperse/singleton.d.ts +442 -0
- package/dist/fhe-disperse/subtotals.d.ts +14 -0
- package/dist/fhe-disperse/types.d.ts +332 -0
- package/dist/fhe-disperse/validate.d.ts +78 -0
- package/dist/fhe-vesting/abis/factory.d.ts +676 -0
- package/dist/fhe-vesting/abis/index.d.ts +3 -0
- package/dist/fhe-vesting/abis/manager.d.ts +1797 -0
- package/dist/fhe-vesting/advanced/factory-advanced.d.ts +52 -0
- package/dist/fhe-vesting/advanced/index.cjs +21 -0
- package/dist/fhe-vesting/advanced/index.d.cts +12 -0
- package/dist/fhe-vesting/advanced/index.d.ts +12 -0
- package/dist/fhe-vesting/advanced/index.js +8 -0
- package/dist/fhe-vesting/advanced/react/index.cjs +75 -0
- package/dist/fhe-vesting/advanced/react/index.d.cts +5 -0
- package/dist/fhe-vesting/advanced/react/index.d.ts +5 -0
- package/dist/fhe-vesting/advanced/react/index.js +73 -0
- package/dist/fhe-vesting/advanced/react/usePredictManagerAddress.d.ts +41 -0
- package/dist/fhe-vesting/encryption.d.ts +104 -0
- package/dist/fhe-vesting/errors.d.ts +183 -0
- package/dist/fhe-vesting/factory.d.ts +207 -0
- package/dist/fhe-vesting/index.cjs +269 -0
- package/dist/fhe-vesting/index.d.cts +9 -0
- package/dist/fhe-vesting/index.d.ts +9 -0
- package/dist/fhe-vesting/index.js +12 -0
- package/dist/fhe-vesting/manager.d.ts +808 -0
- package/dist/fhe-vesting/react/_shared.d.ts +122 -0
- package/dist/fhe-vesting/react/index.cjs +1054 -0
- package/dist/fhe-vesting/react/index.d.cts +123 -0
- package/dist/fhe-vesting/react/index.d.ts +123 -0
- package/dist/fhe-vesting/react/index.js +771 -0
- package/dist/fhe-vesting/react/useAcceptVestingTransfer.d.ts +12 -0
- package/dist/fhe-vesting/react/useAccessClaimableAmount.d.ts +14 -0
- package/dist/fhe-vesting/react/useAccessSettledAmount.d.ts +15 -0
- package/dist/fhe-vesting/react/useAccessTotalAllocation.d.ts +14 -0
- package/dist/fhe-vesting/react/useAccessVestedAmount.d.ts +26 -0
- package/dist/fhe-vesting/react/useAdminBatchDiscloseToParty.d.ts +16 -0
- package/dist/fhe-vesting/react/useAdminClaim.d.ts +9 -0
- package/dist/fhe-vesting/react/useAdminDiscloseToParty.d.ts +8 -0
- package/dist/fhe-vesting/react/useAdminGetClaimableAmount.d.ts +13 -0
- package/dist/fhe-vesting/react/useAdminGetSettledAmount.d.ts +13 -0
- package/dist/fhe-vesting/react/useAdminGetTokenBalance.d.ts +13 -0
- package/dist/fhe-vesting/react/useAdminGetTotalAllocation.d.ts +13 -0
- package/dist/fhe-vesting/react/useAdminGetVestedAmount.d.ts +15 -0
- package/dist/fhe-vesting/react/useAdminPartialClaim.d.ts +8 -0
- package/dist/fhe-vesting/react/useAllRecipients.d.ts +8 -0
- package/dist/fhe-vesting/react/useAllRecipientsLength.d.ts +6 -0
- package/dist/fhe-vesting/react/useAllRecipientsSliced.d.ts +13 -0
- package/dist/fhe-vesting/react/useBatchCreateVesting.d.ts +24 -0
- package/dist/fhe-vesting/react/useBatchDiscloseHandlesToParty.d.ts +13 -0
- package/dist/fhe-vesting/react/useBatchDiscloseToParty.d.ts +18 -0
- package/dist/fhe-vesting/react/useBatchRevokeVesting.d.ts +12 -0
- package/dist/fhe-vesting/react/useCancelVestingTransfer.d.ts +12 -0
- package/dist/fhe-vesting/react/useClaim.d.ts +19 -0
- package/dist/fhe-vesting/react/useConfidentialVestingFactoryImplementation.d.ts +11 -0
- package/dist/fhe-vesting/react/useCreateManager.d.ts +32 -0
- package/dist/fhe-vesting/react/useCreateManagerAndGetAddress.d.ts +31 -0
- package/dist/fhe-vesting/react/useCreateVesting.d.ts +38 -0
- package/dist/fhe-vesting/react/useDirectVestingTransfer.d.ts +13 -0
- package/dist/fhe-vesting/react/useDisableCustomFee.d.ts +14 -0
- package/dist/fhe-vesting/react/useDiscloseHandleToParty.d.ts +14 -0
- package/dist/fhe-vesting/react/useDiscloseToParty.d.ts +14 -0
- package/dist/fhe-vesting/react/useFactoryCustomFee.d.ts +17 -0
- package/dist/fhe-vesting/react/useFactoryDefaultFeeType.d.ts +11 -0
- package/dist/fhe-vesting/react/useFactoryDefaultGasFee.d.ts +10 -0
- package/dist/fhe-vesting/react/useFactoryDefaultTokenFee.d.ts +10 -0
- package/dist/fhe-vesting/react/useFactoryFeeCollector.d.ts +10 -0
- package/dist/fhe-vesting/react/useFactoryInitCodeHash.d.ts +18 -0
- package/dist/fhe-vesting/react/useGetClaimableAmount.d.ts +13 -0
- package/dist/fhe-vesting/react/useGetSettledAmount.d.ts +14 -0
- package/dist/fhe-vesting/react/useGetTotalAllocation.d.ts +13 -0
- package/dist/fhe-vesting/react/useGetVestedAmount.d.ts +25 -0
- package/dist/fhe-vesting/react/useGrantRole.d.ts +15 -0
- package/dist/fhe-vesting/react/useHasRole.d.ts +14 -0
- package/dist/fhe-vesting/react/useInitiateVestingTransfer.d.ts +12 -0
- package/dist/fhe-vesting/react/useIsRecipient.d.ts +10 -0
- package/dist/fhe-vesting/react/useManagerBatchDiscloseHandlesToParty.d.ts +15 -0
- package/dist/fhe-vesting/react/useManagerDeploymentBlockNumber.d.ts +7 -0
- package/dist/fhe-vesting/react/useManagerDiscloseHandleToParty.d.ts +16 -0
- package/dist/fhe-vesting/react/useManagerFactoryCustomFee.d.ts +17 -0
- package/dist/fhe-vesting/react/useManagerFactoryDefaultGasFee.d.ts +10 -0
- package/dist/fhe-vesting/react/useManagerFactoryDisableCustomFee.d.ts +15 -0
- package/dist/fhe-vesting/react/useManagerFactoryFeeCollector.d.ts +10 -0
- package/dist/fhe-vesting/react/useManagerFactoryInitCodeHash.d.ts +18 -0
- package/dist/fhe-vesting/react/useManagerFactorySetCustomFee.d.ts +19 -0
- package/dist/fhe-vesting/react/useManagerFactorySetDefaultGasFee.d.ts +13 -0
- package/dist/fhe-vesting/react/useManagerFactorySetFeeCollector.d.ts +14 -0
- package/dist/fhe-vesting/react/useManagerFee.d.ts +7 -0
- package/dist/fhe-vesting/react/useManagerFeeInfo.d.ts +18 -0
- package/dist/fhe-vesting/react/useManagerFeeType.d.ts +7 -0
- package/dist/fhe-vesting/react/useManagerGrantRole.d.ts +17 -0
- package/dist/fhe-vesting/react/useManagerHasRole.d.ts +15 -0
- package/dist/fhe-vesting/react/useManagerIsPausable.d.ts +6 -0
- package/dist/fhe-vesting/react/useManagerIsSplitEnabled.d.ts +6 -0
- package/dist/fhe-vesting/react/useManagerMaxBatchSize.d.ts +6 -0
- package/dist/fhe-vesting/react/useManagerMaxRevokeBatchSize.d.ts +6 -0
- package/dist/fhe-vesting/react/useManagerPause.d.ts +13 -0
- package/dist/fhe-vesting/react/useManagerPaused.d.ts +6 -0
- package/dist/fhe-vesting/react/useManagerRevokeRole.d.ts +17 -0
- package/dist/fhe-vesting/react/useManagerToken.d.ts +11 -0
- package/dist/fhe-vesting/react/useManagerUnpause.d.ts +12 -0
- package/dist/fhe-vesting/react/useManagerWithdrawGasFee.d.ts +14 -0
- package/dist/fhe-vesting/react/useManagerWithdrawOtherConfidentialToken.d.ts +14 -0
- package/dist/fhe-vesting/react/useManagerWithdrawOtherToken.d.ts +14 -0
- package/dist/fhe-vesting/react/useManagerWithdrawTokenFee.d.ts +11 -0
- package/dist/fhe-vesting/react/usePartialClaim.d.ts +15 -0
- package/dist/fhe-vesting/react/usePause.d.ts +12 -0
- package/dist/fhe-vesting/react/usePendingVestingTransfer.d.ts +20 -0
- package/dist/fhe-vesting/react/useRecipientVestings.d.ts +11 -0
- package/dist/fhe-vesting/react/useRecipientVestingsLength.d.ts +10 -0
- package/dist/fhe-vesting/react/useRecipientVestingsSliced.d.ts +12 -0
- package/dist/fhe-vesting/react/useRenounceRole.d.ts +16 -0
- package/dist/fhe-vesting/react/useResetGasFee.d.ts +10 -0
- package/dist/fhe-vesting/react/useResetTokenFee.d.ts +10 -0
- package/dist/fhe-vesting/react/useRevokeRole.d.ts +15 -0
- package/dist/fhe-vesting/react/useRevokeVesting.d.ts +15 -0
- package/dist/fhe-vesting/react/useRoleConstants.d.ts +19 -0
- package/dist/fhe-vesting/react/useSetCustomFee.d.ts +18 -0
- package/dist/fhe-vesting/react/useSetDefaultFeeType.d.ts +14 -0
- package/dist/fhe-vesting/react/useSetDefaultGasFee.d.ts +12 -0
- package/dist/fhe-vesting/react/useSetDefaultTokenFee.d.ts +13 -0
- package/dist/fhe-vesting/react/useSetFeeCollector.d.ts +13 -0
- package/dist/fhe-vesting/react/useSetMaxBatchSize.d.ts +12 -0
- package/dist/fhe-vesting/react/useSetMaxRevokeBatchSize.d.ts +12 -0
- package/dist/fhe-vesting/react/useSplitVesting.d.ts +28 -0
- package/dist/fhe-vesting/react/useTransferFeeCollectorRole.d.ts +12 -0
- package/dist/fhe-vesting/react/useUnpause.d.ts +11 -0
- package/dist/fhe-vesting/react/useVestingClaim.d.ts +19 -0
- package/dist/fhe-vesting/react/useVestingInfo.d.ts +25 -0
- package/dist/fhe-vesting/react/useWithdrawAdmin.d.ts +17 -0
- package/dist/fhe-vesting/react/useWithdrawGasFee.d.ts +13 -0
- package/dist/fhe-vesting/react/useWithdrawOtherConfidentialToken.d.ts +13 -0
- package/dist/fhe-vesting/react/useWithdrawOtherToken.d.ts +13 -0
- package/dist/fhe-vesting/react/useWithdrawTokenFee.d.ts +18 -0
- package/dist/fhe-vesting/types.d.ts +72 -0
- package/dist/index.cjs +237 -0
- package/dist/index.d.cts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +14 -0
- package/dist/telemetry/console.d.ts +29 -0
- package/dist/telemetry/index.cjs +113 -0
- package/dist/telemetry/index.d.cts +3 -0
- package/dist/telemetry/index.d.ts +3 -0
- package/dist/telemetry/index.js +102 -0
- package/dist/telemetry/tokenops.d.ts +15 -0
- package/package.json +316 -0
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk56UI7LUR_cjs = require('./chunk-56UI7LUR.cjs');
|
|
4
|
+
var viem = require('viem');
|
|
5
|
+
|
|
6
|
+
// src/core/version.ts
|
|
7
|
+
var SDK_VERSION = "1.0.0";
|
|
8
|
+
function mapContractRevert(error, args) {
|
|
9
|
+
if (error instanceof chunk56UI7LUR_cjs.TokenOpsSdkError) return error;
|
|
10
|
+
const ctx = {
|
|
11
|
+
method: args.method,
|
|
12
|
+
contractAddress: args.contractAddress,
|
|
13
|
+
productContext: args.productContext
|
|
14
|
+
};
|
|
15
|
+
const reverted = findRevertedError(error);
|
|
16
|
+
if (!reverted) {
|
|
17
|
+
return classifyNonRevert(error, args);
|
|
18
|
+
}
|
|
19
|
+
let revertName = reverted.data?.errorName;
|
|
20
|
+
let revertArgs = reverted.data?.args;
|
|
21
|
+
let revertSelector;
|
|
22
|
+
const rawRevertData = reverted.raw;
|
|
23
|
+
const revertReason = reverted.reason;
|
|
24
|
+
if (revertName === void 0 && rawRevertData !== void 0 && rawRevertData.length >= 10) {
|
|
25
|
+
revertSelector = rawRevertData.slice(0, 10);
|
|
26
|
+
try {
|
|
27
|
+
const decoded = viem.decodeErrorResult({ abi: args.abi, data: rawRevertData });
|
|
28
|
+
revertName = decoded.errorName;
|
|
29
|
+
revertArgs = decoded.args;
|
|
30
|
+
} catch {
|
|
31
|
+
}
|
|
32
|
+
} else if (revertSelector === void 0 && rawRevertData !== void 0) {
|
|
33
|
+
revertSelector = rawRevertData.slice(0, 10);
|
|
34
|
+
}
|
|
35
|
+
if (revertName !== void 0) {
|
|
36
|
+
const fromProduct = args.productMapper?.(revertName, revertArgs, ctx);
|
|
37
|
+
if (fromProduct) return attachCause(fromProduct, error);
|
|
38
|
+
const fromDefault = defaultRevertNameMapper(revertName, revertArgs, ctx, args.account);
|
|
39
|
+
if (fromDefault) return attachCause(fromDefault, error);
|
|
40
|
+
}
|
|
41
|
+
return new chunk56UI7LUR_cjs.ContractRevertError({
|
|
42
|
+
method: args.method,
|
|
43
|
+
contractAddress: args.contractAddress,
|
|
44
|
+
revertName,
|
|
45
|
+
revertSelector,
|
|
46
|
+
revertArgs,
|
|
47
|
+
revertReason,
|
|
48
|
+
rawRevertData,
|
|
49
|
+
cause: error
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
function attachCause(err, cause) {
|
|
53
|
+
if (err.cause === void 0) {
|
|
54
|
+
Object.defineProperty(err, "cause", {
|
|
55
|
+
value: cause,
|
|
56
|
+
writable: true,
|
|
57
|
+
configurable: true,
|
|
58
|
+
enumerable: false
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
return err;
|
|
62
|
+
}
|
|
63
|
+
function defaultRevertNameMapper(name, errArgs, ctx, account) {
|
|
64
|
+
switch (name) {
|
|
65
|
+
// OpenZeppelin / cross-product structural errors.
|
|
66
|
+
case "EnforcedPause":
|
|
67
|
+
case "PausableUpgradeable__Paused":
|
|
68
|
+
case "ClaimsPaused":
|
|
69
|
+
return new chunk56UI7LUR_cjs.PausedError(ctx);
|
|
70
|
+
case "AccessControlUnauthorizedAccount": {
|
|
71
|
+
const acct = errArgs?.[0] ?? account;
|
|
72
|
+
const role = errArgs?.[1];
|
|
73
|
+
return new chunk56UI7LUR_cjs.AccessDeniedError({ ...ctx, account: acct, role });
|
|
74
|
+
}
|
|
75
|
+
case "AccessControlBadConfirmation":
|
|
76
|
+
return new chunk56UI7LUR_cjs.InvalidArgumentError({
|
|
77
|
+
method: ctx.method,
|
|
78
|
+
argument: "callerConfirmation",
|
|
79
|
+
reason: "must equal msg.sender for renounceRole"
|
|
80
|
+
});
|
|
81
|
+
case "InvalidInitialization":
|
|
82
|
+
case "Initializable_InvalidInitialization":
|
|
83
|
+
return new chunk56UI7LUR_cjs.AlreadyInitializedError(ctx);
|
|
84
|
+
case "ReentrancyGuardReentrantCall":
|
|
85
|
+
case "ReentrancyGuardTransient":
|
|
86
|
+
return new chunk56UI7LUR_cjs.ReentrancyError(ctx);
|
|
87
|
+
// Cross-product custom errors with stable, unambiguous meaning.
|
|
88
|
+
case "InsufficientFee":
|
|
89
|
+
case "InsufficientGasFee":
|
|
90
|
+
return new chunk56UI7LUR_cjs.InsufficientFeeError({ ...ctx, feeKind: "gas" });
|
|
91
|
+
case "InsufficientAmount": {
|
|
92
|
+
const provided = errArgs?.[0];
|
|
93
|
+
const required = errArgs?.[1];
|
|
94
|
+
return new chunk56UI7LUR_cjs.InsufficientFeeError({ ...ctx, feeKind: "gas", required, provided });
|
|
95
|
+
}
|
|
96
|
+
case "ZeroBalance":
|
|
97
|
+
case "InsufficientBalance":
|
|
98
|
+
return new chunk56UI7LUR_cjs.InsufficientBalanceError({ ...ctx, balanceKind: "eth" });
|
|
99
|
+
case "BatchTooLarge": {
|
|
100
|
+
const requested = Number(errArgs?.[0] ?? 0);
|
|
101
|
+
const max = errArgs?.[1] ?? 0n;
|
|
102
|
+
return new chunk56UI7LUR_cjs.BatchTooLargeError({ ...ctx, requested, max });
|
|
103
|
+
}
|
|
104
|
+
case "SplitDisabled":
|
|
105
|
+
return new chunk56UI7LUR_cjs.FeatureDisabledError({ ...ctx, feature: "split" });
|
|
106
|
+
case "PausableDisabled":
|
|
107
|
+
return new chunk56UI7LUR_cjs.FeatureDisabledError({ ...ctx, feature: "pause" });
|
|
108
|
+
case "ExtensionNotAllowed":
|
|
109
|
+
return new chunk56UI7LUR_cjs.FeatureDisabledError({ ...ctx, feature: "extendClaimWindow" });
|
|
110
|
+
case "TransferFailed":
|
|
111
|
+
return new chunk56UI7LUR_cjs.TransferFailedError({ ...ctx, asset: "eth" });
|
|
112
|
+
case "HandleNotAllowed":
|
|
113
|
+
return new chunk56UI7LUR_cjs.FheHandleNotAllowedError({ ...ctx, account });
|
|
114
|
+
case "SenderNotAllowedToUseHandle": {
|
|
115
|
+
const handle = errArgs?.[0];
|
|
116
|
+
const sender = errArgs?.[1] ?? account;
|
|
117
|
+
return new chunk56UI7LUR_cjs.FheHandleNotAllowedError({ ...ctx, handle, account: sender });
|
|
118
|
+
}
|
|
119
|
+
case "SenderNotAllowed": {
|
|
120
|
+
const sender = errArgs?.[0] ?? account;
|
|
121
|
+
return new chunk56UI7LUR_cjs.FheHandleNotAllowedError({ ...ctx, account: sender });
|
|
122
|
+
}
|
|
123
|
+
case "InvalidSignature":
|
|
124
|
+
return new chunk56UI7LUR_cjs.InvalidSignatureError(ctx);
|
|
125
|
+
// Range / arg-validation reverts the SDK should already have caught in
|
|
126
|
+
// preflight or input validation. If they slip through, surface them as
|
|
127
|
+
// structural `InvalidArgumentError` so consumers see `TOKENOPS_INVALID_ARGUMENT`
|
|
128
|
+
// rather than a generic contract-revert message.
|
|
129
|
+
case "InvalidAddress":
|
|
130
|
+
case "InvalidAdmin":
|
|
131
|
+
case "InvalidFeeCollector":
|
|
132
|
+
case "InvalidRecipient":
|
|
133
|
+
case "InvalidToken":
|
|
134
|
+
case "InvalidParty":
|
|
135
|
+
case "InvalidStartTime":
|
|
136
|
+
case "EndTimeInPast":
|
|
137
|
+
case "InvalidDuration":
|
|
138
|
+
case "InvalidTimestamps":
|
|
139
|
+
case "InvalidBps":
|
|
140
|
+
case "InvalidFeeBps":
|
|
141
|
+
case "TokenFeeTooHigh":
|
|
142
|
+
case "CliffExceedsDuration":
|
|
143
|
+
case "TimelockOverflow":
|
|
144
|
+
case "InvalidTransferDuration":
|
|
145
|
+
case "InvalidSplitDenominator":
|
|
146
|
+
case "InvalidMaxBatchSize":
|
|
147
|
+
case "InvalidWalletIndex":
|
|
148
|
+
case "CannotTransferToSelf":
|
|
149
|
+
case "CannotTransferToZero":
|
|
150
|
+
case "SameToken":
|
|
151
|
+
case "UnexpectedETH":
|
|
152
|
+
case "EmptyBatch":
|
|
153
|
+
case "EmptyRecipients":
|
|
154
|
+
case "ZeroAddressRecipient":
|
|
155
|
+
case "ArrayLengthMismatch":
|
|
156
|
+
case "VestingIdsNotStrictlyAsc":
|
|
157
|
+
case "CustomFeeNotSet":
|
|
158
|
+
return new chunk56UI7LUR_cjs.InvalidArgumentError({
|
|
159
|
+
method: ctx.method,
|
|
160
|
+
argument: invalidArgumentLabelFor(name),
|
|
161
|
+
reason: `the contract reverted with \`${name}\`. If you did not pass an invalid value, this may be an SDK bug \u2014 please file an issue.`
|
|
162
|
+
});
|
|
163
|
+
default:
|
|
164
|
+
return void 0;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
function invalidArgumentLabelFor(revertName) {
|
|
168
|
+
switch (revertName) {
|
|
169
|
+
case "InvalidAddress":
|
|
170
|
+
return "address";
|
|
171
|
+
case "InvalidAdmin":
|
|
172
|
+
return "admin";
|
|
173
|
+
case "InvalidFeeCollector":
|
|
174
|
+
return "feeCollector";
|
|
175
|
+
case "InvalidRecipient":
|
|
176
|
+
case "ZeroAddressRecipient":
|
|
177
|
+
return "recipient";
|
|
178
|
+
case "InvalidToken":
|
|
179
|
+
case "SameToken":
|
|
180
|
+
return "token";
|
|
181
|
+
case "InvalidParty":
|
|
182
|
+
return "party";
|
|
183
|
+
case "InvalidStartTime":
|
|
184
|
+
return "startTime";
|
|
185
|
+
case "EndTimeInPast":
|
|
186
|
+
return "endTime";
|
|
187
|
+
case "InvalidDuration":
|
|
188
|
+
case "InvalidTransferDuration":
|
|
189
|
+
return "duration";
|
|
190
|
+
case "InvalidTimestamps":
|
|
191
|
+
return "timestamps";
|
|
192
|
+
case "InvalidBps":
|
|
193
|
+
case "InvalidFeeBps":
|
|
194
|
+
case "TokenFeeTooHigh":
|
|
195
|
+
return "feeBps";
|
|
196
|
+
case "CliffExceedsDuration":
|
|
197
|
+
return "cliff";
|
|
198
|
+
case "TimelockOverflow":
|
|
199
|
+
return "timelock";
|
|
200
|
+
case "InvalidSplitDenominator":
|
|
201
|
+
return "splitDenominator";
|
|
202
|
+
case "InvalidMaxBatchSize":
|
|
203
|
+
return "maxBatchSize";
|
|
204
|
+
case "InvalidWalletIndex":
|
|
205
|
+
return "walletIndex";
|
|
206
|
+
case "CannotTransferToSelf":
|
|
207
|
+
case "CannotTransferToZero":
|
|
208
|
+
return "to";
|
|
209
|
+
case "UnexpectedETH":
|
|
210
|
+
return "msg.value";
|
|
211
|
+
case "EmptyBatch":
|
|
212
|
+
case "EmptyRecipients":
|
|
213
|
+
return "recipients";
|
|
214
|
+
case "ArrayLengthMismatch":
|
|
215
|
+
return "arguments";
|
|
216
|
+
case "VestingIdsNotStrictlyAsc":
|
|
217
|
+
return "vestingIds";
|
|
218
|
+
case "CustomFeeNotSet":
|
|
219
|
+
return "user";
|
|
220
|
+
default:
|
|
221
|
+
return "input";
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
function isContractRevert(error) {
|
|
225
|
+
if (!(error instanceof viem.BaseError)) return false;
|
|
226
|
+
const frame = error.walk((e) => e instanceof viem.ContractFunctionRevertedError);
|
|
227
|
+
return frame instanceof viem.ContractFunctionRevertedError;
|
|
228
|
+
}
|
|
229
|
+
function classifyNonRevert(error, args) {
|
|
230
|
+
if (!(error instanceof viem.BaseError)) {
|
|
231
|
+
return new chunk56UI7LUR_cjs.UnknownWriteFailureError({
|
|
232
|
+
method: args.method,
|
|
233
|
+
contractAddress: args.contractAddress,
|
|
234
|
+
cause: error
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
const walk = (predicate) => {
|
|
238
|
+
const frame = error.walk((f) => predicate(f));
|
|
239
|
+
return predicate(frame) ? frame : void 0;
|
|
240
|
+
};
|
|
241
|
+
if (walk((e) => e instanceof viem.UserRejectedRequestError) || walk((e) => e instanceof viem.TransactionRejectedRpcError)) {
|
|
242
|
+
return new chunk56UI7LUR_cjs.WalletRejectedError({
|
|
243
|
+
method: args.method,
|
|
244
|
+
contractAddress: args.contractAddress,
|
|
245
|
+
cause: error
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
if (walk((e) => e instanceof viem.ChainMismatchError)) {
|
|
249
|
+
return new chunk56UI7LUR_cjs.WalletChainMismatchError({
|
|
250
|
+
method: args.method,
|
|
251
|
+
contractAddress: args.contractAddress,
|
|
252
|
+
cause: error
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
if (walk((e) => e instanceof viem.InsufficientFundsError)) {
|
|
256
|
+
return new chunk56UI7LUR_cjs.InsufficientGasFundsError({
|
|
257
|
+
method: args.method,
|
|
258
|
+
contractAddress: args.contractAddress,
|
|
259
|
+
cause: error
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
const httpFrame = walk((e) => e instanceof viem.HttpRequestError);
|
|
263
|
+
if (httpFrame) {
|
|
264
|
+
return new chunk56UI7LUR_cjs.NetworkError({
|
|
265
|
+
method: args.method,
|
|
266
|
+
contractAddress: args.contractAddress,
|
|
267
|
+
statusCode: httpFrame.status,
|
|
268
|
+
cause: error
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
if (walk((e) => e instanceof viem.TimeoutError)) {
|
|
272
|
+
return new chunk56UI7LUR_cjs.NetworkError({
|
|
273
|
+
method: args.method,
|
|
274
|
+
contractAddress: args.contractAddress,
|
|
275
|
+
cause: error
|
|
276
|
+
});
|
|
277
|
+
}
|
|
278
|
+
return new chunk56UI7LUR_cjs.UnknownWriteFailureError({
|
|
279
|
+
method: args.method,
|
|
280
|
+
contractAddress: args.contractAddress,
|
|
281
|
+
cause: error
|
|
282
|
+
});
|
|
283
|
+
}
|
|
284
|
+
function findRevertedError(err) {
|
|
285
|
+
if (!(err instanceof viem.BaseError)) {
|
|
286
|
+
if (err instanceof Error) {
|
|
287
|
+
const hex = coerceRevertHex(err.data);
|
|
288
|
+
if (hex) return { raw: hex };
|
|
289
|
+
}
|
|
290
|
+
return void 0;
|
|
291
|
+
}
|
|
292
|
+
const frame = err.walk((f) => f instanceof viem.ContractFunctionRevertedError);
|
|
293
|
+
if (frame instanceof viem.ContractFunctionRevertedError) {
|
|
294
|
+
const data = frame.data ? {
|
|
295
|
+
errorName: frame.data.errorName,
|
|
296
|
+
args: frame.data.args
|
|
297
|
+
} : void 0;
|
|
298
|
+
return {
|
|
299
|
+
data,
|
|
300
|
+
raw: frame.raw,
|
|
301
|
+
reason: frame.reason
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
let cursor = err;
|
|
305
|
+
const seen = /* @__PURE__ */ new Set();
|
|
306
|
+
while (cursor && !seen.has(cursor)) {
|
|
307
|
+
seen.add(cursor);
|
|
308
|
+
const hex = coerceRevertHex(cursor.data);
|
|
309
|
+
if (hex) return { raw: hex };
|
|
310
|
+
cursor = cursor.cause;
|
|
311
|
+
}
|
|
312
|
+
return void 0;
|
|
313
|
+
}
|
|
314
|
+
function coerceRevertHex(value) {
|
|
315
|
+
if (typeof value === "string" && value.startsWith("0x") && value.length >= 10) {
|
|
316
|
+
return value;
|
|
317
|
+
}
|
|
318
|
+
if (value !== null && typeof value === "object" && "data" in value) {
|
|
319
|
+
const nested = value.data;
|
|
320
|
+
if (typeof nested === "string" && nested.startsWith("0x") && nested.length >= 10) {
|
|
321
|
+
return nested;
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
return void 0;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
exports.SDK_VERSION = SDK_VERSION;
|
|
328
|
+
exports.isContractRevert = isContractRevert;
|
|
329
|
+
exports.mapContractRevert = mapContractRevert;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// src/core/telemetry.ts
|
|
4
|
+
var NoopTelemetry = class {
|
|
5
|
+
event() {
|
|
6
|
+
}
|
|
7
|
+
async span(_name, fn) {
|
|
8
|
+
return fn();
|
|
9
|
+
}
|
|
10
|
+
error() {
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* No-op telemetry has no state to carry — returning `this` is correct and
|
|
14
|
+
* avoids a per-request allocation. Consumers that swap to a real adapter
|
|
15
|
+
* will get a fresh child instance per call.
|
|
16
|
+
*/
|
|
17
|
+
scope(_tags) {
|
|
18
|
+
return this;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
async function withTelemetry(telemetry, name, fn) {
|
|
22
|
+
const t = telemetry ?? new NoopTelemetry();
|
|
23
|
+
try {
|
|
24
|
+
return await t.span(name, fn);
|
|
25
|
+
} catch (err) {
|
|
26
|
+
t.error(err instanceof Error ? err : new Error(String(err)), { span: name });
|
|
27
|
+
throw err;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
exports.NoopTelemetry = NoopTelemetry;
|
|
32
|
+
exports.withTelemetry = withTelemetry;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { normaliseAddress } from './chunk-BE2AIZ3K.js';
|
|
2
|
+
import { withTelemetry } from './chunk-Q2GP5UDC.js';
|
|
3
|
+
import { TokenOpsContractError } from './chunk-IVE3QEGD.js';
|
|
4
|
+
|
|
5
|
+
// src/fhe/operators.ts
|
|
6
|
+
var ERC7984_SET_OPERATOR_ABI = [
|
|
7
|
+
{
|
|
8
|
+
type: "function",
|
|
9
|
+
name: "setOperator",
|
|
10
|
+
stateMutability: "nonpayable",
|
|
11
|
+
inputs: [
|
|
12
|
+
{ name: "operator", type: "address" },
|
|
13
|
+
{ name: "until", type: "uint48" }
|
|
14
|
+
],
|
|
15
|
+
outputs: []
|
|
16
|
+
}
|
|
17
|
+
];
|
|
18
|
+
var ERC7984_OPERATOR_MAX_DEADLINE = (1n << 48n) - 1n;
|
|
19
|
+
async function setOperator(args) {
|
|
20
|
+
const { publicClient, walletClient, account, waitForReceipt = true, telemetry } = args;
|
|
21
|
+
const token = normaliseAddress(args.token);
|
|
22
|
+
const spender = normaliseAddress(args.spender);
|
|
23
|
+
const deadline = args.deadline ?? ERC7984_OPERATOR_MAX_DEADLINE;
|
|
24
|
+
return withTelemetry(telemetry, "fhe.setOperator", async () => {
|
|
25
|
+
const fromAccount = account ?? walletClient.account;
|
|
26
|
+
if (!fromAccount) {
|
|
27
|
+
throw new TokenOpsContractError(
|
|
28
|
+
"setOperator: no account available \u2014 pass `account` explicitly or attach an account to the walletClient",
|
|
29
|
+
{ contract: "ERC7984", call: "setOperator" }
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
if (deadline < 0n || deadline > ERC7984_OPERATOR_MAX_DEADLINE) {
|
|
33
|
+
throw new TokenOpsContractError(
|
|
34
|
+
`setOperator: deadline ${deadline} out of uint48 range [0, ${ERC7984_OPERATOR_MAX_DEADLINE}]`,
|
|
35
|
+
{ contract: "ERC7984", call: "setOperator", deadline: deadline.toString() }
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
const deadlineNum = Number(deadline);
|
|
39
|
+
let hash;
|
|
40
|
+
try {
|
|
41
|
+
hash = await walletClient.writeContract({
|
|
42
|
+
address: token,
|
|
43
|
+
abi: ERC7984_SET_OPERATOR_ABI,
|
|
44
|
+
functionName: "setOperator",
|
|
45
|
+
args: [spender, deadlineNum],
|
|
46
|
+
account: fromAccount,
|
|
47
|
+
// viem requires `chain` to be passed explicitly when the wallet has
|
|
48
|
+
// no default chain (e.g. some consumer-side constructions). Forward
|
|
49
|
+
// whatever the wallet is bound to; viem accepts undefined and falls
|
|
50
|
+
// back to the wallet's chain when present.
|
|
51
|
+
chain: walletClient.chain
|
|
52
|
+
});
|
|
53
|
+
} catch (err) {
|
|
54
|
+
throw new TokenOpsContractError(
|
|
55
|
+
`setOperator: writeContract failed (token=${token}, spender=${spender})`,
|
|
56
|
+
{
|
|
57
|
+
contract: "ERC7984",
|
|
58
|
+
call: "setOperator",
|
|
59
|
+
token,
|
|
60
|
+
spender,
|
|
61
|
+
cause: err
|
|
62
|
+
}
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
if (waitForReceipt) {
|
|
66
|
+
try {
|
|
67
|
+
await publicClient.waitForTransactionReceipt({ hash });
|
|
68
|
+
} catch (err) {
|
|
69
|
+
throw new TokenOpsContractError(`setOperator: receipt wait failed (tx=${hash})`, {
|
|
70
|
+
contract: "ERC7984",
|
|
71
|
+
call: "setOperator",
|
|
72
|
+
tx: hash,
|
|
73
|
+
cause: err
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return hash;
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
async function revokeOperator(args) {
|
|
81
|
+
return withTelemetry(args.telemetry, "fhe.revokeOperator", async () => {
|
|
82
|
+
return setOperator({
|
|
83
|
+
publicClient: args.publicClient,
|
|
84
|
+
walletClient: args.walletClient,
|
|
85
|
+
...args.account !== void 0 ? { account: args.account } : {},
|
|
86
|
+
token: args.token,
|
|
87
|
+
spender: args.spender,
|
|
88
|
+
deadline: 0n,
|
|
89
|
+
...args.waitForReceipt !== void 0 ? { waitForReceipt: args.waitForReceipt } : {}
|
|
90
|
+
// Do NOT forward `telemetry` — the inner `fhe.setOperator` span would
|
|
91
|
+
// double-emit. The outer `fhe.revokeOperator` span carries the call.
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
export { ERC7984_OPERATOR_MAX_DEADLINE, ERC7984_SET_OPERATOR_ABI, revokeOperator, setOperator };
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
import { InvalidArgumentError } from './chunk-IVE3QEGD.js';
|
|
2
|
+
|
|
3
|
+
// src/fhe/scale-ratio.ts
|
|
4
|
+
var FHE_SPLIT_DENOMINATOR = 90090000n;
|
|
5
|
+
var MAX_UINT64 = (1n << 64n) - 1n;
|
|
6
|
+
var MAX_UINT128 = (1n << 128n) - 1n;
|
|
7
|
+
var MAX_FRACTION_DENOMINATOR = 16n;
|
|
8
|
+
var BASIS_POINT_SCALE = 10000n;
|
|
9
|
+
function scaleRatio({
|
|
10
|
+
numerator,
|
|
11
|
+
denominator,
|
|
12
|
+
minDenominator = FHE_SPLIT_DENOMINATOR,
|
|
13
|
+
width = "uint128"
|
|
14
|
+
}) {
|
|
15
|
+
if (denominator <= 0n) {
|
|
16
|
+
throw new InvalidArgumentError({
|
|
17
|
+
method: "scaleRatio",
|
|
18
|
+
argument: "denominator",
|
|
19
|
+
reason: `must be > 0, got ${denominator}`,
|
|
20
|
+
value: denominator
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
if (numerator < 0n) {
|
|
24
|
+
throw new InvalidArgumentError({
|
|
25
|
+
method: "scaleRatio",
|
|
26
|
+
argument: "numerator",
|
|
27
|
+
reason: `must be >= 0, got ${numerator}`,
|
|
28
|
+
value: numerator
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
if (minDenominator <= 0n) {
|
|
32
|
+
throw new InvalidArgumentError({
|
|
33
|
+
method: "scaleRatio",
|
|
34
|
+
argument: "minDenominator",
|
|
35
|
+
reason: `must be > 0, got ${minDenominator}`,
|
|
36
|
+
value: minDenominator
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
if (denominator >= minDenominator) {
|
|
40
|
+
assertWithinWidth(numerator, width, "numerator");
|
|
41
|
+
assertWithinWidth(denominator, width, "denominator");
|
|
42
|
+
return { numerator, denominator };
|
|
43
|
+
}
|
|
44
|
+
const scaledNumerator = (numerator * minDenominator + denominator - 1n) / denominator;
|
|
45
|
+
assertWithinWidth(scaledNumerator, width, "scaled numerator");
|
|
46
|
+
assertWithinWidth(minDenominator, width, "scaled denominator");
|
|
47
|
+
return { numerator: scaledNumerator, denominator: minDenominator };
|
|
48
|
+
}
|
|
49
|
+
function assertWithinWidth(value, width, label) {
|
|
50
|
+
const max = width === "uint64" ? MAX_UINT64 : MAX_UINT128;
|
|
51
|
+
if (value > max) {
|
|
52
|
+
throw new InvalidArgumentError({
|
|
53
|
+
method: "scaleRatio",
|
|
54
|
+
argument: label,
|
|
55
|
+
reason: `exceeds ${width} range`,
|
|
56
|
+
value
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
var share = {
|
|
61
|
+
/**
|
|
62
|
+
* Build a `ScaledRatio` from a simple fraction `n/m`.
|
|
63
|
+
*
|
|
64
|
+
* - `m` must be in `1..16` — every integer in this range divides
|
|
65
|
+
* {@link FHE_SPLIT_DENOMINATOR} cleanly, so the result is exact.
|
|
66
|
+
* - `n` must be in `0..m` — `0` is a zero-share (no-op split) and `m`
|
|
67
|
+
* itself is the whole position.
|
|
68
|
+
*
|
|
69
|
+
* Both arguments accept `number` (must be an integer) or `bigint` —
|
|
70
|
+
* use whichever is convenient at the call site.
|
|
71
|
+
*
|
|
72
|
+
* @throws InvalidArgumentError if `m` is outside `1..16` or `n` is
|
|
73
|
+
* outside `0..m`, or either input is a non-integer `number`.
|
|
74
|
+
*/
|
|
75
|
+
fraction(numerator, denominator) {
|
|
76
|
+
const n = toIntegerBigInt(numerator, "share.fraction", "numerator");
|
|
77
|
+
const m = toIntegerBigInt(denominator, "share.fraction", "denominator");
|
|
78
|
+
if (m <= 0n || m > MAX_FRACTION_DENOMINATOR) {
|
|
79
|
+
throw new InvalidArgumentError({
|
|
80
|
+
method: "share.fraction",
|
|
81
|
+
argument: "denominator",
|
|
82
|
+
reason: `must be in 1..${MAX_FRACTION_DENOMINATOR}, got ${m}`,
|
|
83
|
+
value: m
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
if (n < 0n || n > m) {
|
|
87
|
+
throw new InvalidArgumentError({
|
|
88
|
+
method: "share.fraction",
|
|
89
|
+
argument: "numerator",
|
|
90
|
+
reason: `must be in 0..${m} (denominator), got ${n}`,
|
|
91
|
+
value: n
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
return scaleRatio({ numerator: n, denominator: m, width: "uint64" });
|
|
95
|
+
},
|
|
96
|
+
/**
|
|
97
|
+
* Build a `ScaledRatio` from a basis-point amount.
|
|
98
|
+
*
|
|
99
|
+
* `bps` must be in `0..10_000` — `0` is a zero-share and `10_000` is
|
|
100
|
+
* the whole position (= 100%). `10_000` divides
|
|
101
|
+
* {@link FHE_SPLIT_DENOMINATOR} cleanly, so the result is exact:
|
|
102
|
+
* `bps × 9_009` over `90_090_000`.
|
|
103
|
+
*
|
|
104
|
+
* Accepts `number` (must be an integer) or `bigint`.
|
|
105
|
+
*
|
|
106
|
+
* @throws InvalidArgumentError if `bps` is outside `0..10_000`, or is
|
|
107
|
+
* a non-integer `number`.
|
|
108
|
+
*/
|
|
109
|
+
basisPoints(bps) {
|
|
110
|
+
const value = toIntegerBigInt(bps, "share.basisPoints", "bps");
|
|
111
|
+
if (value < 0n || value > BASIS_POINT_SCALE) {
|
|
112
|
+
throw new InvalidArgumentError({
|
|
113
|
+
method: "share.basisPoints",
|
|
114
|
+
argument: "bps",
|
|
115
|
+
reason: `must be in 0..${BASIS_POINT_SCALE}, got ${value}`,
|
|
116
|
+
value
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
return scaleRatio({ numerator: value, denominator: BASIS_POINT_SCALE, width: "uint64" });
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
function toIntegerBigInt(value, method, argument) {
|
|
123
|
+
if (typeof value === "bigint") return value;
|
|
124
|
+
if (!Number.isInteger(value)) {
|
|
125
|
+
throw new InvalidArgumentError({
|
|
126
|
+
method,
|
|
127
|
+
argument,
|
|
128
|
+
reason: `must be an integer, got ${value}`,
|
|
129
|
+
value
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
return BigInt(value);
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
export { FHE_SPLIT_DENOMINATOR, scaleRatio, share };
|