@lombard.finance/sdk-starknet 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index2.cjs CHANGED
@@ -214,7 +214,7 @@ Update to the latest V3 transactions!`},gw={};Oe(gw,{RpcChannel:()=>sI});var Sx=
214
214
  provided: ${r}
215
215
  expected: ${n}`);return n.map((a,o)=>({element:r[o],type:a.type??a}))}function mT(e){const t=Us(e);return[t.data.length.toString(),...t.data.map(n=>n.toString()),t.pending_word.toString(),t.pending_word_len.toString()]}function Dt(e,t,n,r){if(e===void 0)throw Error(`Missing parameter for type ${t}`);if(wt.isTypeFixedArray(t)){const a=wt.getFixedArrayType(t);let o=[];if(Array.isArray(e))o=new wt(e,t).content;else if(typeof e=="object")o=Object.values(e),be(o.length===wt.getFixedArraySize(t),`ABI type ${t}: object provided do not includes ${wt.getFixedArraySize(t)} items. ${o.length} items provided.`);else throw new Error(`ABI type ${t}: not an Array representing a cairo.fixedArray() provided.`);return o.reduce((i,s)=>i.concat(Dt(s,a,n,r)),[])}if(Array.isArray(e)){const a=[];a.push(Mt(e.length));const o=_n(t);return e.reduce((i,s)=>i.concat(Dt(s,o,n,r)),a)}if(n[t]&&n[t].members.length){if(Ye.isAbiType(t))return new Ye(e).toApiRequest();if(_t.isAbiType(t))return new _t(e).toApiRequest();if(aa(t))return _a(t,e);if(ii(t))return mT(e);const{members:a}=n[t],o=e;return a.reduce((i,s)=>i.concat(Dt(o[s.name],s.type,n,r)),[])}if(br(t))return hT(e,t).reduce((o,i)=>{const s=Dt(i.element,i.type,n,r);return o.concat(s)},[]);if(Ye.isAbiType(t))return new Ye(e).toApiRequest();if(_t.isAbiType(t))return new _t(e).toApiRequest();if(ra(t,r)){const{variants:a}=r[t];if(Hs(t)){const h=e;if(h.isSome()){const f=a.find(b=>b.name==="Some");if(Ze(f))throw Error("Error in abi : Option has no 'Some' variant.");const l=f.type;if(l==="()")return en.Some.toString();const g=Dt(h.unwrap(),l,n,r);return Array.isArray(g)?[en.Some.toString(),...g]:[en.Some.toString(),g]}return en.None.toString()}if(Ls(t)){const h=e;if(h.isOk()){const b=a.find(k=>k.name==="Ok");if(Ze(b))throw Error("Error in abi : Result has no 'Ok' variant.");const y=b.type;if(y==="()")return zt.Ok.toString();const _=Dt(h.unwrap(),y,n,r);return Array.isArray(_)?[zt.Ok.toString(),..._]:[zt.Ok.toString(),_]}const f=a.find(b=>b.name==="Err");if(Ze(f))throw Error("Error in abi : Result has no 'Err' variant.");const l=f.type;if(l==="()")return zt.Err.toString();const g=Dt(h.unwrap(),l,n,r);return Array.isArray(g)?[zt.Err.toString(),...g]:[zt.Err.toString(),g]}const o=e,i=o.activeVariant(),s=a.find(h=>h.name===i);if(Ze(s))throw Error(`Not find in abi : Enum has no '${i}' variant.`);const c=s.type,u=a.findIndex(h=>h.name===i);if(c==="()")return u.toString();const d=Dt(o.unwrap(),c,n,r);return Array.isArray(d)?[u.toString(),...d]:[u.toString(),d]}if(oa(t))return _a(_n(t),e);if(typeof e=="object")throw Error(`Parameter ${e} do not align with abi parameter ${t}`);return _a(t,e)}function gT(e,t,n,r){const{name:a,type:o}=t;let{value:i}=e.next();switch(!0){case wt.isTypeFixedArray(o):if(!Array.isArray(i)&&typeof i!="object")throw Error(`ABI expected parameter ${a} to be an array or an object, got ${i}`);return Dt(i,t.type,n,r);case Rn(o):if(!Array.isArray(i)&&!ai(i))throw Error(`ABI expected parameter ${a} to be array or long string, got ${i}`);return Qe(i)&&(i=Qd(i)),Dt(i,t.type,n,r);case oa(o):return _a(_n(o),i);case aa(o):return _a(o,i);case(oi(o,n)||br(o)||Ye.isAbiType(o)):return Dt(i,o,n,r);case ra(o,r):return Dt(i,o,n,r);default:return _a(o,i)}}function Dl(e,t){let n;switch(!0){case Ds(e):return n=t.next().value,!!BigInt(n);case Ye.isAbiType(e):const r=t.next().value,a=t.next().value;return new Ye(r,a).toBigInt();case _t.isAbiType(e):const o=t.next().value,i=t.next().value,s=t.next().value,c=t.next().value;return new _t(o,i,s,c).toBigInt();case aa(e):return n=t.next().value,BigInt(n);case Fs(e):return n=t.next().value,Jr(n);case Ms(e):const u=Ut(t.next().value).padStart(32,"0"),d=Ut(t.next().value).padStart(32,"0"),h=Ut(t.next().value).padStart(32,"0"),f=Ut(t.next().value).padStart(32,"0");return BigInt(Ce(d+u+f+h));default:return n=t.next().value,BigInt(n)}}function Bt(e,t,n,r){if(t.type==="()")return{};if(Ye.isAbiType(t.type)){const a=e.next().value,o=e.next().value;return new Ye(a,o).toBigInt()}if(_t.isAbiType(t.type)){const a=e.next().value,o=e.next().value,i=e.next().value,s=e.next().value;return new _t(a,o,i,s).toBigInt()}if(ii(t.type)){const a=[],o=BigInt(e.next().value);for(;a.length<o;)a.push(ee(e.next().value));const i=ee(e.next().value);return BigInt(e.next().value),Pw({data:a,pending_word:i})}if(wt.isTypeFixedArray(t.type)){const a=[],o={type:wt.getFixedArrayType(t.type)},i=wt.getFixedArraySize(t.type);for(;a.length<i;)a.push(Bt(e,o,n,r));return a}if(Rn(t.type)){const a=[],o={type:_n(t.type)},i=BigInt(e.next().value);for(;a.length<i;)a.push(Bt(e,o,n,r));return a}if(oa(t.type)){const a={type:_n(t.type)};return Bt(e,a,n,r)}if(n&&t.type in n&&n[t.type])return aa(t.type)?Dl(t.type,e):n[t.type].members.reduce((a,o)=>(a[o.name]=Bt(e,o,n,r),a),{});if(r&&t.type in r&&r[t.type]){const a=Number(e.next().value),o=r[t.type].variants.reduce((s,c,u)=>u===a?(s[c.name]=Bt(e,{type:c.type},n,r),s):(s[c.name]=void 0,s),{});if(t.type.startsWith("core::option::Option")){const s=a===en.Some?o.Some:void 0;return new Hl(a,s)}if(t.type.startsWith("core::result::Result")){let s;return a===zt.Ok?s=o.Ok:s=o.Err,new Ll(a,s)}return new si(o)}if(br(t.type))return rf(t.type).reduce((o,i,s)=>{const c=i!=null&&i.name?i.name:s,d={type:i!=null&&i.type?i.type:i};return o[c]=Bt(e,d,n,r),o},{});if(Rn(t.type)){const a=[],o={type:_n(t.type)},i=BigInt(e.next().value);for(;a.length<i;)a.push(Bt(e,o,n,r));return a}return Dl(t.type,e)}function ps(e,t,n,r,a){const{name:o,type:i}=t;let s;switch(!0){case Qr(o):return s=e.next().value,BigInt(s);case(n&&i in n||br(i)):return Bt(e,t,n,r);case(r&&ra(i,r)):return Bt(e,t,n,r);case wt.isTypeFixedArray(i):return Bt(e,t,n,r);case Rn(i):if(mr(i))return Bt(e,t,n,r);const c=[];if(a&&a[`${o}_len`]){const u=a[`${o}_len`];for(;c.length<u;)c.push(Bt(e,{type:t.type.replace("*","")},n,r))}return c;case oa(i):return Bt(e,t,n,r);default:return Dl(i,e)}}var af=(e,t)=>{if(be(Qe(e)||Yr(e)||Nn(e),`Validate: arg ${t.name} should be a felt typed as (String, Number or BigInt)`),Qe(e)&&!$t(e))return;const n=BigInt(e.toString(10));be(n>=0n&&n<=2n**252n-1n,`Validate: arg ${t.name} cairo typed ${t.type} should be in range [0, 2^252-1]`)},yT=(e,t)=>{be(Qe(e),`Validate: arg ${t.name} should be a string.`),be(e.length<32,`Validate: arg ${t.name} cairo typed ${t.type} should be a string of less than 32 characters.`)},bT=(e,t)=>{be(Qe(e),`Validate: arg ${t.name} should be a string.`)},qs=(e,t)=>{Yr(e)&&be(e<=Number.MAX_SAFE_INTEGER,"Validation: Parameter is too large to be typed as Number use (BigInt or String)"),be(Qe(e)||Yr(e)||Nn(e)||kn(e)&&"low"in e&&"high"in e||kn(e)&&["limb0","limb1","limb2","limb3"].every(r=>r in e),`Validate: arg ${t.name} of cairo type ${t.type} should be type (String, Number or BigInt), but is ${typeof e} ${e}.`);let n;switch(t.type){case At.u256:n=new Ye(e).toBigInt();break;case At.u512:n=new _t(e).toBigInt();break;default:n=He(e)}switch(t.type){case At.u8:be(n>=0n&&n<=255n,`Validate: arg ${t.name} cairo typed ${t.type} should be in range [0 - 255]`);break;case At.u16:be(n>=0n&&n<=65535n,`Validate: arg ${t.name} cairo typed ${t.type} should be in range [0, 65535]`);break;case At.u32:be(n>=0n&&n<=4294967295n,`Validate: arg ${t.name} cairo typed ${t.type} should be in range [0, 4294967295]`);break;case At.u64:be(n>=0n&&n<=2n**64n-1n,`Validate: arg ${t.name} cairo typed ${t.type} should be in range [0, 2^64-1]`);break;case At.u128:be(n>=0n&&n<=2n**128n-1n,`Validate: arg ${t.name} cairo typed ${t.type} should be in range [0, 2^128-1]`);break;case At.u256:be(n>=0n&&n<=2n**256n-1n,`Validate: arg ${t.name} is ${t.type} should be in range 0 - 2^256-1`);break;case At.u512:be(_t.is(n),`Validate: arg ${t.name} is ${t.type} should be in range 0 - 2^512-1`);break;case ir.ClassHash:be(n>=0n&&n<=2n**252n-1n,`Validate: arg ${t.name} cairo typed ${t.type} should be in range [0, 2^252-1]`);break;case ir.ContractAddress:be(n>=0n&&n<=2n**252n-1n,`Validate: arg ${t.name} cairo typed ${t.type} should be in range [0, 2^252-1]`);break;case ir.Secp256k1Point:{be(n>=0n&&n<=2n**512n-1n,`Validate: arg ${t.name} must be ${t.type} : a 512 bits number.`);break}case ir.U96:{be(n>=0n&&n<=2n**96n-1n,`Validate: arg ${t.name} must be ${t.type} : a 96 bits number.`);break}}},Dw=(e,t)=>{be(Gd(e),`Validate: arg ${t.name} of cairo type ${t.type} should be type (Boolean)`)},Fw=(e,t,n)=>{if(t.type===At.u256||t.type===At.u512){qs(e,t);return}if(aa(t.type)){be(!kn(e),`EthAddress type is waiting a BigNumberish. Got "${e}"`);const r=BigInt(e.toString(10));be(r>=0n&&r<=2n**160n-1n,`Validate: arg ${t.name} cairo typed ${t.type} should be in range [0, 2^160-1]`);return}be(kn(e),`Validate: arg ${t.name} is cairo type struct (${t.type}), and should be defined as a js object (not array)`),n[t.type].members.forEach(({name:r})=>{be(Object.keys(e).includes(r),`Validate: arg ${t.name} should have a property ${r}`)})},Mw=(e,t)=>{be(kn(e),`Validate: arg ${t.name} is cairo type Enum (${t.type}), and should be defined as a js object (not array)`);const n=Object.getOwnPropertyNames(Object.getPrototypeOf(e)),r=[...Object.getOwnPropertyNames(e),...n];if(!(Hs(t.type)&&r.includes("isSome")&&r.includes("isNone"))&&!(Ls(t.type)&&r.includes("isOk")&&r.includes("isErr"))&&!(r.includes("variant")&&r.includes("activeVariant")))throw new Error(`Validate Enum: argument ${t.name}, type ${t.type}, value received "${e}", is not an Enum.`)},qw=(e,t)=>{be(kn(e),`Validate: arg ${t.name} should be a tuple (defined as object)`)},Vw=(e,t,n,r)=>{const a=Rn(t.type),o=a?_n(t.type):wt.getFixedArrayType(t.type);if(a&&Ba(o)&&Jd(e))return;let i=[];if(a)be(Array.isArray(e),`Validate: arg ${t.name} should be an Array`),i=e;else switch(!0){case Array.isArray(e):i=e;break;case typeof e=="object":i=Object.values(e);break;default:throw new Error(`Validate: arg ${t.name} should be an Array or an object.`)}switch(!0){case Ba(o):i.forEach(s=>af(s,t));break;case br(o):i.forEach(s=>qw(s,{name:t.name}));break;case Rn(o):i.forEach(s=>Vw(s,{name:"",type:o},n,r));break;case oi(o,n):i.forEach(s=>Fw(s,{name:t.name,type:o},n));break;case ra(o,r):i.forEach(s=>Mw(s,{name:t.name,type:o}));break;case(Lo(o)||ef(o)):i.forEach(s=>qs(s,{name:"",type:o}));break;case Ds(o):i.forEach(s=>Dw(s,t));break;default:throw new Error(`Validate Unhandled: argument ${t.name}, type ${t.type}, value ${i}`)}},wT=(e,t)=>{const n=_n(t.type);switch(be(Lo(n)&&n!==_t.abiSelector||Ba(n),`Validate: ${t.name} type is not authorized for NonZero type.`),!0){case Ba(n):af(e,t),be(BigInt(e.toString(10))>0,"Validate: value 0 is not authorized in NonZero felt252 type.");break;case Lo(n):switch(qs(e,{name:"",type:n}),n){case At.u256:be(new Ye(e).toBigInt()>0,"Validate: value 0 is not authorized in NonZero uint256 type.");break;default:be(He(e)>0,"Validate: value 0 is not authorized in NonZero uint type.")}break;default:throw new Error(`Validate Unhandled: argument ${t.name}, type ${t.type}, value "${e}"`)}};function Sm(e,t,n,r){e.inputs.reduce((a,o)=>{const i=t[a];switch(!0){case Qr(o.name):return a;case Ba(o.type):af(i,o);break;case Fs(o.type):yT(i,o);break;case(Lo(o.type)||ef(o.type)):qs(i,o);break;case Ds(o.type):Dw(i,o);break;case ii(o.type):bT(i,o);break;case(Rn(o.type)||wt.isTypeFixedArray(o.type)):Vw(i,o,n,r);break;case oi(o.type,n):Fw(i,o,n);break;case ra(o.type,r):Mw(i,o);break;case br(o.type):qw(i,o);break;case oa(o.type):wT(i,o);break;default:throw new Error(`Validate Unhandled: argument ${o.name}, type ${o.type}, value ${i}`)}return a+1},0)}var xe=class po{constructor(t){ie(this,"abi");ie(this,"parser");ie(this,"structs");ie(this,"enums");this.structs=po.getAbiStruct(t),this.enums=po.getAbiEnum(t),this.parser=Lw(t),this.abi=this.parser.getLegacyFormat()}validate(t,n,r=[]){if(t!==or.DEPLOY){const i=this.abi.filter(s=>{if(s.type!=="function")return!1;const c=s.stateMutability==="view"||s.state_mutability==="view";return t===or.INVOKE?!c:c}).map(s=>s.name);be(i.includes(n),`${t===or.INVOKE?"invocable":"viewable"} method not found in abi`)}const a=this.abi.find(i=>t===or.DEPLOY?i.name===n&&i.type==="constructor":i.name===n&&i.type==="function");if(Em(n,r,a))return;const o=this.parser.methodInputsLength(a);if(r.length!==o)throw Error(`Invalid number of arguments, expected ${o} arguments, but got ${r.length}`);Sm(a,r,this.structs,this.enums)}compile(t,n){const r=this.abi.find(s=>s.name===t);if(Em(t,n,r))return[];let a;if(Array.isArray(n))a=n;else{const s=pT(n,r.inputs,this.structs,this.enums);a=Object.values(s),Sm(r,a,this.structs,this.enums)}const o=a[Symbol.iterator](),i=r.inputs.reduce((s,c)=>Qr(c.name)&&!mr(c.type)?s:s.concat(gT(o,c,this.structs,this.enums)),[]);return Object.defineProperty(i,"__compiled__",{enumerable:!1,writable:!1,value:!0}),i}static compile(t){const n=a=>{const o=(s,c=".")=>{const u=Array.isArray(s)?[s.length.toString(),...s]:s;return Object.entries(u).flatMap(([d,h])=>{let f=h;d==="entrypoint"?f=Ke(f):Jd(f)&&(f=Us(f));const l=Array.isArray(u)&&d==="0"?"$$len":d;if(Nn(f))return[[`${c}${l}`,Mt(f)]];if(Object(f)===f){const g=Object.getOwnPropertyNames(Object.getPrototypeOf(f)),b=[...Object.getOwnPropertyNames(f),...g];if(b.includes("isSome")&&b.includes("isNone")){const y=f,_=y.isSome()?en.Some:en.None;return y.isSome()?o({0:_,1:y.unwrap()},`${c}${l}.`):[[`${c}${l}`,Mt(_)]]}if(b.includes("isOk")&&b.includes("isErr")){const y=f,_=y.isOk()?zt.Ok:zt.Err;return o({0:_,1:y.unwrap()},`${c}${l}.`)}if(b.includes("variant")&&b.includes("activeVariant")){const y=f,_=y.activeVariant(),w=Object.keys(y.variant).findIndex(v=>v===_);return typeof y.unwrap()=="object"&&Object.keys(y.unwrap()).length===0?[[`${c}${l}`,Mt(w)]]:o({0:w,1:y.unwrap()},`${c}${l}.`)}return o(f,`${c}${l}.`)}return[[`${c}${l}`,Mt(f)]]})};return Object.fromEntries(o(a))};let r;if(Array.isArray(t)){const a={...t},o=n(a);r=Object.values(o)}else{const a=n(t);r=Object.values(a)}return Object.defineProperty(r,"__compiled__",{enumerable:!1,writable:!1,value:!0}),r}parse(t,n){const{outputs:r}=this.abi.find(i=>i.name===t),a=n.flat()[Symbol.iterator](),o=r.flat().reduce((i,s,c)=>{const u=s.name??c;return i[u]=ps(a,s,this.structs,this.enums,i),i[u]&&i[`${u}_len`]&&delete i[`${u}_len`],i},{});return Object.keys(o).length===1&&0 in o?o[0]:o}format(t,n,r){const a=this.parse(t,n);return Zi(a,r)}static getAbiStruct(t){return t.filter(n=>n.type==="struct").reduce((n,r)=>({...n,[r.name]:r}),{})}static getAbiEnum(t){const n=t.filter(r=>r.type==="enum").reduce((r,a)=>({...r,[a.name]:a}),{});return delete n["core::bool"],n}static toCalldata(t=[]){return po.compile(t)}static toHex(t=[]){return po.compile(t).map(r=>ee(r))}decodeParameters(t,n){const r=Array.isArray(t)?t:[t],a=n.flat()[Symbol.iterator](),o=r.map(i=>ps(a,{name:"",type:i},this.structs,this.enums));return o.length===1?o[0]:o}},kT={};Oe(kT,{calculateContractAddressFromHash:()=>ik,calculateDeclareTransactionHash:()=>CT,calculateDeployAccountTransactionHash:()=>BT,calculateInvokeTransactionHash:()=>TT,calculateL2MessageTxHash:()=>Ww,computeCompiledClassHash:()=>lk,computeContractClassHash:()=>fk,computeHashOnElements:()=>dn,computeHintedClassHash:()=>sk,computeLegacyContractClassHash:()=>ck,computePedersenHash:()=>Do,computePedersenHashOnElements:()=>ak,computePoseidonHash:()=>rk,computePoseidonHashOnElements:()=>ok,computeSierraContractClassHash:()=>dk,formatSpaces:()=>Fo,getL2MessageHash:()=>zw,getSelector:()=>ni,getSelectorFromName:()=>Ke,hashByteCodeSegments:()=>uk,keccakBn:()=>Bw,poseidon:()=>y2,solidityUint256PackedKeccak256:()=>Ns,starknetKeccak:()=>Xd});var _T={};Oe(_T,{calculateDeclareTransactionHash:()=>$w,calculateDeployAccountTransactionHash:()=>Gw,calculateL2MessageTxHash:()=>Ww,calculateTransactionHash:()=>Kw,calculateTransactionHashCommon:()=>ci,computeHashOnElements:()=>Fl});var hs={};Oe(hs,{starkCurve:()=>Vv,weierstrass:()=>x2});function Fl(e){return[...e,e.length].reduce((t,n)=>Ra(He(t),He(n)),0).toString()}function ci(e,t,n,r,a,o,i,s=[]){const c=Fl(a),u=[e,t,n,r,c,o,i,...s];return Fl(u)}function $w(e,t,n,r,a,o,i){return ci("0x6465636c617265",n,t,0,[e],r,a,[o,...i?[i]:[]])}function Gw(e,t,n,r,a,o,i,s){const c=[t,r,...n];return ci("0x6465706c6f795f6163636f756e74",a,e,0,c,o,i,[s])}function Kw(e,t,n,r,a,o){return ci("0x696e766f6b65",t,e,0,n,r,a,[o])}function Ww(e,t,n,r,a,o){const i=[e,...r];return ci("0x6c315f68616e646c6572",0,t,ni(n),i,0,a,[o])}var vT={};Oe(vT,{calculateDeclareTransactionHash:()=>tk,calculateDeployAccountTransactionHash:()=>ek,calculateInvokeTransactionHash:()=>nk,calculateTransactionHashCommon:()=>Vs,encodeResourceBoundsL1:()=>Yw,encodeResourceBoundsL2:()=>Jw,hashDAMode:()=>Zw,hashFeeField:()=>Qw});var dr=e=>e.map(t=>BigInt(t)),ET=32n,AT=64n,of=128n,Xw=AT+of,ST=BigInt(rt("L1_GAS")),jT=BigInt(rt("L2_GAS"));function Zw(e,t){return(BigInt(e)<<ET)+BigInt(t)}function Yw(e){return(ST<<Xw)+(BigInt(e.l1_gas.max_amount)<<of)+BigInt(e.l1_gas.max_price_per_unit)}function Jw(e){return(jT<<Xw)+(BigInt(e.l2_gas.max_amount)<<of)+BigInt(e.l2_gas.max_price_per_unit)}function Qw(e,t){const n=Yw(t),r=Jw(t);return ot([BigInt(e),n,r])}function Vs(e,t,n,r,a,o,i,s,c,u,d=[]){const h=Qw(o,u),f=Zw(s,c),l=dr([e,t,n,h,ot(dr(i)),r,a,f,...dr(d)]);return ee(ot(l))}function ek(e,t,n,r,a,o,i,s,c,u,d,h){return Vs("0x6465706c6f795f6163636f756e74",a,e,o,i,d,h,s,c,u,[ot(dr(n)),t,r])}function tk(e,t,n,r,a,o,i,s,c,u,d,h){return Vs("0x6465636c617265",r,n,a,o,d,dr(h),s,c,u,[ot(dr(i)),e,t])}function nk(e,t,n,r,a,o,i,s,c,u,d){return Vs("0x696e766f6b65",t,e,r,a,u,d,i,s,c,[ot(dr(o)),ot(dr(n))])}function xT(e){return[we.ETransactionVersion.V3,we.ETransactionVersion.F3].includes(e.version)}function TT(e){return xT(e)?nk(e.senderAddress,e.version,e.compiledCalldata,e.chainId,e.nonce,e.accountDeploymentData,e.nonceDataAvailabilityMode,e.feeDataAvailabilityMode,e.resourceBounds,e.tip,e.paymasterData):Kw(e.senderAddress,e.version,e.compiledCalldata,e.maxFee,e.chainId,e.nonce)}function IT(e){return[we.ETransactionVersion.V3,we.ETransactionVersion.F3].includes(e.version)}function CT(e){return IT(e)?tk(e.classHash,e.compiledClassHash,e.senderAddress,e.version,e.chainId,e.nonce,e.accountDeploymentData,e.nonceDataAvailabilityMode,e.feeDataAvailabilityMode,e.resourceBounds,e.tip,e.paymasterData):$w(e.classHash,e.senderAddress,e.version,e.maxFee,e.chainId,e.nonce,e.compiledClassHash)}function OT(e){return[we.ETransactionVersion.V3,we.ETransactionVersion.F3].includes(e.version)}function BT(e){return OT(e)?ek(e.contractAddress,e.classHash,e.compiledConstructorCalldata,e.salt,e.version,e.chainId,e.nonce,e.nonceDataAvailabilityMode,e.feeDataAvailabilityMode,e.resourceBounds,e.tip,e.paymasterData):Gw(e.contractAddress,e.classHash,e.constructorCalldata,e.salt,e.version,e.maxFee,e.chainId,e.nonce)}function Do(e,t){return Ra(BigInt(e),BigInt(t))}function rk(e,t){return ee(Ed(BigInt(e),BigInt(t)))}function dn(e){return[...e,e.length].reduce((t,n)=>Ra(BigInt(t),BigInt(n)),0).toString()}var ak=dn;function ok(e){return ee(ot(e.map(t=>BigInt(t))))}function ik(e,t,n,r){const a=xe.compile(n),o=dn(a),i=Mt("0x535441524b4e45545f434f4e54524143545f41444452455353"),s=dn([i,r,e,t,o]);return ee(BigInt(s)%sw)}function zT(e,t){return e==="attributes"||e==="accessible_scopes"?Array.isArray(t)&&t.length===0?void 0:t:e==="debug_info"?null:t===null?void 0:t}function Fo(e){let t=!1;const n=[];for(const r of e)r==='"'&&!(n.length>0&&n.slice(-1)[0]==="\\")&&(t=!t),t?n.push(r):n.push(r===":"?": ":r===","?", ":r);return n.join("")}function sk(e){const{abi:t,program:n}=e,a=Fo(Vt({abi:t,program:n},zT));return Ce(pr(hr(a)).toString(16))}function ck(e){const t=Qe(e)?Fa(e):e,n=ee(ow),r=dn(t.entry_points_by_type.EXTERNAL.flatMap(u=>[u.selector,u.offset])),a=dn(t.entry_points_by_type.L1_HANDLER.flatMap(u=>[u.selector,u.offset])),o=dn(t.entry_points_by_type.CONSTRUCTOR.flatMap(u=>[u.selector,u.offset])),i=dn(t.program.builtins.map(u=>rt(u))),s=sk(t),c=dn(t.program.data);return dn([n,r,a,o,i,s,c])}function PT(e){return ot(e.flatMap(t=>BigInt(rt(t))))}function Mu(e){const t=e.flatMap(n=>[BigInt(n.selector),BigInt(n.offset),PT(n.builtins)]);return ot(t)}function uk(e){const t=e.bytecode.map(o=>BigInt(o)),n=e.bytecode_segment_lengths??[];let r=0;const a=n.flatMap(o=>{const i=t.slice(r,r+=o);return[BigInt(o),ot(i)]});return 1n+ot(a)}function lk(e){const n=BigInt(rt("COMPILED_CLASS_V1")),r=Mu(e.entry_points_by_type.EXTERNAL),a=Mu(e.entry_points_by_type.L1_HANDLER),o=Mu(e.entry_points_by_type.CONSTRUCTOR),i=e.bytecode_segment_lengths?uk(e):ot(e.bytecode.map(s=>BigInt(s)));return ee(ot([n,r,a,o,i]))}function qu(e){const t=e.flatMap(n=>[BigInt(n.selector),BigInt(n.function_idx)]);return ot(t)}function RT(e){const t=Fo(Vt(e.abi,null));return BigInt(Ce(pr(hr(t)).toString(16)))}function dk(e){const n=BigInt(rt("CONTRACT_CLASS_V0.1.0")),r=qu(e.entry_points_by_type.EXTERNAL),a=qu(e.entry_points_by_type.L1_HANDLER),o=qu(e.entry_points_by_type.CONSTRUCTOR),i=RT(e),s=ot(e.sierra_program.map(c=>BigInt(c)));return ee(ot([n,r,a,o,i,s]))}function fk(e){const t=Qe(e)?Fa(e):e;return"sierra_program"in t?dk(t):ck(t)}var NT={};Oe(NT,{compressProgram:()=>sf,decompressProgram:()=>Mr,estimateFeeToBounds:()=>cf,estimatedFeeToMaxFee:()=>hk,formatSignature:()=>ui,getFullPublicKey:()=>VT,intDAM:()=>LT,makeAddress:()=>UT,randomAddress:()=>pk,reduceV2:()=>qT,signatureToDecimalArray:()=>HT,signatureToHexArray:()=>Xe,toFeeVersion:()=>FT,toTransactionVersion:()=>DT,v3Details:()=>MT});function sf(e){const t=Qe(e)?e:Vt(e),n=nS(t);return Jb(n)}function Mr(e){if(Array.isArray(e))return e;const t=Zb(rS(Yb(e)));return Fa(t)}function pk(){const e=l0.randomPrivateKey();return p0(e)}function UT(e){return Ce(e).toLowerCase()}function ui(e){if(!e)throw Error("formatSignature: provided signature is undefined");if(Array.isArray(e))return e.map(t=>ee(t));try{const{r:t,s:n}=e;return[ee(t),ee(n)]}catch{throw new Error("Signature need to be weierstrass.SignatureType or an array for custom")}}function HT(e){return Tw(ui(e))}function Xe(e){return Iw(ui(e))}function hk(e,t=50){return _o(e,t)}function cf(e,t=50,n=50){if(Nn(e))return{l2_gas:{max_amount:"0x0",max_price_per_unit:"0x0"},l1_gas:{max_amount:"0x0",max_price_per_unit:"0x0"}};if(Ze(e.gas_consumed)||Ze(e.gas_price))throw Error("estimateFeeToBounds: estimate is undefined");const r=e.data_gas_consumed!==void 0&&e.data_gas_price!==void 0?ee(_o(BigInt(e.overall_fee)/BigInt(e.gas_price),t)):ee(_o(e.gas_consumed,t)),a=ee(_o(e.gas_price,n));return{l2_gas:{max_amount:"0x0",max_price_per_unit:"0x0"},l1_gas:{max_amount:r,max_price_per_unit:a}}}function LT(e){if(e===we.EDataAvailabilityMode.L1)return we.EDAMode.L1;if(e===we.EDataAvailabilityMode.L2)return we.EDAMode.L2;throw Error("EDAM conversion")}function DT(e,t){const n=t?ee(t):void 0,r=ee(e);if(t&&!Object.values(we.ETransactionVersion).includes(n))throw Error(`providedVersion ${t} is not ETransactionVersion`);if(!Object.values(we.ETransactionVersion).includes(r))throw Error(`defaultVersion ${e} is not ETransactionVersion`);return t?n:r}function FT(e){if(!e)return;const t=ee(e);if(t===we.ETransactionVersion.V0)return we.ETransactionVersion.F0;if(t===we.ETransactionVersion.V1)return we.ETransactionVersion.F1;if(t===we.ETransactionVersion.V2)return we.ETransactionVersion.F2;if(t===we.ETransactionVersion.V3)return we.ETransactionVersion.F3;throw Error(`toFeeVersion: ${t} is not supported`)}function MT(e){return{tip:e.tip||0,paymasterData:e.paymasterData||[],accountDeploymentData:e.accountDeploymentData||[],nonceDataAvailabilityMode:e.nonceDataAvailabilityMode||we.EDataAvailabilityMode.L1,feeDataAvailabilityMode:e.feeDataAvailabilityMode||we.EDataAvailabilityMode.L1,resourceBounds:e.resourceBounds??cf(Pn)}}function qT(e){return e===we.ETransactionVersion.F2?we.ETransactionVersion.F1:e===we.ETransactionVersion.V2?we.ETransactionVersion.V1:e}function VT(e){const t=ee(e);return Ce(zs(kd(t,!1)))}function tn(e){return"sierra_program"in(Qe(e)?Fa(e):e)}function $T(e){const t={...e};if(tn(e.contract)&&(!e.compiledClassHash&&e.casm&&(t.compiledClassHash=lk(e.casm)),!t.compiledClassHash))throw new Error("Extract compiledClassHash failed, provide (CairoAssembly).casm file or compiledClassHash");if(t.classHash=e.classHash??fk(e.contract),!t.classHash)throw new Error("Extract classHash failed, provide (CompiledContract).json file or classHash");return t}var GT={};Oe(GT,{ethRandomPrivateKey:()=>KT,validateAndParseEthAddress:()=>uf});function KT(){return nw(zs(yb.utils.randomPrivateKey()))}function uf(e){xw(e,Pn,2n**160n-1n,"Ethereum Address ");const t=Ce(Ut(ee(e)).padStart(40,"0"));return be(!!t.match(/^(0x)?[0-9a-f]{40}$/),"Invalid Ethereum Address Format"),t}var mk=Fd&&window.fetch.bind(window)||!Ze(global)&&qb(global.fetch)||Dj,WT={};Oe(WT,{Block:()=>je,createSierraContractClass:()=>gk,getDefaultNodeUrl:()=>Mo,isPendingBlock:()=>QT,isPendingStateUpdate:()=>tI,isPendingTransaction:()=>eI,isV3Tx:()=>Pt,isVersion:()=>lf,parseContract:()=>JT,validBlockTags:()=>yk,wait:()=>Pa});var gn,XT=(gn=class{constructor(){ie(this,"config");this.initialize()}initialize(){this.config={...mw}}static getInstance(){return gn.instance||(gn.instance=new gn),gn.instance}get(t,n){return this.config[t]??n}set(t,n){this.config[t]=n}update(t){this.config={...this.config,...t}}getAll(){return{...this.config}}reset(){this.initialize()}delete(t){delete this.config[t]}hasKey(t){return t in this.config}},ie(gn,"instance"),gn),ZT=XT.getInstance(),Ii={DEBUG:5,INFO:4,WARN:3,ERROR:2,FATAL:1,OFF:0},yn,YT=(yn=class{constructor(){ie(this,"config");this.config=ZT}static getInstance(){return yn.instance||(yn.instance=new yn),yn.instance}getTimestamp(){return new Date().toISOString()}shouldLog(t){const n=this.config.get("logLevel","INFO");return t<=Ii[n]}formatMessage(t){const{level:n,message:r,timestamp:a,data:o}=t;let i=`[${a}] ${n}: ${r}`;if(o)try{i+=`
216
216
  ${JSON.stringify(o,null,2)}`}catch(s){i+=`
217
- [JSON.stringify Error/Circular]: ${s}`}return i}log(t,n,r){if(!this.shouldLog(Ii[t]))return;const a={level:t,message:n,timestamp:this.getTimestamp(),data:r},o=this.formatMessage(a);switch(t){case"DEBUG":console.debug(o);break;case"INFO":console.info(o);break;case"WARN":console.warn(o);break;case"ERROR":case"FATAL":console.error(o);break;case"OFF":break;default:console.log(o);break}}debug(t,n){this.log("DEBUG",t,n)}info(t,n){this.log("INFO",t,n)}warn(t,n){this.log("WARN",t,n)}error(t,n){this.log("ERROR",t,n)}fatal(t,n){this.log("FATAL",t,n)}setLogLevel(t){this.config.set("logLevel",t)}getLogLevel(){return this.config.get("logLevel","INFO")}getEnabledLogLevels(){return Object.keys(Ii).filter(t=>this.shouldLog(Ii[t])&&t!=="OFF")}},ie(yn,"instance"),yn),xt=YT.getInstance();function Pa(e){return new Promise(t=>{setTimeout(t,e)})}function gk(e){const t={...e};return delete t.sierra_program_debug_info,t.abi=Fo(Vt(e.abi)),t.sierra_program=Fo(Vt(e.sierra_program)),t.sierra_program=sf(t.sierra_program),t}function JT(e){const t=Qe(e)?Fa(e):e;return tn(e)?gk(t):{...t,..."program"in t&&{program:sf(t.program)}}}var Mo=(e,t=!1)=>{t||xt.info("Using default public node url, please provide nodeUrl in provider options!");const n=hw[e??"SN_SEPOLIA"],r=Math.floor(Math.random()*n.length);return n[r]},yk=Object.values(lr),je=class{constructor(e){ie(this,"hash",null);ie(this,"number",null);ie(this,"tag",null);ie(this,"valueOf",()=>this.number);ie(this,"toString",()=>this.hash);this.setIdentifier(e)}setIdentifier(e){if(Qe(e))if(Yd(e))this.number=parseInt(e,10);else if($t(e))this.hash=e;else if(yk.includes(e))this.tag=e;else throw TypeError(`Block identifier unmanaged: ${e}`);else Nn(e)?this.hash=ee(e):Yr(e)?this.number=e:this.tag=lr.PENDING;if(Yr(this.number)&&this.number<0)throw TypeError(`Block number (${this.number}) can't be negative`)}get queryIdentifier(){return this.number!==null?`blockNumber=${this.number}`:this.hash!==null?`blockHash=${this.hash}`:`blockNumber=${this.tag}`}get identifier(){return this.number!==null?{block_number:this.number}:this.hash!==null?{block_hash:this.hash}:this.tag}set identifier(e){this.setIdentifier(e)}};function Pt(e){const t=e.version?ee(e.version):we.ETransactionVersion.V3;return t===we.ETransactionVersion.V3||t===we.ETransactionVersion.F3}function lf(e,t){const[n,r]=e.split("."),[a,o]=t.split(".");return n===a&&r===o}function QT(e){return e.status==="PENDING"}function eI(e){return!("block_hash"in e)}function tI(e){return!("block_hash"in e)}var nI={};Oe(nI,{buildUDCCall:()=>iI,fromCallsToExecuteCalldata:()=>df,fromCallsToExecuteCalldataWithNonce:()=>rI,fromCallsToExecuteCalldata_cairo1:()=>wk,getExecuteCalldata:()=>oI,getVersionsByType:()=>ff,transformCallsToMulticallArrays:()=>bk,transformCallsToMulticallArrays_cairo1:()=>aI});var bk=e=>{const t=[],n=[];return e.forEach(r=>{const a=xe.compile(r.calldata||[]);t.push({to:He(r.contractAddress).toString(10),selector:He(Ke(r.entrypoint)).toString(10),data_offset:n.length.toString(),data_len:a.length.toString()}),n.push(...a)}),{callArray:t,calldata:xe.compile({calldata:n})}},df=e=>{const{callArray:t,calldata:n}=bk(e);return[...xe.compile({callArray:t}),...n]},rI=(e,t)=>[...df(e),He(t).toString()],aI=e=>e.map(n=>({to:He(n.contractAddress).toString(10),selector:He(Ke(n.entrypoint)).toString(10),calldata:xe.compile(n.calldata||[])})),wk=e=>{const t=e.map(n=>({contractAddress:n.contractAddress,entrypoint:n.entrypoint,calldata:Array.isArray(n.calldata)&&"__compiled__"in n.calldata?n.calldata:xe.compile(n.calldata)}));return xe.compile({orderCalls:t})},oI=(e,t="0")=>t==="1"?wk(e):df(e);function iI(e,t){const n=[].concat(e).map(r=>{const{classHash:a,salt:o,unique:i=!0,constructorCalldata:s=[]}=r,c=xe.compile(s),u=o??pk();return{call:{contractAddress:ko.ADDRESS,entrypoint:ko.ENTRYPOINT,calldata:[a,u,Ow(i),c.length,...c]},address:ik(i?Ra(t,u):u,a,c,i?ko.ADDRESS:0)}});return{calls:n.map(r=>r.call),addresses:n.map(r=>r.address)}}function ff(e){return e==="fee"?{v1:we.ETransactionVersion.F1,v2:we.ETransactionVersion.F2,v3:we.ETransactionVersion.F3}:{v1:we.ETransactionVersion.V1,v2:we.ETransactionVersion.V2,v3:we.ETransactionVersion.V3}}var Vu={headers:{"Content-Type":"application/json"},blockIdentifier:lr.PENDING,retries:200},sI=class{constructor(e){ie(this,"nodeUrl");ie(this,"headers");ie(this,"requestId");ie(this,"blockIdentifier");ie(this,"retries");ie(this,"waitMode");ie(this,"chainId");ie(this,"specVersion");ie(this,"transactionRetryIntervalFallback");ie(this,"batchClient");ie(this,"baseFetch");const{baseFetch:t,batch:n,blockIdentifier:r,chainId:a,headers:o,nodeUrl:i,retries:s,specVersion:c,transactionRetryIntervalFallback:u,waitMode:d}=e||{};Object.values(Ps).includes(i)?this.nodeUrl=Mo(i,e==null?void 0:e.default):i?this.nodeUrl=i:this.nodeUrl=Mo(void 0,e==null?void 0:e.default),this.baseFetch=t??mk,this.blockIdentifier=r??Vu.blockIdentifier,this.chainId=a,this.headers={...Vu.headers,...o},this.retries=s??Vu.retries,this.specVersion=c,this.transactionRetryIntervalFallback=u,this.waitMode=d??!1,this.requestId=0,typeof n=="number"&&(this.batchClient=new Ew({nodeUrl:this.nodeUrl,headers:this.headers,interval:n,baseFetch:this.baseFetch}))}get transactionRetryIntervalDefault(){return this.transactionRetryIntervalFallback??5e3}setChainId(e){this.chainId=e}fetch(e,t,n=0){const r={id:n,jsonrpc:"2.0",method:e,...t&&{params:t}};return this.baseFetch(this.nodeUrl,{method:"POST",body:Vt(r),headers:this.headers})}errorHandler(e,t,n,r){if(n)throw new yw(n,e,t);if(r instanceof No)throw r;if(r)throw Error(r.message)}async fetchEndpoint(e,t){var n;try{if(this.batchClient){const{error:i,result:s}=await this.batchClient.fetch(e,t,this.requestId+=1);return this.errorHandler(e,t,i),s}const r=await this.fetch(e,t,this.requestId+=1),{error:a,result:o}=await r.json();return this.errorHandler(e,t,a),o}catch(r){throw this.errorHandler(e,t,(n=r==null?void 0:r.response)==null?void 0:n.data,r),r}}async getChainId(){return this.chainId??(this.chainId=await this.fetchEndpoint("starknet_chainId")),this.chainId}async getSpecVersion(){return this.specVersion??(this.specVersion=await this.fetchEndpoint("starknet_specVersion")),this.specVersion}getNonceForAddress(e,t=this.blockIdentifier){const n=ee(e),r=new je(t).identifier;return this.fetchEndpoint("starknet_getNonce",{contract_address:n,block_id:r})}getBlockLatestAccepted(){return this.fetchEndpoint("starknet_blockHashAndNumber")}getBlockNumber(){return this.fetchEndpoint("starknet_blockNumber")}getBlockWithTxHashes(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getBlockWithTxHashes",{block_id:t})}getBlockWithTxs(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getBlockWithTxs",{block_id:t})}getBlockStateUpdate(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getStateUpdate",{block_id:t})}getBlockTransactionsTraces(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_traceBlockTransactions",{block_id:t})}getBlockTransactionCount(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getBlockTransactionCount",{block_id:t})}getTransactionByHash(e){const t=ee(e);return this.fetchEndpoint("starknet_getTransactionByHash",{transaction_hash:t})}getTransactionByBlockIdAndIndex(e,t){const n=new je(e).identifier;return this.fetchEndpoint("starknet_getTransactionByBlockIdAndIndex",{block_id:n,index:t})}getTransactionReceipt(e){const t=ee(e);return this.fetchEndpoint("starknet_getTransactionReceipt",{transaction_hash:t})}getTransactionTrace(e){const t=ee(e);return this.fetchEndpoint("starknet_traceTransaction",{transaction_hash:t})}getTransactionStatus(e){const t=ee(e);return this.fetchEndpoint("starknet_getTransactionStatus",{transaction_hash:t})}simulateTransaction(e,t={}){const{blockIdentifier:n=this.blockIdentifier,skipValidate:r=!0,skipFeeCharge:a=!0}=t,o=new je(n).identifier,i=[];return r&&i.push(Se.ESimulationFlag.SKIP_VALIDATE),a&&i.push(Se.ESimulationFlag.SKIP_FEE_CHARGE),this.fetchEndpoint("starknet_simulateTransactions",{block_id:o,transactions:e.map(s=>this.buildTransaction(s)),simulation_flags:i})}async waitForTransaction(e,t){const n=ee(e);let{retries:r}=this,a=!1,o=!1;const i=(t==null?void 0:t.retryInterval)??this.transactionRetryIntervalDefault,s=(t==null?void 0:t.errorStates)??[Se.ETransactionStatus.REJECTED],c=(t==null?void 0:t.successStates)??[Se.ETransactionExecutionStatus.SUCCEEDED,Se.ETransactionStatus.ACCEPTED_ON_L2,Se.ETransactionStatus.ACCEPTED_ON_L1];let u;for(;!a;){await Pa(i);try{u=await this.getTransactionStatus(n);const h=u.execution_status,f=u.finality_status;if(!f)throw new Error("waiting for transaction status");if(s.includes(h)||s.includes(f)){const l=`${h}: ${f}`,g=new Error(l);throw g.response=u,o=!0,g}else(c.includes(h)||c.includes(f))&&(a=!0)}catch(h){if(h instanceof Error&&o)throw h;if(r<=0)throw new Error(`waitForTransaction timed-out with retries ${this.retries}`)}r-=1}let d=null;for(;d===null;){try{d=await this.getTransactionReceipt(n)}catch{if(r<=0)throw new Error(`waitForTransaction timed-out with retries ${this.retries}`)}r-=1,await Pa(i)}return d}getStorageAt(e,t,n=this.blockIdentifier){const r=ee(e),a=Kd(t),o=new je(n).identifier;return this.fetchEndpoint("starknet_getStorageAt",{contract_address:r,key:a,block_id:o})}getClassHashAt(e,t=this.blockIdentifier){const n=ee(e),r=new je(t).identifier;return this.fetchEndpoint("starknet_getClassHashAt",{block_id:r,contract_address:n})}getClass(e,t=this.blockIdentifier){const n=ee(e),r=new je(t).identifier;return this.fetchEndpoint("starknet_getClass",{class_hash:n,block_id:r})}getClassAt(e,t=this.blockIdentifier){const n=ee(e),r=new je(t).identifier;return this.fetchEndpoint("starknet_getClassAt",{block_id:r,contract_address:n})}async getEstimateFee(e,{blockIdentifier:t=this.blockIdentifier,skipValidate:n=!0}){const r=new je(t).identifier;let a={};return lf("0.5",await this.getSpecVersion())||(a={simulation_flags:n?[Se.ESimulationFlag.SKIP_VALIDATE]:[]}),this.fetchEndpoint("starknet_estimateFee",{request:e.map(o=>this.buildTransaction(o,"fee")),block_id:r,...a})}async invoke(e,t){let n;return Pt(t)?n=this.fetchEndpoint("starknet_addInvokeTransaction",{invoke_transaction:{type:Se.ETransactionType.INVOKE,sender_address:e.contractAddress,calldata:xe.toHex(e.calldata),version:Se.ETransactionVersion.V3,signature:Xe(e.signature),nonce:ee(t.nonce),resource_bounds:t.resourceBounds,tip:ee(t.tip),paymaster_data:t.paymasterData.map(r=>ee(r)),account_deployment_data:t.accountDeploymentData.map(r=>ee(r)),nonce_data_availability_mode:t.nonceDataAvailabilityMode,fee_data_availability_mode:t.feeDataAvailabilityMode}}):(n=this.fetchEndpoint("starknet_addInvokeTransaction",{invoke_transaction:{sender_address:e.contractAddress,calldata:xe.toHex(e.calldata),type:Se.ETransactionType.INVOKE,max_fee:ee(t.maxFee||0),version:Se.ETransactionVersion.V1,signature:Xe(e.signature),nonce:ee(t.nonce)}}),xt.warn(Zt.legacyTxWarningMessage,{version:Se.ETransactionVersion.V1,type:Se.ETransactionType.INVOKE})),this.waitMode?this.waitForTransaction((await n).transaction_hash):n}async declare({contract:e,signature:t,senderAddress:n,compiledClassHash:r},a){let o;if(!tn(e)&&!Pt(a))o=this.fetchEndpoint("starknet_addDeclareTransaction",{declare_transaction:{type:Se.ETransactionType.DECLARE,contract_class:{program:e.program,entry_points_by_type:e.entry_points_by_type,abi:e.abi},version:Se.ETransactionVersion.V1,max_fee:ee(a.maxFee||0),signature:Xe(t),sender_address:n,nonce:ee(a.nonce)}}),xt.warn(Zt.legacyTxWarningMessage,{version:Se.ETransactionVersion.V1,type:Se.ETransactionType.DECLARE});else if(tn(e)&&!Pt(a))o=this.fetchEndpoint("starknet_addDeclareTransaction",{declare_transaction:{type:Se.ETransactionType.DECLARE,contract_class:{sierra_program:Mr(e.sierra_program),contract_class_version:e.contract_class_version,entry_points_by_type:e.entry_points_by_type,abi:e.abi},compiled_class_hash:r||"",version:Se.ETransactionVersion.V2,max_fee:ee(a.maxFee||0),signature:Xe(t),sender_address:n,nonce:ee(a.nonce)}}),xt.warn(Zt.legacyTxWarningMessage,{version:Se.ETransactionVersion.V2,type:Se.ETransactionType.DECLARE});else if(tn(e)&&Pt(a))o=this.fetchEndpoint("starknet_addDeclareTransaction",{declare_transaction:{type:Se.ETransactionType.DECLARE,sender_address:n,compiled_class_hash:r||"",version:Se.ETransactionVersion.V3,signature:Xe(t),nonce:ee(a.nonce),contract_class:{sierra_program:Mr(e.sierra_program),contract_class_version:e.contract_class_version,entry_points_by_type:e.entry_points_by_type,abi:e.abi},resource_bounds:a.resourceBounds,tip:ee(a.tip),paymaster_data:a.paymasterData.map(i=>ee(i)),account_deployment_data:a.accountDeploymentData.map(i=>ee(i)),nonce_data_availability_mode:a.nonceDataAvailabilityMode,fee_data_availability_mode:a.feeDataAvailabilityMode}});else throw Error("declare unspotted parameters");return this.waitMode?this.waitForTransaction((await o).transaction_hash):o}async deployAccount({classHash:e,constructorCalldata:t,addressSalt:n,signature:r},a){let o;return Pt(a)?o=this.fetchEndpoint("starknet_addDeployAccountTransaction",{deploy_account_transaction:{type:Se.ETransactionType.DEPLOY_ACCOUNT,version:Se.ETransactionVersion.V3,signature:Xe(r),nonce:ee(a.nonce),contract_address_salt:ee(n||0),constructor_calldata:xe.toHex(t||[]),class_hash:ee(e),resource_bounds:a.resourceBounds,tip:ee(a.tip),paymaster_data:a.paymasterData.map(i=>ee(i)),nonce_data_availability_mode:a.nonceDataAvailabilityMode,fee_data_availability_mode:a.feeDataAvailabilityMode}}):(o=this.fetchEndpoint("starknet_addDeployAccountTransaction",{deploy_account_transaction:{constructor_calldata:xe.toHex(t||[]),class_hash:ee(e),contract_address_salt:ee(n||0),type:Se.ETransactionType.DEPLOY_ACCOUNT,max_fee:ee(a.maxFee||0),version:Se.ETransactionVersion.V1,signature:Xe(r),nonce:ee(a.nonce)}}),xt.warn(Zt.legacyTxWarningMessage,{version:Se.ETransactionVersion.V1,type:Se.ETransactionType.DEPLOY_ACCOUNT})),this.waitMode?this.waitForTransaction((await o).transaction_hash):o}callContract(e,t=this.blockIdentifier){const n=new je(t).identifier;return this.fetchEndpoint("starknet_call",{request:{contract_address:e.contractAddress,entry_point_selector:Ke(e.entrypoint),calldata:xe.toHex(e.calldata)},block_id:n})}estimateMessageFee(e,t=this.blockIdentifier){const{from_address:n,to_address:r,entry_point_selector:a,payload:o}=e,i={from_address:uf(n),to_address:ee(r),entry_point_selector:ni(a),payload:Wd(o)},s=new je(t).identifier;return this.fetchEndpoint("starknet_estimateMessageFee",{message:i,block_id:s})}getSyncingStats(){return this.fetchEndpoint("starknet_syncing")}getEvents(e){return this.fetchEndpoint("starknet_getEvents",{filter:e})}buildTransaction(e,t){const n=ff(t);let r;if(Pt(e)?r={signature:Xe(e.signature),nonce:ee(e.nonce),resource_bounds:e.resourceBounds,tip:ee(e.tip),paymaster_data:e.paymasterData.map(a=>ee(a)),nonce_data_availability_mode:e.nonceDataAvailabilityMode,fee_data_availability_mode:e.feeDataAvailabilityMode,account_deployment_data:e.accountDeploymentData.map(a=>ee(a))}:(r={signature:Xe(e.signature),nonce:ee(e.nonce),max_fee:ee(e.maxFee||0)},xt.warn(Zt.legacyTxWarningMessage,{version:e.version,type:e.type})),e.type===Qt.INVOKE)return{type:Se.ETransactionType.INVOKE,sender_address:e.contractAddress,calldata:xe.toHex(e.calldata),version:ee(e.version||n.v3),...r};if(e.type===Qt.DECLARE)return tn(e.contract)?{type:e.type,contract_class:{...e.contract,sierra_program:Mr(e.contract.sierra_program)},compiled_class_hash:e.compiledClassHash||"",sender_address:e.senderAddress,version:ee(e.version||n.v3),...r}:{type:e.type,contract_class:e.contract,sender_address:e.senderAddress,version:ee(e.version||n.v1),...r};if(e.type===Qt.DEPLOY_ACCOUNT){const{account_deployment_data:a,...o}=r;return{type:e.type,constructor_calldata:xe.toHex(e.constructorCalldata||[]),class_hash:ee(e.classHash),contract_address_salt:ee(e.addressSalt||0),version:ee(e.version||n.v3),...o}}throw Error("RPC buildTransaction received unknown TransactionType")}},cI={};Oe(cI,{RpcChannel:()=>kk});var $u={headers:{"Content-Type":"application/json"},blockIdentifier:lr.PENDING,retries:200},kk=class{constructor(e){ie(this,"nodeUrl");ie(this,"headers");ie(this,"requestId");ie(this,"blockIdentifier");ie(this,"retries");ie(this,"waitMode");ie(this,"chainId");ie(this,"specVersion");ie(this,"transactionRetryIntervalFallback");ie(this,"batchClient");ie(this,"baseFetch");const{baseFetch:t,batch:n,blockIdentifier:r,chainId:a,headers:o,nodeUrl:i,retries:s,specVersion:c,transactionRetryIntervalFallback:u,waitMode:d}=e||{};Object.values(Ps).includes(i)?this.nodeUrl=Mo(i,e==null?void 0:e.default):i?this.nodeUrl=i:this.nodeUrl=Mo(void 0,e==null?void 0:e.default),this.baseFetch=t??mk,this.blockIdentifier=r??$u.blockIdentifier,this.chainId=a,this.headers={...$u.headers,...o},this.retries=s??$u.retries,this.specVersion=c,this.transactionRetryIntervalFallback=u,this.waitMode=d??!1,this.requestId=0,typeof n=="number"&&(this.batchClient=new Ew({nodeUrl:this.nodeUrl,headers:this.headers,interval:n,baseFetch:this.baseFetch}))}get transactionRetryIntervalDefault(){return this.transactionRetryIntervalFallback??5e3}setChainId(e){this.chainId=e}fetch(e,t,n=0){const r={id:n,jsonrpc:"2.0",method:e,...t&&{params:t}};return this.baseFetch(this.nodeUrl,{method:"POST",body:Vt(r),headers:this.headers})}errorHandler(e,t,n,r){if(n)throw new yw(n,e,t);if(r instanceof No)throw r;if(r)throw Error(r.message)}async fetchEndpoint(e,t){var n;try{if(this.batchClient){const{error:i,result:s}=await this.batchClient.fetch(e,t,this.requestId+=1);return this.errorHandler(e,t,i),s}const r=await this.fetch(e,t,this.requestId+=1),{error:a,result:o}=await r.json();return this.errorHandler(e,t,a),o}catch(r){throw this.errorHandler(e,t,(n=r==null?void 0:r.response)==null?void 0:n.data,r),r}}async getChainId(){return this.chainId??(this.chainId=await this.fetchEndpoint("starknet_chainId")),this.chainId}async getSpecVersion(){return this.specVersion??(this.specVersion=await this.fetchEndpoint("starknet_specVersion")),this.specVersion}getNonceForAddress(e,t=this.blockIdentifier){const n=ee(e),r=new je(t).identifier;return this.fetchEndpoint("starknet_getNonce",{contract_address:n,block_id:r})}getBlockLatestAccepted(){return this.fetchEndpoint("starknet_blockHashAndNumber")}getBlockNumber(){return this.fetchEndpoint("starknet_blockNumber")}getBlockWithTxHashes(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getBlockWithTxHashes",{block_id:t})}getBlockWithTxs(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getBlockWithTxs",{block_id:t})}getBlockWithReceipts(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getBlockWithReceipts",{block_id:t})}getBlockStateUpdate(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getStateUpdate",{block_id:t})}getBlockTransactionsTraces(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_traceBlockTransactions",{block_id:t})}getBlockTransactionCount(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getBlockTransactionCount",{block_id:t})}getTransactionByHash(e){const t=ee(e);return this.fetchEndpoint("starknet_getTransactionByHash",{transaction_hash:t})}getTransactionByBlockIdAndIndex(e,t){const n=new je(e).identifier;return this.fetchEndpoint("starknet_getTransactionByBlockIdAndIndex",{block_id:n,index:t})}getTransactionReceipt(e){const t=ee(e);return this.fetchEndpoint("starknet_getTransactionReceipt",{transaction_hash:t})}getTransactionTrace(e){const t=ee(e);return this.fetchEndpoint("starknet_traceTransaction",{transaction_hash:t})}getTransactionStatus(e){const t=ee(e);return this.fetchEndpoint("starknet_getTransactionStatus",{transaction_hash:t})}simulateTransaction(e,t={}){const{blockIdentifier:n=this.blockIdentifier,skipValidate:r=!0,skipFeeCharge:a=!0}=t,o=new je(n).identifier,i=[];return r&&i.push(ho.SKIP_VALIDATE),a&&i.push(ho.SKIP_FEE_CHARGE),this.fetchEndpoint("starknet_simulateTransactions",{block_id:o,transactions:e.map(s=>this.buildTransaction(s)),simulation_flags:i})}async waitForTransaction(e,t){const n=ee(e);let{retries:r}=this,a=!1,o=!1;const i=(t==null?void 0:t.retryInterval)??this.transactionRetryIntervalDefault,s=(t==null?void 0:t.errorStates)??[mo.REJECTED],c=(t==null?void 0:t.successStates)??[Ql.SUCCEEDED,mo.ACCEPTED_ON_L2,mo.ACCEPTED_ON_L1];let u;for(;!a;){await Pa(i);try{u=await this.getTransactionStatus(n);const h=u.execution_status,f=u.finality_status;if(!f)throw new Error("waiting for transaction status");if(s.includes(h)||s.includes(f)){const l=`${h}: ${f}`,g=new Error(l);throw g.response=u,o=!0,g}else(c.includes(h)||c.includes(f))&&(a=!0)}catch(h){if(h instanceof Error&&o)throw h;if(r<=0)throw new Error(`waitForTransaction timed-out with retries ${this.retries}`)}r-=1}let d=null;for(;d===null;){try{d=await this.getTransactionReceipt(n)}catch{if(r<=0)throw new Error(`waitForTransaction timed-out with retries ${this.retries}`)}r-=1,await Pa(i)}return d}getStorageAt(e,t,n=this.blockIdentifier){const r=ee(e),a=Kd(t),o=new je(n).identifier;return this.fetchEndpoint("starknet_getStorageAt",{contract_address:r,key:a,block_id:o})}getClassHashAt(e,t=this.blockIdentifier){const n=ee(e),r=new je(t).identifier;return this.fetchEndpoint("starknet_getClassHashAt",{block_id:r,contract_address:n})}getClass(e,t=this.blockIdentifier){const n=ee(e),r=new je(t).identifier;return this.fetchEndpoint("starknet_getClass",{class_hash:n,block_id:r})}getClassAt(e,t=this.blockIdentifier){const n=ee(e),r=new je(t).identifier;return this.fetchEndpoint("starknet_getClassAt",{block_id:r,contract_address:n})}async getEstimateFee(e,{blockIdentifier:t=this.blockIdentifier,skipValidate:n=!0}){const r=new je(t).identifier;let a={};return lf("0.5",await this.getSpecVersion())||(a={simulation_flags:n?[ho.SKIP_VALIDATE]:[]}),this.fetchEndpoint("starknet_estimateFee",{request:e.map(o=>this.buildTransaction(o,"fee")),block_id:r,...a})}async invoke(e,t){let n;return Pt(t)?n=this.fetchEndpoint("starknet_addInvokeTransaction",{invoke_transaction:{type:Et.INVOKE,sender_address:e.contractAddress,calldata:xe.toHex(e.calldata),version:Ct.V3,signature:Xe(e.signature),nonce:ee(t.nonce),resource_bounds:t.resourceBounds,tip:ee(t.tip),paymaster_data:t.paymasterData.map(r=>ee(r)),account_deployment_data:t.accountDeploymentData.map(r=>ee(r)),nonce_data_availability_mode:t.nonceDataAvailabilityMode,fee_data_availability_mode:t.feeDataAvailabilityMode}}):(n=this.fetchEndpoint("starknet_addInvokeTransaction",{invoke_transaction:{sender_address:e.contractAddress,calldata:xe.toHex(e.calldata),type:Et.INVOKE,max_fee:ee(t.maxFee||0),version:Ct.V1,signature:Xe(e.signature),nonce:ee(t.nonce)}}),xt.warn(Zt.legacyTxWarningMessage,{version:Ct.V1,type:Et.INVOKE})),this.waitMode?this.waitForTransaction((await n).transaction_hash):n}async declare({contract:e,signature:t,senderAddress:n,compiledClassHash:r},a){let o;if(!tn(e)&&!Pt(a))o=this.fetchEndpoint("starknet_addDeclareTransaction",{declare_transaction:{type:Et.DECLARE,contract_class:{program:e.program,entry_points_by_type:e.entry_points_by_type,abi:e.abi},version:Ct.V1,max_fee:ee(a.maxFee||0),signature:Xe(t),sender_address:n,nonce:ee(a.nonce)}}),xt.warn(Zt.legacyTxWarningMessage,{version:Ct.V1,type:Et.DECLARE});else if(tn(e)&&!Pt(a))o=this.fetchEndpoint("starknet_addDeclareTransaction",{declare_transaction:{type:Et.DECLARE,contract_class:{sierra_program:Mr(e.sierra_program),contract_class_version:e.contract_class_version,entry_points_by_type:e.entry_points_by_type,abi:e.abi},compiled_class_hash:r||"",version:Ct.V2,max_fee:ee(a.maxFee||0),signature:Xe(t),sender_address:n,nonce:ee(a.nonce)}}),xt.warn(Zt.legacyTxWarningMessage,{version:Ct.V2,type:Et.DECLARE});else if(tn(e)&&Pt(a))o=this.fetchEndpoint("starknet_addDeclareTransaction",{declare_transaction:{type:Et.DECLARE,sender_address:n,compiled_class_hash:r||"",version:Ct.V3,signature:Xe(t),nonce:ee(a.nonce),contract_class:{sierra_program:Mr(e.sierra_program),contract_class_version:e.contract_class_version,entry_points_by_type:e.entry_points_by_type,abi:e.abi},resource_bounds:a.resourceBounds,tip:ee(a.tip),paymaster_data:a.paymasterData.map(i=>ee(i)),account_deployment_data:a.accountDeploymentData.map(i=>ee(i)),nonce_data_availability_mode:a.nonceDataAvailabilityMode,fee_data_availability_mode:a.feeDataAvailabilityMode}});else throw Error("declare unspotted parameters");return this.waitMode?this.waitForTransaction((await o).transaction_hash):o}async deployAccount({classHash:e,constructorCalldata:t,addressSalt:n,signature:r},a){let o;return Pt(a)?o=this.fetchEndpoint("starknet_addDeployAccountTransaction",{deploy_account_transaction:{type:Et.DEPLOY_ACCOUNT,version:Ct.V3,signature:Xe(r),nonce:ee(a.nonce),contract_address_salt:ee(n||0),constructor_calldata:xe.toHex(t||[]),class_hash:ee(e),resource_bounds:a.resourceBounds,tip:ee(a.tip),paymaster_data:a.paymasterData.map(i=>ee(i)),nonce_data_availability_mode:a.nonceDataAvailabilityMode,fee_data_availability_mode:a.feeDataAvailabilityMode}}):(o=this.fetchEndpoint("starknet_addDeployAccountTransaction",{deploy_account_transaction:{constructor_calldata:xe.toHex(t||[]),class_hash:ee(e),contract_address_salt:ee(n||0),type:Et.DEPLOY_ACCOUNT,max_fee:ee(a.maxFee||0),version:Ct.V1,signature:Xe(r),nonce:ee(a.nonce)}}),xt.warn(Zt.legacyTxWarningMessage,{version:Ct.V1,type:Et.DEPLOY_ACCOUNT})),this.waitMode?this.waitForTransaction((await o).transaction_hash):o}callContract(e,t=this.blockIdentifier){const n=new je(t).identifier;return this.fetchEndpoint("starknet_call",{request:{contract_address:e.contractAddress,entry_point_selector:Ke(e.entrypoint),calldata:xe.toHex(e.calldata)},block_id:n})}estimateMessageFee(e,t=this.blockIdentifier){const{from_address:n,to_address:r,entry_point_selector:a,payload:o}=e,i={from_address:uf(n),to_address:ee(r),entry_point_selector:ni(a),payload:Wd(o)},s=new je(t).identifier;return this.fetchEndpoint("starknet_estimateMessageFee",{message:i,block_id:s})}getSyncingStats(){return this.fetchEndpoint("starknet_syncing")}getEvents(e){return this.fetchEndpoint("starknet_getEvents",{filter:e})}buildTransaction(e,t){const n=ff(t);let r;if(Pt(e)?r={signature:Xe(e.signature),nonce:ee(e.nonce),resource_bounds:e.resourceBounds,tip:ee(e.tip),paymaster_data:e.paymasterData.map(a=>ee(a)),nonce_data_availability_mode:e.nonceDataAvailabilityMode,fee_data_availability_mode:e.feeDataAvailabilityMode,account_deployment_data:e.accountDeploymentData.map(a=>ee(a))}:(r={signature:Xe(e.signature),nonce:ee(e.nonce),max_fee:ee(e.maxFee||0)},xt.warn(Zt.legacyTxWarningMessage,{version:e.version,type:e.type})),e.type===Qt.INVOKE)return{type:Et.INVOKE,sender_address:e.contractAddress,calldata:xe.toHex(e.calldata),version:ee(e.version||n.v3),...r};if(e.type===Qt.DECLARE)return tn(e.contract)?{type:e.type,contract_class:{...e.contract,sierra_program:Mr(e.contract.sierra_program)},compiled_class_hash:e.compiledClassHash||"",sender_address:e.senderAddress,version:ee(e.version||n.v3),...r}:{type:e.type,contract_class:e.contract,sender_address:e.senderAddress,version:ee(e.version||n.v1),...r};if(e.type===Qt.DEPLOY_ACCOUNT){const{account_deployment_data:a,...o}=r;return{type:e.type,constructor_calldata:xe.toHex(e.constructorCalldata||[]),class_hash:ee(e.classHash),contract_address_salt:ee(e.addressSalt||0),version:ee(e.version||n.v3),...o}}throw Error("RPC buildTransaction received unknown TransactionType")}},jm=class{constructor(e){ie(this,"margin");this.margin=e}estimatedFeeToMaxFee(e){var t;return hk(e,(t=this.margin)==null?void 0:t.maxFee)}estimateFeeToBounds(e){var t,n;return cf(e,(t=this.margin)==null?void 0:t.l1BoundMaxAmount,(n=this.margin)==null?void 0:n.l1BoundMaxPricePerUnit)}parseGetBlockResponse(e){return{status:"PENDING",...e}}parseTransactionReceipt(e){return"actual_fee"in e&&Qe(e.actual_fee)?{...e,actual_fee:{amount:e.actual_fee,unit:"FRI"}}:e}parseFeeEstimateResponse(e){const t=e[0];return{overall_fee:He(t.overall_fee),gas_consumed:He(t.gas_consumed),gas_price:He(t.gas_price),unit:t.unit,suggestedMaxFee:this.estimatedFeeToMaxFee(t.overall_fee),resourceBounds:this.estimateFeeToBounds(t),data_gas_consumed:t.data_gas_consumed?He(t.data_gas_consumed):0n,data_gas_price:t.data_gas_price?He(t.data_gas_price):0n}}parseFeeEstimateBulkResponse(e){return e.map(t=>({overall_fee:He(t.overall_fee),gas_consumed:He(t.gas_consumed),gas_price:He(t.gas_price),unit:t.unit,suggestedMaxFee:this.estimatedFeeToMaxFee(t.overall_fee),resourceBounds:this.estimateFeeToBounds(t),data_gas_consumed:t.data_gas_consumed?He(t.data_gas_consumed):0n,data_gas_price:t.data_gas_price?He(t.data_gas_price):0n}))}parseSimulateTransactionResponse(e){return e.map(t=>({...t,suggestedMaxFee:this.estimatedFeeToMaxFee(t.fee_estimation.overall_fee),resourceBounds:this.estimateFeeToBounds(t.fee_estimation)}))}parseContractClassResponse(e){return{...e,abi:Qe(e.abi)?JSON.parse(e.abi):e.abi}}parseL1GasPriceResponse(e){return e.l1_gas_price.price_in_wei}},xm=class Yi{constructor(t){ie(this,"statusReceipt");ie(this,"value");[this.statusReceipt,this.value]=Yi.isSuccess(t)?["success",t]:Yi.isReverted(t)?["reverted",t]:Yi.isRejected(t)?["rejected",t]:["error",new Error("Unknown response type")];for(const[n]of Object.entries(this))Object.defineProperty(this,n,{enumerable:!1});for(const[n,r]of Object.entries(t))Object.defineProperty(this,n,{enumerable:!0,writable:!1,value:r})}match(t){return this.statusReceipt in t?t[this.statusReceipt](this.value):t._()}isSuccess(){return this.statusReceipt==="success"}isReverted(){return this.statusReceipt==="reverted"}isRejected(){return this.statusReceipt==="rejected"}isError(){return this.statusReceipt==="error"}static isSuccess(t){return t.execution_status===Xi.SUCCEEDED}static isReverted(t){return t.execution_status===Xi.REVERTED}static isRejected(t){return t.status===Xi.REJECTED}},_k={};Oe(_k,{TypedDataRevision:()=>Ie,encodeData:()=>Tk,encodeType:()=>jk,encodeValue:()=>vo,getDependencies:()=>hf,getMessageHash:()=>mf,getStructHash:()=>qo,getTypeHash:()=>xk,isMerkleTreeType:()=>Sk,prepareSelector:()=>Ak,validateTypedData:()=>$s,verifyMessage:()=>fI});var uI={};Oe(uI,{MerkleTree:()=>pf,proofMerklePath:()=>vk});var pf=class Ji{constructor(t,n=Do){ie(this,"leaves");ie(this,"branches",[]);ie(this,"root");ie(this,"hashMethod");this.hashMethod=n,this.leaves=t,this.root=this.build(t)}build(t){if(t.length===1)return t[0];t.length!==this.leaves.length&&this.branches.push(t);const n=[];for(let r=0;r<t.length;r+=2)r+1===t.length?n.push(Ji.hash(t[r],"0x0",this.hashMethod)):n.push(Ji.hash(t[r],t[r+1],this.hashMethod));return this.build(n)}static hash(t,n,r=Do){const[a,o]=[BigInt(t),BigInt(n)].sort((i,s)=>i>=s?1:-1);return r(a,o)}getProof(t,n=this.leaves,r=[]){const a=n.indexOf(t);if(a===-1)throw new Error("leaf not found");if(n.length===1)return r;const o=a%2===0,i=(o?n[a+1]:n[a-1])??"0x0",s=[...r,i],c=this.leaves.length===n.length?-1:this.branches.findIndex(d=>d.length===n.length),u=this.branches[c+1]??[this.root];return this.getProof(Ji.hash(o?t:i,o?i:t,this.hashMethod),u,s)}};function vk(e,t,n,r=Do){if(n.length===0)return e===t;const[a,...o]=n;return vk(e,pf.hash(t,a,r),o,r)}var lI={u256:JSON.parse('[{ "name": "low", "type": "u128" }, { "name": "high", "type": "u128" }]'),TokenAmount:JSON.parse('[{ "name": "token_address", "type": "ContractAddress" }, { "name": "amount", "type": "u256" }]'),NftId:JSON.parse('[{ "name": "collection_address", "type": "ContractAddress" }, { "name": "token_id", "type": "u256" }]')},Rt={[Ie.ACTIVE]:{domain:"StarknetDomain",hashMethod:ok,hashMerkleMethod:rk,escapeTypeString:e=>`"${e}"`,presetTypes:lI},[Ie.LEGACY]:{domain:"StarkNetDomain",hashMethod:ak,hashMerkleMethod:Do,escapeTypeString:e=>e,presetTypes:{}}};function Ci(e,t,{min:n,max:r}){const a=BigInt(e);be(a>=n&&a<=r,`${a} (${t}) is out of bounds [${n}, ${r}]`)}function Ek({types:e,domain:t}){if(Rt[Ie.ACTIVE].domain in e&&t.revision===Ie.ACTIVE)return Ie.ACTIVE;if(Rt[Ie.LEGACY].domain in e&&(t.revision??Ie.LEGACY)===Ie.LEGACY)return Ie.LEGACY}function sn(e){try{return ee(e)}catch{if(Qe(e))return ee(rt(e));throw new Error(`Invalid BigNumberish: ${e}`)}}function $s(e){const t=e;return!!(t.message&&t.primaryType&&t.types&&Ek(t))}function Ak(e){return $t(e)?e:Ke(e)}function Sk(e){return e.type==="merkletree"}function hf(e,t,n=[],r="",a=Ie.LEGACY){let o=[t];return t[t.length-1]==="*"?o=[t.slice(0,-1)]:a===Ie.ACTIVE&&(t==="enum"?o=[r]:t.match(/^\(.*\)$/)&&(o=t.slice(1,-1).split(",").map(i=>i[i.length-1]==="*"?i.slice(0,-1):i))),o.filter(i=>!n.includes(i)&&e[i]).reduce((i,s)=>[...i,...[s,...e[s].reduce((c,u)=>[...c,...hf(e,u.type,c,u.contains,a).filter(d=>!c.includes(d))],[])].filter(c=>!i.includes(c))],[])}function dI(e,t){if(t.parent&&t.key){const r=e[t.parent].find(o=>o.name===t.key);if(!Sk(r))throw new Error(`${t.key} is not a merkle tree`);if(r.contains.endsWith("*"))throw new Error(`Merkle tree contain property must not be an array but was given ${t.key}`);return r.contains}return"raw"}function jk(e,t,n=Ie.LEGACY){const r=n===Ie.ACTIVE?{...e,...Rt[n].presetTypes}:e,[a,...o]=hf(r,t,void 0,void 0,n),i=a?[a,...o.sort()]:[],s=Rt[n].escapeTypeString;return i.map(c=>{const u=r[c].map(d=>{const h=d.type==="enum"&&n===Ie.ACTIVE?d.contains:d.type,f=h.match(/^\(.*\)$/)?`(${h.slice(1,-1).split(",").map(l=>l&&s(l)).join(",")})`:s(h);return`${s(d.name)}:${f}`});return`${s(c)}(${u})`}).join("")}function xk(e,t,n=Ie.LEGACY){return Ke(jk(e,t,n))}function vo(e,t,n,r={},a=Ie.LEGACY){if(e[t])return[t,qo(e,t,n,a)];if(Rt[a].presetTypes[t])return[t,qo(Rt[a].presetTypes,t,n,a)];if(t.endsWith("*")){const o=n.map(i=>vo(e,t.slice(0,-1),i,void 0,a)[1]);return[t,Rt[a].hashMethod(o)]}switch(t){case"enum":{if(a===Ie.ACTIVE){const[o,i]=Object.entries(n)[0],s=e[r.parent].find(f=>f.name===r.key),c=e[s.contains],u=c.find(f=>f.name===o),d=c.indexOf(u),h=u.type.slice(1,-1).split(",").map((f,l)=>{if(!f)return f;const g=i[l];return vo(e,f,g,void 0,a)[1]});return[t,Rt[a].hashMethod([d,...h])]}return[t,sn(n)]}case"merkletree":{const o=dI(e,r),i=n.map(c=>vo(e,o,c,void 0,a)[1]),{root:s}=new pf(i,Rt[a].hashMerkleMethod);return["felt",s]}case"selector":return["felt",Ak(n)];case"string":{if(a===Ie.ACTIVE){const o=Us(n),i=[o.data.length,...o.data,o.pending_word,o.pending_word_len];return[t,Rt[a].hashMethod(i)]}return[t,sn(n)]}case"i128":{if(a===Ie.ACTIVE){const o=BigInt(n);return Ci(o,t,cw),[t,sn(o<0n?Vd+o:o)]}return[t,sn(n)]}case"timestamp":case"u128":return a===Ie.ACTIVE&&Ci(n,t,uw),[t,sn(n)];case"felt":case"shortstring":return a===Ie.ACTIVE&&Ci(sn(n),t,Nl),[t,sn(n)];case"ClassHash":case"ContractAddress":return a===Ie.ACTIVE&&Ci(n,t,Nl),[t,sn(n)];case"bool":return a===Ie.ACTIVE&&be(Gd(n),`Type mismatch for ${t} ${n}`),[t,sn(n)];default:{if(a===Ie.ACTIVE)throw new Error(`Unsupported type: ${t}`);return[t,sn(n)]}}}function Tk(e,t,n,r=Ie.LEGACY){const a=e[t]??Rt[r].presetTypes[t],[o,i]=a.reduce(([s,c],u)=>{if(n[u.name]===void 0||n[u.name]===null&&u.type!=="enum")throw new Error(`Cannot encode data: missing data for '${u.name}'`);const d=n[u.name],h={parent:t,key:u.name},[f,l]=vo(e,u.type,d,h,r);return[[...s,f],[...c,l]]},[["felt"],[xk(e,t,r)]]);return[o,i]}function qo(e,t,n,r=Ie.LEGACY){return Rt[r].hashMethod(Tk(e,t,n,r)[1])}function mf(e,t){if(!$s(e))throw new Error("Typed data does not match JSON schema");const n=Ek(e),{domain:r,hashMethod:a}=Rt[n],o=[rt("StarkNet Message"),qo(e.types,r,e.domain,n),t,qo(e.types,e.primaryType,e.message,n)];return a(o)}function fI(e,t,n,r){const a=$s(e);if(!Ho(e)&&!a)throw new Error("message has a wrong format.");if(a&&r===void 0)throw new Error("When providing a TypedData in message parameter, the accountAddress parameter has to be provided.");if(a&&!Ho(r))throw new Error("accountAddress shall be a BigNumberish");const o=a?mf(e,r):ee(e),i=Array.isArray(t)?new go(BigInt(t[0]),BigInt(t[1])):t,s=ee(n);return u0(i,o,s)}var Ik=class{constructor(e){ie(this,"responseParser");ie(this,"channel");ie(this,"getStateUpdate",this.getBlockStateUpdate);e&&"channel"in e?(this.channel=e.channel,this.responseParser="responseParser"in e?e.responseParser:new jm):(this.channel=new kk({...e,waitMode:!1}),this.responseParser=new jm(e==null?void 0:e.feeMarginPercentage))}fetch(e,t,n=0){return this.channel.fetch(e,t,n)}async getChainId(){return this.channel.getChainId()}async getSpecVersion(){return this.channel.getSpecVersion()}async getNonceForAddress(e,t){return this.channel.getNonceForAddress(e,t)}async getBlock(e){return this.channel.getBlockWithTxHashes(e).then(this.responseParser.parseGetBlockResponse)}async getBlockLatestAccepted(){return this.channel.getBlockLatestAccepted()}async getBlockNumber(){return this.channel.getBlockNumber()}async getBlockWithTxHashes(e){return this.channel.getBlockWithTxHashes(e)}async getBlockWithTxs(e){return this.channel.getBlockWithTxs(e)}async waitForBlock(e="pending",t=5e3){if(e===lr.LATEST)return;const n=await this.getBlockNumber(),r=e===lr.PENDING?n+1:Number(ee(e));if(r<=n)return;const{retries:a}=this.channel;let o=a,i=!1;for(;!i;)if(await this.getBlockNumber()===r?i=!0:await Pa(t),o-=1,o<=0)throw new Error(`waitForBlock() timed-out after ${a} tries.`)}async getL1GasPrice(e){return this.channel.getBlockWithTxHashes(e).then(this.responseParser.parseL1GasPriceResponse)}async getL1MessageHash(e){const t=await this.channel.getTransactionByHash(e);be(t.type==="L1_HANDLER","This L2 transaction is not a L1 message.");const{calldata:n,contract_address:r,entry_point_selector:a,nonce:o}=t,i=[n[0],r,o,a,n.length-1,...n.slice(1)];return Ns(i)}async getBlockWithReceipts(e){if(this.channel instanceof gw.RpcChannel)throw new No("Unsupported method for RPC version");return this.channel.getBlockWithReceipts(e)}async getBlockStateUpdate(e){return this.channel.getBlockStateUpdate(e)}async getBlockTransactionsTraces(e){return this.channel.getBlockTransactionsTraces(e)}async getBlockTransactionCount(e){return this.channel.getBlockTransactionCount(e)}async getPendingTransactions(){const{transactions:e}=await this.getBlockWithTxHashes(lr.PENDING).then(this.responseParser.parseGetBlockResponse);return Promise.all(e.map(t=>this.getTransactionByHash(t)))}async getTransaction(e){return this.channel.getTransactionByHash(e)}async getTransactionByHash(e){return this.channel.getTransactionByHash(e)}async getTransactionByBlockIdAndIndex(e,t){return this.channel.getTransactionByBlockIdAndIndex(e,t)}async getTransactionReceipt(e){const t=await this.channel.getTransactionReceipt(e),n=this.responseParser.parseTransactionReceipt(t);return new xm(n)}async getTransactionTrace(e){return this.channel.getTransactionTrace(e)}async getTransactionStatus(e){return this.channel.getTransactionStatus(e)}async getSimulateTransaction(e,t){return this.channel.simulateTransaction(e,t).then(n=>this.responseParser.parseSimulateTransactionResponse(n))}async waitForTransaction(e,t){const n=await this.channel.waitForTransaction(e,t);return new xm(n)}async getStorageAt(e,t,n){return this.channel.getStorageAt(e,t,n)}async getClassHashAt(e,t){return this.channel.getClassHashAt(e,t)}async getClassByHash(e){return this.getClass(e)}async getClass(e,t){return this.channel.getClass(e,t).then(this.responseParser.parseContractClassResponse)}async getClassAt(e,t){return this.channel.getClassAt(e,t).then(this.responseParser.parseContractClassResponse)}async getContractVersion(e,t,{blockIdentifier:n=this.channel.blockIdentifier,compiler:r=!0}={}){let a;if(e)a=await this.getClassAt(e,n);else if(t)a=await this.getClass(t,n);else throw Error("getContractVersion require contractAddress or classHash");return tn(a)?r?{cairo:"1",compiler:nf(a.abi).compiler}:{cairo:"1",compiler:void 0}:{cairo:"0",compiler:"0"}}async getEstimateFee(e,t,n,r){return this.getInvokeEstimateFee(e,t,n,r)}async getInvokeEstimateFee(e,t,n,r){return this.channel.getEstimateFee([{type:Qt.INVOKE,...e,...t}],{blockIdentifier:n,skipValidate:r}).then(a=>this.responseParser.parseFeeEstimateResponse(a))}async getDeclareEstimateFee(e,t,n,r){return this.channel.getEstimateFee([{type:Qt.DECLARE,...e,...t}],{blockIdentifier:n,skipValidate:r}).then(a=>this.responseParser.parseFeeEstimateResponse(a))}async getDeployAccountEstimateFee(e,t,n,r){return this.channel.getEstimateFee([{type:Qt.DEPLOY_ACCOUNT,...e,...t}],{blockIdentifier:n,skipValidate:r}).then(a=>this.responseParser.parseFeeEstimateResponse(a))}async getEstimateFeeBulk(e,t){return this.channel.getEstimateFee(e,t).then(n=>this.responseParser.parseFeeEstimateBulkResponse(n))}async invokeFunction(e,t){return this.channel.invoke(e,t)}async declareContract(e,t){return this.channel.declare(e,t)}async deployAccountContract(e,t){return this.channel.deployAccount(e,t)}async callContract(e,t){return this.channel.callContract(e,t)}async estimateMessageFee(e,t){return this.channel.estimateMessageFee(e,t)}async getSyncingStats(){return this.channel.getSyncingStats()}async getEvents(e){return this.channel.getEvents(e)}async verifyMessageInStarknet(e,t,n,r,a){const o=$s(e);if(!Ho(e)&&!o)throw new Error("message has a wrong format.");if(!Ho(n))throw new Error("accountAddress shall be a BigNumberish");const i=o?mf(e,n):ee(e),s=r?[r]:["isValidSignature","is_valid_signature"],c=a||{okResponse:[],nokResponse:["0x0","0x00"],error:["argent/invalid-signature","is invalid, with respect to the public key","INVALID_SIG"]};let u;for(const d of s)try{const h=await this.callContract({contractAddress:ee(n),entrypoint:d,calldata:xe.compile({hash:He(i).toString(),signature:ui(t)})});if(c.nokResponse.includes(h[0].toString()))return!1;if(c.okResponse.length===0||c.okResponse.includes(h[0].toString()))return!0;throw Error("signatureVerificationResponse Error: response is not part of known responses")}catch(h){if(c.error.some(f=>h.message.includes(f)))return!1;u=h}throw Error(`Signature verification Error: ${u}`)}async isClassDeclared(e,t){let n;if(!e.classHash&&"contract"in e)n=$T(e).classHash;else if(e.classHash)n=e.classHash;else throw Error("contractClassIdentifier type not satisfied");try{return await this.getClass(n,t)instanceof Object}catch(r){if(r instanceof No)return!1;throw r}}async prepareInvocations(e){const t=[];for(const n of e)n.type===Qt.DECLARE?await this.isClassDeclared("payload"in n?n.payload:n)||t.unshift(n):t.push(n);return t}},pI={};Oe(pI,{StarknetIdContract:()=>$l,StarknetIdIdentityContract:()=>Gl,StarknetIdMulticallContract:()=>Kl,StarknetIdPfpContract:()=>Xl,StarknetIdPopContract:()=>Zl,StarknetIdVerifierContract:()=>Wl,dynamicCallData:()=>Ee,dynamicFelt:()=>st,execution:()=>cn,getStarknetIdContract:()=>Qi,getStarknetIdIdentityContract:()=>Ok,getStarknetIdMulticallContract:()=>Bk,getStarknetIdPfpContract:()=>Pk,getStarknetIdPopContract:()=>Rk,getStarknetIdVerifierContract:()=>zk,isStarkDomain:()=>Nk,useDecoded:()=>Vl,useEncoded:()=>Ck});var mn="abcdefghijklmnopqrstuvwxyz0123456789-",ba=BigInt(mn.length+1),nt="这来",Tm=BigInt(mn.length),Ml=BigInt(nt.length),Im=BigInt(nt.length+1);function ql(e){let t=0;for(;e.endsWith(nt[nt.length-1]);)e=e.substring(0,e.length-1),t+=1;return[e,t]}function Vl(e){let t="";return e.forEach(n=>{for(;n!==Pn;){const o=n%ba;if(n/=ba,o===BigInt(mn.length)){const i=n/Im;if(i===Pn){const s=n%Im;n=i,s===Pn?t+=mn[0]:t+=nt[Number(s)-1]}else{const s=n%Ml;t+=nt[Number(s)],n/=Ml}}else t+=mn[Number(o)]}const[r,a]=ql(t);a&&(t=r+(a%2===0?nt[nt.length-1].repeat(a/2-1)+nt[0]+mn[1]:nt[nt.length-1].repeat((a-1)/2+1))),t+="."}),t&&t.concat("stark")}function Ck(e){let t=BigInt(0),n=BigInt(1);if(e.endsWith(nt[0]+mn[1])){const[r,a]=ql(e.substring(0,e.length-2));e=r+nt[nt.length-1].repeat(2*(a+1))}else{const[r,a]=ql(e);a&&(e=r+nt[nt.length-1].repeat(1+2*(a-1)))}for(let r=0;r<e.length;r+=1){const a=e[r],o=mn.indexOf(a),i=BigInt(mn.indexOf(a));if(o!==-1)r===e.length-1&&e[r]===mn[0]?(t+=n*Tm,n*=ba,n*=ba):(t+=n*i,n*=ba);else if(nt.indexOf(a)!==-1){t+=n*Tm,n*=ba;const s=(r===e.length-1?1:0)+nt.indexOf(a);t+=n*BigInt(s),n*=Ml}}return t}var $l={MAINNET:"0x6ac597f8116f886fa1c97a23fa4e08299975ecaf6b598873ca6792b9bbfb678",TESTNET_SEPOLIA:"0x154bc2e1af9260b9e66af0e9c46fc757ff893b3ff6a85718a810baf1474"};function Qi(e){switch(e){case"0x534e5f4d41494e":return $l.MAINNET;case"0x534e5f5345504f4c4941":return $l.TESTNET_SEPOLIA;default:throw new Error("Starknet.id is not yet deployed on this network")}}var Gl={MAINNET:"0x05dbdedc203e92749e2e746e2d40a768d966bd243df04a6b712e222bc040a9af",TESTNET_SEPOLIA:"0x3697660a0981d734780731949ecb2b4a38d6a58fc41629ed611e8defda"};function Ok(e){switch(e){case"0x534e5f4d41494e":return Gl.MAINNET;case"0x534e5f5345504f4c4941":return Gl.TESTNET_SEPOLIA;default:throw new Error("Starknet.id verifier contract is not yet deployed on this network")}}var Kl="0x034ffb8f4452df7a613a0210824d6414dbadcddce6c6e19bf4ddc9e22ce5f970";function Bk(e){switch(e){case"0x534e5f4d41494e":return Kl;case"0x534e5f5345504f4c4941":return Kl;default:throw new Error("Starknet.id multicall contract is not yet deployed on this network")}}var Wl={MAINNET:"0x07d14dfd8ee95b41fce179170d88ba1f0d5a512e13aeb232f19cfeec0a88f8bf",TESTNET_SEPOLIA:"0x60B94fEDe525f815AE5E8377A463e121C787cCCf3a36358Aa9B18c12c4D566"};function zk(e){switch(e){case"0x534e5f4d41494e":return Wl.MAINNET;case"0x534e5f5345504f4c4941":return Wl.TESTNET_SEPOLIA;default:throw new Error("Starknet.id verifier contract is not yet deployed on this network")}}var Xl={MAINNET:"0x070aaa20ec4a46da57c932d9fd89ca5e6bb9ca3188d3df361a32306aff7d59c7",TESTNET_SEPOLIA:"0x9e7bdb8dabd02ea8cfc23b1d1c5278e46490f193f87516ed5ff2dfec02"};function Pk(e){switch(e){case"0x534e5f4d41494e":return Xl.MAINNET;case"0x534e5f5345504f4c4941":return Xl.TESTNET_SEPOLIA;default:throw new Error("Starknet.id profile picture verifier contract is not yet deployed on this network")}}var Zl={MAINNET:"0x0293eb2ba9862f762bd3036586d5755a782bd22e6f5028320f1d0405fd47bff4",TESTNET_SEPOLIA:"0x15ae88ae054caa74090b89025c1595683f12edf7a4ed2ad0274de3e1d4a"};function Rk(e){switch(e){case"0x534e5f4d41494e":return Zl.MAINNET;case"0x534e5f5345504f4c4941":return Zl.TESTNET_SEPOLIA;default:throw new Error("Starknet.id proof of personhood verifier contract is not yet deployed on this network")}}function cn(e,t=void 0,n=void 0){return new si({Static:e,IfEqual:t?za(t[0],t[1],t[2]):void 0,IfNotEqual:n?za(n[0],n[1],n[2]):void 0})}function st(e,t=void 0){return new si({Hardcoded:e,Reference:t?za(t[0],t[1]):void 0})}function Ee(e,t=void 0,n=void 0){return new si({Hardcoded:e,Reference:t?za(t[0],t[1]):void 0,ArrayReference:n?za(n[0],n[1]):void 0})}function Nk(e){return/^(?:[a-z0-9-]{1,48}(?:[a-z0-9-]{1,48}[a-z0-9-])?\.)*[a-z0-9-]{1,48}\.stark$/.test(e)}var hI=class es{async getStarkName(t,n){return es.getStarkName(this,t,n)}async getAddressFromStarkName(t,n){return es.getAddressFromStarkName(this,t,n)}async getStarkProfile(t,n,r,a,o,i,s){return es.getStarkProfile(this,t,n,r,a,o,i,s)}static async getStarkName(t,n,r){const a=await t.getChainId(),o=r??Qi(a);try{const s=(await t.callContract({contractAddress:o,entrypoint:"address_to_domain",calldata:xe.compile({address:n,hint:[]})})).map(u=>BigInt(u)).slice(1),c=Vl(s);if(!c)throw Error("Starkname not found");return c}catch(i){throw i instanceof Error&&i.message==="Starkname not found"?i:Error("Could not get stark name")}}static async getAddressFromStarkName(t,n,r){const a=n.endsWith(".stark")?n:`${n}.stark`;if(!Nk(a))throw new Error("Invalid domain, must be a valid .stark domain");const o=await t.getChainId(),i=r??Qi(o);try{const s=a.replace(".stark","").split(".").map(u=>Ck(u).toString(10));return(await t.callContract({contractAddress:i,entrypoint:"domain_to_address",calldata:xe.compile({domain:s,hint:[]})}))[0]}catch{throw Error("Could not get address from stark name")}}static async getStarkProfile(t,n,r,a,o,i,s,c){const u=await t.getChainId(),d=r??Qi(u),h=a??Ok(u),f=o??zk(u),l=i??Pk(u),g=s??Rk(u),b=c??Bk(u);try{const y=[{execution:cn({}),to:Ee(d),selector:Ee(Ke("address_to_domain")),calldata:[Ee(n),Ee("0")]},{execution:cn({}),to:st(d),selector:st(Ke("domain_to_id")),calldata:[Ee(void 0,void 0,[0,0])]},{execution:cn({}),to:st(h),selector:st(Ke("get_verifier_data")),calldata:[Ee(void 0,[1,0]),Ee(rt("twitter")),Ee(f),Ee("0")]},{execution:cn({}),to:st(h),selector:st(Ke("get_verifier_data")),calldata:[Ee(void 0,[1,0]),Ee(rt("github")),Ee(f),Ee("0")]},{execution:cn({}),to:st(h),selector:st(Ke("get_verifier_data")),calldata:[Ee(void 0,[1,0]),Ee(rt("discord")),Ee(f),Ee("0")]},{execution:cn({}),to:st(h),selector:st(Ke("get_verifier_data")),calldata:[Ee(void 0,[1,0]),Ee(rt("proof_of_personhood")),Ee(g),Ee("0")]},{execution:cn({}),to:st(h),selector:st(Ke("get_verifier_data")),calldata:[Ee(void 0,[1,0]),Ee(rt("nft_pp_contract")),Ee(l),Ee("0")]},{execution:cn({}),to:st(h),selector:st(Ke("get_extended_verifier_data")),calldata:[Ee(void 0,[1,0]),Ee(rt("nft_pp_id")),Ee("2"),Ee(l),Ee("0")]},{execution:cn(void 0,void 0,[6,0,0]),to:st(void 0,[6,0]),selector:st(Ke("tokenURI")),calldata:[Ee(void 0,[7,1]),Ee(void 0,[7,2])]}],_=await t.callContract({contractAddress:b,entrypoint:"aggregate",calldata:xe.compile({calls:y})});if(Array.isArray(_)){const k=parseInt(_[0],16),w=[];let v=1;for(let M=0;M<k&&v<_.length;M+=1){const D=parseInt(_[v],16);v+=1;const R=_.slice(v,v+D);w.push(R),v+=D}const A=Vl(w[0].slice(1).map(M=>BigInt(M))),T=w[2][0]!=="0x0"?BigInt(w[2][0]).toString():void 0,I=w[3][0]!=="0x0"?BigInt(w[3][0]).toString():void 0,z=w[4][0]!=="0x0"?BigInt(w[4][0]).toString():void 0,S=w[5][0]==="0x1",P=(_[0]==="0x9"?w[8].slice(1).map(M=>Jr(M)).join(""):void 0)||`https://starknet.id/api/identicons/${BigInt(w[1][0]).toString()}`;return{name:A,twitter:T,github:I,discord:z,proofOfPersonhood:S,profilePicture:P}}throw Error("Error while calling aggregate function")}catch(y){throw y instanceof Error?y:Error("Could not get user stark profile data from address")}}},mI=class extends Wj(Ik,hI){},gI=new Ik({default:!0}),ms={};Oe(ms,{UINT_128_MAX:()=>ya,UINT_256_MAX:()=>Nw,bnToUint256:()=>wI,isUint256:()=>bI,uint256ToBN:()=>yI});function yI(e){return new Ye(e).toBigInt()}function bI(e){return Ye.is(e)}function wI(e){return new Ye(e).toUint256HexString()}var kI={};Oe(kI,{getAbiEvents:()=>Uk,isAbiEvent:()=>Yl,parseEvents:()=>Lk,parseUDCEvent:()=>EI});function Yl(e){return e.type==="event"}function _I(e){return e.filter(t=>t.type==="event").reduce((t,n)=>{const r=n.name,a={...n};return a.name=r,{...t,[Ce(pr(hr(r)).toString(16))]:a}},{})}function vI(e){const t=e.filter(a=>Yl(a)&&a.kind==="struct"),n=e.filter(a=>Yl(a)&&a.kind==="enum");return t.reduce((a,o)=>{let i=[],{name:s}=o,c=!1;const u=f=>f.type===s;for(;;){const f=n.find(g=>g.variants.some(u));if(Ze(f))break;const l=f.variants.find(u);i.unshift(l.name),l.kind==="flat"&&(c=!0),s=f.name}if(i.length===0)throw new Error("inconsistency in ABI events definition.");c&&(i=[i[i.length-1]]);const d=i.pop();let h={[Ce(pr(hr(d)).toString(16))]:o};for(;i.length>0;)h={[Ce(pr(hr(i.pop())).toString(16))]:h};return h={...h},Hk(a,h)},{})}function Uk(e){return tf(e)?vI(e):_I(e)}function Hk(e,t){const n={...e};return kn(e)&&kn(t)&&Object.keys(t).forEach(r=>{kn(t[r])?r in e?n[r]=Hk(e[r],t[r]):Object.assign(n,{[r]:t[r]}):Object.assign(n,{[r]:t[r]})}),n}function Lk(e,t,n,r){return e.flat().reduce((o,i)=>{var l,g;let s=t[i.keys.shift()??0];if(!s)return o;for(;!s.name;){const b=i.keys.shift();be(!!b,'Not enough data in "keys" property of this event.'),s=s[b]}const c={};c[s.name]={};const u=i.keys[Symbol.iterator](),d=i.data[Symbol.iterator](),h=((l=s.members)==null?void 0:l.filter(b=>b.kind==="key"))||s.keys,f=((g=s.members)==null?void 0:g.filter(b=>b.kind==="data"))||s.data;return h.forEach(b=>{c[s.name][b.name]=ps(u,b,n,r,c[s.name])}),f.forEach(b=>{c[s.name][b.name]=ps(d,b,n,r,c[s.name])}),"block_hash"in i&&(c.block_hash=i.block_hash),"block_number"in i&&(c.block_number=i.block_number),"transaction_hash"in i&&(c.transaction_hash=i.transaction_hash),o.push(c),o},[])}function EI(e){var n;if(!((n=e.events)!=null&&n.length))throw new Error("UDC emitted event is empty");const t=e.events.find(r=>Uo(r.from_address)===Uo(ko.ADDRESS))||{data:[]};return{transaction_hash:e.transaction_hash,contract_address:t.data[0],address:t.data[0],deployer:t.data[1],unique:t.data[2],classHash:t.data[3],calldata_len:t.data[4],calldata:t.data.slice(5,5+parseInt(t.data[4],16)),salt:t.data[t.data.length-1]}}var AI={};Oe(AI,{buildExecuteFromOutsideCall:()=>jI,buildExecuteFromOutsideCallData:()=>Fk,getOutsideCall:()=>Dk,getTypedData:()=>SI});function Dk(e){const t=e.calldata??[],n=Array.isArray(t)?t:xe.compile(t);return{to:e.contractAddress,selector:Ke(e.entrypoint),calldata:n}}function Cm(e,t){const n=Dk(e);return t==="1"?{...n,calldata_len:n.calldata.length,calldata:n.calldata}:{To:n.to,Selector:n.selector,Calldata:n.calldata}}function Om(e,t){return{name:"Account.execute_from_outside",version:t,chainId:e,...t==="2"?{revision:"1"}:{}}}function SI(e,t,n,r,a){return a==="1"?{types:kw,primaryType:"OutsideExecution",domain:Om(e,a),message:{...t,nonce:n,calls_len:r.length,calls:r.map(o=>Cm(o,a))}}:{types:_w,primaryType:"OutsideExecution",domain:Om(e,a),message:{Caller:t.caller,Nonce:n,"Execute After":t.execute_after,"Execute Before":t.execute_before,Calls:r.map(o=>Cm(o,a))}}}function Fk(e){const t=e.outsideExecution,n=ui(e.signature);return xe.compile({outside_execution:t,signature:n})}function jI(e){return(Array.isArray(e)?e:[e]).map(r=>{let a;if(r.version==="1")a="execute_from_outside";else if(r.version==="2")a="execute_from_outside_v2";else throw new Error("Unsupported OutsideExecution version");return{contractAddress:ee(r.signerAddress),entrypoint:a,calldata:Fk(r)}})}var xI={};Oe(xI,{supportsInterface:()=>TI});async function TI(e,t,n){const r={contractAddress:ee(t),entrypoint:"supports_interface",calldata:[ee(n)]};try{const a=await e.callContract(r);return BigInt(a[0])!==0n}catch{return!1}}var II={};Oe(II,{addDeclareTransaction:()=>HI,addInvokeTransaction:()=>UI,addStarknetChain:()=>zI,deploymentData:()=>NI,getPermissions:()=>OI,onAccountChange:()=>FI,onNetworkChanged:()=>MI,requestAccounts:()=>CI,requestChainId:()=>RI,signMessage:()=>LI,supportedSpecs:()=>DI,switchStarknetChain:()=>PI,watchAsset:()=>BI});function CI(e,t=!1){return e.request({type:"wallet_requestAccounts",params:{silent_mode:t}})}function OI(e){return e.request({type:"wallet_getPermissions"})}function BI(e,t){return e.request({type:"wallet_watchAsset",params:t})}function zI(e,t){return e.request({type:"wallet_addStarknetChain",params:t})}function PI(e,t){return e.request({type:"wallet_switchStarknetChain",params:{chainId:t}})}function RI(e){return e.request({type:"wallet_requestChainId"})}function NI(e){return e.request({type:"wallet_deploymentData"})}function UI(e,t){return e.request({type:"wallet_addInvokeTransaction",params:t})}function HI(e,t){return e.request({type:"wallet_addDeclareTransaction",params:t})}function LI(e,t){return e.request({type:"wallet_signTypedData",params:t})}function DI(e){return e.request({type:"wallet_supportedSpecs"})}function FI(e,t){e.on("accountsChanged",t)}function MI(e,t){e.on("networkChanged",t)}var Mk=e=>{const t=["blockIdentifier","parseRequest","parseResponse","formatResponse","maxFee","nonce","signature","addressSalt"],n=e[e.length-1];return typeof n=="object"&&t.some(r=>r in n)?{args:e,options:e.pop()}:{args:e}};function qk(e,t){return async function(...n){const r=Mk(n);return e.call(t.name,r.args,{parseRequest:!0,parseResponse:!0,...r.options})}}function qI(e,t){return async function(...n){const r=Mk(n);return e.invoke(t.name,r.args,{parseRequest:!0,...r.options})}}function Bm(e,t){return t.stateMutability==="view"||t.state_mutability==="view"?qk(e,t):qI(e,t)}function VI(e,t){return function(...n){return e.populate(t.name,n)}}function $I(e,t){return function(...n){return e.estimate(t.name,n)}}function Oi(e,t){return Array.isArray(e)&&"__compiled__"in e?e:Array.isArray(e)&&Array.isArray(e[0])&&"__compiled__"in e[0]?e[0]:t()}var GI=class{constructor(e,t,n=gI){ie(this,"abi");ie(this,"address");ie(this,"providerOrAccount");ie(this,"deployTransactionHash");ie(this,"structs");ie(this,"events");ie(this,"functions");ie(this,"callStatic");ie(this,"populateTransaction");ie(this,"estimateFee");ie(this,"callData");this.address=t&&t.toLowerCase(),this.providerOrAccount=n,this.callData=new xe(e),this.structs=xe.getAbiStruct(e),this.events=Uk(e);const r=Lw(e);this.abi=r.getLegacyFormat();const a={enumerable:!0,value:{},writable:!1};Object.defineProperties(this,{functions:{enumerable:!0,value:{},writable:!1},callStatic:{enumerable:!0,value:{},writable:!1},populateTransaction:{enumerable:!0,value:{},writable:!1},estimateFee:{enumerable:!0,value:{},writable:!1}}),this.abi.forEach(o=>{if(o.type!=="function")return;const i=o.name;this[i]||Object.defineProperty(this,i,{...a,value:Bm(this,o)}),this.functions[i]||Object.defineProperty(this.functions,i,{...a,value:Bm(this,o)}),this.callStatic[i]||Object.defineProperty(this.callStatic,i,{...a,value:qk(this,o)}),this.populateTransaction[i]||Object.defineProperty(this.populateTransaction,i,{...a,value:VI(this,o)}),this.estimateFee[i]||Object.defineProperty(this.estimateFee,i,{...a,value:$I(this,o)})})}attach(e){this.address=e}connect(e){this.providerOrAccount=e}async deployed(){return this.deployTransactionHash&&(await this.providerOrAccount.waitForTransaction(this.deployTransactionHash),this.deployTransactionHash=void 0),this}async call(e,t=[],{parseRequest:n=!0,parseResponse:r=!0,formatResponse:a=void 0,blockIdentifier:o=void 0}={}){be(this.address!==null,"contract is not connected to an address");const i=Oi(t,()=>n?(this.callData.validate(or.CALL,e,t),this.callData.compile(e,t)):(xt.warn("Call skipped parsing but provided rawArgs, possible malfunction request"),t));return this.providerOrAccount.callContract({contractAddress:this.address,calldata:i,entrypoint:e},o).then(s=>r?a?this.callData.format(e,s,a):this.callData.parse(e,s):s)}invoke(e,t=[],{parseRequest:n=!0,maxFee:r,nonce:a,signature:o}={}){be(this.address!==null,"contract is not connected to an address");const i=Oi(t,()=>n?(this.callData.validate(or.INVOKE,e,t),this.callData.compile(e,t)):(xt.warn("Invoke skipped parsing but provided rawArgs, possible malfunction request"),t)),s={contractAddress:this.address,calldata:i,entrypoint:e};if("execute"in this.providerOrAccount)return this.providerOrAccount.execute(s,void 0,{maxFee:r,nonce:a});if(!a)throw new Error("Nonce is required when invoking a function without an account");return xt.warn(`Invoking ${e} without an account. This will not work on a public node.`),this.providerOrAccount.invokeFunction({...s,signature:o},{nonce:a})}async estimate(e,t=[]){be(this.address!==null,"contract is not connected to an address"),Oi(t,()=>!1)||this.callData.validate(or.INVOKE,e,t);const n=this.populate(e,t);if("estimateInvokeFee"in this.providerOrAccount)return this.providerOrAccount.estimateInvokeFee(n);throw Error("Contract must be connected to the account contract to estimate")}populate(e,t=[]){const n=Oi(t,()=>this.callData.compile(e,t));return{contractAddress:this.address,entrypoint:e,calldata:n}}parseEvents(e){let t;return e.match({success:n=>{var a;const r=((a=n.events)==null?void 0:a.map(o=>({block_hash:n.block_hash,block_number:n.block_number,transaction_hash:n.transaction_hash,...o})).filter(o=>Uo(o.from_address)===Uo(this.address),[]))||[];t=Lk(r,this.events,this.structs,xe.getAbiEnum(this.abi))},_:()=>{throw Error("This transaction was not successful.")}}),t}isCairo1(){return Rw.isCairo1Abi(this.abi)}async getVersion(){return this.providerOrAccount.getContractVersion(this.address)}typedv2(e){return this}};const KI="0x534e5f4d41494e",WI="0x534e5f5345504f4c4941";function gf(e){const n=`0x04${BigInt(e).toString(16).padStart(64,"0").slice(2)}`;return Hr(n).toFixed(0)}const _e={SN_MAIN:KI,SN_SEPOLIA:WI};var Vk=(e=>(e.Mainnet="starknet:mainnet",e.Sepolia="starknet:sepolia",e))(Vk||{});function XI(e){if(typeof e=="string")return e;if((n=>n===null||typeof n!="object"||!("data"in n)||n.data===null||typeof n.data!="object"||!("message"in n.data)?!1:typeof n.data.message=="string")(e))return e.data.message;if(e instanceof Error)return"isAxiosError"in e&&e.isAxiosError?ZI(e):e.message;if(e!==null&&typeof e=="object"){if("message"in e&&typeof e.message=="string")return e.message;try{return JSON.stringify(e)}catch{return"Unknown error object"}}return"Unknown error"}function ZI(e){if(e.response){const t=e.response.data;if(t&&typeof t=="object"){if("message"in t&&t.message&&typeof t.message=="string")return t.message;try{return JSON.stringify(t)}catch{return"Error in API response"}}return`HTTP error ${e.response.status}: ${e.response.statusText}`}return e.message?e.message:"Network error"}class En extends Error{constructor(n,r,a){super(n);ie(this,"cause");this.code=r,this.name="StarknetSdkError",a!=null&&a.cause&&(this.cause=a.cause)}static wrap(n,r="UNKNOWN_ERROR",a="Unknown error occurred."){if(n instanceof En)return n;const o=XI(n),i=n instanceof Error?{cause:n}:void 0;return new En(o||a,r,i)}}const YI=e=>new En(`Could not determine the RPC provider for given chain: ${e||"undefined"}`,"NO_PROVIDER"),JI=e=>new En(`Could not retrieve the token information for given token: ${e||"undefined"}`,"NO_TOKEN"),QI=(e,t)=>new En(`Could not retrieve pubKey for ${e} on ${t}`,"NO_PUBKEY"),e3=()=>new En("Unknown signature format, known formats are [r, s], [version, r, s], [version, type, r, s, ...]","UNKNOWN_SIGNATURE_FORMAT"),t3=()=>new En("The output script for provided BTC address is invalid","UNEXPECTED_OUTPUT_SCRIPT"),n3=e=>new En(`The wallet ${e||""} is not supported`,"UNSUPPORTED_WALLET"),r3=(e,t)=>{const n=e==="0x534e5f4d41494e"?"Starknet Mainnet":e==="0x534e5f5345504f4c4941"?"Starknet Sepolia":`unknown chain (${e})`,r=t==="prod"?"Starknet Mainnet":"Starknet Sepolia";return new En(`Wallet network mismatch: Your wallet is connected to ${n}, but the SDK is configured for ${r}. Please switch your wallet to ${r}.`,"CHAIN_MISMATCH")},a3={[_e.SN_MAIN]:"https://rpc.starknet.lava.build:443",[_e.SN_SEPOLIA]:"https://rpc.starknet-testnet.lava.build:443"},zm=new Map,gr=(e=_e.SN_MAIN)=>{let t=zm.get(e);return t||(t=new mI({nodeUrl:a3[e]}),zm.set(e,t)),t},gs=[{name:"LockingContract",type:"impl",interface_name:"src::mintable_lock_interface::ILockingContract"},{name:"src::mintable_lock_interface::ILockingContract",type:"interface",items:[{name:"set_locking_contract",type:"function",inputs:[{name:"locking_contract",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"get_locking_contract",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"}]},{name:"LockAndDelegate",type:"impl",interface_name:"src::mintable_lock_interface::ILockAndDelegate"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"src::mintable_lock_interface::ILockAndDelegate",type:"interface",items:[{name:"lock_and_delegate",type:"function",inputs:[{name:"delegatee",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"lock_and_delegate_by_sig",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"delegatee",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"},{name:"nonce",type:"core::felt252"},{name:"expiry",type:"core::integer::u64"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"}]},{name:"MintableToken",type:"impl",interface_name:"src::mintable_token_interface::IMintableToken"},{name:"src::mintable_token_interface::IMintableToken",type:"interface",items:[{name:"permissioned_mint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissioned_burn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"}]},{name:"MintableTokenCamelImpl",type:"impl",interface_name:"src::mintable_token_interface::IMintableTokenCamel"},{name:"src::mintable_token_interface::IMintableTokenCamel",type:"interface",items:[{name:"permissionedMint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissionedBurn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"}]},{name:"Replaceable",type:"impl",interface_name:"src::replaceability_interface::IReplaceable"},{name:"core::array::Span::<core::felt252>",type:"struct",members:[{name:"snapshot",type:"@core::array::Array::<core::felt252>"}]},{name:"src::replaceability_interface::EICData",type:"struct",members:[{name:"eic_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_init_data",type:"core::array::Span::<core::felt252>"}]},{name:"core::option::Option::<src::replaceability_interface::EICData>",type:"enum",variants:[{name:"Some",type:"src::replaceability_interface::EICData"},{name:"None",type:"()"}]},{name:"core::bool",type:"enum",variants:[{name:"False",type:"()"},{name:"True",type:"()"}]},{name:"src::replaceability_interface::ImplementationData",type:"struct",members:[{name:"impl_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_data",type:"core::option::Option::<src::replaceability_interface::EICData>"},{name:"final",type:"core::bool"}]},{name:"src::replaceability_interface::IReplaceable",type:"interface",items:[{name:"get_upgrade_delay",type:"function",inputs:[],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"get_impl_activation_time",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"add_new_implementation",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"remove_implementation",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"replace_to",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"}]},{name:"AccessControlImplExternal",type:"impl",interface_name:"src::access_control_interface::IAccessControl"},{name:"src::access_control_interface::IAccessControl",type:"interface",items:[{name:"has_role",type:"function",inputs:[{name:"role",type:"core::felt252"},{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"get_role_admin",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[{type:"core::felt252"}],state_mutability:"view"}]},{name:"RolesImpl",type:"impl",interface_name:"src::roles_interface::IMinimalRoles"},{name:"src::roles_interface::IMinimalRoles",type:"interface",items:[{name:"is_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"renounce",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[],state_mutability:"external"}]},{name:"ERC20Impl",type:"impl",interface_name:"openzeppelin::token::erc20::interface::IERC20"},{name:"openzeppelin::token::erc20::interface::IERC20",type:"interface",items:[{name:"name",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"symbol",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"decimals",type:"function",inputs:[],outputs:[{type:"core::integer::u8"}],state_mutability:"view"},{name:"total_supply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balance_of",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"allowance",type:"function",inputs:[{name:"owner",type:"core::starknet::contract_address::ContractAddress"},{name:"spender",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transfer",type:"function",inputs:[{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"transfer_from",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"approve",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"ERC20CamelOnlyImpl",type:"impl",interface_name:"openzeppelin::token::erc20::interface::IERC20CamelOnly"},{name:"openzeppelin::token::erc20::interface::IERC20CamelOnly",type:"interface",items:[{name:"totalSupply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balanceOf",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transferFrom",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"constructor",type:"constructor",inputs:[{name:"name",type:"core::felt252"},{name:"symbol",type:"core::felt252"},{name:"decimals",type:"core::integer::u8"},{name:"initial_supply",type:"core::integer::u256"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"permitted_minter",type:"core::starknet::contract_address::ContractAddress"},{name:"provisional_governance_admin",type:"core::starknet::contract_address::ContractAddress"},{name:"upgrade_delay",type:"core::integer::u64"}]},{name:"increase_allowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"added_value",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"decrease_allowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"subtracted_value",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"increaseAllowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"addedValue",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"decreaseAllowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"subtractedValue",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{kind:"struct",name:"src::strk::erc20_lockable::ERC20Lockable::Transfer",type:"event",members:[{kind:"data",name:"from",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"to",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"src::strk::erc20_lockable::ERC20Lockable::Approval",type:"event",members:[{kind:"data",name:"owner",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"spender",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationAdded",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationRemoved",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationReplaced",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationFinalized",type:"event",members:[{kind:"data",name:"impl_hash",type:"core::starknet::class_hash::ClassHash"}]},{kind:"struct",name:"src::access_control_interface::RoleGranted",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::access_control_interface::RoleRevoked",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::access_control_interface::RoleAdminChanged",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"previous_admin_role",type:"core::felt252"},{kind:"data",name:"new_admin_role",type:"core::felt252"}]},{kind:"struct",name:"src::roles_interface::GovernanceAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::GovernanceAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::UpgradeGovernorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::UpgradeGovernorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"src::strk::erc20_lockable::ERC20Lockable::Event",type:"event",variants:[{kind:"nested",name:"Transfer",type:"src::strk::erc20_lockable::ERC20Lockable::Transfer"},{kind:"nested",name:"Approval",type:"src::strk::erc20_lockable::ERC20Lockable::Approval"},{kind:"nested",name:"ImplementationAdded",type:"src::replaceability_interface::ImplementationAdded"},{kind:"nested",name:"ImplementationRemoved",type:"src::replaceability_interface::ImplementationRemoved"},{kind:"nested",name:"ImplementationReplaced",type:"src::replaceability_interface::ImplementationReplaced"},{kind:"nested",name:"ImplementationFinalized",type:"src::replaceability_interface::ImplementationFinalized"},{kind:"nested",name:"RoleGranted",type:"src::access_control_interface::RoleGranted"},{kind:"nested",name:"RoleRevoked",type:"src::access_control_interface::RoleRevoked"},{kind:"nested",name:"RoleAdminChanged",type:"src::access_control_interface::RoleAdminChanged"},{kind:"nested",name:"GovernanceAdminAdded",type:"src::roles_interface::GovernanceAdminAdded"},{kind:"nested",name:"GovernanceAdminRemoved",type:"src::roles_interface::GovernanceAdminRemoved"},{kind:"nested",name:"UpgradeGovernorAdded",type:"src::roles_interface::UpgradeGovernorAdded"},{kind:"nested",name:"UpgradeGovernorRemoved",type:"src::roles_interface::UpgradeGovernorRemoved"}]}],Bi=[{name:"MintableTokenImpl",type:"impl",interface_name:"starkware_utils::interfaces::mintable_token::IMintableToken"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"core::bool",type:"enum",variants:[{name:"False",type:"()"},{name:"True",type:"()"}]},{name:"starkware_utils::interfaces::mintable_token::IMintableToken",type:"interface",items:[{name:"permissioned_mint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissioned_burn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"is_permitted_minter",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"}]},{name:"ERC20Impl",type:"impl",interface_name:"openzeppelin_token::erc20::interface::IERC20"},{name:"openzeppelin_token::erc20::interface::IERC20",type:"interface",items:[{name:"total_supply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balance_of",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"allowance",type:"function",inputs:[{name:"owner",type:"core::starknet::contract_address::ContractAddress"},{name:"spender",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transfer",type:"function",inputs:[{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"transfer_from",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"approve",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"ReplaceabilityImpl",type:"impl",interface_name:"starkware_utils::components::replaceability::interface::IReplaceable"},{name:"core::array::Span::<core::felt252>",type:"struct",members:[{name:"snapshot",type:"@core::array::Array::<core::felt252>"}]},{name:"starkware_utils::components::replaceability::interface::EICData",type:"struct",members:[{name:"eic_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_init_data",type:"core::array::Span::<core::felt252>"}]},{name:"core::option::Option::<starkware_utils::components::replaceability::interface::EICData>",type:"enum",variants:[{name:"Some",type:"starkware_utils::components::replaceability::interface::EICData"},{name:"None",type:"()"}]},{name:"starkware_utils::components::replaceability::interface::ImplementationData",type:"struct",members:[{name:"impl_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_data",type:"core::option::Option::<starkware_utils::components::replaceability::interface::EICData>"},{name:"final",type:"core::bool"}]},{name:"starkware_utils::components::replaceability::interface::IReplaceable",type:"interface",items:[{name:"get_upgrade_delay",type:"function",inputs:[],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"get_impl_activation_time",type:"function",inputs:[{name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"add_new_implementation",type:"function",inputs:[{name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"remove_implementation",type:"function",inputs:[{name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"replace_to",type:"function",inputs:[{name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}],outputs:[],state_mutability:"external"}]},{name:"RolesImpl",type:"impl",interface_name:"starkware_utils::components::roles::interface::IRoles"},{name:"starkware_utils::components::roles::interface::IRoles",type:"interface",items:[{name:"is_app_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_app_role_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_operator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_token_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_security_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_security_agent",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_app_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_app_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_app_role_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_app_role_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_operator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_operator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_token_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_token_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"renounce",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[],state_mutability:"external"},{name:"register_security_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_security_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_security_agent",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_security_agent",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"}]},{name:"PausableImpl",type:"impl",interface_name:"starkware_utils::components::pausable::interface::IPausable"},{name:"starkware_utils::components::pausable::interface::IPausable",type:"interface",items:[{name:"is_paused",type:"function",inputs:[],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"pause",type:"function",inputs:[],outputs:[],state_mutability:"external"},{name:"unpause",type:"function",inputs:[],outputs:[],state_mutability:"external"}]},{name:"ERC20MetadataImpl",type:"impl",interface_name:"openzeppelin_token::erc20::interface::IERC20Metadata"},{name:"core::byte_array::ByteArray",type:"struct",members:[{name:"data",type:"core::array::Array::<core::bytes_31::bytes31>"},{name:"pending_word",type:"core::felt252"},{name:"pending_word_len",type:"core::integer::u32"}]},{name:"openzeppelin_token::erc20::interface::IERC20Metadata",type:"interface",items:[{name:"name",type:"function",inputs:[],outputs:[{type:"core::byte_array::ByteArray"}],state_mutability:"view"},{name:"symbol",type:"function",inputs:[],outputs:[{type:"core::byte_array::ByteArray"}],state_mutability:"view"},{name:"decimals",type:"function",inputs:[],outputs:[{type:"core::integer::u8"}],state_mutability:"view"}]},{name:"ERC20PermitImpl",type:"impl",interface_name:"openzeppelin_token::erc20::interface::IERC20Permit"},{name:"openzeppelin_token::erc20::interface::IERC20Permit",type:"interface",items:[{name:"permit",type:"function",inputs:[{name:"owner",type:"core::starknet::contract_address::ContractAddress"},{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"},{name:"deadline",type:"core::integer::u64"},{name:"signature",type:"core::array::Span::<core::felt252>"}],outputs:[],state_mutability:"external"},{name:"nonces",type:"function",inputs:[{name:"owner",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"DOMAIN_SEPARATOR",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"}]},{name:"SNIP12MetadataExternal",type:"impl",interface_name:"openzeppelin_utils::cryptography::interface::ISNIP12Metadata"},{name:"openzeppelin_utils::cryptography::interface::ISNIP12Metadata",type:"interface",items:[{name:"snip12_metadata",type:"function",inputs:[],outputs:[{type:"(core::felt252, core::felt252)"}],state_mutability:"view"}]},{name:"constructor",type:"constructor",inputs:[{name:"governance_admin",type:"core::starknet::contract_address::ContractAddress"},{name:"upgrade_delay",type:"core::integer::u64"}]},{kind:"struct",name:"openzeppelin_token::erc20::erc20::ERC20Component::Transfer",type:"event",members:[{kind:"key",name:"from",type:"core::starknet::contract_address::ContractAddress"},{kind:"key",name:"to",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"openzeppelin_token::erc20::erc20::ERC20Component::Approval",type:"event",members:[{kind:"key",name:"owner",type:"core::starknet::contract_address::ContractAddress"},{kind:"key",name:"spender",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"enum",name:"openzeppelin_token::erc20::erc20::ERC20Component::Event",type:"event",variants:[{kind:"nested",name:"Transfer",type:"openzeppelin_token::erc20::erc20::ERC20Component::Transfer"},{kind:"nested",name:"Approval",type:"openzeppelin_token::erc20::erc20::ERC20Component::Approval"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGranted",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"delay",type:"core::integer::u64"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleRevoked",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleAdminChanged",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"previous_admin_role",type:"core::felt252"},{kind:"data",name:"new_admin_role",type:"core::felt252"}]},{kind:"enum",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event",type:"event",variants:[{kind:"nested",name:"RoleGranted",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGranted"},{kind:"nested",name:"RoleGrantedWithDelay",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay"},{kind:"nested",name:"RoleRevoked",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleRevoked"},{kind:"nested",name:"RoleAdminChanged",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleAdminChanged"}]},{kind:"enum",name:"openzeppelin_utils::cryptography::nonces::NoncesComponent::Event",type:"event",variants:[]},{kind:"enum",name:"openzeppelin_introspection::src5::SRC5Component::Event",type:"event",variants:[]},{kind:"struct",name:"starkware_utils::components::pausable::pausable::PausableComponent::Paused",type:"event",members:[{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::pausable::pausable::PausableComponent::Unpaused",type:"event",members:[{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"starkware_utils::components::pausable::pausable::PausableComponent::Event",type:"event",variants:[{kind:"nested",name:"Paused",type:"starkware_utils::components::pausable::pausable::PausableComponent::Paused"},{kind:"nested",name:"Unpaused",type:"starkware_utils::components::pausable::pausable::PausableComponent::Unpaused"}]},{kind:"struct",name:"starkware_utils::components::replaceability::interface::ImplementationAdded",type:"event",members:[{kind:"data",name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}]},{kind:"struct",name:"starkware_utils::components::replaceability::interface::ImplementationRemoved",type:"event",members:[{kind:"data",name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}]},{kind:"struct",name:"starkware_utils::components::replaceability::interface::ImplementationReplaced",type:"event",members:[{kind:"data",name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}]},{kind:"struct",name:"starkware_utils::components::replaceability::interface::ImplementationFinalized",type:"event",members:[{kind:"data",name:"impl_hash",type:"core::starknet::class_hash::ClassHash"}]},{kind:"enum",name:"starkware_utils::components::replaceability::replaceability::ReplaceabilityComponent::Event",type:"event",variants:[{kind:"nested",name:"ImplementationAdded",type:"starkware_utils::components::replaceability::interface::ImplementationAdded"},{kind:"nested",name:"ImplementationRemoved",type:"starkware_utils::components::replaceability::interface::ImplementationRemoved"},{kind:"nested",name:"ImplementationReplaced",type:"starkware_utils::components::replaceability::interface::ImplementationReplaced"},{kind:"nested",name:"ImplementationFinalized",type:"starkware_utils::components::replaceability::interface::ImplementationFinalized"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::AppGovernorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::AppGovernorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::AppRoleAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::AppRoleAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::GovernanceAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::GovernanceAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::OperatorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::OperatorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::SecurityAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::SecurityAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::SecurityAgentAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::SecurityAgentRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::TokenAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::TokenAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::UpgradeGovernorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::UpgradeGovernorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"starkware_utils::components::roles::roles::RolesComponent::Event",type:"event",variants:[{kind:"nested",name:"AppGovernorAdded",type:"starkware_utils::components::roles::interface::AppGovernorAdded"},{kind:"nested",name:"AppGovernorRemoved",type:"starkware_utils::components::roles::interface::AppGovernorRemoved"},{kind:"nested",name:"AppRoleAdminAdded",type:"starkware_utils::components::roles::interface::AppRoleAdminAdded"},{kind:"nested",name:"AppRoleAdminRemoved",type:"starkware_utils::components::roles::interface::AppRoleAdminRemoved"},{kind:"nested",name:"GovernanceAdminAdded",type:"starkware_utils::components::roles::interface::GovernanceAdminAdded"},{kind:"nested",name:"GovernanceAdminRemoved",type:"starkware_utils::components::roles::interface::GovernanceAdminRemoved"},{kind:"nested",name:"OperatorAdded",type:"starkware_utils::components::roles::interface::OperatorAdded"},{kind:"nested",name:"OperatorRemoved",type:"starkware_utils::components::roles::interface::OperatorRemoved"},{kind:"nested",name:"SecurityAdminAdded",type:"starkware_utils::components::roles::interface::SecurityAdminAdded"},{kind:"nested",name:"SecurityAdminRemoved",type:"starkware_utils::components::roles::interface::SecurityAdminRemoved"},{kind:"nested",name:"SecurityAgentAdded",type:"starkware_utils::components::roles::interface::SecurityAgentAdded"},{kind:"nested",name:"SecurityAgentRemoved",type:"starkware_utils::components::roles::interface::SecurityAgentRemoved"},{kind:"nested",name:"TokenAdminAdded",type:"starkware_utils::components::roles::interface::TokenAdminAdded"},{kind:"nested",name:"TokenAdminRemoved",type:"starkware_utils::components::roles::interface::TokenAdminRemoved"},{kind:"nested",name:"UpgradeGovernorAdded",type:"starkware_utils::components::roles::interface::UpgradeGovernorAdded"},{kind:"nested",name:"UpgradeGovernorRemoved",type:"starkware_utils::components::roles::interface::UpgradeGovernorRemoved"}]},{kind:"struct",name:"lbtc_token::lbtc::events::MinterAdded",type:"event",members:[{kind:"data",name:"minter",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"lbtc_token::lbtc::token::lbtc::Event",type:"event",variants:[{kind:"flat",name:"ERC20Event",type:"openzeppelin_token::erc20::erc20::ERC20Component::Event"},{kind:"flat",name:"AccessControlEvent",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event"},{kind:"flat",name:"NoncesEvent",type:"openzeppelin_utils::cryptography::nonces::NoncesComponent::Event"},{kind:"flat",name:"SRC5Event",type:"openzeppelin_introspection::src5::SRC5Component::Event"},{kind:"flat",name:"PausableEvent",type:"starkware_utils::components::pausable::pausable::PausableComponent::Event"},{kind:"flat",name:"ReplaceabilityEvent",type:"starkware_utils::components::replaceability::replaceability::ReplaceabilityComponent::Event"},{kind:"flat",name:"RolesEvent",type:"starkware_utils::components::roles::roles::RolesComponent::Event"},{kind:"nested",name:"MinterAdded",type:"lbtc_token::lbtc::events::MinterAdded"}]}],zi=[{name:"BasculeImpl",type:"impl",interface_name:"lbtc_bascule::interface::IBascule"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"core::array::Span::<core::integer::u256>",type:"struct",members:[{name:"snapshot",type:"@core::array::Array::<core::integer::u256>"}]},{name:"lbtc_bascule::interface::DepositState",type:"enum",variants:[{name:"Unreported",type:"()"},{name:"Reported",type:"()"},{name:"Withdrawn",type:"()"}]},{name:"core::bool",type:"enum",variants:[{name:"False",type:"()"},{name:"True",type:"()"}]},{name:"lbtc_bascule::interface::IBascule",type:"interface",items:[{name:"validate_withdrawal",type:"function",inputs:[{name:"to_chain",type:"core::integer::u256"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"withdrawal_amount",type:"core::integer::u256"},{name:"tx_id",type:"core::integer::u256"},{name:"vout",type:"core::integer::u32"}],outputs:[],state_mutability:"external"},{name:"update_validation_threshold",type:"function",inputs:[{name:"new_threshold",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"set_max_deposits",type:"function",inputs:[{name:"max_deposits",type:"core::integer::u32"}],outputs:[],state_mutability:"external"},{name:"report_deposits",type:"function",inputs:[{name:"report_id",type:"core::integer::u256"},{name:"deposit_ids",type:"core::array::Span::<core::integer::u256>"}],outputs:[],state_mutability:"external"},{name:"get_validation_threshold",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"get_max_deposits",type:"function",inputs:[],outputs:[{type:"core::integer::u32"}],state_mutability:"view"},{name:"get_deposit_status",type:"function",inputs:[{name:"deposit_id",type:"core::integer::u256"}],outputs:[{type:"lbtc_bascule::interface::DepositState"}],state_mutability:"view"},{name:"is_deposit_reporter",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_deposit_reporter",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_deposit_reporter",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"is_withdrawal_validator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_withdrawal_validator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_withdrawal_validator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"is_validation_guardian",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_validation_guardian",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_validation_guardian",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"is_pauser",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_pauser",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_pauser",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"}]},{name:"PausableImpl",type:"impl",interface_name:"starkware_utils::components::pausable::interface::IPausable"},{name:"starkware_utils::components::pausable::interface::IPausable",type:"interface",items:[{name:"is_paused",type:"function",inputs:[],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"pause",type:"function",inputs:[],outputs:[],state_mutability:"external"},{name:"unpause",type:"function",inputs:[],outputs:[],state_mutability:"external"}]},{name:"constructor",type:"constructor",inputs:[{name:"governance_admin",type:"core::starknet::contract_address::ContractAddress"},{name:"pauser",type:"core::starknet::contract_address::ContractAddress"},{name:"deposit_reporter",type:"core::starknet::contract_address::ContractAddress"},{name:"withdrawal_validator",type:"core::starknet::contract_address::ContractAddress"},{name:"max_deposits",type:"core::integer::u32"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGranted",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"delay",type:"core::integer::u64"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleRevoked",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleAdminChanged",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"previous_admin_role",type:"core::felt252"},{kind:"data",name:"new_admin_role",type:"core::felt252"}]},{kind:"enum",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event",type:"event",variants:[{kind:"nested",name:"RoleGranted",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGranted"},{kind:"nested",name:"RoleGrantedWithDelay",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay"},{kind:"nested",name:"RoleRevoked",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleRevoked"},{kind:"nested",name:"RoleAdminChanged",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleAdminChanged"}]},{kind:"struct",name:"openzeppelin_security::pausable::PausableComponent::Paused",type:"event",members:[{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"openzeppelin_security::pausable::PausableComponent::Unpaused",type:"event",members:[{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"openzeppelin_security::pausable::PausableComponent::Event",type:"event",variants:[{kind:"nested",name:"Paused",type:"openzeppelin_security::pausable::PausableComponent::Paused"},{kind:"nested",name:"Unpaused",type:"openzeppelin_security::pausable::PausableComponent::Unpaused"}]},{kind:"enum",name:"openzeppelin_introspection::src5::SRC5Component::Event",type:"event",variants:[]},{kind:"struct",name:"lbtc_bascule::events::DepositAlreadyReported",type:"event",members:[{kind:"key",name:"deposit_id",type:"core::integer::u256"}]},{kind:"struct",name:"lbtc_bascule::events::DepositsReported",type:"event",members:[{kind:"key",name:"report_id",type:"core::integer::u256"},{kind:"data",name:"num_deposits",type:"core::integer::u32"}]},{kind:"struct",name:"lbtc_bascule::events::MaxDepositsUpdated",type:"event",members:[{kind:"data",name:"num_deposits",type:"core::integer::u32"}]},{kind:"struct",name:"lbtc_bascule::events::UpdateValidateThreshold",type:"event",members:[{kind:"data",name:"old_threshold",type:"core::integer::u256"},{kind:"data",name:"new_threshold",type:"core::integer::u256"}]},{kind:"struct",name:"lbtc_bascule::events::WithdrawalNotValidated",type:"event",members:[{kind:"key",name:"deposit_id",type:"core::integer::u256"},{kind:"data",name:"withdrawal_amount",type:"core::integer::u256"}]},{kind:"struct",name:"lbtc_bascule::events::WithdrawalValidated",type:"event",members:[{kind:"key",name:"deposit_id",type:"core::integer::u256"},{kind:"data",name:"withdrawal_amount",type:"core::integer::u256"}]},{kind:"enum",name:"lbtc_bascule::bascule::bascule::Event",type:"event",variants:[{kind:"flat",name:"AccessControlEvent",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event"},{kind:"flat",name:"PausableEvent",type:"openzeppelin_security::pausable::PausableComponent::Event"},{kind:"flat",name:"SRC5Event",type:"openzeppelin_introspection::src5::SRC5Component::Event"},{kind:"nested",name:"DepositAlreadyReported",type:"lbtc_bascule::events::DepositAlreadyReported"},{kind:"nested",name:"DepositsReported",type:"lbtc_bascule::events::DepositsReported"},{kind:"nested",name:"MaxDepositsUpdated",type:"lbtc_bascule::events::MaxDepositsUpdated"},{kind:"nested",name:"UpdateValidateThreshold",type:"lbtc_bascule::events::UpdateValidateThreshold"},{kind:"nested",name:"WithdrawalNotValidated",type:"lbtc_bascule::events::WithdrawalNotValidated"},{kind:"nested",name:"WithdrawalValidated",type:"lbtc_bascule::events::WithdrawalValidated"}]}],Pi=[{name:"AssetRouterImpl",type:"impl",interface_name:"lbtc_asset_router::interface::IAssetRouter"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"core::array::Span::<(core::integer::u256, core::integer::u256)>",type:"struct",members:[{name:"snapshot",type:"@core::array::Array::<(core::integer::u256, core::integer::u256)>"}]},{name:"core::byte_array::ByteArray",type:"struct",members:[{name:"data",type:"core::array::Array::<core::bytes_31::bytes31>"},{name:"pending_word",type:"core::felt252"},{name:"pending_word_len",type:"core::integer::u32"}]},{name:"core::bool",type:"enum",variants:[{name:"False",type:"()"},{name:"True",type:"()"}]},{name:"lbtc_asset_router::interface::IAssetRouter",type:"interface",items:[{name:"change_bascule",type:"function",inputs:[{name:"new_bascule",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"change_treasury",type:"function",inputs:[{name:"new_treasury",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"change_burn_commission",type:"function",inputs:[{name:"new_burn_commission",type:"core::integer::u64"}],outputs:[],state_mutability:"external"},{name:"enable_withdrawals",type:"function",inputs:[],outputs:[],state_mutability:"external"},{name:"disable_withdrawals",type:"function",inputs:[],outputs:[],state_mutability:"external"},{name:"change_dust_fee_rate",type:"function",inputs:[{name:"new_rate",type:"core::integer::u128"}],outputs:[],state_mutability:"external"},{name:"mint",type:"function",inputs:[{name:"to_chain",type:"core::integer::u256"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"},{name:"tx_id",type:"core::integer::u256"},{name:"vout",type:"core::integer::u32"},{name:"proof",type:"core::array::Span::<(core::integer::u256, core::integer::u256)>"}],outputs:[],state_mutability:"external"},{name:"redeem",type:"function",inputs:[{name:"script_pub_key",type:"core::byte_array::ByteArray"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"get_lbtc_token_address",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"},{name:"get_bascule",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"},{name:"get_consortium",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"},{name:"get_treasury",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"},{name:"get_burn_commission",type:"function",inputs:[],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"calculate_unstake_request_amount",type:"function",inputs:[{name:"script_pub_key",type:"core::byte_array::ByteArray"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"(core::integer::u256, core::bool)"}],state_mutability:"view"},{name:"get_dust_fee_rate",type:"function",inputs:[],outputs:[{type:"core::integer::u128"}],state_mutability:"view"},{name:"is_payload_used",type:"function",inputs:[{name:"payload_hash",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_withdrawals_enabled",type:"function",inputs:[],outputs:[{type:"core::bool"}],state_mutability:"view"}]},{name:"RolesImpl",type:"impl",interface_name:"starkware_utils::components::roles::interface::IRoles"},{name:"starkware_utils::components::roles::interface::IRoles",type:"interface",items:[{name:"is_app_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_app_role_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_operator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_token_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_security_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_security_agent",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_app_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_app_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_app_role_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_app_role_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_operator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_operator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_token_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_token_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"renounce",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[],state_mutability:"external"},{name:"register_security_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_security_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_security_agent",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_security_agent",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"}]},{name:"ReplaceabilityImpl",type:"impl",interface_name:"starkware_utils::components::replaceability::interface::IReplaceable"},{name:"core::array::Span::<core::felt252>",type:"struct",members:[{name:"snapshot",type:"@core::array::Array::<core::felt252>"}]},{name:"starkware_utils::components::replaceability::interface::EICData",type:"struct",members:[{name:"eic_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_init_data",type:"core::array::Span::<core::felt252>"}]},{name:"core::option::Option::<starkware_utils::components::replaceability::interface::EICData>",type:"enum",variants:[{name:"Some",type:"starkware_utils::components::replaceability::interface::EICData"},{name:"None",type:"()"}]},{name:"starkware_utils::components::replaceability::interface::ImplementationData",type:"struct",members:[{name:"impl_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_data",type:"core::option::Option::<starkware_utils::components::replaceability::interface::EICData>"},{name:"final",type:"core::bool"}]},{name:"starkware_utils::components::replaceability::interface::IReplaceable",type:"interface",items:[{name:"get_upgrade_delay",type:"function",inputs:[],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"get_impl_activation_time",type:"function",inputs:[{name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"add_new_implementation",type:"function",inputs:[{name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"remove_implementation",type:"function",inputs:[{name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"replace_to",type:"function",inputs:[{name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}],outputs:[],state_mutability:"external"}]},{name:"constructor",type:"constructor",inputs:[{name:"governance_admin",type:"core::starknet::contract_address::ContractAddress"},{name:"upgrade_delay",type:"core::integer::u64"},{name:"bascule",type:"core::starknet::contract_address::ContractAddress"},{name:"consortium",type:"core::starknet::contract_address::ContractAddress"},{name:"lbtc_token",type:"core::starknet::contract_address::ContractAddress"},{name:"treasury",type:"core::starknet::contract_address::ContractAddress"},{name:"burn_commission",type:"core::integer::u64"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGranted",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"delay",type:"core::integer::u64"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleRevoked",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleAdminChanged",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"previous_admin_role",type:"core::felt252"},{kind:"data",name:"new_admin_role",type:"core::felt252"}]},{kind:"enum",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event",type:"event",variants:[{kind:"nested",name:"RoleGranted",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGranted"},{kind:"nested",name:"RoleGrantedWithDelay",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay"},{kind:"nested",name:"RoleRevoked",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleRevoked"},{kind:"nested",name:"RoleAdminChanged",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleAdminChanged"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::AppGovernorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::AppGovernorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::AppRoleAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::AppRoleAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::GovernanceAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::GovernanceAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::OperatorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::OperatorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::SecurityAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::SecurityAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::SecurityAgentAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::SecurityAgentRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::TokenAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::TokenAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::UpgradeGovernorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::UpgradeGovernorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"starkware_utils::components::roles::roles::RolesComponent::Event",type:"event",variants:[{kind:"nested",name:"AppGovernorAdded",type:"starkware_utils::components::roles::interface::AppGovernorAdded"},{kind:"nested",name:"AppGovernorRemoved",type:"starkware_utils::components::roles::interface::AppGovernorRemoved"},{kind:"nested",name:"AppRoleAdminAdded",type:"starkware_utils::components::roles::interface::AppRoleAdminAdded"},{kind:"nested",name:"AppRoleAdminRemoved",type:"starkware_utils::components::roles::interface::AppRoleAdminRemoved"},{kind:"nested",name:"GovernanceAdminAdded",type:"starkware_utils::components::roles::interface::GovernanceAdminAdded"},{kind:"nested",name:"GovernanceAdminRemoved",type:"starkware_utils::components::roles::interface::GovernanceAdminRemoved"},{kind:"nested",name:"OperatorAdded",type:"starkware_utils::components::roles::interface::OperatorAdded"},{kind:"nested",name:"OperatorRemoved",type:"starkware_utils::components::roles::interface::OperatorRemoved"},{kind:"nested",name:"SecurityAdminAdded",type:"starkware_utils::components::roles::interface::SecurityAdminAdded"},{kind:"nested",name:"SecurityAdminRemoved",type:"starkware_utils::components::roles::interface::SecurityAdminRemoved"},{kind:"nested",name:"SecurityAgentAdded",type:"starkware_utils::components::roles::interface::SecurityAgentAdded"},{kind:"nested",name:"SecurityAgentRemoved",type:"starkware_utils::components::roles::interface::SecurityAgentRemoved"},{kind:"nested",name:"TokenAdminAdded",type:"starkware_utils::components::roles::interface::TokenAdminAdded"},{kind:"nested",name:"TokenAdminRemoved",type:"starkware_utils::components::roles::interface::TokenAdminRemoved"},{kind:"nested",name:"UpgradeGovernorAdded",type:"starkware_utils::components::roles::interface::UpgradeGovernorAdded"},{kind:"nested",name:"UpgradeGovernorRemoved",type:"starkware_utils::components::roles::interface::UpgradeGovernorRemoved"}]},{kind:"enum",name:"openzeppelin_introspection::src5::SRC5Component::Event",type:"event",variants:[]},{kind:"struct",name:"starkware_utils::components::replaceability::interface::ImplementationAdded",type:"event",members:[{kind:"data",name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}]},{kind:"struct",name:"starkware_utils::components::replaceability::interface::ImplementationRemoved",type:"event",members:[{kind:"data",name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}]},{kind:"struct",name:"starkware_utils::components::replaceability::interface::ImplementationReplaced",type:"event",members:[{kind:"data",name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}]},{kind:"struct",name:"starkware_utils::components::replaceability::interface::ImplementationFinalized",type:"event",members:[{kind:"data",name:"impl_hash",type:"core::starknet::class_hash::ClassHash"}]},{kind:"enum",name:"starkware_utils::components::replaceability::replaceability::ReplaceabilityComponent::Event",type:"event",variants:[{kind:"nested",name:"ImplementationAdded",type:"starkware_utils::components::replaceability::interface::ImplementationAdded"},{kind:"nested",name:"ImplementationRemoved",type:"starkware_utils::components::replaceability::interface::ImplementationRemoved"},{kind:"nested",name:"ImplementationReplaced",type:"starkware_utils::components::replaceability::interface::ImplementationReplaced"},{kind:"nested",name:"ImplementationFinalized",type:"starkware_utils::components::replaceability::interface::ImplementationFinalized"}]},{kind:"struct",name:"lbtc_asset_router::events::BasculeChanged",type:"event",members:[{kind:"data",name:"old_bascule",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"new_bascule",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"lbtc_asset_router::events::ConsortiumChanged",type:"event",members:[{kind:"data",name:"old_consortium",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"new_consortium",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"lbtc_asset_router::events::TreasuryChanged",type:"event",members:[{kind:"data",name:"old_treasury",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"new_treasury",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"lbtc_asset_router::events::BurnCommissionChanged",type:"event",members:[{kind:"data",name:"old_burn_commission",type:"core::integer::u64"},{kind:"data",name:"new_burn_commission",type:"core::integer::u64"}]},{kind:"struct",name:"lbtc_asset_router::events::WithdrawalsEnabled",type:"event",members:[{kind:"data",name:"is_withdrawals_enabled",type:"core::bool"}]},{kind:"struct",name:"lbtc_asset_router::events::UnstakeRequest",type:"event",members:[{kind:"data",name:"from_address",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"script_pub_key",type:"core::byte_array::ByteArray"},{kind:"data",name:"amount_after_fee",type:"core::integer::u256"}]},{kind:"struct",name:"lbtc_asset_router::events::DustFeeRateChanged",type:"event",members:[{kind:"data",name:"old_rate",type:"core::integer::u128"},{kind:"data",name:"new_rate",type:"core::integer::u128"}]},{kind:"struct",name:"lbtc_asset_router::events::MintProofConsumed",type:"event",members:[{kind:"key",name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{kind:"key",name:"payload_hash",type:"core::integer::u256"},{kind:"data",name:"payload",type:"core::byte_array::ByteArray"}]},{kind:"enum",name:"lbtc_asset_router::asset_router::asset_router::Event",type:"event",variants:[{kind:"flat",name:"AccessControlEvent",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event"},{kind:"flat",name:"RolesEvent",type:"starkware_utils::components::roles::roles::RolesComponent::Event"},{kind:"flat",name:"SRC5Event",type:"openzeppelin_introspection::src5::SRC5Component::Event"},{kind:"flat",name:"ReplaceabilityEvent",type:"starkware_utils::components::replaceability::replaceability::ReplaceabilityComponent::Event"},{kind:"nested",name:"BasculeChanged",type:"lbtc_asset_router::events::BasculeChanged"},{kind:"nested",name:"ConsortiumChanged",type:"lbtc_asset_router::events::ConsortiumChanged"},{kind:"nested",name:"TreasuryChanged",type:"lbtc_asset_router::events::TreasuryChanged"},{kind:"nested",name:"BurnCommissionChanged",type:"lbtc_asset_router::events::BurnCommissionChanged"},{kind:"nested",name:"WithdrawalsEnabled",type:"lbtc_asset_router::events::WithdrawalsEnabled"},{kind:"nested",name:"UnstakeRequest",type:"lbtc_asset_router::events::UnstakeRequest"},{kind:"nested",name:"DustFeeRateChanged",type:"lbtc_asset_router::events::DustFeeRateChanged"},{kind:"nested",name:"MintProofConsumed",type:"lbtc_asset_router::events::MintProofConsumed"}]}];var yf=(e=>(e.ETH="ETH",e.LBTC="LBTC",e.STRK="STRK",e))(yf||{});const o3={[_e.SN_SEPOLIA]:{address:"0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",classHash:"0x076791ef97c042f81fbf352ad95f39a22554ee8d7927b2ce3c681f3418b5206a",abi:gs},[_e.SN_MAIN]:{address:"0x049D36570D4e46f48e99674bd3fcc84644DdD6b96F7C741B1562B82f9e004dC7",classHash:"",abi:gs}},Gu={[We.stage]:{[_e.SN_SEPOLIA]:{address:"0x00b442f5420860e937a99659326e81a97e07bfd538b3cee65b90029c9da38a5f",classHash:"0x01f12942315b6dd05a21392ced7890a380affa81066741de6ac31af4dcb0d468",abi:Bi},[_e.SN_MAIN]:void 0},[We.testnet]:{[_e.SN_SEPOLIA]:{address:"0x00456a829ab75ba5e97534dc70d7fc617cfda244f8dcda47b11624de67c6e70c",classHash:"0x01f12942315b6dd05a21392ced7890a380affa81066741de6ac31af4dcb0d468",abi:Bi},[_e.SN_MAIN]:void 0},[We.dev]:{[_e.SN_SEPOLIA]:{address:"0x0723de0c550b7bfbb5051dade72966d71a08bef952c0197462a5244497eb57c1",classHash:"0x01f12942315b6dd05a21392ced7890a380affa81066741de6ac31af4dcb0d468",abi:Bi},[_e.SN_MAIN]:void 0},[We.prod]:{[_e.SN_SEPOLIA]:void 0,[_e.SN_MAIN]:{address:"0x036834a40984312f7f7de8d31e3f6305b325389eaeea5b1c0664b2fb936461a4",classHash:"",abi:Bi}},[We.ibc]:void 0},Ku={[We.stage]:{[_e.SN_SEPOLIA]:{address:"0x01d27f156092746d0d7cd9d9deec5e937f27c3c7c1c28365e9e5efac459880b3",classHash:"0x0524d80f999f690bbb302f37a36abdf82ea2135391c3d1a5090e7665c20e2159",abi:Pi},[_e.SN_MAIN]:void 0},[We.testnet]:{[_e.SN_SEPOLIA]:{address:"0x063b7b5c8b114ebd5b9602fbd5d0ffd2cc3a598f1d91c6904cc0997cd8fea760",classHash:"0x0524d80f999f690bbb302f37a36abdf82ea2135391c3d1a5090e7665c20e2159",abi:Pi},[_e.SN_MAIN]:void 0},[We.dev]:{[_e.SN_SEPOLIA]:{address:"0x04838a05c798dc57e01e85526979841c84f1f3c732a525cff53adb3e8bee3d24",classHash:"0x0524d80f999f690bbb302f37a36abdf82ea2135391c3d1a5090e7665c20e2159",abi:Pi},[_e.SN_MAIN]:void 0},[We.prod]:{[_e.SN_SEPOLIA]:void 0,[_e.SN_MAIN]:{address:"0x05b1886d0f844ab930fc0ee066f1655a873437f15a5d2c41ee3e884fd5299976",classHash:"",abi:Pi}},[We.ibc]:void 0},Wu={[We.stage]:{[_e.SN_SEPOLIA]:{address:"0x001d16d02a4ed6f5673635b1ad3b27ead190904b83fafde7b4c55282ef57492a",classHash:"0x0083965992f591e5979068d8a12a09a1f13949e1d1f65f495e7a5503d2f1e519",abi:zi},[_e.SN_MAIN]:void 0},[We.testnet]:{[_e.SN_SEPOLIA]:{address:"0x01757fb630a6cc4e3607fc1d92e0f91c5b3eedd71420f1fa7dc6d1764827b012",classHash:"0x0083965992f591e5979068d8a12a09a1f13949e1d1f65f495e7a5503d2f1e519",abi:zi},[_e.SN_MAIN]:void 0},[We.dev]:{[_e.SN_SEPOLIA]:{address:"0x01757fb630a6cc4e3607fc1d92e0f91c5b3eedd71420f1fa7dc6d1764827b012",classHash:"0x0083965992f591e5979068d8a12a09a1f13949e1d1f65f495e7a5503d2f1e519",abi:zi},[_e.SN_MAIN]:void 0},[We.prod]:{[_e.SN_SEPOLIA]:void 0,[_e.SN_MAIN]:{address:"0x76b68231c1bddb7c981c5a19d9c6a28c5cb14161b8fcd3a857aa8a396d31f95",classHash:"",abi:zi}},[We.ibc]:void 0},i3={[_e.SN_SEPOLIA]:{address:"0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",classHash:"0x009524a94b41c4440a16fd96d7c1ef6ad6f44c1c013e96662734502cd4ee9b1f",abi:gs},[_e.SN_MAIN]:{address:"0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",classHash:"0x009524a94b41c4440a16fd96d7c1ef6ad6f44c1c013e96662734502cd4ee9b1f",abi:gs}},$k=(e,t=_e.SN_MAIN,n="token",r=h_)=>{var a,o,i;if(n==="bridge")switch(e){case"LBTC":return(a=Ku==null?void 0:Ku[r])==null?void 0:a[t];default:return}if(n==="bascule")switch(e){case"LBTC":return(o=Wu==null?void 0:Wu[r])==null?void 0:o[t];default:return}switch(e){case"ETH":return o3[t];case"LBTC":return(i=Gu==null?void 0:Gu[r])==null?void 0:i[t];case"STRK":return i3[t]}},yr=({token:e,chainId:t,provider:n,contractType:r="token",env:a})=>{const o=$k(e,t,r,a);if(!o){const c=a==="prod",u=t===_e.SN_MAIN;throw c&&!u||!c&&u?r3(t??"unknown",a??"unknown"):JI(e)}const i=n||gr(t);if(!i)throw YI(t);return new GI(o.abi,o.address,i)};function Gk(e,t){return Hr(e).multipliedBy(Hr(10).pow(t)).decimalPlaces(0,Hr.ROUND_HALF_UP)}function s3(e,t){return Hr(e).dividedBy(Hr(10).pow(t))}async function c3({amount:e,spender:t,token:n,walletAccount:r,env:a}){const o=await r.getChainId(),i=gr(o),c=await yr({chainId:o,contractType:"token",provider:i,token:n,env:a}).decimals(),u=Gk(e,Number(c));return(await yr({chainId:o,contractType:"token",provider:r,token:n,env:a}).approve(t,u.toNumber())).transaction_hash}async function u3({account:e,token:t,chainId:n,env:r}){const a=gr(n),o=yr({chainId:n,contractType:"token",provider:a,token:t,env:r}),i=await o.balance_of(e),s=Hr.BigNumber(String(i)),c=await o.decimals();return s3(s,c)}const Ri=BigInt(2**32-1),Pm=BigInt(32);function l3(e,t=!1){return t?{h:Number(e&Ri),l:Number(e>>Pm&Ri)}:{h:Number(e>>Pm&Ri)|0,l:Number(e&Ri)|0}}function d3(e,t=!1){const n=e.length;let r=new Uint32Array(n),a=new Uint32Array(n);for(let o=0;o<n;o++){const{h:i,l:s}=l3(e[o],t);[r[o],a[o]]=[i,s]}return[r,a]}const f3=(e,t,n)=>e<<n|t>>>32-n,p3=(e,t,n)=>t<<n|e>>>32-n,h3=(e,t,n)=>t<<n-32|e>>>64-n,m3=(e,t,n)=>e<<n-32|t>>>64-n;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function g3(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Rm(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function ys(e,...t){if(!g3(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function Nm(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function y3(e,t){ys(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function b3(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Kk(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}const w3=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function k3(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function _3(e){for(let t=0;t<e.length;t++)e[t]=k3(e[t]);return e}const Um=w3?e=>e:_3;function v3(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function Wk(e){return typeof e=="string"&&(e=v3(e)),ys(e),e}class E3{}function A3(e){const t=r=>e().update(Wk(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}const S3=BigInt(0),$a=BigInt(1),j3=BigInt(2),x3=BigInt(7),T3=BigInt(256),I3=BigInt(113),Xk=[],Zk=[],Yk=[];for(let e=0,t=$a,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],Xk.push(2*(5*r+n)),Zk.push((e+1)*(e+2)/2%64);let a=S3;for(let o=0;o<7;o++)t=(t<<$a^(t>>x3)*I3)%T3,t&j3&&(a^=$a<<($a<<BigInt(o))-$a);Yk.push(a)}const Jk=d3(Yk,!0),C3=Jk[0],O3=Jk[1],Hm=(e,t,n)=>n>32?h3(e,t,n):f3(e,t,n),Lm=(e,t,n)=>n>32?m3(e,t,n):p3(e,t,n);function B3(e,t=24){const n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let i=0;i<10;i++)n[i]=e[i]^e[i+10]^e[i+20]^e[i+30]^e[i+40];for(let i=0;i<10;i+=2){const s=(i+8)%10,c=(i+2)%10,u=n[c],d=n[c+1],h=Hm(u,d,1)^n[s],f=Lm(u,d,1)^n[s+1];for(let l=0;l<50;l+=10)e[i+l]^=h,e[i+l+1]^=f}let a=e[2],o=e[3];for(let i=0;i<24;i++){const s=Zk[i],c=Hm(a,o,s),u=Lm(a,o,s),d=Xk[i];a=e[d],o=e[d+1],e[d]=c,e[d+1]=u}for(let i=0;i<50;i+=10){for(let s=0;s<10;s++)n[s]=e[i+s];for(let s=0;s<10;s++)e[i+s]^=~n[(s+2)%10]&n[(s+4)%10]}e[0]^=C3[r],e[1]^=O3[r]}Kk(n)}class bf extends E3{constructor(t,n,r,a=!1,o=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=n,this.outputLen=r,this.enableXOF=a,this.rounds=o,Rm(r),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=b3(this.state)}clone(){return this._cloneInto()}keccak(){Um(this.state32),B3(this.state32,this.rounds),Um(this.state32),this.posOut=0,this.pos=0}update(t){Nm(this),t=Wk(t),ys(t);const{blockLen:n,state:r}=this,a=t.length;for(let o=0;o<a;){const i=Math.min(n-this.pos,a-o);for(let s=0;s<i;s++)r[this.pos++]^=t[o++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:n,pos:r,blockLen:a}=this;t[r]^=n,(n&128)!==0&&r===a-1&&this.keccak(),t[a-1]^=128,this.keccak()}writeInto(t){Nm(this,!1),ys(t),this.finish();const n=this.state,{blockLen:r}=this;for(let a=0,o=t.length;a<o;){this.posOut>=r&&this.keccak();const i=Math.min(r-this.posOut,o-a);t.set(n.subarray(this.posOut,this.posOut+i),a),this.posOut+=i,a+=i}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Rm(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(y3(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,Kk(this.state)}_cloneInto(t){const{blockLen:n,suffix:r,outputLen:a,rounds:o,enableXOF:i}=this;return t||(t=new bf(n,r,a,i,o)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=o,t.suffix=r,t.outputLen=a,t.enableXOF=i,t.destroyed=this.destroyed,t}}const z3=(e,t,n)=>A3(()=>new bf(t,e,n)),P3=z3(1,136,256/8);function R3(e){return e.startsWith("0x")}function Dm(e){return R3(e)?e:`0x${e}`}function N3(e){let t=e;t.startsWith("0x")&&(t=t.slice(2));const n=t.match(/.{64}/g);if(!n)throw new Error("Invalid hex string");const r=Number.parseInt(n[0],16)/32,a=Number.parseInt(n[r],16),o=r+1,i=[];for(let s=0;s<a;s++){const d=Number.parseInt(n[o+s],16)/32+o+1,h=`0x${n[d]}`,f=`0x${n[d+1]}`,l=ms.bnToUint256(h),g=ms.bnToUint256(f);i.push({0:l,1:g})}return i}async function U3({amount:e,depositPayload:t,depositTxId:n,depositIndex:r,depositProofSignature:a,token:o,walletAccount:i,recipientAddress:s,env:c}){const u=await i.getChainId(),d=(n.startsWith("0x")?n.slice(2):n).match(/.{2}/g);if(!d)throw new Error("Missing deposit tx id");const h=gr(u),l=yr({...{chainId:u,provider:h,token:o},contractType:"bascule",env:c}),g=Dm(Buffer.from(P3(Buffer.from(t.slice(8),"hex"))).toString("hex")),b=await l.get_deposit_status(BigInt(g));if(b.activeVariant()!=="Reported"){const I=`The deposit cannot be claimed. Bascule status: ${b.activeVariant()}`;console.warn(I)}const y=BigInt(gf(u)),_=s||i.address,k=BigInt(Dm(d.reverse().join(""))),w=Number(r),v=N3(a),A=yr({chainId:u,provider:i,token:o,contractType:"bridge",env:c}),{transaction_hash:T}=await A.mint(y,_,BigInt(e.toString()),k,w,v);return T}var Xu={},mt={},xn={},Fm;function nn(){return Fm||(Fm=1,Object.defineProperty(xn,"__esModule",{value:!0}),xn.testnet=xn.regtest=xn.bitcoin=void 0,xn.bitcoin={messagePrefix:`Bitcoin Signed Message:
217
+ [JSON.stringify Error/Circular]: ${s}`}return i}log(t,n,r){if(!this.shouldLog(Ii[t]))return;const a={level:t,message:n,timestamp:this.getTimestamp(),data:r},o=this.formatMessage(a);switch(t){case"DEBUG":console.debug(o);break;case"INFO":console.info(o);break;case"WARN":console.warn(o);break;case"ERROR":case"FATAL":console.error(o);break;case"OFF":break;default:console.log(o);break}}debug(t,n){this.log("DEBUG",t,n)}info(t,n){this.log("INFO",t,n)}warn(t,n){this.log("WARN",t,n)}error(t,n){this.log("ERROR",t,n)}fatal(t,n){this.log("FATAL",t,n)}setLogLevel(t){this.config.set("logLevel",t)}getLogLevel(){return this.config.get("logLevel","INFO")}getEnabledLogLevels(){return Object.keys(Ii).filter(t=>this.shouldLog(Ii[t])&&t!=="OFF")}},ie(yn,"instance"),yn),xt=YT.getInstance();function Pa(e){return new Promise(t=>{setTimeout(t,e)})}function gk(e){const t={...e};return delete t.sierra_program_debug_info,t.abi=Fo(Vt(e.abi)),t.sierra_program=Fo(Vt(e.sierra_program)),t.sierra_program=sf(t.sierra_program),t}function JT(e){const t=Qe(e)?Fa(e):e;return tn(e)?gk(t):{...t,..."program"in t&&{program:sf(t.program)}}}var Mo=(e,t=!1)=>{t||xt.info("Using default public node url, please provide nodeUrl in provider options!");const n=hw[e??"SN_SEPOLIA"],r=Math.floor(Math.random()*n.length);return n[r]},yk=Object.values(lr),je=class{constructor(e){ie(this,"hash",null);ie(this,"number",null);ie(this,"tag",null);ie(this,"valueOf",()=>this.number);ie(this,"toString",()=>this.hash);this.setIdentifier(e)}setIdentifier(e){if(Qe(e))if(Yd(e))this.number=parseInt(e,10);else if($t(e))this.hash=e;else if(yk.includes(e))this.tag=e;else throw TypeError(`Block identifier unmanaged: ${e}`);else Nn(e)?this.hash=ee(e):Yr(e)?this.number=e:this.tag=lr.PENDING;if(Yr(this.number)&&this.number<0)throw TypeError(`Block number (${this.number}) can't be negative`)}get queryIdentifier(){return this.number!==null?`blockNumber=${this.number}`:this.hash!==null?`blockHash=${this.hash}`:`blockNumber=${this.tag}`}get identifier(){return this.number!==null?{block_number:this.number}:this.hash!==null?{block_hash:this.hash}:this.tag}set identifier(e){this.setIdentifier(e)}};function Pt(e){const t=e.version?ee(e.version):we.ETransactionVersion.V3;return t===we.ETransactionVersion.V3||t===we.ETransactionVersion.F3}function lf(e,t){const[n,r]=e.split("."),[a,o]=t.split(".");return n===a&&r===o}function QT(e){return e.status==="PENDING"}function eI(e){return!("block_hash"in e)}function tI(e){return!("block_hash"in e)}var nI={};Oe(nI,{buildUDCCall:()=>iI,fromCallsToExecuteCalldata:()=>df,fromCallsToExecuteCalldataWithNonce:()=>rI,fromCallsToExecuteCalldata_cairo1:()=>wk,getExecuteCalldata:()=>oI,getVersionsByType:()=>ff,transformCallsToMulticallArrays:()=>bk,transformCallsToMulticallArrays_cairo1:()=>aI});var bk=e=>{const t=[],n=[];return e.forEach(r=>{const a=xe.compile(r.calldata||[]);t.push({to:He(r.contractAddress).toString(10),selector:He(Ke(r.entrypoint)).toString(10),data_offset:n.length.toString(),data_len:a.length.toString()}),n.push(...a)}),{callArray:t,calldata:xe.compile({calldata:n})}},df=e=>{const{callArray:t,calldata:n}=bk(e);return[...xe.compile({callArray:t}),...n]},rI=(e,t)=>[...df(e),He(t).toString()],aI=e=>e.map(n=>({to:He(n.contractAddress).toString(10),selector:He(Ke(n.entrypoint)).toString(10),calldata:xe.compile(n.calldata||[])})),wk=e=>{const t=e.map(n=>({contractAddress:n.contractAddress,entrypoint:n.entrypoint,calldata:Array.isArray(n.calldata)&&"__compiled__"in n.calldata?n.calldata:xe.compile(n.calldata)}));return xe.compile({orderCalls:t})},oI=(e,t="0")=>t==="1"?wk(e):df(e);function iI(e,t){const n=[].concat(e).map(r=>{const{classHash:a,salt:o,unique:i=!0,constructorCalldata:s=[]}=r,c=xe.compile(s),u=o??pk();return{call:{contractAddress:ko.ADDRESS,entrypoint:ko.ENTRYPOINT,calldata:[a,u,Ow(i),c.length,...c]},address:ik(i?Ra(t,u):u,a,c,i?ko.ADDRESS:0)}});return{calls:n.map(r=>r.call),addresses:n.map(r=>r.address)}}function ff(e){return e==="fee"?{v1:we.ETransactionVersion.F1,v2:we.ETransactionVersion.F2,v3:we.ETransactionVersion.F3}:{v1:we.ETransactionVersion.V1,v2:we.ETransactionVersion.V2,v3:we.ETransactionVersion.V3}}var Vu={headers:{"Content-Type":"application/json"},blockIdentifier:lr.PENDING,retries:200},sI=class{constructor(e){ie(this,"nodeUrl");ie(this,"headers");ie(this,"requestId");ie(this,"blockIdentifier");ie(this,"retries");ie(this,"waitMode");ie(this,"chainId");ie(this,"specVersion");ie(this,"transactionRetryIntervalFallback");ie(this,"batchClient");ie(this,"baseFetch");const{baseFetch:t,batch:n,blockIdentifier:r,chainId:a,headers:o,nodeUrl:i,retries:s,specVersion:c,transactionRetryIntervalFallback:u,waitMode:d}=e||{};Object.values(Ps).includes(i)?this.nodeUrl=Mo(i,e==null?void 0:e.default):i?this.nodeUrl=i:this.nodeUrl=Mo(void 0,e==null?void 0:e.default),this.baseFetch=t??mk,this.blockIdentifier=r??Vu.blockIdentifier,this.chainId=a,this.headers={...Vu.headers,...o},this.retries=s??Vu.retries,this.specVersion=c,this.transactionRetryIntervalFallback=u,this.waitMode=d??!1,this.requestId=0,typeof n=="number"&&(this.batchClient=new Ew({nodeUrl:this.nodeUrl,headers:this.headers,interval:n,baseFetch:this.baseFetch}))}get transactionRetryIntervalDefault(){return this.transactionRetryIntervalFallback??5e3}setChainId(e){this.chainId=e}fetch(e,t,n=0){const r={id:n,jsonrpc:"2.0",method:e,...t&&{params:t}};return this.baseFetch(this.nodeUrl,{method:"POST",body:Vt(r),headers:this.headers})}errorHandler(e,t,n,r){if(n)throw new yw(n,e,t);if(r instanceof No)throw r;if(r)throw Error(r.message)}async fetchEndpoint(e,t){var n;try{if(this.batchClient){const{error:i,result:s}=await this.batchClient.fetch(e,t,this.requestId+=1);return this.errorHandler(e,t,i),s}const r=await this.fetch(e,t,this.requestId+=1),{error:a,result:o}=await r.json();return this.errorHandler(e,t,a),o}catch(r){throw this.errorHandler(e,t,(n=r==null?void 0:r.response)==null?void 0:n.data,r),r}}async getChainId(){return this.chainId??(this.chainId=await this.fetchEndpoint("starknet_chainId")),this.chainId}async getSpecVersion(){return this.specVersion??(this.specVersion=await this.fetchEndpoint("starknet_specVersion")),this.specVersion}getNonceForAddress(e,t=this.blockIdentifier){const n=ee(e),r=new je(t).identifier;return this.fetchEndpoint("starknet_getNonce",{contract_address:n,block_id:r})}getBlockLatestAccepted(){return this.fetchEndpoint("starknet_blockHashAndNumber")}getBlockNumber(){return this.fetchEndpoint("starknet_blockNumber")}getBlockWithTxHashes(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getBlockWithTxHashes",{block_id:t})}getBlockWithTxs(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getBlockWithTxs",{block_id:t})}getBlockStateUpdate(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getStateUpdate",{block_id:t})}getBlockTransactionsTraces(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_traceBlockTransactions",{block_id:t})}getBlockTransactionCount(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getBlockTransactionCount",{block_id:t})}getTransactionByHash(e){const t=ee(e);return this.fetchEndpoint("starknet_getTransactionByHash",{transaction_hash:t})}getTransactionByBlockIdAndIndex(e,t){const n=new je(e).identifier;return this.fetchEndpoint("starknet_getTransactionByBlockIdAndIndex",{block_id:n,index:t})}getTransactionReceipt(e){const t=ee(e);return this.fetchEndpoint("starknet_getTransactionReceipt",{transaction_hash:t})}getTransactionTrace(e){const t=ee(e);return this.fetchEndpoint("starknet_traceTransaction",{transaction_hash:t})}getTransactionStatus(e){const t=ee(e);return this.fetchEndpoint("starknet_getTransactionStatus",{transaction_hash:t})}simulateTransaction(e,t={}){const{blockIdentifier:n=this.blockIdentifier,skipValidate:r=!0,skipFeeCharge:a=!0}=t,o=new je(n).identifier,i=[];return r&&i.push(Se.ESimulationFlag.SKIP_VALIDATE),a&&i.push(Se.ESimulationFlag.SKIP_FEE_CHARGE),this.fetchEndpoint("starknet_simulateTransactions",{block_id:o,transactions:e.map(s=>this.buildTransaction(s)),simulation_flags:i})}async waitForTransaction(e,t){const n=ee(e);let{retries:r}=this,a=!1,o=!1;const i=(t==null?void 0:t.retryInterval)??this.transactionRetryIntervalDefault,s=(t==null?void 0:t.errorStates)??[Se.ETransactionStatus.REJECTED],c=(t==null?void 0:t.successStates)??[Se.ETransactionExecutionStatus.SUCCEEDED,Se.ETransactionStatus.ACCEPTED_ON_L2,Se.ETransactionStatus.ACCEPTED_ON_L1];let u;for(;!a;){await Pa(i);try{u=await this.getTransactionStatus(n);const h=u.execution_status,f=u.finality_status;if(!f)throw new Error("waiting for transaction status");if(s.includes(h)||s.includes(f)){const l=`${h}: ${f}`,g=new Error(l);throw g.response=u,o=!0,g}else(c.includes(h)||c.includes(f))&&(a=!0)}catch(h){if(h instanceof Error&&o)throw h;if(r<=0)throw new Error(`waitForTransaction timed-out with retries ${this.retries}`)}r-=1}let d=null;for(;d===null;){try{d=await this.getTransactionReceipt(n)}catch{if(r<=0)throw new Error(`waitForTransaction timed-out with retries ${this.retries}`)}r-=1,await Pa(i)}return d}getStorageAt(e,t,n=this.blockIdentifier){const r=ee(e),a=Kd(t),o=new je(n).identifier;return this.fetchEndpoint("starknet_getStorageAt",{contract_address:r,key:a,block_id:o})}getClassHashAt(e,t=this.blockIdentifier){const n=ee(e),r=new je(t).identifier;return this.fetchEndpoint("starknet_getClassHashAt",{block_id:r,contract_address:n})}getClass(e,t=this.blockIdentifier){const n=ee(e),r=new je(t).identifier;return this.fetchEndpoint("starknet_getClass",{class_hash:n,block_id:r})}getClassAt(e,t=this.blockIdentifier){const n=ee(e),r=new je(t).identifier;return this.fetchEndpoint("starknet_getClassAt",{block_id:r,contract_address:n})}async getEstimateFee(e,{blockIdentifier:t=this.blockIdentifier,skipValidate:n=!0}){const r=new je(t).identifier;let a={};return lf("0.5",await this.getSpecVersion())||(a={simulation_flags:n?[Se.ESimulationFlag.SKIP_VALIDATE]:[]}),this.fetchEndpoint("starknet_estimateFee",{request:e.map(o=>this.buildTransaction(o,"fee")),block_id:r,...a})}async invoke(e,t){let n;return Pt(t)?n=this.fetchEndpoint("starknet_addInvokeTransaction",{invoke_transaction:{type:Se.ETransactionType.INVOKE,sender_address:e.contractAddress,calldata:xe.toHex(e.calldata),version:Se.ETransactionVersion.V3,signature:Xe(e.signature),nonce:ee(t.nonce),resource_bounds:t.resourceBounds,tip:ee(t.tip),paymaster_data:t.paymasterData.map(r=>ee(r)),account_deployment_data:t.accountDeploymentData.map(r=>ee(r)),nonce_data_availability_mode:t.nonceDataAvailabilityMode,fee_data_availability_mode:t.feeDataAvailabilityMode}}):(n=this.fetchEndpoint("starknet_addInvokeTransaction",{invoke_transaction:{sender_address:e.contractAddress,calldata:xe.toHex(e.calldata),type:Se.ETransactionType.INVOKE,max_fee:ee(t.maxFee||0),version:Se.ETransactionVersion.V1,signature:Xe(e.signature),nonce:ee(t.nonce)}}),xt.warn(Zt.legacyTxWarningMessage,{version:Se.ETransactionVersion.V1,type:Se.ETransactionType.INVOKE})),this.waitMode?this.waitForTransaction((await n).transaction_hash):n}async declare({contract:e,signature:t,senderAddress:n,compiledClassHash:r},a){let o;if(!tn(e)&&!Pt(a))o=this.fetchEndpoint("starknet_addDeclareTransaction",{declare_transaction:{type:Se.ETransactionType.DECLARE,contract_class:{program:e.program,entry_points_by_type:e.entry_points_by_type,abi:e.abi},version:Se.ETransactionVersion.V1,max_fee:ee(a.maxFee||0),signature:Xe(t),sender_address:n,nonce:ee(a.nonce)}}),xt.warn(Zt.legacyTxWarningMessage,{version:Se.ETransactionVersion.V1,type:Se.ETransactionType.DECLARE});else if(tn(e)&&!Pt(a))o=this.fetchEndpoint("starknet_addDeclareTransaction",{declare_transaction:{type:Se.ETransactionType.DECLARE,contract_class:{sierra_program:Mr(e.sierra_program),contract_class_version:e.contract_class_version,entry_points_by_type:e.entry_points_by_type,abi:e.abi},compiled_class_hash:r||"",version:Se.ETransactionVersion.V2,max_fee:ee(a.maxFee||0),signature:Xe(t),sender_address:n,nonce:ee(a.nonce)}}),xt.warn(Zt.legacyTxWarningMessage,{version:Se.ETransactionVersion.V2,type:Se.ETransactionType.DECLARE});else if(tn(e)&&Pt(a))o=this.fetchEndpoint("starknet_addDeclareTransaction",{declare_transaction:{type:Se.ETransactionType.DECLARE,sender_address:n,compiled_class_hash:r||"",version:Se.ETransactionVersion.V3,signature:Xe(t),nonce:ee(a.nonce),contract_class:{sierra_program:Mr(e.sierra_program),contract_class_version:e.contract_class_version,entry_points_by_type:e.entry_points_by_type,abi:e.abi},resource_bounds:a.resourceBounds,tip:ee(a.tip),paymaster_data:a.paymasterData.map(i=>ee(i)),account_deployment_data:a.accountDeploymentData.map(i=>ee(i)),nonce_data_availability_mode:a.nonceDataAvailabilityMode,fee_data_availability_mode:a.feeDataAvailabilityMode}});else throw Error("declare unspotted parameters");return this.waitMode?this.waitForTransaction((await o).transaction_hash):o}async deployAccount({classHash:e,constructorCalldata:t,addressSalt:n,signature:r},a){let o;return Pt(a)?o=this.fetchEndpoint("starknet_addDeployAccountTransaction",{deploy_account_transaction:{type:Se.ETransactionType.DEPLOY_ACCOUNT,version:Se.ETransactionVersion.V3,signature:Xe(r),nonce:ee(a.nonce),contract_address_salt:ee(n||0),constructor_calldata:xe.toHex(t||[]),class_hash:ee(e),resource_bounds:a.resourceBounds,tip:ee(a.tip),paymaster_data:a.paymasterData.map(i=>ee(i)),nonce_data_availability_mode:a.nonceDataAvailabilityMode,fee_data_availability_mode:a.feeDataAvailabilityMode}}):(o=this.fetchEndpoint("starknet_addDeployAccountTransaction",{deploy_account_transaction:{constructor_calldata:xe.toHex(t||[]),class_hash:ee(e),contract_address_salt:ee(n||0),type:Se.ETransactionType.DEPLOY_ACCOUNT,max_fee:ee(a.maxFee||0),version:Se.ETransactionVersion.V1,signature:Xe(r),nonce:ee(a.nonce)}}),xt.warn(Zt.legacyTxWarningMessage,{version:Se.ETransactionVersion.V1,type:Se.ETransactionType.DEPLOY_ACCOUNT})),this.waitMode?this.waitForTransaction((await o).transaction_hash):o}callContract(e,t=this.blockIdentifier){const n=new je(t).identifier;return this.fetchEndpoint("starknet_call",{request:{contract_address:e.contractAddress,entry_point_selector:Ke(e.entrypoint),calldata:xe.toHex(e.calldata)},block_id:n})}estimateMessageFee(e,t=this.blockIdentifier){const{from_address:n,to_address:r,entry_point_selector:a,payload:o}=e,i={from_address:uf(n),to_address:ee(r),entry_point_selector:ni(a),payload:Wd(o)},s=new je(t).identifier;return this.fetchEndpoint("starknet_estimateMessageFee",{message:i,block_id:s})}getSyncingStats(){return this.fetchEndpoint("starknet_syncing")}getEvents(e){return this.fetchEndpoint("starknet_getEvents",{filter:e})}buildTransaction(e,t){const n=ff(t);let r;if(Pt(e)?r={signature:Xe(e.signature),nonce:ee(e.nonce),resource_bounds:e.resourceBounds,tip:ee(e.tip),paymaster_data:e.paymasterData.map(a=>ee(a)),nonce_data_availability_mode:e.nonceDataAvailabilityMode,fee_data_availability_mode:e.feeDataAvailabilityMode,account_deployment_data:e.accountDeploymentData.map(a=>ee(a))}:(r={signature:Xe(e.signature),nonce:ee(e.nonce),max_fee:ee(e.maxFee||0)},xt.warn(Zt.legacyTxWarningMessage,{version:e.version,type:e.type})),e.type===Qt.INVOKE)return{type:Se.ETransactionType.INVOKE,sender_address:e.contractAddress,calldata:xe.toHex(e.calldata),version:ee(e.version||n.v3),...r};if(e.type===Qt.DECLARE)return tn(e.contract)?{type:e.type,contract_class:{...e.contract,sierra_program:Mr(e.contract.sierra_program)},compiled_class_hash:e.compiledClassHash||"",sender_address:e.senderAddress,version:ee(e.version||n.v3),...r}:{type:e.type,contract_class:e.contract,sender_address:e.senderAddress,version:ee(e.version||n.v1),...r};if(e.type===Qt.DEPLOY_ACCOUNT){const{account_deployment_data:a,...o}=r;return{type:e.type,constructor_calldata:xe.toHex(e.constructorCalldata||[]),class_hash:ee(e.classHash),contract_address_salt:ee(e.addressSalt||0),version:ee(e.version||n.v3),...o}}throw Error("RPC buildTransaction received unknown TransactionType")}},cI={};Oe(cI,{RpcChannel:()=>kk});var $u={headers:{"Content-Type":"application/json"},blockIdentifier:lr.PENDING,retries:200},kk=class{constructor(e){ie(this,"nodeUrl");ie(this,"headers");ie(this,"requestId");ie(this,"blockIdentifier");ie(this,"retries");ie(this,"waitMode");ie(this,"chainId");ie(this,"specVersion");ie(this,"transactionRetryIntervalFallback");ie(this,"batchClient");ie(this,"baseFetch");const{baseFetch:t,batch:n,blockIdentifier:r,chainId:a,headers:o,nodeUrl:i,retries:s,specVersion:c,transactionRetryIntervalFallback:u,waitMode:d}=e||{};Object.values(Ps).includes(i)?this.nodeUrl=Mo(i,e==null?void 0:e.default):i?this.nodeUrl=i:this.nodeUrl=Mo(void 0,e==null?void 0:e.default),this.baseFetch=t??mk,this.blockIdentifier=r??$u.blockIdentifier,this.chainId=a,this.headers={...$u.headers,...o},this.retries=s??$u.retries,this.specVersion=c,this.transactionRetryIntervalFallback=u,this.waitMode=d??!1,this.requestId=0,typeof n=="number"&&(this.batchClient=new Ew({nodeUrl:this.nodeUrl,headers:this.headers,interval:n,baseFetch:this.baseFetch}))}get transactionRetryIntervalDefault(){return this.transactionRetryIntervalFallback??5e3}setChainId(e){this.chainId=e}fetch(e,t,n=0){const r={id:n,jsonrpc:"2.0",method:e,...t&&{params:t}};return this.baseFetch(this.nodeUrl,{method:"POST",body:Vt(r),headers:this.headers})}errorHandler(e,t,n,r){if(n)throw new yw(n,e,t);if(r instanceof No)throw r;if(r)throw Error(r.message)}async fetchEndpoint(e,t){var n;try{if(this.batchClient){const{error:i,result:s}=await this.batchClient.fetch(e,t,this.requestId+=1);return this.errorHandler(e,t,i),s}const r=await this.fetch(e,t,this.requestId+=1),{error:a,result:o}=await r.json();return this.errorHandler(e,t,a),o}catch(r){throw this.errorHandler(e,t,(n=r==null?void 0:r.response)==null?void 0:n.data,r),r}}async getChainId(){return this.chainId??(this.chainId=await this.fetchEndpoint("starknet_chainId")),this.chainId}async getSpecVersion(){return this.specVersion??(this.specVersion=await this.fetchEndpoint("starknet_specVersion")),this.specVersion}getNonceForAddress(e,t=this.blockIdentifier){const n=ee(e),r=new je(t).identifier;return this.fetchEndpoint("starknet_getNonce",{contract_address:n,block_id:r})}getBlockLatestAccepted(){return this.fetchEndpoint("starknet_blockHashAndNumber")}getBlockNumber(){return this.fetchEndpoint("starknet_blockNumber")}getBlockWithTxHashes(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getBlockWithTxHashes",{block_id:t})}getBlockWithTxs(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getBlockWithTxs",{block_id:t})}getBlockWithReceipts(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getBlockWithReceipts",{block_id:t})}getBlockStateUpdate(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getStateUpdate",{block_id:t})}getBlockTransactionsTraces(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_traceBlockTransactions",{block_id:t})}getBlockTransactionCount(e=this.blockIdentifier){const t=new je(e).identifier;return this.fetchEndpoint("starknet_getBlockTransactionCount",{block_id:t})}getTransactionByHash(e){const t=ee(e);return this.fetchEndpoint("starknet_getTransactionByHash",{transaction_hash:t})}getTransactionByBlockIdAndIndex(e,t){const n=new je(e).identifier;return this.fetchEndpoint("starknet_getTransactionByBlockIdAndIndex",{block_id:n,index:t})}getTransactionReceipt(e){const t=ee(e);return this.fetchEndpoint("starknet_getTransactionReceipt",{transaction_hash:t})}getTransactionTrace(e){const t=ee(e);return this.fetchEndpoint("starknet_traceTransaction",{transaction_hash:t})}getTransactionStatus(e){const t=ee(e);return this.fetchEndpoint("starknet_getTransactionStatus",{transaction_hash:t})}simulateTransaction(e,t={}){const{blockIdentifier:n=this.blockIdentifier,skipValidate:r=!0,skipFeeCharge:a=!0}=t,o=new je(n).identifier,i=[];return r&&i.push(ho.SKIP_VALIDATE),a&&i.push(ho.SKIP_FEE_CHARGE),this.fetchEndpoint("starknet_simulateTransactions",{block_id:o,transactions:e.map(s=>this.buildTransaction(s)),simulation_flags:i})}async waitForTransaction(e,t){const n=ee(e);let{retries:r}=this,a=!1,o=!1;const i=(t==null?void 0:t.retryInterval)??this.transactionRetryIntervalDefault,s=(t==null?void 0:t.errorStates)??[mo.REJECTED],c=(t==null?void 0:t.successStates)??[Ql.SUCCEEDED,mo.ACCEPTED_ON_L2,mo.ACCEPTED_ON_L1];let u;for(;!a;){await Pa(i);try{u=await this.getTransactionStatus(n);const h=u.execution_status,f=u.finality_status;if(!f)throw new Error("waiting for transaction status");if(s.includes(h)||s.includes(f)){const l=`${h}: ${f}`,g=new Error(l);throw g.response=u,o=!0,g}else(c.includes(h)||c.includes(f))&&(a=!0)}catch(h){if(h instanceof Error&&o)throw h;if(r<=0)throw new Error(`waitForTransaction timed-out with retries ${this.retries}`)}r-=1}let d=null;for(;d===null;){try{d=await this.getTransactionReceipt(n)}catch{if(r<=0)throw new Error(`waitForTransaction timed-out with retries ${this.retries}`)}r-=1,await Pa(i)}return d}getStorageAt(e,t,n=this.blockIdentifier){const r=ee(e),a=Kd(t),o=new je(n).identifier;return this.fetchEndpoint("starknet_getStorageAt",{contract_address:r,key:a,block_id:o})}getClassHashAt(e,t=this.blockIdentifier){const n=ee(e),r=new je(t).identifier;return this.fetchEndpoint("starknet_getClassHashAt",{block_id:r,contract_address:n})}getClass(e,t=this.blockIdentifier){const n=ee(e),r=new je(t).identifier;return this.fetchEndpoint("starknet_getClass",{class_hash:n,block_id:r})}getClassAt(e,t=this.blockIdentifier){const n=ee(e),r=new je(t).identifier;return this.fetchEndpoint("starknet_getClassAt",{block_id:r,contract_address:n})}async getEstimateFee(e,{blockIdentifier:t=this.blockIdentifier,skipValidate:n=!0}){const r=new je(t).identifier;let a={};return lf("0.5",await this.getSpecVersion())||(a={simulation_flags:n?[ho.SKIP_VALIDATE]:[]}),this.fetchEndpoint("starknet_estimateFee",{request:e.map(o=>this.buildTransaction(o,"fee")),block_id:r,...a})}async invoke(e,t){let n;return Pt(t)?n=this.fetchEndpoint("starknet_addInvokeTransaction",{invoke_transaction:{type:Et.INVOKE,sender_address:e.contractAddress,calldata:xe.toHex(e.calldata),version:Ct.V3,signature:Xe(e.signature),nonce:ee(t.nonce),resource_bounds:t.resourceBounds,tip:ee(t.tip),paymaster_data:t.paymasterData.map(r=>ee(r)),account_deployment_data:t.accountDeploymentData.map(r=>ee(r)),nonce_data_availability_mode:t.nonceDataAvailabilityMode,fee_data_availability_mode:t.feeDataAvailabilityMode}}):(n=this.fetchEndpoint("starknet_addInvokeTransaction",{invoke_transaction:{sender_address:e.contractAddress,calldata:xe.toHex(e.calldata),type:Et.INVOKE,max_fee:ee(t.maxFee||0),version:Ct.V1,signature:Xe(e.signature),nonce:ee(t.nonce)}}),xt.warn(Zt.legacyTxWarningMessage,{version:Ct.V1,type:Et.INVOKE})),this.waitMode?this.waitForTransaction((await n).transaction_hash):n}async declare({contract:e,signature:t,senderAddress:n,compiledClassHash:r},a){let o;if(!tn(e)&&!Pt(a))o=this.fetchEndpoint("starknet_addDeclareTransaction",{declare_transaction:{type:Et.DECLARE,contract_class:{program:e.program,entry_points_by_type:e.entry_points_by_type,abi:e.abi},version:Ct.V1,max_fee:ee(a.maxFee||0),signature:Xe(t),sender_address:n,nonce:ee(a.nonce)}}),xt.warn(Zt.legacyTxWarningMessage,{version:Ct.V1,type:Et.DECLARE});else if(tn(e)&&!Pt(a))o=this.fetchEndpoint("starknet_addDeclareTransaction",{declare_transaction:{type:Et.DECLARE,contract_class:{sierra_program:Mr(e.sierra_program),contract_class_version:e.contract_class_version,entry_points_by_type:e.entry_points_by_type,abi:e.abi},compiled_class_hash:r||"",version:Ct.V2,max_fee:ee(a.maxFee||0),signature:Xe(t),sender_address:n,nonce:ee(a.nonce)}}),xt.warn(Zt.legacyTxWarningMessage,{version:Ct.V2,type:Et.DECLARE});else if(tn(e)&&Pt(a))o=this.fetchEndpoint("starknet_addDeclareTransaction",{declare_transaction:{type:Et.DECLARE,sender_address:n,compiled_class_hash:r||"",version:Ct.V3,signature:Xe(t),nonce:ee(a.nonce),contract_class:{sierra_program:Mr(e.sierra_program),contract_class_version:e.contract_class_version,entry_points_by_type:e.entry_points_by_type,abi:e.abi},resource_bounds:a.resourceBounds,tip:ee(a.tip),paymaster_data:a.paymasterData.map(i=>ee(i)),account_deployment_data:a.accountDeploymentData.map(i=>ee(i)),nonce_data_availability_mode:a.nonceDataAvailabilityMode,fee_data_availability_mode:a.feeDataAvailabilityMode}});else throw Error("declare unspotted parameters");return this.waitMode?this.waitForTransaction((await o).transaction_hash):o}async deployAccount({classHash:e,constructorCalldata:t,addressSalt:n,signature:r},a){let o;return Pt(a)?o=this.fetchEndpoint("starknet_addDeployAccountTransaction",{deploy_account_transaction:{type:Et.DEPLOY_ACCOUNT,version:Ct.V3,signature:Xe(r),nonce:ee(a.nonce),contract_address_salt:ee(n||0),constructor_calldata:xe.toHex(t||[]),class_hash:ee(e),resource_bounds:a.resourceBounds,tip:ee(a.tip),paymaster_data:a.paymasterData.map(i=>ee(i)),nonce_data_availability_mode:a.nonceDataAvailabilityMode,fee_data_availability_mode:a.feeDataAvailabilityMode}}):(o=this.fetchEndpoint("starknet_addDeployAccountTransaction",{deploy_account_transaction:{constructor_calldata:xe.toHex(t||[]),class_hash:ee(e),contract_address_salt:ee(n||0),type:Et.DEPLOY_ACCOUNT,max_fee:ee(a.maxFee||0),version:Ct.V1,signature:Xe(r),nonce:ee(a.nonce)}}),xt.warn(Zt.legacyTxWarningMessage,{version:Ct.V1,type:Et.DEPLOY_ACCOUNT})),this.waitMode?this.waitForTransaction((await o).transaction_hash):o}callContract(e,t=this.blockIdentifier){const n=new je(t).identifier;return this.fetchEndpoint("starknet_call",{request:{contract_address:e.contractAddress,entry_point_selector:Ke(e.entrypoint),calldata:xe.toHex(e.calldata)},block_id:n})}estimateMessageFee(e,t=this.blockIdentifier){const{from_address:n,to_address:r,entry_point_selector:a,payload:o}=e,i={from_address:uf(n),to_address:ee(r),entry_point_selector:ni(a),payload:Wd(o)},s=new je(t).identifier;return this.fetchEndpoint("starknet_estimateMessageFee",{message:i,block_id:s})}getSyncingStats(){return this.fetchEndpoint("starknet_syncing")}getEvents(e){return this.fetchEndpoint("starknet_getEvents",{filter:e})}buildTransaction(e,t){const n=ff(t);let r;if(Pt(e)?r={signature:Xe(e.signature),nonce:ee(e.nonce),resource_bounds:e.resourceBounds,tip:ee(e.tip),paymaster_data:e.paymasterData.map(a=>ee(a)),nonce_data_availability_mode:e.nonceDataAvailabilityMode,fee_data_availability_mode:e.feeDataAvailabilityMode,account_deployment_data:e.accountDeploymentData.map(a=>ee(a))}:(r={signature:Xe(e.signature),nonce:ee(e.nonce),max_fee:ee(e.maxFee||0)},xt.warn(Zt.legacyTxWarningMessage,{version:e.version,type:e.type})),e.type===Qt.INVOKE)return{type:Et.INVOKE,sender_address:e.contractAddress,calldata:xe.toHex(e.calldata),version:ee(e.version||n.v3),...r};if(e.type===Qt.DECLARE)return tn(e.contract)?{type:e.type,contract_class:{...e.contract,sierra_program:Mr(e.contract.sierra_program)},compiled_class_hash:e.compiledClassHash||"",sender_address:e.senderAddress,version:ee(e.version||n.v3),...r}:{type:e.type,contract_class:e.contract,sender_address:e.senderAddress,version:ee(e.version||n.v1),...r};if(e.type===Qt.DEPLOY_ACCOUNT){const{account_deployment_data:a,...o}=r;return{type:e.type,constructor_calldata:xe.toHex(e.constructorCalldata||[]),class_hash:ee(e.classHash),contract_address_salt:ee(e.addressSalt||0),version:ee(e.version||n.v3),...o}}throw Error("RPC buildTransaction received unknown TransactionType")}},jm=class{constructor(e){ie(this,"margin");this.margin=e}estimatedFeeToMaxFee(e){var t;return hk(e,(t=this.margin)==null?void 0:t.maxFee)}estimateFeeToBounds(e){var t,n;return cf(e,(t=this.margin)==null?void 0:t.l1BoundMaxAmount,(n=this.margin)==null?void 0:n.l1BoundMaxPricePerUnit)}parseGetBlockResponse(e){return{status:"PENDING",...e}}parseTransactionReceipt(e){return"actual_fee"in e&&Qe(e.actual_fee)?{...e,actual_fee:{amount:e.actual_fee,unit:"FRI"}}:e}parseFeeEstimateResponse(e){const t=e[0];return{overall_fee:He(t.overall_fee),gas_consumed:He(t.gas_consumed),gas_price:He(t.gas_price),unit:t.unit,suggestedMaxFee:this.estimatedFeeToMaxFee(t.overall_fee),resourceBounds:this.estimateFeeToBounds(t),data_gas_consumed:t.data_gas_consumed?He(t.data_gas_consumed):0n,data_gas_price:t.data_gas_price?He(t.data_gas_price):0n}}parseFeeEstimateBulkResponse(e){return e.map(t=>({overall_fee:He(t.overall_fee),gas_consumed:He(t.gas_consumed),gas_price:He(t.gas_price),unit:t.unit,suggestedMaxFee:this.estimatedFeeToMaxFee(t.overall_fee),resourceBounds:this.estimateFeeToBounds(t),data_gas_consumed:t.data_gas_consumed?He(t.data_gas_consumed):0n,data_gas_price:t.data_gas_price?He(t.data_gas_price):0n}))}parseSimulateTransactionResponse(e){return e.map(t=>({...t,suggestedMaxFee:this.estimatedFeeToMaxFee(t.fee_estimation.overall_fee),resourceBounds:this.estimateFeeToBounds(t.fee_estimation)}))}parseContractClassResponse(e){return{...e,abi:Qe(e.abi)?JSON.parse(e.abi):e.abi}}parseL1GasPriceResponse(e){return e.l1_gas_price.price_in_wei}},xm=class Yi{constructor(t){ie(this,"statusReceipt");ie(this,"value");[this.statusReceipt,this.value]=Yi.isSuccess(t)?["success",t]:Yi.isReverted(t)?["reverted",t]:Yi.isRejected(t)?["rejected",t]:["error",new Error("Unknown response type")];for(const[n]of Object.entries(this))Object.defineProperty(this,n,{enumerable:!1});for(const[n,r]of Object.entries(t))Object.defineProperty(this,n,{enumerable:!0,writable:!1,value:r})}match(t){return this.statusReceipt in t?t[this.statusReceipt](this.value):t._()}isSuccess(){return this.statusReceipt==="success"}isReverted(){return this.statusReceipt==="reverted"}isRejected(){return this.statusReceipt==="rejected"}isError(){return this.statusReceipt==="error"}static isSuccess(t){return t.execution_status===Xi.SUCCEEDED}static isReverted(t){return t.execution_status===Xi.REVERTED}static isRejected(t){return t.status===Xi.REJECTED}},_k={};Oe(_k,{TypedDataRevision:()=>Ie,encodeData:()=>Tk,encodeType:()=>jk,encodeValue:()=>vo,getDependencies:()=>hf,getMessageHash:()=>mf,getStructHash:()=>qo,getTypeHash:()=>xk,isMerkleTreeType:()=>Sk,prepareSelector:()=>Ak,validateTypedData:()=>$s,verifyMessage:()=>fI});var uI={};Oe(uI,{MerkleTree:()=>pf,proofMerklePath:()=>vk});var pf=class Ji{constructor(t,n=Do){ie(this,"leaves");ie(this,"branches",[]);ie(this,"root");ie(this,"hashMethod");this.hashMethod=n,this.leaves=t,this.root=this.build(t)}build(t){if(t.length===1)return t[0];t.length!==this.leaves.length&&this.branches.push(t);const n=[];for(let r=0;r<t.length;r+=2)r+1===t.length?n.push(Ji.hash(t[r],"0x0",this.hashMethod)):n.push(Ji.hash(t[r],t[r+1],this.hashMethod));return this.build(n)}static hash(t,n,r=Do){const[a,o]=[BigInt(t),BigInt(n)].sort((i,s)=>i>=s?1:-1);return r(a,o)}getProof(t,n=this.leaves,r=[]){const a=n.indexOf(t);if(a===-1)throw new Error("leaf not found");if(n.length===1)return r;const o=a%2===0,i=(o?n[a+1]:n[a-1])??"0x0",s=[...r,i],c=this.leaves.length===n.length?-1:this.branches.findIndex(d=>d.length===n.length),u=this.branches[c+1]??[this.root];return this.getProof(Ji.hash(o?t:i,o?i:t,this.hashMethod),u,s)}};function vk(e,t,n,r=Do){if(n.length===0)return e===t;const[a,...o]=n;return vk(e,pf.hash(t,a,r),o,r)}var lI={u256:JSON.parse('[{ "name": "low", "type": "u128" }, { "name": "high", "type": "u128" }]'),TokenAmount:JSON.parse('[{ "name": "token_address", "type": "ContractAddress" }, { "name": "amount", "type": "u256" }]'),NftId:JSON.parse('[{ "name": "collection_address", "type": "ContractAddress" }, { "name": "token_id", "type": "u256" }]')},Rt={[Ie.ACTIVE]:{domain:"StarknetDomain",hashMethod:ok,hashMerkleMethod:rk,escapeTypeString:e=>`"${e}"`,presetTypes:lI},[Ie.LEGACY]:{domain:"StarkNetDomain",hashMethod:ak,hashMerkleMethod:Do,escapeTypeString:e=>e,presetTypes:{}}};function Ci(e,t,{min:n,max:r}){const a=BigInt(e);be(a>=n&&a<=r,`${a} (${t}) is out of bounds [${n}, ${r}]`)}function Ek({types:e,domain:t}){if(Rt[Ie.ACTIVE].domain in e&&t.revision===Ie.ACTIVE)return Ie.ACTIVE;if(Rt[Ie.LEGACY].domain in e&&(t.revision??Ie.LEGACY)===Ie.LEGACY)return Ie.LEGACY}function sn(e){try{return ee(e)}catch{if(Qe(e))return ee(rt(e));throw new Error(`Invalid BigNumberish: ${e}`)}}function $s(e){const t=e;return!!(t.message&&t.primaryType&&t.types&&Ek(t))}function Ak(e){return $t(e)?e:Ke(e)}function Sk(e){return e.type==="merkletree"}function hf(e,t,n=[],r="",a=Ie.LEGACY){let o=[t];return t[t.length-1]==="*"?o=[t.slice(0,-1)]:a===Ie.ACTIVE&&(t==="enum"?o=[r]:t.match(/^\(.*\)$/)&&(o=t.slice(1,-1).split(",").map(i=>i[i.length-1]==="*"?i.slice(0,-1):i))),o.filter(i=>!n.includes(i)&&e[i]).reduce((i,s)=>[...i,...[s,...e[s].reduce((c,u)=>[...c,...hf(e,u.type,c,u.contains,a).filter(d=>!c.includes(d))],[])].filter(c=>!i.includes(c))],[])}function dI(e,t){if(t.parent&&t.key){const r=e[t.parent].find(o=>o.name===t.key);if(!Sk(r))throw new Error(`${t.key} is not a merkle tree`);if(r.contains.endsWith("*"))throw new Error(`Merkle tree contain property must not be an array but was given ${t.key}`);return r.contains}return"raw"}function jk(e,t,n=Ie.LEGACY){const r=n===Ie.ACTIVE?{...e,...Rt[n].presetTypes}:e,[a,...o]=hf(r,t,void 0,void 0,n),i=a?[a,...o.sort()]:[],s=Rt[n].escapeTypeString;return i.map(c=>{const u=r[c].map(d=>{const h=d.type==="enum"&&n===Ie.ACTIVE?d.contains:d.type,f=h.match(/^\(.*\)$/)?`(${h.slice(1,-1).split(",").map(l=>l&&s(l)).join(",")})`:s(h);return`${s(d.name)}:${f}`});return`${s(c)}(${u})`}).join("")}function xk(e,t,n=Ie.LEGACY){return Ke(jk(e,t,n))}function vo(e,t,n,r={},a=Ie.LEGACY){if(e[t])return[t,qo(e,t,n,a)];if(Rt[a].presetTypes[t])return[t,qo(Rt[a].presetTypes,t,n,a)];if(t.endsWith("*")){const o=n.map(i=>vo(e,t.slice(0,-1),i,void 0,a)[1]);return[t,Rt[a].hashMethod(o)]}switch(t){case"enum":{if(a===Ie.ACTIVE){const[o,i]=Object.entries(n)[0],s=e[r.parent].find(f=>f.name===r.key),c=e[s.contains],u=c.find(f=>f.name===o),d=c.indexOf(u),h=u.type.slice(1,-1).split(",").map((f,l)=>{if(!f)return f;const g=i[l];return vo(e,f,g,void 0,a)[1]});return[t,Rt[a].hashMethod([d,...h])]}return[t,sn(n)]}case"merkletree":{const o=dI(e,r),i=n.map(c=>vo(e,o,c,void 0,a)[1]),{root:s}=new pf(i,Rt[a].hashMerkleMethod);return["felt",s]}case"selector":return["felt",Ak(n)];case"string":{if(a===Ie.ACTIVE){const o=Us(n),i=[o.data.length,...o.data,o.pending_word,o.pending_word_len];return[t,Rt[a].hashMethod(i)]}return[t,sn(n)]}case"i128":{if(a===Ie.ACTIVE){const o=BigInt(n);return Ci(o,t,cw),[t,sn(o<0n?Vd+o:o)]}return[t,sn(n)]}case"timestamp":case"u128":return a===Ie.ACTIVE&&Ci(n,t,uw),[t,sn(n)];case"felt":case"shortstring":return a===Ie.ACTIVE&&Ci(sn(n),t,Nl),[t,sn(n)];case"ClassHash":case"ContractAddress":return a===Ie.ACTIVE&&Ci(n,t,Nl),[t,sn(n)];case"bool":return a===Ie.ACTIVE&&be(Gd(n),`Type mismatch for ${t} ${n}`),[t,sn(n)];default:{if(a===Ie.ACTIVE)throw new Error(`Unsupported type: ${t}`);return[t,sn(n)]}}}function Tk(e,t,n,r=Ie.LEGACY){const a=e[t]??Rt[r].presetTypes[t],[o,i]=a.reduce(([s,c],u)=>{if(n[u.name]===void 0||n[u.name]===null&&u.type!=="enum")throw new Error(`Cannot encode data: missing data for '${u.name}'`);const d=n[u.name],h={parent:t,key:u.name},[f,l]=vo(e,u.type,d,h,r);return[[...s,f],[...c,l]]},[["felt"],[xk(e,t,r)]]);return[o,i]}function qo(e,t,n,r=Ie.LEGACY){return Rt[r].hashMethod(Tk(e,t,n,r)[1])}function mf(e,t){if(!$s(e))throw new Error("Typed data does not match JSON schema");const n=Ek(e),{domain:r,hashMethod:a}=Rt[n],o=[rt("StarkNet Message"),qo(e.types,r,e.domain,n),t,qo(e.types,e.primaryType,e.message,n)];return a(o)}function fI(e,t,n,r){const a=$s(e);if(!Ho(e)&&!a)throw new Error("message has a wrong format.");if(a&&r===void 0)throw new Error("When providing a TypedData in message parameter, the accountAddress parameter has to be provided.");if(a&&!Ho(r))throw new Error("accountAddress shall be a BigNumberish");const o=a?mf(e,r):ee(e),i=Array.isArray(t)?new go(BigInt(t[0]),BigInt(t[1])):t,s=ee(n);return u0(i,o,s)}var Ik=class{constructor(e){ie(this,"responseParser");ie(this,"channel");ie(this,"getStateUpdate",this.getBlockStateUpdate);e&&"channel"in e?(this.channel=e.channel,this.responseParser="responseParser"in e?e.responseParser:new jm):(this.channel=new kk({...e,waitMode:!1}),this.responseParser=new jm(e==null?void 0:e.feeMarginPercentage))}fetch(e,t,n=0){return this.channel.fetch(e,t,n)}async getChainId(){return this.channel.getChainId()}async getSpecVersion(){return this.channel.getSpecVersion()}async getNonceForAddress(e,t){return this.channel.getNonceForAddress(e,t)}async getBlock(e){return this.channel.getBlockWithTxHashes(e).then(this.responseParser.parseGetBlockResponse)}async getBlockLatestAccepted(){return this.channel.getBlockLatestAccepted()}async getBlockNumber(){return this.channel.getBlockNumber()}async getBlockWithTxHashes(e){return this.channel.getBlockWithTxHashes(e)}async getBlockWithTxs(e){return this.channel.getBlockWithTxs(e)}async waitForBlock(e="pending",t=5e3){if(e===lr.LATEST)return;const n=await this.getBlockNumber(),r=e===lr.PENDING?n+1:Number(ee(e));if(r<=n)return;const{retries:a}=this.channel;let o=a,i=!1;for(;!i;)if(await this.getBlockNumber()===r?i=!0:await Pa(t),o-=1,o<=0)throw new Error(`waitForBlock() timed-out after ${a} tries.`)}async getL1GasPrice(e){return this.channel.getBlockWithTxHashes(e).then(this.responseParser.parseL1GasPriceResponse)}async getL1MessageHash(e){const t=await this.channel.getTransactionByHash(e);be(t.type==="L1_HANDLER","This L2 transaction is not a L1 message.");const{calldata:n,contract_address:r,entry_point_selector:a,nonce:o}=t,i=[n[0],r,o,a,n.length-1,...n.slice(1)];return Ns(i)}async getBlockWithReceipts(e){if(this.channel instanceof gw.RpcChannel)throw new No("Unsupported method for RPC version");return this.channel.getBlockWithReceipts(e)}async getBlockStateUpdate(e){return this.channel.getBlockStateUpdate(e)}async getBlockTransactionsTraces(e){return this.channel.getBlockTransactionsTraces(e)}async getBlockTransactionCount(e){return this.channel.getBlockTransactionCount(e)}async getPendingTransactions(){const{transactions:e}=await this.getBlockWithTxHashes(lr.PENDING).then(this.responseParser.parseGetBlockResponse);return Promise.all(e.map(t=>this.getTransactionByHash(t)))}async getTransaction(e){return this.channel.getTransactionByHash(e)}async getTransactionByHash(e){return this.channel.getTransactionByHash(e)}async getTransactionByBlockIdAndIndex(e,t){return this.channel.getTransactionByBlockIdAndIndex(e,t)}async getTransactionReceipt(e){const t=await this.channel.getTransactionReceipt(e),n=this.responseParser.parseTransactionReceipt(t);return new xm(n)}async getTransactionTrace(e){return this.channel.getTransactionTrace(e)}async getTransactionStatus(e){return this.channel.getTransactionStatus(e)}async getSimulateTransaction(e,t){return this.channel.simulateTransaction(e,t).then(n=>this.responseParser.parseSimulateTransactionResponse(n))}async waitForTransaction(e,t){const n=await this.channel.waitForTransaction(e,t);return new xm(n)}async getStorageAt(e,t,n){return this.channel.getStorageAt(e,t,n)}async getClassHashAt(e,t){return this.channel.getClassHashAt(e,t)}async getClassByHash(e){return this.getClass(e)}async getClass(e,t){return this.channel.getClass(e,t).then(this.responseParser.parseContractClassResponse)}async getClassAt(e,t){return this.channel.getClassAt(e,t).then(this.responseParser.parseContractClassResponse)}async getContractVersion(e,t,{blockIdentifier:n=this.channel.blockIdentifier,compiler:r=!0}={}){let a;if(e)a=await this.getClassAt(e,n);else if(t)a=await this.getClass(t,n);else throw Error("getContractVersion require contractAddress or classHash");return tn(a)?r?{cairo:"1",compiler:nf(a.abi).compiler}:{cairo:"1",compiler:void 0}:{cairo:"0",compiler:"0"}}async getEstimateFee(e,t,n,r){return this.getInvokeEstimateFee(e,t,n,r)}async getInvokeEstimateFee(e,t,n,r){return this.channel.getEstimateFee([{type:Qt.INVOKE,...e,...t}],{blockIdentifier:n,skipValidate:r}).then(a=>this.responseParser.parseFeeEstimateResponse(a))}async getDeclareEstimateFee(e,t,n,r){return this.channel.getEstimateFee([{type:Qt.DECLARE,...e,...t}],{blockIdentifier:n,skipValidate:r}).then(a=>this.responseParser.parseFeeEstimateResponse(a))}async getDeployAccountEstimateFee(e,t,n,r){return this.channel.getEstimateFee([{type:Qt.DEPLOY_ACCOUNT,...e,...t}],{blockIdentifier:n,skipValidate:r}).then(a=>this.responseParser.parseFeeEstimateResponse(a))}async getEstimateFeeBulk(e,t){return this.channel.getEstimateFee(e,t).then(n=>this.responseParser.parseFeeEstimateBulkResponse(n))}async invokeFunction(e,t){return this.channel.invoke(e,t)}async declareContract(e,t){return this.channel.declare(e,t)}async deployAccountContract(e,t){return this.channel.deployAccount(e,t)}async callContract(e,t){return this.channel.callContract(e,t)}async estimateMessageFee(e,t){return this.channel.estimateMessageFee(e,t)}async getSyncingStats(){return this.channel.getSyncingStats()}async getEvents(e){return this.channel.getEvents(e)}async verifyMessageInStarknet(e,t,n,r,a){const o=$s(e);if(!Ho(e)&&!o)throw new Error("message has a wrong format.");if(!Ho(n))throw new Error("accountAddress shall be a BigNumberish");const i=o?mf(e,n):ee(e),s=r?[r]:["isValidSignature","is_valid_signature"],c=a||{okResponse:[],nokResponse:["0x0","0x00"],error:["argent/invalid-signature","is invalid, with respect to the public key","INVALID_SIG"]};let u;for(const d of s)try{const h=await this.callContract({contractAddress:ee(n),entrypoint:d,calldata:xe.compile({hash:He(i).toString(),signature:ui(t)})});if(c.nokResponse.includes(h[0].toString()))return!1;if(c.okResponse.length===0||c.okResponse.includes(h[0].toString()))return!0;throw Error("signatureVerificationResponse Error: response is not part of known responses")}catch(h){if(c.error.some(f=>h.message.includes(f)))return!1;u=h}throw Error(`Signature verification Error: ${u}`)}async isClassDeclared(e,t){let n;if(!e.classHash&&"contract"in e)n=$T(e).classHash;else if(e.classHash)n=e.classHash;else throw Error("contractClassIdentifier type not satisfied");try{return await this.getClass(n,t)instanceof Object}catch(r){if(r instanceof No)return!1;throw r}}async prepareInvocations(e){const t=[];for(const n of e)n.type===Qt.DECLARE?await this.isClassDeclared("payload"in n?n.payload:n)||t.unshift(n):t.push(n);return t}},pI={};Oe(pI,{StarknetIdContract:()=>$l,StarknetIdIdentityContract:()=>Gl,StarknetIdMulticallContract:()=>Kl,StarknetIdPfpContract:()=>Xl,StarknetIdPopContract:()=>Zl,StarknetIdVerifierContract:()=>Wl,dynamicCallData:()=>Ee,dynamicFelt:()=>st,execution:()=>cn,getStarknetIdContract:()=>Qi,getStarknetIdIdentityContract:()=>Ok,getStarknetIdMulticallContract:()=>Bk,getStarknetIdPfpContract:()=>Pk,getStarknetIdPopContract:()=>Rk,getStarknetIdVerifierContract:()=>zk,isStarkDomain:()=>Nk,useDecoded:()=>Vl,useEncoded:()=>Ck});var mn="abcdefghijklmnopqrstuvwxyz0123456789-",ba=BigInt(mn.length+1),nt="这来",Tm=BigInt(mn.length),Ml=BigInt(nt.length),Im=BigInt(nt.length+1);function ql(e){let t=0;for(;e.endsWith(nt[nt.length-1]);)e=e.substring(0,e.length-1),t+=1;return[e,t]}function Vl(e){let t="";return e.forEach(n=>{for(;n!==Pn;){const o=n%ba;if(n/=ba,o===BigInt(mn.length)){const i=n/Im;if(i===Pn){const s=n%Im;n=i,s===Pn?t+=mn[0]:t+=nt[Number(s)-1]}else{const s=n%Ml;t+=nt[Number(s)],n/=Ml}}else t+=mn[Number(o)]}const[r,a]=ql(t);a&&(t=r+(a%2===0?nt[nt.length-1].repeat(a/2-1)+nt[0]+mn[1]:nt[nt.length-1].repeat((a-1)/2+1))),t+="."}),t&&t.concat("stark")}function Ck(e){let t=BigInt(0),n=BigInt(1);if(e.endsWith(nt[0]+mn[1])){const[r,a]=ql(e.substring(0,e.length-2));e=r+nt[nt.length-1].repeat(2*(a+1))}else{const[r,a]=ql(e);a&&(e=r+nt[nt.length-1].repeat(1+2*(a-1)))}for(let r=0;r<e.length;r+=1){const a=e[r],o=mn.indexOf(a),i=BigInt(mn.indexOf(a));if(o!==-1)r===e.length-1&&e[r]===mn[0]?(t+=n*Tm,n*=ba,n*=ba):(t+=n*i,n*=ba);else if(nt.indexOf(a)!==-1){t+=n*Tm,n*=ba;const s=(r===e.length-1?1:0)+nt.indexOf(a);t+=n*BigInt(s),n*=Ml}}return t}var $l={MAINNET:"0x6ac597f8116f886fa1c97a23fa4e08299975ecaf6b598873ca6792b9bbfb678",TESTNET_SEPOLIA:"0x154bc2e1af9260b9e66af0e9c46fc757ff893b3ff6a85718a810baf1474"};function Qi(e){switch(e){case"0x534e5f4d41494e":return $l.MAINNET;case"0x534e5f5345504f4c4941":return $l.TESTNET_SEPOLIA;default:throw new Error("Starknet.id is not yet deployed on this network")}}var Gl={MAINNET:"0x05dbdedc203e92749e2e746e2d40a768d966bd243df04a6b712e222bc040a9af",TESTNET_SEPOLIA:"0x3697660a0981d734780731949ecb2b4a38d6a58fc41629ed611e8defda"};function Ok(e){switch(e){case"0x534e5f4d41494e":return Gl.MAINNET;case"0x534e5f5345504f4c4941":return Gl.TESTNET_SEPOLIA;default:throw new Error("Starknet.id verifier contract is not yet deployed on this network")}}var Kl="0x034ffb8f4452df7a613a0210824d6414dbadcddce6c6e19bf4ddc9e22ce5f970";function Bk(e){switch(e){case"0x534e5f4d41494e":return Kl;case"0x534e5f5345504f4c4941":return Kl;default:throw new Error("Starknet.id multicall contract is not yet deployed on this network")}}var Wl={MAINNET:"0x07d14dfd8ee95b41fce179170d88ba1f0d5a512e13aeb232f19cfeec0a88f8bf",TESTNET_SEPOLIA:"0x60B94fEDe525f815AE5E8377A463e121C787cCCf3a36358Aa9B18c12c4D566"};function zk(e){switch(e){case"0x534e5f4d41494e":return Wl.MAINNET;case"0x534e5f5345504f4c4941":return Wl.TESTNET_SEPOLIA;default:throw new Error("Starknet.id verifier contract is not yet deployed on this network")}}var Xl={MAINNET:"0x070aaa20ec4a46da57c932d9fd89ca5e6bb9ca3188d3df361a32306aff7d59c7",TESTNET_SEPOLIA:"0x9e7bdb8dabd02ea8cfc23b1d1c5278e46490f193f87516ed5ff2dfec02"};function Pk(e){switch(e){case"0x534e5f4d41494e":return Xl.MAINNET;case"0x534e5f5345504f4c4941":return Xl.TESTNET_SEPOLIA;default:throw new Error("Starknet.id profile picture verifier contract is not yet deployed on this network")}}var Zl={MAINNET:"0x0293eb2ba9862f762bd3036586d5755a782bd22e6f5028320f1d0405fd47bff4",TESTNET_SEPOLIA:"0x15ae88ae054caa74090b89025c1595683f12edf7a4ed2ad0274de3e1d4a"};function Rk(e){switch(e){case"0x534e5f4d41494e":return Zl.MAINNET;case"0x534e5f5345504f4c4941":return Zl.TESTNET_SEPOLIA;default:throw new Error("Starknet.id proof of personhood verifier contract is not yet deployed on this network")}}function cn(e,t=void 0,n=void 0){return new si({Static:e,IfEqual:t?za(t[0],t[1],t[2]):void 0,IfNotEqual:n?za(n[0],n[1],n[2]):void 0})}function st(e,t=void 0){return new si({Hardcoded:e,Reference:t?za(t[0],t[1]):void 0})}function Ee(e,t=void 0,n=void 0){return new si({Hardcoded:e,Reference:t?za(t[0],t[1]):void 0,ArrayReference:n?za(n[0],n[1]):void 0})}function Nk(e){return/^(?:[a-z0-9-]{1,48}(?:[a-z0-9-]{1,48}[a-z0-9-])?\.)*[a-z0-9-]{1,48}\.stark$/.test(e)}var hI=class es{async getStarkName(t,n){return es.getStarkName(this,t,n)}async getAddressFromStarkName(t,n){return es.getAddressFromStarkName(this,t,n)}async getStarkProfile(t,n,r,a,o,i,s){return es.getStarkProfile(this,t,n,r,a,o,i,s)}static async getStarkName(t,n,r){const a=await t.getChainId(),o=r??Qi(a);try{const s=(await t.callContract({contractAddress:o,entrypoint:"address_to_domain",calldata:xe.compile({address:n,hint:[]})})).map(u=>BigInt(u)).slice(1),c=Vl(s);if(!c)throw Error("Starkname not found");return c}catch(i){throw i instanceof Error&&i.message==="Starkname not found"?i:Error("Could not get stark name")}}static async getAddressFromStarkName(t,n,r){const a=n.endsWith(".stark")?n:`${n}.stark`;if(!Nk(a))throw new Error("Invalid domain, must be a valid .stark domain");const o=await t.getChainId(),i=r??Qi(o);try{const s=a.replace(".stark","").split(".").map(u=>Ck(u).toString(10));return(await t.callContract({contractAddress:i,entrypoint:"domain_to_address",calldata:xe.compile({domain:s,hint:[]})}))[0]}catch{throw Error("Could not get address from stark name")}}static async getStarkProfile(t,n,r,a,o,i,s,c){const u=await t.getChainId(),d=r??Qi(u),h=a??Ok(u),f=o??zk(u),l=i??Pk(u),g=s??Rk(u),b=c??Bk(u);try{const y=[{execution:cn({}),to:Ee(d),selector:Ee(Ke("address_to_domain")),calldata:[Ee(n),Ee("0")]},{execution:cn({}),to:st(d),selector:st(Ke("domain_to_id")),calldata:[Ee(void 0,void 0,[0,0])]},{execution:cn({}),to:st(h),selector:st(Ke("get_verifier_data")),calldata:[Ee(void 0,[1,0]),Ee(rt("twitter")),Ee(f),Ee("0")]},{execution:cn({}),to:st(h),selector:st(Ke("get_verifier_data")),calldata:[Ee(void 0,[1,0]),Ee(rt("github")),Ee(f),Ee("0")]},{execution:cn({}),to:st(h),selector:st(Ke("get_verifier_data")),calldata:[Ee(void 0,[1,0]),Ee(rt("discord")),Ee(f),Ee("0")]},{execution:cn({}),to:st(h),selector:st(Ke("get_verifier_data")),calldata:[Ee(void 0,[1,0]),Ee(rt("proof_of_personhood")),Ee(g),Ee("0")]},{execution:cn({}),to:st(h),selector:st(Ke("get_verifier_data")),calldata:[Ee(void 0,[1,0]),Ee(rt("nft_pp_contract")),Ee(l),Ee("0")]},{execution:cn({}),to:st(h),selector:st(Ke("get_extended_verifier_data")),calldata:[Ee(void 0,[1,0]),Ee(rt("nft_pp_id")),Ee("2"),Ee(l),Ee("0")]},{execution:cn(void 0,void 0,[6,0,0]),to:st(void 0,[6,0]),selector:st(Ke("tokenURI")),calldata:[Ee(void 0,[7,1]),Ee(void 0,[7,2])]}],_=await t.callContract({contractAddress:b,entrypoint:"aggregate",calldata:xe.compile({calls:y})});if(Array.isArray(_)){const k=parseInt(_[0],16),w=[];let v=1;for(let M=0;M<k&&v<_.length;M+=1){const D=parseInt(_[v],16);v+=1;const R=_.slice(v,v+D);w.push(R),v+=D}const A=Vl(w[0].slice(1).map(M=>BigInt(M))),T=w[2][0]!=="0x0"?BigInt(w[2][0]).toString():void 0,I=w[3][0]!=="0x0"?BigInt(w[3][0]).toString():void 0,z=w[4][0]!=="0x0"?BigInt(w[4][0]).toString():void 0,S=w[5][0]==="0x1",P=(_[0]==="0x9"?w[8].slice(1).map(M=>Jr(M)).join(""):void 0)||`https://starknet.id/api/identicons/${BigInt(w[1][0]).toString()}`;return{name:A,twitter:T,github:I,discord:z,proofOfPersonhood:S,profilePicture:P}}throw Error("Error while calling aggregate function")}catch(y){throw y instanceof Error?y:Error("Could not get user stark profile data from address")}}},mI=class extends Wj(Ik,hI){},gI=new Ik({default:!0}),ms={};Oe(ms,{UINT_128_MAX:()=>ya,UINT_256_MAX:()=>Nw,bnToUint256:()=>wI,isUint256:()=>bI,uint256ToBN:()=>yI});function yI(e){return new Ye(e).toBigInt()}function bI(e){return Ye.is(e)}function wI(e){return new Ye(e).toUint256HexString()}var kI={};Oe(kI,{getAbiEvents:()=>Uk,isAbiEvent:()=>Yl,parseEvents:()=>Lk,parseUDCEvent:()=>EI});function Yl(e){return e.type==="event"}function _I(e){return e.filter(t=>t.type==="event").reduce((t,n)=>{const r=n.name,a={...n};return a.name=r,{...t,[Ce(pr(hr(r)).toString(16))]:a}},{})}function vI(e){const t=e.filter(a=>Yl(a)&&a.kind==="struct"),n=e.filter(a=>Yl(a)&&a.kind==="enum");return t.reduce((a,o)=>{let i=[],{name:s}=o,c=!1;const u=f=>f.type===s;for(;;){const f=n.find(g=>g.variants.some(u));if(Ze(f))break;const l=f.variants.find(u);i.unshift(l.name),l.kind==="flat"&&(c=!0),s=f.name}if(i.length===0)throw new Error("inconsistency in ABI events definition.");c&&(i=[i[i.length-1]]);const d=i.pop();let h={[Ce(pr(hr(d)).toString(16))]:o};for(;i.length>0;)h={[Ce(pr(hr(i.pop())).toString(16))]:h};return h={...h},Hk(a,h)},{})}function Uk(e){return tf(e)?vI(e):_I(e)}function Hk(e,t){const n={...e};return kn(e)&&kn(t)&&Object.keys(t).forEach(r=>{kn(t[r])?r in e?n[r]=Hk(e[r],t[r]):Object.assign(n,{[r]:t[r]}):Object.assign(n,{[r]:t[r]})}),n}function Lk(e,t,n,r){return e.flat().reduce((o,i)=>{var l,g;let s=t[i.keys.shift()??0];if(!s)return o;for(;!s.name;){const b=i.keys.shift();be(!!b,'Not enough data in "keys" property of this event.'),s=s[b]}const c={};c[s.name]={};const u=i.keys[Symbol.iterator](),d=i.data[Symbol.iterator](),h=((l=s.members)==null?void 0:l.filter(b=>b.kind==="key"))||s.keys,f=((g=s.members)==null?void 0:g.filter(b=>b.kind==="data"))||s.data;return h.forEach(b=>{c[s.name][b.name]=ps(u,b,n,r,c[s.name])}),f.forEach(b=>{c[s.name][b.name]=ps(d,b,n,r,c[s.name])}),"block_hash"in i&&(c.block_hash=i.block_hash),"block_number"in i&&(c.block_number=i.block_number),"transaction_hash"in i&&(c.transaction_hash=i.transaction_hash),o.push(c),o},[])}function EI(e){var n;if(!((n=e.events)!=null&&n.length))throw new Error("UDC emitted event is empty");const t=e.events.find(r=>Uo(r.from_address)===Uo(ko.ADDRESS))||{data:[]};return{transaction_hash:e.transaction_hash,contract_address:t.data[0],address:t.data[0],deployer:t.data[1],unique:t.data[2],classHash:t.data[3],calldata_len:t.data[4],calldata:t.data.slice(5,5+parseInt(t.data[4],16)),salt:t.data[t.data.length-1]}}var AI={};Oe(AI,{buildExecuteFromOutsideCall:()=>jI,buildExecuteFromOutsideCallData:()=>Fk,getOutsideCall:()=>Dk,getTypedData:()=>SI});function Dk(e){const t=e.calldata??[],n=Array.isArray(t)?t:xe.compile(t);return{to:e.contractAddress,selector:Ke(e.entrypoint),calldata:n}}function Cm(e,t){const n=Dk(e);return t==="1"?{...n,calldata_len:n.calldata.length,calldata:n.calldata}:{To:n.to,Selector:n.selector,Calldata:n.calldata}}function Om(e,t){return{name:"Account.execute_from_outside",version:t,chainId:e,...t==="2"?{revision:"1"}:{}}}function SI(e,t,n,r,a){return a==="1"?{types:kw,primaryType:"OutsideExecution",domain:Om(e,a),message:{...t,nonce:n,calls_len:r.length,calls:r.map(o=>Cm(o,a))}}:{types:_w,primaryType:"OutsideExecution",domain:Om(e,a),message:{Caller:t.caller,Nonce:n,"Execute After":t.execute_after,"Execute Before":t.execute_before,Calls:r.map(o=>Cm(o,a))}}}function Fk(e){const t=e.outsideExecution,n=ui(e.signature);return xe.compile({outside_execution:t,signature:n})}function jI(e){return(Array.isArray(e)?e:[e]).map(r=>{let a;if(r.version==="1")a="execute_from_outside";else if(r.version==="2")a="execute_from_outside_v2";else throw new Error("Unsupported OutsideExecution version");return{contractAddress:ee(r.signerAddress),entrypoint:a,calldata:Fk(r)}})}var xI={};Oe(xI,{supportsInterface:()=>TI});async function TI(e,t,n){const r={contractAddress:ee(t),entrypoint:"supports_interface",calldata:[ee(n)]};try{const a=await e.callContract(r);return BigInt(a[0])!==0n}catch{return!1}}var II={};Oe(II,{addDeclareTransaction:()=>HI,addInvokeTransaction:()=>UI,addStarknetChain:()=>zI,deploymentData:()=>NI,getPermissions:()=>OI,onAccountChange:()=>FI,onNetworkChanged:()=>MI,requestAccounts:()=>CI,requestChainId:()=>RI,signMessage:()=>LI,supportedSpecs:()=>DI,switchStarknetChain:()=>PI,watchAsset:()=>BI});function CI(e,t=!1){return e.request({type:"wallet_requestAccounts",params:{silent_mode:t}})}function OI(e){return e.request({type:"wallet_getPermissions"})}function BI(e,t){return e.request({type:"wallet_watchAsset",params:t})}function zI(e,t){return e.request({type:"wallet_addStarknetChain",params:t})}function PI(e,t){return e.request({type:"wallet_switchStarknetChain",params:{chainId:t}})}function RI(e){return e.request({type:"wallet_requestChainId"})}function NI(e){return e.request({type:"wallet_deploymentData"})}function UI(e,t){return e.request({type:"wallet_addInvokeTransaction",params:t})}function HI(e,t){return e.request({type:"wallet_addDeclareTransaction",params:t})}function LI(e,t){return e.request({type:"wallet_signTypedData",params:t})}function DI(e){return e.request({type:"wallet_supportedSpecs"})}function FI(e,t){e.on("accountsChanged",t)}function MI(e,t){e.on("networkChanged",t)}var Mk=e=>{const t=["blockIdentifier","parseRequest","parseResponse","formatResponse","maxFee","nonce","signature","addressSalt"],n=e[e.length-1];return typeof n=="object"&&t.some(r=>r in n)?{args:e,options:e.pop()}:{args:e}};function qk(e,t){return async function(...n){const r=Mk(n);return e.call(t.name,r.args,{parseRequest:!0,parseResponse:!0,...r.options})}}function qI(e,t){return async function(...n){const r=Mk(n);return e.invoke(t.name,r.args,{parseRequest:!0,...r.options})}}function Bm(e,t){return t.stateMutability==="view"||t.state_mutability==="view"?qk(e,t):qI(e,t)}function VI(e,t){return function(...n){return e.populate(t.name,n)}}function $I(e,t){return function(...n){return e.estimate(t.name,n)}}function Oi(e,t){return Array.isArray(e)&&"__compiled__"in e?e:Array.isArray(e)&&Array.isArray(e[0])&&"__compiled__"in e[0]?e[0]:t()}var GI=class{constructor(e,t,n=gI){ie(this,"abi");ie(this,"address");ie(this,"providerOrAccount");ie(this,"deployTransactionHash");ie(this,"structs");ie(this,"events");ie(this,"functions");ie(this,"callStatic");ie(this,"populateTransaction");ie(this,"estimateFee");ie(this,"callData");this.address=t&&t.toLowerCase(),this.providerOrAccount=n,this.callData=new xe(e),this.structs=xe.getAbiStruct(e),this.events=Uk(e);const r=Lw(e);this.abi=r.getLegacyFormat();const a={enumerable:!0,value:{},writable:!1};Object.defineProperties(this,{functions:{enumerable:!0,value:{},writable:!1},callStatic:{enumerable:!0,value:{},writable:!1},populateTransaction:{enumerable:!0,value:{},writable:!1},estimateFee:{enumerable:!0,value:{},writable:!1}}),this.abi.forEach(o=>{if(o.type!=="function")return;const i=o.name;this[i]||Object.defineProperty(this,i,{...a,value:Bm(this,o)}),this.functions[i]||Object.defineProperty(this.functions,i,{...a,value:Bm(this,o)}),this.callStatic[i]||Object.defineProperty(this.callStatic,i,{...a,value:qk(this,o)}),this.populateTransaction[i]||Object.defineProperty(this.populateTransaction,i,{...a,value:VI(this,o)}),this.estimateFee[i]||Object.defineProperty(this.estimateFee,i,{...a,value:$I(this,o)})})}attach(e){this.address=e}connect(e){this.providerOrAccount=e}async deployed(){return this.deployTransactionHash&&(await this.providerOrAccount.waitForTransaction(this.deployTransactionHash),this.deployTransactionHash=void 0),this}async call(e,t=[],{parseRequest:n=!0,parseResponse:r=!0,formatResponse:a=void 0,blockIdentifier:o=void 0}={}){be(this.address!==null,"contract is not connected to an address");const i=Oi(t,()=>n?(this.callData.validate(or.CALL,e,t),this.callData.compile(e,t)):(xt.warn("Call skipped parsing but provided rawArgs, possible malfunction request"),t));return this.providerOrAccount.callContract({contractAddress:this.address,calldata:i,entrypoint:e},o).then(s=>r?a?this.callData.format(e,s,a):this.callData.parse(e,s):s)}invoke(e,t=[],{parseRequest:n=!0,maxFee:r,nonce:a,signature:o}={}){be(this.address!==null,"contract is not connected to an address");const i=Oi(t,()=>n?(this.callData.validate(or.INVOKE,e,t),this.callData.compile(e,t)):(xt.warn("Invoke skipped parsing but provided rawArgs, possible malfunction request"),t)),s={contractAddress:this.address,calldata:i,entrypoint:e};if("execute"in this.providerOrAccount)return this.providerOrAccount.execute(s,void 0,{maxFee:r,nonce:a});if(!a)throw new Error("Nonce is required when invoking a function without an account");return xt.warn(`Invoking ${e} without an account. This will not work on a public node.`),this.providerOrAccount.invokeFunction({...s,signature:o},{nonce:a})}async estimate(e,t=[]){be(this.address!==null,"contract is not connected to an address"),Oi(t,()=>!1)||this.callData.validate(or.INVOKE,e,t);const n=this.populate(e,t);if("estimateInvokeFee"in this.providerOrAccount)return this.providerOrAccount.estimateInvokeFee(n);throw Error("Contract must be connected to the account contract to estimate")}populate(e,t=[]){const n=Oi(t,()=>this.callData.compile(e,t));return{contractAddress:this.address,entrypoint:e,calldata:n}}parseEvents(e){let t;return e.match({success:n=>{var a;const r=((a=n.events)==null?void 0:a.map(o=>({block_hash:n.block_hash,block_number:n.block_number,transaction_hash:n.transaction_hash,...o})).filter(o=>Uo(o.from_address)===Uo(this.address),[]))||[];t=Lk(r,this.events,this.structs,xe.getAbiEnum(this.abi))},_:()=>{throw Error("This transaction was not successful.")}}),t}isCairo1(){return Rw.isCairo1Abi(this.abi)}async getVersion(){return this.providerOrAccount.getContractVersion(this.address)}typedv2(e){return this}};const KI="0x534e5f4d41494e",WI="0x534e5f5345504f4c4941";function gf(e){const n=`0x04${BigInt(e).toString(16).padStart(64,"0").slice(2)}`;return Hr(n).toFixed(0)}const _e={SN_MAIN:KI,SN_SEPOLIA:WI};var Vk=(e=>(e.Mainnet="starknet:mainnet",e.Sepolia="starknet:sepolia",e))(Vk||{});function XI(e){if(typeof e=="string")return e;if((n=>n===null||typeof n!="object"||!("data"in n)||n.data===null||typeof n.data!="object"||!("message"in n.data)?!1:typeof n.data.message=="string")(e))return e.data.message;if(e instanceof Error)return"isAxiosError"in e&&e.isAxiosError?ZI(e):e.message;if(e!==null&&typeof e=="object"){if("message"in e&&typeof e.message=="string")return e.message;try{return JSON.stringify(e)}catch{return"Unknown error object"}}return"Unknown error"}function ZI(e){if(e.response){const t=e.response.data;if(t&&typeof t=="object"){if("message"in t&&t.message&&typeof t.message=="string")return t.message;try{return JSON.stringify(t)}catch{return"Error in API response"}}return`HTTP error ${e.response.status}: ${e.response.statusText}`}return e.message?e.message:"Network error"}class En extends Error{constructor(n,r,a){super(n);ie(this,"cause");this.code=r,this.name="StarknetSdkError",a!=null&&a.cause&&(this.cause=a.cause)}static wrap(n,r="UNKNOWN_ERROR",a="Unknown error occurred."){if(n instanceof En)return n;const o=XI(n),i=n instanceof Error?{cause:n}:void 0;return new En(o||a,r,i)}}const YI=e=>new En(`Could not determine the RPC provider for given chain: ${e||"undefined"}`,"NO_PROVIDER"),JI=e=>new En(`Could not retrieve the token information for given token: ${e||"undefined"}`,"NO_TOKEN"),QI=(e,t)=>new En(`Could not retrieve pubKey for ${e} on ${t}`,"NO_PUBKEY"),e3=()=>new En("Unknown signature format, known formats are [r, s], [version, r, s], [version, type, r, s, ...]","UNKNOWN_SIGNATURE_FORMAT"),t3=()=>new En("The output script for provided BTC address is invalid","UNEXPECTED_OUTPUT_SCRIPT"),n3=e=>new En(`The wallet ${e||""} is not supported`,"UNSUPPORTED_WALLET"),r3=(e,t)=>{const n=e==="0x534e5f4d41494e"?"Starknet Mainnet":e==="0x534e5f5345504f4c4941"?"Starknet Sepolia":`unknown chain (${e})`,r=t==="prod"?"Starknet Mainnet":"Starknet Sepolia";return new En(`Wallet network mismatch: Your wallet is connected to ${n}, but the SDK is configured for ${r}. Please switch your wallet to ${r}.`,"CHAIN_MISMATCH")},a3={[_e.SN_MAIN]:"https://rpc.starknet.lava.build:443",[_e.SN_SEPOLIA]:"https://starknet-sepolia.drpc.org"},zm=new Map,gr=(e=_e.SN_MAIN)=>{let t=zm.get(e);return t||(t=new mI({nodeUrl:a3[e]}),zm.set(e,t)),t},gs=[{name:"LockingContract",type:"impl",interface_name:"src::mintable_lock_interface::ILockingContract"},{name:"src::mintable_lock_interface::ILockingContract",type:"interface",items:[{name:"set_locking_contract",type:"function",inputs:[{name:"locking_contract",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"get_locking_contract",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"}]},{name:"LockAndDelegate",type:"impl",interface_name:"src::mintable_lock_interface::ILockAndDelegate"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"src::mintable_lock_interface::ILockAndDelegate",type:"interface",items:[{name:"lock_and_delegate",type:"function",inputs:[{name:"delegatee",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"lock_and_delegate_by_sig",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"delegatee",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"},{name:"nonce",type:"core::felt252"},{name:"expiry",type:"core::integer::u64"},{name:"signature",type:"core::array::Array::<core::felt252>"}],outputs:[],state_mutability:"external"}]},{name:"MintableToken",type:"impl",interface_name:"src::mintable_token_interface::IMintableToken"},{name:"src::mintable_token_interface::IMintableToken",type:"interface",items:[{name:"permissioned_mint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissioned_burn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"}]},{name:"MintableTokenCamelImpl",type:"impl",interface_name:"src::mintable_token_interface::IMintableTokenCamel"},{name:"src::mintable_token_interface::IMintableTokenCamel",type:"interface",items:[{name:"permissionedMint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissionedBurn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"}]},{name:"Replaceable",type:"impl",interface_name:"src::replaceability_interface::IReplaceable"},{name:"core::array::Span::<core::felt252>",type:"struct",members:[{name:"snapshot",type:"@core::array::Array::<core::felt252>"}]},{name:"src::replaceability_interface::EICData",type:"struct",members:[{name:"eic_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_init_data",type:"core::array::Span::<core::felt252>"}]},{name:"core::option::Option::<src::replaceability_interface::EICData>",type:"enum",variants:[{name:"Some",type:"src::replaceability_interface::EICData"},{name:"None",type:"()"}]},{name:"core::bool",type:"enum",variants:[{name:"False",type:"()"},{name:"True",type:"()"}]},{name:"src::replaceability_interface::ImplementationData",type:"struct",members:[{name:"impl_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_data",type:"core::option::Option::<src::replaceability_interface::EICData>"},{name:"final",type:"core::bool"}]},{name:"src::replaceability_interface::IReplaceable",type:"interface",items:[{name:"get_upgrade_delay",type:"function",inputs:[],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"get_impl_activation_time",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"add_new_implementation",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"remove_implementation",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"replace_to",type:"function",inputs:[{name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}],outputs:[],state_mutability:"external"}]},{name:"AccessControlImplExternal",type:"impl",interface_name:"src::access_control_interface::IAccessControl"},{name:"src::access_control_interface::IAccessControl",type:"interface",items:[{name:"has_role",type:"function",inputs:[{name:"role",type:"core::felt252"},{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"get_role_admin",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[{type:"core::felt252"}],state_mutability:"view"}]},{name:"RolesImpl",type:"impl",interface_name:"src::roles_interface::IMinimalRoles"},{name:"src::roles_interface::IMinimalRoles",type:"interface",items:[{name:"is_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"renounce",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[],state_mutability:"external"}]},{name:"ERC20Impl",type:"impl",interface_name:"openzeppelin::token::erc20::interface::IERC20"},{name:"openzeppelin::token::erc20::interface::IERC20",type:"interface",items:[{name:"name",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"symbol",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"decimals",type:"function",inputs:[],outputs:[{type:"core::integer::u8"}],state_mutability:"view"},{name:"total_supply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balance_of",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"allowance",type:"function",inputs:[{name:"owner",type:"core::starknet::contract_address::ContractAddress"},{name:"spender",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transfer",type:"function",inputs:[{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"transfer_from",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"approve",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"ERC20CamelOnlyImpl",type:"impl",interface_name:"openzeppelin::token::erc20::interface::IERC20CamelOnly"},{name:"openzeppelin::token::erc20::interface::IERC20CamelOnly",type:"interface",items:[{name:"totalSupply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balanceOf",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transferFrom",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"constructor",type:"constructor",inputs:[{name:"name",type:"core::felt252"},{name:"symbol",type:"core::felt252"},{name:"decimals",type:"core::integer::u8"},{name:"initial_supply",type:"core::integer::u256"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"permitted_minter",type:"core::starknet::contract_address::ContractAddress"},{name:"provisional_governance_admin",type:"core::starknet::contract_address::ContractAddress"},{name:"upgrade_delay",type:"core::integer::u64"}]},{name:"increase_allowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"added_value",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"decrease_allowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"subtracted_value",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"increaseAllowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"addedValue",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"decreaseAllowance",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"subtractedValue",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{kind:"struct",name:"src::strk::erc20_lockable::ERC20Lockable::Transfer",type:"event",members:[{kind:"data",name:"from",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"to",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"src::strk::erc20_lockable::ERC20Lockable::Approval",type:"event",members:[{kind:"data",name:"owner",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"spender",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationAdded",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationRemoved",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationReplaced",type:"event",members:[{kind:"data",name:"implementation_data",type:"src::replaceability_interface::ImplementationData"}]},{kind:"struct",name:"src::replaceability_interface::ImplementationFinalized",type:"event",members:[{kind:"data",name:"impl_hash",type:"core::starknet::class_hash::ClassHash"}]},{kind:"struct",name:"src::access_control_interface::RoleGranted",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::access_control_interface::RoleRevoked",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::access_control_interface::RoleAdminChanged",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"previous_admin_role",type:"core::felt252"},{kind:"data",name:"new_admin_role",type:"core::felt252"}]},{kind:"struct",name:"src::roles_interface::GovernanceAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::GovernanceAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::UpgradeGovernorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"src::roles_interface::UpgradeGovernorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"src::strk::erc20_lockable::ERC20Lockable::Event",type:"event",variants:[{kind:"nested",name:"Transfer",type:"src::strk::erc20_lockable::ERC20Lockable::Transfer"},{kind:"nested",name:"Approval",type:"src::strk::erc20_lockable::ERC20Lockable::Approval"},{kind:"nested",name:"ImplementationAdded",type:"src::replaceability_interface::ImplementationAdded"},{kind:"nested",name:"ImplementationRemoved",type:"src::replaceability_interface::ImplementationRemoved"},{kind:"nested",name:"ImplementationReplaced",type:"src::replaceability_interface::ImplementationReplaced"},{kind:"nested",name:"ImplementationFinalized",type:"src::replaceability_interface::ImplementationFinalized"},{kind:"nested",name:"RoleGranted",type:"src::access_control_interface::RoleGranted"},{kind:"nested",name:"RoleRevoked",type:"src::access_control_interface::RoleRevoked"},{kind:"nested",name:"RoleAdminChanged",type:"src::access_control_interface::RoleAdminChanged"},{kind:"nested",name:"GovernanceAdminAdded",type:"src::roles_interface::GovernanceAdminAdded"},{kind:"nested",name:"GovernanceAdminRemoved",type:"src::roles_interface::GovernanceAdminRemoved"},{kind:"nested",name:"UpgradeGovernorAdded",type:"src::roles_interface::UpgradeGovernorAdded"},{kind:"nested",name:"UpgradeGovernorRemoved",type:"src::roles_interface::UpgradeGovernorRemoved"}]}],Bi=[{name:"MintableTokenImpl",type:"impl",interface_name:"starkware_utils::interfaces::mintable_token::IMintableToken"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"core::bool",type:"enum",variants:[{name:"False",type:"()"},{name:"True",type:"()"}]},{name:"starkware_utils::interfaces::mintable_token::IMintableToken",type:"interface",items:[{name:"permissioned_mint",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"permissioned_burn",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"is_permitted_minter",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"}]},{name:"ERC20Impl",type:"impl",interface_name:"openzeppelin_token::erc20::interface::IERC20"},{name:"openzeppelin_token::erc20::interface::IERC20",type:"interface",items:[{name:"total_supply",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"balance_of",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"allowance",type:"function",inputs:[{name:"owner",type:"core::starknet::contract_address::ContractAddress"},{name:"spender",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"transfer",type:"function",inputs:[{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"transfer_from",type:"function",inputs:[{name:"sender",type:"core::starknet::contract_address::ContractAddress"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"},{name:"approve",type:"function",inputs:[{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"external"}]},{name:"ReplaceabilityImpl",type:"impl",interface_name:"starkware_utils::components::replaceability::interface::IReplaceable"},{name:"core::array::Span::<core::felt252>",type:"struct",members:[{name:"snapshot",type:"@core::array::Array::<core::felt252>"}]},{name:"starkware_utils::components::replaceability::interface::EICData",type:"struct",members:[{name:"eic_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_init_data",type:"core::array::Span::<core::felt252>"}]},{name:"core::option::Option::<starkware_utils::components::replaceability::interface::EICData>",type:"enum",variants:[{name:"Some",type:"starkware_utils::components::replaceability::interface::EICData"},{name:"None",type:"()"}]},{name:"starkware_utils::components::replaceability::interface::ImplementationData",type:"struct",members:[{name:"impl_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_data",type:"core::option::Option::<starkware_utils::components::replaceability::interface::EICData>"},{name:"final",type:"core::bool"}]},{name:"starkware_utils::components::replaceability::interface::IReplaceable",type:"interface",items:[{name:"get_upgrade_delay",type:"function",inputs:[],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"get_impl_activation_time",type:"function",inputs:[{name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"add_new_implementation",type:"function",inputs:[{name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"remove_implementation",type:"function",inputs:[{name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"replace_to",type:"function",inputs:[{name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}],outputs:[],state_mutability:"external"}]},{name:"RolesImpl",type:"impl",interface_name:"starkware_utils::components::roles::interface::IRoles"},{name:"starkware_utils::components::roles::interface::IRoles",type:"interface",items:[{name:"is_app_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_app_role_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_operator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_token_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_security_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_security_agent",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_app_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_app_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_app_role_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_app_role_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_operator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_operator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_token_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_token_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"renounce",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[],state_mutability:"external"},{name:"register_security_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_security_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_security_agent",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_security_agent",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"}]},{name:"PausableImpl",type:"impl",interface_name:"starkware_utils::components::pausable::interface::IPausable"},{name:"starkware_utils::components::pausable::interface::IPausable",type:"interface",items:[{name:"is_paused",type:"function",inputs:[],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"pause",type:"function",inputs:[],outputs:[],state_mutability:"external"},{name:"unpause",type:"function",inputs:[],outputs:[],state_mutability:"external"}]},{name:"ERC20MetadataImpl",type:"impl",interface_name:"openzeppelin_token::erc20::interface::IERC20Metadata"},{name:"core::byte_array::ByteArray",type:"struct",members:[{name:"data",type:"core::array::Array::<core::bytes_31::bytes31>"},{name:"pending_word",type:"core::felt252"},{name:"pending_word_len",type:"core::integer::u32"}]},{name:"openzeppelin_token::erc20::interface::IERC20Metadata",type:"interface",items:[{name:"name",type:"function",inputs:[],outputs:[{type:"core::byte_array::ByteArray"}],state_mutability:"view"},{name:"symbol",type:"function",inputs:[],outputs:[{type:"core::byte_array::ByteArray"}],state_mutability:"view"},{name:"decimals",type:"function",inputs:[],outputs:[{type:"core::integer::u8"}],state_mutability:"view"}]},{name:"ERC20PermitImpl",type:"impl",interface_name:"openzeppelin_token::erc20::interface::IERC20Permit"},{name:"openzeppelin_token::erc20::interface::IERC20Permit",type:"interface",items:[{name:"permit",type:"function",inputs:[{name:"owner",type:"core::starknet::contract_address::ContractAddress"},{name:"spender",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"},{name:"deadline",type:"core::integer::u64"},{name:"signature",type:"core::array::Span::<core::felt252>"}],outputs:[],state_mutability:"external"},{name:"nonces",type:"function",inputs:[{name:"owner",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::felt252"}],state_mutability:"view"},{name:"DOMAIN_SEPARATOR",type:"function",inputs:[],outputs:[{type:"core::felt252"}],state_mutability:"view"}]},{name:"SNIP12MetadataExternal",type:"impl",interface_name:"openzeppelin_utils::cryptography::interface::ISNIP12Metadata"},{name:"openzeppelin_utils::cryptography::interface::ISNIP12Metadata",type:"interface",items:[{name:"snip12_metadata",type:"function",inputs:[],outputs:[{type:"(core::felt252, core::felt252)"}],state_mutability:"view"}]},{name:"constructor",type:"constructor",inputs:[{name:"governance_admin",type:"core::starknet::contract_address::ContractAddress"},{name:"upgrade_delay",type:"core::integer::u64"}]},{kind:"struct",name:"openzeppelin_token::erc20::erc20::ERC20Component::Transfer",type:"event",members:[{kind:"key",name:"from",type:"core::starknet::contract_address::ContractAddress"},{kind:"key",name:"to",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"struct",name:"openzeppelin_token::erc20::erc20::ERC20Component::Approval",type:"event",members:[{kind:"key",name:"owner",type:"core::starknet::contract_address::ContractAddress"},{kind:"key",name:"spender",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"value",type:"core::integer::u256"}]},{kind:"enum",name:"openzeppelin_token::erc20::erc20::ERC20Component::Event",type:"event",variants:[{kind:"nested",name:"Transfer",type:"openzeppelin_token::erc20::erc20::ERC20Component::Transfer"},{kind:"nested",name:"Approval",type:"openzeppelin_token::erc20::erc20::ERC20Component::Approval"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGranted",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"delay",type:"core::integer::u64"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleRevoked",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleAdminChanged",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"previous_admin_role",type:"core::felt252"},{kind:"data",name:"new_admin_role",type:"core::felt252"}]},{kind:"enum",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event",type:"event",variants:[{kind:"nested",name:"RoleGranted",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGranted"},{kind:"nested",name:"RoleGrantedWithDelay",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay"},{kind:"nested",name:"RoleRevoked",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleRevoked"},{kind:"nested",name:"RoleAdminChanged",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleAdminChanged"}]},{kind:"enum",name:"openzeppelin_utils::cryptography::nonces::NoncesComponent::Event",type:"event",variants:[]},{kind:"enum",name:"openzeppelin_introspection::src5::SRC5Component::Event",type:"event",variants:[]},{kind:"struct",name:"starkware_utils::components::pausable::pausable::PausableComponent::Paused",type:"event",members:[{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::pausable::pausable::PausableComponent::Unpaused",type:"event",members:[{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"starkware_utils::components::pausable::pausable::PausableComponent::Event",type:"event",variants:[{kind:"nested",name:"Paused",type:"starkware_utils::components::pausable::pausable::PausableComponent::Paused"},{kind:"nested",name:"Unpaused",type:"starkware_utils::components::pausable::pausable::PausableComponent::Unpaused"}]},{kind:"struct",name:"starkware_utils::components::replaceability::interface::ImplementationAdded",type:"event",members:[{kind:"data",name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}]},{kind:"struct",name:"starkware_utils::components::replaceability::interface::ImplementationRemoved",type:"event",members:[{kind:"data",name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}]},{kind:"struct",name:"starkware_utils::components::replaceability::interface::ImplementationReplaced",type:"event",members:[{kind:"data",name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}]},{kind:"struct",name:"starkware_utils::components::replaceability::interface::ImplementationFinalized",type:"event",members:[{kind:"data",name:"impl_hash",type:"core::starknet::class_hash::ClassHash"}]},{kind:"enum",name:"starkware_utils::components::replaceability::replaceability::ReplaceabilityComponent::Event",type:"event",variants:[{kind:"nested",name:"ImplementationAdded",type:"starkware_utils::components::replaceability::interface::ImplementationAdded"},{kind:"nested",name:"ImplementationRemoved",type:"starkware_utils::components::replaceability::interface::ImplementationRemoved"},{kind:"nested",name:"ImplementationReplaced",type:"starkware_utils::components::replaceability::interface::ImplementationReplaced"},{kind:"nested",name:"ImplementationFinalized",type:"starkware_utils::components::replaceability::interface::ImplementationFinalized"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::AppGovernorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::AppGovernorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::AppRoleAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::AppRoleAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::GovernanceAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::GovernanceAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::OperatorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::OperatorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::SecurityAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::SecurityAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::SecurityAgentAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::SecurityAgentRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::TokenAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::TokenAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::UpgradeGovernorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::UpgradeGovernorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"starkware_utils::components::roles::roles::RolesComponent::Event",type:"event",variants:[{kind:"nested",name:"AppGovernorAdded",type:"starkware_utils::components::roles::interface::AppGovernorAdded"},{kind:"nested",name:"AppGovernorRemoved",type:"starkware_utils::components::roles::interface::AppGovernorRemoved"},{kind:"nested",name:"AppRoleAdminAdded",type:"starkware_utils::components::roles::interface::AppRoleAdminAdded"},{kind:"nested",name:"AppRoleAdminRemoved",type:"starkware_utils::components::roles::interface::AppRoleAdminRemoved"},{kind:"nested",name:"GovernanceAdminAdded",type:"starkware_utils::components::roles::interface::GovernanceAdminAdded"},{kind:"nested",name:"GovernanceAdminRemoved",type:"starkware_utils::components::roles::interface::GovernanceAdminRemoved"},{kind:"nested",name:"OperatorAdded",type:"starkware_utils::components::roles::interface::OperatorAdded"},{kind:"nested",name:"OperatorRemoved",type:"starkware_utils::components::roles::interface::OperatorRemoved"},{kind:"nested",name:"SecurityAdminAdded",type:"starkware_utils::components::roles::interface::SecurityAdminAdded"},{kind:"nested",name:"SecurityAdminRemoved",type:"starkware_utils::components::roles::interface::SecurityAdminRemoved"},{kind:"nested",name:"SecurityAgentAdded",type:"starkware_utils::components::roles::interface::SecurityAgentAdded"},{kind:"nested",name:"SecurityAgentRemoved",type:"starkware_utils::components::roles::interface::SecurityAgentRemoved"},{kind:"nested",name:"TokenAdminAdded",type:"starkware_utils::components::roles::interface::TokenAdminAdded"},{kind:"nested",name:"TokenAdminRemoved",type:"starkware_utils::components::roles::interface::TokenAdminRemoved"},{kind:"nested",name:"UpgradeGovernorAdded",type:"starkware_utils::components::roles::interface::UpgradeGovernorAdded"},{kind:"nested",name:"UpgradeGovernorRemoved",type:"starkware_utils::components::roles::interface::UpgradeGovernorRemoved"}]},{kind:"struct",name:"lbtc_token::lbtc::events::MinterAdded",type:"event",members:[{kind:"data",name:"minter",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"lbtc_token::lbtc::token::lbtc::Event",type:"event",variants:[{kind:"flat",name:"ERC20Event",type:"openzeppelin_token::erc20::erc20::ERC20Component::Event"},{kind:"flat",name:"AccessControlEvent",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event"},{kind:"flat",name:"NoncesEvent",type:"openzeppelin_utils::cryptography::nonces::NoncesComponent::Event"},{kind:"flat",name:"SRC5Event",type:"openzeppelin_introspection::src5::SRC5Component::Event"},{kind:"flat",name:"PausableEvent",type:"starkware_utils::components::pausable::pausable::PausableComponent::Event"},{kind:"flat",name:"ReplaceabilityEvent",type:"starkware_utils::components::replaceability::replaceability::ReplaceabilityComponent::Event"},{kind:"flat",name:"RolesEvent",type:"starkware_utils::components::roles::roles::RolesComponent::Event"},{kind:"nested",name:"MinterAdded",type:"lbtc_token::lbtc::events::MinterAdded"}]}],zi=[{name:"BasculeImpl",type:"impl",interface_name:"lbtc_bascule::interface::IBascule"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"core::array::Span::<core::integer::u256>",type:"struct",members:[{name:"snapshot",type:"@core::array::Array::<core::integer::u256>"}]},{name:"lbtc_bascule::interface::DepositState",type:"enum",variants:[{name:"Unreported",type:"()"},{name:"Reported",type:"()"},{name:"Withdrawn",type:"()"}]},{name:"core::bool",type:"enum",variants:[{name:"False",type:"()"},{name:"True",type:"()"}]},{name:"lbtc_bascule::interface::IBascule",type:"interface",items:[{name:"validate_withdrawal",type:"function",inputs:[{name:"to_chain",type:"core::integer::u256"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"withdrawal_amount",type:"core::integer::u256"},{name:"tx_id",type:"core::integer::u256"},{name:"vout",type:"core::integer::u32"}],outputs:[],state_mutability:"external"},{name:"update_validation_threshold",type:"function",inputs:[{name:"new_threshold",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"set_max_deposits",type:"function",inputs:[{name:"max_deposits",type:"core::integer::u32"}],outputs:[],state_mutability:"external"},{name:"report_deposits",type:"function",inputs:[{name:"report_id",type:"core::integer::u256"},{name:"deposit_ids",type:"core::array::Span::<core::integer::u256>"}],outputs:[],state_mutability:"external"},{name:"get_validation_threshold",type:"function",inputs:[],outputs:[{type:"core::integer::u256"}],state_mutability:"view"},{name:"get_max_deposits",type:"function",inputs:[],outputs:[{type:"core::integer::u32"}],state_mutability:"view"},{name:"get_deposit_status",type:"function",inputs:[{name:"deposit_id",type:"core::integer::u256"}],outputs:[{type:"lbtc_bascule::interface::DepositState"}],state_mutability:"view"},{name:"is_deposit_reporter",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_deposit_reporter",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_deposit_reporter",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"is_withdrawal_validator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_withdrawal_validator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_withdrawal_validator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"is_validation_guardian",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_validation_guardian",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_validation_guardian",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"is_pauser",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_pauser",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_pauser",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"}]},{name:"PausableImpl",type:"impl",interface_name:"starkware_utils::components::pausable::interface::IPausable"},{name:"starkware_utils::components::pausable::interface::IPausable",type:"interface",items:[{name:"is_paused",type:"function",inputs:[],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"pause",type:"function",inputs:[],outputs:[],state_mutability:"external"},{name:"unpause",type:"function",inputs:[],outputs:[],state_mutability:"external"}]},{name:"constructor",type:"constructor",inputs:[{name:"governance_admin",type:"core::starknet::contract_address::ContractAddress"},{name:"pauser",type:"core::starknet::contract_address::ContractAddress"},{name:"deposit_reporter",type:"core::starknet::contract_address::ContractAddress"},{name:"withdrawal_validator",type:"core::starknet::contract_address::ContractAddress"},{name:"max_deposits",type:"core::integer::u32"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGranted",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"delay",type:"core::integer::u64"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleRevoked",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleAdminChanged",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"previous_admin_role",type:"core::felt252"},{kind:"data",name:"new_admin_role",type:"core::felt252"}]},{kind:"enum",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event",type:"event",variants:[{kind:"nested",name:"RoleGranted",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGranted"},{kind:"nested",name:"RoleGrantedWithDelay",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay"},{kind:"nested",name:"RoleRevoked",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleRevoked"},{kind:"nested",name:"RoleAdminChanged",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleAdminChanged"}]},{kind:"struct",name:"openzeppelin_security::pausable::PausableComponent::Paused",type:"event",members:[{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"openzeppelin_security::pausable::PausableComponent::Unpaused",type:"event",members:[{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"openzeppelin_security::pausable::PausableComponent::Event",type:"event",variants:[{kind:"nested",name:"Paused",type:"openzeppelin_security::pausable::PausableComponent::Paused"},{kind:"nested",name:"Unpaused",type:"openzeppelin_security::pausable::PausableComponent::Unpaused"}]},{kind:"enum",name:"openzeppelin_introspection::src5::SRC5Component::Event",type:"event",variants:[]},{kind:"struct",name:"lbtc_bascule::events::DepositAlreadyReported",type:"event",members:[{kind:"key",name:"deposit_id",type:"core::integer::u256"}]},{kind:"struct",name:"lbtc_bascule::events::DepositsReported",type:"event",members:[{kind:"key",name:"report_id",type:"core::integer::u256"},{kind:"data",name:"num_deposits",type:"core::integer::u32"}]},{kind:"struct",name:"lbtc_bascule::events::MaxDepositsUpdated",type:"event",members:[{kind:"data",name:"num_deposits",type:"core::integer::u32"}]},{kind:"struct",name:"lbtc_bascule::events::UpdateValidateThreshold",type:"event",members:[{kind:"data",name:"old_threshold",type:"core::integer::u256"},{kind:"data",name:"new_threshold",type:"core::integer::u256"}]},{kind:"struct",name:"lbtc_bascule::events::WithdrawalNotValidated",type:"event",members:[{kind:"key",name:"deposit_id",type:"core::integer::u256"},{kind:"data",name:"withdrawal_amount",type:"core::integer::u256"}]},{kind:"struct",name:"lbtc_bascule::events::WithdrawalValidated",type:"event",members:[{kind:"key",name:"deposit_id",type:"core::integer::u256"},{kind:"data",name:"withdrawal_amount",type:"core::integer::u256"}]},{kind:"enum",name:"lbtc_bascule::bascule::bascule::Event",type:"event",variants:[{kind:"flat",name:"AccessControlEvent",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event"},{kind:"flat",name:"PausableEvent",type:"openzeppelin_security::pausable::PausableComponent::Event"},{kind:"flat",name:"SRC5Event",type:"openzeppelin_introspection::src5::SRC5Component::Event"},{kind:"nested",name:"DepositAlreadyReported",type:"lbtc_bascule::events::DepositAlreadyReported"},{kind:"nested",name:"DepositsReported",type:"lbtc_bascule::events::DepositsReported"},{kind:"nested",name:"MaxDepositsUpdated",type:"lbtc_bascule::events::MaxDepositsUpdated"},{kind:"nested",name:"UpdateValidateThreshold",type:"lbtc_bascule::events::UpdateValidateThreshold"},{kind:"nested",name:"WithdrawalNotValidated",type:"lbtc_bascule::events::WithdrawalNotValidated"},{kind:"nested",name:"WithdrawalValidated",type:"lbtc_bascule::events::WithdrawalValidated"}]}],Pi=[{name:"AssetRouterImpl",type:"impl",interface_name:"lbtc_asset_router::interface::IAssetRouter"},{name:"core::integer::u256",type:"struct",members:[{name:"low",type:"core::integer::u128"},{name:"high",type:"core::integer::u128"}]},{name:"core::array::Span::<(core::integer::u256, core::integer::u256)>",type:"struct",members:[{name:"snapshot",type:"@core::array::Array::<(core::integer::u256, core::integer::u256)>"}]},{name:"core::byte_array::ByteArray",type:"struct",members:[{name:"data",type:"core::array::Array::<core::bytes_31::bytes31>"},{name:"pending_word",type:"core::felt252"},{name:"pending_word_len",type:"core::integer::u32"}]},{name:"core::bool",type:"enum",variants:[{name:"False",type:"()"},{name:"True",type:"()"}]},{name:"lbtc_asset_router::interface::IAssetRouter",type:"interface",items:[{name:"change_bascule",type:"function",inputs:[{name:"new_bascule",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"change_treasury",type:"function",inputs:[{name:"new_treasury",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"change_burn_commission",type:"function",inputs:[{name:"new_burn_commission",type:"core::integer::u64"}],outputs:[],state_mutability:"external"},{name:"enable_withdrawals",type:"function",inputs:[],outputs:[],state_mutability:"external"},{name:"disable_withdrawals",type:"function",inputs:[],outputs:[],state_mutability:"external"},{name:"change_dust_fee_rate",type:"function",inputs:[{name:"new_rate",type:"core::integer::u128"}],outputs:[],state_mutability:"external"},{name:"mint",type:"function",inputs:[{name:"to_chain",type:"core::integer::u256"},{name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{name:"amount",type:"core::integer::u256"},{name:"tx_id",type:"core::integer::u256"},{name:"vout",type:"core::integer::u32"},{name:"proof",type:"core::array::Span::<(core::integer::u256, core::integer::u256)>"}],outputs:[],state_mutability:"external"},{name:"redeem",type:"function",inputs:[{name:"script_pub_key",type:"core::byte_array::ByteArray"},{name:"amount",type:"core::integer::u256"}],outputs:[],state_mutability:"external"},{name:"get_lbtc_token_address",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"},{name:"get_bascule",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"},{name:"get_consortium",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"},{name:"get_treasury",type:"function",inputs:[],outputs:[{type:"core::starknet::contract_address::ContractAddress"}],state_mutability:"view"},{name:"get_burn_commission",type:"function",inputs:[],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"calculate_unstake_request_amount",type:"function",inputs:[{name:"script_pub_key",type:"core::byte_array::ByteArray"},{name:"amount",type:"core::integer::u256"}],outputs:[{type:"(core::integer::u256, core::bool)"}],state_mutability:"view"},{name:"get_dust_fee_rate",type:"function",inputs:[],outputs:[{type:"core::integer::u128"}],state_mutability:"view"},{name:"is_payload_used",type:"function",inputs:[{name:"payload_hash",type:"core::integer::u256"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_withdrawals_enabled",type:"function",inputs:[],outputs:[{type:"core::bool"}],state_mutability:"view"}]},{name:"RolesImpl",type:"impl",interface_name:"starkware_utils::components::roles::interface::IRoles"},{name:"starkware_utils::components::roles::interface::IRoles",type:"interface",items:[{name:"is_app_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_app_role_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_operator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_token_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_security_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"is_security_agent",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[{type:"core::bool"}],state_mutability:"view"},{name:"register_app_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_app_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_app_role_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_app_role_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_governance_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_operator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_operator",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_token_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_token_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_upgrade_governor",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"renounce",type:"function",inputs:[{name:"role",type:"core::felt252"}],outputs:[],state_mutability:"external"},{name:"register_security_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_security_admin",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"register_security_agent",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"},{name:"remove_security_agent",type:"function",inputs:[{name:"account",type:"core::starknet::contract_address::ContractAddress"}],outputs:[],state_mutability:"external"}]},{name:"ReplaceabilityImpl",type:"impl",interface_name:"starkware_utils::components::replaceability::interface::IReplaceable"},{name:"core::array::Span::<core::felt252>",type:"struct",members:[{name:"snapshot",type:"@core::array::Array::<core::felt252>"}]},{name:"starkware_utils::components::replaceability::interface::EICData",type:"struct",members:[{name:"eic_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_init_data",type:"core::array::Span::<core::felt252>"}]},{name:"core::option::Option::<starkware_utils::components::replaceability::interface::EICData>",type:"enum",variants:[{name:"Some",type:"starkware_utils::components::replaceability::interface::EICData"},{name:"None",type:"()"}]},{name:"starkware_utils::components::replaceability::interface::ImplementationData",type:"struct",members:[{name:"impl_hash",type:"core::starknet::class_hash::ClassHash"},{name:"eic_data",type:"core::option::Option::<starkware_utils::components::replaceability::interface::EICData>"},{name:"final",type:"core::bool"}]},{name:"starkware_utils::components::replaceability::interface::IReplaceable",type:"interface",items:[{name:"get_upgrade_delay",type:"function",inputs:[],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"get_impl_activation_time",type:"function",inputs:[{name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}],outputs:[{type:"core::integer::u64"}],state_mutability:"view"},{name:"add_new_implementation",type:"function",inputs:[{name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"remove_implementation",type:"function",inputs:[{name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}],outputs:[],state_mutability:"external"},{name:"replace_to",type:"function",inputs:[{name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}],outputs:[],state_mutability:"external"}]},{name:"constructor",type:"constructor",inputs:[{name:"governance_admin",type:"core::starknet::contract_address::ContractAddress"},{name:"upgrade_delay",type:"core::integer::u64"},{name:"bascule",type:"core::starknet::contract_address::ContractAddress"},{name:"consortium",type:"core::starknet::contract_address::ContractAddress"},{name:"lbtc_token",type:"core::starknet::contract_address::ContractAddress"},{name:"treasury",type:"core::starknet::contract_address::ContractAddress"},{name:"burn_commission",type:"core::integer::u64"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGranted",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"delay",type:"core::integer::u64"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleRevoked",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"sender",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleAdminChanged",type:"event",members:[{kind:"data",name:"role",type:"core::felt252"},{kind:"data",name:"previous_admin_role",type:"core::felt252"},{kind:"data",name:"new_admin_role",type:"core::felt252"}]},{kind:"enum",name:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event",type:"event",variants:[{kind:"nested",name:"RoleGranted",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGranted"},{kind:"nested",name:"RoleGrantedWithDelay",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleGrantedWithDelay"},{kind:"nested",name:"RoleRevoked",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleRevoked"},{kind:"nested",name:"RoleAdminChanged",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::RoleAdminChanged"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::AppGovernorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::AppGovernorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::AppRoleAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::AppRoleAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::GovernanceAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::GovernanceAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::OperatorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::OperatorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::SecurityAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::SecurityAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::SecurityAgentAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::SecurityAgentRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::TokenAdminAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::TokenAdminRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::UpgradeGovernorAdded",type:"event",members:[{kind:"data",name:"added_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"added_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"starkware_utils::components::roles::interface::UpgradeGovernorRemoved",type:"event",members:[{kind:"data",name:"removed_account",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"removed_by",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"enum",name:"starkware_utils::components::roles::roles::RolesComponent::Event",type:"event",variants:[{kind:"nested",name:"AppGovernorAdded",type:"starkware_utils::components::roles::interface::AppGovernorAdded"},{kind:"nested",name:"AppGovernorRemoved",type:"starkware_utils::components::roles::interface::AppGovernorRemoved"},{kind:"nested",name:"AppRoleAdminAdded",type:"starkware_utils::components::roles::interface::AppRoleAdminAdded"},{kind:"nested",name:"AppRoleAdminRemoved",type:"starkware_utils::components::roles::interface::AppRoleAdminRemoved"},{kind:"nested",name:"GovernanceAdminAdded",type:"starkware_utils::components::roles::interface::GovernanceAdminAdded"},{kind:"nested",name:"GovernanceAdminRemoved",type:"starkware_utils::components::roles::interface::GovernanceAdminRemoved"},{kind:"nested",name:"OperatorAdded",type:"starkware_utils::components::roles::interface::OperatorAdded"},{kind:"nested",name:"OperatorRemoved",type:"starkware_utils::components::roles::interface::OperatorRemoved"},{kind:"nested",name:"SecurityAdminAdded",type:"starkware_utils::components::roles::interface::SecurityAdminAdded"},{kind:"nested",name:"SecurityAdminRemoved",type:"starkware_utils::components::roles::interface::SecurityAdminRemoved"},{kind:"nested",name:"SecurityAgentAdded",type:"starkware_utils::components::roles::interface::SecurityAgentAdded"},{kind:"nested",name:"SecurityAgentRemoved",type:"starkware_utils::components::roles::interface::SecurityAgentRemoved"},{kind:"nested",name:"TokenAdminAdded",type:"starkware_utils::components::roles::interface::TokenAdminAdded"},{kind:"nested",name:"TokenAdminRemoved",type:"starkware_utils::components::roles::interface::TokenAdminRemoved"},{kind:"nested",name:"UpgradeGovernorAdded",type:"starkware_utils::components::roles::interface::UpgradeGovernorAdded"},{kind:"nested",name:"UpgradeGovernorRemoved",type:"starkware_utils::components::roles::interface::UpgradeGovernorRemoved"}]},{kind:"enum",name:"openzeppelin_introspection::src5::SRC5Component::Event",type:"event",variants:[]},{kind:"struct",name:"starkware_utils::components::replaceability::interface::ImplementationAdded",type:"event",members:[{kind:"data",name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}]},{kind:"struct",name:"starkware_utils::components::replaceability::interface::ImplementationRemoved",type:"event",members:[{kind:"data",name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}]},{kind:"struct",name:"starkware_utils::components::replaceability::interface::ImplementationReplaced",type:"event",members:[{kind:"data",name:"implementation_data",type:"starkware_utils::components::replaceability::interface::ImplementationData"}]},{kind:"struct",name:"starkware_utils::components::replaceability::interface::ImplementationFinalized",type:"event",members:[{kind:"data",name:"impl_hash",type:"core::starknet::class_hash::ClassHash"}]},{kind:"enum",name:"starkware_utils::components::replaceability::replaceability::ReplaceabilityComponent::Event",type:"event",variants:[{kind:"nested",name:"ImplementationAdded",type:"starkware_utils::components::replaceability::interface::ImplementationAdded"},{kind:"nested",name:"ImplementationRemoved",type:"starkware_utils::components::replaceability::interface::ImplementationRemoved"},{kind:"nested",name:"ImplementationReplaced",type:"starkware_utils::components::replaceability::interface::ImplementationReplaced"},{kind:"nested",name:"ImplementationFinalized",type:"starkware_utils::components::replaceability::interface::ImplementationFinalized"}]},{kind:"struct",name:"lbtc_asset_router::events::BasculeChanged",type:"event",members:[{kind:"data",name:"old_bascule",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"new_bascule",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"lbtc_asset_router::events::ConsortiumChanged",type:"event",members:[{kind:"data",name:"old_consortium",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"new_consortium",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"lbtc_asset_router::events::TreasuryChanged",type:"event",members:[{kind:"data",name:"old_treasury",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"new_treasury",type:"core::starknet::contract_address::ContractAddress"}]},{kind:"struct",name:"lbtc_asset_router::events::BurnCommissionChanged",type:"event",members:[{kind:"data",name:"old_burn_commission",type:"core::integer::u64"},{kind:"data",name:"new_burn_commission",type:"core::integer::u64"}]},{kind:"struct",name:"lbtc_asset_router::events::WithdrawalsEnabled",type:"event",members:[{kind:"data",name:"is_withdrawals_enabled",type:"core::bool"}]},{kind:"struct",name:"lbtc_asset_router::events::UnstakeRequest",type:"event",members:[{kind:"data",name:"from_address",type:"core::starknet::contract_address::ContractAddress"},{kind:"data",name:"script_pub_key",type:"core::byte_array::ByteArray"},{kind:"data",name:"amount_after_fee",type:"core::integer::u256"}]},{kind:"struct",name:"lbtc_asset_router::events::DustFeeRateChanged",type:"event",members:[{kind:"data",name:"old_rate",type:"core::integer::u128"},{kind:"data",name:"new_rate",type:"core::integer::u128"}]},{kind:"struct",name:"lbtc_asset_router::events::MintProofConsumed",type:"event",members:[{kind:"key",name:"recipient",type:"core::starknet::contract_address::ContractAddress"},{kind:"key",name:"payload_hash",type:"core::integer::u256"},{kind:"data",name:"payload",type:"core::byte_array::ByteArray"}]},{kind:"enum",name:"lbtc_asset_router::asset_router::asset_router::Event",type:"event",variants:[{kind:"flat",name:"AccessControlEvent",type:"openzeppelin_access::accesscontrol::accesscontrol::AccessControlComponent::Event"},{kind:"flat",name:"RolesEvent",type:"starkware_utils::components::roles::roles::RolesComponent::Event"},{kind:"flat",name:"SRC5Event",type:"openzeppelin_introspection::src5::SRC5Component::Event"},{kind:"flat",name:"ReplaceabilityEvent",type:"starkware_utils::components::replaceability::replaceability::ReplaceabilityComponent::Event"},{kind:"nested",name:"BasculeChanged",type:"lbtc_asset_router::events::BasculeChanged"},{kind:"nested",name:"ConsortiumChanged",type:"lbtc_asset_router::events::ConsortiumChanged"},{kind:"nested",name:"TreasuryChanged",type:"lbtc_asset_router::events::TreasuryChanged"},{kind:"nested",name:"BurnCommissionChanged",type:"lbtc_asset_router::events::BurnCommissionChanged"},{kind:"nested",name:"WithdrawalsEnabled",type:"lbtc_asset_router::events::WithdrawalsEnabled"},{kind:"nested",name:"UnstakeRequest",type:"lbtc_asset_router::events::UnstakeRequest"},{kind:"nested",name:"DustFeeRateChanged",type:"lbtc_asset_router::events::DustFeeRateChanged"},{kind:"nested",name:"MintProofConsumed",type:"lbtc_asset_router::events::MintProofConsumed"}]}];var yf=(e=>(e.ETH="ETH",e.LBTC="LBTC",e.STRK="STRK",e))(yf||{});const o3={[_e.SN_SEPOLIA]:{address:"0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",classHash:"0x076791ef97c042f81fbf352ad95f39a22554ee8d7927b2ce3c681f3418b5206a",abi:gs},[_e.SN_MAIN]:{address:"0x049D36570D4e46f48e99674bd3fcc84644DdD6b96F7C741B1562B82f9e004dC7",classHash:"",abi:gs}},Gu={[We.stage]:{[_e.SN_SEPOLIA]:{address:"0x00b442f5420860e937a99659326e81a97e07bfd538b3cee65b90029c9da38a5f",classHash:"0x01f12942315b6dd05a21392ced7890a380affa81066741de6ac31af4dcb0d468",abi:Bi},[_e.SN_MAIN]:void 0},[We.testnet]:{[_e.SN_SEPOLIA]:{address:"0x00456a829ab75ba5e97534dc70d7fc617cfda244f8dcda47b11624de67c6e70c",classHash:"0x01f12942315b6dd05a21392ced7890a380affa81066741de6ac31af4dcb0d468",abi:Bi},[_e.SN_MAIN]:void 0},[We.dev]:{[_e.SN_SEPOLIA]:{address:"0x0723de0c550b7bfbb5051dade72966d71a08bef952c0197462a5244497eb57c1",classHash:"0x01f12942315b6dd05a21392ced7890a380affa81066741de6ac31af4dcb0d468",abi:Bi},[_e.SN_MAIN]:void 0},[We.prod]:{[_e.SN_SEPOLIA]:void 0,[_e.SN_MAIN]:{address:"0x036834a40984312f7f7de8d31e3f6305b325389eaeea5b1c0664b2fb936461a4",classHash:"",abi:Bi}},[We.ibc]:void 0},Ku={[We.stage]:{[_e.SN_SEPOLIA]:{address:"0x01d27f156092746d0d7cd9d9deec5e937f27c3c7c1c28365e9e5efac459880b3",classHash:"0x0524d80f999f690bbb302f37a36abdf82ea2135391c3d1a5090e7665c20e2159",abi:Pi},[_e.SN_MAIN]:void 0},[We.testnet]:{[_e.SN_SEPOLIA]:{address:"0x063b7b5c8b114ebd5b9602fbd5d0ffd2cc3a598f1d91c6904cc0997cd8fea760",classHash:"0x0524d80f999f690bbb302f37a36abdf82ea2135391c3d1a5090e7665c20e2159",abi:Pi},[_e.SN_MAIN]:void 0},[We.dev]:{[_e.SN_SEPOLIA]:{address:"0x04838a05c798dc57e01e85526979841c84f1f3c732a525cff53adb3e8bee3d24",classHash:"0x0524d80f999f690bbb302f37a36abdf82ea2135391c3d1a5090e7665c20e2159",abi:Pi},[_e.SN_MAIN]:void 0},[We.prod]:{[_e.SN_SEPOLIA]:void 0,[_e.SN_MAIN]:{address:"0x05b1886d0f844ab930fc0ee066f1655a873437f15a5d2c41ee3e884fd5299976",classHash:"",abi:Pi}},[We.ibc]:void 0},Wu={[We.stage]:{[_e.SN_SEPOLIA]:{address:"0x001d16d02a4ed6f5673635b1ad3b27ead190904b83fafde7b4c55282ef57492a",classHash:"0x0083965992f591e5979068d8a12a09a1f13949e1d1f65f495e7a5503d2f1e519",abi:zi},[_e.SN_MAIN]:void 0},[We.testnet]:{[_e.SN_SEPOLIA]:{address:"0x01757fb630a6cc4e3607fc1d92e0f91c5b3eedd71420f1fa7dc6d1764827b012",classHash:"0x0083965992f591e5979068d8a12a09a1f13949e1d1f65f495e7a5503d2f1e519",abi:zi},[_e.SN_MAIN]:void 0},[We.dev]:{[_e.SN_SEPOLIA]:{address:"0x01757fb630a6cc4e3607fc1d92e0f91c5b3eedd71420f1fa7dc6d1764827b012",classHash:"0x0083965992f591e5979068d8a12a09a1f13949e1d1f65f495e7a5503d2f1e519",abi:zi},[_e.SN_MAIN]:void 0},[We.prod]:{[_e.SN_SEPOLIA]:void 0,[_e.SN_MAIN]:{address:"0x76b68231c1bddb7c981c5a19d9c6a28c5cb14161b8fcd3a857aa8a396d31f95",classHash:"",abi:zi}},[We.ibc]:void 0},i3={[_e.SN_SEPOLIA]:{address:"0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",classHash:"0x009524a94b41c4440a16fd96d7c1ef6ad6f44c1c013e96662734502cd4ee9b1f",abi:gs},[_e.SN_MAIN]:{address:"0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d",classHash:"0x009524a94b41c4440a16fd96d7c1ef6ad6f44c1c013e96662734502cd4ee9b1f",abi:gs}},$k=(e,t=_e.SN_MAIN,n="token",r=h_)=>{var a,o,i;if(n==="bridge")switch(e){case"LBTC":return(a=Ku==null?void 0:Ku[r])==null?void 0:a[t];default:return}if(n==="bascule")switch(e){case"LBTC":return(o=Wu==null?void 0:Wu[r])==null?void 0:o[t];default:return}switch(e){case"ETH":return o3[t];case"LBTC":return(i=Gu==null?void 0:Gu[r])==null?void 0:i[t];case"STRK":return i3[t]}},yr=({token:e,chainId:t,provider:n,contractType:r="token",env:a})=>{const o=$k(e,t,r,a);if(!o){const c=a==="prod",u=t===_e.SN_MAIN;throw c&&!u||!c&&u?r3(t??"unknown",a??"unknown"):JI(e)}const i=n||gr(t);if(!i)throw YI(t);return new GI(o.abi,o.address,i)};function Gk(e,t){return Hr(e).multipliedBy(Hr(10).pow(t)).decimalPlaces(0,Hr.ROUND_HALF_UP)}function s3(e,t){return Hr(e).dividedBy(Hr(10).pow(t))}async function c3({amount:e,spender:t,token:n,walletAccount:r,env:a}){const o=await r.getChainId(),i=gr(o),c=await yr({chainId:o,contractType:"token",provider:i,token:n,env:a}).decimals(),u=Gk(e,Number(c));return(await yr({chainId:o,contractType:"token",provider:r,token:n,env:a}).approve(t,u.toNumber())).transaction_hash}async function u3({account:e,token:t,chainId:n,env:r}){const a=gr(n),o=yr({chainId:n,contractType:"token",provider:a,token:t,env:r}),i=await o.balance_of(e),s=Hr.BigNumber(String(i)),c=await o.decimals();return s3(s,c)}const Ri=BigInt(2**32-1),Pm=BigInt(32);function l3(e,t=!1){return t?{h:Number(e&Ri),l:Number(e>>Pm&Ri)}:{h:Number(e>>Pm&Ri)|0,l:Number(e&Ri)|0}}function d3(e,t=!1){const n=e.length;let r=new Uint32Array(n),a=new Uint32Array(n);for(let o=0;o<n;o++){const{h:i,l:s}=l3(e[o],t);[r[o],a[o]]=[i,s]}return[r,a]}const f3=(e,t,n)=>e<<n|t>>>32-n,p3=(e,t,n)=>t<<n|e>>>32-n,h3=(e,t,n)=>t<<n-32|e>>>64-n,m3=(e,t,n)=>e<<n-32|t>>>64-n;/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */function g3(e){return e instanceof Uint8Array||ArrayBuffer.isView(e)&&e.constructor.name==="Uint8Array"}function Rm(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("positive integer expected, got "+e)}function ys(e,...t){if(!g3(e))throw new Error("Uint8Array expected");if(t.length>0&&!t.includes(e.length))throw new Error("Uint8Array expected of length "+t+", got length="+e.length)}function Nm(e,t=!0){if(e.destroyed)throw new Error("Hash instance has been destroyed");if(t&&e.finished)throw new Error("Hash#digest() has already been called")}function y3(e,t){ys(e);const n=t.outputLen;if(e.length<n)throw new Error("digestInto() expects output buffer of length at least "+n)}function b3(e){return new Uint32Array(e.buffer,e.byteOffset,Math.floor(e.byteLength/4))}function Kk(...e){for(let t=0;t<e.length;t++)e[t].fill(0)}const w3=new Uint8Array(new Uint32Array([287454020]).buffer)[0]===68;function k3(e){return e<<24&4278190080|e<<8&16711680|e>>>8&65280|e>>>24&255}function _3(e){for(let t=0;t<e.length;t++)e[t]=k3(e[t]);return e}const Um=w3?e=>e:_3;function v3(e){if(typeof e!="string")throw new Error("string expected");return new Uint8Array(new TextEncoder().encode(e))}function Wk(e){return typeof e=="string"&&(e=v3(e)),ys(e),e}class E3{}function A3(e){const t=r=>e().update(Wk(r)).digest(),n=e();return t.outputLen=n.outputLen,t.blockLen=n.blockLen,t.create=()=>e(),t}const S3=BigInt(0),$a=BigInt(1),j3=BigInt(2),x3=BigInt(7),T3=BigInt(256),I3=BigInt(113),Xk=[],Zk=[],Yk=[];for(let e=0,t=$a,n=1,r=0;e<24;e++){[n,r]=[r,(2*n+3*r)%5],Xk.push(2*(5*r+n)),Zk.push((e+1)*(e+2)/2%64);let a=S3;for(let o=0;o<7;o++)t=(t<<$a^(t>>x3)*I3)%T3,t&j3&&(a^=$a<<($a<<BigInt(o))-$a);Yk.push(a)}const Jk=d3(Yk,!0),C3=Jk[0],O3=Jk[1],Hm=(e,t,n)=>n>32?h3(e,t,n):f3(e,t,n),Lm=(e,t,n)=>n>32?m3(e,t,n):p3(e,t,n);function B3(e,t=24){const n=new Uint32Array(10);for(let r=24-t;r<24;r++){for(let i=0;i<10;i++)n[i]=e[i]^e[i+10]^e[i+20]^e[i+30]^e[i+40];for(let i=0;i<10;i+=2){const s=(i+8)%10,c=(i+2)%10,u=n[c],d=n[c+1],h=Hm(u,d,1)^n[s],f=Lm(u,d,1)^n[s+1];for(let l=0;l<50;l+=10)e[i+l]^=h,e[i+l+1]^=f}let a=e[2],o=e[3];for(let i=0;i<24;i++){const s=Zk[i],c=Hm(a,o,s),u=Lm(a,o,s),d=Xk[i];a=e[d],o=e[d+1],e[d]=c,e[d+1]=u}for(let i=0;i<50;i+=10){for(let s=0;s<10;s++)n[s]=e[i+s];for(let s=0;s<10;s++)e[i+s]^=~n[(s+2)%10]&n[(s+4)%10]}e[0]^=C3[r],e[1]^=O3[r]}Kk(n)}class bf extends E3{constructor(t,n,r,a=!1,o=24){if(super(),this.pos=0,this.posOut=0,this.finished=!1,this.destroyed=!1,this.enableXOF=!1,this.blockLen=t,this.suffix=n,this.outputLen=r,this.enableXOF=a,this.rounds=o,Rm(r),!(0<t&&t<200))throw new Error("only keccak-f1600 function is supported");this.state=new Uint8Array(200),this.state32=b3(this.state)}clone(){return this._cloneInto()}keccak(){Um(this.state32),B3(this.state32,this.rounds),Um(this.state32),this.posOut=0,this.pos=0}update(t){Nm(this),t=Wk(t),ys(t);const{blockLen:n,state:r}=this,a=t.length;for(let o=0;o<a;){const i=Math.min(n-this.pos,a-o);for(let s=0;s<i;s++)r[this.pos++]^=t[o++];this.pos===n&&this.keccak()}return this}finish(){if(this.finished)return;this.finished=!0;const{state:t,suffix:n,pos:r,blockLen:a}=this;t[r]^=n,(n&128)!==0&&r===a-1&&this.keccak(),t[a-1]^=128,this.keccak()}writeInto(t){Nm(this,!1),ys(t),this.finish();const n=this.state,{blockLen:r}=this;for(let a=0,o=t.length;a<o;){this.posOut>=r&&this.keccak();const i=Math.min(r-this.posOut,o-a);t.set(n.subarray(this.posOut,this.posOut+i),a),this.posOut+=i,a+=i}return t}xofInto(t){if(!this.enableXOF)throw new Error("XOF is not possible for this instance");return this.writeInto(t)}xof(t){return Rm(t),this.xofInto(new Uint8Array(t))}digestInto(t){if(y3(t,this),this.finished)throw new Error("digest() was already called");return this.writeInto(t),this.destroy(),t}digest(){return this.digestInto(new Uint8Array(this.outputLen))}destroy(){this.destroyed=!0,Kk(this.state)}_cloneInto(t){const{blockLen:n,suffix:r,outputLen:a,rounds:o,enableXOF:i}=this;return t||(t=new bf(n,r,a,i,o)),t.state32.set(this.state32),t.pos=this.pos,t.posOut=this.posOut,t.finished=this.finished,t.rounds=o,t.suffix=r,t.outputLen=a,t.enableXOF=i,t.destroyed=this.destroyed,t}}const z3=(e,t,n)=>A3(()=>new bf(t,e,n)),P3=z3(1,136,256/8);function R3(e){return e.startsWith("0x")}function Dm(e){return R3(e)?e:`0x${e}`}function N3(e){let t=e;t.startsWith("0x")&&(t=t.slice(2));const n=t.match(/.{64}/g);if(!n)throw new Error("Invalid hex string");const r=Number.parseInt(n[0],16)/32,a=Number.parseInt(n[r],16),o=r+1,i=[];for(let s=0;s<a;s++){const d=Number.parseInt(n[o+s],16)/32+o+1,h=`0x${n[d]}`,f=`0x${n[d+1]}`,l=ms.bnToUint256(h),g=ms.bnToUint256(f);i.push({0:l,1:g})}return i}async function U3({amount:e,depositPayload:t,depositTxId:n,depositIndex:r,depositProofSignature:a,token:o,walletAccount:i,recipientAddress:s,env:c}){const u=await i.getChainId(),d=(n.startsWith("0x")?n.slice(2):n).match(/.{2}/g);if(!d)throw new Error("Missing deposit tx id");const h=gr(u),l=yr({...{chainId:u,provider:h,token:o},contractType:"bascule",env:c}),g=Dm(Buffer.from(P3(Buffer.from(t.slice(8),"hex"))).toString("hex")),b=await l.get_deposit_status(BigInt(g));if(b.activeVariant()!=="Reported"){const I=`The deposit cannot be claimed. Bascule status: ${b.activeVariant()}`;console.warn(I)}const y=BigInt(gf(u)),_=s||i.address,k=BigInt(Dm(d.reverse().join(""))),w=Number(r),v=N3(a),A=yr({chainId:u,provider:i,token:o,contractType:"bridge",env:c}),{transaction_hash:T}=await A.mint(y,_,BigInt(e.toString()),k,w,v);return T}var Xu={},mt={},xn={},Fm;function nn(){return Fm||(Fm=1,Object.defineProperty(xn,"__esModule",{value:!0}),xn.testnet=xn.regtest=xn.bitcoin=void 0,xn.bitcoin={messagePrefix:`Bitcoin Signed Message:
218
218
  `,bech32:"bc",bip32:{public:76067358,private:76066276},pubKeyHash:0,scriptHash:5,wif:128},xn.regtest={messagePrefix:`Bitcoin Signed Message:
219
219
  `,bech32:"bcrt",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239},xn.testnet={messagePrefix:`Bitcoin Signed Message:
220
220
  `,bech32:"tb",bip32:{public:70617039,private:70615956},pubKeyHash:111,scriptHash:196,wif:239}),xn}var Zu={},Ga={},Yu={},Tn={},Mm;function Qk(){if(Mm)return Tn;Mm=1,Object.defineProperty(Tn,"__esModule",{value:!0}),Tn.encode=Tn.decode=Tn.check=void 0;function e(r){if(r.length<8||r.length>72||r[0]!==48||r[1]!==r.length-2||r[2]!==2)return!1;const a=r[3];if(a===0||5+a>=r.length||r[4+a]!==2)return!1;const o=r[5+a];return!(o===0||6+a+o!==r.length||r[4]&128||a>1&&r[4]===0&&!(r[5]&128)||r[a+6]&128||o>1&&r[a+6]===0&&!(r[a+7]&128))}Tn.check=e;function t(r){if(r.length<8)throw new Error("DER sequence length is too short");if(r.length>72)throw new Error("DER sequence length is too long");if(r[0]!==48)throw new Error("Expected DER sequence");if(r[1]!==r.length-2)throw new Error("DER sequence length is invalid");if(r[2]!==2)throw new Error("Expected DER integer");const a=r[3];if(a===0)throw new Error("R length is zero");if(5+a>=r.length)throw new Error("R length is too long");if(r[4+a]!==2)throw new Error("Expected DER integer (2)");const o=r[5+a];if(o===0)throw new Error("S length is zero");if(6+a+o!==r.length)throw new Error("S length is invalid");if(r[4]&128)throw new Error("R value is negative");if(a>1&&r[4]===0&&!(r[5]&128))throw new Error("R value excessively padded");if(r[a+6]&128)throw new Error("S value is negative");if(o>1&&r[a+6]===0&&!(r[a+7]&128))throw new Error("S value excessively padded");return{r:r.slice(4,4+a),s:r.slice(6+a)}}Tn.decode=t;function n(r,a){const o=r.length,i=a.length;if(o===0)throw new Error("R length is zero");if(i===0)throw new Error("S length is zero");if(o>33)throw new Error("R length is too long");if(i>33)throw new Error("S length is too long");if(r[0]&128)throw new Error("R value is negative");if(a[0]&128)throw new Error("S value is negative");if(o>1&&r[0]===0&&!(r[1]&128))throw new Error("R value excessively padded");if(i>1&&a[0]===0&&!(a[1]&128))throw new Error("S value excessively padded");const s=Buffer.allocUnsafe(6+o+i);return s[0]=48,s[1]=s.length-2,s[2]=2,s[3]=r.length,r.copy(s,4),s[4+o]=2,s[5+o]=a.length,a.copy(s,6+o),s}return Tn.encode=n,Tn}var vr={},qm;function wf(){if(qm)return vr;qm=1,Object.defineProperty(vr,"__esModule",{value:!0}),vr.REVERSE_OPS=vr.OPS=void 0;const e={OP_FALSE:0,OP_0:0,OP_PUSHDATA1:76,OP_PUSHDATA2:77,OP_PUSHDATA4:78,OP_1NEGATE:79,OP_RESERVED:80,OP_TRUE:81,OP_1:81,OP_2:82,OP_3:83,OP_4:84,OP_5:85,OP_6:86,OP_7:87,OP_8:88,OP_9:89,OP_10:90,OP_11:91,OP_12:92,OP_13:93,OP_14:94,OP_15:95,OP_16:96,OP_NOP:97,OP_VER:98,OP_IF:99,OP_NOTIF:100,OP_VERIF:101,OP_VERNOTIF:102,OP_ELSE:103,OP_ENDIF:104,OP_VERIFY:105,OP_RETURN:106,OP_TOALTSTACK:107,OP_FROMALTSTACK:108,OP_2DROP:109,OP_2DUP:110,OP_3DUP:111,OP_2OVER:112,OP_2ROT:113,OP_2SWAP:114,OP_IFDUP:115,OP_DEPTH:116,OP_DROP:117,OP_DUP:118,OP_NIP:119,OP_OVER:120,OP_PICK:121,OP_ROLL:122,OP_ROT:123,OP_SWAP:124,OP_TUCK:125,OP_CAT:126,OP_SUBSTR:127,OP_LEFT:128,OP_RIGHT:129,OP_SIZE:130,OP_INVERT:131,OP_AND:132,OP_OR:133,OP_XOR:134,OP_EQUAL:135,OP_EQUALVERIFY:136,OP_RESERVED1:137,OP_RESERVED2:138,OP_1ADD:139,OP_1SUB:140,OP_2MUL:141,OP_2DIV:142,OP_NEGATE:143,OP_ABS:144,OP_NOT:145,OP_0NOTEQUAL:146,OP_ADD:147,OP_SUB:148,OP_MUL:149,OP_DIV:150,OP_MOD:151,OP_LSHIFT:152,OP_RSHIFT:153,OP_BOOLAND:154,OP_BOOLOR:155,OP_NUMEQUAL:156,OP_NUMEQUALVERIFY:157,OP_NUMNOTEQUAL:158,OP_LESSTHAN:159,OP_GREATERTHAN:160,OP_LESSTHANOREQUAL:161,OP_GREATERTHANOREQUAL:162,OP_MIN:163,OP_MAX:164,OP_WITHIN:165,OP_RIPEMD160:166,OP_SHA1:167,OP_SHA256:168,OP_HASH160:169,OP_HASH256:170,OP_CODESEPARATOR:171,OP_CHECKSIG:172,OP_CHECKSIGVERIFY:173,OP_CHECKMULTISIG:174,OP_CHECKMULTISIGVERIFY:175,OP_NOP1:176,OP_NOP2:177,OP_CHECKLOCKTIMEVERIFY:177,OP_NOP3:178,OP_CHECKSEQUENCEVERIFY:178,OP_NOP4:179,OP_NOP5:180,OP_NOP6:181,OP_NOP7:182,OP_NOP8:183,OP_NOP9:184,OP_NOP10:185,OP_CHECKSIGADD:186,OP_PUBKEYHASH:253,OP_PUBKEY:254,OP_INVALIDOPCODE:255};vr.OPS=e;const t={};vr.REVERSE_OPS=t;for(const n of Object.keys(e)){const r=e[n];t[r]=n}return vr}var In={},Vm;function H3(){if(Vm)return In;Vm=1,Object.defineProperty(In,"__esModule",{value:!0}),In.decode=In.encode=In.encodingLength=void 0;const e=wf();function t(a){return a<e.OPS.OP_PUSHDATA1?1:a<=255?2:a<=65535?3:5}In.encodingLength=t;function n(a,o,i){const s=t(o);return s===1?a.writeUInt8(o,i):s===2?(a.writeUInt8(e.OPS.OP_PUSHDATA1,i),a.writeUInt8(o,i+1)):s===3?(a.writeUInt8(e.OPS.OP_PUSHDATA2,i),a.writeUInt16LE(o,i+1)):(a.writeUInt8(e.OPS.OP_PUSHDATA4,i),a.writeUInt32LE(o,i+1)),s}In.encode=n;function r(a,o){const i=a.readUInt8(o);let s,c;if(i<e.OPS.OP_PUSHDATA1)s=i,c=1;else if(i===e.OPS.OP_PUSHDATA1){if(o+2>a.length)return null;s=a.readUInt8(o+1),c=2}else if(i===e.OPS.OP_PUSHDATA2){if(o+3>a.length)return null;s=a.readUInt16LE(o+1),c=3}else{if(o+5>a.length)return null;if(i!==e.OPS.OP_PUSHDATA4)throw new Error("Unexpected opcode");s=a.readUInt32LE(o+1),c=5}return{opcode:i,number:s,size:c}}return In.decode=r,In}var Er={},$m;function L3(){if($m)return Er;$m=1,Object.defineProperty(Er,"__esModule",{value:!0}),Er.encode=Er.decode=void 0;function e(r,a,o){a=a||4,o=o===void 0?!0:o;const i=r.length;if(i===0)return 0;if(i>a)throw new TypeError("Script number overflow");if(o&&(r[i-1]&127)===0&&(i<=1||(r[i-2]&128)===0))throw new Error("Non-minimally encoded script number");if(i===5){const c=r.readUInt32LE(0),u=r.readUInt8(4);return u&128?-((u&-129)*4294967296+c):u*4294967296+c}let s=0;for(let c=0;c<i;++c)s|=r[c]<<8*c;return r[i-1]&128?-(s&~(128<<8*(i-1))):s}Er.decode=e;function t(r){return r>2147483647?5:r>8388607?4:r>32767?3:r>127?2:r>0?1:0}function n(r){let a=Math.abs(r);const o=t(a),i=Buffer.allocUnsafe(o),s=r<0;for(let c=0;c<o;++c)i.writeUInt8(a&255,c),a>>=8;return i[o-1]&128?i.writeUInt8(s?128:0,o-1):s&&(i[o-1]|=128),i}return Er.encode=n,Er}var Ar={},Ju={},Qu={},Ka={},Gm;function D3(){if(Gm)return Ka;Gm=1,Ka.byteLength=s,Ka.toByteArray=u,Ka.fromByteArray=f;for(var e=[],t=[],n=typeof Uint8Array<"u"?Uint8Array:Array,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",a=0,o=r.length;a<o;++a)e[a]=r[a],t[r.charCodeAt(a)]=a;t[45]=62,t[95]=63;function i(l){var g=l.length;if(g%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var b=l.indexOf("=");b===-1&&(b=g);var y=b===g?0:4-b%4;return[b,y]}function s(l){var g=i(l),b=g[0],y=g[1];return(b+y)*3/4-y}function c(l,g,b){return(g+b)*3/4-b}function u(l){var g,b=i(l),y=b[0],_=b[1],k=new n(c(l,y,_)),w=0,v=_>0?y-4:y,A;for(A=0;A<v;A+=4)g=t[l.charCodeAt(A)]<<18|t[l.charCodeAt(A+1)]<<12|t[l.charCodeAt(A+2)]<<6|t[l.charCodeAt(A+3)],k[w++]=g>>16&255,k[w++]=g>>8&255,k[w++]=g&255;return _===2&&(g=t[l.charCodeAt(A)]<<2|t[l.charCodeAt(A+1)]>>4,k[w++]=g&255),_===1&&(g=t[l.charCodeAt(A)]<<10|t[l.charCodeAt(A+1)]<<4|t[l.charCodeAt(A+2)]>>2,k[w++]=g>>8&255,k[w++]=g&255),k}function d(l){return e[l>>18&63]+e[l>>12&63]+e[l>>6&63]+e[l&63]}function h(l,g,b){for(var y,_=[],k=g;k<b;k+=3)y=(l[k]<<16&16711680)+(l[k+1]<<8&65280)+(l[k+2]&255),_.push(d(y));return _.join("")}function f(l){for(var g,b=l.length,y=b%3,_=[],k=16383,w=0,v=b-y;w<v;w+=k)_.push(h(l,w,w+k>v?v:w+k));return y===1?(g=l[b-1],_.push(e[g>>2]+e[g<<4&63]+"==")):y===2&&(g=(l[b-2]<<8)+l[b-1],_.push(e[g>>10]+e[g>>4&63]+e[g<<2&63]+"=")),_.join("")}return Ka}var Ni={};/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */var Km;function F3(){return Km||(Km=1,Ni.read=function(e,t,n,r,a){var o,i,s=a*8-r-1,c=(1<<s)-1,u=c>>1,d=-7,h=n?a-1:0,f=n?-1:1,l=e[t+h];for(h+=f,o=l&(1<<-d)-1,l>>=-d,d+=s;d>0;o=o*256+e[t+h],h+=f,d-=8);for(i=o&(1<<-d)-1,o>>=-d,d+=r;d>0;i=i*256+e[t+h],h+=f,d-=8);if(o===0)o=1-u;else{if(o===c)return i?NaN:(l?-1:1)*(1/0);i=i+Math.pow(2,r),o=o-u}return(l?-1:1)*i*Math.pow(2,o-r)},Ni.write=function(e,t,n,r,a,o){var i,s,c,u=o*8-a-1,d=(1<<u)-1,h=d>>1,f=a===23?Math.pow(2,-24)-Math.pow(2,-77):0,l=r?0:o-1,g=r?1:-1,b=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,i=d):(i=Math.floor(Math.log(t)/Math.LN2),t*(c=Math.pow(2,-i))<1&&(i--,c*=2),i+h>=1?t+=f/c:t+=f*Math.pow(2,1-h),t*c>=2&&(i++,c/=2),i+h>=d?(s=0,i=d):i+h>=1?(s=(t*c-1)*Math.pow(2,a),i=i+h):(s=t*Math.pow(2,h-1)*Math.pow(2,a),i=0));a>=8;e[n+l]=s&255,l+=g,s/=256,a-=8);for(i=i<<a|s,u+=a;u>0;e[n+l]=i&255,l+=g,i/=256,u-=8);e[n+l-g]|=b*128}),Ni}/*!