@tokenops/sdk 2.0.0-alpha.2 → 2.0.0-alpha.3

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 (80) hide show
  1. package/CHANGELOG.md +39 -3
  2. package/README.md +11 -5
  3. package/dist/{chunk-PZZK3O3S.cjs → chunk-4AWQJQXY.cjs} +391 -43
  4. package/dist/{chunk-SPLNGUFF.js → chunk-4IB4IY5Y.js} +1 -1
  5. package/dist/{chunk-A4DCEE33.js → chunk-6HCT4QIX.js} +11 -10
  6. package/dist/{chunk-MM5BV5CS.cjs → chunk-6XOAYDC6.cjs} +4 -4
  7. package/dist/{chunk-FEDX7B6T.cjs → chunk-AHU2HMNE.cjs} +3 -3
  8. package/dist/{chunk-IGO5XSPS.js → chunk-BPIVVCSQ.js} +2 -2
  9. package/dist/{chunk-X7WBPCEU.js → chunk-BXX5TETM.js} +375 -27
  10. package/dist/{chunk-GADGBQJO.js → chunk-GCJFAY4X.js} +2 -2
  11. package/dist/{chunk-IUKKNJ2R.cjs → chunk-GKYZQJGP.cjs} +7 -7
  12. package/dist/{chunk-3YHBO2DL.cjs → chunk-IEKTGJ4J.cjs} +2 -2
  13. package/dist/{chunk-UHHMVBLU.cjs → chunk-JVNJSDQ4.cjs} +2 -2
  14. package/dist/{chunk-VW356KR3.js → chunk-LEYYG4RF.js} +126 -3
  15. package/dist/{chunk-PYYSB5ZN.js → chunk-NGU4JYIR.js} +1 -1
  16. package/dist/{chunk-FT5H2Q7Y.cjs → chunk-PG3WXT3K.cjs} +11 -10
  17. package/dist/{chunk-44YJPMQC.js → chunk-PK6Q6J5F.js} +1 -1
  18. package/dist/{chunk-EBLBPUPI.cjs → chunk-TND5NDV7.cjs} +18 -10
  19. package/dist/{chunk-EYDA6Q6C.js → chunk-U3TBQRT7.js} +10 -2
  20. package/dist/{chunk-WJMEBBU7.js → chunk-WRWRA4TN.js} +1 -1
  21. package/dist/{chunk-FHWSBGWE.cjs → chunk-YABHXJNH.cjs} +5 -5
  22. package/dist/{chunk-AREQJHKA.cjs → chunk-YTIYTV4K.cjs} +129 -2
  23. package/dist/core/addresses.d.ts +4 -4
  24. package/dist/core/errors.d.ts +1 -1
  25. package/dist/fhe-airdrop/abis/airdrop-base.d.ts +19 -0
  26. package/dist/fhe-airdrop/abis/ecdsa.d.ts +19 -0
  27. package/dist/fhe-airdrop/abis/factory.d.ts +113 -0
  28. package/dist/fhe-airdrop/abis/merkle.d.ts +19 -0
  29. package/dist/fhe-airdrop/advanced/index.cjs +4 -4
  30. package/dist/fhe-airdrop/advanced/index.js +1 -1
  31. package/dist/fhe-airdrop/advanced/react/index.cjs +110 -80
  32. package/dist/fhe-airdrop/advanced/react/index.d.cts +1 -0
  33. package/dist/fhe-airdrop/advanced/react/index.d.ts +1 -0
  34. package/dist/fhe-airdrop/advanced/react/index.js +34 -5
  35. package/dist/fhe-airdrop/advanced/react/useDisableCustomFee.d.ts +2 -1
  36. package/dist/fhe-airdrop/advanced/react/useFactoryRenounceRole.d.ts +4 -3
  37. package/dist/fhe-airdrop/advanced/react/useFactoryRevokeRole.d.ts +9 -7
  38. package/dist/fhe-airdrop/advanced/react/useFactoryRoleMembers.d.ts +6 -5
  39. package/dist/fhe-airdrop/advanced/react/useSetCustomFee.d.ts +2 -1
  40. package/dist/fhe-airdrop/advanced/react/useSetDefaultGasFee.d.ts +5 -3
  41. package/dist/fhe-airdrop/advanced/react/useSetMaxGasFee.d.ts +33 -0
  42. package/dist/fhe-airdrop/airdrop-base.d.ts +47 -8
  43. package/dist/fhe-airdrop/constants.d.ts +9 -1
  44. package/dist/fhe-airdrop/ecdsa.d.ts +13 -0
  45. package/dist/fhe-airdrop/errors.d.ts +59 -0
  46. package/dist/fhe-airdrop/factory.d.ts +62 -22
  47. package/dist/fhe-airdrop/guards.d.ts +87 -2
  48. package/dist/fhe-airdrop/index.cjs +67 -55
  49. package/dist/fhe-airdrop/index.d.cts +3 -3
  50. package/dist/fhe-airdrop/index.d.ts +3 -3
  51. package/dist/fhe-airdrop/index.js +4 -4
  52. package/dist/fhe-airdrop/react/index.cjs +237 -177
  53. package/dist/fhe-airdrop/react/index.d.cts +4 -1
  54. package/dist/fhe-airdrop/react/index.d.ts +4 -1
  55. package/dist/fhe-airdrop/react/index.js +72 -15
  56. package/dist/fhe-airdrop/react/keys.d.ts +8 -0
  57. package/dist/fhe-airdrop/react/useFactoryFees.d.ts +11 -4
  58. package/dist/fhe-airdrop/react/useIsAirdrop.d.ts +44 -0
  59. package/dist/fhe-airdrop/react/useRefreshComplianceBalance.d.ts +36 -0
  60. package/dist/fhe-airdrop/react/useResolveGasFee.d.ts +30 -0
  61. package/dist/fhe-airdrop/types.d.ts +13 -0
  62. package/dist/fhe-disperse/index.cjs +21 -21
  63. package/dist/fhe-disperse/index.js +2 -2
  64. package/dist/fhe-disperse/react/index.cjs +22 -22
  65. package/dist/fhe-disperse/react/index.js +3 -3
  66. package/dist/fhe-vesting/advanced/index.cjs +5 -5
  67. package/dist/fhe-vesting/advanced/index.js +3 -3
  68. package/dist/fhe-vesting/advanced/react/index.cjs +7 -7
  69. package/dist/fhe-vesting/advanced/react/index.js +4 -4
  70. package/dist/fhe-vesting/index.cjs +8 -8
  71. package/dist/fhe-vesting/index.js +2 -2
  72. package/dist/fhe-vesting/react/index.cjs +114 -114
  73. package/dist/fhe-vesting/react/index.js +3 -3
  74. package/dist/index.cjs +18 -18
  75. package/dist/index.js +1 -1
  76. package/dist/testnet-faucet/index.cjs +14 -14
  77. package/dist/testnet-faucet/index.js +2 -2
  78. package/dist/testnet-faucet/react/index.cjs +8 -8
  79. package/dist/testnet-faucet/react/index.js +3 -3
  80. package/package.json +1 -1
