@p2pdotme/sdk 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/orders.cjs CHANGED
@@ -33,12 +33,17 @@ __export(orders_exports, {
33
33
  OrdersError: () => OrdersError,
34
34
  cipherParse: () => cipherParse,
35
35
  cipherStringify: () => cipherStringify,
36
+ contractErrorMessages: () => contractErrorMessages,
37
+ contractErrors: () => contractErrors,
36
38
  createInMemoryRelayStore: () => createInMemoryRelayStore,
37
39
  createLocalStorageRelayStore: () => createLocalStorageRelayStore,
38
40
  createOrders: () => createOrders,
39
41
  createRelayIdentity: () => createRelayIdentity,
40
42
  decryptPaymentAddress: () => decryptPaymentAddress,
41
- encryptPaymentAddress: () => encryptPaymentAddress
43
+ encryptPaymentAddress: () => encryptPaymentAddress,
44
+ getContractErrorMessage: () => getContractErrorMessage,
45
+ hexContractErrors: () => hexContractErrors,
46
+ parseContractError: () => parseContractError
42
47
  });
43
48
  module.exports = __toCommonJS(orders_exports);
44
49
 
@@ -4425,6 +4430,685 @@ function createSetSellOrderUpiAction(input) {
4425
4430
  // src/orders/internal/routing/client.ts
4426
4431
  var import_viem16 = require("viem");
4427
4432
 
4433
+ // src/contracts/error-messages.ts
4434
+ var contractErrorMessages = {
4435
+ // Access control
4436
+ NOT_ADMIN: "You are not an admin",
4437
+ NOT_SUPER_ADMIN: "You are not a super admin",
4438
+ NOT_AUTHORIZED: "Not authorized",
4439
+ NOT_SELF: "Action can only be performed by yourself",
4440
+ NOT_WHITELISTED: "Not whitelisted",
4441
+ NOT_CIRCLE_ADMIN: "You are not a circle admin",
4442
+ // Circle / community management
4443
+ INVALID_NAME: "Invalid name",
4444
+ INVALID_COMMUNITY_URL: "Invalid community URL",
4445
+ INVALID_ADMIN_COMMUNITY_URL: "Invalid admin community URL",
4446
+ ADMIN_ALREADY_HAS_CIRCLE: "Admin already has a circle",
4447
+ CIRCLE_NAME_ALREADY_TAKEN: "Circle name is already taken",
4448
+ P2P_STAKE_CONFIG_NOT_SET: "P2P stake config is not set",
4449
+ INSUFFICIENT_P2P_STAKE: "Insufficient P2P stake",
4450
+ P2P_TOKEN_NOT_SET: "P2P token is not set",
4451
+ P2P_UNSTAKE_REQUEST_PENDING: "A P2P unstake request is already pending",
4452
+ NO_P2P_UNSTAKE_REQUEST: "No P2P unstake request found",
4453
+ P2P_UNSTAKE_COOLDOWN_NOT_PASSED: "P2P unstake cooldown period has not passed",
4454
+ SLASH_AMOUNT_EXCEEDS_STAKE: "Slash amount exceeds stake",
4455
+ CIRCLE_NOT_ACTIVE: "Circle is not active",
4456
+ INVALID_CIRCLE_ID: "Invalid circle ID",
4457
+ CURRENCY_MISMATCH: "Currency mismatch",
4458
+ CIRCLE_FULL: "Circle is full",
4459
+ CIRCLE_ID_MISMATCH: "Circle ID mismatch",
4460
+ DUPLICATE_ACCOUNT_NAME: "Account name already exists",
4461
+ EMPTY_NAME: "Name cannot be empty",
4462
+ ACCOUNT_BOUND_TO_ANOTHER_CIRCLE: "Account is bound to another circle",
4463
+ EXIT_AMOUNT_EXCEEDED_CIRCLE_BALANCE: "Exit amount exceeded circle balance",
4464
+ UNDELEGATION_AMOUNT_TOO_HIGH: "Undelegation amount is too high",
4465
+ // Exchange / order lifecycle
4466
+ EXCHANGE_NOT_OPERATIONAL: "Exchange is not operational",
4467
+ ORDER_NOT_PLACED: "Order not placed",
4468
+ ORDER_NOT_PAID: "Order has not been paid",
4469
+ ORDER_STATUS_INVALID: "Order with placed status only can be re-assigned",
4470
+ ORDER_EXPIRED: "Order expired",
4471
+ ORDER_ALREADY_PAID: "Payment address already sent",
4472
+ ORDER_ALREADY_COMPLETED: "Order already marked completed",
4473
+ INVALID_ORDER_TYPE: "Invalid order type",
4474
+ ORDER_TYPE_INCORRECT: "Incorrect order type",
4475
+ ORDER_NOT_ACCEPTED: "Order not placed to be accepted",
4476
+ ORDER_NOT_ASSIGNED: "Order not assigned",
4477
+ ORDER_AMOUNT_EXCEEDS_LIMIT: "Order amount exceeds limit",
4478
+ INVALID_ORDER_AMOUNT: "Invalid order amount",
4479
+ INVALID_ORDER_AMOUNT_TO_COVER_FEE: "Order amount is not enough to cover fee",
4480
+ INVALID_ORDER_ID: "Invalid order ID",
4481
+ ORDER_TOO_EARLY_FOR_REASSIGNMENT: "Order is too early for reassignment",
4482
+ ORDER_TOO_LATE_FOR_REASSIGNMENT: "Order is too late for reassignment",
4483
+ REASSIGNMENT_NOT_REQUIRED: "Reassignment is not required",
4484
+ TIP_ALREADY_GIVEN: "Tip already given",
4485
+ CASHBACK_TRANSFER_FAILED: "Cashback transfer failed",
4486
+ // Order limits
4487
+ DAILY_BUY_ORDER_LIMIT_EXCEEDED: "Daily buy order count limit exceeded",
4488
+ MONTHLY_BUY_ORDER_LIMIT_EXCEEDED: "Monthly buy order count limit exceeded",
4489
+ SELL_ORDER_AMOUNT_LIMIT_EXCEEDED: "Sell order amount limit exceeded",
4490
+ BUY_ORDER_AMOUNT_EXCEEDS_LIMIT: "Buy order amount exceeds limit",
4491
+ SELL_ORDER_AMOUNT_EXCEEDS_LIMIT: "Sell order amount exceeds limit",
4492
+ BUY_AMOUNT_EXCEEDS_USDC_LIMIT: "Buy amount exceeds USDC limit",
4493
+ SELL_AMOUNT_EXCEEDS_FIAT_LIMIT: "Sell amount exceeds fiat limit",
4494
+ DAILY_VOLUME_LIMIT_EXCEEDED: "Daily volume limit exceeded",
4495
+ MONTHLY_VOLUME_LIMIT_EXCEEDED: "Monthly volume limit exceeded",
4496
+ USER_YEARLY_VOLUME_LIMIT_EXCEEDED: "Yearly volume limit exceeded",
4497
+ // Dispute
4498
+ DISPUTE_TIME_NOT_REACHED: "Dispute can only be raised after 30 minutes of order placement",
4499
+ DISPUTE_TIME_EXPIRED: "Dispute can only be raised after 24 hours of order placement",
4500
+ INVALID_ORDER_STATUS_TO_RAISE_DISPUTE: "Invalid order status to raise dispute",
4501
+ DISPUTE_NOT_RAISED: "Dispute not raised",
4502
+ CANNOT_RAISE_DISPUTE_TWICE: "Cannot raise dispute twice",
4503
+ DISPUTE_ALREADY_SETTLED: "Dispute already settled",
4504
+ TRANSACTION_ID_MISMATCH: "Transaction ID does not match",
4505
+ ACCOUNT_NUMBER_MISMATCH: "Account number does not match",
4506
+ NOT_PAID_BUY_ORDER: "Not a paid buy order",
4507
+ // Payment channels
4508
+ PAYMENT_CHANNEL_NOT_FOUND: "Payment channel not found",
4509
+ PAYMENT_CHANNEL_NOT_ACTIVE: "Payment channel not active",
4510
+ PAYMENT_CHANNEL_NOT_APPROVED: "Payment channel not approved",
4511
+ PAYMENT_CHANNEL_NOT_REJECTED: "Payment channel has not been rejected",
4512
+ INVALID_PAYMENT_CHANNEL_ID: "Invalid payment channel ID",
4513
+ DUPLICATE_PAYMENT_CHANNEL: "Duplicate payment channel",
4514
+ OLD_PAYMENT_CHANNEL_NOT_FOUND: "Old payment channel not found",
4515
+ NEW_PAYMENT_CHANNEL_NOT_FOUND: "New payment channel not found",
4516
+ SAME_PAYMENT_CHANNEL: "Old and new payment channels are the same",
4517
+ OLD_PAYMENT_CHANNEL_SHOULD_BE_INACTIVE: "Old payment channel should be inactive",
4518
+ NEW_PAYMENT_CHANNEL_SHOULD_BE_ACTIVE: "New payment channel should be active",
4519
+ ONGOING_ORDER_ON_PAYMENT_CHANNEL: "There is an ongoing order on this payment channel",
4520
+ UPI_ALREADY_SENT: "Payment address already sent",
4521
+ INVALID_ORDER_UPI: "Invalid order payment address",
4522
+ NO_FIAT_LIQUIDITY: "No fiat liquidity on exchange to complete order",
4523
+ // Merchant
4524
+ NOT_ENOUGH_ELIGIBLE_MERCHANTS: "Not enough eligible merchants",
4525
+ MERCHANT_NOT_REGISTERED: "Merchant is not registered",
4526
+ MERCHANT_NOT_APPROVED: "Merchant is not approved",
4527
+ MERCHANT_ALREADY_REGISTERED: "Merchant already registered",
4528
+ MERCHANT_ALREADY_REJECTED: "Merchant already rejected",
4529
+ MERCHANT_BLACKLISTED: "Merchant blacklisted",
4530
+ MERCHANT_NOT_BLACKLISTED: "Merchant not blacklisted",
4531
+ MERCHANT_ALREADY_BLACKLISTED: "Merchant already blacklisted",
4532
+ MERCHANT_HAS_ONGOING_ORDERS: "Merchant has ongoing orders",
4533
+ MERCHANT_NOT_FULLFILLED_ELIGIBILITY_THRESHOLD: "Merchant has not fulfilled eligibility threshold",
4534
+ INVALID_MERCHANT: "Invalid merchant",
4535
+ // Staking / unstaking
4536
+ STAKE_AMOUNT_TOO_LOW: "Stake amount is too low",
4537
+ ADDITIONAL_STAKE_NOT_ALLOWED: "Additional stake is not allowed",
4538
+ UNSTAKE_REQUEST_PENDING: "Unstake request is already pending",
4539
+ UNSTAKE_REQUEST_NOT_PENDING: "No pending unstake request",
4540
+ UNSTAKE_AMOUNT_EXCEEDED: "Unstake amount exceeded",
4541
+ ZERO_UNSTAKE_AMOUNT: "Unstake amount cannot be zero",
4542
+ NO_WITHDRAWABLE_AMOUNT: "No withdrawable amount",
4543
+ NO_STAKE: "No stake found",
4544
+ NO_STAKERS: "No stakers found",
4545
+ INSUFFICIENT_STAKED_AMOUNT: "Insufficient staked amount",
4546
+ COOLDOWN_NOT_PASSED: "Cooldown period has not passed",
4547
+ CLAIMABLE_REWARDS_NOT_AVAILABLE: "No rewards to claim",
4548
+ // Delegation
4549
+ EXIT_WOULD_BREACH_DELEGATION_INVARIANT: "Exit would breach delegation invariant",
4550
+ AGGREGATE_DELEGATION_EXCEEDS_TOTAL_STAKED: "Aggregate delegation exceeds total staked",
4551
+ INSUFFICIENT_MERCHANT_REWARDS: "Insufficient merchant rewards",
4552
+ // Migration
4553
+ INVALID_MIGRATION_STATUS: "Invalid migration status",
4554
+ MIGRATION_REQUEST_NOT_PENDING: "No pending migration request",
4555
+ MIGRATION_ALREADY_REQUESTED: "Migration already requested",
4556
+ // Token / currency
4557
+ TOKEN_ALREADY_EXISTS: "Token already exists",
4558
+ TOKEN_NOT_FOUND: "Token not found",
4559
+ TOKEN_EMPTY: "Token is empty",
4560
+ CURRENCY_NOT_SUPPORTED: "Currency not supported",
4561
+ INVALID_CURRENCY: "Invalid currency",
4562
+ // USDC / transfer
4563
+ USDC_TRANSFER_FAILED: "USDC transfer failed",
4564
+ USDC_TRANSFER_FAILED_WITH_ERROR_MESSAGE: "USDC transfer failed with error message",
4565
+ USDC_TRANSFER_FAILED_WITH_PANIC: "USDC transfer failed with panic",
4566
+ INSUFFICIENT_ALLOWANCE: "Insufficient USDC allowance",
4567
+ // ZK Passport
4568
+ ZK_PASSPORT_VERIFIER_NOT_SET: "ZK Passport verifier not set",
4569
+ ZK_PASSPORT_DOMAIN_EMPTY: "ZK Passport domain is empty",
4570
+ ZK_PASSPORT_SCOPE_EMPTY: "ZK Passport scope is empty",
4571
+ PASSPORT_ALREADY_VERIFIED: "Passport already verified",
4572
+ ZK_PASSPORT_PROOF_INVALID: "ZK Passport proof is invalid",
4573
+ ZK_PASSPORT_IDENTIFIER_ALREADY_VERIFIED: "ZK Passport identifier already verified",
4574
+ ZK_PASSPORT_INVALID_SCOPE: "ZK Passport invalid scope",
4575
+ ZK_PASSPORT_UNEXPECTED_SENDER: "ZK Passport unexpected sender",
4576
+ ZK_PASSPORT_AGE_BELOW_MINIMUM: "ZK Passport age below minimum",
4577
+ ZK_PASSPORT_MIN_AGE_TOO_HIGH: "ZK Passport minimum age too high",
4578
+ // Chainlink / oracle
4579
+ UNEXPECTED_REQUEST_ID: "Unexpected request ID",
4580
+ ONLY_ROUTER_CAN_FULFILL: "Only the router can fulfill this request",
4581
+ REQUEST_FAILED: "Request failed",
4582
+ SOURCE_CODE_MISMATCH: "Source code mismatch",
4583
+ ZERO_MARKET_PRICE: "Market price cannot be zero",
4584
+ INVALID_COMPUTED_PRICES: "Invalid computed prices",
4585
+ NOT_PRICE_UPDATER_FOR_CURRENCY: "Not the price updater for this currency",
4586
+ THRESHOLD_NOT_CONFIGURED: "Threshold not configured",
4587
+ SLIPPAGE_EXCEEDED: "Slippage exceeded",
4588
+ // Reputation / verification
4589
+ USER_HAS_NO_REPUTATION: "Kindly do ZK social verifications and increase your limits to place more orders",
4590
+ ZERO_REPUTATION_POINTS: "Cannot place buy orders with 0 reputation points",
4591
+ NO_REPUTATION: "No reputation points",
4592
+ INSUFFICIENT_RP: "Insufficient reputation points",
4593
+ NULLIFIER_ALREADY_VERIFIED: "Nullifier already verified",
4594
+ VERIFICATION_FAILED: "Verification failed",
4595
+ INVALID_SOCIAL_PLATFORM: "Invalid social media platform",
4596
+ SOCIAL_ALREADY_VERIFIED: "Social already verified",
4597
+ YEAR_FIELD_NOT_IN_PROOF: "Year field not found in proof",
4598
+ USER_ID_FIELD_NOT_IN_PROOF: "User ID field not found in proof",
4599
+ USER_ID_ALREADY_VERIFIED: "The social media account's user ID is already verified",
4600
+ USERNAME_ALREADY_VERIFIED: "The social media account's username is already verified",
4601
+ USERNAME_NOT_IN_PROOF: "Username field not found in proof",
4602
+ LINKEDIN_ONLY_RP_UPDATES: "LinkedIn only supports RP updates",
4603
+ FACEBOOK_ONLY_RP_UPDATES: "Facebook only supports RP updates",
4604
+ // Voting / referral
4605
+ ALREADY_REFERRED: "Already referred",
4606
+ SELF_REFERRAL_NOT_ALLOWED: "Self referral not allowed",
4607
+ NOT_ELIGIBLE_TO_REFER: "Not eligible to refer",
4608
+ MERCHANT_MONTHLY_REFERRAL_LIMIT_REACHED: "Merchant monthly referral limit reached",
4609
+ NO_RECOMMENDER: "No recommender found",
4610
+ RECOMMENDATION_ALREADY_CLAIMED: "Recommendation already claimed",
4611
+ CANNOT_VOTE_YOURSELF: "Cannot vote yourself",
4612
+ VOTES_PER_EPOCH_EXCEEDED: "Votes per epoch exceeded",
4613
+ ALREADY_VOTED: "Already voted",
4614
+ FUNCTION_NOT_FOUND: "Function not found",
4615
+ // Campaign
4616
+ CAMPAIGN_NOT_ACTIVE: "Campaign is not active",
4617
+ INVALID_MANAGER_DETAILS: "Invalid manager details",
4618
+ UNCLAIMED_REWARDS_EXIST: "Unclaimed rewards exist",
4619
+ REWARD_ALREADY_CLAIMED: "Reward already claimed",
4620
+ ONLY_NEW_USERS_ALLOWED: "Only new users allowed",
4621
+ MANAGER_NOT_FOUND: "Manager not found",
4622
+ MANAGER_INACTIVE: "Manager is inactive",
4623
+ NO_REWARDS: "No rewards",
4624
+ INVALID_CAMPAIGN_ID: "Invalid campaign ID",
4625
+ CANNOT_CLAIM_REVENUE_FOR_CURRENT_MONTH: "Cannot claim revenue for the current month",
4626
+ // Referral reward config
4627
+ REWARD_PERCENTAGE_TOO_HIGH: "Reward percentage is too high",
4628
+ // Signature / nonce
4629
+ NONCE_ALREADY_USED: "Nonce already used",
4630
+ SIGNATURE_VALIDATION_FAILED: "Signature validation failed",
4631
+ // Misc
4632
+ INVALID_ADDRESS: "Invalid address",
4633
+ INVALID_BLOCK_AMOUNT: "Invalid block amount",
4634
+ INVALID_AMOUNT: "Invalid amount",
4635
+ INVALID_INPUT: "Invalid input",
4636
+ INVALID_STATUS_TRANSITION: "Invalid status transition",
4637
+ ARRAY_LENGTH_MISMATCH: "Array length mismatch",
4638
+ USER_IS_BLACKLISTED: "User is blacklisted",
4639
+ ZERO_ADDRESS: "Zero address",
4640
+ REENTRANCY_GUARD: "Reentrancy detected",
4641
+ BATCH_TOO_LARGE: "Batch size too large",
4642
+ UNDERFLOW_SUBTRACTION: "Cannot subtract more than balance",
4643
+ TARGET_LONGER_THAN_DATA: "Target is longer than data"
4644
+ };
4645
+ function getContractErrorMessage(code, fallback = "Something went wrong. Please try again.") {
4646
+ if (!code) return fallback;
4647
+ return contractErrorMessages[code] ?? fallback;
4648
+ }
4649
+
4650
+ // src/contracts/errors.ts
4651
+ var contractErrors = {
4652
+ // Access control
4653
+ NotAdmin: "NOT_ADMIN",
4654
+ NotSuperAdmin: "NOT_SUPER_ADMIN",
4655
+ NotAuthorized: "NOT_AUTHORIZED",
4656
+ NotSelf: "NOT_SELF",
4657
+ NotWhitelisted: "NOT_WHITELISTED",
4658
+ NotCircleAdmin: "NOT_CIRCLE_ADMIN",
4659
+ // Circle / community management
4660
+ InvalidName: "INVALID_NAME",
4661
+ InvalidCommunityUrl: "INVALID_COMMUNITY_URL",
4662
+ InvalidAdminCommunityUrl: "INVALID_ADMIN_COMMUNITY_URL",
4663
+ AdminAlreadyHasCircle: "ADMIN_ALREADY_HAS_CIRCLE",
4664
+ CircleNameAlreadyTaken: "CIRCLE_NAME_ALREADY_TAKEN",
4665
+ P2PStakeConfigNotSet: "P2P_STAKE_CONFIG_NOT_SET",
4666
+ InsufficientP2PStake: "INSUFFICIENT_P2P_STAKE",
4667
+ P2PTokenNotSet: "P2P_TOKEN_NOT_SET",
4668
+ P2PUnstakeRequestPending: "P2P_UNSTAKE_REQUEST_PENDING",
4669
+ NoP2PUnstakeRequest: "NO_P2P_UNSTAKE_REQUEST",
4670
+ P2PUnstakeCooldownNotPassed: "P2P_UNSTAKE_COOLDOWN_NOT_PASSED",
4671
+ SlashAmountExceedsStake: "SLASH_AMOUNT_EXCEEDS_STAKE",
4672
+ CircleNotActive: "CIRCLE_NOT_ACTIVE",
4673
+ InvalidCircleId: "INVALID_CIRCLE_ID",
4674
+ CurrencyMismatch: "CURRENCY_MISMATCH",
4675
+ CircleFull: "CIRCLE_FULL",
4676
+ CircleIdMismatch: "CIRCLE_ID_MISMATCH",
4677
+ DuplicateAccountName: "DUPLICATE_ACCOUNT_NAME",
4678
+ EmptyName: "EMPTY_NAME",
4679
+ AccountBoundToAnotherCircle: "ACCOUNT_BOUND_TO_ANOTHER_CIRCLE",
4680
+ ExitAmountExceededCircleBalance: "EXIT_AMOUNT_EXCEEDED_CIRCLE_BALANCE",
4681
+ UndelegationAmountTooHigh: "UNDELEGATION_AMOUNT_TOO_HIGH",
4682
+ // Exchange / order lifecycle
4683
+ ExchangeNotOperational: "EXCHANGE_NOT_OPERATIONAL",
4684
+ OrderNotPlaced: "ORDER_NOT_PLACED",
4685
+ OrderNotPaid: "ORDER_NOT_PAID",
4686
+ OrderStatusInvalid: "ORDER_STATUS_INVALID",
4687
+ OrderExpired: "ORDER_EXPIRED",
4688
+ OrderAlreadyPaid: "ORDER_ALREADY_PAID",
4689
+ OrderAlreadyCompleted: "ORDER_ALREADY_COMPLETED",
4690
+ InvalidOrderType: "INVALID_ORDER_TYPE",
4691
+ OrderTypeIncorrect: "ORDER_TYPE_INCORRECT",
4692
+ OrderNotAccepted: "ORDER_NOT_ACCEPTED",
4693
+ OrderNotAssigned: "ORDER_NOT_ASSIGNED",
4694
+ OrderAmountExceedsLimit: "ORDER_AMOUNT_EXCEEDS_LIMIT",
4695
+ InvalidOrderAmount: "INVALID_ORDER_AMOUNT",
4696
+ InvalidOrderAmountToCoverFee: "INVALID_ORDER_AMOUNT_TO_COVER_FEE",
4697
+ InvalidOrderId: "INVALID_ORDER_ID",
4698
+ OrderTooEarlyForReassignment: "ORDER_TOO_EARLY_FOR_REASSIGNMENT",
4699
+ OrderTooLateForReassignment: "ORDER_TOO_LATE_FOR_REASSIGNMENT",
4700
+ ReAssignmentNotRequired: "REASSIGNMENT_NOT_REQUIRED",
4701
+ TipAlreadyGiven: "TIP_ALREADY_GIVEN",
4702
+ CashbackTransferFailed: "CASHBACK_TRANSFER_FAILED",
4703
+ // Order limits
4704
+ DailyBuyOrderLimitExceeded: "DAILY_BUY_ORDER_LIMIT_EXCEEDED",
4705
+ MonthlyBuyOrderLimitExceeded: "MONTHLY_BUY_ORDER_LIMIT_EXCEEDED",
4706
+ SellOrderAmountLimitExceeded: "SELL_ORDER_AMOUNT_LIMIT_EXCEEDED",
4707
+ BuyOrderAmountExceedsLimit: "BUY_ORDER_AMOUNT_EXCEEDS_LIMIT",
4708
+ SellOrderAmountExceedsLimit: "SELL_ORDER_AMOUNT_EXCEEDS_LIMIT",
4709
+ BuyAmountExceedsUsdcLimit: "BUY_AMOUNT_EXCEEDS_USDC_LIMIT",
4710
+ SellAmountExceedsFiatLimit: "SELL_AMOUNT_EXCEEDS_FIAT_LIMIT",
4711
+ DailyVolumeLimitExceeded: "DAILY_VOLUME_LIMIT_EXCEEDED",
4712
+ MonthlyVolumeLimitExceeded: "MONTHLY_VOLUME_LIMIT_EXCEEDED",
4713
+ UserYearlyVolumeLimitExceeded: "USER_YEARLY_VOLUME_LIMIT_EXCEEDED",
4714
+ // Dispute
4715
+ DisputeTimeNotReached: "DISPUTE_TIME_NOT_REACHED",
4716
+ DisputeTimeExpired: "DISPUTE_TIME_EXPIRED",
4717
+ InvalidOrderStatusToRaiseDispute: "INVALID_ORDER_STATUS_TO_RAISE_DISPUTE",
4718
+ DisputeNotRaised: "DISPUTE_NOT_RAISED",
4719
+ CannotRaiseDisputeTwice: "CANNOT_RAISE_DISPUTE_TWICE",
4720
+ DisputeAlreadySettled: "DISPUTE_ALREADY_SETTLED",
4721
+ TransactionIdMismatch: "TRANSACTION_ID_MISMATCH",
4722
+ AccountNumberMismatch: "ACCOUNT_NUMBER_MISMATCH",
4723
+ NotPaidBuyOrder: "NOT_PAID_BUY_ORDER",
4724
+ // Payment channels
4725
+ PaymentChannelNotFound: "PAYMENT_CHANNEL_NOT_FOUND",
4726
+ PaymentChannelNotActive: "PAYMENT_CHANNEL_NOT_ACTIVE",
4727
+ PaymentChannelNotApproved: "PAYMENT_CHANNEL_NOT_APPROVED",
4728
+ PaymentChannelNotRejected: "PAYMENT_CHANNEL_NOT_REJECTED",
4729
+ InvalidPaymentChannelId: "INVALID_PAYMENT_CHANNEL_ID",
4730
+ DuplicatePaymentChannel: "DUPLICATE_PAYMENT_CHANNEL",
4731
+ OldPaymentChannelNotFound: "OLD_PAYMENT_CHANNEL_NOT_FOUND",
4732
+ NewPaymentChannelNotFound: "NEW_PAYMENT_CHANNEL_NOT_FOUND",
4733
+ SamePaymentChannel: "SAME_PAYMENT_CHANNEL",
4734
+ OldPaymentChannelShouldBeInactive: "OLD_PAYMENT_CHANNEL_SHOULD_BE_INACTIVE",
4735
+ NewPaymentChannelShouldBeActive: "NEW_PAYMENT_CHANNEL_SHOULD_BE_ACTIVE",
4736
+ OngoingOrderOnPaymentChannel: "ONGOING_ORDER_ON_PAYMENT_CHANNEL",
4737
+ UpiAlreadySent: "UPI_ALREADY_SENT",
4738
+ InvalidOrderUpi: "INVALID_ORDER_UPI",
4739
+ NoFiatLiquidity: "NO_FIAT_LIQUIDITY",
4740
+ // Merchant
4741
+ NotEnoughEligibleMerchants: "NOT_ENOUGH_ELIGIBLE_MERCHANTS",
4742
+ MerchantNotRegistered: "MERCHANT_NOT_REGISTERED",
4743
+ MerchantNotApproved: "MERCHANT_NOT_APPROVED",
4744
+ MerchantAlreadyRegistered: "MERCHANT_ALREADY_REGISTERED",
4745
+ MerchantAlreadyRejected: "MERCHANT_ALREADY_REJECTED",
4746
+ MerchantBlacklisted: "MERCHANT_BLACKLISTED",
4747
+ MerchantNotBlacklisted: "MERCHANT_NOT_BLACKLISTED",
4748
+ MerchantAlreadyBlacklisted: "MERCHANT_ALREADY_BLACKLISTED",
4749
+ MerchantHasOngoingOrders: "MERCHANT_HAS_ONGOING_ORDERS",
4750
+ MerchantNotFullfilledEligibilityThreshold: "MERCHANT_NOT_FULLFILLED_ELIGIBILITY_THRESHOLD",
4751
+ InvalidMerchant: "INVALID_MERCHANT",
4752
+ // Staking / unstaking
4753
+ StakeAmountTooLow: "STAKE_AMOUNT_TOO_LOW",
4754
+ AdditionalStakeNotAllowed: "ADDITIONAL_STAKE_NOT_ALLOWED",
4755
+ UnstakeRequestPending: "UNSTAKE_REQUEST_PENDING",
4756
+ UnstakeRequestNotPending: "UNSTAKE_REQUEST_NOT_PENDING",
4757
+ UnstakeAmountExceeded: "UNSTAKE_AMOUNT_EXCEEDED",
4758
+ ZeroUnstakeAmount: "ZERO_UNSTAKE_AMOUNT",
4759
+ NoWithdrawableAmount: "NO_WITHDRAWABLE_AMOUNT",
4760
+ NoStake: "NO_STAKE",
4761
+ NoStakers: "NO_STAKERS",
4762
+ InsufficientStakedAmount: "INSUFFICIENT_STAKED_AMOUNT",
4763
+ CooldownNotPassed: "COOLDOWN_NOT_PASSED",
4764
+ ClaimableRewardsNotAvailable: "CLAIMABLE_REWARDS_NOT_AVAILABLE",
4765
+ // Delegation
4766
+ ExitWouldBreachDelegationInvariant: "EXIT_WOULD_BREACH_DELEGATION_INVARIANT",
4767
+ AggregateDelegationExceedsTotalStaked: "AGGREGATE_DELEGATION_EXCEEDS_TOTAL_STAKED",
4768
+ InsufficientMerchantRewards: "INSUFFICIENT_MERCHANT_REWARDS",
4769
+ // Migration
4770
+ InvalidMigrationStatus: "INVALID_MIGRATION_STATUS",
4771
+ MigrationRequestNotPending: "MIGRATION_REQUEST_NOT_PENDING",
4772
+ MigrationAlreadyRequested: "MIGRATION_ALREADY_REQUESTED",
4773
+ // Token / currency
4774
+ TokenAlreadyExists: "TOKEN_ALREADY_EXISTS",
4775
+ TokenNotFound: "TOKEN_NOT_FOUND",
4776
+ TokenEmpty: "TOKEN_EMPTY",
4777
+ CurrencyNotSupported: "CURRENCY_NOT_SUPPORTED",
4778
+ InvalidCurrency: "INVALID_CURRENCY",
4779
+ // USDC / transfer
4780
+ UsdtTransferFailed: "USDC_TRANSFER_FAILED",
4781
+ UsdtTransferFailedWithErrorMessage: "USDC_TRANSFER_FAILED_WITH_ERROR_MESSAGE",
4782
+ UsdtTransferFailedWithPanic: "USDC_TRANSFER_FAILED_WITH_PANIC",
4783
+ InsufficientAllowance: "INSUFFICIENT_ALLOWANCE",
4784
+ // ZK Passport
4785
+ ZKPassportVerifierNotSet: "ZK_PASSPORT_VERIFIER_NOT_SET",
4786
+ ZKPassportDomainEmpty: "ZK_PASSPORT_DOMAIN_EMPTY",
4787
+ ZKPassportScopeEmpty: "ZK_PASSPORT_SCOPE_EMPTY",
4788
+ PassportAlreadyVerified: "PASSPORT_ALREADY_VERIFIED",
4789
+ ZKPassportProofInvalid: "ZK_PASSPORT_PROOF_INVALID",
4790
+ ZKPassportIdentifierAlreadyVerified: "ZK_PASSPORT_IDENTIFIER_ALREADY_VERIFIED",
4791
+ ZKPassportInvalidScope: "ZK_PASSPORT_INVALID_SCOPE",
4792
+ ZKPassportUnexpectedSender: "ZK_PASSPORT_UNEXPECTED_SENDER",
4793
+ ZKPassportAgeBelowMinimum: "ZK_PASSPORT_AGE_BELOW_MINIMUM",
4794
+ ZKPassportMinAgeTooHigh: "ZK_PASSPORT_MIN_AGE_TOO_HIGH",
4795
+ // Chainlink / oracle
4796
+ UnexpectedRequestId: "UNEXPECTED_REQUEST_ID",
4797
+ OnlyRouterCanFulfill: "ONLY_ROUTER_CAN_FULFILL",
4798
+ RequestFailed: "REQUEST_FAILED",
4799
+ SourceCodeMismatch: "SOURCE_CODE_MISMATCH",
4800
+ ZeroMarketPrice: "ZERO_MARKET_PRICE",
4801
+ InvalidComputedPrices: "INVALID_COMPUTED_PRICES",
4802
+ NotPriceUpdaterForCurrency: "NOT_PRICE_UPDATER_FOR_CURRENCY",
4803
+ ThresholdNotConfigured: "THRESHOLD_NOT_CONFIGURED",
4804
+ SlippageExceeded: "SLIPPAGE_EXCEEDED",
4805
+ // Reputation / verification
4806
+ UserHasNoReputation: "USER_HAS_NO_REPUTATION",
4807
+ ZeroReputationPoints: "ZERO_REPUTATION_POINTS",
4808
+ NoReputation: "NO_REPUTATION",
4809
+ InsufficientRP: "INSUFFICIENT_RP",
4810
+ NullifierAlreadyVerified: "NULLIFIER_ALREADY_VERIFIED",
4811
+ VerificationFailed: "VERIFICATION_FAILED",
4812
+ InvalidSocialPlatform: "INVALID_SOCIAL_PLATFORM",
4813
+ SocialAlreadyVerified: "SOCIAL_ALREADY_VERIFIED",
4814
+ YearFieldNotInProof: "YEAR_FIELD_NOT_IN_PROOF",
4815
+ UserIdFieldNotInProof: "USER_ID_FIELD_NOT_IN_PROOF",
4816
+ UserIdAlreadyVerified: "USER_ID_ALREADY_VERIFIED",
4817
+ UsernameAlreadyVerified: "USERNAME_ALREADY_VERIFIED",
4818
+ UsernameNotInProof: "USERNAME_NOT_IN_PROOF",
4819
+ LinkedInOnlyRpUpdates: "LINKEDIN_ONLY_RP_UPDATES",
4820
+ FacebookOnlyRpUpdates: "FACEBOOK_ONLY_RP_UPDATES",
4821
+ // Voting / referral
4822
+ AlreadyReferred: "ALREADY_REFERRED",
4823
+ SelfReferralNotAllowed: "SELF_REFERRAL_NOT_ALLOWED",
4824
+ NotEligibleToRefer: "NOT_ELIGIBLE_TO_REFER",
4825
+ MerchantMonthlyReferralLimitReached: "MERCHANT_MONTHLY_REFERRAL_LIMIT_REACHED",
4826
+ NoRecommender: "NO_RECOMMENDER",
4827
+ RecommendationAlreadyClaimed: "RECOMMENDATION_ALREADY_CLAIMED",
4828
+ CannotVoteYourself: "CANNOT_VOTE_YOURSELF",
4829
+ VotesPerEpochExceeded: "VOTES_PER_EPOCH_EXCEEDED",
4830
+ AlreadyVoted: "ALREADY_VOTED",
4831
+ FunctionNotFound: "FUNCTION_NOT_FOUND",
4832
+ // Campaign
4833
+ CampaignNotActive: "CAMPAIGN_NOT_ACTIVE",
4834
+ InvalidManagerDetails: "INVALID_MANAGER_DETAILS",
4835
+ UnclaimedRewardsExist: "UNCLAIMED_REWARDS_EXIST",
4836
+ RewardAlreadyClaimed: "REWARD_ALREADY_CLAIMED",
4837
+ OnlyNewUsersAllowed: "ONLY_NEW_USERS_ALLOWED",
4838
+ ManagerNotFound: "MANAGER_NOT_FOUND",
4839
+ ManagerInactive: "MANAGER_INACTIVE",
4840
+ NoRewards: "NO_REWARDS",
4841
+ InvalidCampaignId: "INVALID_CAMPAIGN_ID",
4842
+ CannotClaimRevenueForCurrentMonth: "CANNOT_CLAIM_REVENUE_FOR_CURRENT_MONTH",
4843
+ // Referral reward config
4844
+ RewardPercentageTooHigh: "REWARD_PERCENTAGE_TOO_HIGH",
4845
+ // Signature / nonce
4846
+ NonceAlreadyUsed: "NONCE_ALREADY_USED",
4847
+ SignatureValidationFailed: "SIGNATURE_VALIDATION_FAILED",
4848
+ // Misc
4849
+ InvalidAddress: "INVALID_ADDRESS",
4850
+ InvalidBlockAmount: "INVALID_BLOCK_AMOUNT",
4851
+ InvalidAmount: "INVALID_AMOUNT",
4852
+ InvalidInput: "INVALID_INPUT",
4853
+ InvalidStatusTransition: "INVALID_STATUS_TRANSITION",
4854
+ ArrayLengthMismatch: "ARRAY_LENGTH_MISMATCH",
4855
+ UserIsBlacklisted: "USER_IS_BLACKLISTED",
4856
+ ZeroAddress: "ZERO_ADDRESS",
4857
+ ReentrancyGuard: "REENTRANCY_GUARD",
4858
+ BatchTooLarge: "BATCH_TOO_LARGE",
4859
+ UnderflowSubtraction: "UNDERFLOW_SUBTRACTION",
4860
+ TargetLongerThanData: "TARGET_LONGER_THAN_DATA"
4861
+ };
4862
+ var hexContractErrors = {
4863
+ // Access control
4864
+ "0x7bfa4b9f": contractErrors.NotAdmin,
4865
+ "0x16c726b1": contractErrors.NotSuperAdmin,
4866
+ "0xea8e4eb5": contractErrors.NotAuthorized,
4867
+ "0x29c3b7ee": contractErrors.NotSelf,
4868
+ "0x584a7938": contractErrors.NotWhitelisted,
4869
+ "0xa8143fbc": contractErrors.NotCircleAdmin,
4870
+ // Circle / community management
4871
+ "0x430f13b3": contractErrors.InvalidName,
4872
+ "0xe7cbf75a": contractErrors.InvalidCommunityUrl,
4873
+ "0x3762bfee": contractErrors.InvalidAdminCommunityUrl,
4874
+ "0x201c1ffc": contractErrors.AdminAlreadyHasCircle,
4875
+ "0x6540a51d": contractErrors.CircleNameAlreadyTaken,
4876
+ "0xcadc6786": contractErrors.P2PStakeConfigNotSet,
4877
+ "0x78317f44": contractErrors.InsufficientP2PStake,
4878
+ "0x18eda032": contractErrors.P2PTokenNotSet,
4879
+ "0xdab11ea6": contractErrors.P2PUnstakeRequestPending,
4880
+ "0xeb1ce40b": contractErrors.NoP2PUnstakeRequest,
4881
+ "0xbf2d0ba1": contractErrors.P2PUnstakeCooldownNotPassed,
4882
+ "0x06b663af": contractErrors.SlashAmountExceedsStake,
4883
+ "0xff9b022c": contractErrors.CircleNotActive,
4884
+ "0x3d90c0a6": contractErrors.InvalidCircleId,
4885
+ "0xfb42a67d": contractErrors.CurrencyMismatch,
4886
+ "0xf2775265": contractErrors.CircleFull,
4887
+ "0x784b6c3c": contractErrors.CircleIdMismatch,
4888
+ "0xee240e49": contractErrors.DuplicateAccountName,
4889
+ "0x2ef13105": contractErrors.EmptyName,
4890
+ "0x1b5433c8": contractErrors.AccountBoundToAnotherCircle,
4891
+ "0x549e2555": contractErrors.ExitAmountExceededCircleBalance,
4892
+ "0x865b21e1": contractErrors.UndelegationAmountTooHigh,
4893
+ // Exchange / order lifecycle
4894
+ "0x4bbac5de": contractErrors.ExchangeNotOperational,
4895
+ "0x58db8ed6": contractErrors.OrderNotPlaced,
4896
+ "0x1e3b9629": contractErrors.OrderNotPaid,
4897
+ "0x181b1b2e": contractErrors.OrderStatusInvalid,
4898
+ "0xc56873ba": contractErrors.OrderExpired,
4899
+ "0x7f61b868": contractErrors.OrderAlreadyPaid,
4900
+ "0x03683687": contractErrors.OrderAlreadyCompleted,
4901
+ "0x688c176f": contractErrors.InvalidOrderType,
4902
+ "0x2e757a60": contractErrors.OrderTypeIncorrect,
4903
+ "0x6b1b90b4": contractErrors.OrderNotAccepted,
4904
+ "0x1775c43e": contractErrors.OrderNotAssigned,
4905
+ "0xf42e41a1": contractErrors.OrderAmountExceedsLimit,
4906
+ "0x93845d68": contractErrors.InvalidOrderAmount,
4907
+ "0x138b9d5a": contractErrors.InvalidOrderAmountToCoverFee,
4908
+ "0x5d706033": contractErrors.InvalidOrderId,
4909
+ "0xbb776720": contractErrors.OrderTooEarlyForReassignment,
4910
+ "0x20d5910f": contractErrors.OrderTooLateForReassignment,
4911
+ "0xccd87bf0": contractErrors.ReAssignmentNotRequired,
4912
+ "0xb20277f8": contractErrors.TipAlreadyGiven,
4913
+ "0xdf9f707c": contractErrors.CashbackTransferFailed,
4914
+ // Order limits
4915
+ "0xe595a7bf": contractErrors.DailyBuyOrderLimitExceeded,
4916
+ "0x675dbc86": contractErrors.MonthlyBuyOrderLimitExceeded,
4917
+ "0x64301cb8": contractErrors.SellOrderAmountLimitExceeded,
4918
+ "0x91da284f": contractErrors.BuyOrderAmountExceedsLimit,
4919
+ "0xb407b9ec": contractErrors.SellOrderAmountExceedsLimit,
4920
+ "0x4b29cf0a": contractErrors.BuyAmountExceedsUsdcLimit,
4921
+ "0xbba2edf9": contractErrors.SellAmountExceedsFiatLimit,
4922
+ "0x7e2ee654": contractErrors.DailyVolumeLimitExceeded,
4923
+ "0x49de1789": contractErrors.MonthlyVolumeLimitExceeded,
4924
+ "0xb14a1ff3": contractErrors.UserYearlyVolumeLimitExceeded,
4925
+ // Dispute
4926
+ "0x07a2454f": contractErrors.DisputeTimeNotReached,
4927
+ "0xb28c3e29": contractErrors.DisputeTimeExpired,
4928
+ "0x2a829f07": contractErrors.InvalidOrderStatusToRaiseDispute,
4929
+ "0x88d039ce": contractErrors.DisputeNotRaised,
4930
+ "0x3764a75c": contractErrors.CannotRaiseDisputeTwice,
4931
+ "0x866e9f89": contractErrors.DisputeAlreadySettled,
4932
+ "0x6131d13d": contractErrors.TransactionIdMismatch,
4933
+ "0x8ec051b8": contractErrors.AccountNumberMismatch,
4934
+ "0xf8bfad32": contractErrors.NotPaidBuyOrder,
4935
+ // Payment channels
4936
+ "0x552ff5ec": contractErrors.PaymentChannelNotFound,
4937
+ "0xfccd93cf": contractErrors.PaymentChannelNotActive,
4938
+ "0x6764f4d6": contractErrors.PaymentChannelNotApproved,
4939
+ "0xab284291": contractErrors.PaymentChannelNotRejected,
4940
+ "0x99c8ef4d": contractErrors.InvalidPaymentChannelId,
4941
+ "0x0569ab3e": contractErrors.DuplicatePaymentChannel,
4942
+ "0xff4f83ca": contractErrors.OldPaymentChannelNotFound,
4943
+ "0xb1198199": contractErrors.NewPaymentChannelNotFound,
4944
+ "0xc905b99a": contractErrors.SamePaymentChannel,
4945
+ "0xcedb41f1": contractErrors.OldPaymentChannelShouldBeInactive,
4946
+ "0x487add97": contractErrors.NewPaymentChannelShouldBeActive,
4947
+ "0x6d4c3f9e": contractErrors.OngoingOrderOnPaymentChannel,
4948
+ "0xc1654697": contractErrors.UpiAlreadySent,
4949
+ "0xaa60ec26": contractErrors.InvalidOrderUpi,
4950
+ "0x81c2b982": contractErrors.NoFiatLiquidity,
4951
+ // Merchant
4952
+ "0x5d04ff4c": contractErrors.NotEnoughEligibleMerchants,
4953
+ "0xa6af7ebe": contractErrors.MerchantNotRegistered,
4954
+ "0x7290a612": contractErrors.MerchantNotApproved,
4955
+ "0xf4a1e014": contractErrors.MerchantAlreadyRegistered,
4956
+ "0x8713aaba": contractErrors.MerchantAlreadyRejected,
4957
+ "0x9ae55bc7": contractErrors.MerchantBlacklisted,
4958
+ "0x0ee0b659": contractErrors.MerchantNotBlacklisted,
4959
+ "0x5f765689": contractErrors.MerchantAlreadyBlacklisted,
4960
+ "0x9c54e5a8": contractErrors.MerchantHasOngoingOrders,
4961
+ "0x70d753bd": contractErrors.MerchantNotFullfilledEligibilityThreshold,
4962
+ "0xc0b6c919": contractErrors.InvalidMerchant,
4963
+ // Staking / unstaking
4964
+ "0x3fd2347e": contractErrors.StakeAmountTooLow,
4965
+ "0x703cde0a": contractErrors.AdditionalStakeNotAllowed,
4966
+ "0xa9de99ae": contractErrors.UnstakeRequestPending,
4967
+ "0x0b7c70f3": contractErrors.UnstakeRequestNotPending,
4968
+ "0xe665491f": contractErrors.UnstakeAmountExceeded,
4969
+ "0x2d3087f9": contractErrors.ZeroUnstakeAmount,
4970
+ "0x1b1d7861": contractErrors.NoWithdrawableAmount,
4971
+ "0xcacf989a": contractErrors.NoStake,
4972
+ "0x21311aa3": contractErrors.NoStakers,
4973
+ "0xd06ff88e": contractErrors.InsufficientStakedAmount,
4974
+ "0x9ab7872d": contractErrors.CooldownNotPassed,
4975
+ "0x73380d99": contractErrors.ClaimableRewardsNotAvailable,
4976
+ // Delegation
4977
+ "0xec4b3ce6": contractErrors.ExitWouldBreachDelegationInvariant,
4978
+ "0x8f90a426": contractErrors.AggregateDelegationExceedsTotalStaked,
4979
+ "0x2cc11576": contractErrors.InsufficientMerchantRewards,
4980
+ // Migration
4981
+ "0x92aa7d0f": contractErrors.InvalidMigrationStatus,
4982
+ "0x7ff47425": contractErrors.MigrationRequestNotPending,
4983
+ "0x88ddec46": contractErrors.MigrationAlreadyRequested,
4984
+ // Token / currency
4985
+ "0xc991cbb1": contractErrors.TokenAlreadyExists,
4986
+ "0xcbdb7b30": contractErrors.TokenNotFound,
4987
+ "0x9f11a53f": contractErrors.TokenEmpty,
4988
+ "0x02a6fdd2": contractErrors.CurrencyNotSupported,
4989
+ "0xf5993428": contractErrors.InvalidCurrency,
4990
+ // USDC / transfer
4991
+ "0x149f9fca": contractErrors.UsdtTransferFailed,
4992
+ "0x47bfece5": contractErrors.UsdtTransferFailedWithErrorMessage,
4993
+ "0x279bbc0c": contractErrors.UsdtTransferFailedWithPanic,
4994
+ "0xfb8f41b2": contractErrors.InsufficientAllowance,
4995
+ // ZK Passport
4996
+ "0xfd8d4a6d": contractErrors.ZKPassportVerifierNotSet,
4997
+ "0xb87078f9": contractErrors.ZKPassportDomainEmpty,
4998
+ "0x5eadc4c2": contractErrors.ZKPassportScopeEmpty,
4999
+ "0x7642fe15": contractErrors.PassportAlreadyVerified,
5000
+ "0x1fa24b35": contractErrors.ZKPassportProofInvalid,
5001
+ "0x36bdb7b6": contractErrors.ZKPassportIdentifierAlreadyVerified,
5002
+ "0xd13a7934": contractErrors.ZKPassportInvalidScope,
5003
+ "0x69f5bfe7": contractErrors.ZKPassportUnexpectedSender,
5004
+ "0x0464115c": contractErrors.ZKPassportAgeBelowMinimum,
5005
+ "0x48183836": contractErrors.ZKPassportMinAgeTooHigh,
5006
+ // Chainlink / oracle
5007
+ "0x7f73f237": contractErrors.UnexpectedRequestId,
5008
+ "0xab948796": contractErrors.OnlyRouterCanFulfill,
5009
+ "0x61982c98": contractErrors.RequestFailed,
5010
+ "0xab66be18": contractErrors.SourceCodeMismatch,
5011
+ "0xff2826ef": contractErrors.ZeroMarketPrice,
5012
+ "0xbb6c216c": contractErrors.InvalidComputedPrices,
5013
+ "0x3a8fbef4": contractErrors.NotPriceUpdaterForCurrency,
5014
+ "0x3e2c36f2": contractErrors.ThresholdNotConfigured,
5015
+ "0x71c4efed": contractErrors.SlippageExceeded,
5016
+ // Reputation / verification
5017
+ "0x071ea33c": contractErrors.UserHasNoReputation,
5018
+ "0xd2e1e6e0": contractErrors.ZeroReputationPoints,
5019
+ "0x3c0ca622": contractErrors.NoReputation,
5020
+ "0x412dd2b1": contractErrors.InsufficientRP,
5021
+ "0x0f165e7b": contractErrors.NullifierAlreadyVerified,
5022
+ "0x439cc0cd": contractErrors.VerificationFailed,
5023
+ "0x2366073b": contractErrors.InvalidSocialPlatform,
5024
+ "0x2f850b6b": contractErrors.SocialAlreadyVerified,
5025
+ "0x466f52a8": contractErrors.YearFieldNotInProof,
5026
+ "0x4d460588": contractErrors.UserIdFieldNotInProof,
5027
+ "0xa18ea4e8": contractErrors.UserIdAlreadyVerified,
5028
+ "0x69470b13": contractErrors.UsernameAlreadyVerified,
5029
+ "0x8390b2dd": contractErrors.UsernameNotInProof,
5030
+ "0xef053cf4": contractErrors.LinkedInOnlyRpUpdates,
5031
+ "0x355b0709": contractErrors.FacebookOnlyRpUpdates,
5032
+ // Voting / referral
5033
+ "0x7aabdfe3": contractErrors.AlreadyReferred,
5034
+ "0x83463f4a": contractErrors.SelfReferralNotAllowed,
5035
+ "0x69f6994a": contractErrors.NotEligibleToRefer,
5036
+ "0x1b19ad97": contractErrors.MerchantMonthlyReferralLimitReached,
5037
+ "0x944a2241": contractErrors.NoRecommender,
5038
+ "0x0ece93a6": contractErrors.RecommendationAlreadyClaimed,
5039
+ "0x74785d0f": contractErrors.CannotVoteYourself,
5040
+ "0xc26d5f75": contractErrors.VotesPerEpochExceeded,
5041
+ "0x7c9a1cf9": contractErrors.AlreadyVoted,
5042
+ "0x403e7fa6": contractErrors.FunctionNotFound,
5043
+ // Campaign
5044
+ "0x7a551e38": contractErrors.CampaignNotActive,
5045
+ "0x668ca75d": contractErrors.InvalidManagerDetails,
5046
+ "0x2f950361": contractErrors.UnclaimedRewardsExist,
5047
+ "0x626b7c00": contractErrors.RewardAlreadyClaimed,
5048
+ "0x902ade67": contractErrors.OnlyNewUsersAllowed,
5049
+ "0x22a5e34b": contractErrors.ManagerNotFound,
5050
+ "0xa1610e37": contractErrors.ManagerInactive,
5051
+ "0x3fb087f4": contractErrors.NoRewards,
5052
+ "0x3eedee0f": contractErrors.InvalidCampaignId,
5053
+ "0x302c5138": contractErrors.CannotClaimRevenueForCurrentMonth,
5054
+ // Referral reward config
5055
+ "0x074a6991": contractErrors.RewardPercentageTooHigh,
5056
+ // Signature / nonce
5057
+ "0x1fb09b80": contractErrors.NonceAlreadyUsed,
5058
+ "0x2fdec18b": contractErrors.SignatureValidationFailed,
5059
+ // Misc
5060
+ "0xe6c4247b": contractErrors.InvalidAddress,
5061
+ "0x3eb17c88": contractErrors.InvalidBlockAmount,
5062
+ "0x2c5211c6": contractErrors.InvalidAmount,
5063
+ "0xb4fa3fb3": contractErrors.InvalidInput,
5064
+ "0x1117a646": contractErrors.InvalidStatusTransition,
5065
+ "0xa24a13a6": contractErrors.ArrayLengthMismatch,
5066
+ "0xebb6f34b": contractErrors.UserIsBlacklisted,
5067
+ "0xd92e233d": contractErrors.ZeroAddress,
5068
+ "0x8beb9d16": contractErrors.ReentrancyGuard,
5069
+ "0xbb1cb70b": contractErrors.BatchTooLarge,
5070
+ "0xd97cf1ba": contractErrors.UnderflowSubtraction,
5071
+ "0xc9b16952": contractErrors.TargetLongerThanData
5072
+ };
5073
+ function parseContractError(error) {
5074
+ if (!error) return null;
5075
+ if (typeof error === "string") {
5076
+ const direct = hexContractErrors[error];
5077
+ if (direct) return direct;
5078
+ const hexMatch = error.match(/0x[a-fA-F0-9]{8}/);
5079
+ if (hexMatch) return hexContractErrors[hexMatch[0]] ?? null;
5080
+ return null;
5081
+ }
5082
+ if (typeof error === "object") {
5083
+ const e = error;
5084
+ if (e.data) {
5085
+ const hexCode = typeof e.data === "string" ? e.data : e.data.data;
5086
+ if (hexCode) {
5087
+ const match = hexContractErrors[hexCode];
5088
+ if (match) return match;
5089
+ }
5090
+ }
5091
+ if (typeof e.message === "string") {
5092
+ const hexMatch = e.message.match(/0x[a-fA-F0-9]{8}/);
5093
+ if (hexMatch) {
5094
+ const match = hexContractErrors[hexMatch[0]];
5095
+ if (match) return match;
5096
+ }
5097
+ const jsonMatch = e.message.match(/\{[\s\S]*\}/);
5098
+ if (jsonMatch) {
5099
+ try {
5100
+ const parsed = JSON.parse(jsonMatch[0]);
5101
+ const embedded = parseContractError(parsed);
5102
+ if (embedded) return embedded;
5103
+ } catch {
5104
+ }
5105
+ }
5106
+ }
5107
+ if (e.cause) return parseContractError(e.cause);
5108
+ }
5109
+ return null;
5110
+ }
5111
+
4428
5112
  // src/contracts/order-flow/index.ts
4429
5113
  var import_neverthrow7 = require("neverthrow");
4430
5114
 
@@ -5246,12 +5930,17 @@ function createOrders(config) {
5246
5930
  OrdersError,
5247
5931
  cipherParse,
5248
5932
  cipherStringify,
5933
+ contractErrorMessages,
5934
+ contractErrors,
5249
5935
  createInMemoryRelayStore,
5250
5936
  createLocalStorageRelayStore,
5251
5937
  createOrders,
5252
5938
  createRelayIdentity,
5253
5939
  decryptPaymentAddress,
5254
- encryptPaymentAddress
5940
+ encryptPaymentAddress,
5941
+ getContractErrorMessage,
5942
+ hexContractErrors,
5943
+ parseContractError
5255
5944
  });
5256
5945
  /*! Bundled license information:
5257
5946