"use strict";(self.webpackChunkfrog=self.webpackChunkfrog||[]).push([[4061],{38264:(t,n,e)=>{e.d(n,{id:()=>s});var r=e(95640),i=e(87303);function s(t){return(0,r.S)((0,i.YW)(t))}},13890:(t,n,e)=>{e.d(n,{Wh:()=>p,kM:()=>y});var r=e(95640),i=e(57339),s=e(87303),a=e(36212),o=e(86266);const c=new Uint8Array(32);function f(t){return(0,i.MR)(0!==t.length,"invalid ENS name; empty component","comp",t),t}function u(t){const n=(0,s.YW)(function(t){try{if(0===t.length)throw new Error("empty label");return(0,o.tt)(t)}catch(n){(0,i.MR)(!1,`invalid ENS name (${n.message})`,"name",t)}}(t)),e=[];if(0===t.length)return e;let r=0;for(let t=0;t{(0,i.MR)(n.length<=e,`label ${JSON.stringify(t)} exceeds ${e} bytes`,"name",t);const r=new Uint8Array(n.length+1);return r.set(n,1),r[0]=r.length-1,r}))))+"00"}c.fill(0)},82314:(t,n,e)=>{e.d(n,{z:()=>w});var r=e(30031),i=e(95640),s=e(36212),a=e(27033),o=e(57339),c=e(88081),f=e(38264);const u=new Uint8Array(32);u.fill(0);const y=BigInt(-1),p=BigInt(0),h=BigInt(1),l=BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");const d=(0,a.up)(h,32),m=(0,a.up)(p,32),g={name:"string",version:"string",chainId:"uint256",verifyingContract:"address",salt:"bytes32"},v=["name","version","chainId","verifyingContract","salt"];function S(t){return function(n){return(0,o.MR)("string"==typeof n,`invalid domain value for ${JSON.stringify(t)}`,`domain.${t}`,n),n}}const M={name:S("name"),version:S("version"),chainId:function(t){const n=(0,a.Ab)(t,"domain.chainId");return(0,o.MR)(n>=0,"invalid chain ID","domain.chainId",t),Number.isSafeInteger(n)?Number(n):(0,a.nD)(n)},verifyingContract:function(t){try{return(0,r.b)(t).toLowerCase()}catch(t){}(0,o.MR)(!1,'invalid domain value "verifyingContract"',"domain.verifyingContract",t)},salt:function(t){const n=(0,s.q5)(t,"domain.salt");return(0,o.MR)(32===n.length,'invalid domain value "salt"',"domain.salt",t),(0,s.c$)(n)}};function b(t){{const n=t.match(/^(u?)int(\d+)$/);if(n){const e=""===n[1],r=parseInt(n[2]);(0,o.MR)(r%8==0&&0!==r&&r<=256&&n[2]===String(r),"invalid numeric width","type",t);const i=(0,a.dK)(l,e?r-1:r),s=e?(i+h)*y:p;return function(n){const r=(0,a.Ab)(n,"value");return(0,o.MR)(r>=s&&r<=i,`value out-of-bounds for ${t}`,"value",r),(0,a.up)(e?(0,a.JJ)(r,256):r,32)}}}{const n=t.match(/^bytes(\d+)$/);if(n){const e=parseInt(n[1]);return(0,o.MR)(0!==e&&e<=32&&n[1]===String(e),"invalid bytes width","type",t),function(n){const r=(0,s.q5)(n);return(0,o.MR)(r.length===e,`invalid length for ${t}`,"value",n),function(t){const n=(0,s.q5)(t),e=n.length%32;return e?(0,s.xW)([n,u.slice(e)]):(0,s.c$)(n)}(n)}}}switch(t){case"address":return function(t){return(0,s.nx)((0,r.b)(t),32)};case"bool":return function(t){return t?d:m};case"bytes":return function(t){return(0,i.S)(t)};case"string":return function(t){return(0,f.id)(t)}}return null}function R(t,n){return`${t}(${n.map((({name:t,type:n})=>n+" "+t)).join(",")})`}function $(t){const n=t.match(/^([^\x5b]*)((\x5b\d*\x5d)*)(\x5b(\d*)\x5d)$/);return n?{base:n[1],index:n[2]+n[4],array:{base:n[1],prefix:n[1]+n[2],count:n[5]?parseInt(n[5]):-1}}:{base:t}}class w{primaryType;#t;get types(){return JSON.parse(this.#t)}#n;#e;constructor(t){this.#n=new Map,this.#e=new Map;const n=new Map,e=new Map,r=new Map,i={};Object.keys(t).forEach((s=>{i[s]=t[s].map((({name:n,type:e})=>{let{base:r,index:i}=$(e);return"int"!==r||t.int||(r="int256"),"uint"!==r||t.uint||(r="uint256"),{name:n,type:r+(i||"")}})),n.set(s,new Set),e.set(s,[]),r.set(s,new Set)})),this.#t=JSON.stringify(i);for(const r in i){const s=new Set;for(const a of i[r]){(0,o.MR)(!s.has(a.name),`duplicate variable name ${JSON.stringify(a.name)} in ${JSON.stringify(r)}`,"types",t),s.add(a.name);const i=$(a.type).base;(0,o.MR)(i!==r,`circular type reference to ${JSON.stringify(i)}`,"types",t);b(i)||((0,o.MR)(e.has(i),`unknown type ${JSON.stringify(i)}`,"types",t),e.get(i).push(r),n.get(r).add(i))}}const s=Array.from(e.keys()).filter((t=>0===e.get(t).length));(0,o.MR)(0!==s.length,"missing primary type","types",t),(0,o.MR)(1===s.length,`ambiguous primary types or unused types: ${s.map((t=>JSON.stringify(t))).join(", ")}`,"types",t),(0,c.n)(this,{primaryType:s[0]}),function i(s,a){(0,o.MR)(!a.has(s),`circular type reference to ${JSON.stringify(s)}`,"types",t),a.add(s);for(const t of n.get(s))if(e.has(t)){i(t,a);for(const n of a)r.get(n).add(t)}a.delete(s)}(this.primaryType,new Set);for(const[t,n]of r){const e=Array.from(n);e.sort(),this.#n.set(t,R(t,i[t])+e.map((t=>R(t,i[t]))).join(""))}}getEncoder(t){let n=this.#e.get(t);return n||(n=this.#r(t),this.#e.set(t,n)),n}#r(t){{const n=b(t);if(n)return n}const n=$(t).array;if(n){const t=n.prefix,e=this.getEncoder(t);return r=>{(0,o.MR)(-1===n.count||n.count===r.length,`array length mismatch; expected length ${n.count}`,"value",r);let a=r.map(e);return this.#n.has(t)&&(a=a.map(i.S)),(0,i.S)((0,s.xW)(a))}}const e=this.types[t];if(e){const n=(0,f.id)(this.#n.get(t));return t=>{const r=e.map((({name:n,type:e})=>{const r=this.getEncoder(e)(t[n]);return this.#n.has(e)?(0,i.S)(r):r}));return r.unshift(n),(0,s.xW)(r)}}(0,o.MR)(!1,`unknown type: ${t}`,"type",t)}encodeType(t){const n=this.#n.get(t);return(0,o.MR)(n,`unknown type: ${JSON.stringify(t)}`,"name",t),n}encodeData(t,n){return this.getEncoder(t)(n)}hashStruct(t,n){return(0,i.S)(this.encodeData(t,n))}encode(t){return this.encodeData(this.primaryType,t)}hash(t){return this.hashStruct(this.primaryType,t)}_visit(t,n,e){if(b(t))return e(t,n);const r=$(t).array;if(r)return(0,o.MR)(-1===r.count||r.count===n.length,`array length mismatch; expected length ${r.count}`,"value",n),n.map((t=>this._visit(r.prefix,t,e)));const i=this.types[t];if(i)return i.reduce(((t,{name:r,type:i})=>(t[r]=this._visit(i,n[r],e),t)),{});(0,o.MR)(!1,`unknown type: ${t}`,"type",t)}visit(t,n){return this._visit(this.primaryType,t,n)}static from(t){return new w(t)}static getPrimaryType(t){return w.from(t).primaryType}static hashStruct(t,n,e){return w.from(n).hashStruct(t,e)}static hashDomain(t){const n=[];for(const e in t){if(null==t[e])continue;const r=g[e];(0,o.MR)(r,`invalid typed-data domain key: ${JSON.stringify(e)}`,"domain",t),n.push({name:e,type:r})}return n.sort(((t,n)=>v.indexOf(t.name)-v.indexOf(n.name))),w.hashStruct("EIP712Domain",{EIP712Domain:n},t)}static encode(t,n,e){return(0,s.xW)(["0x1901",w.hashDomain(t),w.from(n).hash(e)])}static hash(t,n,e){return(0,i.S)(w.encode(t,n,e))}static async resolveNames(t,n,e,r){t=Object.assign({},t);for(const n in t)null==t[n]&&delete t[n];const i={};t.verifyingContract&&!(0,s.Lo)(t.verifyingContract,20)&&(i[t.verifyingContract]="0x");const a=w.from(n);a.visit(e,((t,n)=>("address"!==t||(0,s.Lo)(n,20)||(i[n]="0x"),n)));for(const t in i)i[t]=await r(t);return t.verifyingContract&&i[t.verifyingContract]&&(t.verifyingContract=i[t.verifyingContract]),{domain:t,value:e=a.visit(e,((t,n)=>"address"===t&&i[n]?i[n]:n))}}static getPayload(t,n,e){w.hashDomain(t);const r={},i=[];v.forEach((n=>{const e=t[n];null!=e&&(r[n]=M[n](e),i.push({name:n,type:g[n]}))}));const c=w.from(n);n=c.types;const f=Object.assign({},n);return(0,o.MR)(null==f.EIP712Domain,"types must not contain EIP712Domain type","types.EIP712Domain",n),f.EIP712Domain=i,c.encode(e),{types:f,domain:r,primaryType:c.primaryType,message:c.visit(e,((t,n)=>{if(t.match(/^bytes(\d*)/))return(0,s.c$)((0,s.q5)(n));if(t.match(/^u?int/))return(0,a.Ab)(n).toString();switch(t){case"address":return n.toLowerCase();case"bool":return!!n;case"string":return(0,o.MR)("string"==typeof n,"invalid string","value",n),n}(0,o.MR)(!1,"unsupported type","type",t)}))}}}}}]);