@cashie/core-lib 1.2.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var le=Object.defineProperty;var At=Object.getOwnPropertyDescriptor;var wt=Object.getOwnPropertyNames;var St=Object.prototype.hasOwnProperty;var _t=(e,t)=>{for(var n in t)le(e,n,{get:t[n],enumerable:!0})},Et=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of wt(t))!St.call(e,a)&&a!==n&&le(e,a,{get:()=>t[a],enumerable:!(r=At(t,a))||r.enumerable});return e};var Mt=e=>Et(le({},"__esModule",{value:!0}),e);var jn={};_t(jn,{ACCOUNT_STATEMENT_RECEIPT_KINDS:()=>Bn,BurnAuth:()=>h,CASHIE_ACCOUNT_TYPE_LABELS:()=>Yn,CASHIE_IDENTITY_SOUL_CONTRACT_ABI:()=>En,CASHIE_IDENTITY_SOUL_EIP712_NAME:()=>Te,CASHIE_IDENTITY_SOUL_EIP712_VERSION:()=>Ie,CASHIE_JSON_DATA_URI_BASE64_PREFIX:()=>U,CASHIE_PAYMENT_RECORD_BADGE_CONTRACT_ABI:()=>Cn,CASHIE_PAYMENT_RECORD_BADGE_METADATA_FORMAT:()=>F,CASHIE_RECEIPT_BADGE_CONTRACT_ABI:()=>Mn,CASHIE_RECEIPT_BADGE_METADATA_FORMAT:()=>L,CASHIE_ROUTER_GUARD_CONTRACT_ABI:()=>_n,CASHIE_ROUTER_V1_CONTRACT_ABI:()=>Sn,CASHIE_SVG_DATA_URI_BASE64_PREFIX:()=>H,COMMON_ERROR_CODES:()=>Rt,CashieAccountType:()=>xt,CashieRouterActions:()=>pe,DEFAULT_MAX_AGE_MS:()=>Nn,EIP1193_ERROR_CODES:()=>ft,EIP5792_ERROR_CODES:()=>ht,ERC7715ValidationError:()=>G,ERC7715_ERROR_CODES:()=>Pt,Either:()=>E,FATAL_ERROR_CODES:()=>bt,IDENTITY_MINT_CONSENT_EIP712_TYPE_STRING:()=>Bt,IDENTITY_MINT_EIP712_TYPES:()=>Pe,IDENTITY_MINT_PAYLOAD_EIP712_TYPES:()=>he,IDENTITY_MINT_PAYLOAD_EIP712_TYPE_STRING:()=>Ct,IdentityIssuer:()=>Re,IdentityIssuerId:()=>$,IdentityType:()=>w,JSON_IDENTITY_TYPE_LABEL_TO_IDENTITY_TYPE:()=>Ve,OCAP_STATEMENT_PREFIX:()=>It,OcapAudiences:()=>gt,OcapValidationError:()=>v,PLAID_IDV_ERROR_MESSAGE:()=>je,PRIMARY_TYPE_IDENTITY_MINT_CONSENT:()=>fe,PRIMARY_TYPE_IDENTITY_MINT_PAYLOAD:()=>ge,PROTOCOL_RPC_PROXY_PATH:()=>Fn,PlaidIdvErrorCode:()=>Ye,ReceiptType:()=>ne,RpcError:()=>Ue,SoulManager:()=>De,addressSchema:()=>T,assertUrl:()=>N,basePaymentDetailsDataSchema:()=>ie,baseScopeSchema:()=>S,billingPeriodSchema:()=>Me,buildCashieIdentitySoulDomain:()=>be,buildIdentityCommitmentHash:()=>Dt,buildIdentityMintConsentTypedData:()=>Le,buildIdentityMintProofTypedData:()=>Fe,buildOcapId:()=>me,burnAuthSchema:()=>W,bytes32HexSchema:()=>xe,canonicalOcapPayload:()=>Tt,cashieIdentitySoulIdentityTypeJsonSchema:()=>ze,cashieIdentitySoulTokenMetadataJsonSchema:()=>te,cashieIdentitySoulTokenMetadataSchema:()=>qt,cashiePaymentRecordBadgeMetadataSchema:()=>ee,cashieReceiptBadgeMetadataSchema:()=>Q,cashieReceiptBadgeSoulBoundToSchema:()=>Ae,createPaymentRpcClient:()=>ve,decodeCashieJsonDataUriToUtf8:()=>et,decodeCashieSvgDataUriToUtf8:()=>Y,encodePaymentIntent:()=>ct,encodePaymentRecordBadgeMintPayload:()=>We,encodeReceiptBadgeMintPayload:()=>$e,erc20TokenPaymentPermissionSchema:()=>se,expiryRuleSchema:()=>K,findTransactionHashForBadgeId:()=>On,generateSalt:()=>Lt,getErrorMessage:()=>Hn,getPaymentIntentHash:()=>wn,getPaymentRecordBadgeMintPayloadHash:()=>Ke,getPermissionsInfoResultParamsSchema:()=>dt,getReceiptBadgeMintPayloadHash:()=>Ge,getSupportedExecutionPermissionsResultSchema:()=>yt,hashIdentityMintConsentTypedData:()=>Nt,hashIdentityMintProofTypedData:()=>kt,hex0xSchema:()=>A,hexSchema:()=>I,identityAccountFor:()=>vt,identityMintRuleSchema:()=>Z,identityMintSignPayloadWithSignatureSchema:()=>k,identityTokenIdFor:()=>M,identityTypeSchema:()=>J,initCodeDataSchema:()=>C,isEither:()=>Ln,parseBasePaymentDetailsData:()=>nn,parseBaseScopeSchema:()=>Yt,parseBillingPeriod:()=>en,parseCashieIdentitySoulTokenMetadata:()=>Se,parseCashieJsonDataUriJson:()=>j,parseCashieMetadataDataUri:()=>Xt,parseCashiePaymentRecordBadgeMetadata:()=>nt,parseCashiePaymentRecordBadgeMetadataFromBadgeUri:()=>Ee,parseCashieReceiptBadgeMetadata:()=>tt,parseCashieReceiptBadgeMetadataFromBadgeUri:()=>_e,parseERC20TokenPaymentPermission:()=>rn,parseExpiryRule:()=>zt,parseGetPermissionsInfoResultParams:()=>mn,parseGetSupportedExecutionPermissionsResult:()=>cn,parseIdentityMintRule:()=>Vt,parseInitCodeData:()=>on,parsePaymentDetails:()=>an,parsePaymentDetailsType:()=>tn,parsePermission:()=>sn,parsePermissionRequest:()=>dn,parsePermissionResponse:()=>yn,parsePermissionsRequest:()=>pn,parsePermissionsResponse:()=>un,parseRule:()=>$t,parseWithSchema:()=>u,paymentDetailsSchema:()=>Ce,paymentDetailsTypeSchema:()=>re,paymentRecordBadgeIdFromMintPayload:()=>Ze,paymentRecordBadgeIdFromPaymentIntent:()=>we,paymentRecordBadgeMintPayloadFromPaymentIntent:()=>Xe,permissionRequestSchema:()=>de,permissionResponseSchema:()=>Be,permissionSchema:()=>oe,permissionSchemas:()=>Qt,permissionsRequestSchema:()=>st,permissionsResponseSchema:()=>ot,plaidIdvError:()=>Ft,prepareStatement:()=>kn,receiptBadgeIdFromMintPayload:()=>qe,receiptBadgeIdFromPaymentIntent:()=>ae,receiptBadgeMintPayloadFromPaymentIntent:()=>Je,recurringPaymentDetailsSchema:()=>it,rewardItemSchema:()=>at,ruleSchema:()=>X,ruleSchemas:()=>jt,singlePaymentDetailsSchema:()=>rt,supportedExecutionPermissionInfoSchema:()=>pt,validateAndBuildOcap:()=>Dn});module.exports=Mt(jn);var w={Individual:0,Business:1},h={IssuerOnly:0,OwnerOnly:1,Both:2,Neither:3},Te="CashieIdentitySoul",Ie="1",ge="IdentityMintPayload",fe="IdentityMintConsent",Ct="IdentityMintPayload(uint8 identityType,string domain,uint8 burnAuth,bytes identityCommitment,address to)",Bt="IdentityMintConsent(uint8 identityType,string domain,uint8 burnAuth,bytes identityCommitment,address to,bytes proof)",he={IdentityMintPayload:[{name:"identityType",type:"uint8"},{name:"domain",type:"string"},{name:"burnAuth",type:"uint8"},{name:"identityCommitment",type:"bytes"},{name:"to",type:"address"}]},Pe={IdentityMintConsent:[{name:"identityType",type:"uint8"},{name:"domain",type:"string"},{name:"burnAuth",type:"uint8"},{name:"identityCommitment",type:"bytes"},{name:"to",type:"address"},{name:"proof",type:"bytes"}]};var R=require("viem"),Ot=(1n<<160n)-1n;function M(e){return(0,R.hexToBigInt)((0,R.getAddress)(e))}function vt(e){let t=e&Ot;return(0,R.getAddress)((0,R.numberToHex)(t,{size:20}))}function Dt(e,t){let n=`0x${e}-${t}`;return(0,R.keccak256)(n)}var D=require("viem");function be(e,t){let n=(0,D.hexToBigInt)(e);return{name:Te,version:Ie,chainId:n,verifyingContract:t}}function Le(e){return{domain:be(e.chainId,e.verifyingContract),types:Pe,primaryType:fe,message:e.message}}function Fe(e){return{domain:be(e.chainId,e.verifyingContract),types:he,primaryType:ge,message:e.message}}function Nt(e){let{domain:t,types:n,primaryType:r,message:a}=Le(e);return(0,D.hashTypedData)({domain:t,types:n,primaryType:r,message:a})}function kt(e){let{domain:t,types:n,primaryType:r,message:a}=Fe(e);return(0,D.hashTypedData)({domain:t,types:n,primaryType:r,message:a})}var $=(n=>(n.PLAID="plaid-identity",n.BUSINESS="business-identity",n))($||{});function Ut(){let e=globalThis.crypto;if(!e?.getRandomValues)throw new Error("Web Crypto is not available (need Node.js 19+ or a modern browser).");return e}function Ht(e){return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}function Lt(){let e=new Uint8Array(32);return Ut().getRandomValues(e),`0x${Ht(e)}`}function N(e){if(!e)throw new Error("URL is required");if(!e.startsWith("https://")&&!e.startsWith("http://"))throw new Error("URL must start with https or http");return e.trim()}var Re=class{#e;constructor(t){t.idvProverUrl=N(t.idvProverUrl),this.#e=t}async postIdvProver(t,n){let r=this.#e.idvProverUrl,a=await fetch(`${r}/api/v1/idv/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!a.ok){let s=await a.json().catch(()=>({}));throw new Error(s.error||s.error_message||`IDV request failed: ${a.statusText}`)}return a.json()}async generatePlaidIdentityProof(t){let{account:n}=t;return this.postIdvProver("generate-identity-proof",{account:n,identityIssuerId:"plaid-identity"})}async generateBusinessIdentityProof(t){let{account:n}=t;return this.postIdvProver("generate-identity-proof",{account:n,identityIssuerId:"business-identity",domain:t.domain})}async issueIdentityProof(t){if(!this.isSupportedIdentityIssuerId(t.identityIssuerId))throw new Error(`Unsupported identity issuer ID: ${t.identityIssuerId}`);switch(t.identityIssuerId){case"plaid-identity":return this.generatePlaidIdentityProof(t.params);case"business-identity":return this.generateBusinessIdentityProof(t.params)}}isSupportedIdentityIssuerId(t){return Object.values($).includes(t)}};var Ye=(a=>(a.IDV_SESSION_SUCCESS="IDV_SESSION_SUCCESS",a.IDV_SESSION_PENDING_REVIEW="IDV_SESSION_PENDING_REVIEW",a.INVALID_IDV_SESSION="INVALID_IDV_SESSION",a.IDV_MAX_FAILED_VERIFICATION_THRESHOLD_REACHED="IDV_MAX_FAILED_VERIFICATION_THRESHOLD_REACHED",a))(Ye||{}),je={IDV_SESSION_SUCCESS:"IDV session has already been completed.",IDV_SESSION_PENDING_REVIEW:"IDV session is pending review. Please wait for review.",INVALID_IDV_SESSION:"idvSession is required and must be a string.",IDV_MAX_FAILED_VERIFICATION_THRESHOLD_REACHED:"Maximum failed verification threshold reached. Please contact support."},Ft=e=>({error_code:e,error_message:je[e]});var ue=require("viem");var y=require("zod");var c=require("zod");var P=require("zod"),q=require("viem"),T=P.z.custom(e=>typeof e=="string"&&(0,q.isAddress)(e),{message:"Expected valid Ethereum address"}),I=P.z.custom(e=>typeof e=="string"&&(0,q.isHex)(e),{message:"Expected valid hex string"}),S=P.z.object({type:P.z.string(),isAdjustmentAllowed:P.z.boolean(),justification:P.z.string(),data:P.z.record(P.z.string(),P.z.unknown())}).strict(),G=class extends Error{schemaName;zodError;constructor(t,n){let r=n.issues.map(a=>{let s=a.path.length>0?` at ${a.path.join(".")}`:"";return`${a.message}${s}`}).join("; ");super(`Invalid ERC-7715 "${t}": ${r}`),this.name="ERC7715ValidationError",this.schemaName=t,this.zodError=n}};function u(e,t,n){let r=t.safeParse(n);if(!r.success)throw new G(e,r.error);return r.data}function Yt(e){return u("BaseScopeSchema",S,e)}var J=c.z.union([c.z.literal(w.Individual),c.z.literal(w.Business)]),W=c.z.union([c.z.literal(h.IssuerOnly),c.z.literal(h.OwnerOnly),c.z.literal(h.Both),c.z.literal(h.Neither)]),k=c.z.object({identityType:J,domain:c.z.string(),burnAuth:W,identityCommitment:I,to:T,proof:I,signature:I}).strict(),K=S.omit({type:!0,data:!0}).extend({type:c.z.literal("expiry"),data:c.z.object({timestamp:c.z.number().int()}).strict()}).strict(),Z=S.omit({type:!0,data:!0}).extend({type:c.z.literal("identity-mint"),data:c.z.object({identityMintPayload:k}).strict()}).strict(),X=c.z.discriminatedUnion("type",[K,Z]),jt={expiry:K,identityMint:Z};function zt(e){return u("ExpiryRule",K,e)}function Vt(e){return u("IdentityMintRule",Z,e)}function $t(e){return u("Rule",X,e)}var U="data:application/json;base64,",H="data:image/svg+xml;base64,",L="Cashie-ReceiptBadge-v1",F="Cashie-PaymentRecordBadge-v1",ze=y.z.enum(["Individual","Business"]),Ve={Individual:w.Individual,Business:w.Business},x=y.z.string().regex(/^\d+$/,"Expected decimal string"),A=y.z.string().regex(/^0x[0-9a-fA-F]+$/,"Expected non-empty 0x-prefixed hex"),xe=A.refine(e=>e.length===66,{message:"Expected 32-byte hex string (0x + 64 hex chars)"}),Ae=y.z.object({identityContract:A,tokenId:x}).strict(),Q=y.z.object({name:y.z.string(),description:y.z.string(),image:y.z.string(),soulBoundTo:Ae,receiptType:y.z.enum(["OneTime","Recurring"]),blockNumber:x,recipient:A,chainId:x,tokenAddress:A,allowance:x,salt:xe}).strict(),Gt=x.refine(e=>{let t=Number(e);return Number.isInteger(t)&&t>=h.IssuerOnly&&t<=h.Neither},{message:"burnAuth must be IERC5484 enum ordinal (0\u20133)"}).transform(e=>Number(e)),ee=y.z.object({name:y.z.string(),description:y.z.string(),image:y.z.string(),soulBoundTo:Ae,blockNumber:x,payer:A,chainId:x,tokenAddress:A,allowance:x,receiptBadgeId:x,salt:xe}).strict(),te=y.z.object({name:y.z.string(),description:y.z.string(),image:y.z.string(),identityType:ze.transform(e=>Ve[e]),domain:y.z.string(),burnAuth:Gt,identityCommitment:A}).strict(),qt=y.z.object({name:y.z.string(),description:y.z.string(),image:y.z.string(),identityType:J,domain:y.z.string(),burnAuth:W,identityCommitment:A}).strict();var m=require("viem");var ne={OneTime:0,Recurring:1},Jt=[{type:"address",name:"identityContract"},{type:"uint256",name:"tokenId"},{type:"uint8",name:"receiptType"},{type:"uint256",name:"blockNumber"},{type:"address",name:"recipient"},{type:"uint256",name:"chainId"},{type:"address",name:"tokenAddress"},{type:"uint256",name:"allowance"},{type:"bytes32",name:"salt"}];function $e(e){return(0,m.encodeAbiParameters)([...Jt],[e.soulBoundTo.identityContract,e.soulBoundTo.tokenId,e.receiptType,e.blockNumber,e.recipient,e.chainId,e.tokenAddress,e.allowance,e.salt])}function Ge(e){return(0,m.keccak256)($e(e))}function qe(e){return BigInt(Ge(e))}function Je(e,t,n,r){return{soulBoundTo:{identityContract:(0,m.getAddress)(e),tokenId:M(t.payer)},receiptType:r,blockNumber:n,recipient:(0,m.getAddress)(t.recipient),chainId:(0,m.hexToBigInt)(t.chainId),tokenAddress:(0,m.getAddress)(t.tokenAddress),allowance:(0,m.hexToBigInt)(t.allowance),salt:t.salt}}function ae(e,t,n,r){return qe(Je(e,t,n,r))}var Wt=[{type:"address",name:"identityContract"},{type:"uint256",name:"tokenId"},{type:"uint256",name:"blockNumber"},{type:"address",name:"payer"},{type:"uint256",name:"chainId"},{type:"address",name:"tokenAddress"},{type:"uint256",name:"allowance"},{type:"uint256",name:"receiptBadgeId"},{type:"bytes32",name:"salt"}];function We(e){return(0,m.encodeAbiParameters)([...Wt],[e.soulBoundTo.identityContract,e.soulBoundTo.tokenId,e.blockNumber,e.payer,e.chainId,e.tokenAddress,e.allowance,e.receiptBadgeId,e.salt])}function Ke(e){return(0,m.keccak256)(We(e))}function Ze(e){return BigInt(Ke(e))}function Xe(e,t,n,r){return{soulBoundTo:{identityContract:(0,m.getAddress)(e),tokenId:M(t.recipient)},blockNumber:n,payer:(0,m.getAddress)(t.payer),chainId:(0,m.hexToBigInt)(t.chainId),tokenAddress:(0,m.getAddress)(t.tokenAddress),allowance:(0,m.hexToBigInt)(t.allowance),receiptBadgeId:r,salt:t.salt}}function we(e,t,n,r){let a=ae(e,t,n,r);return Ze(Xe(e,t,n,a))}function Qe(e){let t=e.replace(/\s+/g,"");try{let n=atob(t),r=new Uint8Array(n.length);for(let a=0;a<n.length;a++)r[a]=n.charCodeAt(a);return new TextDecoder("utf8",{fatal:!0}).decode(r)}catch{throw new Error("Failed to Base64-decode Cashie data URI payload (invalid encoding)")}}function et(e){if(!e.startsWith(U))throw new Error(`Expected Cashie JSON data URI prefix "${U}"`);let t=e.slice(U.length);return Qe(t)}function Y(e){if(!e.startsWith(H))throw new Error(`Expected Cashie SVG data URI prefix "${H}"`);let t=e.slice(H.length);return Qe(t)}function j(e){let t=et(e);return JSON.parse(t)}function Se(e){let t=j(e);return te.parse(t)}function tt(e){let t=j(e);return Q.parse(t)}function _e(e,t){if(t!==L)throw new Error(`Expected ERC-5114 metadataFormat "${L}", received "${t}"`);return tt(e)}function nt(e){let t=j(e);return ee.parse(t)}function Ee(e,t){if(t!==F)throw new Error(`Expected ERC-5114 metadataFormat "${F}", received "${t}"`);return nt(e)}function Kt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Zt(e){if("identityType"in e)return{kind:"identitySoul",data:te.parse(e)};if("receiptType"in e)return{kind:"receiptBadge",format:L,data:Q.parse(e)};if("receiptBadgeId"in e)return{kind:"paymentRecordBadge",format:F,data:ee.parse(e)};throw new Error("Unrecognized Cashie metadata JSON (expected identityType, receiptType, or receiptBadgeId)")}function Xt(e){let t=j(e);if(!Kt(t))throw new Error("Unrecognized Cashie metadata JSON (expected identityType, receiptType, or receiptBadgeId)");return Zt(t)}var B=require("viem"),O=require("viem/chains");var d=require("zod"),ye=require("viem");var g=require("zod");var f=require("zod");var Me=f.z.enum(["weekly","monthly","annually"]),re=f.z.enum(["single","recurring"]),at=f.z.object({recipient:T,rewardAmount:I,rewardTokenAddress:T}).strict(),ie=f.z.object({allowance:I,tokenAddress:T,rewardItems:f.z.array(at).optional()}).strict(),rt=ie.extend({type:f.z.literal(re.enum.single)}).strict(),it=ie.extend({type:f.z.literal(re.enum.recurring),startDate:f.z.number().int().optional(),billingPeriod:Me}).strict(),Ce=f.z.discriminatedUnion("type",[rt,it]),se=S.omit({type:!0,data:!0}).extend({type:f.z.literal("erc20-token-payment"),data:f.z.object({recipient:T,paymentDetails:Ce}).strict()}).strict(),oe=f.z.discriminatedUnion("type",[se]),Qt={"erc20-token-payment":se};function en(e){return u("BillingPeriod",Me,e)}function tn(e){return u("PaymentDetailsType",re,e)}function nn(e){return u("BasePaymentDetailsData",ie,e)}function an(e){return u("PaymentDetails",Ce,e)}function rn(e){return u("ERC20TokenPaymentPermission",se,e)}function sn(e){return u("Permission",oe,e)}var C=g.z.object({factory:T,factoryData:I}).strict(),de=g.z.object({chainId:I,from:T.optional(),to:T,permission:oe,rules:g.z.array(X).optional()}).strict(),st=g.z.array(de),Be=de.extend({from:T,context:I,dependencies:g.z.array(C),delegationManager:T}).strict(),ot=g.z.array(Be),dt=g.z.object({chainIds:g.z.array(I)}).strict(),pt=g.z.object({chainIds:g.z.array(I),ruleTypes:g.z.array(g.z.string())}).strict(),yt=g.z.object({"erc20-token-payment":pt}).strict();function on(e){return u("InitCodeData",C,e)}function dn(e){return u("PermissionRequest",de,e)}function pn(e){return u("PermissionsRequest",st,e)}function yn(e){return u("PermissionResponse",Be,e)}function un(e){return u("PermissionsResponse",ot,e)}function mn(e){return u("GetPermissionsInfoResultParams",dt,e)}function cn(e){return u("GetSupportedExecutionPermissionsResult",yt,e)}var pe=(s=>(s.PAYMENT_C2B="payment-c2b",s.PAYMENT_B2B="payment-b2b",s.PAYMENT_B2C="payment-b2c",s.DEPOSIT="deposit",s.WITHDRAW="withdraw",s))(pe||{});var l=d.z.custom(e=>typeof e=="string"&&(0,ye.isAddress)(e),{message:"Expected valid Ethereum address"}),p=d.z.custom(e=>typeof e=="string"&&(0,ye.isHex)(e),{message:"Expected valid hex string"}),ln=d.z.custom(e=>typeof e=="number"&&Number.isInteger(e)&&e>=h.IssuerOnly&&e<=h.Neither,{message:"Expected BurnAuth enum value (0\u20133)"}),Tn=d.z.object({to:l,data:p}),z=d.z.enum(["receipt","paymentRecord"]),In=d.z.object({nftAddress:l,nftTokenId:p}),gn=d.z.object({identitySoulContract:d.z.object({address:l,badgeContracts:d.z.object({paymentRecordBadgeContract:l,receiptBadgeContract:l})})}),fn=d.z.object({signedIdentityMintPayload:k,initCodeData:C}).strict(),hn=d.z.object({recipient:l,rewardAmount:p,rewardTokenAddress:l}).strict(),Pn=d.z.object({rewardPayer:l,rewardItems:d.z.array(hn),rewardPermissionContext:p,rewardDelegationManager:l}).strict(),bn=d.z.object({action:d.z.enum(pe),chainId:p,recipient:l,payer:l,identityMintPayloads:d.z.array(k),tokenAddress:l,allowance:p,rewardIntentDetails:Pn.optional(),permissionContext:p,delegationManager:l,dependencies:d.z.array(C),salt:p}).strict().transform(e=>e),Rn=d.z.object({paymentIntent:bn,status:d.z.enum(["pending","confirmed","failed"]),txHash:p.nullable().optional(),blockNumber:p.nullable().optional()}).strict().transform(e=>e),xn={discovery_supportedSouls:gn,payment_getProtocolFeeBps:p,payment_calculateRewardAmount:p,payment_sendIntent:p,payment_getIntentStatuses:d.z.array(Rn),payment_prepareRouterCallsFromAction:d.z.array(Tn),identity_getBurnAuth:ln,identity_getTokenURI:d.z.string().nullable(),payment_sendPrePaymentSetup:p,payment_getPrePaymentSetup:fn.nullable(),badge_getOwnerOf:In,badge_getBadgeUri:d.z.string().nullable(),badge_getMetadataFormat:d.z.string(),badge_totalBadgesOfIdentity:p,badge_badgeOfIdentityByIndex:p,badge_badgesOfIdentity:d.z.array(p)},ut=d.z.tuple([d.z.object({chainHex:p,badgeId:p,badgeKind:z})]),ka={badge_getOwnerOf:ut,badge_getBadgeUri:ut,badge_getMetadataFormat:d.z.tuple([d.z.object({chainHex:p,badgeKind:z})]),badge_totalBadgesOfIdentity:d.z.tuple([d.z.object({chainHex:p,account:l,badgeKind:z})]),badge_badgeOfIdentityByIndex:d.z.tuple([d.z.object({chainHex:p,account:l,badgeKind:z,index:p})]),badge_badgesOfIdentity:d.z.tuple([d.z.object({chainHex:p,account:l,badgeKind:z,offset:p,limit:p})])};var Oe=class extends Error{method;zodError;constructor(t,n){let r=n.issues.map(a=>{let s=a.path.length>0?` at ${a.path.join(".")}`:"";return`${a.message}${s}`}).join("; ");super(`Invalid RPC response for "${t}": ${r}`),this.name="PaymentRpcResponseValidationError",this.method=t,this.zodError=n}};function mt(e,t){let n=xn[e].safeParse(t);if(!n.success)throw new Oe(e,n.error);return n.data}var ve=e=>{let t=()=>({"0xaa36a7":O.sepolia,"0x539":O.localhost,"0x7a69":O.anvil}),n=i=>{let b=(0,B.toHex)(i),V=t()[b];if(!V)throw new Error(`Chain ${b} is not supported`);return V},{url:r,chainId:a}=e,s=(0,B.createPublicClient)({chain:n(a),transport:(0,B.http)(N(r))}),o=async(i,b)=>{let V=await s.request({method:i,params:b});return mt(i,V)};return{getIdentitySoulDiscovery:i=>o("discovery_supportedSouls",i),getProtocolFeeBps:i=>o("payment_getProtocolFeeBps",i),calculateRewardAmount:i=>o("payment_calculateRewardAmount",i),sendIntent:i=>o("payment_sendIntent",i),getIntentStatuses:i=>o("payment_getIntentStatuses",i),prepareRouterCallsFromAction:i=>o("payment_prepareRouterCallsFromAction",i),getBurnAuth:i=>o("identity_getBurnAuth",i),getTokenURI:i=>o("identity_getTokenURI",i),sendPrePaymentSetup:i=>o("payment_sendPrePaymentSetup",i),getPrePaymentSetup:i=>o("payment_getPrePaymentSetup",i),getBadgeOwnerOf:i=>o("badge_getOwnerOf",i),getBadgeUri:i=>o("badge_getBadgeUri",i),getBadgeMetadataFormat:i=>o("badge_getMetadataFormat",i),getTotalBadgesOfIdentity:i=>o("badge_totalBadgesOfIdentity",i),getBadgeOfIdentityByIndex:i=>o("badge_badgeOfIdentityByIndex",i),getBadgesOfIdentity:i=>o("badge_badgesOfIdentity",i)}};var De=class{#e;#r;#i;#s;#o;#n;#t;#d=new Map;#p=new Map;#y;constructor(t){let{identityIssuer:n,cashieRpcUrl:r,chainIdHex:a}=t;this.#y=n,this.#n=ve({url:r,chainId:(0,ue.fromHex)(a,"number")}),this.#t=a}#a(){if(!this.isInitialized())throw new Error("Soul manager is not initialized")}isInitialized(){return this.#e!==void 0&&this.#r!==void 0&&this.#i!==void 0}async init(){let t=await this.#n.getIdentitySoulDiscovery([{chainHex:this.#t}]);if(!t)throw new Error("Failed to get supported souls");this.#e=t.identitySoulContract.address,this.#r=t.identitySoulContract.badgeContracts.paymentRecordBadgeContract,this.#i=t.identitySoulContract.badgeContracts.receiptBadgeContract;let[n,r]=await Promise.all([this.#n.getBadgeMetadataFormat([{chainHex:this.#t,badgeKind:"receipt"}]),this.#n.getBadgeMetadataFormat([{chainHex:this.#t,badgeKind:"paymentRecord"}])]);if(!n||!r)throw new Error("Failed to get badge metadata formats");this.#s=n,this.#o=r}async prepareIdentityMintConsent(t){if(this.#a(),!this.#e)throw new Error("Identity soul contract is not initialized");let{account:n}=t.params;if(!n)throw new Error("Account is missing from the request");let r=await this.#y.issueIdentityProof(t),{identityType:a,domain:s,burnAuth:o,identityCommitment:i,proof:b}=r;return{chainId:this.#t,verifyingContract:this.#e,message:{to:n,identityType:a,domain:s,burnAuth:o,identityCommitment:i,proof:b}}}async getCashieIdentitySoulTokenMetadata(t){if(this.#a(),!this.#e)throw new Error("Identity soul contract is not initialized");if(!t)throw new Error("Account is not initialized");let n=M(t),r=(0,ue.toHex)(n),a=await this.#n.getTokenURI([{chainHex:this.#t,tokenId:r}]);if(!a)return;let s=Se(a),o=Y(s.image);if(!o)throw new Error("Failed to decode image SVG for identity soul token metadata");return s.image=o,s}async getCashieReceiptBadgeMetadata(t){if(this.#a(),!this.#i)throw new Error("Receipt badge contract is not initialized");if(!this.#s)throw new Error("Receipt badge metadata format is not initialized");let n=this.#d.get(t);if(n)return n;let r=await this.#n.getBadgeUri([{chainHex:this.#t,badgeId:t,badgeKind:"receipt"}]);if(!r)return;let a=_e(r,this.#s),s=Y(a.image);if(!s)throw new Error("Failed to decode image SVG for receipt badge metadata");return a.image=s,this.#d.set(t,a),a}async getCashiePaymentRecordBadgeMetadata(t){if(this.#a(),!this.#r)throw new Error("Payment record badge contract is not initialized");if(!this.#o)throw new Error("Payment record badge metadata format is not initialized");let n=this.#p.get(t);if(n)return n;let r=await this.#n.getBadgeUri([{chainHex:this.#t,badgeId:t,badgeKind:"paymentRecord"}]);if(!r)return;let a=Ee(r,this.#o),s=Y(a.image);if(!s)throw new Error("Failed to decode image SVG for payment record badge metadata");return a.image=s,this.#p.set(t,a),a}};var _=require("viem"),An=[{name:"action",type:"string"},{name:"chainId",type:"uint256"},{name:"recipient",type:"address"},{name:"payer",type:"address"},{name:"rewardIntentDetails",type:"tuple",components:[{name:"rewardPayer",type:"address"},{name:"rewardItems",type:"tuple[]",components:[{name:"recipient",type:"address"},{name:"rewardAmount",type:"uint256"},{name:"rewardTokenAddress",type:"address"}]},{name:"rewardDelegationManager",type:"address"}]},{name:"tokenAddress",type:"address"},{name:"allowance",type:"uint256"},{name:"delegationManager",type:"address"},{name:"salt",type:"bytes32"}];function ct(e){let t=e.rewardIntentDetails??{rewardPayer:_.zeroAddress,rewardItems:[],rewardDelegationManager:_.zeroAddress};return(0,_.encodeAbiParameters)(An,[e.action,BigInt(e.chainId),e.recipient,e.payer,{rewardPayer:t.rewardPayer,rewardItems:t.rewardItems.map(n=>({recipient:n.recipient,rewardAmount:BigInt(n.rewardAmount),rewardTokenAddress:n.rewardTokenAddress})),rewardDelegationManager:t.rewardDelegationManager},e.tokenAddress,BigInt(e.allowance),e.delegationManager,e.salt])}function wn(e){return(0,_.keccak256)(ct(e))}var Sn=[{type:"constructor",inputs:[{name:"_initialOwner",type:"address",internalType:"address"},{name:"_treasuryFeeAddress",type:"address",internalType:"address"},{name:"_supportedPaymentTokens",type:"address[]",internalType:"address[]"},{name:"_protocolFeeBps",type:"uint256",internalType:"uint256"},{name:"_paymentProcessorFeeBps",type:"uint256",internalType:"uint256"},{name:"_rewardBps",type:"uint256",internalType:"uint256"},{name:"_protocolRewardToken",type:"address",internalType:"contract IERC20Metadata"},{name:"_stakingManager",type:"address",internalType:"contract IStakingManager"},{name:"_identitySoul",type:"address",internalType:"contract ICashieIdentitySoul"},{name:"_receiptBadge",type:"address",internalType:"contract ICashieReceiptBadge"},{name:"_paymentRecordBadge",type:"address",internalType:"contract ICashiePaymentRecordBadge"},{name:"_identityVerificationProvers",type:"address[]",internalType:"address[]"}],stateMutability:"nonpayable"},{type:"function",name:"acceptOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addIdentityVerificationProver",inputs:[{name:"prover",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"adjustProtocolFeeBps",inputs:[{name:"_delta",type:"uint256",internalType:"uint256"},{name:"_increase",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"adjustRewardBps",inputs:[{name:"_delta",type:"uint256",internalType:"uint256"},{name:"_increase",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"calculateFee",inputs:[{name:"_amount",type:"uint256",internalType:"uint256"},{name:"_feeBps",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"calculateReward",inputs:[{name:"_paymentTokenAmount",type:"uint256",internalType:"uint256"},{name:"_paymentTokenDecimals",type:"uint8",internalType:"uint8"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"deposit",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"_tokenAddress",type:"address",internalType:"address"},{name:"_allowance",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"identitySoul",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ICashieIdentitySoul"}],stateMutability:"view"},{type:"function",name:"identityTokenAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"isIdentityVerificationProver",inputs:[{name:"prover",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isSupportedToken",inputs:[{name:"_tokenAddress",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isValidSignature",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[{name:"magicValue",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"issueIdentityToken",inputs:[{name:"payload",type:"tuple",internalType:"struct IdentityMintPayload",components:[{name:"identityType",type:"uint8",internalType:"enum IdentityType"},{name:"domain",type:"string",internalType:"string"},{name:"burnAuth",type:"uint8",internalType:"enum IERC5484.BurnAuth"},{name:"identityCommitment",type:"bytes",internalType:"bytes"},{name:"to",type:"address",internalType:"address"},{name:"proof",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"payB2B",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"_tokenAddress",type:"address",internalType:"address"},{name:"_allowance",type:"uint256",internalType:"uint256"},{name:"_feeBeneficiaryAddress",type:"address",internalType:"address"},{name:"_receiptBadgeRouterMintPayload",type:"tuple",internalType:"struct ReceiptBadgeRouterMintPayload",components:[{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"receiptType",type:"uint8",internalType:"enum ReceiptType"}]}],outputs:[{name:"receiptBadgeId",type:"uint256",internalType:"uint256"},{name:"paymentRecordBadgeId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"payB2C",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"_tokenAddress",type:"address",internalType:"address"},{name:"_allowance",type:"uint256",internalType:"uint256"},{name:"_feeBeneficiaryAddress",type:"address",internalType:"address"},{name:"_receiptBadgeRouterMintPayload",type:"tuple",internalType:"struct ReceiptBadgeRouterMintPayload",components:[{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"receiptType",type:"uint8",internalType:"enum ReceiptType"}]}],outputs:[{name:"receiptBadgeId",type:"uint256",internalType:"uint256"},{name:"paymentRecordBadgeId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"payC2B",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"_tokenAddress",type:"address",internalType:"address"},{name:"_allowance",type:"uint256",internalType:"uint256"},{name:"_feeBeneficiaryAddress",type:"address",internalType:"address"},{name:"_receiptBadgeRouterMintPayload",type:"tuple",internalType:"struct ReceiptBadgeRouterMintPayload",components:[{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"receiptType",type:"uint8",internalType:"enum ReceiptType"}]}],outputs:[{name:"receiptBadgeId",type:"uint256",internalType:"uint256"},{name:"paymentRecordBadgeId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"paymentProcessorFeeBps",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"paymentRecordBadge",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ICashiePaymentRecordBadge"}],stateMutability:"view"},{type:"function",name:"pendingOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"protocolFeeBps",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"receiptBadge",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ICashieReceiptBadge"}],stateMutability:"view"},{type:"function",name:"receiptBadgeAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"registerToken",inputs:[{name:"_tokenAddress",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"removeIdentityVerificationProver",inputs:[{name:"prover",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"reward",inputs:[{name:"_rewards",type:"tuple[]",internalType:"struct RewardItem[]",components:[{name:"recipient",type:"address",internalType:"address"},{name:"rewardAmount",type:"uint256",internalType:"uint256"},{name:"rewardTokenAddress",type:"address",internalType:"address"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rewardBps",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"rewardToken",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IERC20Metadata"}],stateMutability:"view"},{type:"function",name:"rewardTokenAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"supportedPaymentTokens",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"treasuryFeeAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"withdraw",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"_tokenAddress",type:"address",internalType:"address"},{name:"_allowance",type:"uint256",internalType:"uint256"},{name:"_feeBeneficiaryAddress",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"Deposited",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"recipient",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"tokenAddress",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"IdentityVerificationProverAdded",inputs:[{name:"prover",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"IdentityVerificationProverRemoved",inputs:[{name:"prover",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"IssueReward",inputs:[{name:"recipient",type:"address",indexed:!0,internalType:"address"},{name:"rewardAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"rewardToken",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferStarted",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Payment",inputs:[{name:"payer",type:"address",indexed:!0,internalType:"address"},{name:"receiver",type:"address",indexed:!0,internalType:"address"},{name:"feeBeneficiaryAddress",type:"address",indexed:!0,internalType:"address"},{name:"allowance",type:"uint256",indexed:!1,internalType:"uint256"},{name:"recipientAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"protocolFee",type:"uint256",indexed:!1,internalType:"uint256"},{name:"protocolFeeBps",type:"uint256",indexed:!1,internalType:"uint256"},{name:"tokenAddress",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"ProtocolFeeBpsAdjusted",inputs:[{name:"oldFeeBps",type:"uint256",indexed:!1,internalType:"uint256"},{name:"newFeeBps",type:"uint256",indexed:!1,internalType:"uint256"},{name:"increased",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"RewardBpsAdjusted",inputs:[{name:"oldRewardBps",type:"uint256",indexed:!1,internalType:"uint256"},{name:"newRewardBps",type:"uint256",indexed:!1,internalType:"uint256"},{name:"increased",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"Withdrawn",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"recipient",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"protocolFee",type:"uint256",indexed:!1,internalType:"uint256"},{name:"protocolFeeBps",type:"uint256",indexed:!1,internalType:"uint256"},{name:"tokenAddress",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"error",name:"IdentityVerificationProverAlreadyRegistered",inputs:[{name:"prover",type:"address",internalType:"address"}]},{type:"error",name:"IdentityVerificationProverNotRegistered",inputs:[{name:"prover",type:"address",internalType:"address"}]},{type:"error",name:"InvalidIdentityVerificationProver",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"PaymentAmountCannotBeZero",inputs:[]},{type:"error",name:"ProcessorNotEligible",inputs:[]},{type:"error",name:"SafeERC20FailedOperation",inputs:[{name:"token",type:"address",internalType:"address"}]},{type:"error",name:"TokenAllowanceNotApprovedForDeposit",inputs:[]},{type:"error",name:"TokenAllowanceNotApprovedForPayment",inputs:[]},{type:"error",name:"TokenAllowanceNotApprovedForReward",inputs:[{name:"token",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"},{name:"allowance",type:"uint256",internalType:"uint256"}]},{type:"error",name:"TokenAllowanceNotApprovedForWithdraw",inputs:[]},{type:"error",name:"TokenAlreadyRegistered",inputs:[]},{type:"error",name:"TokenNotSupported",inputs:[]}],_n=[{type:"function",name:"acceptOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pendingOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"router",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"setRouter",inputs:[{name:"_newRouter",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"OwnershipTransferStarted",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RouterSet",inputs:[{name:"router",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"RouterInvalidInterface",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"RouterNotSet",inputs:[]},{type:"error",name:"RouterUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]}],En=[{type:"constructor",inputs:[{name:"_name",type:"string",internalType:"string"},{name:"_symbol",type:"string",internalType:"string"},{name:"_owner",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"DOMAIN_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"NAME",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"acceptOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"approve",inputs:[{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"pure"},{type:"function",name:"balanceOf",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"burnAuth",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint8",internalType:"enum IERC5484.BurnAuth"}],stateMutability:"view"},{type:"function",name:"burnIdentity",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"eip712Domain",inputs:[],outputs:[{name:"fields",type:"bytes1",internalType:"bytes1"},{name:"name",type:"string",internalType:"string"},{name:"version",type:"string",internalType:"string"},{name:"chainId",type:"uint256",internalType:"uint256"},{name:"verifyingContract",type:"address",internalType:"address"},{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"extensions",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"getApproved",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getDomainHash",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"isApprovedForAll",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"operator",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"mintIdentity",inputs:[{name:"payload",type:"tuple",internalType:"struct IdentityMintPayload",components:[{name:"identityType",type:"uint8",internalType:"enum IdentityType"},{name:"domain",type:"string",internalType:"string"},{name:"burnAuth",type:"uint8",internalType:"enum IERC5484.BurnAuth"},{name:"identityCommitment",type:"bytes",internalType:"bytes"},{name:"to",type:"address",internalType:"address"},{name:"proof",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"}]}],outputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownerOf",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pendingOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"router",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"safeTransferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"pure"},{type:"function",name:"setApprovalForAll",inputs:[{name:"operator",type:"address",internalType:"address"},{name:"approved",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setRouter",inputs:[{name:"_newRouter",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"tokenIdFor",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"tokenURI",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"pure"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"approved",type:"address",indexed:!0,internalType:"address"},{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ApprovalForAll",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"operator",type:"address",indexed:!0,internalType:"address"},{name:"approved",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"Burned",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"auth",type:"uint8",indexed:!1,internalType:"enum IERC5484.BurnAuth"}],anonymous:!1},{type:"event",name:"EIP712DomainChanged",inputs:[],anonymous:!1},{type:"event",name:"Issued",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"burnAuth",type:"uint8",indexed:!1,internalType:"enum IERC5484.BurnAuth"}],anonymous:!1},{type:"event",name:"OwnershipTransferStarted",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RouterSet",inputs:[{name:"router",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"SetDomain",inputs:[{name:"domainHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"name",type:"string",indexed:!1,internalType:"string"},{name:"domainVersion",type:"string",indexed:!1,internalType:"string"},{name:"chainId",type:"uint256",indexed:!1,internalType:"uint256"},{name:"contractAddress",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"error",name:"BurnAuthNotSupported",inputs:[]},{type:"error",name:"ERC721IncorrectOwner",inputs:[{name:"sender",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InsufficientApproval",inputs:[{name:"operator",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ERC721InvalidApprover",inputs:[{name:"approver",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InvalidOperator",inputs:[{name:"operator",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InvalidReceiver",inputs:[{name:"receiver",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InvalidSender",inputs:[{name:"sender",type:"address",internalType:"address"}]},{type:"error",name:"ERC721NonTransferable",inputs:[]},{type:"error",name:"ERC721NonexistentToken",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidBurnAuth",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidIdentityDomain",inputs:[]},{type:"error",name:"InvalidIdentityProof",inputs:[]},{type:"error",name:"InvalidIdentitySignature",inputs:[]},{type:"error",name:"InvalidShortString",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"RouterInvalidInterface",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"RouterNotSet",inputs:[]},{type:"error",name:"RouterUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"RouterUnauthorizedBurn",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"StringTooLong",inputs:[{name:"str",type:"string",internalType:"string"}]}],Mn=[{type:"constructor",inputs:[{name:"owner_",type:"address",internalType:"address"},{name:"identityContract_",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"badgeOfIdentityByIndex",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"},{name:"index",type:"uint256",internalType:"uint256"}],outputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"badgeUri",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"badgesOfIdentity",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"},{name:"offset",type:"uint256",internalType:"uint256"},{name:"limit",type:"uint256",internalType:"uint256"}],outputs:[{name:"badgeIds",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"collectionUri",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"pure"},{type:"function",name:"identityContract",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"metadataFormat",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"pure"},{type:"function",name:"mint",inputs:[{name:"payload",type:"tuple",internalType:"struct ReceiptBadgeMintPayload",components:[{name:"soulBoundTo",type:"tuple",internalType:"struct SoulBoundTo",components:[{name:"identityContract",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"receiptType",type:"uint8",internalType:"enum ReceiptType"},{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"recipient",type:"address",internalType:"address"},{name:"chainId",type:"uint256",internalType:"uint256"},{name:"tokenAddress",type:"address",internalType:"address"},{name:"allowance",type:"uint256",internalType:"uint256"},{name:"salt",type:"bytes32",internalType:"bytes32"}]}],outputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownerOf",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],outputs:[{name:"nftAddress",type:"address",internalType:"address"},{name:"nftTokenId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"pendingOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"router",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"setRouter",inputs:[{name:"_newRouter",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"totalBadgesOfIdentity",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"totalBadges",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"Mint",inputs:[{name:"badgeId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"nftAddress",type:"address",indexed:!0,internalType:"address"},{name:"nftTokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipTransferStarted",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RouterSet",inputs:[{name:"router",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"BadgeNotMinted",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"BadgePageLimitExceeded",inputs:[{name:"limit",type:"uint256",internalType:"uint256"},{name:"maxLimit",type:"uint256",internalType:"uint256"}]},{type:"error",name:"IdentityContractMismatch",inputs:[{name:"expected",type:"address",internalType:"address"},{name:"actual",type:"address",internalType:"address"}]},{type:"error",name:"InvalidIdentityContract",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"ReceiptBadgeMintPayloadAlreadyClaimed",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"RouterInvalidInterface",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"RouterNotSet",inputs:[]},{type:"error",name:"RouterUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"StringsInsufficientHexLength",inputs:[{name:"value",type:"uint256",internalType:"uint256"},{name:"length",type:"uint256",internalType:"uint256"}]}],Cn=[{type:"constructor",inputs:[{name:"owner_",type:"address",internalType:"address"},{name:"identityContract_",type:"address",internalType:"address"},{name:"receiptBadgeContract_",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"badgeOfIdentityByIndex",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"},{name:"index",type:"uint256",internalType:"uint256"}],outputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"badgeUri",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"badgesOfIdentity",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"},{name:"offset",type:"uint256",internalType:"uint256"},{name:"limit",type:"uint256",internalType:"uint256"}],outputs:[{name:"badgeIds",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"collectionUri",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"pure"},{type:"function",name:"identityContract",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"metadataFormat",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"pure"},{type:"function",name:"mint",inputs:[{name:"payload",type:"tuple",internalType:"struct PaymentRecordBadgeMintPayload",components:[{name:"soulBoundTo",type:"tuple",internalType:"struct SoulBoundTo",components:[{name:"identityContract",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"payer",type:"address",internalType:"address"},{name:"chainId",type:"uint256",internalType:"uint256"},{name:"tokenAddress",type:"address",internalType:"address"},{name:"allowance",type:"uint256",internalType:"uint256"},{name:"receiptBadgeId",type:"uint256",internalType:"uint256"},{name:"salt",type:"bytes32",internalType:"bytes32"}]}],outputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownerOf",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],outputs:[{name:"nftAddress",type:"address",internalType:"address"},{name:"nftTokenId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"pendingOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"receiptBadgeContract",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"router",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"setRouter",inputs:[{name:"_newRouter",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"totalBadgesOfIdentity",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"totalBadges",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"Mint",inputs:[{name:"badgeId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"nftAddress",type:"address",indexed:!0,internalType:"address"},{name:"nftTokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipTransferStarted",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RouterSet",inputs:[{name:"router",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"BadgeNotMinted",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"BadgePageLimitExceeded",inputs:[{name:"limit",type:"uint256",internalType:"uint256"},{name:"maxLimit",type:"uint256",internalType:"uint256"}]},{type:"error",name:"IdentityContractMismatch",inputs:[{name:"expected",type:"address",internalType:"address"},{name:"actual",type:"address",internalType:"address"}]},{type:"error",name:"InvalidIdentityContract",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"PaymentRecordBadgeMintPayloadAlreadyClaimed",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"RouterInvalidInterface",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"RouterNotSet",inputs:[]},{type:"error",name:"RouterUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"StringsInsufficientHexLength",inputs:[{name:"value",type:"uint256",internalType:"uint256"},{name:"length",type:"uint256",internalType:"uint256"}]}];var Bn=["payments","deposits","withdrawals","rewards"];var Ne=require("viem");function On(e){let{badgeId:t,badgeKind:n,identityContract:r,paymentIntentTrackingEntries:a}=e;if(a.length===0)return null;let s=a.filter(o=>o.status==="confirmed");if(s.length===0)return null;for(let o of s)if(o.txHash&&o.blockNumber)switch(n){case"receipt":{if((0,Ne.toHex)(ae(r,o.paymentIntent,BigInt(o.blockNumber),ne.OneTime))===t)return o.txHash;break}case"paymentRecord":{if((0,Ne.toHex)(we(r,o.paymentIntent,BigInt(o.blockNumber),ne.OneTime))===t)return o.txHash;break}}return null}var lt=require("viem");function ke(e){if(e===null||typeof e!="object")return e;if(Array.isArray(e))return e.map(ke).sort((s,o)=>{let i=JSON.stringify(s),b=JSON.stringify(o);return i<b?-1:i>b?1:0});let t=e,n=Object.keys(t).sort(),r={};for(let a of n)r[a]=ke(t[a]);return r}function Tt(e){return JSON.stringify(ke(e))}function me(e){let t=Tt(e),n=new TextEncoder().encode(t);return(0,lt.keccak256)(n)}var v=class extends Error{constructor(t){super(t),this.name="OcapValidationError"}};function vn(e,t){if(e.type!=="api")throw new v(`Unsupported resource type: ${e.type}`);if(!t.includes(e.audience))throw new v(`Audience not allowed: ${e.audience}`);if(!e.data?.endpoint||!Array.isArray(e.data.methods))throw new v("Invalid api resource: missing endpoint or methods")}function Dn(e){let{resources:t,allowedAudiences:n}=e,r=Array.isArray(t.api)?t.api:[];for(let o of r)vn(o,n);let a={resources:{api:r}},s=me(a);return{ocap:a,ocapId:s}}var Nn=300*1e3,It="Request OCAP";function kn(e,t){let n=me({resources:t});return`${It}:${e}:${n}`}var gt=(r=>(r.ACCOUNT_SERVICE="account-service",r.PAYMENT_SERVICE="payment-service",r.IDV_SERVICE="idv-service",r))(gt||{});var ft=(s=>(s[s.USER_REJECTED_REQUEST=4001]="USER_REJECTED_REQUEST",s[s.UNAUTHORIZED_ACCESS_ACCOUNT=4100]="UNAUTHORIZED_ACCESS_ACCOUNT",s[s.UNSUPPORTED_METHOD=4200]="UNSUPPORTED_METHOD",s[s.DISCONNECTED=4900]="DISCONNECTED",s[s.CHAIN_DISCONNECTED=4901]="CHAIN_DISCONNECTED",s))(ft||{}),ht=(i=>(i[i.UNSUPPORTED_NON_OPTIONAL_CAPABILITY=5700]="UNSUPPORTED_NON_OPTIONAL_CAPABILITY",i[i.UNSUPPORTED_CHAIN_ID=5710]="UNSUPPORTED_CHAIN_ID",i[i.DUPLICATE_BUNDLE_ID=5720]="DUPLICATE_BUNDLE_ID",i[i.UNKNOWN_BUNDLE_ID=5730]="UNKNOWN_BUNDLE_ID",i[i.BUNDLE_TOO_LARGE=5740]="BUNDLE_TOO_LARGE",i[i.ATOMIC_READY_WALLET_REJECTED_UPGRADE=5750]="ATOMIC_READY_WALLET_REJECTED_UPGRADE",i[i.ATOMICITY_NOT_SUPPORTED=5760]="ATOMICITY_NOT_SUPPORTED",i))(ht||{}),Pt=(t=>(t[t.UNAUTHORIZED_ACCESS_RESTRICTED_METHOD=4101]="UNAUTHORIZED_ACCESS_RESTRICTED_METHOD",t))(Pt||{}),bt=(n=>(n[n.INTERNAL_ERROR=-32001]="INTERNAL_ERROR",n[n.NO_SECURE_CONNECTION_ESTABLISHED=-32002]="NO_SECURE_CONNECTION_ESTABLISHED",n))(bt||{}),Rt=(t=>(t[t.INVALID_PARAMS=-32602]="INVALID_PARAMS",t))(Rt||{}),Un={4001:{code:4001,message:"User rejected the request."},4100:{code:4100,message:"The requested method and/or account has not been authorized by the user."},4200:{code:4200,message:"The Provider does not support the requested method."},4900:{code:4900,message:"The Provider is disconnected from all chains."},4901:{code:4901,message:"The Provider is not connected to the requested chain."},4101:{code:4101,message:"The specified method is not authorized for the given origin."},5700:{code:5700,message:"This wallet does not support a capability that was not marked as optional."},5710:{code:5710,message:"This wallet does not support the specified chain id."},5720:{code:5720,message:"There is already a bundle submitted with this id."},5730:{code:5730,message:"This bundle id is unknown / has not been submitted."},5740:{code:5740,message:"The call bundle is too large for the wallet to process."},5750:{code:5750,message:"The wallet can support atomicity after an upgrade, but the user rejected the upgrade."},5760:{code:5760,message:"The wallet does not support atomic execution but the request requires it."},[-32001]:{code:-32001,message:"fatal: internal error"},[-32602]:{code:4002,message:"Invalid parameters."},[-32002]:{code:-32002,message:"No secure connection established."}},Hn=e=>{let t=Un[e];return t||{code:e,message:`Unknown error code: ${e}`}},Ue=class extends Error{code;data;constructor({message:t,code:n,data:r}){super(t),this.code=n,this.data=r}};var E=class{constructor(t){this.value=t}toString(){let t=JSON.stringify(this.value);return`${this.isLeft()?"Left":"Right"}: (${t})`}fold(t,n){return this.isLeft()?t(this.value):n(this.value)}foldAsync(t,n){return this.isLeft()?t(this.value):n(this.value)}static of(t){return new ce(t)}static Left(t){return new He(t)}static Right(t){return new ce(t)}},He=class extends E{constructor(t){super(t)}map(t){return this}flatMap(t){return this}getOrElse(t){return t}isLeft(){return!0}isRight(){return!1}},ce=class extends E{constructor(t){super(t)}map(t){return E.of(t(this.value))}flatMap(t){return t(this.value)}getOrElse(t){return this.value}isLeft(){return!1}isRight(){return!0}},Ln=e=>e instanceof E;var Fn="/api/public/protocol-rpc";var xt=(n=>(n[n.INDIVIDUAL=0]="INDIVIDUAL",n[n.BUSINESS=1]="BUSINESS",n))(xt||{}),Yn={1:"Business",0:"Individual"};
1
+ "use strict";var Ae=Object.defineProperty;var Ut=Object.getOwnPropertyDescriptor;var Ht=Object.getOwnPropertyNames;var Ft=Object.prototype.hasOwnProperty;var Lt=(e,t)=>{for(var n in t)Ae(e,n,{get:t[n],enumerable:!0})},Yt=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Ht(t))!Ft.call(e,a)&&a!==n&&Ae(e,a,{get:()=>t[a],enumerable:!(r=Ut(t,a))||r.enumerable});return e};var jt=e=>Yt(Ae({},"__esModule",{value:!0}),e);var ma={};Lt(ma,{ACCOUNT_STATEMENT_RECEIPT_KINDS:()=>ea,AccountIntentActions:()=>W,BurnAuth:()=>b,CASHIE_ACCOUNT_TYPE_LABELS:()=>ua,CASHIE_IDENTITY_SOUL_CONTRACT_ABI:()=>Kn,CASHIE_IDENTITY_SOUL_EIP712_NAME:()=>xe,CASHIE_IDENTITY_SOUL_EIP712_VERSION:()=>Re,CASHIE_JSON_DATA_URI_BASE64_PREFIX:()=>j,CASHIE_MEMBERSHIP_BADGE_CONTRACT_ABI:()=>Qn,CASHIE_MEMBERSHIP_BADGE_METADATA_FORMAT:()=>G,CASHIE_PAYMENT_RECORD_BADGE_CONTRACT_ABI:()=>Xn,CASHIE_PAYMENT_RECORD_BADGE_METADATA_FORMAT:()=>$,CASHIE_RECEIPT_BADGE_CONTRACT_ABI:()=>Zn,CASHIE_RECEIPT_BADGE_METADATA_FORMAT:()=>z,CASHIE_ROUTER_GUARD_CONTRACT_ABI:()=>Jn,CASHIE_ROUTER_V1_CONTRACT_ABI:()=>qn,CASHIE_SVG_DATA_URI_BASE64_PREFIX:()=>V,COMMON_ERROR_CODES:()=>Nt,CashieAccountType:()=>kt,DEFAULT_MAX_AGE_MS:()=>ia,EIP1193_ERROR_CODES:()=>Bt,EIP5792_ERROR_CODES:()=>Ot,ERC7715ValidationError:()=>X,ERC7715_ERROR_CODES:()=>vt,Either:()=>S,FATAL_ERROR_CODES:()=>Dt,IDENTITY_MINT_CONSENT_EIP712_TYPE_STRING:()=>zt,IDENTITY_MINT_EIP712_TYPES:()=>we,IDENTITY_MINT_PAYLOAD_EIP712_TYPES:()=>Ee,IDENTITY_MINT_PAYLOAD_EIP712_TYPE_STRING:()=>Vt,IdentityIssuer:()=>Ce,IdentityIssuerId:()=>Z,IdentityType:()=>w,IntentActions:()=>Sn,JSON_IDENTITY_TYPE_LABEL_TO_IDENTITY_TYPE:()=>Ke,OCAP_STATEMENT_PREFIX:()=>Ct,OcapAudiences:()=>St,OcapValidationError:()=>H,PLAID_IDV_ERROR_MESSAGE:()=>qe,PRIMARY_TYPE_IDENTITY_MINT_CONSENT:()=>Me,PRIMARY_TYPE_IDENTITY_MINT_PAYLOAD:()=>Pe,PROTOCOL_RPC_PROXY_PATH:()=>ya,PaymentIntentActions:()=>C,PlaidIdvErrorCode:()=>We,ReceiptType:()=>ue,RpcError:()=>Ve,SoulManager:()=>Le,addressSchema:()=>g,assertUrl:()=>L,basePaymentDetailsDataSchema:()=>le,baseScopeSchema:()=>_,billingPeriodSchema:()=>Ne,buildCashieIdentitySoulDomain:()=>_e,buildIdentityCommitmentHash:()=>Wt,buildIdentityMintConsentTypedData:()=>$e,buildIdentityMintProofTypedData:()=>Ge,buildOcapId:()=>he,burnAuthSchema:()=>te,bytes32HexSchema:()=>ie,canonicalOcapPayload:()=>_t,cashieIdentitySoulIdentityTypeJsonSchema:()=>Je,cashieIdentitySoulTokenMetadataJsonSchema:()=>ye,cashieIdentitySoulTokenMetadataSchema:()=>dn,cashieMembershipBadgeMetadataSchema:()=>pe,cashiePaymentRecordBadgeMetadataSchema:()=>de,cashieReceiptBadgeMetadataSchema:()=>oe,cashieReceiptBadgeSoulBoundToSchema:()=>se,createPaymentRpcClient:()=>Fe,decodeCashieJsonDataUriToUtf8:()=>dt,decodeCashieSvgDataUriToUtf8:()=>O,encodeIntent:()=>Mt,encodeIntentData:()=>Rt,encodeMembershipBadgeMintPayload:()=>it,encodePaymentRecordBadgeMintPayload:()=>tt,encodeReceiptBadgeMintPayload:()=>Ze,erc20TokenPaymentPermissionSchema:()=>Te,expiryRuleSchema:()=>ne,findTransactionHashForBadgeId:()=>na,generateSalt:()=>Xt,getErrorMessage:()=>da,getIntentDataHash:()=>Pt,getIntentHash:()=>Wn,getMembershipBadgeMintPayloadHash:()=>st,getPaymentRecordBadgeMintPayloadHash:()=>nt,getPermissionsInfoResultParamsSchema:()=>gt,getReceiptBadgeMintPayloadHash:()=>Xe,getSupportedExecutionPermissionsResultSchema:()=>ht,hashIdentityMintConsentTypedData:()=>qt,hashIdentityMintProofTypedData:()=>Jt,hex0xSchema:()=>R,hexSchema:()=>I,identityAccountFor:()=>Gt,identityMintRuleSchema:()=>ae,identityMintSignPayloadWithSignatureSchema:()=>Y,identityTokenIdFor:()=>B,identityTypeSchema:()=>ee,initCodeDataSchema:()=>D,isEither:()=>pa,isPaymentIntentAction:()=>Et,isPaymentIntentTrackingEntry:()=>ta,membershipBadgeIdFromMintPayload:()=>mn,parseBasePaymentDetailsData:()=>hn,parseBaseScopeSchema:()=>en,parseBillingPeriod:()=>gn,parseCashieIdentitySoulTokenMetadata:()=>Be,parseCashieJsonDataUriJson:()=>v,parseCashieMembershipBadgeMetadata:()=>ut,parseCashieMembershipBadgeMetadataFromBadgeUri:()=>De,parseCashieMetadataDataUri:()=>Tn,parseCashiePaymentRecordBadgeMetadata:()=>yt,parseCashiePaymentRecordBadgeMetadataFromBadgeUri:()=>ve,parseCashieReceiptBadgeMetadata:()=>pt,parseCashieReceiptBadgeMetadataFromBadgeUri:()=>Oe,parseERC20TokenPaymentPermission:()=>An,parseExpiryRule:()=>an,parseGetPermissionsInfoResultParams:()=>_n,parseGetSupportedExecutionPermissionsResult:()=>Cn,parseIdentityMintRule:()=>rn,parseInitCodeData:()=>Rn,parsePaymentDetails:()=>bn,parsePaymentDetailsType:()=>fn,parsePermission:()=>xn,parsePermissionRequest:()=>Pn,parsePermissionResponse:()=>En,parsePermissionsRequest:()=>Mn,parsePermissionsResponse:()=>wn,parseRule:()=>sn,parseWithSchema:()=>u,paymentDetailsSchema:()=>ke,paymentDetailsTypeSchema:()=>ce,paymentRecordBadgeIdFromMintPayload:()=>at,paymentRecordBadgeIdFromPaymentIntent:()=>Se,paymentRecordBadgeMintPayloadFromPaymentIntent:()=>rt,permissionRequestSchema:()=>ge,permissionResponseSchema:()=>Ue,permissionSchema:()=>Ie,permissionSchemas:()=>In,permissionsRequestSchema:()=>Tt,permissionsResponseSchema:()=>It,plaidIdvError:()=>Qt,prepareStatement:()=>sa,receiptBadgeIdFromMintPayload:()=>Qe,receiptBadgeIdFromPaymentIntent:()=>me,receiptBadgeMintPayloadFromPaymentIntent:()=>et,recurringPaymentDetailsSchema:()=>lt,rewardItemSchema:()=>mt,ruleSchema:()=>re,ruleSchemas:()=>nn,singlePaymentDetailsSchema:()=>ct,supportedExecutionPermissionInfoSchema:()=>ft,validateAndBuildOcap:()=>ra});module.exports=jt(ma);var w={Individual:0,Business:1},b={IssuerOnly:0,OwnerOnly:1,Both:2,Neither:3},xe="CashieIdentitySoul",Re="1",Pe="IdentityMintPayload",Me="IdentityMintConsent",Vt="IdentityMintPayload(uint8 identityType,string domain,uint8 burnAuth,bytes identityCommitment,address to)",zt="IdentityMintConsent(uint8 identityType,string domain,uint8 burnAuth,bytes identityCommitment,address to,bytes proof)",Ee={IdentityMintPayload:[{name:"identityType",type:"uint8"},{name:"domain",type:"string"},{name:"burnAuth",type:"uint8"},{name:"identityCommitment",type:"bytes"},{name:"to",type:"address"}]},we={IdentityMintConsent:[{name:"identityType",type:"uint8"},{name:"domain",type:"string"},{name:"burnAuth",type:"uint8"},{name:"identityCommitment",type:"bytes"},{name:"to",type:"address"},{name:"proof",type:"bytes"}]};var M=require("viem"),$t=(1n<<160n)-1n;function B(e){return(0,M.hexToBigInt)((0,M.getAddress)(e))}function Gt(e){let t=e&$t;return(0,M.getAddress)((0,M.numberToHex)(t,{size:20}))}function Wt(e,t){let n=`0x${e}-${t}`;return(0,M.keccak256)(n)}var F=require("viem");function _e(e,t){let n=(0,F.hexToBigInt)(e);return{name:xe,version:Re,chainId:n,verifyingContract:t}}function $e(e){return{domain:_e(e.chainId,e.verifyingContract),types:we,primaryType:Me,message:e.message}}function Ge(e){return{domain:_e(e.chainId,e.verifyingContract),types:Ee,primaryType:Pe,message:e.message}}function qt(e){let{domain:t,types:n,primaryType:r,message:a}=$e(e);return(0,F.hashTypedData)({domain:t,types:n,primaryType:r,message:a})}function Jt(e){let{domain:t,types:n,primaryType:r,message:a}=Ge(e);return(0,F.hashTypedData)({domain:t,types:n,primaryType:r,message:a})}var Z=(n=>(n.PLAID="plaid-identity",n.BUSINESS="business-identity",n))(Z||{});function Kt(){let e=globalThis.crypto;if(!e?.getRandomValues)throw new Error("Web Crypto is not available (need Node.js 19+ or a modern browser).");return e}function Zt(e){return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}function Xt(){let e=new Uint8Array(32);return Kt().getRandomValues(e),`0x${Zt(e)}`}function L(e){if(!e)throw new Error("URL is required");if(!e.startsWith("https://")&&!e.startsWith("http://"))throw new Error("URL must start with https or http");return e.trim()}var Ce=class{#n;constructor(t){t.idvProverUrl=L(t.idvProverUrl),this.#n=t}async postIdvProver(t,n){let r=this.#n.idvProverUrl,a=await fetch(`${r}/api/v1/idv/${t}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!a.ok){let o=await a.json().catch(()=>({}));throw new Error(o.error||o.error_message||`IDV request failed: ${a.statusText}`)}return a.json()}async generatePlaidIdentityProof(t){let{account:n}=t;return this.postIdvProver("generate-identity-proof",{account:n,identityIssuerId:"plaid-identity"})}async generateBusinessIdentityProof(t){let{account:n}=t;return this.postIdvProver("generate-identity-proof",{account:n,identityIssuerId:"business-identity",domain:t.domain})}async issueIdentityProof(t){if(!this.isSupportedIdentityIssuerId(t.identityIssuerId))throw new Error(`Unsupported identity issuer ID: ${t.identityIssuerId}`);switch(t.identityIssuerId){case"plaid-identity":return this.generatePlaidIdentityProof(t.params);case"business-identity":return this.generateBusinessIdentityProof(t.params)}}isSupportedIdentityIssuerId(t){return Object.values(Z).includes(t)}};var We=(a=>(a.IDV_SESSION_SUCCESS="IDV_SESSION_SUCCESS",a.IDV_SESSION_PENDING_REVIEW="IDV_SESSION_PENDING_REVIEW",a.INVALID_IDV_SESSION="INVALID_IDV_SESSION",a.IDV_MAX_FAILED_VERIFICATION_THRESHOLD_REACHED="IDV_MAX_FAILED_VERIFICATION_THRESHOLD_REACHED",a))(We||{}),qe={IDV_SESSION_SUCCESS:"IDV session has already been completed.",IDV_SESSION_PENDING_REVIEW:"IDV session is pending review. Please wait for review.",INVALID_IDV_SESSION:"idvSession is required and must be a string.",IDV_MAX_FAILED_VERIFICATION_THRESHOLD_REACHED:"Maximum failed verification threshold reached. Please contact support."},Qt=e=>({error_code:e,error_message:qe[e]});var U=require("viem");var p=require("zod");var l=require("zod");var x=require("zod"),Q=require("viem"),g=x.z.custom(e=>typeof e=="string"&&(0,Q.isAddress)(e),{message:"Expected valid Ethereum address"}),I=x.z.custom(e=>typeof e=="string"&&(0,Q.isHex)(e),{message:"Expected valid hex string"}),_=x.z.object({type:x.z.string(),isAdjustmentAllowed:x.z.boolean(),justification:x.z.string(),data:x.z.record(x.z.string(),x.z.unknown())}).strict(),X=class extends Error{schemaName;zodError;constructor(t,n){let r=n.issues.map(a=>{let o=a.path.length>0?` at ${a.path.join(".")}`:"";return`${a.message}${o}`}).join("; ");super(`Invalid ERC-7715 "${t}": ${r}`),this.name="ERC7715ValidationError",this.schemaName=t,this.zodError=n}};function u(e,t,n){let r=t.safeParse(n);if(!r.success)throw new X(e,r.error);return r.data}function en(e){return u("BaseScopeSchema",_,e)}var ee=l.z.union([l.z.literal(w.Individual),l.z.literal(w.Business)]),te=l.z.union([l.z.literal(b.IssuerOnly),l.z.literal(b.OwnerOnly),l.z.literal(b.Both),l.z.literal(b.Neither)]),tn=I.refine(e=>e.length===66,{message:"Expected 32-byte hex string (0x + 64 hex chars)"}),Y=l.z.object({identityType:ee,domain:l.z.string(),burnAuth:te,identityCommitment:I,to:g,proof:I,signature:I,salt:tn}).strict(),ne=_.omit({type:!0,data:!0}).extend({type:l.z.literal("expiry"),data:l.z.object({timestamp:l.z.number().int()}).strict()}).strict(),ae=_.omit({type:!0,data:!0}).extend({type:l.z.literal("identity-mint"),data:l.z.object({identityMintPayload:Y}).strict()}).strict(),re=l.z.discriminatedUnion("type",[ne,ae]),nn={expiry:ne,identityMint:ae};function an(e){return u("ExpiryRule",ne,e)}function rn(e){return u("IdentityMintRule",ae,e)}function sn(e){return u("Rule",re,e)}var j="data:application/json;base64,",V="data:image/svg+xml;base64,",z="Cashie-ReceiptBadge-v1",$="Cashie-PaymentRecordBadge-v1",G="Cashie-MembershipBadge-v1",Je=p.z.enum(["Individual","Business"]),Ke={Individual:w.Individual,Business:w.Business},A=p.z.string().regex(/^\d+$/,"Expected decimal string"),R=p.z.string().regex(/^0x[0-9a-fA-F]+$/,"Expected non-empty 0x-prefixed hex"),ie=R.refine(e=>e.length===66,{message:"Expected 32-byte hex string (0x + 64 hex chars)"}),se=p.z.object({identityContract:R,tokenId:A}).strict(),oe=p.z.object({name:p.z.string(),description:p.z.string(),image:p.z.string(),soulBoundTo:se,receiptType:p.z.enum(["OneTime","Recurring"]),blockNumber:A,recipient:R,chainId:A,tokenAddress:R,allowance:A,salt:ie}).strict(),on=A.refine(e=>{let t=Number(e);return Number.isInteger(t)&&t>=b.IssuerOnly&&t<=b.Neither},{message:"burnAuth must be IERC5484 enum ordinal (0\u20133)"}).transform(e=>Number(e)),de=p.z.object({name:p.z.string(),description:p.z.string(),image:p.z.string(),soulBoundTo:se,blockNumber:A,payer:R,chainId:A,tokenAddress:R,allowance:A,receiptBadgeId:A,salt:ie}).strict(),pe=p.z.object({name:p.z.string(),description:p.z.string(),image:p.z.string(),soulBoundTo:se,blockNumber:A,chainId:A,recipient:R,isMembershipActive:p.z.enum(["true","false"]),salt:ie}).strict(),ye=p.z.object({name:p.z.string(),description:p.z.string(),image:p.z.string(),identityType:Je.transform(e=>Ke[e]),domain:p.z.string(),burnAuth:on,identityCommitment:R}).strict(),dn=p.z.object({name:p.z.string(),description:p.z.string(),image:p.z.string(),identityType:ee,domain:p.z.string(),burnAuth:te,identityCommitment:R}).strict();var m=require("viem");var ue={OneTime:0,Recurring:1},pn=[{type:"address",name:"identityContract"},{type:"uint256",name:"tokenId"},{type:"uint8",name:"receiptType"},{type:"uint256",name:"blockNumber"},{type:"address",name:"recipient"},{type:"uint256",name:"chainId"},{type:"address",name:"tokenAddress"},{type:"uint256",name:"allowance"},{type:"bytes32",name:"salt"}];function Ze(e){return(0,m.encodeAbiParameters)([...pn],[e.soulBoundTo.identityContract,e.soulBoundTo.tokenId,e.receiptType,e.blockNumber,e.recipient,e.chainId,e.tokenAddress,e.allowance,e.salt])}function Xe(e){return(0,m.keccak256)(Ze(e))}function Qe(e){return BigInt(Xe(e))}function et(e,t,n,r){let{payer:a,recipient:o,tokenAddress:d,allowance:i}=t.data;return{soulBoundTo:{identityContract:(0,m.getAddress)(e),tokenId:B(a)},receiptType:r,blockNumber:n,recipient:(0,m.getAddress)(o),chainId:(0,m.hexToBigInt)(t.chainId),tokenAddress:(0,m.getAddress)(d),allowance:(0,m.hexToBigInt)(i),salt:t.salt}}function me(e,t,n,r){return Qe(et(e,t,n,r))}var yn=[{type:"address",name:"identityContract"},{type:"uint256",name:"tokenId"},{type:"uint256",name:"blockNumber"},{type:"address",name:"payer"},{type:"uint256",name:"chainId"},{type:"address",name:"tokenAddress"},{type:"uint256",name:"allowance"},{type:"uint256",name:"receiptBadgeId"},{type:"bytes32",name:"salt"}];function tt(e){return(0,m.encodeAbiParameters)([...yn],[e.soulBoundTo.identityContract,e.soulBoundTo.tokenId,e.blockNumber,e.payer,e.chainId,e.tokenAddress,e.allowance,e.receiptBadgeId,e.salt])}function nt(e){return(0,m.keccak256)(tt(e))}function at(e){return BigInt(nt(e))}function rt(e,t,n,r){let{payer:a,recipient:o,tokenAddress:d,allowance:i}=t.data;return{soulBoundTo:{identityContract:(0,m.getAddress)(e),tokenId:B(o)},blockNumber:n,payer:(0,m.getAddress)(a),chainId:(0,m.hexToBigInt)(t.chainId),tokenAddress:(0,m.getAddress)(d),allowance:(0,m.hexToBigInt)(i),receiptBadgeId:r,salt:t.salt}}function Se(e,t,n,r){let a=me(e,t,n,r);return at(rt(e,t,n,a))}var un=[{type:"address",name:"identityContract"},{type:"uint256",name:"tokenId"},{type:"uint256",name:"blockNumber"},{type:"uint256",name:"chainId"},{type:"address",name:"recipient"},{type:"bytes32",name:"salt"}];function it(e){return(0,m.encodeAbiParameters)([...un],[e.soulBoundTo.identityContract,e.soulBoundTo.tokenId,e.blockNumber,e.chainId,e.recipient,e.salt])}function st(e){return(0,m.keccak256)(it(e))}function mn(e){return BigInt(st(e))}function ot(e){let t=e.replace(/\s+/g,"");try{let n=atob(t),r=new Uint8Array(n.length);for(let a=0;a<n.length;a++)r[a]=n.charCodeAt(a);return new TextDecoder("utf8",{fatal:!0}).decode(r)}catch{throw new Error("Failed to Base64-decode Cashie data URI payload (invalid encoding)")}}function dt(e){if(!e.startsWith(j))throw new Error(`Expected Cashie JSON data URI prefix "${j}"`);let t=e.slice(j.length);return ot(t)}function O(e){if(!e.startsWith(V))throw new Error(`Expected Cashie SVG data URI prefix "${V}"`);let t=e.slice(V.length);return ot(t)}function v(e){let t=dt(e);return JSON.parse(t)}function Be(e){let t=v(e);return ye.parse(t)}function pt(e){let t=v(e);return oe.parse(t)}function Oe(e,t){if(t!==z)throw new Error(`Expected ERC-5114 metadataFormat "${z}", received "${t}"`);return pt(e)}function yt(e){let t=v(e);return de.parse(t)}function ve(e,t){if(t!==$)throw new Error(`Expected ERC-5114 metadataFormat "${$}", received "${t}"`);return yt(e)}function ut(e){let t=v(e);return pe.parse(t)}function De(e,t){if(t!==G)throw new Error(`Expected ERC-5114 metadataFormat "${G}", received "${t}"`);return ut(e)}function cn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ln(e){if("identityType"in e)return{kind:"identitySoul",data:ye.parse(e)};if("receiptType"in e)return{kind:"receiptBadge",format:z,data:oe.parse(e)};if("receiptBadgeId"in e)return{kind:"paymentRecordBadge",format:$,data:de.parse(e)};if("isMembershipActive"in e)return{kind:"membershipBadge",format:G,data:pe.parse(e)};throw new Error("Unrecognized Cashie metadata JSON (expected identityType, receiptType, receiptBadgeId, or isMembershipActive)")}function Tn(e){let t=v(e);if(!cn(t))throw new Error("Unrecognized Cashie metadata JSON (expected identityType, receiptType, receiptBadgeId, or isMembershipActive)");return ln(t)}var N=require("viem"),k=require("viem/chains");var s=require("zod"),fe=require("viem");var f=require("zod");var h=require("zod");var Ne=h.z.enum(["weekly","monthly","annually"]),ce=h.z.enum(["single","recurring"]),mt=h.z.object({recipient:g,rewardAmount:I,rewardTokenAddress:g}).strict(),le=h.z.object({allowance:I,tokenAddress:g,rewardItems:h.z.array(mt).optional()}).strict(),ct=le.extend({type:h.z.literal(ce.enum.single)}).strict(),lt=le.extend({type:h.z.literal(ce.enum.recurring),startDate:h.z.number().int().optional(),billingPeriod:Ne}).strict(),ke=h.z.discriminatedUnion("type",[ct,lt]),Te=_.omit({type:!0,data:!0}).extend({type:h.z.literal("erc20-token-payment"),data:h.z.object({recipient:g,paymentDetails:ke}).strict()}).strict(),Ie=h.z.discriminatedUnion("type",[Te]),In={"erc20-token-payment":Te};function gn(e){return u("BillingPeriod",Ne,e)}function fn(e){return u("PaymentDetailsType",ce,e)}function hn(e){return u("BasePaymentDetailsData",le,e)}function bn(e){return u("PaymentDetails",ke,e)}function An(e){return u("ERC20TokenPaymentPermission",Te,e)}function xn(e){return u("Permission",Ie,e)}var D=f.z.object({factory:g,factoryData:I}).strict(),ge=f.z.object({chainId:I,from:g.optional(),to:g,permission:Ie,rules:f.z.array(re).optional()}).strict(),Tt=f.z.array(ge),Ue=ge.extend({from:g,context:I,dependencies:f.z.array(D),delegationManager:g}).strict(),It=f.z.array(Ue),gt=f.z.object({chainIds:f.z.array(I)}).strict(),ft=f.z.object({chainIds:f.z.array(I),ruleTypes:f.z.array(f.z.string())}).strict(),ht=f.z.object({"erc20-token-payment":ft}).strict();function Rn(e){return u("InitCodeData",D,e)}function Pn(e){return u("PermissionRequest",ge,e)}function Mn(e){return u("PermissionsRequest",Tt,e)}function En(e){return u("PermissionResponse",Ue,e)}function wn(e){return u("PermissionsResponse",It,e)}function _n(e){return u("GetPermissionsInfoResultParams",gt,e)}function Cn(e){return u("GetSupportedExecutionPermissionsResult",ht,e)}var C=(o=>(o.PAYMENT_C2B="payment-c2b",o.PAYMENT_B2B="payment-b2b",o.PAYMENT_B2C="payment-b2c",o.DEPOSIT="deposit",o.WITHDRAW="withdraw",o))(C||{}),W=(r=>(r.DEACTIVATE_ACCOUNT="deactivate-account",r.RECOVER_ACCOUNT="recover-account",r.FREEZE_ACCOUNT="freeze-account",r))(W||{}),Sn={...C,...W};var c=s.z.custom(e=>typeof e=="string"&&(0,fe.isAddress)(e),{message:"Expected valid Ethereum address"}),y=s.z.custom(e=>typeof e=="string"&&(0,fe.isHex)(e),{message:"Expected valid hex string"}),Bn=s.z.custom(e=>typeof e=="number"&&Number.isInteger(e)&&e>=b.IssuerOnly&&e<=b.Neither,{message:"Expected BurnAuth enum value (0\u20133)"}),On=s.z.object({to:c,data:y}),J=s.z.enum(["receipt","paymentRecord","membership"]),vn=s.z.object({nftAddress:c,nftTokenId:y}),Dn=s.z.object({identitySoulContract:s.z.object({address:c,badgeContracts:s.z.object({paymentRecordBadgeContract:c,receiptBadgeContract:c,membershipBadgeContract:c})})}),Nn=s.z.object({signedIdentityMintPayload:Y,initCodeData:D}).strict(),kn=s.z.object({recipient:c,rewardAmount:y,rewardTokenAddress:c}).strict(),Un=s.z.object({rewardPayer:c,rewardItems:s.z.array(kn),rewardPermissionContext:y,rewardDelegationManager:c}).strict(),q=s.z.object({recipient:c,payer:c,identityMintPayloads:s.z.array(Y),tokenAddress:c,allowance:y,rewardData:Un.optional(),dependencies:s.z.array(D)}).strict(),E={chainId:y,salt:y,permissionContext:y,delegationManager:c},Hn=s.z.discriminatedUnion("action",[s.z.object({action:s.z.literal("payment-c2b"),...E,data:q}).strict(),s.z.object({action:s.z.literal("payment-b2b"),...E,data:q}).strict(),s.z.object({action:s.z.literal("payment-b2c"),...E,data:q}).strict(),s.z.object({action:s.z.literal("deposit"),...E,data:q}).strict(),s.z.object({action:s.z.literal("withdraw"),...E,data:q}).strict(),s.z.object({action:s.z.literal("deactivate-account"),...E,data:s.z.object({accountAddress:c,permissionContexts:s.z.array(y)}).strict()}).strict(),s.z.object({action:s.z.literal("recover-account"),...E,data:s.z.object({accountAddress:c}).strict()}).strict(),s.z.object({action:s.z.literal("freeze-account"),...E,data:s.z.object({accountAddress:c,timestamp:s.z.number().int()}).strict()}).strict()]).transform(e=>e),bt=s.z.object({intent:Hn,status:s.z.enum(["pending","confirmed","failed"]),txHash:y.nullable().optional(),blockNumber:y.nullable().optional()}).strict().transform(e=>e),Fn={payment_getProtocolFeeBps:y,payment_calculateRewardAmount:y,payment_prepareRouterCallsFromAction:s.z.array(On),payment_sendPrePaymentSetup:y,payment_getPrePaymentSetup:Nn.nullable(),cashie_sendIntent:y,cashie_getIntentStatus:bt.nullable(),cashie_getIntentStatuses:s.z.array(bt),discovery_supportedSouls:Dn,identity_getBurnAuth:Bn,identity_getTokenURI:s.z.string().nullable(),badge_getOwnerOf:vn,badge_getBadgeUri:s.z.string().nullable(),badge_getMetadataFormat:s.z.string(),badge_totalBadgesOfIdentity:y,badge_badgeOfIdentityByIndex:y,badge_badgesOfIdentity:s.z.array(y)},At=s.z.tuple([s.z.object({chainHex:y,badgeId:y,badgeKind:J})]),sr={badge_getOwnerOf:At,badge_getBadgeUri:At,badge_getMetadataFormat:s.z.tuple([s.z.object({chainHex:y,badgeKind:J})]),badge_totalBadgesOfIdentity:s.z.tuple([s.z.object({chainHex:y,account:c,badgeKind:J})]),badge_badgeOfIdentityByIndex:s.z.tuple([s.z.object({chainHex:y,account:c,badgeKind:J,index:y})]),badge_badgesOfIdentity:s.z.tuple([s.z.object({chainHex:y,account:c,badgeKind:J,offset:y,limit:y})])};var He=class extends Error{method;zodError;constructor(t,n){let r=n.issues.map(a=>{let o=a.path.length>0?` at ${a.path.join(".")}`:"";return`${a.message}${o}`}).join("; ");super(`Invalid RPC response for "${t}": ${r}`),this.name="PaymentRpcResponseValidationError",this.method=t,this.zodError=n}};function xt(e,t){let n=Fn[e].safeParse(t);if(!n.success)throw new He(e,n.error);return n.data}var Fe=e=>{let t=()=>({"0xaa36a7":k.sepolia,"0x539":k.localhost,"0x7a69":k.anvil}),n=i=>{let P=(0,N.toHex)(i),K=t()[P];if(!K)throw new Error(`Chain ${P} is not supported`);return K},{url:r,chainId:a}=e,o=(0,N.createPublicClient)({chain:n(a),transport:(0,N.http)(L(r))}),d=async(i,P)=>{let K=await o.request({method:i,params:P});return xt(i,K)};return{getIdentitySoulDiscovery:i=>d("discovery_supportedSouls",i),getProtocolFeeBps:i=>d("payment_getProtocolFeeBps",i),calculateRewardAmount:i=>d("payment_calculateRewardAmount",i),sendIntent:i=>d("cashie_sendIntent",i),getIntentStatus:i=>d("cashie_getIntentStatus",i),getIntentStatuses:i=>d("cashie_getIntentStatuses",i),prepareRouterCallsFromAction:i=>d("payment_prepareRouterCallsFromAction",i),getBurnAuth:i=>d("identity_getBurnAuth",i),getTokenURI:i=>d("identity_getTokenURI",i),sendPrePaymentSetup:i=>d("payment_sendPrePaymentSetup",i),getPrePaymentSetup:i=>d("payment_getPrePaymentSetup",i),getBadgeOwnerOf:i=>d("badge_getOwnerOf",i),getBadgeUri:i=>d("badge_getBadgeUri",i),getBadgeMetadataFormat:i=>d("badge_getMetadataFormat",i),getTotalBadgesOfIdentity:i=>d("badge_totalBadgesOfIdentity",i),getBadgeOfIdentityByIndex:i=>d("badge_badgeOfIdentityByIndex",i),getBadgesOfIdentity:i=>d("badge_badgesOfIdentity",i)}};var Le=class{#n;#r;#i;#s;#o;#d;#p;#t;#e;#y=new Map;#u=new Map;#m;constructor(t){let{identityIssuer:n,cashieRpcUrl:r,chainIdHex:a}=t;this.#m=n,this.#t=Fe({url:r,chainId:(0,U.fromHex)(a,"number")}),this.#e=a}#a(){if(!this.isInitialized())throw new Error("Soul manager is not initialized")}isInitialized(){return this.#n!==void 0&&this.#r!==void 0&&this.#i!==void 0&&this.#s!==void 0}async init(){let t=await this.#t.getIdentitySoulDiscovery([{chainHex:this.#e}]);if(!t)throw new Error("Failed to get supported souls");this.#n=t.identitySoulContract.address,this.#r=t.identitySoulContract.badgeContracts.paymentRecordBadgeContract,this.#i=t.identitySoulContract.badgeContracts.receiptBadgeContract,this.#s=t.identitySoulContract.badgeContracts.membershipBadgeContract;let[n,r,a]=await Promise.all([this.#t.getBadgeMetadataFormat([{chainHex:this.#e,badgeKind:"receipt"}]),this.#t.getBadgeMetadataFormat([{chainHex:this.#e,badgeKind:"paymentRecord"}]),this.#t.getBadgeMetadataFormat([{chainHex:this.#e,badgeKind:"membership"}])]);if(!n||!r||!a)throw new Error("Failed to get badge metadata formats");this.#o=n,this.#d=r,this.#p=a}async prepareIdentityMintConsent(t){if(this.#a(),!this.#n)throw new Error("Identity soul contract is not initialized");let{account:n}=t.params;if(!n)throw new Error("Account is missing from the request");let r=await this.#m.issueIdentityProof(t),{identityType:a,domain:o,burnAuth:d,identityCommitment:i,proof:P}=r;return{chainId:this.#e,verifyingContract:this.#n,message:{to:n,identityType:a,domain:o,burnAuth:d,identityCommitment:i,proof:P}}}async getCashieIdentitySoulTokenMetadata(t){if(this.#a(),!this.#n)throw new Error("Identity soul contract is not initialized");if(!t)throw new Error("Account is not initialized");let n=B(t),r=(0,U.toHex)(n),a=await this.#t.getTokenURI([{chainHex:this.#e,tokenId:r}]);if(!a)return;let o=Be(a),d=O(o.image);if(!d)throw new Error("Failed to decode image SVG for identity soul token metadata");return o.image=d,o}async getCashieReceiptBadgeMetadata(t){if(this.#a(),!this.#i)throw new Error("Receipt badge contract is not initialized");if(!this.#o)throw new Error("Receipt badge metadata format is not initialized");let n=this.#y.get(t);if(n)return n;let r=await this.#t.getBadgeUri([{chainHex:this.#e,badgeId:t,badgeKind:"receipt"}]);if(!r)return;let a=Oe(r,this.#o),o=O(a.image);if(!o)throw new Error("Failed to decode image SVG for receipt badge metadata");return a.image=o,this.#y.set(t,a),a}async getCashiePaymentRecordBadgeMetadata(t){if(this.#a(),!this.#r)throw new Error("Payment record badge contract is not initialized");if(!this.#d)throw new Error("Payment record badge metadata format is not initialized");let n=this.#u.get(t);if(n)return n;let r=await this.#t.getBadgeUri([{chainHex:this.#e,badgeId:t,badgeKind:"paymentRecord"}]);if(!r)return;let a=ve(r,this.#d),o=O(a.image);if(!o)throw new Error("Failed to decode image SVG for payment record badge metadata");return a.image=o,this.#u.set(t,a),a}async#c(t){if(this.#a(),!this.#s)throw new Error("Membership badge contract is not initialized");let n=await this.#t.getBadgesOfIdentity([{chainHex:this.#e,account:t,badgeKind:"membership",offset:(0,U.toHex)(0),limit:(0,U.toHex)(1)}]);if(n.length!==0){if(n.length>1)throw new Error("Multiple membership badges minted for account");return n[0]}}async getCashieMembershipBadgeMetadata(t){if(this.#a(),!this.#p)throw new Error("Membership badge metadata format is not initialized");let n=await this.#c(t);if(!n)return;let r=await this.#t.getBadgeUri([{chainHex:this.#e,badgeId:n,badgeKind:"membership"}]);if(!r)return;let a=De(r,this.#p),o=O(a.image);if(!o)throw new Error("Failed to decode image SVG for membership badge metadata");return a.image=o,a}};var T=require("viem");var Ln=[{name:"action",type:"string"},{name:"recipient",type:"address"},{name:"payer",type:"address"},{name:"rewardData",type:"tuple",components:[{name:"rewardPayer",type:"address"},{name:"rewardItems",type:"tuple[]",components:[{name:"recipient",type:"address"},{name:"rewardAmount",type:"uint256"},{name:"rewardTokenAddress",type:"address"}]},{name:"rewardDelegationManager",type:"address"}]},{name:"tokenAddress",type:"address"},{name:"allowance",type:"uint256"}],Yn=[{name:"action",type:"string"},{name:"accountAddress",type:"address"},{name:"permissionContextsHash",type:"bytes32"}],jn=[{name:"action",type:"string"},{name:"accountAddress",type:"address"}],Vn=[{name:"action",type:"string"},{name:"accountAddress",type:"address"},{name:"timestamp",type:"uint256"}],zn=[{name:"action",type:"string"},{name:"chainId",type:"uint256"},{name:"dataHash",type:"bytes32"},{name:"delegationManager",type:"address"},{name:"salt",type:"bytes32"}];function $n(e){if(e.length===0)return(0,T.keccak256)("0x");let t=(0,T.concat)([...e].map(n=>(0,T.keccak256)(n).toLowerCase()).sort());return(0,T.keccak256)(t)}function Gn(e){let t=e.data,n=t.rewardData??{rewardPayer:T.zeroAddress,rewardItems:[],rewardDelegationManager:T.zeroAddress};return(0,T.encodeAbiParameters)(Ln,[e.action,t.recipient,t.payer,{rewardPayer:n.rewardPayer,rewardItems:n.rewardItems.map(r=>({recipient:r.recipient,rewardAmount:BigInt(r.rewardAmount),rewardTokenAddress:r.rewardTokenAddress})),rewardDelegationManager:n.rewardDelegationManager},t.tokenAddress,BigInt(t.allowance)])}function Rt(e){switch(e.action){case"payment-c2b":case"payment-b2b":case"payment-b2c":case"deposit":case"withdraw":return Gn(e);case"deactivate-account":{let t=e.data;return(0,T.encodeAbiParameters)(Yn,[e.action,t.accountAddress,$n(t.permissionContexts)])}case"recover-account":{let t=e.data;return(0,T.encodeAbiParameters)(jn,[e.action,t.accountAddress])}case"freeze-account":{let t=e.data;return(0,T.encodeAbiParameters)(Vn,[e.action,t.accountAddress,BigInt(t.timestamp)])}default:throw new Error(`Unsupported intent action: ${String(e.action)}`)}}function Pt(e){return(0,T.keccak256)(Rt(e))}function Mt(e){return(0,T.encodeAbiParameters)(zn,[e.action,BigInt(e.chainId),Pt(e),e.delegationManager,e.salt])}function Wn(e){return(0,T.keccak256)(Mt(e))}var qn=[{type:"constructor",inputs:[{name:"_initialOwner",type:"address",internalType:"address"},{name:"_treasuryFeeAddress",type:"address",internalType:"address"},{name:"_supportedPaymentTokens",type:"address[]",internalType:"address[]"},{name:"_protocolFeeBps",type:"uint256",internalType:"uint256"},{name:"_paymentProcessorFeeBps",type:"uint256",internalType:"uint256"},{name:"_rewardBps",type:"uint256",internalType:"uint256"},{name:"_protocolRewardToken",type:"address",internalType:"contract IERC20Metadata"},{name:"_stakingManager",type:"address",internalType:"contract IStakingManager"},{name:"_identitySoul",type:"address",internalType:"contract ICashieIdentitySoul"},{name:"_receiptBadge",type:"address",internalType:"contract ICashieReceiptBadge"},{name:"_paymentRecordBadge",type:"address",internalType:"contract ICashiePaymentRecordBadge"},{name:"_membershipBadge",type:"address",internalType:"contract ICashieMembershipBadge"},{name:"_identityVerificationProvers",type:"address[]",internalType:"address[]"},{name:"_delegationManager",type:"address",internalType:"contract IDelegationManager"}],stateMutability:"nonpayable"},{type:"function",name:"acceptOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"addIdentityVerificationProver",inputs:[{name:"prover",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"adjustProtocolFeeBps",inputs:[{name:"_delta",type:"uint256",internalType:"uint256"},{name:"_increase",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"adjustRewardBps",inputs:[{name:"_delta",type:"uint256",internalType:"uint256"},{name:"_increase",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"calculateFee",inputs:[{name:"_amount",type:"uint256",internalType:"uint256"},{name:"_feeBps",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"calculateReward",inputs:[{name:"_paymentTokenAmount",type:"uint256",internalType:"uint256"},{name:"_paymentTokenDecimals",type:"uint8",internalType:"uint8"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"deactivateAccount",inputs:[{name:"accountAddress",type:"address",internalType:"address"},{name:"permissionContexts",type:"bytes[]",internalType:"bytes[]"},{name:"redeemDelegations",type:"tuple[]",internalType:"struct Delegation[]",components:[{name:"delegate",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"},{name:"authority",type:"bytes32",internalType:"bytes32"},{name:"caveats",type:"tuple[]",internalType:"struct Caveat[]",components:[{name:"enforcer",type:"address",internalType:"address"},{name:"terms",type:"bytes",internalType:"bytes"},{name:"args",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"uint256",internalType:"uint256"},{name:"signature",type:"bytes",internalType:"bytes"}]},{name:"salt",type:"bytes32",internalType:"bytes32"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"deactivationContextCount",inputs:[{name:"salt",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"deactivationDelegationHash",inputs:[{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"contextIndex",type:"uint256",internalType:"uint256"}],outputs:[{name:"delegationHash",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"deactivationSaltUsed",inputs:[{name:"salt",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"used",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"delegationActionIncentiveToken",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IERC20Metadata"}],stateMutability:"view"},{type:"function",name:"delegationManager",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IDelegationManager"}],stateMutability:"view"},{type:"function",name:"delegationRewardClaimed",inputs:[{name:"delegationHash",type:"bytes32",internalType:"bytes32"}],outputs:[{name:"claimed",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"deposit",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"_tokenAddress",type:"address",internalType:"address"},{name:"_allowance",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"identitySoul",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ICashieIdentitySoul"}],stateMutability:"view"},{type:"function",name:"identityTokenAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"isIdentityVerificationProver",inputs:[{name:"prover",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isSupportedToken",inputs:[{name:"_tokenAddress",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"isValidSignature",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"},{name:"signature",type:"bytes",internalType:"bytes"}],outputs:[{name:"magicValue",type:"bytes4",internalType:"bytes4"}],stateMutability:"view"},{type:"function",name:"issueIdentityToken",inputs:[{name:"payload",type:"tuple",internalType:"struct IdentityMintPayload",components:[{name:"identityType",type:"uint8",internalType:"enum IdentityType"},{name:"domain",type:"string",internalType:"string"},{name:"burnAuth",type:"uint8",internalType:"enum IERC5484.BurnAuth"},{name:"identityCommitment",type:"bytes",internalType:"bytes"},{name:"to",type:"address",internalType:"address"},{name:"proof",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"salt",type:"bytes32",internalType:"bytes32"}]}],outputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"membershipBadge",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ICashieMembershipBadge"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"payB2B",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"_tokenAddress",type:"address",internalType:"address"},{name:"_allowance",type:"uint256",internalType:"uint256"},{name:"_feeBeneficiaryAddress",type:"address",internalType:"address"},{name:"_receiptBadgeRouterMintPayload",type:"tuple",internalType:"struct ReceiptBadgeRouterMintPayload",components:[{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"receiptType",type:"uint8",internalType:"enum ReceiptType"}]}],outputs:[{name:"receiptBadgeId",type:"uint256",internalType:"uint256"},{name:"paymentRecordBadgeId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"payB2C",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"_tokenAddress",type:"address",internalType:"address"},{name:"_allowance",type:"uint256",internalType:"uint256"},{name:"_feeBeneficiaryAddress",type:"address",internalType:"address"},{name:"_receiptBadgeRouterMintPayload",type:"tuple",internalType:"struct ReceiptBadgeRouterMintPayload",components:[{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"receiptType",type:"uint8",internalType:"enum ReceiptType"}]}],outputs:[{name:"receiptBadgeId",type:"uint256",internalType:"uint256"},{name:"paymentRecordBadgeId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"payC2B",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"_tokenAddress",type:"address",internalType:"address"},{name:"_allowance",type:"uint256",internalType:"uint256"},{name:"_feeBeneficiaryAddress",type:"address",internalType:"address"},{name:"_receiptBadgeRouterMintPayload",type:"tuple",internalType:"struct ReceiptBadgeRouterMintPayload",components:[{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"receiptType",type:"uint8",internalType:"enum ReceiptType"}]}],outputs:[{name:"receiptBadgeId",type:"uint256",internalType:"uint256"},{name:"paymentRecordBadgeId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"paymentProcessorFeeBps",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"paymentRecordBadge",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ICashiePaymentRecordBadge"}],stateMutability:"view"},{type:"function",name:"pendingOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"protocolFeeBps",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"receiptBadge",inputs:[],outputs:[{name:"",type:"address",internalType:"contract ICashieReceiptBadge"}],stateMutability:"view"},{type:"function",name:"receiptBadgeAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"registerToken",inputs:[{name:"_tokenAddress",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"removeIdentityVerificationProver",inputs:[{name:"prover",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"reward",inputs:[{name:"_rewards",type:"tuple[]",internalType:"struct RewardItem[]",components:[{name:"recipient",type:"address",internalType:"address"},{name:"rewardAmount",type:"uint256",internalType:"uint256"},{name:"rewardTokenAddress",type:"address",internalType:"address"}]}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"rewardBps",inputs:[],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"rewardToken",inputs:[],outputs:[{name:"",type:"address",internalType:"contract IERC20Metadata"}],stateMutability:"view"},{type:"function",name:"rewardTokenAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"supportedPaymentTokens",inputs:[{name:"",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"treasuryFeeAddress",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"withdraw",inputs:[{name:"_recipient",type:"address",internalType:"address"},{name:"_tokenAddress",type:"address",internalType:"address"},{name:"_allowance",type:"uint256",internalType:"uint256"},{name:"_feeBeneficiaryAddress",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"AccountDeactivated",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"processor",type:"address",indexed:!0,internalType:"address"},{name:"salt",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"delegationHashes",type:"bytes32[]",indexed:!1,internalType:"bytes32[]"},{name:"disabledCount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"rewardAmount",type:"uint256",indexed:!1,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Deposited",inputs:[{name:"sender",type:"address",indexed:!0,internalType:"address"},{name:"recipient",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"tokenAddress",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"IdentityVerificationProverAdded",inputs:[{name:"prover",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"IdentityVerificationProverRemoved",inputs:[{name:"prover",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"IssueReward",inputs:[{name:"recipient",type:"address",indexed:!0,internalType:"address"},{name:"rewardAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"rewardToken",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferStarted",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Payment",inputs:[{name:"payer",type:"address",indexed:!0,internalType:"address"},{name:"receiver",type:"address",indexed:!0,internalType:"address"},{name:"feeBeneficiaryAddress",type:"address",indexed:!0,internalType:"address"},{name:"allowance",type:"uint256",indexed:!1,internalType:"uint256"},{name:"recipientAmount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"protocolFee",type:"uint256",indexed:!1,internalType:"uint256"},{name:"protocolFeeBps",type:"uint256",indexed:!1,internalType:"uint256"},{name:"tokenAddress",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"event",name:"ProtocolFeeBpsAdjusted",inputs:[{name:"oldFeeBps",type:"uint256",indexed:!1,internalType:"uint256"},{name:"newFeeBps",type:"uint256",indexed:!1,internalType:"uint256"},{name:"increased",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"RewardBpsAdjusted",inputs:[{name:"oldRewardBps",type:"uint256",indexed:!1,internalType:"uint256"},{name:"newRewardBps",type:"uint256",indexed:!1,internalType:"uint256"},{name:"increased",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"Withdrawn",inputs:[{name:"account",type:"address",indexed:!0,internalType:"address"},{name:"recipient",type:"address",indexed:!0,internalType:"address"},{name:"amount",type:"uint256",indexed:!1,internalType:"uint256"},{name:"protocolFee",type:"uint256",indexed:!1,internalType:"uint256"},{name:"protocolFeeBps",type:"uint256",indexed:!1,internalType:"uint256"},{name:"tokenAddress",type:"address",indexed:!1,internalType:"address"}],anonymous:!1},{type:"error",name:"DeactivationSaltAlreadyUsed",inputs:[{name:"salt",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"DelegationAccountMismatch",inputs:[{name:"account",type:"address",internalType:"address"},{name:"delegator",type:"address",internalType:"address"}]},{type:"error",name:"DelegationActionIncentiveTokenNotConfigured",inputs:[]},{type:"error",name:"DelegationRewardAlreadyClaimed",inputs:[{name:"delegationHash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"EmptyDelegationChain",inputs:[]},{type:"error",name:"EmptyPermissionContexts",inputs:[]},{type:"error",name:"EmptyRedeemDelegations",inputs:[]},{type:"error",name:"IdentityVerificationProverAlreadyRegistered",inputs:[{name:"prover",type:"address",internalType:"address"}]},{type:"error",name:"IdentityVerificationProverNotRegistered",inputs:[{name:"prover",type:"address",internalType:"address"}]},{type:"error",name:"InvalidDelegationManager",inputs:[]},{type:"error",name:"InvalidIdentityVerificationProver",inputs:[]},{type:"error",name:"MembershipBadgeNotActive",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"PaymentAmountCannotBeZero",inputs:[]},{type:"error",name:"ProcessorNotEligible",inputs:[]},{type:"error",name:"SafeERC20FailedOperation",inputs:[{name:"token",type:"address",internalType:"address"}]},{type:"error",name:"TokenAllowanceNotApprovedForDeposit",inputs:[]},{type:"error",name:"TokenAllowanceNotApprovedForPayment",inputs:[]},{type:"error",name:"TokenAllowanceNotApprovedForReward",inputs:[{name:"token",type:"address",internalType:"address"},{name:"spender",type:"address",internalType:"address"},{name:"allowance",type:"uint256",internalType:"uint256"}]},{type:"error",name:"TokenAllowanceNotApprovedForWithdraw",inputs:[]},{type:"error",name:"TokenAlreadyRegistered",inputs:[]},{type:"error",name:"TokenNotSupported",inputs:[]}],Jn=[{type:"function",name:"acceptOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pendingOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"router",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"setRouter",inputs:[{name:"_newRouter",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"OwnershipTransferStarted",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RouterSet",inputs:[{name:"router",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"RouterInvalidInterface",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"RouterNotSet",inputs:[]},{type:"error",name:"RouterUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]}],Kn=[{type:"constructor",inputs:[{name:"_name",type:"string",internalType:"string"},{name:"_symbol",type:"string",internalType:"string"},{name:"_owner",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"DOMAIN_VERSION",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"NAME",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"acceptOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"approve",inputs:[{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"pure"},{type:"function",name:"balanceOf",inputs:[{name:"owner",type:"address",internalType:"address"}],outputs:[{name:"",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"burnAuth",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"uint8",internalType:"enum IERC5484.BurnAuth"}],stateMutability:"view"},{type:"function",name:"burnIdentity",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"eip712Domain",inputs:[],outputs:[{name:"fields",type:"bytes1",internalType:"bytes1"},{name:"name",type:"string",internalType:"string"},{name:"version",type:"string",internalType:"string"},{name:"chainId",type:"uint256",internalType:"uint256"},{name:"verifyingContract",type:"address",internalType:"address"},{name:"salt",type:"bytes32",internalType:"bytes32"},{name:"extensions",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"getApproved",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"getDomainHash",inputs:[],outputs:[{name:"",type:"bytes32",internalType:"bytes32"}],stateMutability:"view"},{type:"function",name:"isApprovedForAll",inputs:[{name:"owner",type:"address",internalType:"address"},{name:"operator",type:"address",internalType:"address"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"mintIdentity",inputs:[{name:"payload",type:"tuple",internalType:"struct IdentityMintPayload",components:[{name:"identityType",type:"uint8",internalType:"enum IdentityType"},{name:"domain",type:"string",internalType:"string"},{name:"burnAuth",type:"uint8",internalType:"enum IERC5484.BurnAuth"},{name:"identityCommitment",type:"bytes",internalType:"bytes"},{name:"to",type:"address",internalType:"address"},{name:"proof",type:"bytes",internalType:"bytes"},{name:"signature",type:"bytes",internalType:"bytes"},{name:"salt",type:"bytes32",internalType:"bytes32"}]}],outputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"name",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownerOf",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"pendingOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"router",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"safeTransferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"safeTransferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"_data",type:"bytes",internalType:"bytes"}],outputs:[],stateMutability:"pure"},{type:"function",name:"setApprovalForAll",inputs:[{name:"operator",type:"address",internalType:"address"},{name:"approved",type:"bool",internalType:"bool"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"setRouter",inputs:[{name:"_newRouter",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"supportsInterface",inputs:[{name:"interfaceId",type:"bytes4",internalType:"bytes4"}],outputs:[{name:"",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"symbol",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"tokenIdFor",inputs:[{name:"account",type:"address",internalType:"address"}],outputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],stateMutability:"pure"},{type:"function",name:"tokenURI",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"transferFrom",inputs:[{name:"from",type:"address",internalType:"address"},{name:"to",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"pure"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"Approval",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"approved",type:"address",indexed:!0,internalType:"address"},{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"ApprovalForAll",inputs:[{name:"owner",type:"address",indexed:!0,internalType:"address"},{name:"operator",type:"address",indexed:!0,internalType:"address"},{name:"approved",type:"bool",indexed:!1,internalType:"bool"}],anonymous:!1},{type:"event",name:"Burned",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"auth",type:"uint8",indexed:!1,internalType:"enum IERC5484.BurnAuth"}],anonymous:!1},{type:"event",name:"EIP712DomainChanged",inputs:[],anonymous:!1},{type:"event",name:"Issued",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"burnAuth",type:"uint8",indexed:!1,internalType:"enum IERC5484.BurnAuth"}],anonymous:!1},{type:"event",name:"OwnershipTransferStarted",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RouterSet",inputs:[{name:"router",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"SetDomain",inputs:[{name:"domainHash",type:"bytes32",indexed:!0,internalType:"bytes32"},{name:"name",type:"string",indexed:!1,internalType:"string"},{name:"domainVersion",type:"string",indexed:!1,internalType:"string"},{name:"chainId",type:"uint256",indexed:!1,internalType:"uint256"},{name:"contractAddress",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"Transfer",inputs:[{name:"from",type:"address",indexed:!0,internalType:"address"},{name:"to",type:"address",indexed:!0,internalType:"address"},{name:"tokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"error",name:"BurnAuthNotSupported",inputs:[]},{type:"error",name:"ERC721IncorrectOwner",inputs:[{name:"sender",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InsufficientApproval",inputs:[{name:"operator",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"ERC721InvalidApprover",inputs:[{name:"approver",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InvalidOperator",inputs:[{name:"operator",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InvalidReceiver",inputs:[{name:"receiver",type:"address",internalType:"address"}]},{type:"error",name:"ERC721InvalidSender",inputs:[{name:"sender",type:"address",internalType:"address"}]},{type:"error",name:"ERC721NonTransferable",inputs:[]},{type:"error",name:"ERC721NonexistentToken",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"IdentityAlreadyMinted",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"},{name:"identityType",type:"uint8",internalType:"enum IdentityType"},{name:"domain",type:"string",internalType:"string"},{name:"burnAuth",type:"uint8",internalType:"enum IERC5484.BurnAuth"},{name:"identityCommitment",type:"bytes",internalType:"bytes"}]},{type:"error",name:"InvalidBurnAuth",inputs:[{name:"tokenId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"InvalidIdentityDomain",inputs:[]},{type:"error",name:"InvalidIdentityProof",inputs:[]},{type:"error",name:"InvalidIdentitySignature",inputs:[]},{type:"error",name:"InvalidShortString",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"RouterInvalidInterface",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"RouterNotSet",inputs:[]},{type:"error",name:"RouterUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"RouterUnauthorizedBurn",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"StringTooLong",inputs:[{name:"str",type:"string",internalType:"string"}]}],Zn=[{type:"constructor",inputs:[{name:"owner_",type:"address",internalType:"address"},{name:"identityContract_",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"badgeOfIdentityByIndex",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"},{name:"index",type:"uint256",internalType:"uint256"}],outputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"badgeUri",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"badgesOfIdentity",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"},{name:"offset",type:"uint256",internalType:"uint256"},{name:"limit",type:"uint256",internalType:"uint256"}],outputs:[{name:"badgeIds",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"collectionUri",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"pure"},{type:"function",name:"identityContract",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"metadataFormat",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"pure"},{type:"function",name:"mint",inputs:[{name:"payload",type:"tuple",internalType:"struct ReceiptBadgeMintPayload",components:[{name:"soulBoundTo",type:"tuple",internalType:"struct SoulBoundTo",components:[{name:"identityContract",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"receiptType",type:"uint8",internalType:"enum ReceiptType"},{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"recipient",type:"address",internalType:"address"},{name:"chainId",type:"uint256",internalType:"uint256"},{name:"tokenAddress",type:"address",internalType:"address"},{name:"allowance",type:"uint256",internalType:"uint256"},{name:"salt",type:"bytes32",internalType:"bytes32"}]}],outputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownerOf",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],outputs:[{name:"nftAddress",type:"address",internalType:"address"},{name:"nftTokenId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"pendingOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"router",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"setRouter",inputs:[{name:"_newRouter",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"totalBadgesOfIdentity",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"totalBadges",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"Mint",inputs:[{name:"badgeId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"nftAddress",type:"address",indexed:!0,internalType:"address"},{name:"nftTokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipTransferStarted",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RouterSet",inputs:[{name:"router",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"BadgeNotMinted",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"BadgePageLimitExceeded",inputs:[{name:"limit",type:"uint256",internalType:"uint256"},{name:"maxLimit",type:"uint256",internalType:"uint256"}]},{type:"error",name:"IdentityContractMismatch",inputs:[{name:"expected",type:"address",internalType:"address"},{name:"actual",type:"address",internalType:"address"}]},{type:"error",name:"InvalidIdentityContract",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"ReceiptBadgeMintPayloadAlreadyClaimed",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"RouterInvalidInterface",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"RouterNotSet",inputs:[]},{type:"error",name:"RouterUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"StringsInsufficientHexLength",inputs:[{name:"value",type:"uint256",internalType:"uint256"},{name:"length",type:"uint256",internalType:"uint256"}]}],Xn=[{type:"constructor",inputs:[{name:"owner_",type:"address",internalType:"address"},{name:"identityContract_",type:"address",internalType:"address"},{name:"receiptBadgeContract_",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"badgeOfIdentityByIndex",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"},{name:"index",type:"uint256",internalType:"uint256"}],outputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"badgeUri",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"badgesOfIdentity",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"},{name:"offset",type:"uint256",internalType:"uint256"},{name:"limit",type:"uint256",internalType:"uint256"}],outputs:[{name:"badgeIds",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"collectionUri",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"pure"},{type:"function",name:"identityContract",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"metadataFormat",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"pure"},{type:"function",name:"mint",inputs:[{name:"payload",type:"tuple",internalType:"struct PaymentRecordBadgeMintPayload",components:[{name:"soulBoundTo",type:"tuple",internalType:"struct SoulBoundTo",components:[{name:"identityContract",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"payer",type:"address",internalType:"address"},{name:"chainId",type:"uint256",internalType:"uint256"},{name:"tokenAddress",type:"address",internalType:"address"},{name:"allowance",type:"uint256",internalType:"uint256"},{name:"receiptBadgeId",type:"uint256",internalType:"uint256"},{name:"salt",type:"bytes32",internalType:"bytes32"}]}],outputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownerOf",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],outputs:[{name:"nftAddress",type:"address",internalType:"address"},{name:"nftTokenId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"pendingOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"receiptBadgeContract",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"router",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"setRouter",inputs:[{name:"_newRouter",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"totalBadgesOfIdentity",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"totalBadges",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"Mint",inputs:[{name:"badgeId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"nftAddress",type:"address",indexed:!0,internalType:"address"},{name:"nftTokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipTransferStarted",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RouterSet",inputs:[{name:"router",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"BadgeNotMinted",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"BadgePageLimitExceeded",inputs:[{name:"limit",type:"uint256",internalType:"uint256"},{name:"maxLimit",type:"uint256",internalType:"uint256"}]},{type:"error",name:"IdentityContractMismatch",inputs:[{name:"expected",type:"address",internalType:"address"},{name:"actual",type:"address",internalType:"address"}]},{type:"error",name:"InvalidIdentityContract",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"PaymentRecordBadgeMintPayloadAlreadyClaimed",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"RouterInvalidInterface",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"RouterNotSet",inputs:[]},{type:"error",name:"RouterUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"StringsInsufficientHexLength",inputs:[{name:"value",type:"uint256",internalType:"uint256"},{name:"length",type:"uint256",internalType:"uint256"}]}],Qn=[{type:"constructor",inputs:[{name:"owner_",type:"address",internalType:"address"},{name:"identityContract_",type:"address",internalType:"address"}],stateMutability:"nonpayable"},{type:"function",name:"acceptOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"badgeOfIdentityByIndex",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"},{name:"index",type:"uint256",internalType:"uint256"}],outputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"badgeUri",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"view"},{type:"function",name:"badgesOfIdentity",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"},{name:"offset",type:"uint256",internalType:"uint256"},{name:"limit",type:"uint256",internalType:"uint256"}],outputs:[{name:"badgeIds",type:"uint256[]",internalType:"uint256[]"}],stateMutability:"view"},{type:"function",name:"collectionUri",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"pure"},{type:"function",name:"disableByBadgeId",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"disableByIdentityTokenId",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"identityContract",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"isMembershipActive",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"active",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"membershipState",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"exists",type:"bool",internalType:"bool"},{name:"active",type:"bool",internalType:"bool"}],stateMutability:"view"},{type:"function",name:"metadataFormat",inputs:[],outputs:[{name:"",type:"string",internalType:"string"}],stateMutability:"pure"},{type:"function",name:"mint",inputs:[{name:"payload",type:"tuple",internalType:"struct MembershipBadgeMintPayload",components:[{name:"soulBoundTo",type:"tuple",internalType:"struct SoulBoundTo",components:[{name:"identityContract",type:"address",internalType:"address"},{name:"tokenId",type:"uint256",internalType:"uint256"}]},{name:"blockNumber",type:"uint256",internalType:"uint256"},{name:"chainId",type:"uint256",internalType:"uint256"},{name:"recipient",type:"address",internalType:"address"},{name:"membershipBadgeDetails",type:"tuple",internalType:"struct MembershipBadgeDetails",components:[{name:"isMembershipActive",type:"bool",internalType:"bool"}]},{name:"salt",type:"bytes32",internalType:"bytes32"}]}],outputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],stateMutability:"nonpayable"},{type:"function",name:"owner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"ownerOf",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}],outputs:[{name:"nftAddress",type:"address",internalType:"address"},{name:"nftTokenId",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"pendingOwner",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"renounceOwnership",inputs:[],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"router",inputs:[],outputs:[{name:"",type:"address",internalType:"address"}],stateMutability:"view"},{type:"function",name:"setRouter",inputs:[{name:"_newRouter",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"function",name:"totalBadgesOfIdentity",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"}],outputs:[{name:"totalBadges",type:"uint256",internalType:"uint256"}],stateMutability:"view"},{type:"function",name:"transferOwnership",inputs:[{name:"newOwner",type:"address",internalType:"address"}],outputs:[],stateMutability:"nonpayable"},{type:"event",name:"Disable",inputs:[{name:"badgeId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"Mint",inputs:[{name:"badgeId",type:"uint256",indexed:!0,internalType:"uint256"},{name:"nftAddress",type:"address",indexed:!0,internalType:"address"},{name:"nftTokenId",type:"uint256",indexed:!0,internalType:"uint256"}],anonymous:!1},{type:"event",name:"OwnershipTransferStarted",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"OwnershipTransferred",inputs:[{name:"previousOwner",type:"address",indexed:!0,internalType:"address"},{name:"newOwner",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"event",name:"RouterSet",inputs:[{name:"router",type:"address",indexed:!0,internalType:"address"}],anonymous:!1},{type:"error",name:"BadgeNotMinted",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"BadgePageLimitExceeded",inputs:[{name:"limit",type:"uint256",internalType:"uint256"},{name:"maxLimit",type:"uint256",internalType:"uint256"}]},{type:"error",name:"IdentityContractMismatch",inputs:[{name:"expected",type:"address",internalType:"address"},{name:"actual",type:"address",internalType:"address"}]},{type:"error",name:"InvalidIdentityContract",inputs:[]},{type:"error",name:"MembershipBadgeAlreadyDisabled",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"MembershipBadgeAlreadyMinted",inputs:[{name:"badgeId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"MembershipBadgeMintPayloadAlreadyClaimed",inputs:[{name:"hash",type:"bytes32",internalType:"bytes32"}]},{type:"error",name:"MembershipBadgeNotMinted",inputs:[{name:"identityTokenId",type:"uint256",internalType:"uint256"}]},{type:"error",name:"MembershipPayloadNotSetActive",inputs:[]},{type:"error",name:"OwnableInvalidOwner",inputs:[{name:"owner",type:"address",internalType:"address"}]},{type:"error",name:"OwnableUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"RouterInvalidInterface",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"RouterNotSet",inputs:[]},{type:"error",name:"RouterUnauthorizedAccount",inputs:[{name:"account",type:"address",internalType:"address"}]},{type:"error",name:"StringsInsufficientHexLength",inputs:[{name:"value",type:"uint256",internalType:"uint256"},{name:"length",type:"uint256",internalType:"uint256"}]}];var ea=["payments","deposits","withdrawals","rewards"];var Ye=require("viem");function Et(e){return Object.values(C).includes(e)}function ta(e){return Et(e.intent.action)}function na(e){let{badgeId:t,badgeKind:n,identityContract:r,paymentIntentTrackingEntries:a}=e;if(a.length===0)return null;let o=a.filter(d=>d.status==="confirmed");if(o.length===0)return null;for(let d of o)if(d.txHash&&d.blockNumber)switch(n){case"receipt":{if((0,Ye.toHex)(me(r,d.intent,BigInt(d.blockNumber),ue.OneTime))===t)return d.txHash;break}case"paymentRecord":{if((0,Ye.toHex)(Se(r,d.intent,BigInt(d.blockNumber),ue.OneTime))===t)return d.txHash;break}}return null}var wt=require("viem");function je(e){if(e===null||typeof e!="object")return e;if(Array.isArray(e))return e.map(je).sort((o,d)=>{let i=JSON.stringify(o),P=JSON.stringify(d);return i<P?-1:i>P?1:0});let t=e,n=Object.keys(t).sort(),r={};for(let a of n)r[a]=je(t[a]);return r}function _t(e){return JSON.stringify(je(e))}function he(e){let t=_t(e),n=new TextEncoder().encode(t);return(0,wt.keccak256)(n)}var H=class extends Error{constructor(t){super(t),this.name="OcapValidationError"}};function aa(e,t){if(e.type!=="api")throw new H(`Unsupported resource type: ${e.type}`);if(!t.includes(e.audience))throw new H(`Audience not allowed: ${e.audience}`);if(!e.data?.endpoint||!Array.isArray(e.data.methods))throw new H("Invalid api resource: missing endpoint or methods")}function ra(e){let{resources:t,allowedAudiences:n}=e,r=Array.isArray(t.api)?t.api:[];for(let d of r)aa(d,n);let a={resources:{api:r}},o=he(a);return{ocap:a,ocapId:o}}var ia=300*1e3,Ct="Request OCAP";function sa(e,t){let n=he({resources:t});return`${Ct}:${e}:${n}`}var St=(r=>(r.ACCOUNT_SERVICE="account-service",r.PAYMENT_SERVICE="payment-service",r.IDV_SERVICE="idv-service",r))(St||{});var Bt=(o=>(o[o.USER_REJECTED_REQUEST=4001]="USER_REJECTED_REQUEST",o[o.UNAUTHORIZED_ACCESS_ACCOUNT=4100]="UNAUTHORIZED_ACCESS_ACCOUNT",o[o.UNSUPPORTED_METHOD=4200]="UNSUPPORTED_METHOD",o[o.DISCONNECTED=4900]="DISCONNECTED",o[o.CHAIN_DISCONNECTED=4901]="CHAIN_DISCONNECTED",o))(Bt||{}),Ot=(i=>(i[i.UNSUPPORTED_NON_OPTIONAL_CAPABILITY=5700]="UNSUPPORTED_NON_OPTIONAL_CAPABILITY",i[i.UNSUPPORTED_CHAIN_ID=5710]="UNSUPPORTED_CHAIN_ID",i[i.DUPLICATE_BUNDLE_ID=5720]="DUPLICATE_BUNDLE_ID",i[i.UNKNOWN_BUNDLE_ID=5730]="UNKNOWN_BUNDLE_ID",i[i.BUNDLE_TOO_LARGE=5740]="BUNDLE_TOO_LARGE",i[i.ATOMIC_READY_WALLET_REJECTED_UPGRADE=5750]="ATOMIC_READY_WALLET_REJECTED_UPGRADE",i[i.ATOMICITY_NOT_SUPPORTED=5760]="ATOMICITY_NOT_SUPPORTED",i))(Ot||{}),vt=(t=>(t[t.UNAUTHORIZED_ACCESS_RESTRICTED_METHOD=4101]="UNAUTHORIZED_ACCESS_RESTRICTED_METHOD",t))(vt||{}),Dt=(n=>(n[n.INTERNAL_ERROR=-32001]="INTERNAL_ERROR",n[n.NO_SECURE_CONNECTION_ESTABLISHED=-32002]="NO_SECURE_CONNECTION_ESTABLISHED",n))(Dt||{}),Nt=(t=>(t[t.INVALID_PARAMS=-32602]="INVALID_PARAMS",t))(Nt||{}),oa={4001:{code:4001,message:"User rejected the request."},4100:{code:4100,message:"The requested method and/or account has not been authorized by the user."},4200:{code:4200,message:"The Provider does not support the requested method."},4900:{code:4900,message:"The Provider is disconnected from all chains."},4901:{code:4901,message:"The Provider is not connected to the requested chain."},4101:{code:4101,message:"The specified method is not authorized for the given origin."},5700:{code:5700,message:"This wallet does not support a capability that was not marked as optional."},5710:{code:5710,message:"This wallet does not support the specified chain id."},5720:{code:5720,message:"There is already a bundle submitted with this id."},5730:{code:5730,message:"This bundle id is unknown / has not been submitted."},5740:{code:5740,message:"The call bundle is too large for the wallet to process."},5750:{code:5750,message:"The wallet can support atomicity after an upgrade, but the user rejected the upgrade."},5760:{code:5760,message:"The wallet does not support atomic execution but the request requires it."},[-32001]:{code:-32001,message:"fatal: internal error"},[-32602]:{code:4002,message:"Invalid parameters."},[-32002]:{code:-32002,message:"No secure connection established."}},da=e=>{let t=oa[e];return t||{code:e,message:`Unknown error code: ${e}`}},Ve=class extends Error{code;data;constructor({message:t,code:n,data:r}){super(t),this.code=n,this.data=r}};var S=class{constructor(t){this.value=t}toString(){let t=JSON.stringify(this.value);return`${this.isLeft()?"Left":"Right"}: (${t})`}fold(t,n){return this.isLeft()?t(this.value):n(this.value)}foldAsync(t,n){return this.isLeft()?t(this.value):n(this.value)}static of(t){return new be(t)}static Left(t){return new ze(t)}static Right(t){return new be(t)}},ze=class extends S{constructor(t){super(t)}map(t){return this}flatMap(t){return this}getOrElse(t){return t}isLeft(){return!0}isRight(){return!1}},be=class extends S{constructor(t){super(t)}map(t){return S.of(t(this.value))}flatMap(t){return t(this.value)}getOrElse(t){return this.value}isLeft(){return!1}isRight(){return!0}},pa=e=>e instanceof S;var ya="/api/public/protocol-rpc";var kt=(n=>(n[n.INDIVIDUAL=0]="INDIVIDUAL",n[n.BUSINESS=1]="BUSINESS",n))(kt||{}),ua={1:"Business",0:"Individual"};
2
2
  //# sourceMappingURL=index.cjs.map