@tokenops/sdk 1.6.0 → 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.
Files changed (194) hide show
  1. package/CHANGELOG.md +48 -8
  2. package/CONTRIBUTING.md +4 -2
  3. package/README.md +146 -90
  4. package/SUPPORT.md +47 -0
  5. package/dist/{chunk-HETNKZEE.js → chunk-335Z2W67.js} +1 -1
  6. package/dist/{chunk-BD4LZBVF.cjs → chunk-3QHNYEQD.cjs} +18 -17
  7. package/dist/chunk-456VDDA3.js +370 -0
  8. package/dist/{chunk-6WSNS3UV.js → chunk-4RAAATVY.js} +2 -4
  9. package/dist/{chunk-4KJ66YRH.js → chunk-4TSDNZQ3.js} +2 -2
  10. package/dist/{chunk-WUXUWTFW.cjs → chunk-5576FRT3.cjs} +31 -7
  11. package/dist/chunk-66IHPTOK.cjs +20 -0
  12. package/dist/{chunk-2RNW4MIJ.cjs → chunk-67OV5CX2.cjs} +0 -18
  13. package/dist/{chunk-PD7ME2BT.js → chunk-6GNR22OV.js} +2 -1
  14. package/dist/{chunk-VHSNYUYV.js → chunk-6NAVMWZQ.js} +5 -5
  15. package/dist/{chunk-EUKPOXWR.cjs → chunk-6PXXGACR.cjs} +17 -15
  16. package/dist/{chunk-WTK6JDSI.js → chunk-74QFZ5MK.js} +6 -4
  17. package/dist/{chunk-WOEETTH7.cjs → chunk-7AFPOE7N.cjs} +6 -6
  18. package/dist/{chunk-U57COLUE.js → chunk-AXIPOR3C.js} +2 -2
  19. package/dist/chunk-CTED3MTR.cjs +380 -0
  20. package/dist/{chunk-QKKBBH7I.js → chunk-DZHYSUGY.js} +28 -7
  21. package/dist/{chunk-V5D7BHW3.js → chunk-EAJ7SYHE.js} +6 -4
  22. package/dist/{chunk-SYHNZSZZ.cjs → chunk-FAXIIH5R.cjs} +3 -3
  23. package/dist/{chunk-7G7UOQV4.cjs → chunk-FGEB7RMY.cjs} +4 -4
  24. package/dist/chunk-GKKDAW44.js +8823 -0
  25. package/dist/{chunk-QET3Q4JP.js → chunk-H5POPGOZ.js} +8 -6
  26. package/dist/{chunk-VR3FREBX.cjs → chunk-JK4XMMKM.cjs} +3 -3
  27. package/dist/{chunk-CBRL2PJA.cjs → chunk-JQYC66TO.cjs} +12 -12
  28. package/dist/{chunk-YFIWCYHC.cjs → chunk-JZLGCTGK.cjs} +56 -54
  29. package/dist/{chunk-4ZCXK4VI.cjs → chunk-KFRDLKMA.cjs} +14 -14
  30. package/dist/chunk-KWFFIJYX.js +11 -0
  31. package/dist/chunk-M4IT6DNJ.cjs +608 -0
  32. package/dist/{chunk-43RFBQ73.cjs → chunk-MVDQMV25.cjs} +29 -32
  33. package/dist/chunk-NCVX3K2N.cjs +161 -0
  34. package/dist/chunk-NWFMBLSQ.js +4 -0
  35. package/dist/chunk-O5676ZWY.js +585 -0
  36. package/dist/chunk-PUX5VXDB.cjs +8845 -0
  37. package/dist/{chunk-DRSPMIZ7.js → chunk-QBJ7O2B4.js} +1 -11
  38. package/dist/{chunk-UJS4N2XM.cjs → chunk-TEBM66WA.cjs} +12 -12
  39. package/dist/{chunk-TN65XNTI.js → chunk-TWT3STIX.js} +8 -6
  40. package/dist/chunk-UG5RKLU2.cjs +6 -0
  41. package/dist/chunk-VP2B4WM2.js +154 -0
  42. package/dist/{chunk-BK7YIVLK.cjs → chunk-WJLECC22.cjs} +75 -73
  43. package/dist/{chunk-NFW7AUEX.js → chunk-WMACINXO.js} +1 -1
  44. package/dist/{chunk-AYGRYDBX.cjs → chunk-XAYGD4E4.cjs} +37 -35
  45. package/dist/{chunk-46T67CE2.js → chunk-ZA673I3O.js} +1 -1
  46. package/dist/{chunk-YPYCWLYP.js → chunk-ZWXJTBZO.js} +1 -1
  47. package/dist/core/addresses.d.ts +14 -2
  48. package/dist/core/brands.d.ts +8 -2
  49. package/dist/core/errors.d.ts +71 -10
  50. package/dist/core/preflight.d.ts +1 -0
  51. package/dist/fhe/erc7984-abi.d.ts +1 -0
  52. package/dist/fhe/index.cjs +64 -63
  53. package/dist/fhe/index.js +7 -6
  54. package/dist/fhe/operators.d.ts +22 -5
  55. package/dist/fhe/react/index.cjs +13 -12
  56. package/dist/fhe/react/index.js +6 -5
  57. package/dist/fhe/types.d.ts +6 -0
  58. package/dist/fhe-airdrop/abis/{cloneable.d.ts → airdrop-base.d.ts} +254 -396
  59. package/dist/fhe-airdrop/abis/compliance.d.ts +422 -0
  60. package/dist/fhe-airdrop/abis/ecdsa.d.ts +1316 -0
  61. package/dist/fhe-airdrop/abis/factory.d.ts +1319 -190
  62. package/dist/fhe-airdrop/abis/index.d.ts +5 -2
  63. package/dist/fhe-airdrop/abis/merkle.d.ts +1238 -0
  64. package/dist/fhe-airdrop/advanced/index.cjs +11 -12
  65. package/dist/fhe-airdrop/advanced/index.d.cts +34 -11
  66. package/dist/fhe-airdrop/advanced/index.d.ts +34 -11
  67. package/dist/fhe-airdrop/advanced/index.js +3 -8
  68. package/dist/fhe-airdrop/advanced/react/index.cjs +37 -50
  69. package/dist/fhe-airdrop/advanced/react/index.d.cts +9 -3
  70. package/dist/fhe-airdrop/advanced/react/index.d.ts +9 -3
  71. package/dist/fhe-airdrop/advanced/react/index.js +36 -50
  72. package/dist/fhe-airdrop/advanced/react/usePredictEcdsaAirdropAddress.d.ts +33 -0
  73. package/dist/fhe-airdrop/advanced/react/usePredictMerkleAirdropAddress.d.ts +27 -0
  74. package/dist/fhe-airdrop/airdrop-base.d.ts +600 -0
  75. package/dist/fhe-airdrop/campaign.d.ts +297 -0
  76. package/dist/fhe-airdrop/compliance.d.ts +302 -0
  77. package/dist/fhe-airdrop/constants.d.ts +33 -0
  78. package/dist/fhe-airdrop/ecdsa.d.ts +263 -0
  79. package/dist/fhe-airdrop/encryption.d.ts +92 -14
  80. package/dist/fhe-airdrop/errors.d.ts +245 -15
  81. package/dist/fhe-airdrop/factory.d.ts +533 -274
  82. package/dist/fhe-airdrop/guards.d.ts +273 -0
  83. package/dist/fhe-airdrop/index.cjs +1131 -74
  84. package/dist/fhe-airdrop/index.d.cts +46 -8
  85. package/dist/fhe-airdrop/index.d.ts +46 -8
  86. package/dist/fhe-airdrop/index.js +931 -8
  87. package/dist/fhe-airdrop/merkle-tree.d.ts +103 -0
  88. package/dist/fhe-airdrop/merkle.d.ts +180 -0
  89. package/dist/fhe-airdrop/react/_shared.d.ts +144 -71
  90. package/dist/fhe-airdrop/react/index.cjs +399 -459
  91. package/dist/fhe-airdrop/react/index.d.cts +53 -74
  92. package/dist/fhe-airdrop/react/index.d.ts +53 -74
  93. package/dist/fhe-airdrop/react/index.js +261 -374
  94. package/dist/fhe-airdrop/react/useAirdropGasFee.d.ts +10 -5
  95. package/dist/fhe-airdrop/react/useAirdropHasRole.d.ts +15 -6
  96. package/dist/fhe-airdrop/react/useAirdropPause.d.ts +30 -0
  97. package/dist/fhe-airdrop/react/useAirdropPaused.d.ts +17 -0
  98. package/dist/fhe-airdrop/react/useAirdropToken.d.ts +11 -4
  99. package/dist/fhe-airdrop/react/useAirdropWindow.d.ts +37 -0
  100. package/dist/fhe-airdrop/react/useClaimedAmount.d.ts +29 -0
  101. package/dist/fhe-airdrop/react/useComplianceManager.d.ts +16 -0
  102. package/dist/fhe-airdrop/react/useCreateEcdsaAirdrop.d.ts +28 -0
  103. package/dist/fhe-airdrop/react/useCreateMerkleAirdrop.d.ts +25 -0
  104. package/dist/fhe-airdrop/react/useEcdsaClaim.d.ts +23 -0
  105. package/dist/fhe-airdrop/react/useEffectiveUpgradeable.d.ts +20 -0
  106. package/dist/fhe-airdrop/react/useExtendClaimWindow.d.ts +17 -12
  107. package/dist/fhe-airdrop/react/useFactoryFees.d.ts +28 -0
  108. package/dist/fhe-airdrop/react/useFactoryRegistry.d.ts +35 -0
  109. package/dist/fhe-airdrop/react/useFundAirdrop.d.ts +35 -0
  110. package/dist/fhe-airdrop/react/useGrantInstanceRoles.d.ts +35 -0
  111. package/dist/fhe-airdrop/react/useMerkleClaim.d.ts +34 -0
  112. package/dist/fhe-airdrop/react/useMerkleRoot.d.ts +15 -0
  113. package/dist/fhe-airdrop/react/useSetMerkleRoot.d.ts +22 -0
  114. package/dist/fhe-airdrop/react/useWithdrawConfidential.d.ts +23 -0
  115. package/dist/fhe-airdrop/roles.d.ts +147 -0
  116. package/dist/fhe-airdrop/types.d.ts +67 -65
  117. package/dist/fhe-disperse/index.cjs +70 -68
  118. package/dist/fhe-disperse/index.js +10 -8
  119. package/dist/fhe-disperse/react/index.cjs +94 -92
  120. package/dist/fhe-disperse/react/index.js +13 -11
  121. package/dist/fhe-vesting/advanced/index.cjs +10 -8
  122. package/dist/fhe-vesting/advanced/index.js +8 -6
  123. package/dist/fhe-vesting/advanced/react/index.cjs +16 -14
  124. package/dist/fhe-vesting/advanced/react/index.js +13 -11
  125. package/dist/fhe-vesting/index.cjs +74 -72
  126. package/dist/fhe-vesting/index.js +11 -9
  127. package/dist/fhe-vesting/react/index.cjs +228 -226
  128. package/dist/fhe-vesting/react/index.js +15 -13
  129. package/dist/index.cjs +100 -87
  130. package/dist/index.js +3 -2
  131. package/dist/testnet-faucet/index.cjs +57 -55
  132. package/dist/testnet-faucet/index.js +7 -5
  133. package/dist/testnet-faucet/react/index.cjs +55 -53
  134. package/dist/testnet-faucet/react/index.js +9 -7
  135. package/package.json +6 -2
  136. package/dist/chunk-CNP4L3GF.js +0 -105
  137. package/dist/chunk-KSDSXJ34.js +0 -41
  138. package/dist/chunk-LBWRFZR3.cjs +0 -1681
  139. package/dist/chunk-OL6SHN3D.cjs +0 -44
  140. package/dist/chunk-S2XD75JM.js +0 -1637
  141. package/dist/chunk-SPGSO5SO.cjs +0 -1644
  142. package/dist/chunk-UE5XK2SY.js +0 -1673
  143. package/dist/chunk-WO72UBQD.cjs +0 -109
  144. package/dist/fhe-airdrop/advanced/factory-advanced.d.ts +0 -53
  145. package/dist/fhe-airdrop/advanced/react/usePredictAirdropAddress.d.ts +0 -49
  146. package/dist/fhe-airdrop/airdrop.d.ts +0 -317
  147. package/dist/fhe-airdrop/react/useAccessClaimAmount.d.ts +0 -37
  148. package/dist/fhe-airdrop/react/useAirdropCanExtendClaimWindow.d.ts +0 -7
  149. package/dist/fhe-airdrop/react/useAirdropClaimTypehash.d.ts +0 -10
  150. package/dist/fhe-airdrop/react/useAirdropClaimedSignatures.d.ts +0 -16
  151. package/dist/fhe-airdrop/react/useAirdropDeploymentBlockNumber.d.ts +0 -6
  152. package/dist/fhe-airdrop/react/useAirdropDomainSeparator.d.ts +0 -8
  153. package/dist/fhe-airdrop/react/useAirdropEndTime.d.ts +0 -10
  154. package/dist/fhe-airdrop/react/useAirdropFactoryCustomFee.d.ts +0 -17
  155. package/dist/fhe-airdrop/react/useAirdropFactoryDefaultGasFee.d.ts +0 -10
  156. package/dist/fhe-airdrop/react/useAirdropFactoryDisableCustomFee.d.ts +0 -15
  157. package/dist/fhe-airdrop/react/useAirdropFactoryFeeCollector.d.ts +0 -11
  158. package/dist/fhe-airdrop/react/useAirdropFactoryInitCodeHash.d.ts +0 -17
  159. package/dist/fhe-airdrop/react/useAirdropFactorySetCustomFee.d.ts +0 -17
  160. package/dist/fhe-airdrop/react/useAirdropFactorySetDefaultGasFee.d.ts +0 -16
  161. package/dist/fhe-airdrop/react/useAirdropFactorySetFeeCollector.d.ts +0 -15
  162. package/dist/fhe-airdrop/react/useAirdropGrantRole.d.ts +0 -16
  163. package/dist/fhe-airdrop/react/useAirdropHasClaimEnded.d.ts +0 -7
  164. package/dist/fhe-airdrop/react/useAirdropHasClaimStarted.d.ts +0 -7
  165. package/dist/fhe-airdrop/react/useAirdropIsClaimWindowActive.d.ts +0 -9
  166. package/dist/fhe-airdrop/react/useAirdropIsPaused.d.ts +0 -8
  167. package/dist/fhe-airdrop/react/useAirdropIsSignatureClaimed.d.ts +0 -22
  168. package/dist/fhe-airdrop/react/useAirdropIsSignatureValid.d.ts +0 -51
  169. package/dist/fhe-airdrop/react/useAirdropRevokeRole.d.ts +0 -15
  170. package/dist/fhe-airdrop/react/useAirdropStartTime.d.ts +0 -10
  171. package/dist/fhe-airdrop/react/useAirdropWithdrawGasFee.d.ts +0 -15
  172. package/dist/fhe-airdrop/react/useAirdropWithdrawOtherConfidentialToken.d.ts +0 -14
  173. package/dist/fhe-airdrop/react/useAirdropWithdrawOtherToken.d.ts +0 -14
  174. package/dist/fhe-airdrop/react/useClaim.d.ts +0 -39
  175. package/dist/fhe-airdrop/react/useConfidentialAirdropFactoryImplementation.d.ts +0 -11
  176. package/dist/fhe-airdrop/react/useCreateAndFundConfidentialAirdrop.d.ts +0 -41
  177. package/dist/fhe-airdrop/react/useCreateAndFundConfidentialAirdropAndGetAddress.d.ts +0 -48
  178. package/dist/fhe-airdrop/react/useCreateConfidentialAirdrop.d.ts +0 -29
  179. package/dist/fhe-airdrop/react/useCreateConfidentialAirdropAndGetAddress.d.ts +0 -31
  180. package/dist/fhe-airdrop/react/useDisableCustomFee.d.ts +0 -14
  181. package/dist/fhe-airdrop/react/useFactoryCustomFee.d.ts +0 -17
  182. package/dist/fhe-airdrop/react/useFactoryDefaultGasFee.d.ts +0 -10
  183. package/dist/fhe-airdrop/react/useFactoryFeeCollector.d.ts +0 -11
  184. package/dist/fhe-airdrop/react/useFactoryInitCodeHash.d.ts +0 -17
  185. package/dist/fhe-airdrop/react/useFundConfidentialAirdrop.d.ts +0 -33
  186. package/dist/fhe-airdrop/react/usePreflightCreateAirdrop.d.ts +0 -51
  187. package/dist/fhe-airdrop/react/useSetCustomFee.d.ts +0 -16
  188. package/dist/fhe-airdrop/react/useSetDefaultGasFee.d.ts +0 -15
  189. package/dist/fhe-airdrop/react/useSetFeeCollector.d.ts +0 -14
  190. package/dist/fhe-airdrop/react/useSetPaused.d.ts +0 -14
  191. package/dist/fhe-airdrop/react/useSignClaimAuthorization.d.ts +0 -31
  192. package/dist/fhe-airdrop/react/useWithdraw.d.ts +0 -12
  193. package/dist/fhe-airdrop/react/useWithdrawOtherConfidentialToken.d.ts +0 -13
  194. package/dist/fhe-airdrop/react/useWithdrawOtherToken.d.ts +0 -13