@@ -5,9 +5,10 @@ var chunk67OV5CX2_cjs = require('./chunk-67OV5CX2.cjs');
5
5
  var viem = require('viem');
6
6
 
7
7
  // src/fhe-airdrop/constants.ts
8
- var AIRDROP_CONTRACTS_COMMIT = "7175ac82f467f0f88c05aba1a4536892999b4251";
8
+ var AIRDROP_CONTRACTS_COMMIT = "c5c12c2087f61bcd5bd1daa802563ed3cd68f002";
9
9
  var DEPLOYMENT_MODE = { clone: 0, uups: 1 };
10
10
  var DEDUP_MODE = { perAddress: 0, perDedupId: 1, both: 2, none: 3 };
11
+ var UINT96_MAX = (1n << 96n) - 1n;
11
12
 
12
13
  // src/fhe-airdrop/errors.ts
13
14
  var MerkleUupsUnsupportedError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
@@ -205,6 +206,42 @@ var ClaimWindowClosedError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
205
206
  });
206
207
  }
207
208
  };
209
+ var GasFeeNotAcceptedError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
210
+ name = "GasFeeNotAcceptedError";
211
+ constructor(args) {
212
+ const detail = args.resolvedFee !== void 0 && args.maxAcceptedGasFee !== void 0 ? ` The factory resolved ${args.resolvedFee} wei; \`maxAcceptedGasFee\` is ${args.maxAcceptedGasFee} wei.` : "";
213
+ super(
214
+ `${args.method}: the resolved per-claim gas fee exceeds \`common.maxAcceptedGasFee\`.${detail} The fee is frozen into the instance at create and cannot be changed after. Every claimant pays it on every claim, so raise the bound only if that is a fee you accept charging them.`,
215
+ {
216
+ code: "TOKENOPS_GAS_FEE_NOT_ACCEPTED",
217
+ cause: args.cause,
218
+ context: {
219
+ method: args.method,
220
+ contractAddress: args.contractAddress,
221
+ resolvedFee: args.resolvedFee,
222
+ maxAcceptedGasFee: args.maxAcceptedGasFee
223
+ }
224
+ }
225
+ );
226
+ }
227
+ };
228
+ var UnrecognisedAirdropError = class extends chunk67OV5CX2_cjs.TokenOpsSdkError {
229
+ name = "UnrecognisedAirdropError";
230
+ constructor(args) {
231
+ super(
232
+ `${args.method}: ${args.contractAddress} was not created by the factory at ${args.factory}, so it is not a TokenOps airdrop. Treat its ABI, its events and its pool as unverified.`,
233
+ {
234
+ code: "TOKENOPS_UNRECOGNISED_AIRDROP",
235
+ cause: args.cause,
236
+ context: {
237
+ method: args.method,
238
+ contractAddress: args.contractAddress,
239
+ factory: args.factory
240
+ }
241
+ }
242
+ );
243
+ }
244
+ };
208
245
  var airdropProductMapper = (name, errArgs, ctx) => {
209
246
  switch (name) {
210
247
  // ---- guarded conditions, caught on-chain instead of pre-flight -------
@@ -289,6 +326,28 @@ var airdropProductMapper = (name, errArgs, ctx) => {
289
326
  }
290
327
  // ---- argument-validation bucket: reverts not already covered by the
291
328
  // cross-product default mapper's `Zero*`/`Invalid*` list ---------------
329
+ case "GasFeeNotAccepted": {
330
+ const resolvedFee = errArgs?.[0];
331
+ const maxAcceptedGasFee = errArgs?.[1];
332
+ return new GasFeeNotAcceptedError({ ...ctx, resolvedFee, maxAcceptedGasFee });
333
+ }
334
+ case "GasFeeExceedsMaximum": {
335
+ const gasFee = errArgs?.[0];
336
+ const maxGasFee = errArgs?.[1];
337
+ return new chunk67OV5CX2_cjs.InvalidArgumentError({
338
+ method: ctx.method,
339
+ argument: "gasFee",
340
+ reason: `exceeds the factory's own maximum${gasFee !== void 0 && maxGasFee !== void 0 ? ` (${gasFee} wei > ${maxGasFee} wei)` : ""}; \`setMaxGasFee\` is DEFAULT_ADMIN_ROLE-gated and bounds what FEE_MANAGER_ROLE may configure`,
341
+ value: gasFee
342
+ });
343
+ }
344
+ case "ZeroUnwrapRequestId":
345
+ return invalidArg(
346
+ ctx,
347
+ "token",
348
+ name,
349
+ "the wrapper returned the zero request id, which names no handle to read the delivered amount from; the campaign token is not a conforming ERC7984ERC20Wrapper"
350
+ );
292
351
  case "ZeroToken":
293
352
  return invalidArg(ctx, "token", name);
294
353
  case "ZeroFeeCollector":
@@ -321,7 +380,7 @@ var airdropProductMapper = (name, errArgs, ctx) => {
321
380
  ctx,
322
381
  "admin",
323
382
  name,
324
- "revoking or renouncing the sole DEFAULT_ADMIN_ROLE member would leave the instance permanently ungovernable"
383
+ "revoking or renouncing the sole DEFAULT_ADMIN_ROLE member would leave the contract permanently ungovernable. Declared once and enforced by BOTH the instances and the factory, each on its own admin set (audit-14) - grant a second admin first, then renounce"
325
384
  );
326
385
  case "LastFeeCollector":
327
386
  return invalidArg(
@@ -480,6 +539,27 @@ async function assertSaltAvailable(args) {
480
539
  predictedAddress: args.predictedAddress
481
540
  });
482
541
  }
542
+ function assertMaxAcceptedGasFeeRange(value, method) {
543
+ if (value < 0n || value > UINT96_MAX) {
544
+ throw new chunk67OV5CX2_cjs.InvalidArgumentError({
545
+ method,
546
+ argument: "common.maxAcceptedGasFee",
547
+ reason: `is outside uint96 (0 to ${UINT96_MAX}); the params tuple cannot be ABI-encoded at all`,
548
+ value
549
+ });
550
+ }
551
+ }
552
+ async function assertGasFeeAccepted(args) {
553
+ assertMaxAcceptedGasFeeRange(args.maxAcceptedGasFee, args.method);
554
+ const resolvedFee = await args.factory.resolveGasFee(args.creator);
555
+ if (resolvedFee <= args.maxAcceptedGasFee) return;
556
+ throw new GasFeeNotAcceptedError({
557
+ method: args.method,
558
+ contractAddress: args.factory.address,
559
+ resolvedFee,
560
+ maxAcceptedGasFee: args.maxAcceptedGasFee
561
+ });
562
+ }
483
563
  function assertPredictionFresh(args) {
484
564
  if (args.initCodeHashBefore.toLowerCase() === args.initCodeHashAfter.toLowerCase()) return;
485
565
  throw new PredictionDriftError({
@@ -497,6 +577,20 @@ async function preflightCreate(args) {
497
577
  if (args.variant === "merkle") {
498
578
  collect(blockers, () => assertMerkleModeSupported(args.mode));
499
579
  }
580
+ const encodable = collect(
581
+ blockers,
582
+ () => assertMaxAcceptedGasFeeRange(args.params.common.maxAcceptedGasFee, method)
583
+ );
584
+ if (!encodable) return { ready: false, blockers };
585
+ await collectAsync(
586
+ blockers,
587
+ () => assertGasFeeAccepted({
588
+ factory: args.factory,
589
+ creator: args.creator,
590
+ maxAcceptedGasFee: args.params.common.maxAcceptedGasFee,
591
+ method
592
+ })
593
+ );
500
594
  const predictArgs = {
501
595
  mode: args.mode,
502
596
  deployer: args.creator,
@@ -550,6 +644,22 @@ async function preflightCreate(args) {
550
644
  }
551
645
  return { ready: blockers.length === 0, blockers };
552
646
  }
647
+ async function assertKnownAirdrop(args) {
648
+ if (args.factory.chainId !== args.chainId) {
649
+ throw new chunk67OV5CX2_cjs.InvalidArgumentError({
650
+ method: args.method,
651
+ argument: "factory",
652
+ reason: `is bound to chain ${args.factory.chainId} but the airdrop is on chain ${args.chainId}; a registry answer from another chain proves nothing about this instance`,
653
+ value: args.factory.address
654
+ });
655
+ }
656
+ if (await args.factory.isAirdrop(args.airdrop)) return;
657
+ throw new UnrecognisedAirdropError({
658
+ method: args.method,
659
+ contractAddress: args.airdrop,
660
+ factory: args.factory.address
661
+ });
662
+ }
553
663
  function assertMerkleClaimIdentity(args) {
554
664
  const { method, account, submitter, boundTo, to, entrypoint = "claim" } = args;
555
665
  for (const [argument, value] of [
@@ -601,6 +711,17 @@ async function preflightClaim(args) {
601
711
  const method = "preflightClaim";
602
712
  const blockers = [];
603
713
  collect(blockers, () => assertSupportedChain(airdrop.chainId));
714
+ if (args.factory) {
715
+ await collectAsync(
716
+ blockers,
717
+ () => assertKnownAirdrop({
718
+ factory: args.factory,
719
+ airdrop: airdrop.address,
720
+ chainId: airdrop.chainId,
721
+ method
722
+ })
723
+ );
724
+ }
604
725
  if (args.account !== void 0 || args.entrypoint !== void 0) {
605
726
  collect(
606
727
  blockers,
@@ -673,9 +794,11 @@ async function preflightClaim(args) {
673
794
  function collect(blockers, run) {
674
795
  try {
675
796
  run();
797
+ return true;
676
798
  } catch (err) {
677
799
  if (!chunk67OV5CX2_cjs.isTokenOpsSdkError(err)) throw err;
678
800
  blockers.push(err);
801
+ return false;
679
802
  }
680
803
  }
681
804
  async function collectAsync(blockers, run) {
@@ -695,14 +818,18 @@ exports.DEDUP_MODE = DEDUP_MODE;
695
818
  exports.DEPLOYMENT_MODE = DEPLOYMENT_MODE;
696
819
  exports.DedupIdConsumedError = DedupIdConsumedError;
697
820
  exports.FeeCollectorSelfAdministeredError = FeeCollectorSelfAdministeredError;
821
+ exports.GasFeeNotAcceptedError = GasFeeNotAcceptedError;
698
822
  exports.MerkleUupsUnsupportedError = MerkleUupsUnsupportedError;
699
823
  exports.NonStockWrapperError = NonStockWrapperError;
700
824
  exports.PredictionDriftError = PredictionDriftError;
701
825
  exports.SaltCollisionError = SaltCollisionError;
702
826
  exports.SignatureExpiredError = SignatureExpiredError;
827
+ exports.UINT96_MAX = UINT96_MAX;
703
828
  exports.UnauthorizedRedirectError = UnauthorizedRedirectError;
829
+ exports.UnrecognisedAirdropError = UnrecognisedAirdropError;
704
830
  exports.UpgradeabilityNotAllowedError = UpgradeabilityNotAllowedError;
705
831
  exports.airdropProductMapper = airdropProductMapper;
832
+ exports.assertGasFeeAccepted = assertGasFeeAccepted;
706
833
  exports.assertMerkleClaimIdentity = assertMerkleClaimIdentity;
707
834
  exports.assertMerkleModeSupported = assertMerkleModeSupported;
708
835
  exports.assertPredictionFresh = assertPredictionFresh;
@@ -15,16 +15,16 @@ export declare const DEPLOYED_ADDRESSES: {
15
15
  };
16
16
  readonly fheAirdrop: {
17
17
  readonly airdropFactory: {
18
- readonly 11155111: "0x174A7CB40F64aBC4C95CecB4172A066Cf531e4E9";
18
+ readonly 11155111: "0xA10ff713cfeE5348313Cda0B2CA1b190A1194cab";
19
19
  };
20
20
  readonly ecdsaImplementation: {
21
- readonly 11155111: "0xDeD7AB391f87B8F891F89AaEC64C7c9C800C6645";
21
+ readonly 11155111: "0x8d4E8F379f73D5488a76B6C3CC8a2fD489936BDe";
22
22
  };
23
23
  readonly merkleImplementation: {
24
- readonly 11155111: "0x815E65Cdd707F07F09332537b47C530d0E87aAf5";
24
+ readonly 11155111: "0x4B4F43Ed9aB3F9D10468b59C03d14f55A9d4E82F";
25
25
  };
26
26
  readonly complianceManagerImplementation: {
27
- readonly 11155111: "0x885474FA494748C85410482244a406C6Ad570CCe";
27
+ readonly 11155111: "0x14bdE71e6b32b50dF1a5Dca1bccD150a319168e2";
28
28
  };
29
29
  };
30
30
  readonly fheDisperse: {
@@ -13,7 +13,7 @@ declare const TOKENOPS_SDK_ERROR_BRAND: unique symbol;
13
13
  * human-readable and may evolve between versions.
14
14
  * @public
15
15
  */
16
- export type TokenOpsSdkErrorCode = "TOKENOPS_UNSUPPORTED_CHAIN" | "TOKENOPS_DEPLOYMENT_ADDRESS_UNAVAILABLE" | "TOKENOPS_MISSING_PUBLIC_CLIENT" | "TOKENOPS_MISSING_WALLET_CLIENT" | "TOKENOPS_MISSING_ACCOUNT" | "TOKENOPS_MISSING_ENCRYPTOR" | "TOKENOPS_MISSING_CLIENT" | "TOKENOPS_INVALID_ARGUMENT" | "TOKENOPS_RECEIPT_EVENT_NOT_FOUND" | "TOKENOPS_RECEIPT_EVENT_AMBIGUOUS" | "TOKENOPS_CONTRACT_REVERT" | "TOKENOPS_PAUSED" | "TOKENOPS_ACCESS_DENIED" | "TOKENOPS_OPERATOR_NOT_APPROVED" | "TOKENOPS_INSUFFICIENT_FEE" | "TOKENOPS_INSUFFICIENT_BALANCE" | "TOKENOPS_BATCH_TOO_LARGE" | "TOKENOPS_FEATURE_DISABLED" | "TOKENOPS_TRANSFER_FAILED" | "TOKENOPS_FHE_HANDLE_NOT_ALLOWED" | "TOKENOPS_ALREADY_INITIALIZED" | "TOKENOPS_REENTRANCY" | "TOKENOPS_INVALID_SIGNATURE" | "TOKENOPS_WALLET_REJECTED" | "TOKENOPS_WALLET_CHAIN_MISMATCH" | "TOKENOPS_NETWORK_ERROR" | "TOKENOPS_INSUFFICIENT_GAS_FUNDS" | "TOKENOPS_UNKNOWN_WRITE_FAILURE" | "TOKENOPS_USER_REJECTED" | "TOKENOPS_SIGNING_FAILED" | "TOKENOPS_RELAYER_UNREACHABLE" | "TOKENOPS_ENCRYPTION_FAILED" | "TOKENOPS_DECRYPTION_FAILED" | "TOKENOPS_USER_DECRYPT_NOT_ALLOWED" | "TOKENOPS_VESTING_NOT_FOUND" | "TOKENOPS_NOT_RECIPIENT" | "TOKENOPS_CLAIM_LOCKED" | "TOKENOPS_VESTING_REVOKED" | "TOKENOPS_NOT_REVOCABLE" | "TOKENOPS_VESTING_EXPIRED" | "TOKENOPS_TRANSFER_ALREADY_PENDING" | "TOKENOPS_NO_PENDING_TRANSFER" | "TOKENOPS_NOT_PENDING_RECIPIENT" | "TOKENOPS_TRANSFER_EXPIRED" | "TOKENOPS_ALREADY_CLAIMED" | "TOKENOPS_CLAIM_NOT_STARTED" | "TOKENOPS_CLAIM_WINDOW_CLOSED" | "TOKENOPS_NOT_REGISTERED" | "TOKENOPS_ALREADY_REGISTERED" | "TOKENOPS_SUBWALLETS_NOT_APPROVED" | "TOKENOPS_SINGLETON_NOT_APPROVED" | "TOKENOPS_FAUCET_SUPPLY_EXHAUSTED" | "TOKENOPS_MERKLE_UUPS_UNSUPPORTED" | "TOKENOPS_NON_STOCK_WRAPPER" | "TOKENOPS_UPGRADEABILITY_NOT_ALLOWED" | "TOKENOPS_FEE_COLLECTOR_SELF_ADMINISTERED" | "TOKENOPS_DEDUP_ID_CONSUMED" | "TOKENOPS_SIGNATURE_EXPIRED" | "TOKENOPS_SALT_COLLISION" | "TOKENOPS_PREDICTION_DRIFT" | "TOKENOPS_UNAUTHORIZED_REDIRECT";
16
+ export type TokenOpsSdkErrorCode = "TOKENOPS_UNSUPPORTED_CHAIN" | "TOKENOPS_DEPLOYMENT_ADDRESS_UNAVAILABLE" | "TOKENOPS_MISSING_PUBLIC_CLIENT" | "TOKENOPS_MISSING_WALLET_CLIENT" | "TOKENOPS_MISSING_ACCOUNT" | "TOKENOPS_MISSING_ENCRYPTOR" | "TOKENOPS_MISSING_CLIENT" | "TOKENOPS_INVALID_ARGUMENT" | "TOKENOPS_RECEIPT_EVENT_NOT_FOUND" | "TOKENOPS_RECEIPT_EVENT_AMBIGUOUS" | "TOKENOPS_CONTRACT_REVERT" | "TOKENOPS_PAUSED" | "TOKENOPS_ACCESS_DENIED" | "TOKENOPS_OPERATOR_NOT_APPROVED" | "TOKENOPS_INSUFFICIENT_FEE" | "TOKENOPS_INSUFFICIENT_BALANCE" | "TOKENOPS_BATCH_TOO_LARGE" | "TOKENOPS_FEATURE_DISABLED" | "TOKENOPS_TRANSFER_FAILED" | "TOKENOPS_FHE_HANDLE_NOT_ALLOWED" | "TOKENOPS_ALREADY_INITIALIZED" | "TOKENOPS_REENTRANCY" | "TOKENOPS_INVALID_SIGNATURE" | "TOKENOPS_WALLET_REJECTED" | "TOKENOPS_WALLET_CHAIN_MISMATCH" | "TOKENOPS_NETWORK_ERROR" | "TOKENOPS_INSUFFICIENT_GAS_FUNDS" | "TOKENOPS_UNKNOWN_WRITE_FAILURE" | "TOKENOPS_USER_REJECTED" | "TOKENOPS_SIGNING_FAILED" | "TOKENOPS_RELAYER_UNREACHABLE" | "TOKENOPS_ENCRYPTION_FAILED" | "TOKENOPS_DECRYPTION_FAILED" | "TOKENOPS_USER_DECRYPT_NOT_ALLOWED" | "TOKENOPS_VESTING_NOT_FOUND" | "TOKENOPS_NOT_RECIPIENT" | "TOKENOPS_CLAIM_LOCKED" | "TOKENOPS_VESTING_REVOKED" | "TOKENOPS_NOT_REVOCABLE" | "TOKENOPS_VESTING_EXPIRED" | "TOKENOPS_TRANSFER_ALREADY_PENDING" | "TOKENOPS_NO_PENDING_TRANSFER" | "TOKENOPS_NOT_PENDING_RECIPIENT" | "TOKENOPS_TRANSFER_EXPIRED" | "TOKENOPS_ALREADY_CLAIMED" | "TOKENOPS_CLAIM_NOT_STARTED" | "TOKENOPS_CLAIM_WINDOW_CLOSED" | "TOKENOPS_NOT_REGISTERED" | "TOKENOPS_ALREADY_REGISTERED" | "TOKENOPS_SUBWALLETS_NOT_APPROVED" | "TOKENOPS_SINGLETON_NOT_APPROVED" | "TOKENOPS_FAUCET_SUPPLY_EXHAUSTED" | "TOKENOPS_MERKLE_UUPS_UNSUPPORTED" | "TOKENOPS_NON_STOCK_WRAPPER" | "TOKENOPS_UPGRADEABILITY_NOT_ALLOWED" | "TOKENOPS_FEE_COLLECTOR_SELF_ADMINISTERED" | "TOKENOPS_DEDUP_ID_CONSUMED" | "TOKENOPS_SIGNATURE_EXPIRED" | "TOKENOPS_SALT_COLLISION" | "TOKENOPS_PREDICTION_DRIFT" | "TOKENOPS_UNAUTHORIZED_REDIRECT" | "TOKENOPS_GAS_FEE_NOT_ACCEPTED" | "TOKENOPS_UNRECOGNISED_AIRDROP";
17
17
  /** @public */
18
18
  export interface TokenOpsSdkErrorInit {
19
19
  code: TokenOpsSdkErrorCode;
@@ -151,6 +151,10 @@ export declare const confidentialAirdropBaseAbi: readonly [{
151
151
  readonly inputs: readonly [];
152
152
  readonly name: "ZeroToken";
153
153
  readonly type: "error";
154
+ }, {
155
+ readonly inputs: readonly [];
156
+ readonly name: "ZeroUnwrapRequestId";
157
+ readonly type: "error";
154
158
  }, {
155
159
  readonly anonymous: false;
156
160
  readonly inputs: readonly [{
@@ -178,6 +182,11 @@ export declare const confidentialAirdropBaseAbi: readonly [{
178
182
  readonly internalType: "uint256";
179
183
  readonly name: "deploymentBlockNumber";
180
184
  readonly type: "uint256";
185
+ }, {
186
+ readonly indexed: false;
187
+ readonly internalType: "uint256";
188
+ readonly name: "gasFee";
189
+ readonly type: "uint256";
181
190
  }];
182
191
  readonly name: "AirdropInitialized";
183
192
  readonly type: "event";
@@ -548,6 +557,16 @@ export declare const confidentialAirdropBaseAbi: readonly [{
548
557
  readonly outputs: readonly [];
549
558
  readonly stateMutability: "nonpayable";
550
559
  readonly type: "function";
560
+ }, {
561
+ readonly inputs: readonly [];
562
+ readonly name: "refreshComplianceBalance";
563
+ readonly outputs: readonly [{
564
+ readonly internalType: "euint64";
565
+ readonly name: "balance";
566
+ readonly type: "bytes32";
567
+ }];
568
+ readonly stateMutability: "nonpayable";
569
+ readonly type: "function";
551
570
  }, {
552
571
  readonly inputs: readonly [{
553
572
  readonly internalType: "address";
@@ -279,6 +279,10 @@ export declare const ecdsaConfidentialAirdropAbi: readonly [{
279
279
  readonly inputs: readonly [];
280
280
  readonly name: "ZeroToken";
281
281
  readonly type: "error";
282
+ }, {
283
+ readonly inputs: readonly [];
284
+ readonly name: "ZeroUnwrapRequestId";
285
+ readonly type: "error";
282
286
  }, {
283
287
  readonly anonymous: false;
284
288
  readonly inputs: readonly [{
@@ -306,6 +310,11 @@ export declare const ecdsaConfidentialAirdropAbi: readonly [{
306
310
  readonly internalType: "uint256";
307
311
  readonly name: "deploymentBlockNumber";
308
312
  readonly type: "uint256";
313
+ }, {
314
+ readonly indexed: false;
315
+ readonly internalType: "uint256";
316
+ readonly name: "gasFee";
317
+ readonly type: "uint256";
309
318
  }];
310
319
  readonly name: "AirdropInitialized";
311
320
  readonly type: "event";
@@ -1169,6 +1178,16 @@ export declare const ecdsaConfidentialAirdropAbi: readonly [{
1169
1178
  }];
1170
1179
  readonly stateMutability: "view";
1171
1180
  readonly type: "function";
1181
+ }, {
1182
+ readonly inputs: readonly [];
1183
+ readonly name: "refreshComplianceBalance";
1184
+ readonly outputs: readonly [{
1185
+ readonly internalType: "euint64";
1186
+ readonly name: "balance";
1187
+ readonly type: "bytes32";
1188
+ }];
1189
+ readonly stateMutability: "nonpayable";
1190
+ readonly type: "function";
1172
1191
  }, {
1173
1192
  readonly inputs: readonly [{
1174
1193
  readonly internalType: "bytes32";
@@ -45,6 +45,10 @@ export declare const airdropFactoryAbi: readonly [{
45
45
  readonly internalType: "uint96";
46
46
  readonly name: "defaultGasFee_";
47
47
  readonly type: "uint96";
48
+ }, {
49
+ readonly internalType: "uint96";
50
+ readonly name: "maxGasFee_";
51
+ readonly type: "uint96";
48
52
  }];
49
53
  readonly stateMutability: "nonpayable";
50
54
  readonly type: "constructor";
@@ -124,6 +128,30 @@ export declare const airdropFactoryAbi: readonly [{
124
128
  readonly inputs: readonly [];
125
129
  readonly name: "FailedDeployment";
126
130
  readonly type: "error";
131
+ }, {
132
+ readonly inputs: readonly [{
133
+ readonly internalType: "uint96";
134
+ readonly name: "gasFee";
135
+ readonly type: "uint96";
136
+ }, {
137
+ readonly internalType: "uint96";
138
+ readonly name: "maxGasFee";
139
+ readonly type: "uint96";
140
+ }];
141
+ readonly name: "GasFeeExceedsMaximum";
142
+ readonly type: "error";
143
+ }, {
144
+ readonly inputs: readonly [{
145
+ readonly internalType: "uint96";
146
+ readonly name: "resolvedFee";
147
+ readonly type: "uint96";
148
+ }, {
149
+ readonly internalType: "uint96";
150
+ readonly name: "maxAcceptedGasFee";
151
+ readonly type: "uint96";
152
+ }];
153
+ readonly name: "GasFeeNotAccepted";
154
+ readonly type: "error";
127
155
  }, {
128
156
  readonly inputs: readonly [{
129
157
  readonly internalType: "euint64";
@@ -292,6 +320,10 @@ export declare const airdropFactoryAbi: readonly [{
292
320
  readonly inputs: readonly [];
293
321
  readonly name: "ZeroToken";
294
322
  readonly type: "error";
323
+ }, {
324
+ readonly inputs: readonly [];
325
+ readonly name: "ZeroUnwrapRequestId";
326
+ readonly type: "error";
295
327
  }, {
296
328
  readonly anonymous: false;
297
329
  readonly inputs: readonly [{
@@ -319,6 +351,11 @@ export declare const airdropFactoryAbi: readonly [{
319
351
  readonly internalType: "uint256";
320
352
  readonly name: "deploymentBlockNumber";
321
353
  readonly type: "uint256";
354
+ }, {
355
+ readonly indexed: false;
356
+ readonly internalType: "uint256";
357
+ readonly name: "gasFee";
358
+ readonly type: "uint256";
322
359
  }];
323
360
  readonly name: "AirdropInitialized";
324
361
  readonly type: "event";
@@ -717,6 +754,16 @@ export declare const airdropFactoryAbi: readonly [{
717
754
  }];
718
755
  readonly name: "SetDefaultGasFee";
719
756
  readonly type: "event";
757
+ }, {
758
+ readonly anonymous: false;
759
+ readonly inputs: readonly [{
760
+ readonly indexed: false;
761
+ readonly internalType: "uint256";
762
+ readonly name: "maxGasFee";
763
+ readonly type: "uint256";
764
+ }];
765
+ readonly name: "SetMaxGasFee";
766
+ readonly type: "event";
720
767
  }, {
721
768
  readonly anonymous: false;
722
769
  readonly inputs: readonly [{
@@ -940,6 +987,10 @@ export declare const airdropFactoryAbi: readonly [{
940
987
  readonly internalType: "address";
941
988
  readonly name: "complianceAdmin";
942
989
  readonly type: "address";
990
+ }, {
991
+ readonly internalType: "uint96";
992
+ readonly name: "maxAcceptedGasFee";
993
+ readonly type: "uint96";
943
994
  }];
944
995
  readonly internalType: "struct IAirdropFactory.CommonAirdropParams";
945
996
  readonly name: "common";
@@ -1008,6 +1059,10 @@ export declare const airdropFactoryAbi: readonly [{
1008
1059
  readonly internalType: "address";
1009
1060
  readonly name: "complianceAdmin";
1010
1061
  readonly type: "address";
1062
+ }, {
1063
+ readonly internalType: "uint96";
1064
+ readonly name: "maxAcceptedGasFee";
1065
+ readonly type: "uint96";
1011
1066
  }];
1012
1067
  readonly internalType: "struct IAirdropFactory.CommonAirdropParams";
1013
1068
  readonly name: "common";
@@ -1076,6 +1131,10 @@ export declare const airdropFactoryAbi: readonly [{
1076
1131
  readonly internalType: "address";
1077
1132
  readonly name: "complianceAdmin";
1078
1133
  readonly type: "address";
1134
+ }, {
1135
+ readonly internalType: "uint96";
1136
+ readonly name: "maxAcceptedGasFee";
1137
+ readonly type: "uint96";
1079
1138
  }];
1080
1139
  readonly internalType: "struct IAirdropFactory.CommonAirdropParams";
1081
1140
  readonly name: "common";
@@ -1136,6 +1195,10 @@ export declare const airdropFactoryAbi: readonly [{
1136
1195
  readonly internalType: "address";
1137
1196
  readonly name: "complianceAdmin";
1138
1197
  readonly type: "address";
1198
+ }, {
1199
+ readonly internalType: "uint96";
1200
+ readonly name: "maxAcceptedGasFee";
1201
+ readonly type: "uint96";
1139
1202
  }];
1140
1203
  readonly internalType: "struct IAirdropFactory.CommonAirdropParams";
1141
1204
  readonly name: "common";
@@ -1338,6 +1401,10 @@ export declare const airdropFactoryAbi: readonly [{
1338
1401
  readonly internalType: "address";
1339
1402
  readonly name: "complianceAdmin";
1340
1403
  readonly type: "address";
1404
+ }, {
1405
+ readonly internalType: "uint96";
1406
+ readonly name: "maxAcceptedGasFee";
1407
+ readonly type: "uint96";
1341
1408
  }];
1342
1409
  readonly internalType: "struct IAirdropFactory.CommonAirdropParams";
1343
1410
  readonly name: "common";
@@ -1394,6 +1461,10 @@ export declare const airdropFactoryAbi: readonly [{
1394
1461
  readonly internalType: "address";
1395
1462
  readonly name: "complianceAdmin";
1396
1463
  readonly type: "address";
1464
+ }, {
1465
+ readonly internalType: "uint96";
1466
+ readonly name: "maxAcceptedGasFee";
1467
+ readonly type: "uint96";
1397
1468
  }];
1398
1469
  readonly internalType: "struct IAirdropFactory.CommonAirdropParams";
1399
1470
  readonly name: "common";
@@ -1538,6 +1609,30 @@ export declare const airdropFactoryAbi: readonly [{
1538
1609
  }];
1539
1610
  readonly stateMutability: "view";
1540
1611
  readonly type: "function";
1612
+ }, {
1613
+ readonly inputs: readonly [{
1614
+ readonly internalType: "address";
1615
+ readonly name: "candidate";
1616
+ readonly type: "address";
1617
+ }];
1618
+ readonly name: "isAirdrop";
1619
+ readonly outputs: readonly [{
1620
+ readonly internalType: "bool";
1621
+ readonly name: "";
1622
+ readonly type: "bool";
1623
+ }];
1624
+ readonly stateMutability: "view";
1625
+ readonly type: "function";
1626
+ }, {
1627
+ readonly inputs: readonly [];
1628
+ readonly name: "maxGasFee";
1629
+ readonly outputs: readonly [{
1630
+ readonly internalType: "uint256";
1631
+ readonly name: "";
1632
+ readonly type: "uint256";
1633
+ }];
1634
+ readonly stateMutability: "view";
1635
+ readonly type: "function";
1541
1636
  }, {
1542
1637
  readonly inputs: readonly [];
1543
1638
  readonly name: "merkleImplementation";
@@ -1575,6 +1670,10 @@ export declare const airdropFactoryAbi: readonly [{
1575
1670
  readonly internalType: "address";
1576
1671
  readonly name: "complianceAdmin";
1577
1672
  readonly type: "address";
1673
+ }, {
1674
+ readonly internalType: "uint96";
1675
+ readonly name: "maxAcceptedGasFee";
1676
+ readonly type: "uint96";
1578
1677
  }];
1579
1678
  readonly internalType: "struct IAirdropFactory.CommonAirdropParams";
1580
1679
  readonly name: "common";
@@ -1639,6 +1738,10 @@ export declare const airdropFactoryAbi: readonly [{
1639
1738
  readonly internalType: "address";
1640
1739
  readonly name: "complianceAdmin";
1641
1740
  readonly type: "address";
1741
+ }, {
1742
+ readonly internalType: "uint96";
1743
+ readonly name: "maxAcceptedGasFee";
1744
+ readonly type: "uint96";
1642
1745
  }];
1643
1746
  readonly internalType: "struct IAirdropFactory.CommonAirdropParams";
1644
1747
  readonly name: "common";
@@ -1802,6 +1905,16 @@ export declare const airdropFactoryAbi: readonly [{
1802
1905
  readonly outputs: readonly [];
1803
1906
  readonly stateMutability: "nonpayable";
1804
1907
  readonly type: "function";
1908
+ }, {
1909
+ readonly inputs: readonly [{
1910
+ readonly internalType: "uint96";
1911
+ readonly name: "maxGasFee_";
1912
+ readonly type: "uint96";
1913
+ }];
1914
+ readonly name: "setMaxGasFee";
1915
+ readonly outputs: readonly [];
1916
+ readonly stateMutability: "nonpayable";
1917
+ readonly type: "function";
1805
1918
  }, {
1806
1919
  readonly inputs: readonly [{
1807
1920
  readonly internalType: "address";
@@ -271,6 +271,10 @@ export declare const merkleConfidentialAirdropAbi: readonly [{
271
271
  readonly inputs: readonly [];
272
272
  readonly name: "ZeroToken";
273
273
  readonly type: "error";
274
+ }, {
275
+ readonly inputs: readonly [];
276
+ readonly name: "ZeroUnwrapRequestId";
277
+ readonly type: "error";
274
278
  }, {
275
279
  readonly anonymous: false;
276
280
  readonly inputs: readonly [{
@@ -298,6 +302,11 @@ export declare const merkleConfidentialAirdropAbi: readonly [{
298
302
  readonly internalType: "uint256";
299
303
  readonly name: "deploymentBlockNumber";
300
304
  readonly type: "uint256";
305
+ }, {
306
+ readonly indexed: false;
307
+ readonly internalType: "uint256";
308
+ readonly name: "gasFee";
309
+ readonly type: "uint256";
301
310
  }];
302
311
  readonly name: "AirdropInitialized";
303
312
  readonly type: "event";
@@ -1093,6 +1102,16 @@ export declare const merkleConfidentialAirdropAbi: readonly [{
1093
1102
  }];
1094
1103
  readonly stateMutability: "view";
1095
1104
  readonly type: "function";
1105
+ }, {
1106
+ readonly inputs: readonly [];
1107
+ readonly name: "refreshComplianceBalance";
1108
+ readonly outputs: readonly [{
1109
+ readonly internalType: "euint64";
1110
+ readonly name: "balance";
1111
+ readonly type: "bytes32";
1112
+ }];
1113
+ readonly stateMutability: "nonpayable";
1114
+ readonly type: "function";
1096
1115
  }, {
1097
1116
  readonly inputs: readonly [{
1098
1117
  readonly internalType: "bytes32";
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkAREQJHKA_cjs = require('../../chunk-AREQJHKA.cjs');
3
+ var chunkYTIYTV4K_cjs = require('../../chunk-YTIYTV4K.cjs');
4
4
  require('../../chunk-MVDQMV25.cjs');
5
5
  require('../../chunk-67OV5CX2.cjs');
6
6
 
@@ -8,13 +8,13 @@ require('../../chunk-67OV5CX2.cjs');
8
8
 
9
9
  Object.defineProperty(exports, "DEPLOYMENT_MODE", {
10
10
  enumerable: true,
11
- get: function () { return chunkAREQJHKA_cjs.DEPLOYMENT_MODE; }
11
+ get: function () { return chunkYTIYTV4K_cjs.DEPLOYMENT_MODE; }
12
12
  });
13
13
  Object.defineProperty(exports, "assertPredictionFresh", {
14
14
  enumerable: true,
15
- get: function () { return chunkAREQJHKA_cjs.assertPredictionFresh; }
15
+ get: function () { return chunkYTIYTV4K_cjs.assertPredictionFresh; }
16
16
  });
17
17
  Object.defineProperty(exports, "assertSaltAvailable", {
18
18
  enumerable: true,
19
- get: function () { return chunkAREQJHKA_cjs.assertSaltAvailable; }
19
+ get: function () { return chunkYTIYTV4K_cjs.assertSaltAvailable; }
20
20
  });
@@ -1,3 +1,3 @@
1
- export { DEPLOYMENT_MODE, assertPredictionFresh, assertSaltAvailable } from '../../chunk-VW356KR3.js';
1
+ export { DEPLOYMENT_MODE, assertPredictionFresh, assertSaltAvailable } from '../../chunk-LEYYG4RF.js';
2
2
  import '../../chunk-4RAAATVY.js';
3
3
  import '../../chunk-QBJ7O2B4.js';