@cashie/core-lib 1.0.0 → 1.2.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/backend/contracts/badge.types.d.ts +4 -0
- package/dist/backend/contracts/index.d.ts +1 -0
- package/dist/backend/contracts/receipt.types.d.ts +0 -24
- package/dist/backend/contracts/statement.types.d.ts +6 -0
- package/dist/client/schemas.d.ts +67 -1
- package/dist/client/types.d.ts +4 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +4 -4
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +4 -4
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var x={Individual:0,Business:1},f={IssuerOnly:0,OwnerOnly:1,Both:2,Neither:3},pe="CashieIdentitySoul",ye="1",ue="IdentityMintPayload",me="IdentityMintConsent",rn="IdentityMintPayload(uint8 identityType,string domain,uint8 burnAuth,bytes identityCommitment,address to)",sn="IdentityMintConsent(uint8 identityType,string domain,uint8 burnAuth,bytes identityCommitment,address to,bytes proof)",ce={IdentityMintPayload:[{name:"identityType",type:"uint8"},{name:"domain",type:"string"},{name:"burnAuth",type:"uint8"},{name:"identityCommitment",type:"bytes"},{name:"to",type:"address"}]},le={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"}]};import{getAddress as Te,hexToBigInt as Ue,keccak256 as He,numberToHex as Le}from"viem";var Fe=(1n<<160n)-1n;function _(e){return Ue(Te(e))}function pn(e){let t=e&Fe;return Te(Le(t,{size:20}))}function yn(e,t){let n=`0x${e}-${t}`;return He(n)}import{hashTypedData as Ie,hexToBigInt as Ye}from"viem";function ge(e,t){let n=Ye(e);return{name:pe,version:ye,chainId:n,verifyingContract:t}}function je(e){return{domain:ge(e.chainId,e.verifyingContract),types:le,primaryType:me,message:e.message}}function Ve(e){return{domain:ge(e.chainId,e.verifyingContract),types:ce,primaryType:ue,message:e.message}}function ln(e){let{domain:t,types:n,primaryType:i,message:a}=je(e);return Ie({domain:t,types:n,primaryType:i,message:a})}function Tn(e){let{domain:t,types:n,primaryType:i,message:a}=Ve(e);return Ie({domain:t,types:n,primaryType:i,message:a})}var Y=(n=>(n.PLAID="plaid-identity",n.BUSINESS="business-identity",n))(Y||{});function ze(){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 Ge(e){return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}function fn(){let e=new Uint8Array(32);return ze().getRandomValues(e),`0x${Ge(e)}`}function B(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 fe=class{#e;constructor(t){t.idvProverUrl=B(t.idvProverUrl),this.#e=t}async postIdvProver(t,n){let i=this.#e.idvProverUrl,a=await fetch(`${i}/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(Y).includes(t)}};var $e=(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))($e||{}),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."},_n=e=>({error_code:e,error_message:qe[e]});import{fromHex as Ft,toHex as Yt}from"viem";import{z as p}from"zod";import{z as m}from"zod";import{z as P}from"zod";import{isAddress as Je,isHex as We}from"viem";var c=P.custom(e=>typeof e=="string"&&Je(e),{message:"Expected valid Ethereum address"}),l=P.custom(e=>typeof e=="string"&&We(e),{message:"Expected valid hex string"}),A=P.object({type:P.string(),isAdjustmentAllowed:P.boolean(),justification:P.string(),data:P.record(P.string(),P.unknown())}).strict(),j=class extends Error{schemaName;zodError;constructor(t,n){let i=n.issues.map(a=>{let s=a.path.length>0?` at ${a.path.join(".")}`:"";return`${a.message}${s}`}).join("; ");super(`Invalid ERC-7715 "${t}": ${i}`),this.name="ERC7715ValidationError",this.schemaName=t,this.zodError=n}};function y(e,t,n){let i=t.safeParse(n);if(!i.success)throw new j(e,i.error);return i.data}function Un(e){return y("BaseScopeSchema",A,e)}var V=m.union([m.literal(x.Individual),m.literal(x.Business)]),z=m.union([m.literal(f.IssuerOnly),m.literal(f.OwnerOnly),m.literal(f.Both),m.literal(f.Neither)]),O=m.object({identityType:V,domain:m.string(),burnAuth:z,identityCommitment:l,to:c,proof:l,signature:l}).strict(),G=A.omit({type:!0,data:!0}).extend({type:m.literal("expiry"),data:m.object({timestamp:m.number().int()}).strict()}).strict(),$=A.omit({type:!0,data:!0}).extend({type:m.literal("identity-mint"),data:m.object({identityMintPayload:O}).strict()}).strict(),q=m.discriminatedUnion("type",[G,$]),jn={expiry:G,identityMint:$};function Vn(e){return y("ExpiryRule",G,e)}function zn(e){return y("IdentityMintRule",$,e)}function Gn(e){return y("Rule",q,e)}var v="data:application/json;base64,",D="data:image/svg+xml;base64,",k="Cashie-ReceiptBadge-v1",N="Cashie-PaymentRecordBadge-v1",Ze=p.enum(["Individual","Business"]),Ke={Individual:x.Individual,Business:x.Business},R=p.string().regex(/^\d+$/,"Expected decimal string"),b=p.string().regex(/^0x[0-9a-fA-F]+$/,"Expected non-empty 0x-prefixed hex"),he=b.refine(e=>e.length===66,{message:"Expected 32-byte hex string (0x + 64 hex chars)"}),Pe=p.object({identityContract:b,tokenId:R}).strict(),J=p.object({name:p.string(),description:p.string(),image:p.string(),soulBoundTo:Pe,receiptType:p.enum(["OneTime","Recurring"]),blockNumber:R,recipient:b,chainId:R,tokenAddress:b,allowance:R,salt:he}).strict(),Xe=R.refine(e=>{let t=Number(e);return Number.isInteger(t)&&t>=f.IssuerOnly&&t<=f.Neither},{message:"burnAuth must be IERC5484 enum ordinal (0\u20133)"}).transform(e=>Number(e)),W=p.object({name:p.string(),description:p.string(),image:p.string(),soulBoundTo:Pe,blockNumber:R,payer:b,chainId:R,tokenAddress:b,allowance:R,receiptBadgeId:R,salt:he}).strict(),Z=p.object({name:p.string(),description:p.string(),image:p.string(),identityType:Ze.transform(e=>Ke[e]),domain:p.string(),burnAuth:Xe,identityCommitment:b}).strict(),Zn=p.object({name:p.string(),description:p.string(),image:p.string(),identityType:V,domain:p.string(),burnAuth:z,identityCommitment:b}).strict();import{encodeAbiParameters as Re,getAddress as w,hexToBigInt as U,keccak256 as be}from"viem";var K={OneTime:0,Recurring:1},Qe=[{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 et(e){return Re([...Qe],[e.soulBoundTo.identityContract,e.soulBoundTo.tokenId,e.receiptType,e.blockNumber,e.recipient,e.chainId,e.tokenAddress,e.allowance,e.salt])}function tt(e){return be(et(e))}function nt(e){return BigInt(tt(e))}function at(e,t,n,i){return{soulBoundTo:{identityContract:w(e),tokenId:_(t.payer)},receiptType:i,blockNumber:n,recipient:w(t.recipient),chainId:U(t.chainId),tokenAddress:w(t.tokenAddress),allowance:U(t.allowance),salt:t.salt}}function X(e,t,n,i){return nt(at(e,t,n,i))}var rt=[{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 it(e){return Re([...rt],[e.soulBoundTo.identityContract,e.soulBoundTo.tokenId,e.blockNumber,e.payer,e.chainId,e.tokenAddress,e.allowance,e.receiptBadgeId,e.salt])}function st(e){return be(it(e))}function ot(e){return BigInt(st(e))}function dt(e,t,n,i){return{soulBoundTo:{identityContract:w(e),tokenId:_(t.recipient)},blockNumber:n,payer:w(t.payer),chainId:U(t.chainId),tokenAddress:w(t.tokenAddress),allowance:U(t.allowance),receiptBadgeId:i,salt:t.salt}}function xe(e,t,n,i){let a=X(e,t,n,i);return ot(dt(e,t,n,a))}function Ae(e){let t=e.replace(/\s+/g,"");try{let n=atob(t),i=new Uint8Array(n.length);for(let a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return new TextDecoder("utf8",{fatal:!0}).decode(i)}catch{throw new Error("Failed to Base64-decode Cashie data URI payload (invalid encoding)")}}function pt(e){if(!e.startsWith(v))throw new Error(`Expected Cashie JSON data URI prefix "${v}"`);let t=e.slice(v.length);return Ae(t)}function H(e){if(!e.startsWith(D))throw new Error(`Expected Cashie SVG data URI prefix "${D}"`);let t=e.slice(D.length);return Ae(t)}function L(e){let t=pt(e);return JSON.parse(t)}function we(e){let t=L(e);return Z.parse(t)}function yt(e){let t=L(e);return J.parse(t)}function Se(e,t){if(t!==k)throw new Error(`Expected ERC-5114 metadataFormat "${k}", received "${t}"`);return yt(e)}function ut(e){let t=L(e);return W.parse(t)}function _e(e,t){if(t!==N)throw new Error(`Expected ERC-5114 metadataFormat "${N}", received "${t}"`);return ut(e)}function mt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ct(e){if("identityType"in e)return{kind:"identitySoul",data:Z.parse(e)};if("receiptType"in e)return{kind:"receiptBadge",format:k,data:J.parse(e)};if("receiptBadgeId"in e)return{kind:"paymentRecordBadge",format:N,data:W.parse(e)};throw new Error("Unrecognized Cashie metadata JSON (expected identityType, receiptType, or receiptBadgeId)")}function na(e){let t=L(e);if(!mt(t))throw new Error("Unrecognized Cashie metadata JSON (expected identityType, receiptType, or receiptBadgeId)");return ct(t)}import{createPublicClient as Dt,http as kt,toHex as Nt}from"viem";import{sepolia as Ut,localhost as Ht,anvil as Lt}from"viem/chains";import{z as d}from"zod";import{isAddress as bt,isHex as xt}from"viem";import{z as T}from"zod";import{z as g}from"zod";var Ee=g.enum(["weekly","monthly","annually"]),Q=g.enum(["single","recurring"]),lt=g.object({recipient:c,rewardAmount:l,rewardTokenAddress:c}).strict(),ee=g.object({allowance:l,tokenAddress:c,rewardItems:g.array(lt).optional()}).strict(),Tt=ee.extend({type:g.literal(Q.enum.single)}).strict(),It=ee.extend({type:g.literal(Q.enum.recurring),startDate:g.number().int().optional(),billingPeriod:Ee}).strict(),Me=g.discriminatedUnion("type",[Tt,It]),te=A.omit({type:!0,data:!0}).extend({type:g.literal("erc20-token-payment"),data:g.object({recipient:c,paymentDetails:Me}).strict()}).strict(),ne=g.discriminatedUnion("type",[te]),ya={"erc20-token-payment":te};function ua(e){return y("BillingPeriod",Ee,e)}function ma(e){return y("PaymentDetailsType",Q,e)}function ca(e){return y("BasePaymentDetailsData",ee,e)}function la(e){return y("PaymentDetails",Me,e)}function Ta(e){return y("ERC20TokenPaymentPermission",te,e)}function Ia(e){return y("Permission",ne,e)}var E=T.object({factory:c,factoryData:l}).strict(),ae=T.object({chainId:l,from:c.optional(),to:c,permission:ne,rules:T.array(q).optional()}).strict(),gt=T.array(ae),Ce=ae.extend({from:c,context:l,dependencies:T.array(E),delegationManager:c}).strict(),ft=T.array(Ce),ht=T.object({chainIds:T.array(l)}).strict(),Pt=T.object({chainIds:T.array(l),ruleTypes:T.array(T.string())}).strict(),Rt=T.object({"erc20-token-payment":Pt}).strict();function ba(e){return y("InitCodeData",E,e)}function xa(e){return y("PermissionRequest",ae,e)}function Aa(e){return y("PermissionsRequest",gt,e)}function wa(e){return y("PermissionResponse",Ce,e)}function Sa(e){return y("PermissionsResponse",ft,e)}function _a(e){return y("GetPermissionsInfoResultParams",ht,e)}function Ea(e){return y("GetSupportedExecutionPermissionsResult",Rt,e)}var re=(s=>(s.PAYMENT_C2B="payment-c2b",s.PAYMENT_B2B="payment-b2b",s.PAYMENT_B2C="payment-b2c",s.DEPOSIT="deposit",s.WITHDRAW="withdraw",s))(re||{});var I=d.custom(e=>typeof e=="string"&&bt(e),{message:"Expected valid Ethereum address"}),u=d.custom(e=>typeof e=="string"&&xt(e),{message:"Expected valid hex string"}),At=d.custom(e=>typeof e=="number"&&Number.isInteger(e)&&e>=f.IssuerOnly&&e<=f.Neither,{message:"Expected BurnAuth enum value (0\u20133)"}),wt=d.object({to:I,data:u}),St=d.object({nftAddress:I,nftTokenId:u}),_t=d.object({identitySoulContract:d.object({address:I,badgeContracts:d.object({paymentRecordBadgeContract:I,receiptBadgeContract:I})})}),Et=d.object({signedIdentityMintPayload:O,initCodeData:E}).strict(),Mt=d.object({recipient:I,rewardAmount:u,rewardTokenAddress:I}).strict(),Ct=d.object({rewardPayer:I,rewardItems:d.array(Mt),rewardPermissionContext:u,rewardDelegationManager:I}).strict(),Bt=d.object({action:d.enum(re),chainId:u,recipient:I,payer:I,identityMintPayloads:d.array(O),tokenAddress:I,allowance:u,rewardIntentDetails:Ct.optional(),permissionContext:u,delegationManager:I,dependencies:d.array(E),salt:u}).strict().transform(e=>e),Ot=d.object({paymentIntent:Bt,status:d.enum(["pending","confirmed","failed"]),txHash:u.nullable().optional(),blockNumber:u.nullable().optional()}).strict().transform(e=>e),vt={discovery_supportedSouls:_t,payment_getProtocolFeeBps:u,payment_calculateRewardAmount:u,payment_sendIntent:u,payment_getIntentStatuses:d.array(Ot),payment_prepareRouterCallsFromAction:d.array(wt),identity_getBurnAuth:At,identity_getTokenURI:d.string().nullable(),payment_sendPrePaymentSetup:u,payment_getPrePaymentSetup:Et.nullable(),badge_getOwnerOf:St,badge_getBadgeUri:d.string().nullable(),badge_getMetadataFormat:d.string(),badge_totalBadgesOfIdentity:u,badge_badgeOfIdentityByIndex:u,badge_badgesOfIdentity:d.array(u)},ie=class extends Error{method;zodError;constructor(t,n){let i=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}": ${i}`),this.name="PaymentRpcResponseValidationError",this.method=t,this.zodError=n}};function Be(e,t){let n=vt[e].safeParse(t);if(!n.success)throw new ie(e,n.error);return n.data}var Oe=e=>{let t=()=>({"0xaa36a7":Ut,"0x539":Ht,"0x7a69":Lt}),n=r=>{let h=Nt(r),C=t()[h];if(!C)throw new Error(`Chain ${h} is not supported`);return C},{url:i,chainId:a}=e,s=Dt({chain:n(a),transport:kt(B(i))}),o=async(r,h)=>{let C=await s.request({method:r,params:h});return Be(r,C)};return{getIdentitySoulDiscovery:r=>o("discovery_supportedSouls",r),getProtocolFeeBps:r=>o("payment_getProtocolFeeBps",r),calculateRewardAmount:r=>o("payment_calculateRewardAmount",r),sendIntent:r=>o("payment_sendIntent",r),getIntentStatuses:r=>o("payment_getIntentStatuses",r),prepareRouterCallsFromAction:r=>o("payment_prepareRouterCallsFromAction",r),getBurnAuth:r=>o("identity_getBurnAuth",r),getTokenURI:r=>o("identity_getTokenURI",r),sendPrePaymentSetup:r=>o("payment_sendPrePaymentSetup",r),getPrePaymentSetup:r=>o("payment_getPrePaymentSetup",r),getBadgeOwnerOf:r=>o("badge_getOwnerOf",r),getBadgeUri:r=>o("badge_getBadgeUri",r),getBadgeMetadataFormat:r=>o("badge_getMetadataFormat",r),getTotalBadgesOfIdentity:r=>o("badge_totalBadgesOfIdentity",r),getBadgeOfIdentityByIndex:r=>o("badge_badgeOfIdentityByIndex",r),getBadgesOfIdentity:r=>o("badge_badgesOfIdentity",r)}};var ve=class{#e;#r;#i;#s;#o;#n;#t;#d=new Map;#p=new Map;#y;constructor(t){let{identityIssuer:n,cashieRpcUrl:i,chainIdHex:a}=t;this.#y=n,this.#n=Oe({url:i,chainId:Ft(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,i]=await Promise.all([this.#n.getBadgeMetadataFormat([{chainHex:this.#t}]),this.#n.getBadgeMetadataFormat([{chainHex:this.#t}])]);if(!n||!i)throw new Error("Failed to get badge metadata formats");this.#s=n,this.#o=i}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 i=await this.#y.issueIdentityProof(t),{identityType:a,domain:s,burnAuth:o,identityCommitment:r,proof:h}=i;return{chainId:this.#t,verifyingContract:this.#e,message:{to:n,identityType:a,domain:s,burnAuth:o,identityCommitment:r,proof:h}}}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=_(t),i=Yt(n),a=await this.#n.getTokenURI([{chainHex:this.#t,tokenId:i}]);if(!a)return;let s=we(a),o=H(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 i=await this.#n.getBadgeUri([{chainHex:this.#t,badgeId:t}]);if(!i)return;let a=Se(i,this.#s),s=H(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 i=await this.#n.getBadgeUri([{chainHex:this.#t,badgeId:t}]);if(!i)return;let a=_e(i,this.#o),s=H(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}};import{encodeAbiParameters as jt,keccak256 as Vt,zeroAddress as De}from"viem";var zt=[{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 Gt(e){let t=e.rewardIntentDetails??{rewardPayer:De,rewardItems:[],rewardDelegationManager:De};return jt(zt,[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 yr(e){return Vt(Gt(e))}var Mr=[{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:[]}],Cr=[{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"}]}],Br=[{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"}]}],Or=[{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"}]}],vr=[{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"}]}];import{toHex as ke}from"viem";function ei(e){let{badgeId:t,badgeKind:n,identityContract:i,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(ke(X(i,o.paymentIntent,BigInt(o.blockNumber),K.OneTime))===t)return o.txHash;break}case"paymentRecord":{if(ke(xe(i,o.paymentIntent,BigInt(o.blockNumber),K.OneTime))===t)return o.txHash;break}}return null}import{keccak256 as $t}from"viem";function se(e){if(e===null||typeof e!="object")return e;if(Array.isArray(e))return e.map(se).sort((s,o)=>{let r=JSON.stringify(s),h=JSON.stringify(o);return r<h?-1:r>h?1:0});let t=e,n=Object.keys(t).sort(),i={};for(let a of n)i[a]=se(t[a]);return i}function qt(e){return JSON.stringify(se(e))}function oe(e){let t=qt(e),n=new TextEncoder().encode(t);return $t(n)}var M=class extends Error{constructor(t){super(t),this.name="OcapValidationError"}};function Jt(e,t){if(e.type!=="api")throw new M(`Unsupported resource type: ${e.type}`);if(!t.includes(e.audience))throw new M(`Audience not allowed: ${e.audience}`);if(!e.data?.endpoint||!Array.isArray(e.data.methods))throw new M("Invalid api resource: missing endpoint or methods")}function ii(e){let{resources:t,allowedAudiences:n}=e,i=Array.isArray(t.api)?t.api:[];for(let o of i)Jt(o,n);let a={resources:{api:i}},s=oe(a);return{ocap:a,ocapId:s}}var di=300*1e3,Wt="Request OCAP";function pi(e,t){let n=oe({resources:t});return`${Wt}:${e}:${n}`}var Zt=(i=>(i.ACCOUNT_SERVICE="account-service",i.PAYMENT_SERVICE="payment-service",i.IDV_SERVICE="idv-service",i))(Zt||{});var Kt=(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))(Kt||{}),Xt=(r=>(r[r.UNSUPPORTED_NON_OPTIONAL_CAPABILITY=5700]="UNSUPPORTED_NON_OPTIONAL_CAPABILITY",r[r.UNSUPPORTED_CHAIN_ID=5710]="UNSUPPORTED_CHAIN_ID",r[r.DUPLICATE_BUNDLE_ID=5720]="DUPLICATE_BUNDLE_ID",r[r.UNKNOWN_BUNDLE_ID=5730]="UNKNOWN_BUNDLE_ID",r[r.BUNDLE_TOO_LARGE=5740]="BUNDLE_TOO_LARGE",r[r.ATOMIC_READY_WALLET_REJECTED_UPGRADE=5750]="ATOMIC_READY_WALLET_REJECTED_UPGRADE",r[r.ATOMICITY_NOT_SUPPORTED=5760]="ATOMICITY_NOT_SUPPORTED",r))(Xt||{}),Qt=(t=>(t[t.UNAUTHORIZED_ACCESS_RESTRICTED_METHOD=4101]="UNAUTHORIZED_ACCESS_RESTRICTED_METHOD",t))(Qt||{}),en=(n=>(n[n.INTERNAL_ERROR=-32001]="INTERNAL_ERROR",n[n.NO_SECURE_CONNECTION_ESTABLISHED=-32002]="NO_SECURE_CONNECTION_ESTABLISHED",n))(en||{}),tn=(t=>(t[t.INVALID_PARAMS=-32602]="INVALID_PARAMS",t))(tn||{}),nn={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."}},xi=e=>{let t=nn[e];return t||{code:e,message:`Unknown error code: ${e}`}},Ne=class extends Error{code;data;constructor({message:t,code:n,data:i}){super(t),this.code=n,this.data=i}};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 F(t)}static Left(t){return new de(t)}static Right(t){return new F(t)}},de=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}},F=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}},wi=e=>e instanceof S;var _i="/api/public/protocol-rpc";var an=(n=>(n[n.INDIVIDUAL=0]="INDIVIDUAL",n[n.BUSINESS=1]="BUSINESS",n))(an||{}),Mi={1:"Business",0:"Individual"};export{f as BurnAuth,Mi as CASHIE_ACCOUNT_TYPE_LABELS,Br as CASHIE_IDENTITY_SOUL_CONTRACT_ABI,pe as CASHIE_IDENTITY_SOUL_EIP712_NAME,ye as CASHIE_IDENTITY_SOUL_EIP712_VERSION,v as CASHIE_JSON_DATA_URI_BASE64_PREFIX,vr as CASHIE_PAYMENT_RECORD_BADGE_CONTRACT_ABI,N as CASHIE_PAYMENT_RECORD_BADGE_METADATA_FORMAT,Or as CASHIE_RECEIPT_BADGE_CONTRACT_ABI,k as CASHIE_RECEIPT_BADGE_METADATA_FORMAT,Cr as CASHIE_ROUTER_GUARD_CONTRACT_ABI,Mr as CASHIE_ROUTER_V1_CONTRACT_ABI,D as CASHIE_SVG_DATA_URI_BASE64_PREFIX,tn as COMMON_ERROR_CODES,an as CashieAccountType,re as CashieRouterActions,di as DEFAULT_MAX_AGE_MS,Kt as EIP1193_ERROR_CODES,Xt as EIP5792_ERROR_CODES,j as ERC7715ValidationError,Qt as ERC7715_ERROR_CODES,S as Either,en as FATAL_ERROR_CODES,sn as IDENTITY_MINT_CONSENT_EIP712_TYPE_STRING,le as IDENTITY_MINT_EIP712_TYPES,ce as IDENTITY_MINT_PAYLOAD_EIP712_TYPES,rn as IDENTITY_MINT_PAYLOAD_EIP712_TYPE_STRING,fe as IdentityIssuer,Y as IdentityIssuerId,x as IdentityType,Ke as JSON_IDENTITY_TYPE_LABEL_TO_IDENTITY_TYPE,Wt as OCAP_STATEMENT_PREFIX,Zt as OcapAudiences,M as OcapValidationError,qe as PLAID_IDV_ERROR_MESSAGE,me as PRIMARY_TYPE_IDENTITY_MINT_CONSENT,ue as PRIMARY_TYPE_IDENTITY_MINT_PAYLOAD,_i as PROTOCOL_RPC_PROXY_PATH,$e as PlaidIdvErrorCode,K as ReceiptType,Ne as RpcError,ve as SoulManager,c as addressSchema,B as assertUrl,ee as basePaymentDetailsDataSchema,A as baseScopeSchema,Ee as billingPeriodSchema,ge as buildCashieIdentitySoulDomain,yn as buildIdentityCommitmentHash,je as buildIdentityMintConsentTypedData,Ve as buildIdentityMintProofTypedData,oe as buildOcapId,z as burnAuthSchema,he as bytes32HexSchema,qt as canonicalOcapPayload,Ze as cashieIdentitySoulIdentityTypeJsonSchema,Z as cashieIdentitySoulTokenMetadataJsonSchema,Zn as cashieIdentitySoulTokenMetadataSchema,W as cashiePaymentRecordBadgeMetadataSchema,J as cashieReceiptBadgeMetadataSchema,Pe as cashieReceiptBadgeSoulBoundToSchema,Oe as createPaymentRpcClient,pt as decodeCashieJsonDataUriToUtf8,H as decodeCashieSvgDataUriToUtf8,Gt as encodePaymentIntent,it as encodePaymentRecordBadgeMintPayload,et as encodeReceiptBadgeMintPayload,te as erc20TokenPaymentPermissionSchema,G as expiryRuleSchema,ei as findTransactionHashForBadgeId,fn as generateSalt,xi as getErrorMessage,yr as getPaymentIntentHash,st as getPaymentRecordBadgeMintPayloadHash,ht as getPermissionsInfoResultParamsSchema,tt as getReceiptBadgeMintPayloadHash,Rt as getSupportedExecutionPermissionsResultSchema,ln as hashIdentityMintConsentTypedData,Tn as hashIdentityMintProofTypedData,b as hex0xSchema,l as hexSchema,pn as identityAccountFor,$ as identityMintRuleSchema,O as identityMintSignPayloadWithSignatureSchema,_ as identityTokenIdFor,V as identityTypeSchema,E as initCodeDataSchema,wi as isEither,ca as parseBasePaymentDetailsData,Un as parseBaseScopeSchema,ua as parseBillingPeriod,we as parseCashieIdentitySoulTokenMetadata,L as parseCashieJsonDataUriJson,na as parseCashieMetadataDataUri,ut as parseCashiePaymentRecordBadgeMetadata,_e as parseCashiePaymentRecordBadgeMetadataFromBadgeUri,yt as parseCashieReceiptBadgeMetadata,Se as parseCashieReceiptBadgeMetadataFromBadgeUri,Ta as parseERC20TokenPaymentPermission,Vn as parseExpiryRule,_a as parseGetPermissionsInfoResultParams,Ea as parseGetSupportedExecutionPermissionsResult,zn as parseIdentityMintRule,ba as parseInitCodeData,la as parsePaymentDetails,ma as parsePaymentDetailsType,Ia as parsePermission,xa as parsePermissionRequest,wa as parsePermissionResponse,Aa as parsePermissionsRequest,Sa as parsePermissionsResponse,Gn as parseRule,y as parseWithSchema,Me as paymentDetailsSchema,Q as paymentDetailsTypeSchema,ot as paymentRecordBadgeIdFromMintPayload,xe as paymentRecordBadgeIdFromPaymentIntent,dt as paymentRecordBadgeMintPayloadFromPaymentIntent,ae as permissionRequestSchema,Ce as permissionResponseSchema,ne as permissionSchema,ya as permissionSchemas,gt as permissionsRequestSchema,ft as permissionsResponseSchema,_n as plaidIdvError,pi as prepareStatement,nt as receiptBadgeIdFromMintPayload,X as receiptBadgeIdFromPaymentIntent,at as receiptBadgeMintPayloadFromPaymentIntent,It as recurringPaymentDetailsSchema,lt as rewardItemSchema,q as ruleSchema,jn as ruleSchemas,Tt as singlePaymentDetailsSchema,Pt as supportedExecutionPermissionInfoSchema,ii as validateAndBuildOcap};
|
|
1
|
+
var x={Individual:0,Business:1},f={IssuerOnly:0,OwnerOnly:1,Both:2,Neither:3},ye="CashieIdentitySoul",ue="1",me="IdentityMintPayload",ce="IdentityMintConsent",on="IdentityMintPayload(uint8 identityType,string domain,uint8 burnAuth,bytes identityCommitment,address to)",dn="IdentityMintConsent(uint8 identityType,string domain,uint8 burnAuth,bytes identityCommitment,address to,bytes proof)",le={IdentityMintPayload:[{name:"identityType",type:"uint8"},{name:"domain",type:"string"},{name:"burnAuth",type:"uint8"},{name:"identityCommitment",type:"bytes"},{name:"to",type:"address"}]},Te={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"}]};import{getAddress as Ie,hexToBigInt as Le,keccak256 as Fe,numberToHex as Ye}from"viem";var je=(1n<<160n)-1n;function _(e){return Le(Ie(e))}function un(e){let t=e&je;return Ie(Ye(t,{size:20}))}function mn(e,t){let n=`0x${e}-${t}`;return Fe(n)}import{hashTypedData as ge,hexToBigInt as ze}from"viem";function fe(e,t){let n=ze(e);return{name:ye,version:ue,chainId:n,verifyingContract:t}}function Ve(e){return{domain:fe(e.chainId,e.verifyingContract),types:Te,primaryType:ce,message:e.message}}function $e(e){return{domain:fe(e.chainId,e.verifyingContract),types:le,primaryType:me,message:e.message}}function In(e){let{domain:t,types:n,primaryType:i,message:a}=Ve(e);return ge({domain:t,types:n,primaryType:i,message:a})}function gn(e){let{domain:t,types:n,primaryType:i,message:a}=$e(e);return ge({domain:t,types:n,primaryType:i,message:a})}var j=(n=>(n.PLAID="plaid-identity",n.BUSINESS="business-identity",n))(j||{});function Ge(){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 qe(e){return Array.from(e,t=>t.toString(16).padStart(2,"0")).join("")}function Pn(){let e=new Uint8Array(32);return Ge().getRandomValues(e),`0x${qe(e)}`}function O(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 he=class{#e;constructor(t){t.idvProverUrl=O(t.idvProverUrl),this.#e=t}async postIdvProver(t,n){let i=this.#e.idvProverUrl,a=await fetch(`${i}/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(j).includes(t)}};var Je=(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))(Je||{}),We={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."},Mn=e=>({error_code:e,error_message:We[e]});import{fromHex as jt,toHex as zt}from"viem";import{z as y}from"zod";import{z as m}from"zod";import{z as P}from"zod";import{isAddress as Ke,isHex as Ze}from"viem";var l=P.custom(e=>typeof e=="string"&&Ke(e),{message:"Expected valid Ethereum address"}),T=P.custom(e=>typeof e=="string"&&Ze(e),{message:"Expected valid hex string"}),A=P.object({type:P.string(),isAdjustmentAllowed:P.boolean(),justification:P.string(),data:P.record(P.string(),P.unknown())}).strict(),z=class extends Error{schemaName;zodError;constructor(t,n){let i=n.issues.map(a=>{let s=a.path.length>0?` at ${a.path.join(".")}`:"";return`${a.message}${s}`}).join("; ");super(`Invalid ERC-7715 "${t}": ${i}`),this.name="ERC7715ValidationError",this.schemaName=t,this.zodError=n}};function u(e,t,n){let i=t.safeParse(n);if(!i.success)throw new z(e,i.error);return i.data}function Ln(e){return u("BaseScopeSchema",A,e)}var V=m.union([m.literal(x.Individual),m.literal(x.Business)]),$=m.union([m.literal(f.IssuerOnly),m.literal(f.OwnerOnly),m.literal(f.Both),m.literal(f.Neither)]),v=m.object({identityType:V,domain:m.string(),burnAuth:$,identityCommitment:T,to:l,proof:T,signature:T}).strict(),G=A.omit({type:!0,data:!0}).extend({type:m.literal("expiry"),data:m.object({timestamp:m.number().int()}).strict()}).strict(),q=A.omit({type:!0,data:!0}).extend({type:m.literal("identity-mint"),data:m.object({identityMintPayload:v}).strict()}).strict(),J=m.discriminatedUnion("type",[G,q]),Vn={expiry:G,identityMint:q};function $n(e){return u("ExpiryRule",G,e)}function Gn(e){return u("IdentityMintRule",q,e)}function qn(e){return u("Rule",J,e)}var D="data:application/json;base64,",N="data:image/svg+xml;base64,",k="Cashie-ReceiptBadge-v1",U="Cashie-PaymentRecordBadge-v1",Xe=y.enum(["Individual","Business"]),Qe={Individual:x.Individual,Business:x.Business},b=y.string().regex(/^\d+$/,"Expected decimal string"),R=y.string().regex(/^0x[0-9a-fA-F]+$/,"Expected non-empty 0x-prefixed hex"),Pe=R.refine(e=>e.length===66,{message:"Expected 32-byte hex string (0x + 64 hex chars)"}),be=y.object({identityContract:R,tokenId:b}).strict(),W=y.object({name:y.string(),description:y.string(),image:y.string(),soulBoundTo:be,receiptType:y.enum(["OneTime","Recurring"]),blockNumber:b,recipient:R,chainId:b,tokenAddress:R,allowance:b,salt:Pe}).strict(),et=b.refine(e=>{let t=Number(e);return Number.isInteger(t)&&t>=f.IssuerOnly&&t<=f.Neither},{message:"burnAuth must be IERC5484 enum ordinal (0\u20133)"}).transform(e=>Number(e)),K=y.object({name:y.string(),description:y.string(),image:y.string(),soulBoundTo:be,blockNumber:b,payer:R,chainId:b,tokenAddress:R,allowance:b,receiptBadgeId:b,salt:Pe}).strict(),Z=y.object({name:y.string(),description:y.string(),image:y.string(),identityType:Xe.transform(e=>Qe[e]),domain:y.string(),burnAuth:et,identityCommitment:R}).strict(),Xn=y.object({name:y.string(),description:y.string(),image:y.string(),identityType:V,domain:y.string(),burnAuth:$,identityCommitment:R}).strict();import{encodeAbiParameters as Re,getAddress as w,hexToBigInt as H,keccak256 as xe}from"viem";var X={OneTime:0,Recurring:1},tt=[{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 nt(e){return Re([...tt],[e.soulBoundTo.identityContract,e.soulBoundTo.tokenId,e.receiptType,e.blockNumber,e.recipient,e.chainId,e.tokenAddress,e.allowance,e.salt])}function at(e){return xe(nt(e))}function rt(e){return BigInt(at(e))}function it(e,t,n,i){return{soulBoundTo:{identityContract:w(e),tokenId:_(t.payer)},receiptType:i,blockNumber:n,recipient:w(t.recipient),chainId:H(t.chainId),tokenAddress:w(t.tokenAddress),allowance:H(t.allowance),salt:t.salt}}function Q(e,t,n,i){return rt(it(e,t,n,i))}var st=[{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 ot(e){return Re([...st],[e.soulBoundTo.identityContract,e.soulBoundTo.tokenId,e.blockNumber,e.payer,e.chainId,e.tokenAddress,e.allowance,e.receiptBadgeId,e.salt])}function dt(e){return xe(ot(e))}function pt(e){return BigInt(dt(e))}function yt(e,t,n,i){return{soulBoundTo:{identityContract:w(e),tokenId:_(t.recipient)},blockNumber:n,payer:w(t.payer),chainId:H(t.chainId),tokenAddress:w(t.tokenAddress),allowance:H(t.allowance),receiptBadgeId:i,salt:t.salt}}function Ae(e,t,n,i){let a=Q(e,t,n,i);return pt(yt(e,t,n,a))}function we(e){let t=e.replace(/\s+/g,"");try{let n=atob(t),i=new Uint8Array(n.length);for(let a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return new TextDecoder("utf8",{fatal:!0}).decode(i)}catch{throw new Error("Failed to Base64-decode Cashie data URI payload (invalid encoding)")}}function ut(e){if(!e.startsWith(D))throw new Error(`Expected Cashie JSON data URI prefix "${D}"`);let t=e.slice(D.length);return we(t)}function L(e){if(!e.startsWith(N))throw new Error(`Expected Cashie SVG data URI prefix "${N}"`);let t=e.slice(N.length);return we(t)}function F(e){let t=ut(e);return JSON.parse(t)}function Se(e){let t=F(e);return Z.parse(t)}function mt(e){let t=F(e);return W.parse(t)}function _e(e,t){if(t!==k)throw new Error(`Expected ERC-5114 metadataFormat "${k}", received "${t}"`);return mt(e)}function ct(e){let t=F(e);return K.parse(t)}function Ee(e,t){if(t!==U)throw new Error(`Expected ERC-5114 metadataFormat "${U}", received "${t}"`);return ct(e)}function lt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Tt(e){if("identityType"in e)return{kind:"identitySoul",data:Z.parse(e)};if("receiptType"in e)return{kind:"receiptBadge",format:k,data:W.parse(e)};if("receiptBadgeId"in e)return{kind:"paymentRecordBadge",format:U,data:K.parse(e)};throw new Error("Unrecognized Cashie metadata JSON (expected identityType, receiptType, or receiptBadgeId)")}function ra(e){let t=F(e);if(!lt(t))throw new Error("Unrecognized Cashie metadata JSON (expected identityType, receiptType, or receiptBadgeId)");return Tt(t)}import{createPublicClient as kt,http as Ut,toHex as Ht}from"viem";import{sepolia as Lt,localhost as Ft,anvil as Yt}from"viem/chains";import{z as d}from"zod";import{isAddress as At,isHex as wt}from"viem";import{z as I}from"zod";import{z as g}from"zod";var Me=g.enum(["weekly","monthly","annually"]),ee=g.enum(["single","recurring"]),It=g.object({recipient:l,rewardAmount:T,rewardTokenAddress:l}).strict(),te=g.object({allowance:T,tokenAddress:l,rewardItems:g.array(It).optional()}).strict(),gt=te.extend({type:g.literal(ee.enum.single)}).strict(),ft=te.extend({type:g.literal(ee.enum.recurring),startDate:g.number().int().optional(),billingPeriod:Me}).strict(),Ce=g.discriminatedUnion("type",[gt,ft]),ne=A.omit({type:!0,data:!0}).extend({type:g.literal("erc20-token-payment"),data:g.object({recipient:l,paymentDetails:Ce}).strict()}).strict(),ae=g.discriminatedUnion("type",[ne]),ma={"erc20-token-payment":ne};function ca(e){return u("BillingPeriod",Me,e)}function la(e){return u("PaymentDetailsType",ee,e)}function Ta(e){return u("BasePaymentDetailsData",te,e)}function Ia(e){return u("PaymentDetails",Ce,e)}function ga(e){return u("ERC20TokenPaymentPermission",ne,e)}function fa(e){return u("Permission",ae,e)}var E=I.object({factory:l,factoryData:T}).strict(),re=I.object({chainId:T,from:l.optional(),to:l,permission:ae,rules:I.array(J).optional()}).strict(),ht=I.array(re),Be=re.extend({from:l,context:T,dependencies:I.array(E),delegationManager:l}).strict(),Pt=I.array(Be),bt=I.object({chainIds:I.array(T)}).strict(),Rt=I.object({chainIds:I.array(T),ruleTypes:I.array(I.string())}).strict(),xt=I.object({"erc20-token-payment":Rt}).strict();function Aa(e){return u("InitCodeData",E,e)}function wa(e){return u("PermissionRequest",re,e)}function Sa(e){return u("PermissionsRequest",ht,e)}function _a(e){return u("PermissionResponse",Be,e)}function Ea(e){return u("PermissionsResponse",Pt,e)}function Ma(e){return u("GetPermissionsInfoResultParams",bt,e)}function Ca(e){return u("GetSupportedExecutionPermissionsResult",xt,e)}var ie=(s=>(s.PAYMENT_C2B="payment-c2b",s.PAYMENT_B2B="payment-b2b",s.PAYMENT_B2C="payment-b2c",s.DEPOSIT="deposit",s.WITHDRAW="withdraw",s))(ie||{});var c=d.custom(e=>typeof e=="string"&&At(e),{message:"Expected valid Ethereum address"}),p=d.custom(e=>typeof e=="string"&&wt(e),{message:"Expected valid hex string"}),St=d.custom(e=>typeof e=="number"&&Number.isInteger(e)&&e>=f.IssuerOnly&&e<=f.Neither,{message:"Expected BurnAuth enum value (0\u20133)"}),_t=d.object({to:c,data:p}),M=d.enum(["receipt","paymentRecord"]),Et=d.object({nftAddress:c,nftTokenId:p}),Mt=d.object({identitySoulContract:d.object({address:c,badgeContracts:d.object({paymentRecordBadgeContract:c,receiptBadgeContract:c})})}),Ct=d.object({signedIdentityMintPayload:v,initCodeData:E}).strict(),Bt=d.object({recipient:c,rewardAmount:p,rewardTokenAddress:c}).strict(),Ot=d.object({rewardPayer:c,rewardItems:d.array(Bt),rewardPermissionContext:p,rewardDelegationManager:c}).strict(),vt=d.object({action:d.enum(ie),chainId:p,recipient:c,payer:c,identityMintPayloads:d.array(v),tokenAddress:c,allowance:p,rewardIntentDetails:Ot.optional(),permissionContext:p,delegationManager:c,dependencies:d.array(E),salt:p}).strict().transform(e=>e),Dt=d.object({paymentIntent:vt,status:d.enum(["pending","confirmed","failed"]),txHash:p.nullable().optional(),blockNumber:p.nullable().optional()}).strict().transform(e=>e),Nt={discovery_supportedSouls:Mt,payment_getProtocolFeeBps:p,payment_calculateRewardAmount:p,payment_sendIntent:p,payment_getIntentStatuses:d.array(Dt),payment_prepareRouterCallsFromAction:d.array(_t),identity_getBurnAuth:St,identity_getTokenURI:d.string().nullable(),payment_sendPrePaymentSetup:p,payment_getPrePaymentSetup:Ct.nullable(),badge_getOwnerOf:Et,badge_getBadgeUri:d.string().nullable(),badge_getMetadataFormat:d.string(),badge_totalBadgesOfIdentity:p,badge_badgeOfIdentityByIndex:p,badge_badgesOfIdentity:d.array(p)},Oe=d.tuple([d.object({chainHex:p,badgeId:p,badgeKind:M})]),La={badge_getOwnerOf:Oe,badge_getBadgeUri:Oe,badge_getMetadataFormat:d.tuple([d.object({chainHex:p,badgeKind:M})]),badge_totalBadgesOfIdentity:d.tuple([d.object({chainHex:p,account:c,badgeKind:M})]),badge_badgeOfIdentityByIndex:d.tuple([d.object({chainHex:p,account:c,badgeKind:M,index:p})]),badge_badgesOfIdentity:d.tuple([d.object({chainHex:p,account:c,badgeKind:M,offset:p,limit:p})])};var se=class extends Error{method;zodError;constructor(t,n){let i=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}": ${i}`),this.name="PaymentRpcResponseValidationError",this.method=t,this.zodError=n}};function ve(e,t){let n=Nt[e].safeParse(t);if(!n.success)throw new se(e,n.error);return n.data}var De=e=>{let t=()=>({"0xaa36a7":Lt,"0x539":Ft,"0x7a69":Yt}),n=r=>{let h=Ht(r),B=t()[h];if(!B)throw new Error(`Chain ${h} is not supported`);return B},{url:i,chainId:a}=e,s=kt({chain:n(a),transport:Ut(O(i))}),o=async(r,h)=>{let B=await s.request({method:r,params:h});return ve(r,B)};return{getIdentitySoulDiscovery:r=>o("discovery_supportedSouls",r),getProtocolFeeBps:r=>o("payment_getProtocolFeeBps",r),calculateRewardAmount:r=>o("payment_calculateRewardAmount",r),sendIntent:r=>o("payment_sendIntent",r),getIntentStatuses:r=>o("payment_getIntentStatuses",r),prepareRouterCallsFromAction:r=>o("payment_prepareRouterCallsFromAction",r),getBurnAuth:r=>o("identity_getBurnAuth",r),getTokenURI:r=>o("identity_getTokenURI",r),sendPrePaymentSetup:r=>o("payment_sendPrePaymentSetup",r),getPrePaymentSetup:r=>o("payment_getPrePaymentSetup",r),getBadgeOwnerOf:r=>o("badge_getOwnerOf",r),getBadgeUri:r=>o("badge_getBadgeUri",r),getBadgeMetadataFormat:r=>o("badge_getMetadataFormat",r),getTotalBadgesOfIdentity:r=>o("badge_totalBadgesOfIdentity",r),getBadgeOfIdentityByIndex:r=>o("badge_badgeOfIdentityByIndex",r),getBadgesOfIdentity:r=>o("badge_badgesOfIdentity",r)}};var Ne=class{#e;#r;#i;#s;#o;#n;#t;#d=new Map;#p=new Map;#y;constructor(t){let{identityIssuer:n,cashieRpcUrl:i,chainIdHex:a}=t;this.#y=n,this.#n=De({url:i,chainId:jt(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,i]=await Promise.all([this.#n.getBadgeMetadataFormat([{chainHex:this.#t,badgeKind:"receipt"}]),this.#n.getBadgeMetadataFormat([{chainHex:this.#t,badgeKind:"paymentRecord"}])]);if(!n||!i)throw new Error("Failed to get badge metadata formats");this.#s=n,this.#o=i}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 i=await this.#y.issueIdentityProof(t),{identityType:a,domain:s,burnAuth:o,identityCommitment:r,proof:h}=i;return{chainId:this.#t,verifyingContract:this.#e,message:{to:n,identityType:a,domain:s,burnAuth:o,identityCommitment:r,proof:h}}}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=_(t),i=zt(n),a=await this.#n.getTokenURI([{chainHex:this.#t,tokenId:i}]);if(!a)return;let s=Se(a),o=L(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 i=await this.#n.getBadgeUri([{chainHex:this.#t,badgeId:t,badgeKind:"receipt"}]);if(!i)return;let a=_e(i,this.#s),s=L(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 i=await this.#n.getBadgeUri([{chainHex:this.#t,badgeId:t,badgeKind:"paymentRecord"}]);if(!i)return;let a=Ee(i,this.#o),s=L(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}};import{encodeAbiParameters as Vt,keccak256 as $t,zeroAddress as ke}from"viem";var Gt=[{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 qt(e){let t=e.rewardIntentDetails??{rewardPayer:ke,rewardItems:[],rewardDelegationManager:ke};return Vt(Gt,[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 cr(e){return $t(qt(e))}var Or=[{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:[]}],vr=[{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"}]}],Dr=[{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"}]}],Nr=[{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"}]}],kr=[{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 Gr=["payments","deposits","withdrawals","rewards"];import{toHex as Ue}from"viem";function oi(e){let{badgeId:t,badgeKind:n,identityContract:i,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(Ue(Q(i,o.paymentIntent,BigInt(o.blockNumber),X.OneTime))===t)return o.txHash;break}case"paymentRecord":{if(Ue(Ae(i,o.paymentIntent,BigInt(o.blockNumber),X.OneTime))===t)return o.txHash;break}}return null}import{keccak256 as Jt}from"viem";function oe(e){if(e===null||typeof e!="object")return e;if(Array.isArray(e))return e.map(oe).sort((s,o)=>{let r=JSON.stringify(s),h=JSON.stringify(o);return r<h?-1:r>h?1:0});let t=e,n=Object.keys(t).sort(),i={};for(let a of n)i[a]=oe(t[a]);return i}function Wt(e){return JSON.stringify(oe(e))}function de(e){let t=Wt(e),n=new TextEncoder().encode(t);return Jt(n)}var C=class extends Error{constructor(t){super(t),this.name="OcapValidationError"}};function Kt(e,t){if(e.type!=="api")throw new C(`Unsupported resource type: ${e.type}`);if(!t.includes(e.audience))throw new C(`Audience not allowed: ${e.audience}`);if(!e.data?.endpoint||!Array.isArray(e.data.methods))throw new C("Invalid api resource: missing endpoint or methods")}function mi(e){let{resources:t,allowedAudiences:n}=e,i=Array.isArray(t.api)?t.api:[];for(let o of i)Kt(o,n);let a={resources:{api:i}},s=de(a);return{ocap:a,ocapId:s}}var Ti=300*1e3,Zt="Request OCAP";function Ii(e,t){let n=de({resources:t});return`${Zt}:${e}:${n}`}var Xt=(i=>(i.ACCOUNT_SERVICE="account-service",i.PAYMENT_SERVICE="payment-service",i.IDV_SERVICE="idv-service",i))(Xt||{});var Qt=(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))(Qt||{}),en=(r=>(r[r.UNSUPPORTED_NON_OPTIONAL_CAPABILITY=5700]="UNSUPPORTED_NON_OPTIONAL_CAPABILITY",r[r.UNSUPPORTED_CHAIN_ID=5710]="UNSUPPORTED_CHAIN_ID",r[r.DUPLICATE_BUNDLE_ID=5720]="DUPLICATE_BUNDLE_ID",r[r.UNKNOWN_BUNDLE_ID=5730]="UNKNOWN_BUNDLE_ID",r[r.BUNDLE_TOO_LARGE=5740]="BUNDLE_TOO_LARGE",r[r.ATOMIC_READY_WALLET_REJECTED_UPGRADE=5750]="ATOMIC_READY_WALLET_REJECTED_UPGRADE",r[r.ATOMICITY_NOT_SUPPORTED=5760]="ATOMICITY_NOT_SUPPORTED",r))(en||{}),tn=(t=>(t[t.UNAUTHORIZED_ACCESS_RESTRICTED_METHOD=4101]="UNAUTHORIZED_ACCESS_RESTRICTED_METHOD",t))(tn||{}),nn=(n=>(n[n.INTERNAL_ERROR=-32001]="INTERNAL_ERROR",n[n.NO_SECURE_CONNECTION_ESTABLISHED=-32002]="NO_SECURE_CONNECTION_ESTABLISHED",n))(nn||{}),an=(t=>(t[t.INVALID_PARAMS=-32602]="INVALID_PARAMS",t))(an||{}),rn={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."}},Ci=e=>{let t=rn[e];return t||{code:e,message:`Unknown error code: ${e}`}},He=class extends Error{code;data;constructor({message:t,code:n,data:i}){super(t),this.code=n,this.data=i}};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 Y(t)}static Left(t){return new pe(t)}static Right(t){return new Y(t)}},pe=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}},Y=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}},Oi=e=>e instanceof S;var Di="/api/public/protocol-rpc";var sn=(n=>(n[n.INDIVIDUAL=0]="INDIVIDUAL",n[n.BUSINESS=1]="BUSINESS",n))(sn||{}),ki={1:"Business",0:"Individual"};export{Gr as ACCOUNT_STATEMENT_RECEIPT_KINDS,f as BurnAuth,ki as CASHIE_ACCOUNT_TYPE_LABELS,Dr as CASHIE_IDENTITY_SOUL_CONTRACT_ABI,ye as CASHIE_IDENTITY_SOUL_EIP712_NAME,ue as CASHIE_IDENTITY_SOUL_EIP712_VERSION,D as CASHIE_JSON_DATA_URI_BASE64_PREFIX,kr as CASHIE_PAYMENT_RECORD_BADGE_CONTRACT_ABI,U as CASHIE_PAYMENT_RECORD_BADGE_METADATA_FORMAT,Nr as CASHIE_RECEIPT_BADGE_CONTRACT_ABI,k as CASHIE_RECEIPT_BADGE_METADATA_FORMAT,vr as CASHIE_ROUTER_GUARD_CONTRACT_ABI,Or as CASHIE_ROUTER_V1_CONTRACT_ABI,N as CASHIE_SVG_DATA_URI_BASE64_PREFIX,an as COMMON_ERROR_CODES,sn as CashieAccountType,ie as CashieRouterActions,Ti as DEFAULT_MAX_AGE_MS,Qt as EIP1193_ERROR_CODES,en as EIP5792_ERROR_CODES,z as ERC7715ValidationError,tn as ERC7715_ERROR_CODES,S as Either,nn as FATAL_ERROR_CODES,dn as IDENTITY_MINT_CONSENT_EIP712_TYPE_STRING,Te as IDENTITY_MINT_EIP712_TYPES,le as IDENTITY_MINT_PAYLOAD_EIP712_TYPES,on as IDENTITY_MINT_PAYLOAD_EIP712_TYPE_STRING,he as IdentityIssuer,j as IdentityIssuerId,x as IdentityType,Qe as JSON_IDENTITY_TYPE_LABEL_TO_IDENTITY_TYPE,Zt as OCAP_STATEMENT_PREFIX,Xt as OcapAudiences,C as OcapValidationError,We as PLAID_IDV_ERROR_MESSAGE,ce as PRIMARY_TYPE_IDENTITY_MINT_CONSENT,me as PRIMARY_TYPE_IDENTITY_MINT_PAYLOAD,Di as PROTOCOL_RPC_PROXY_PATH,Je as PlaidIdvErrorCode,X as ReceiptType,He as RpcError,Ne as SoulManager,l as addressSchema,O as assertUrl,te as basePaymentDetailsDataSchema,A as baseScopeSchema,Me as billingPeriodSchema,fe as buildCashieIdentitySoulDomain,mn as buildIdentityCommitmentHash,Ve as buildIdentityMintConsentTypedData,$e as buildIdentityMintProofTypedData,de as buildOcapId,$ as burnAuthSchema,Pe as bytes32HexSchema,Wt as canonicalOcapPayload,Xe as cashieIdentitySoulIdentityTypeJsonSchema,Z as cashieIdentitySoulTokenMetadataJsonSchema,Xn as cashieIdentitySoulTokenMetadataSchema,K as cashiePaymentRecordBadgeMetadataSchema,W as cashieReceiptBadgeMetadataSchema,be as cashieReceiptBadgeSoulBoundToSchema,De as createPaymentRpcClient,ut as decodeCashieJsonDataUriToUtf8,L as decodeCashieSvgDataUriToUtf8,qt as encodePaymentIntent,ot as encodePaymentRecordBadgeMintPayload,nt as encodeReceiptBadgeMintPayload,ne as erc20TokenPaymentPermissionSchema,G as expiryRuleSchema,oi as findTransactionHashForBadgeId,Pn as generateSalt,Ci as getErrorMessage,cr as getPaymentIntentHash,dt as getPaymentRecordBadgeMintPayloadHash,bt as getPermissionsInfoResultParamsSchema,at as getReceiptBadgeMintPayloadHash,xt as getSupportedExecutionPermissionsResultSchema,In as hashIdentityMintConsentTypedData,gn as hashIdentityMintProofTypedData,R as hex0xSchema,T as hexSchema,un as identityAccountFor,q as identityMintRuleSchema,v as identityMintSignPayloadWithSignatureSchema,_ as identityTokenIdFor,V as identityTypeSchema,E as initCodeDataSchema,Oi as isEither,Ta as parseBasePaymentDetailsData,Ln as parseBaseScopeSchema,ca as parseBillingPeriod,Se as parseCashieIdentitySoulTokenMetadata,F as parseCashieJsonDataUriJson,ra as parseCashieMetadataDataUri,ct as parseCashiePaymentRecordBadgeMetadata,Ee as parseCashiePaymentRecordBadgeMetadataFromBadgeUri,mt as parseCashieReceiptBadgeMetadata,_e as parseCashieReceiptBadgeMetadataFromBadgeUri,ga as parseERC20TokenPaymentPermission,$n as parseExpiryRule,Ma as parseGetPermissionsInfoResultParams,Ca as parseGetSupportedExecutionPermissionsResult,Gn as parseIdentityMintRule,Aa as parseInitCodeData,Ia as parsePaymentDetails,la as parsePaymentDetailsType,fa as parsePermission,wa as parsePermissionRequest,_a as parsePermissionResponse,Sa as parsePermissionsRequest,Ea as parsePermissionsResponse,qn as parseRule,u as parseWithSchema,Ce as paymentDetailsSchema,ee as paymentDetailsTypeSchema,pt as paymentRecordBadgeIdFromMintPayload,Ae as paymentRecordBadgeIdFromPaymentIntent,yt as paymentRecordBadgeMintPayloadFromPaymentIntent,re as permissionRequestSchema,Be as permissionResponseSchema,ae as permissionSchema,ma as permissionSchemas,ht as permissionsRequestSchema,Pt as permissionsResponseSchema,Mn as plaidIdvError,Ii as prepareStatement,rt as receiptBadgeIdFromMintPayload,Q as receiptBadgeIdFromPaymentIntent,it as receiptBadgeMintPayloadFromPaymentIntent,ft as recurringPaymentDetailsSchema,It as rewardItemSchema,J as ruleSchema,Vn as ruleSchemas,gt as singlePaymentDetailsSchema,Rt as supportedExecutionPermissionInfoSchema,mi as validateAndBuildOcap};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|