@@ -0,0 +1,147 @@
1
+ import type { Address, Hex } from "viem";
2
+ import { type TokenOpsSdkError } from "../core/errors.js";
3
+ import type { AirdropBaseClient } from "./airdrop-base.js";
4
+ /**
5
+ * The on-chain role names this module knows how to grant or revoke.
6
+ *
7
+ * @alpha
8
+ */
9
+ export type RoleName = "DEFAULT_ADMIN_ROLE" | "PAUSER_ROLE" | "WINDOW_ADMIN_ROLE" | "TREASURY_ROLE" | "RESCUER_ROLE" | "DISCLOSURE_ADMIN_ROLE" | "UPGRADER_ROLE" | "MERKLE_ADMIN_ROLE" | "SIGNER_ROLE";
10
+ /**
11
+ * The roles a campaign creator may hand off after `createEcdsaAirdrop` /
12
+ * `createMerkleAirdrop`. Every field is optional — pass only the roles you
13
+ * intend to split.
14
+ *
15
+ * `merkleAdmin` only exists on Merkle instances and `signer` only on ECDSA
16
+ * ones; passing either against the wrong variant is one of
17
+ * {@link planInstanceRoleSplit}'s three refusals.
18
+ *
19
+ * @alpha
20
+ */
21
+ export interface InstanceRoleAssignment {
22
+ pauser?: Address;
23
+ windowAdmin?: Address;
24
+ treasury?: Address;
25
+ rescuer?: Address;
26
+ disclosureAdmin?: Address;
27
+ upgrader?: Address;
28
+ merkleAdmin?: Address;
29
+ signer?: Address;
30
+ /** Granting this always fails from DEFAULT_ADMIN — see planInstanceRoleSplit. */
31
+ feeCollector?: Address;
32
+ /** Transfers DEFAULT_ADMIN_ROLE. Granted first, then revoked from the creator. */
33
+ admin?: Address;
34
+ }
35
+ /**
36
+ * One `grantRole`/`revokeRole` transaction {@link grantInstanceRoles} will submit, in order.
37
+ *
38
+ * @alpha
39
+ */
40
+ export interface RoleGrantStep {
41
+ kind: "grant" | "revoke";
42
+ role: RoleName;
43
+ account: Address;
44
+ }
45
+ /**
46
+ * The outcome of one step from {@link grantInstanceRoles}. Exactly one of
47
+ * `hash` / `error` is set — never both, never neither. `hash` is set only
48
+ * once that transaction's receipt has been confirmed with `status ===
49
+ * "success"`; a transaction that was submitted but mined with a reverted
50
+ * status is reported as `error`, not `hash`.
51
+ *
52
+ * @alpha
53
+ */
54
+ export interface RoleGrantOutcome {
55
+ role: string;
56
+ account: Address;
57
+ hash?: Hex;
58
+ error?: TokenOpsSdkError;
59
+ }
60
+ /**
61
+ * Turn an {@link InstanceRoleAssignment} into an ordered list of
62
+ * `grantRole`/`revokeRole` steps — a pure function, precisely so its ordering
63
+ * guarantees are testable without a chain.
64
+ *
65
+ * Three requests are refused outright rather than turned into a step that
66
+ * would only revert on-chain:
67
+ *
68
+ * 1. **`feeCollector`.** `FEE_COLLECTOR_ROLE` is self-administered
69
+ * (`_setRoleAdmin(FEE_COLLECTOR_ROLE, FEE_COLLECTOR_ROLE)`,
70
+ * `ConfidentialAirdropBase.sol:142`) — `DEFAULT_ADMIN_ROLE` cannot grant
71
+ * it, only an existing member can, and the campaign creator never is one
72
+ * (the factory's collector is seeded instead, `:143`).
73
+ * 2. **`admin` set to the zero address.** Mirrors the contract's
74
+ * unconditional `ZeroAdminGrant` guard (`_grantRole`, `:281`).
75
+ * 3. **A variant-only role on the wrong campaign** — `merkleAdmin` on an
76
+ * ECDSA instance, or `signer` on a Merkle one. Neither role exists there;
77
+ * the getter itself would revert.
78
+ *
79
+ * `admin`, when present, always produces two steps — grant the new admin,
80
+ * then revoke `args.caller` — and the revoke is always ORDERED LAST, after
81
+ * every other step in the plan. `_revokeRole`'s `LastAdmin` floor
82
+ * (`ConfidentialAirdropBase.sol:261`) blocks removing the sole
83
+ * `DEFAULT_ADMIN_ROLE` member, so revoking the creator first would strand
84
+ * every later grant with no admin left to authorize it.
85
+ *
86
+ * @throws {@link FeeCollectorSelfAdministeredError} for refusal 1 — a distinct
87
+ * condition with a distinct remedy (an existing collector must call
88
+ * `grantRole`), so it gets its own type rather than being folded into the
89
+ * generic argument error.
90
+ * @throws {@link InvalidArgumentError} for refusals 2 and 3.
91
+ *
92
+ * @alpha
93
+ */
94
+ export declare function planInstanceRoleSplit(args: {
95
+ assignment: InstanceRoleAssignment;
96
+ caller: Address;
97
+ airdropType: "ecdsa" | "merkle";
98
+ }): RoleGrantStep[];
99
+ /**
100
+ * Execute an {@link InstanceRoleAssignment} against a live instance:
101
+ * {@link planInstanceRoleSplit} the steps, then submit them one at a time,
102
+ * **waiting for each step's receipt before submitting the next.**
103
+ *
104
+ * That confirmation is not optional bookkeeping — it is what makes the
105
+ * `DEFAULT_ADMIN_ROLE` handoff correct. `revokeRole`'s simulate reads
106
+ * `latest` chain state; if the preceding grant were only submitted and not
107
+ * yet mined, the revoke would simulate (and the contract would enforce its
108
+ * `LastAdmin` floor) against a world where the new admin does not exist yet,
109
+ * reverting a step that should succeed. Confirming first makes each step's
110
+ * simulate see every effect the plan already committed.
111
+ *
112
+ * This makes the executor slower than a fire-and-forget submit loop —
113
+ * intentionally: correctness of the ordering guarantee in
114
+ * {@link planInstanceRoleSplit} depends on it.
115
+ *
116
+ * **This is several transactions, not one — never atomic.** Each step is
117
+ * caught individually, so one failing grant or revoke does not abort the
118
+ * rest; inspect each {@link RoleGrantOutcome} rather than assuming
119
+ * all-or-nothing. A step whose transaction is submitted but mined with a
120
+ * reverted status is recorded as a failed outcome (`error` set, not `hash`)
121
+ * — a submitted-but-reverted transaction is never reported as a success. A
122
+ * `DEFAULT_ADMIN_ROLE` handoff that fails on the revoke half after the grant
123
+ * half already landed leaves the instance with TWO admins — not broken, just
124
+ * not yet what was asked for; re-run with only `assignment.admin` set (and
125
+ * `revokeFromCreator: true`) to finish it.
126
+ *
127
+ * The plan's `caller` and `airdropType` are derived from `airdrop` itself —
128
+ * the wallet client's default account, and a chain read of `airdropType()` —
129
+ * so this function's inputs stay limited to what the caller actually chooses.
130
+ *
131
+ * @param args.revokeFromCreator When `assignment.admin` is set, whether to
132
+ * also revoke the creator's `DEFAULT_ADMIN_ROLE` (the default). Pass `false`
133
+ * to grant the new admin only, leaving both addresses as admins — an
134
+ * escape hatch for callers not yet ready to give up the creator's access.
135
+ * @throws {@link FeeCollectorSelfAdministeredError} or {@link InvalidArgumentError} before any
136
+ * transaction — but NOT synchronously: the plan is built after an awaited
137
+ * `airdropType()` read. See the three refusals on {@link planInstanceRoleSplit}.
138
+ * @throws {@link MissingWalletClientError} when `airdrop` has no wallet client.
139
+ * @throws {@link MissingAccountError} when the wallet client has no default account.
140
+ *
141
+ * @alpha
142
+ */
143
+ export declare function grantInstanceRoles(args: {
144
+ airdrop: AirdropBaseClient;
145
+ assignment: InstanceRoleAssignment;
146
+ revokeFromCreator?: boolean;
147
+ }): Promise<RoleGrantOutcome[]>;
@@ -1,77 +1,79 @@
1
- import type { Address } from "viem";
2
- import type { TokenOpsSdkError } from "../core/errors.js";
3
- export type { EncryptedInput, EncryptedInputs, EncryptedViewResult } from "../fhe/types.js";
1
+ import type { Address, Hex } from "viem";
2
+ import type { DedupMode, DeploymentMode } from "./constants.js";
4
3
  /**
5
- * Parameters for creating a confidential airdrop.
4
+ * Create-time fields shared by both variants. There is deliberately no `admin`
5
+ * field: the factory injects `admin = msg.sender`. Split roles after create
6
+ * with `grantInstanceRoles` — see `roles.ts`.
6
7
  *
7
- * `startTimestamp` and `endTimestamp` are unix timestamps (uint32). The SDK
8
- * maps them to the on-chain struct fields `startTime` / `endTime` before
9
- * encoding — do not pass the on-chain names directly.
8
+ * @alpha
10
9
  */
11
- export interface AirdropParams {
10
+ export interface CommonAirdropParams {
12
11
  token: Address;
13
- startTimestamp: number;
14
- endTimestamp: number;
12
+ startTime: number;
13
+ endTime: number;
15
14
  canExtendClaimWindow: boolean;
16
- admin: Address;
15
+ /**
16
+ * Only valid when `token` is a stock ERC7984ERC20Wrapper: `claimAndUnwrap` burns from the
17
+ * airdrop instance's pooled wrapper balance, so a hooked or fee-taking wrapper can deliver an
18
+ * amount the pool balance alone doesn't bound correctly. See {@link NonStockWrapperError}.
19
+ */
20
+ unwrappable: boolean;
21
+ /** Client admin AND client delegate of the compliance clone. Zero means msg.sender. */
22
+ complianceAdmin: Address;
17
23
  }
18
- /** Custom fee override for a campaign creator. */
19
- export interface CustomFee {
20
- enabled: boolean;
21
- gasFee: bigint;
24
+ /** @alpha */
25
+ export interface EcdsaAirdropParams {
26
+ common: CommonAirdropParams;
27
+ signer: Address;
28
+ dedupMode: DedupMode;
29
+ }
30
+ /** @alpha */
31
+ export interface MerkleAirdropParams {
32
+ common: CommonAirdropParams;
33
+ /** Zero root is only permitted when `isMerkleRootMutable` is true. */
34
+ merkleRoot: Hex;
35
+ isMerkleRootMutable: boolean;
22
36
  }
23
37
  /**
24
- * Report returned by `ConfidentialAirdropFactoryClient.preflightCreateAirdrop`.
38
+ * Arguments shared by both `factory.createEcdsaAirdrop` / `createMerkleAirdrop` entrypoints.
25
39
  *
26
- * Fields:
27
- * - `isFactoryOperator` — `true` when the creator has approved the factory as
28
- * an ERC-7984 operator on `params.token`. Only required when funding in the
29
- * same transaction (`createAndFundConfidentialAirdrop` /
30
- * `fundConfidentialAirdrop`).
40
+ * @alpha
41
+ */
42
+ export interface CreateAirdropArgs<P> {
43
+ params: P;
44
+ mode: DeploymentMode;
45
+ userSalt: Hex;
46
+ }
47
+ /** @alpha */
48
+ export interface CreateAirdropResult {
49
+ hash: Hex;
50
+ airdrop: Address;
51
+ complianceManager: Address;
52
+ }
53
+ /**
54
+ * One recipient's committed allocation, keyed for `CampaignEntry.merkleProof` construction.
31
55
  *
32
- * **`false` does not mean "not approved" on its own** — it is also `false`
33
- * when approval could not be determined at all: the token address was
34
- * structurally invalid (read skipped), or the address is not an ERC-7984
35
- * token (read failed). Do not render an "approve the factory" prompt off
36
- * this field alone; check `blockerErrors` for
37
- * `TOKENOPS_OPERATOR_NOT_APPROVED` first, which is present only when the
38
- * approval genuinely is the missing step.
39
- * - `gasFee` — the per-claim gas fee (wei) the factory will embed into the
40
- * clone for this creator: the creator's custom fee when one is enabled,
41
- * otherwise `defaultGasFee`. This is the `gasFee` to use for address
42
- * prediction and later `fundConfidentialAirdrop` calls.
43
- * - `predictedAirdrop` — deterministic CREATE2 clone address for
44
- * `(params, userSalt, creator, gasFee)`. `undefined` when `userSalt` was not
45
- * supplied or the params were structurally invalid.
46
- * - `alreadyDeployed` — `true` when bytecode already exists at
47
- * `predictedAirdrop` (a repeat create with the same salt would revert).
48
- * `undefined` when `predictedAirdrop` is `undefined`.
49
- * - `ready` — `true` when no blockers were detected.
50
- * - `blockers` — human-readable blocker descriptions. Empty when
51
- * `ready === true`.
52
- * - `blockerErrors` — the same blockers as typed `TokenOpsSdkError`s, index-
53
- * aligned with `blockers`. Branch on `error.code` to render UI.
56
+ * @alpha
54
57
  */
55
- export interface CreateAirdropPreflightReport {
56
- /**
57
- * `true` when the creator has approved the factory as operator on
58
- * `params.token`. `false` also covers "could not determine" — an invalid or
59
- * non-ERC-7984 token; branch on `blockerErrors` rather than this field alone.
60
- */
61
- isFactoryOperator: boolean;
62
- /** Per-claim gas fee (wei) the factory will embed into the clone for this creator. */
63
- gasFee: bigint;
64
- /** Predicted CREATE2 clone address. `undefined` without `userSalt` or with invalid params. */
65
- predictedAirdrop?: Address;
66
- /** `true` when bytecode already exists at `predictedAirdrop`. `undefined` when not predicted. */
67
- alreadyDeployed?: boolean;
68
- /** `true` when no blockers were detected — green light to submit the write. */
69
- ready: boolean;
70
- /** Human-readable blocker descriptions. Empty when `ready === true`. */
71
- blockers: string[];
72
- /**
73
- * Typed errors that would otherwise surface at write time, index-aligned
74
- * with `blockers`. Empty when `ready === true`.
75
- */
76
- blockerErrors: TokenOpsSdkError[];
58
+ export interface CampaignRecipient {
59
+ recipient: Address;
60
+ /** The recipient's CUMULATIVE total, not a per-drop tranche. A claim pays
61
+ * `total - min(total, alreadyDelivered)`. */
62
+ cumulativeTotal: bigint;
63
+ }
64
+ /**
65
+ * One recipient's encrypted, proof-bearing claim input — everything `merkle.claim` needs.
66
+ *
67
+ * @alpha
68
+ */
69
+ export interface CampaignEntry {
70
+ recipient: Address;
71
+ handle: Hex;
72
+ inputProof: Hex;
73
+ merkleProof: readonly Hex[];
74
+ }
75
+ /** @alpha */
76
+ export interface BuiltCampaign {
77
+ root: Hex;
78
+ entries: readonly CampaignEntry[];
77
79
  }
@@ -1,105 +1,107 @@
1
1
  'use strict';
2
2
 
3
- var chunkYFIWCYHC_cjs = require('../chunk-YFIWCYHC.cjs');
4
- var chunk4ZCXK4VI_cjs = require('../chunk-4ZCXK4VI.cjs');
5
- require('../chunk-UJS4N2XM.cjs');
6
- require('../chunk-SYHNZSZZ.cjs');
3
+ var chunkJZLGCTGK_cjs = require('../chunk-JZLGCTGK.cjs');
4
+ var chunkKFRDLKMA_cjs = require('../chunk-KFRDLKMA.cjs');
5
+ require('../chunk-TEBM66WA.cjs');
6
+ require('../chunk-FAXIIH5R.cjs');
7
7
  var chunkFWHYQZ5E_cjs = require('../chunk-FWHYQZ5E.cjs');
8
- require('../chunk-43RFBQ73.cjs');
9
- require('../chunk-WUXUWTFW.cjs');
10
- require('../chunk-VR3FREBX.cjs');
11
- var chunk2RNW4MIJ_cjs = require('../chunk-2RNW4MIJ.cjs');
8
+ require('../chunk-UG5RKLU2.cjs');
9
+ require('../chunk-MVDQMV25.cjs');
10
+ require('../chunk-5576FRT3.cjs');
11
+ require('../chunk-JK4XMMKM.cjs');
12
+ require('../chunk-66IHPTOK.cjs');
13
+ var chunk67OV5CX2_cjs = require('../chunk-67OV5CX2.cjs');
12
14
  require('../chunk-VJKZWYYJ.cjs');
13
15
 
14
16
 
15
17
 
16
18
  Object.defineProperty(exports, "AlreadyRegisteredError", {
17
19
  enumerable: true,
18
- get: function () { return chunkYFIWCYHC_cjs.AlreadyRegisteredError; }
20
+ get: function () { return chunkJZLGCTGK_cjs.AlreadyRegisteredError; }
19
21
  });
20
22
  Object.defineProperty(exports, "ConfidentialDisperseClient", {
21
23
  enumerable: true,
22
- get: function () { return chunkYFIWCYHC_cjs.ConfidentialDisperseClient; }
24
+ get: function () { return chunkJZLGCTGK_cjs.ConfidentialDisperseClient; }
23
25
  });
24
26
  Object.defineProperty(exports, "DEFAULT_ADMIN_ROLE", {
25
27
  enumerable: true,
26
- get: function () { return chunkYFIWCYHC_cjs.DEFAULT_ADMIN_ROLE; }
28
+ get: function () { return chunkJZLGCTGK_cjs.DEFAULT_ADMIN_ROLE; }
27
29
  });
28
30
  Object.defineProperty(exports, "DisperseEncryptedReserveNotGrantedError", {
29
31
  enumerable: true,
30
- get: function () { return chunkYFIWCYHC_cjs.DisperseEncryptedReserveNotGrantedError; }
32
+ get: function () { return chunkJZLGCTGK_cjs.DisperseEncryptedReserveNotGrantedError; }
31
33
  });
32
34
  Object.defineProperty(exports, "DisperseSubwalletNotFoundError", {
33
35
  enumerable: true,
34
- get: function () { return chunkYFIWCYHC_cjs.DisperseSubwalletNotFoundError; }
36
+ get: function () { return chunkJZLGCTGK_cjs.DisperseSubwalletNotFoundError; }
35
37
  });
36
38
  Object.defineProperty(exports, "FEE_COLLECTOR_ROLE", {
37
39
  enumerable: true,
38
- get: function () { return chunkYFIWCYHC_cjs.FEE_COLLECTOR_ROLE; }
40
+ get: function () { return chunkJZLGCTGK_cjs.FEE_COLLECTOR_ROLE; }
39
41
  });
40
42
  Object.defineProperty(exports, "FEE_MANAGER_ROLE", {
41
43
  enumerable: true,
42
- get: function () { return chunkYFIWCYHC_cjs.FEE_MANAGER_ROLE; }
44
+ get: function () { return chunkJZLGCTGK_cjs.FEE_MANAGER_ROLE; }
43
45
  });
44
46
  Object.defineProperty(exports, "NotRegisteredError", {
45
47
  enumerable: true,
46
- get: function () { return chunkYFIWCYHC_cjs.NotRegisteredError; }
48
+ get: function () { return chunkJZLGCTGK_cjs.NotRegisteredError; }
47
49
  });
48
50
  Object.defineProperty(exports, "PAUSER_ROLE", {
49
51
  enumerable: true,
50
- get: function () { return chunkYFIWCYHC_cjs.PAUSER_ROLE; }
52
+ get: function () { return chunkJZLGCTGK_cjs.PAUSER_ROLE; }
51
53
  });
52
54
  Object.defineProperty(exports, "SingletonNotApprovedError", {
53
55
  enumerable: true,
54
- get: function () { return chunkYFIWCYHC_cjs.SingletonNotApprovedError; }
56
+ get: function () { return chunkJZLGCTGK_cjs.SingletonNotApprovedError; }
55
57
  });
56
58
  Object.defineProperty(exports, "SubwalletsNotApprovedError", {
57
59
  enumerable: true,
58
- get: function () { return chunkYFIWCYHC_cjs.SubwalletsNotApprovedError; }
60
+ get: function () { return chunkJZLGCTGK_cjs.SubwalletsNotApprovedError; }
59
61
  });
60
62
  Object.defineProperty(exports, "WITHDRAWER_ROLE", {
61
63
  enumerable: true,
62
- get: function () { return chunkYFIWCYHC_cjs.WITHDRAWER_ROLE; }
64
+ get: function () { return chunkJZLGCTGK_cjs.WITHDRAWER_ROLE; }
63
65
  });
64
66
  Object.defineProperty(exports, "computeSubtotals", {
65
67
  enumerable: true,
66
- get: function () { return chunkYFIWCYHC_cjs.computeSubtotals; }
68
+ get: function () { return chunkJZLGCTGK_cjs.computeSubtotals; }
67
69
  });
68
70
  Object.defineProperty(exports, "createConfidentialDisperseClient", {
69
71
  enumerable: true,
70
- get: function () { return chunkYFIWCYHC_cjs.createConfidentialDisperseClient; }
72
+ get: function () { return chunkJZLGCTGK_cjs.createConfidentialDisperseClient; }
71
73
  });
72
74
  Object.defineProperty(exports, "disperseConfidentialAbi", {
73
75
  enumerable: true,
74
- get: function () { return chunkYFIWCYHC_cjs.disperseConfidentialAbi; }
76
+ get: function () { return chunkJZLGCTGK_cjs.disperseConfidentialAbi; }
75
77
  });
76
78
  Object.defineProperty(exports, "disperseWalletAbi", {
77
79
  enumerable: true,
78
- get: function () { return chunkYFIWCYHC_cjs.disperseWalletAbi; }
80
+ get: function () { return chunkJZLGCTGK_cjs.disperseWalletAbi; }
79
81
  });
80
82
  Object.defineProperty(exports, "encryptUint64", {
81
83
  enumerable: true,
82
- get: function () { return chunkYFIWCYHC_cjs.encryptUint64; }
84
+ get: function () { return chunkJZLGCTGK_cjs.encryptUint64; }
83
85
  });
84
86
  Object.defineProperty(exports, "encryptUint64Batch", {
85
87
  enumerable: true,
86
- get: function () { return chunkYFIWCYHC_cjs.encryptUint64Batch; }
88
+ get: function () { return chunkJZLGCTGK_cjs.encryptUint64Batch; }
87
89
  });
88
90
  Object.defineProperty(exports, "resolveEncryptor", {
89
91
  enumerable: true,
90
- get: function () { return chunkYFIWCYHC_cjs.resolveEncryptor; }
92
+ get: function () { return chunkJZLGCTGK_cjs.resolveEncryptor; }
91
93
  });
92
94
  Object.defineProperty(exports, "ERC7984_OPERATOR_MAX_DEADLINE", {
93
95
  enumerable: true,
94
- get: function () { return chunk4ZCXK4VI_cjs.ERC7984_OPERATOR_MAX_DEADLINE; }
96
+ get: function () { return chunkKFRDLKMA_cjs.ERC7984_OPERATOR_MAX_DEADLINE; }
95
97
  });
96
98
  Object.defineProperty(exports, "revokeOperator", {
97
99
  enumerable: true,
98
- get: function () { return chunk4ZCXK4VI_cjs.revokeOperator; }
100
+ get: function () { return chunkKFRDLKMA_cjs.revokeOperator; }
99
101
  });
100
102
  Object.defineProperty(exports, "setOperator", {
101
103
  enumerable: true,
102
- get: function () { return chunk4ZCXK4VI_cjs.setOperator; }
104
+ get: function () { return chunkKFRDLKMA_cjs.setOperator; }
103
105
  });
104
106
  Object.defineProperty(exports, "erc7984OperatorAbi", {
105
107
  enumerable: true,
@@ -107,153 +109,153 @@ Object.defineProperty(exports, "erc7984OperatorAbi", {
107
109
  });
108
110
  Object.defineProperty(exports, "AccessDeniedError", {
109
111
  enumerable: true,
110
- get: function () { return chunk2RNW4MIJ_cjs.AccessDeniedError; }
112
+ get: function () { return chunk67OV5CX2_cjs.AccessDeniedError; }
111
113
  });
112
114
  Object.defineProperty(exports, "AlreadyInitializedError", {
113
115
  enumerable: true,
114
- get: function () { return chunk2RNW4MIJ_cjs.AlreadyInitializedError; }
116
+ get: function () { return chunk67OV5CX2_cjs.AlreadyInitializedError; }
115
117
  });
116
118
  Object.defineProperty(exports, "BatchTooLargeError", {
117
119
  enumerable: true,
118
- get: function () { return chunk2RNW4MIJ_cjs.BatchTooLargeError; }
120
+ get: function () { return chunk67OV5CX2_cjs.BatchTooLargeError; }
119
121
  });
120
122
  Object.defineProperty(exports, "ContractRevertError", {
121
123
  enumerable: true,
122
- get: function () { return chunk2RNW4MIJ_cjs.ContractRevertError; }
124
+ get: function () { return chunk67OV5CX2_cjs.ContractRevertError; }
123
125
  });
124
126
  Object.defineProperty(exports, "DecryptionFailedError", {
125
127
  enumerable: true,
126
- get: function () { return chunk2RNW4MIJ_cjs.DecryptionFailedError; }
128
+ get: function () { return chunk67OV5CX2_cjs.DecryptionFailedError; }
127
129
  });
128
130
  Object.defineProperty(exports, "DeploymentAddressUnavailableError", {
129
131
  enumerable: true,
130
- get: function () { return chunk2RNW4MIJ_cjs.DeploymentAddressUnavailableError; }
132
+ get: function () { return chunk67OV5CX2_cjs.DeploymentAddressUnavailableError; }
131
133
  });
132
134
  Object.defineProperty(exports, "EncryptionFailedError", {
133
135
  enumerable: true,
134
- get: function () { return chunk2RNW4MIJ_cjs.EncryptionFailedError; }
136
+ get: function () { return chunk67OV5CX2_cjs.EncryptionFailedError; }
135
137
  });
136
138
  Object.defineProperty(exports, "FeatureDisabledError", {
137
139
  enumerable: true,
138
- get: function () { return chunk2RNW4MIJ_cjs.FeatureDisabledError; }
140
+ get: function () { return chunk67OV5CX2_cjs.FeatureDisabledError; }
139
141
  });
140
142
  Object.defineProperty(exports, "FheHandleNotAllowedError", {
141
143
  enumerable: true,
142
- get: function () { return chunk2RNW4MIJ_cjs.FheHandleNotAllowedError; }
144
+ get: function () { return chunk67OV5CX2_cjs.FheHandleNotAllowedError; }
143
145
  });
144
146
  Object.defineProperty(exports, "InsufficientBalanceError", {
145
147
  enumerable: true,
146
- get: function () { return chunk2RNW4MIJ_cjs.InsufficientBalanceError; }
148
+ get: function () { return chunk67OV5CX2_cjs.InsufficientBalanceError; }
147
149
  });
148
150
  Object.defineProperty(exports, "InsufficientFeeError", {
149
151
  enumerable: true,
150
- get: function () { return chunk2RNW4MIJ_cjs.InsufficientFeeError; }
152
+ get: function () { return chunk67OV5CX2_cjs.InsufficientFeeError; }
151
153
  });
152
154
  Object.defineProperty(exports, "InsufficientGasFundsError", {
153
155
  enumerable: true,
154
- get: function () { return chunk2RNW4MIJ_cjs.InsufficientGasFundsError; }
156
+ get: function () { return chunk67OV5CX2_cjs.InsufficientGasFundsError; }
155
157
  });
156
158
  Object.defineProperty(exports, "InvalidArgumentError", {
157
159
  enumerable: true,
158
- get: function () { return chunk2RNW4MIJ_cjs.InvalidArgumentError; }
160
+ get: function () { return chunk67OV5CX2_cjs.InvalidArgumentError; }
159
161
  });
160
162
  Object.defineProperty(exports, "InvalidSignatureError", {
161
163
  enumerable: true,
162
- get: function () { return chunk2RNW4MIJ_cjs.InvalidSignatureError; }
164
+ get: function () { return chunk67OV5CX2_cjs.InvalidSignatureError; }
163
165
  });
164
166
  Object.defineProperty(exports, "MissingAccountError", {
165
167
  enumerable: true,
166
- get: function () { return chunk2RNW4MIJ_cjs.MissingAccountError; }
168
+ get: function () { return chunk67OV5CX2_cjs.MissingAccountError; }
167
169
  });
168
170
  Object.defineProperty(exports, "MissingClientError", {
169
171
  enumerable: true,
170
- get: function () { return chunk2RNW4MIJ_cjs.MissingClientError; }
172
+ get: function () { return chunk67OV5CX2_cjs.MissingClientError; }
171
173
  });
172
174
  Object.defineProperty(exports, "MissingEncryptorError", {
173
175
  enumerable: true,
174
- get: function () { return chunk2RNW4MIJ_cjs.MissingEncryptorError; }
176
+ get: function () { return chunk67OV5CX2_cjs.MissingEncryptorError; }
175
177
  });
176
178
  Object.defineProperty(exports, "MissingPublicClientError", {
177
179
  enumerable: true,
178
- get: function () { return chunk2RNW4MIJ_cjs.MissingPublicClientError; }
180
+ get: function () { return chunk67OV5CX2_cjs.MissingPublicClientError; }
179
181
  });
180
182
  Object.defineProperty(exports, "MissingWalletClientError", {
181
183
  enumerable: true,
182
- get: function () { return chunk2RNW4MIJ_cjs.MissingWalletClientError; }
184
+ get: function () { return chunk67OV5CX2_cjs.MissingWalletClientError; }
183
185
  });
184
186
  Object.defineProperty(exports, "NetworkError", {
185
187
  enumerable: true,
186
- get: function () { return chunk2RNW4MIJ_cjs.NetworkError; }
188
+ get: function () { return chunk67OV5CX2_cjs.NetworkError; }
187
189
  });
188
190
  Object.defineProperty(exports, "OperatorNotApprovedError", {
189
191
  enumerable: true,
190
- get: function () { return chunk2RNW4MIJ_cjs.OperatorNotApprovedError; }
192
+ get: function () { return chunk67OV5CX2_cjs.OperatorNotApprovedError; }
191
193
  });
192
194
  Object.defineProperty(exports, "PausedError", {
193
195
  enumerable: true,
194
- get: function () { return chunk2RNW4MIJ_cjs.PausedError; }
196
+ get: function () { return chunk67OV5CX2_cjs.PausedError; }
195
197
  });
196
198
  Object.defineProperty(exports, "ReceiptEventAmbiguousError", {
197
199
  enumerable: true,
198
- get: function () { return chunk2RNW4MIJ_cjs.ReceiptEventAmbiguousError; }
200
+ get: function () { return chunk67OV5CX2_cjs.ReceiptEventAmbiguousError; }
199
201
  });
200
202
  Object.defineProperty(exports, "ReceiptEventNotFoundError", {
201
203
  enumerable: true,
202
- get: function () { return chunk2RNW4MIJ_cjs.ReceiptEventNotFoundError; }
204
+ get: function () { return chunk67OV5CX2_cjs.ReceiptEventNotFoundError; }
203
205
  });
204
206
  Object.defineProperty(exports, "ReentrancyError", {
205
207
  enumerable: true,
206
- get: function () { return chunk2RNW4MIJ_cjs.ReentrancyError; }
208
+ get: function () { return chunk67OV5CX2_cjs.ReentrancyError; }
207
209
  });
208
210
  Object.defineProperty(exports, "RelayerUnreachableError", {
209
211
  enumerable: true,
210
- get: function () { return chunk2RNW4MIJ_cjs.RelayerUnreachableError; }
212
+ get: function () { return chunk67OV5CX2_cjs.RelayerUnreachableError; }
211
213
  });
212
214
  Object.defineProperty(exports, "SigningFailedError", {
213
215
  enumerable: true,
214
- get: function () { return chunk2RNW4MIJ_cjs.SigningFailedError; }
216
+ get: function () { return chunk67OV5CX2_cjs.SigningFailedError; }
215
217
  });
216
218
  Object.defineProperty(exports, "TokenOpsContractError", {
217
219
  enumerable: true,
218
- get: function () { return chunk2RNW4MIJ_cjs.TokenOpsContractError; }
220
+ get: function () { return chunk67OV5CX2_cjs.TokenOpsContractError; }
219
221
  });
220
222
  Object.defineProperty(exports, "TokenOpsSdkError", {
221
223
  enumerable: true,
222
- get: function () { return chunk2RNW4MIJ_cjs.TokenOpsSdkError; }
224
+ get: function () { return chunk67OV5CX2_cjs.TokenOpsSdkError; }
223
225
  });
224
226
  Object.defineProperty(exports, "TokenOpsValidationError", {
225
227
  enumerable: true,
226
- get: function () { return chunk2RNW4MIJ_cjs.TokenOpsValidationError; }
228
+ get: function () { return chunk67OV5CX2_cjs.TokenOpsValidationError; }
227
229
  });
228
230
  Object.defineProperty(exports, "TransferFailedError", {
229
231
  enumerable: true,
230
- get: function () { return chunk2RNW4MIJ_cjs.TransferFailedError; }
232
+ get: function () { return chunk67OV5CX2_cjs.TransferFailedError; }
231
233
  });
232
234
  Object.defineProperty(exports, "UnknownWriteFailureError", {
233
235
  enumerable: true,
234
- get: function () { return chunk2RNW4MIJ_cjs.UnknownWriteFailureError; }
236
+ get: function () { return chunk67OV5CX2_cjs.UnknownWriteFailureError; }
235
237
  });
236
238
  Object.defineProperty(exports, "UnsupportedChainError", {
237
239
  enumerable: true,
238
- get: function () { return chunk2RNW4MIJ_cjs.UnsupportedChainError; }
240
+ get: function () { return chunk67OV5CX2_cjs.UnsupportedChainError; }
239
241
  });
240
242
  Object.defineProperty(exports, "UserDecryptNotAllowedError", {
241
243
  enumerable: true,
242
- get: function () { return chunk2RNW4MIJ_cjs.UserDecryptNotAllowedError; }
244
+ get: function () { return chunk67OV5CX2_cjs.UserDecryptNotAllowedError; }
243
245
  });
244
246
  Object.defineProperty(exports, "UserRejectedSignatureError", {
245
247
  enumerable: true,
246
- get: function () { return chunk2RNW4MIJ_cjs.UserRejectedSignatureError; }
248
+ get: function () { return chunk67OV5CX2_cjs.UserRejectedSignatureError; }
247
249
  });
248
250
  Object.defineProperty(exports, "WalletChainMismatchError", {
249
251
  enumerable: true,
250
- get: function () { return chunk2RNW4MIJ_cjs.WalletChainMismatchError; }
252
+ get: function () { return chunk67OV5CX2_cjs.WalletChainMismatchError; }
251
253
  });
252
254
  Object.defineProperty(exports, "WalletRejectedError", {
253
255
  enumerable: true,
254
- get: function () { return chunk2RNW4MIJ_cjs.WalletRejectedError; }
256
+ get: function () { return chunk67OV5CX2_cjs.WalletRejectedError; }
255
257
  });
256
258
  Object.defineProperty(exports, "isTokenOpsSdkError", {
257
259
  enumerable: true,
258
- get: function () { return chunk2RNW4MIJ_cjs.isTokenOpsSdkError; }
260
+ get: function () { return chunk67OV5CX2_cjs.isTokenOpsSdkError; }
259
261
  });
@@ -1,10 +1,12 @@
1
- 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 } from '../chunk-QET3Q4JP.js';
2
- export { ERC7984_OPERATOR_MAX_DEADLINE, revokeOperator, setOperator } from '../chunk-4KJ66YRH.js';
3
- import '../chunk-NFW7AUEX.js';
4
- import '../chunk-YPYCWLYP.js';
1
+ 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 } from '../chunk-H5POPGOZ.js';
2
+ export { ERC7984_OPERATOR_MAX_DEADLINE, revokeOperator, setOperator } from '../chunk-4TSDNZQ3.js';
3
+ import '../chunk-WMACINXO.js';
4
+ import '../chunk-ZWXJTBZO.js';
5
5
  export { erc7984OperatorAbi } from '../chunk-7VELUOMI.js';
6
- import '../chunk-6WSNS3UV.js';
7
- import '../chunk-QKKBBH7I.js';
8
- import '../chunk-46T67CE2.js';
9
- export { AccessDeniedError, AlreadyInitializedError, BatchTooLargeError, ContractRevertError, DecryptionFailedError, DeploymentAddressUnavailableError, EncryptionFailedError, FeatureDisabledError, FheHandleNotAllowedError, InsufficientBalanceError, InsufficientFeeError, InsufficientGasFundsError, InvalidArgumentError, InvalidSignatureError, MissingAccountError, MissingClientError, MissingEncryptorError, MissingPublicClientError, MissingWalletClientError, NetworkError, OperatorNotApprovedError, PausedError, ReceiptEventAmbiguousError, ReceiptEventNotFoundError, ReentrancyError, RelayerUnreachableError, SigningFailedError, TokenOpsContractError, TokenOpsSdkError, TokenOpsValidationError, TransferFailedError, UnknownWriteFailureError, UnsupportedChainError, UserDecryptNotAllowedError, UserRejectedSignatureError, WalletChainMismatchError, WalletRejectedError, isTokenOpsSdkError } from '../chunk-DRSPMIZ7.js';
6
+ import '../chunk-NWFMBLSQ.js';
7
+ import '../chunk-4RAAATVY.js';
8
+ import '../chunk-DZHYSUGY.js';
9
+ import '../chunk-ZA673I3O.js';
10
+ import '../chunk-KWFFIJYX.js';
11
+ export { AccessDeniedError, AlreadyInitializedError, BatchTooLargeError, ContractRevertError, DecryptionFailedError, DeploymentAddressUnavailableError, EncryptionFailedError, FeatureDisabledError, FheHandleNotAllowedError, InsufficientBalanceError, InsufficientFeeError, InsufficientGasFundsError, InvalidArgumentError, InvalidSignatureError, MissingAccountError, MissingClientError, MissingEncryptorError, MissingPublicClientError, MissingWalletClientError, NetworkError, OperatorNotApprovedError, PausedError, ReceiptEventAmbiguousError, ReceiptEventNotFoundError, ReentrancyError, RelayerUnreachableError, SigningFailedError, TokenOpsContractError, TokenOpsSdkError, TokenOpsValidationError, TransferFailedError, UnknownWriteFailureError, UnsupportedChainError, UserDecryptNotAllowedError, UserRejectedSignatureError, WalletChainMismatchError, WalletRejectedError, isTokenOpsSdkError } from '../chunk-QBJ7O2B4.js';
10
12
  import '../chunk-Q2GP5UDC.js';