@lombard.finance/sdk 2.0.5 → 2.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +488 -1719
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/common/types/types.ts +3 -1
- package/src/sdk/const.ts +1 -1
- package/src/sdk/generateDepositBtcAddress/generateDepositBtcAddress.ts +8 -2
- package/src/sdk/getLBTCExchangeRate/getLBTCExchangeRate.ts +2 -2
- package/src/sdk/getNetworkFeeSignature/getNetworkFeeSignature.stories.tsx +2 -2
- package/src/sdk/index.ts +2 -0
- package/src/sdk/storeNetworkFeeSignature/storeNetworkFeeSignature.stories.tsx +3 -3
- package/src/sdk/storeStakeAndBakeSignature/index.ts +1 -0
- package/src/sdk/storeStakeAndBakeSignature/storeStakeAndBakeSignature.stories.tsx +143 -0
- package/src/sdk/storeStakeAndBakeSignature/storeStakeAndBakeSignature.ts +56 -0
- package/src/web3Sdk/getBasculeDepositStatus/getBasculeDepositStatus.ts +12 -1
- package/src/web3Sdk/getLBTCMintingFee/getLBTCMintingFee.stories.tsx +2 -2
- package/src/web3Sdk/index.ts +2 -11
- package/src/web3Sdk/lbtcAddressConfig.ts +4 -1
- package/src/web3Sdk/lbtcOFTAdapterAddressConfig.ts +21 -12
- package/src/web3Sdk/signNetworkFee/getTypedData.ts +1 -1
- package/src/web3Sdk/signNetworkFee/signNetworkFee.ts +6 -2
- package/src/web3Sdk/signStakeAndBake/config.ts +13 -0
- package/src/web3Sdk/signStakeAndBake/getTypedData.ts +82 -0
- package/src/web3Sdk/signStakeAndBake/index.ts +2 -0
- package/src/web3Sdk/signStakeAndBake/signStakeAndBake.stories.tsx +143 -0
- package/src/web3Sdk/signStakeAndBake/signStakeAndBake.ts +99 -0
- package/src/web3Sdk/utils/chainIdToEnv.ts +7 -6
- package/src/web3Sdk/utils/getBasculeTokenContract.ts +4 -13
- package/src/web3Sdk/basculeAddressConfig.ts +0 -68
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var Re=Object.defineProperty;var Ie=(e,t,n)=>t in e?Re(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var v=(e,t,n)=>(Ie(e,typeof t!="symbol"?t+"":t,n),n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("axios"),S=require("bignumber.js"),T=require("web3"),_e=require("@bitcoin-js/tiny-secp256k1-asmjs"),x=require("bitcoinjs-lib");function xe(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const n in e)if(n!=="default"){const s=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,s.get?s:{enumerable:!0,get:()=>e[n]})}}return t.default=e,Object.freeze(t)}const De=xe(_e),d={prod:"prod",testnet:"testnet",stage:"stage"},a={ethereum:1,holesky:17e3,binanceSmartChain:56,binanceSmartChainTestnet:97,sepolia:11155111,base:8453,baseTestnet:84532,berachainBartioTestnet:80084,corn:21e6},ye=e=>e===d.prod?a.ethereum:a.holesky,ce=e=>e===d.prod?a.binanceSmartChain:a.binanceSmartChainTestnet,le=e=>e===d.prod?a.base:a.baseTestnet,D=d.prod,o="0x0000000000000000000000000000000000000000",Ne={baseApiUrl:"https://staging.prod.lombard.finance"},Me={baseApiUrl:"https://gastald-testnet.prod.lombard.finance"},Pe={baseApiUrl:"https://mainnet.prod.lombard.finance"},E=(e=D)=>{switch(e){case d.prod:return Pe;case d.testnet:return Me;default:return Ne}};function I(e){return typeof e=="string"?e:(n=>{var s;return((s=n==null?void 0:n.data)==null?void 0:s.message)&&typeof n.data.message=="string"})(e)?e.data.message:e instanceof Error?Oe(e):Be(e)}function Oe(e){return e.response?e.response.data.message:e.message}function Be(e){return e!=null&&e.message?e.message:"Unknown error"}const C={eth:"DESTINATION_BLOCKCHAIN_ETHEREUM",base:"DESTINATION_BLOCKCHAIN_BASE",bsc:"DESTINATION_BLOCKCHAIN_BSC",mantle:"DESTINATION_BLOCKCHAIN_MANTLE",linea:"DESTINATION_BLOCKCHAIN_LINEA",zcircuit:"DESTINATION_BLOCKCHAIN_ZIRCUIT",scroll:"DESTINATION_BLOCKCHAIN_SCROLL",xlayer:"DESTINATION_BLOCKCHAIN_XLAYER"};function K(e){switch(e){case a.ethereum:case a.holesky:case a.sepolia:return C.eth;case a.base:case a.baseTestnet:return C.base;case a.binanceSmartChain:case a.binanceSmartChainTestnet:return C.bsc;default:throw new Error(`Unknown chain ID: ${e}`)}}const me="sanctioned_address",Ue="api/v1/address/generate",Le="destination address is under sanctions";async function Fe({address:e,chainId:t,signature:n,env:s,referrerCode:i,partnerId:r,captchaToken:p=""}){const{baseApiUrl:u}=E(s),y=K(t),g={to_address:e,to_address_signature:n,to_chain:y,referrer_code:i,partner_id:r,nonce:0,captcha:p};try{const{data:l}=await R.post(Ue,g,{baseURL:u});return l.address}catch(l){const w=I(l);if(ke(w))return me;throw new Error(w)}}function ke(e){return!!e.includes(Le)}const Ge="api/v1/address";async function We({address:e,chainId:t,env:n,partnerId:s}){const i=await be({address:e,chainId:t,env:n,partnerId:s}),r=Ve(i);if(!r)throw new Error("No address");return r.btc_address}function Ve(e){if(!e.length)return;const t=e.reduce((n,s)=>n.created_at<s.created_at?s:n,e[0]);return t.deprecated?void 0:t}async function be({address:e,chainId:t,env:n,partnerId:s}){const{baseApiUrl:i}=E(n),r=K(t),p={to_address:e,to_blockchain:r,limit:1,offset:0,asc:!1,referralId:s},{data:u}=await R.get(Ge,{baseURL:i,params:p});return(u==null?void 0:u.addresses)||[]}const He=8,X=10**He;function O(e){return+e/X}function te(e){return Math.floor(+e*X)}function fe(e,t=D){switch(e){case C.eth:return ye(t);case C.base:return le(t);case C.bsc:return ce(t);default:return a.ethereum}}var Te=(e=>(e.NOTARIZATION_STATUS_UNSPECIFIED="NOTARIZATION_STATUS_UNSPECIFIED",e.NOTARIZATION_STATUS_PENDING="NOTARIZATION_STATUS_PENDING",e.NOTARIZATION_STATUS_SUBMITTED="NOTARIZATION_STATUS_SUBMITTED",e.NOTARIZATION_STATUS_SESSION_APPROVED="NOTARIZATION_STATUS_SESSION_APPROVED",e.NOTARIZATION_STATUS_FAILED="NOTARIZATION_STATUS_FAILED",e))(Te||{}),he=(e=>(e.SESSION_STATE_UNSPECIFIED="SESSION_STATE_UNSPECIFIED",e.SESSION_STATE_PENDING="SESSION_STATE_PENDING",e.SESSION_STATE_COMPLETED="SESSION_STATE_COMPLETED",e.SESSION_STATE_EXPIRED="SESSION_STATE_EXPIRED",e))(he||{});async function $e({address:e,env:t}){const{baseApiUrl:n}=E(t),{data:s}=await R.get(`api/v1/address/outputs-v2/${e}`,{baseURL:n});return((s==null?void 0:s.outputs)??[]).map(je(t))}function je(e){return t=>({txid:t.txid,index:t.index??0,blockHeight:t.block_height?Number(t.block_height):void 0,blockTime:t.block_time?Number(t.block_time):void 0,value:new S(O(t.value)),address:t.address,chainId:fe(t.to_chain,e),claimedTxId:t.claim_tx,rawPayload:t.raw_payload,signature:t.proof,isRestricted:!!t.sanctioned,notarizationWaitDur:t.notarization_wait_dur?Number(t.notarization_wait_dur):void 0,payload:t.payload_hash,sessionId:t.session_id,notarizationStatus:t.notarization_status,sessionState:t.session_state})}const qe=2e-4;async function Je({env:e,chainId:t=a.ethereum,amount:n=1}){const{baseApiUrl:s}=E(e),i=K(t),{data:r}=await R.get(`api/v1/exchange/rate/${i}`,{baseURL:s,params:{amount:n}}),p=new S(qe).multipliedBy(X).toFixed();return{exchangeRate:+r.amount_out,minAmount:+p}}async function Ze({address:e,chainId:t,env:n}){const{baseApiUrl:s}=E(n);try{const{data:i}=await R.get(`${s}/api/v1/claimer/get-user-signature`,{params:{user_destination_address:e,chain_id:t}});return{expirationDate:i==null?void 0:i.expiration_date,hasSignature:i==null?void 0:i.has_signature,isDelayed:i==null?void 0:i.is_delayed}}catch(i){const r=I(i);throw new Error(r)}}async function ze({signature:e,typedData:t,address:n,env:s}){const{baseApiUrl:i}=E(s);try{const{data:r}=await R.post(`${i}/api/v1/claimer/save-user-signature`,null,{params:{typed_data:t,signature:e,user_destination_address:n}});return r.status}catch(r){const p=I(r);throw new Error(p)}}const B={[a.ethereum]:"https://rpc.ankr.com/eth",[a.holesky]:"https://rpc.ankr.com/eth_holesky",[a.sepolia]:"https://rpc.ankr.com/eth_sepolia",[a.base]:"https://rpc.ankr.com/base",[a.baseTestnet]:"https://rpc.ankr.com/base_sepolia",[a.binanceSmartChain]:"https://rpc.ankr.com/bsc",[a.binanceSmartChainTestnet]:"https://rpc.ankr.com/bsc_testnet_chapel"};async function Ke(e){const n=await(await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_maxPriorityFeePerGas",params:[]})})).json(),s=T.utils.hexToNumber(n==null?void 0:n.result);return new S(Number(s))}const Xe=2,Ye=25e3;class Y{constructor({chainId:t,rpcUrlConfig:n}){v(this,"chainId");v(this,"rpcConfig");this.chainId=t,this.rpcConfig={...B,...n}}getReadWeb3(){const t=this.getRpcUrl(),n=new T.Web3,s=new T.Web3.providers.HttpProvider(t);return n.setProvider(s),n}getRpcUrl(){var s;const{chainId:t}=this,n=(s=this.rpcConfig)==null?void 0:s[t];if(!n)throw console.error(`You might need to add the rpcConfig for the ${t} chain ID when creating the provider.`),new Error(`RPC URL for chainId ${t} not found`);return n}async getMaxFees(){const t=this.getReadWeb3(),n=this.getRpcUrl(),[s,i]=await Promise.all([t.eth.getBlock("latest"),Ke(n)]);return!(s!=null&&s.baseFeePerGas)&&typeof(s==null?void 0:s.baseFeePerGas)!="bigint"?{}:{maxFeePerGas:+new S(s.baseFeePerGas.toString(10)).multipliedBy(Xe).plus(i),maxPriorityFeePerGas:+i}}async getSafeGasPriceWei(){const t=await this.getReadWeb3().eth.getGasPrice();return new S(t.toString(10)).plus(Ye)}createContract(t,n){const s=this.getReadWeb3();return new s.eth.Contract(t,n)}}class _ extends Y{constructor({provider:n,account:s,chainId:i,rpcUrlConfig:r}){super({chainId:i,rpcUrlConfig:r});v(this,"web3");v(this,"account");v(this,"rpcConfig",B);this.web3=new T(n),this.account=s,this.chainId=i,this.rpcConfig={...B,...r}}async signMessage(n){const{account:s}=this,i=`0x${Buffer.from(n,"utf8").toString("hex")}`;return this.web3.currentProvider.request({method:"personal_sign",params:[i,s]})}async sendTransactionAsync(n,s,i){const{chainId:r,web3:p}=this,u=this.getReadWeb3(),{data:y,estimate:g=!1,estimateFee:l=!1,extendedGasLimit:w,gasLimit:N="0",value:Ce="0",gasLimitMultiplier:Se=1}=i;let{nonce:M}=i;M||(M=await u.eth.getTransactionCount(n)),console.log(`Nonce: ${M}`);const c={from:n,to:s,value:T.utils.numberToHex(Ce),data:y,nonce:M,chainId:T.utils.numberToHex(r)};if(g)try{const h=await u.eth.estimateGas(c),P=Math.round(Number(h)*Se);w?c.gas=T.utils.numberToHex(P+w):c.gas=T.utils.numberToHex(P)}catch(h){throw new Error(h.message??"Failed to estimate gas limit for transaction.")}else c.gas=T.utils.numberToHex(N);const{maxFeePerGas:se,maxPriorityFeePerGas:ie}=l?await this.getMaxFees().catch(()=>i):i;if(ie!==void 0&&(c.maxPriorityFeePerGas=T.utils.numberToHex(ie)),se!==void 0&&(c.maxFeePerGas=T.utils.numberToHex(se)),!c.maxFeePerGas&&!c.maxPriorityFeePerGas){const h=await this.getSafeGasPriceWei();c.gasPrice=h.toString(10)}if(!c.maxFeePerGas&&!c.maxPriorityFeePerGas){const h=await this.getSafeGasPriceWei();c.gasPrice=h.toString(10)}return console.log("Sending transaction via Web3: ",c),new Promise((h,P)=>{const re=p.eth.sendTransaction(c);re.once("transactionHash",async oe=>{console.log(`Just signed transaction has is: ${oe}`),h({receiptPromise:re,transactionHash:oe})}).catch(P)})}createContract(n,s){return new this.web3.eth.Contract(n,s)}}function ne(e){switch(e){case a.ethereum:return 1.3;case a.holesky:case a.sepolia:return 1.5;default:return 1.3}}function Q(e){return Object.values(a).includes(e)}const Qe={[a.holesky]:"0xED7bfd5C1790576105Af4649817f6d35A75CD818",[a.ethereum]:o,[a.binanceSmartChainTestnet]:"0x731eFa688F3679688cf60A3993b8658138953ED6",[a.binanceSmartChain]:o,[a.sepolia]:"0xc47e4b3124597fdf8dd07843d4a7052f2ee80c30",[a.base]:o,[a.baseTestnet]:o,[a.berachainBartioTestnet]:"0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30",[a.corn]:o},et={[a.holesky]:"0x38A13AB20D15ffbE5A7312d2336EF1552580a4E2",[a.ethereum]:o,[a.binanceSmartChainTestnet]:"0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5",[a.binanceSmartChain]:o,[a.sepolia]:"0xc47e4b3124597fdf8dd07843d4a7052f2ee80c30",[a.base]:o,[a.baseTestnet]:o,[a.berachainBartioTestnet]:"0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30",[a.corn]:o},tt={[a.ethereum]:"0x8236a87084f8b84306f72007f36f2618a5634494",[a.holesky]:o,[a.sepolia]:o,[a.binanceSmartChainTestnet]:o,[a.binanceSmartChain]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[a.base]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[a.baseTestnet]:o,[a.berachainBartioTestnet]:o,[a.corn]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1"};function ge(e=D){switch(e){case d.prod:return tt;case d.testnet:return et;default:return Qe}}const nt=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"}],at=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"uint256",name:"dustLimit",type:"uint256"}],name:"AmountBelowDustLimit",type:"error"},{inputs:[{internalType:"uint256",name:"fee",type:"uint256"}],name:"AmountLessThanCommission",type:"error"},{inputs:[],name:"ECDSAInvalidSignature",type:"error"},{inputs:[{internalType:"uint256",name:"length",type:"uint256"}],name:"ECDSAInvalidSignatureLength",type:"error"},{inputs:[{internalType:"bytes32",name:"s",type:"bytes32"}],name:"ECDSAInvalidSignatureS",type:"error"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"allowance",type:"uint256"},{internalType:"uint256",name:"needed",type:"uint256"}],name:"ERC20InsufficientAllowance",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"balance",type:"uint256"},{internalType:"uint256",name:"needed",type:"uint256"}],name:"ERC20InsufficientBalance",type:"error"},{inputs:[{internalType:"address",name:"approver",type:"address"}],name:"ERC20InvalidApprover",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"ERC20InvalidReceiver",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"}],name:"ERC20InvalidSender",type:"error"},{inputs:[{internalType:"address",name:"spender",type:"address"}],name:"ERC20InvalidSpender",type:"error"},{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"}],name:"ERC2612ExpiredSignature",type:"error"},{inputs:[{internalType:"address",name:"signer",type:"address"},{internalType:"address",name:"owner",type:"address"}],name:"ERC2612InvalidSigner",type:"error"},{inputs:[],name:"EnforcedPause",type:"error"},{inputs:[],name:"ExpectedPause",type:"error"},{inputs:[],name:"FeeGreaterThanAmount",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"currentNonce",type:"uint256"}],name:"InvalidAccountNonce",type:"error"},{inputs:[],name:"InvalidDustFeeRate",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"InvalidInputLength",type:"error"},{inputs:[],name:"InvalidUserSignature",type:"error"},{inputs:[],name:"KnownDestination",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[],name:"PayloadAlreadyUsed",type:"error"},{inputs:[],name:"ReentrancyGuardReentrantCall",type:"error"},{inputs:[],name:"ScriptPubkeyUnsupported",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"UnauthorizedAccount",type:"error"},{inputs:[{internalType:"bytes4",name:"action",type:"bytes4"}],name:"UnexpectedAction",type:"error"},{inputs:[],name:"UnknownDestination",type:"error"},{inputs:[{internalType:"uint256",name:"fromChainId",type:"uint256"},{internalType:"address",name:"fromContract",type:"address"}],name:"UnknownOriginContract",type:"error"},{inputs:[{internalType:"uint256",name:"expiry",type:"uint256"}],name:"UserSignatureExpired",type:"error"},{inputs:[],name:"WithdrawalsDisabled",type:"error"},{inputs:[],name:"WrongChainId",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{inputs:[],name:"ZeroAmount",type:"error"},{inputs:[],name:"ZeroChainId",type:"error"},{inputs:[],name:"ZeroContractHash",type:"error"},{inputs:[],name:"ZeroFee",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"prevVal",type:"address"},{indexed:!0,internalType:"address",name:"newVal",type:"address"}],name:"BasculeChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"prevVal",type:"address"},{indexed:!0,internalType:"address",name:"newVal",type:"address"}],name:"BridgeChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint64",name:"prevValue",type:"uint64"},{indexed:!0,internalType:"uint64",name:"newValue",type:"uint64"}],name:"BurnCommissionChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"claimer",type:"address"},{indexed:!1,internalType:"bool",name:"isClaimer",type:"bool"}],name:"ClaimerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"prevVal",type:"address"},{indexed:!0,internalType:"address",name:"newVal",type:"address"}],name:"ConsortiumChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"oldRate",type:"uint256"},{indexed:!0,internalType:"uint256",name:"newRate",type:"uint256"}],name:"DustFeeRateChanged",type:"event"},{anonymous:!1,inputs:[],name:"EIP712DomainChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"oldFee",type:"uint256"},{indexed:!0,internalType:"uint256",name:"newFee",type:"uint256"}],name:"FeeChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"fee",type:"uint256"},{indexed:!1,internalType:"bytes",name:"userSignature",type:"bytes"}],name:"FeeCharged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!0,internalType:"bytes32",name:"payloadHash",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"}],name:"MintProofConsumed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"minter",type:"address"},{indexed:!1,internalType:"bool",name:"isMinter",type:"bool"}],name:"MinterUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"name",type:"string"},{indexed:!1,internalType:"string",name:"symbol",type:"string"}],name:"NameAndSymbolChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferStarted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousPauser",type:"address"},{indexed:!0,internalType:"address",name:"newPauser",type:"address"}],name:"PauserRoleTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"prevValue",type:"address"},{indexed:!0,internalType:"address",name:"newValue",type:"address"}],name:"TreasuryAddressChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"fromAddress",type:"address"},{indexed:!1,internalType:"bytes",name:"scriptPubKey",type:"bytes"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"UnstakeRequest",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"",type:"bool"}],name:"WithdrawalsEnabled",type:"event"},{inputs:[],name:"Bascule",outputs:[{internalType:"contract IBascule",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"acceptOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newClaimer",type:"address"}],name:"addClaimer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newMinter",type:"address"}],name:"addMinter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"amount",type:"uint256[]"}],name:"batchMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"payload",type:"bytes[]"},{internalType:"bytes[]",name:"proof",type:"bytes[]"}],name:"batchMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"mintPayload",type:"bytes[]"},{internalType:"bytes[]",name:"proof",type:"bytes[]"},{internalType:"bytes[]",name:"feePayload",type:"bytes[]"},{internalType:"bytes[]",name:"userSignature",type:"bytes[]"}],name:"batchMintWithFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"scriptPubkey",type:"bytes"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"calcUnstakeRequestAmount",outputs:[{internalType:"uint256",name:"amountAfterFee",type:"uint256"},{internalType:"bool",name:"isAboveDust",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newVal",type:"address"}],name:"changeBascule",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newBridge",type:"address"}],name:"changeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint64",name:"newValue",type:"uint64"}],name:"changeBurnCommission",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newVal",type:"address"}],name:"changeConsortium",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"newRate",type:"uint256"}],name:"changeDustFeeRate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"changeNameAndSymbol",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newValue",type:"address"}],name:"changeTreasuryAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"consortium",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"fields",type:"bytes1"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"address",name:"verifyingContract",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"uint256[]",name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBurnCommission",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[],name:"getDustFeeRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getMintFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getTreasury",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"consortium_",type:"address"},{internalType:"uint64",name:"burnCommission_",type:"uint64"},{internalType:"address",name:"owner_",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"claimer",type:"address"}],name:"isClaimer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"minter",type:"address"}],name:"isMinter",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"bytes",name:"proof",type:"bytes"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"mintPayload",type:"bytes"},{internalType:"bytes",name:"proof",type:"bytes"},{internalType:"bytes",name:"feePayload",type:"bytes"},{internalType:"bytes",name:"userSignature",type:"bytes"}],name:"mintWithFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"pauser",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pendingOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"scriptPubkey",type:"bytes"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"redeem",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"reinitialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"oldClaimer",type:"address"}],name:"removeClaimer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"oldMinter",type:"address"}],name:"removeMinter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"fee",type:"uint256"}],name:"setMintFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"toggleWithdrawals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newPauser",type:"address"}],name:"transferPauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"fromChain",type:"uint256"},{internalType:"address",name:"fromContract",type:"address"},{internalType:"uint256",name:"toChain",type:"uint256"},{internalType:"address",name:"toContract",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint64",name:"amount",type:"uint64"},{internalType:"bytes32",name:"uniqueActionData",type:"bytes32"}],internalType:"struct Actions.DepositBridgeAction",name:"action",type:"tuple"},{internalType:"bytes32",name:"",type:"bytes32"},{internalType:"bytes",name:"",type:"bytes"}],name:"withdraw",outputs:[],stateMutability:"nonpayable",type:"function"}],st=[{inputs:[{internalType:"address",name:"aDefaultAdmin",type:"address"},{internalType:"address",name:"aPauser",type:"address"},{internalType:"address",name:"aDepositReporter",type:"address"},{internalType:"address",name:"aWithdrawalValidator",type:"address"},{internalType:"uint256",name:"aMaxDeposits",type:"uint256"}],stateMutability:"nonpayable",type:"constructor"},{inputs:[],name:"AccessControlBadConfirmation",type:"error"},{inputs:[{internalType:"uint48",name:"schedule",type:"uint48"}],name:"AccessControlEnforcedDefaultAdminDelay",type:"error"},{inputs:[],name:"AccessControlEnforcedDefaultAdminRules",type:"error"},{inputs:[{internalType:"address",name:"defaultAdmin",type:"address"}],name:"AccessControlInvalidDefaultAdmin",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"bytes32",name:"neededRole",type:"bytes32"}],name:"AccessControlUnauthorizedAccount",type:"error"},{inputs:[{internalType:"bytes32",name:"depositID",type:"bytes32"}],name:"AlreadyReported",type:"error"},{inputs:[{internalType:"bytes32",name:"depositID",type:"bytes32"},{internalType:"uint256",name:"withdrawalAmount",type:"uint256"}],name:"AlreadyWithdrawn",type:"error"},{inputs:[],name:"BadDepositReport",type:"error"},{inputs:[],name:"EnforcedPause",type:"error"},{inputs:[],name:"ExpectedPause",type:"error"},{inputs:[{internalType:"uint8",name:"bits",type:"uint8"},{internalType:"uint256",name:"value",type:"uint256"}],name:"SafeCastOverflowedUintDowncast",type:"error"},{inputs:[],name:"SameValidationThreshold",type:"error"},{inputs:[{internalType:"bytes32",name:"depositID",type:"bytes32"},{internalType:"uint256",name:"withdrawalAmount",type:"uint256"}],name:"WithdrawalFailedValidation",type:"error"},{anonymous:!1,inputs:[],name:"DefaultAdminDelayChangeCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint48",name:"newDelay",type:"uint48"},{indexed:!1,internalType:"uint48",name:"effectSchedule",type:"uint48"}],name:"DefaultAdminDelayChangeScheduled",type:"event"},{anonymous:!1,inputs:[],name:"DefaultAdminTransferCanceled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"newAdmin",type:"address"},{indexed:!1,internalType:"uint48",name:"acceptSchedule",type:"uint48"}],name:"DefaultAdminTransferScheduled",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"reportId",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"numDeposits",type:"uint256"}],name:"DepositsReported",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"numDeposits",type:"uint256"}],name:"MaxDepositsUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"previousAdminRole",type:"bytes32"},{indexed:!0,internalType:"bytes32",name:"newAdminRole",type:"bytes32"}],name:"RoleAdminChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleGranted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"bytes32",name:"role",type:"bytes32"},{indexed:!0,internalType:"address",name:"account",type:"address"},{indexed:!0,internalType:"address",name:"sender",type:"address"}],name:"RoleRevoked",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint256",name:"oldThreshold",type:"uint256"},{indexed:!1,internalType:"uint256",name:"newThreshold",type:"uint256"}],name:"UpdateValidateThreshold",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"depositID",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"withdrawalAmount",type:"uint256"}],name:"WithdrawalNotValidated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bytes32",name:"depositID",type:"bytes32"},{indexed:!1,internalType:"uint256",name:"withdrawalAmount",type:"uint256"}],name:"WithdrawalValidated",type:"event"},{inputs:[],name:"DEFAULT_ADMIN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"DEPOSIT_REPORTER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"PAUSER_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"VALIDATION_GUARDIAN_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"WITHDRAWAL_VALIDATOR_ROLE",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"acceptDefaultAdminTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newAdmin",type:"address"}],name:"beginDefaultAdminTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"cancelDefaultAdminTransfer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint48",name:"newDelay",type:"uint48"}],name:"changeDefaultAdminDelay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"defaultAdmin",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"defaultAdminDelay",outputs:[{internalType:"uint48",name:"",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[],name:"defaultAdminDelayIncreaseWait",outputs:[{internalType:"uint48",name:"",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"depositID",type:"bytes32"}],name:"depositHistory",outputs:[{internalType:"enum Bascule.DepositState",name:"status",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"}],name:"getRoleAdmin",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"grantRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"hasRole",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"maxDeposits",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"pendingDefaultAdmin",outputs:[{internalType:"address",name:"newAdmin",type:"address"},{internalType:"uint48",name:"schedule",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[],name:"pendingDefaultAdminDelay",outputs:[{internalType:"uint48",name:"newDelay",type:"uint48"},{internalType:"uint48",name:"schedule",type:"uint48"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"renounceRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"reportId",type:"bytes32"},{internalType:"bytes32[]",name:"depositIDs",type:"bytes32[]"}],name:"reportDeposits",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes32",name:"role",type:"bytes32"},{internalType:"address",name:"account",type:"address"}],name:"revokeRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"rollbackDefaultAdminDelay",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"aMaxDeposits",type:"uint256"}],name:"setMaxDeposits",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes4",name:"interfaceId",type:"bytes4"}],name:"supportsInterface",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"newThreshold",type:"uint256"}],name:"updateValidateThreshold",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"validateThreshold",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"bytes32",name:"depositID",type:"bytes32"},{internalType:"uint256",name:"withdrawalAmount",type:"uint256"}],name:"validateWithdrawal",outputs:[],stateMutability:"nonpayable",type:"function"}];function it(e){switch(e){case"LBTC":return at;default:return nt}}function A(e,t){const n=ge(t),{chainId:s}=e;if(!Q(s))throw new Error(`This chain ${s} is not supported`);const i=n[s];if(!i)throw new Error(`Token address for chain ${s} is not defined`);const r=it("LBTC"),p=e.createContract(r,i);return p.options.address||(p.options.address=i),p}function rt({spender:e,amount:t,env:n,...s}){const i=new _(s),r=A(i,n),p=te(t),u=r.methods.approve(e,p);return i.sendTransactionAsync(i.account,r.options.address,{data:u.encodeABI(),estimate:!0,estimateFee:!0,gasLimitMultiplier:ne(i.chainId)})}const ot="insufficient funds",pt="Insufficient funds for transfer. Make sure you have enough ETH to cover the gas cost.",pe=e=>e.startsWith("0x")?e:"0x"+e;async function ut({data:e,proofSignature:t,env:n,...s}){const i=new _(s),r=A(i,n),p=r.methods.mint(pe(e),pe(t));try{return await i.sendTransactionAsync(i.account,r.options.address,{data:p.encodeABI(),estimate:!0,estimateFee:!0,gasLimitMultiplier:ne(i.chainId)})}catch(u){console.log("error",u);const y=I(u);throw y.includes(ot)?new Error(pt):new Error(y)}}const dt=208,yt=4001,ct=4100,lt=4200,mt=4900,bt=4901,U=-32700,L=-32600,F=-32601,k=-32602,G=-32603,W=-32e3,V=-32001,H=-32002,$=-32003,j=-32004,q=-32005,J=-32006;class we extends Error{constructor(t,n){super(t),Array.isArray(n)?this.cause=new ee(n):this.cause=n,this.name=this.constructor.name,typeof Error.captureStackTrace=="function"?Error.captureStackTrace(new.target.constructor):this.stack=new Error().stack}get innerError(){return this.cause instanceof ee?this.cause.errors:this.cause}set innerError(t){Array.isArray(t)?this.cause=new ee(t):this.cause=t}static convertToString(t,n=!1){if(t==null)return"undefined";const s=JSON.stringify(t,(i,r)=>typeof r=="bigint"?r.toString():r);return n&&["bigint","string"].includes(typeof t)?s.replace(/['\\"]+/g,""):s}toJSON(){return{name:this.name,code:this.code,message:this.message,cause:this.cause,innerError:this.cause}}}class ee extends we{constructor(t){super(`Multiple errors occurred: [${t.map(n=>n.message).join("], [")}]`),this.code=dt,this.errors=t}}const ft="An Rpc error has occured with a code of *code*",m={[U]:{message:"Parse error",description:"Invalid JSON"},[L]:{message:"Invalid request",description:"JSON is not a valid request object "},[F]:{message:"Method not found",description:"Method does not exist "},[k]:{message:"Invalid params",description:"Invalid method parameters"},[G]:{message:"Internal error",description:"Internal JSON-RPC error"},[W]:{message:"Invalid input",description:"Missing or invalid parameters"},[V]:{message:"Resource not found",description:"Requested resource not found"},[H]:{message:"Resource unavailable",description:"Requested resource not available"},[$]:{message:"Transaction rejected",description:"Transaction creation failed"},[j]:{message:"Method not supported",description:"Method is not implemented"},[q]:{message:"Limit exceeded",description:"Request exceeds defined limit"},[J]:{message:"JSON-RPC version not supported",description:"Version of JSON-RPC protocol is not supported"},[yt]:{name:"User Rejected Request",message:"The user rejected the request."},[ct]:{name:"Unauthorized",message:"The requested method and/or account has not been authorized by the user."},[lt]:{name:"Unsupported Method",message:"The Provider does not support the requested method."},[mt]:{name:"Disconnected",message:"The Provider is disconnected from all chains."},[bt]:{name:"Chain Disconnected",message:"The Provider is not connected to the requested chain."},"0-999":{name:"",message:"Not used."},1e3:{name:"Normal Closure",message:"The connection successfully completed the purpose for which it was created."},1001:{name:"Going Away",message:"The endpoint is going away, either because of a server failure or because the browser is navigating away from the page that opened the connection."},1002:{name:"Protocol error",message:"The endpoint is terminating the connection due to a protocol error."},1003:{name:"Unsupported Data",message:"The connection is being terminated because the endpoint received data of a type it cannot accept. (For example, a text-only endpoint received binary data.)"},1004:{name:"Reserved",message:"Reserved. A meaning might be defined in the future."},1005:{name:"No Status Rcvd",message:"Reserved. Indicates that no status code was provided even though one was expected."},1006:{name:"Abnormal Closure",message:"Reserved. Indicates that a connection was closed abnormally (that is, with no close frame being sent) when a status code is expected."},1007:{name:"Invalid frame payload data",message:"The endpoint is terminating the connection because a message was received that contained inconsistent data (e.g., non-UTF-8 data within a text message)."},1008:{name:"Policy Violation",message:"The endpoint is terminating the connection because it received a message that violates its policy. This is a generic status code, used when codes 1003 and 1009 are not suitable."},1009:{name:"Message Too Big",message:"The endpoint is terminating the connection because a data frame was received that is too large."},1010:{name:"Mandatory Ext.",message:"The client is terminating the connection because it expected the server to negotiate one or more extension, but the server didn't."},1011:{name:"Internal Error",message:"The server is terminating the connection because it encountered an unexpected condition that prevented it from fulfilling the request."},1012:{name:"Service Restart",message:"The server is terminating the connection because it is restarting."},1013:{name:"Try Again Later",message:"The server is terminating the connection due to a temporary condition, e.g. it is overloaded and is casting off some of its clients."},1014:{name:"Bad Gateway",message:"The server was acting as a gateway or proxy and received an invalid response from the upstream server. This is similar to 502 HTTP Status Code."},1015:{name:"TLS handshake",message:"Reserved. Indicates that the connection was closed due to a failure to perform a TLS handshake (e.g., the server certificate can't be verified)."},"1016-2999":{name:"",message:"For definition by future revisions of the WebSocket Protocol specification, and for definition by extension specifications."},"3000-3999":{name:"",message:"For use by libraries, frameworks, and applications. These status codes are registered directly with IANA. The interpretation of these codes is undefined by the WebSocket protocol."},"4000-4999":{name:"",message:"For private use, and thus can't be registered. Such codes can be used by prior agreements between WebSocket applications. The interpretation of these codes is undefined by the WebSocket protocol."}};class b extends we{constructor(t,n){super(n??ft.replace("*code*",t.error.code.toString())),this.code=t.error.code,this.id=t.id,this.jsonrpc=t.jsonrpc,this.jsonRpcError=t.error}toJSON(){return Object.assign(Object.assign({},super.toJSON()),{error:this.jsonRpcError,id:this.id,jsonRpc:this.jsonrpc})}}class Tt extends b{constructor(t){super(t,m[U].message),this.code=U}}class ht extends b{constructor(t){super(t,m[L].message),this.code=L}}class gt extends b{constructor(t){super(t,m[F].message),this.code=F}}class wt extends b{constructor(t){super(t,m[k].message),this.code=k}}class Et extends b{constructor(t){super(t,m[G].message),this.code=G}}class At extends b{constructor(t){super(t,m[W].message),this.code=W}}class vt extends b{constructor(t){super(t,m[j].message),this.code=j}}class Ct extends b{constructor(t){super(t,m[H].message),this.code=H}}class St extends b{constructor(t){super(t,m[V].message),this.code=V}}class Rt extends b{constructor(t){super(t,m[J].message),this.code=J}}class It extends b{constructor(t){super(t,m[$].message),this.code=$}}class _t extends b{constructor(t){super(t,m[q].message),this.code=q}}const f=new Map;f.set(U,{error:Tt});f.set(L,{error:ht});f.set(F,{error:gt});f.set(k,{error:wt});f.set(G,{error:Et});f.set(W,{error:At});f.set(j,{error:vt});f.set(H,{error:Ct});f.set($,{error:It});f.set(V,{error:St});f.set(J,{error:Rt});f.set(q,{error:_t});const xt=e=>typeof e=="string"&&/^((-)?0x[0-9a-f]+|(0x))$/i.test(e);var Z;(function(e){e.NUMBER="NUMBER_NUMBER",e.HEX="NUMBER_HEX",e.STR="NUMBER_STR",e.BIGINT="NUMBER_BIGINT"})(Z||(Z={}));var z;(function(e){e.HEX="BYTES_HEX",e.UINT8ARRAY="BYTES_UINT8ARRAY"})(z||(z={}));Z.BIGINT,z.HEX;Z.HEX,z.HEX;var ue;(function(e){e.EARLIEST="earliest",e.LATEST="latest",e.PENDING="pending",e.SAFE="safe",e.FINALIZED="finalized"})(ue||(ue={}));var de;(function(e){e.chainstart="chainstart",e.frontier="frontier",e.homestead="homestead",e.dao="dao",e.tangerineWhistle="tangerineWhistle",e.spuriousDragon="spuriousDragon",e.byzantium="byzantium",e.constantinople="constantinople",e.petersburg="petersburg",e.istanbul="istanbul",e.muirGlacier="muirGlacier",e.berlin="berlin",e.london="london",e.altair="altair",e.arrowGlacier="arrowGlacier",e.grayGlacier="grayGlacier",e.bellatrix="bellatrix",e.merge="merge",e.capella="capella",e.shanghai="shanghai"})(de||(de={}));const Dt={[a.holesky]:"0x3a0c40c84b5034ed9a98a9a47a02af2b0885246f",[a.sepolia]:o,[a.ethereum]:o,[a.binanceSmartChainTestnet]:o,[a.binanceSmartChain]:o,[a.base]:o,[a.baseTestnet]:o,[a.berachainBartioTestnet]:o,[a.corn]:o},Nt={[a.holesky]:"0x3a0c40c84b5034ed9a98a9a47a02af2b0885246f",[a.sepolia]:o,[a.ethereum]:o,[a.binanceSmartChainTestnet]:o,[a.binanceSmartChain]:o,[a.base]:o,[a.baseTestnet]:o,[a.berachainBartioTestnet]:o,[a.corn]:o},Mt={[a.holesky]:o,[a.sepolia]:o,[a.ethereum]:"0xc750eCAC7250E0D18ecE2C7a5F130E3A765dc260",[a.binanceSmartChainTestnet]:o,[a.binanceSmartChain]:o,[a.base]:o,[a.baseTestnet]:o,[a.berachainBartioTestnet]:o,[a.corn]:o};function Pt(e=D){switch(e){case d.prod:return Mt;case d.testnet:return Nt;default:return Dt}}function Ot(e,t){const n=Pt(t),{chainId:s}=e;if(!Q(s))throw new Error(`This chain ${s} is not supported`);const i=n[s];if(!i)throw new Error("The address for bascule module is not defined");const r=e.createContract(st,i);return r.options.address||(r.options.address=i),r}const Bt="No deposit ID provided. Please provide a deposit ID as an argument.",Ut="Invalid deposit ID. Expected a 0x-prefixed 32-byte hex string.";var Ee=(e=>(e[e.UNREPORTED=0]="UNREPORTED",e[e.REPORTED=1]="REPORTED",e[e.WITHDRAWN=2]="WITHDRAWN",e))(Ee||{});async function Lt({txId:e,env:t,...n}){if(!e)throw new Error(Bt);if(!xt(e))throw new Error(Ut);const s=new _(n),i=Ot(s,t);try{const r=await i.methods.depositHistory(Buffer.from(e.replace(/^0x/,""),"hex")).call();return Number(r)}catch(r){const p=I(r);throw new Error(p)}}const Ae=e=>e in[a.ethereum,a.base,a.binanceSmartChain]?d.prod:d.stage;function ve(e,t){if(!Q(e))throw new Error(`This chain ${e} is not supported`);const n=t?{[e]:t}:B;if(!n[e])throw new Error(`RPC URL for chainId ${e} not found`);return n}async function Ft({chainId:e,bakeGasEstimate:t=0,rpcUrl:n}){const s=ve(e,n),i=new Y({chainId:e,rpcUrlConfig:s}),r=Ae(e),u=await A(i,r).methods.getMintFee().call(),y=new S(O(u.toString(10)));return t?y.plus(O(t)):y}async function kt({env:e,rpcUrl:t,chainId:n}){const s={[n]:t},i=new Y({chainId:n,rpcUrlConfig:s});return(await A(i,e).methods.totalSupply().call()).toString()}async function Gt({owner:e,rpcUrl:t,chainId:n}){const s=ve(n,t),i=new Y({chainId:n,rpcUrlConfig:s}),r=Ae(n),p=A(i,r);try{return(await p.methods.nonces(e).call()).toString()}catch(u){const y=I(u);throw new Error(y)}}const ae={[a.sepolia]:"0xe3748bF0Ec0A76767539eE28610B3367e35fe2C2",[a.berachainBartioTestnet]:"0x1977013acaf27856ac8048C42EE2ed0134d53895",[a.corn]:o,[a.ethereum]:o},Wt={...ae},Vt={...ae,[a.corn]:"0xfc7B20D9B59A8A466f4fC3d34aA69a7D98e71d7A",[a.ethereum]:"0x6bc15d7930839ec18a57f6f7df72ae1b439d077f"};function Ht(e=D){switch(e){case d.prod:return Vt;case d.testnet:return Wt;default:return ae}}async function $t(e){const t=new _(e),n=`destination chain id is ${e.chainId}`;return t.signMessage(n)}const jt=24*60*60;function qt({chainId:e,verifyingContract:t,fee:n,expiry:s}){return{domain:{name:"Lombard Staked Bitcoin",version:"1",chainId:e,verifyingContract:t},message:{chainId:e,fee:n,expiry:s},primaryType:"feeApproval",types:{EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],feeApproval:[{name:"chainId",type:"uint256"},{name:"fee",type:"uint256"},{name:"expiry",type:"uint256"}]}}}const Jt="Failed to obtain a valid signature. The response is undefined or invalid.";async function Zt({address:e,provider:t,fee:n,chainId:s,env:i,expiry:r=Date.now()+jt}){var w,N;const p=new _({provider:t,account:e,chainId:s}),y=A(p,i).options.address,g=JSON.stringify(qt({chainId:s,verifyingContract:y,fee:n,expiry:r.toString()})),l=await((N=(w=p.web3)==null?void 0:w.currentProvider)==null?void 0:N.request({method:"eth_signTypedData_v4",params:[e,g]}));if(typeof l=="string")return{signature:l,typedData:g};if(!(l!=null&&l.result))throw new Error(Jt);return{signature:l.result,typedData:g}}x.initEccLib(De);function zt(e,t=d.prod){var r;const n=Kt(e),i=(r=x.payments[n]({address:e,network:t===d.prod?x.networks.bitcoin:x.networks.testnet}).output)==null?void 0:r.toString("hex");if(!i)throw new Error("Output script is not found.");return`0x${i}`}function Kt(e){const t=x.address.fromBech32(e);if(t.version===1&&t.data.length===32)return"p2tr";if(t.version===0&&t.data.length===20)return"p2wpkh";if(Xt(e))return"p2wsh";throw new Error("Address type is not supported.")}function Xt(e){return(e.startsWith("bc1")||e.startsWith("tb1"))&&e.length===62}function Yt({btcAddress:e,amount:t,env:n,...s}){const i=new _(s),r=A(i,n),p=zt(e,n),u=te(t),y=r.methods.redeem(p,u);return i.sendTransactionAsync(i.account,r.options.address,{data:y.encodeABI(),estimate:!0,estimateFee:!0,gasLimitMultiplier:ne(i.chainId)})}exports.BasculeDepositStatus=Ee;exports.ENotarizationStatus=Te;exports.ESessionState=he;exports.OChainId=a;exports.OEnv=d;exports.SANCTIONED_ADDRESS=me;exports.SATOSHI_SCALE=X;exports.approveLBTC=rt;exports.claimLBTC=ut;exports.fromSatoshi=O;exports.generateDepositBtcAddress=Fe;exports.getApiConfig=E;exports.getBasculeDepositStatus=Lt;exports.getBaseNetworkByEnv=le;exports.getBscNetworkByEnv=ce;exports.getChainIdByName=fe;exports.getChainNameById=K;exports.getDepositBtcAddress=We;exports.getDepositBtcAddresses=be;exports.getDepositsByAddress=$e;exports.getEthNetworkByEnv=ye;exports.getLBTCExchangeRate=Je;exports.getLBTCMintingFee=Ft;exports.getLBTCTotalSupply=kt;exports.getLbtcAddressConfig=ge;exports.getLbtcOFTAdapterAddressConfig=Ht;exports.getNetworkFeeSignature=Ze;exports.getPermitNonce=Gt;exports.isValidChain=Q;exports.signLbtcDestionationAddr=$t;exports.signNetworkFee=Zt;exports.storeNetworkFeeSignature=ze;exports.toSatoshi=te;exports.unstakeLBTC=Yt;
|
|
1
|
+
"use strict";var ne=Object.defineProperty;var ae=(e,t,n)=>t in e?ne(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var S=(e,t,n)=>(ae(e,typeof t!="symbol"?t+"":t,n),n);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const w=require("axios"),v=require("bignumber.js"),b=require("web3"),T={prod:"prod",testnet:"testnet",stage:"stage"},s={ethereum:1,holesky:17e3,binanceSmartChain:56,binanceSmartChainTestnet:97,sepolia:11155111,base:8453,baseTestnet:84532,berachainBartioTestnet:80084,corn:21e6,swell:1923},H=e=>e===T.prod?s.ethereum:s.holesky,W=e=>e===T.prod?s.binanceSmartChain:s.binanceSmartChainTestnet,$=e=>e===T.prod?s.base:s.baseTestnet,P=T.prod,u="0x0000000000000000000000000000000000000000",se={baseApiUrl:"https://staging.prod.lombard.finance"},ie={baseApiUrl:"https://gastald-testnet.prod.lombard.finance"},re={baseApiUrl:"https://mainnet.prod.lombard.finance"},h=(e=P)=>{switch(e){case T.prod:return re;case T.testnet:return ie;default:return se}};function C(e){return typeof e=="string"?e:(n=>{var a;return((a=n==null?void 0:n.data)==null?void 0:a.message)&&typeof n.data.message=="string"})(e)?e.data.message:e instanceof Error?oe(e):pe(e)}function oe(e){return e.response?e.response.data.message:e.message}function pe(e){return e!=null&&e.message?e.message:"Unknown error"}const A={eth:"DESTINATION_BLOCKCHAIN_ETHEREUM",base:"DESTINATION_BLOCKCHAIN_BASE",bsc:"DESTINATION_BLOCKCHAIN_BSC",mantle:"DESTINATION_BLOCKCHAIN_MANTLE",linea:"DESTINATION_BLOCKCHAIN_LINEA",zcircuit:"DESTINATION_BLOCKCHAIN_ZIRCUIT",scroll:"DESTINATION_BLOCKCHAIN_SCROLL",xlayer:"DESTINATION_BLOCKCHAIN_XLAYER"};function x(e){switch(e){case s.ethereum:case s.holesky:case s.sepolia:return A.eth;case s.base:case s.baseTestnet:return A.base;case s.binanceSmartChain:case s.binanceSmartChainTestnet:return A.bsc;default:throw new Error(`Unknown chain ID: ${e}`)}}const V="sanctioned_address",ue="api/v1/address/generate",ye="destination address is under sanctions";async function de({address:e,chainId:t,signature:n,eip712Data:a,env:i,referrerCode:r,partnerId:o,captchaToken:p}){const{baseApiUrl:d}=h(i),m=x(t),l={to_address:e,to_address_signature:n,to_chain:m,partner_id:o,nonce:0,captcha:p,referrer_code:r,eip_712_data:a};try{const{data:y}=await w.post(ue,l,{baseURL:d});return y.address}catch(y){const f=C(y);if(le(f))return V;throw new Error(f)}}function le(e){return!!e.includes(ye)}const ce="api/v1/address";async function me({address:e,chainId:t,env:n,partnerId:a}){const i=await Z({address:e,chainId:t,env:n,partnerId:a}),r=be(i);if(!r)throw new Error("No address");return r.btc_address}function be(e){if(!e.length)return;const t=e.reduce((n,a)=>n.created_at<a.created_at?a:n,e[0]);return t.deprecated?void 0:t}async function Z({address:e,chainId:t,env:n,partnerId:a}){const{baseApiUrl:i}=h(n),r=x(t),o={to_address:e,to_blockchain:r,limit:1,offset:0,asc:!1,referralId:a},{data:p}=await w.get(ce,{baseURL:i,params:o});return(p==null?void 0:p.addresses)||[]}const Te=8,M=10**Te;function N(e){return+e/M}function fe(e){return Math.floor(+e*M)}function K(e,t=P){switch(e){case A.eth:return H(t);case A.base:return $(t);case A.bsc:return W(t);default:return s.ethereum}}var q=(e=>(e.NOTARIZATION_STATUS_UNSPECIFIED="NOTARIZATION_STATUS_UNSPECIFIED",e.NOTARIZATION_STATUS_PENDING="NOTARIZATION_STATUS_PENDING",e.NOTARIZATION_STATUS_SUBMITTED="NOTARIZATION_STATUS_SUBMITTED",e.NOTARIZATION_STATUS_SESSION_APPROVED="NOTARIZATION_STATUS_SESSION_APPROVED",e.NOTARIZATION_STATUS_FAILED="NOTARIZATION_STATUS_FAILED",e))(q||{}),z=(e=>(e.SESSION_STATE_UNSPECIFIED="SESSION_STATE_UNSPECIFIED",e.SESSION_STATE_PENDING="SESSION_STATE_PENDING",e.SESSION_STATE_COMPLETED="SESSION_STATE_COMPLETED",e.SESSION_STATE_EXPIRED="SESSION_STATE_EXPIRED",e))(z||{});async function ge({address:e,env:t}){const{baseApiUrl:n}=h(t),{data:a}=await w.get(`api/v1/address/outputs-v2/${e}`,{baseURL:n});return((a==null?void 0:a.outputs)??[]).map(he(t))}function he(e){return t=>({txid:t.txid,index:t.index??0,blockHeight:t.block_height?Number(t.block_height):void 0,blockTime:t.block_time?Number(t.block_time):void 0,value:new v(N(t.value)),address:t.address,chainId:K(t.to_chain,e),claimedTxId:t.claim_tx,rawPayload:t.raw_payload,signature:t.proof,isRestricted:!!t.sanctioned,notarizationWaitDur:t.notarization_wait_dur?Number(t.notarization_wait_dur):void 0,payload:t.payload_hash,sessionId:t.session_id,notarizationStatus:t.notarization_status,sessionState:t.session_state})}const we=2e-4;async function Se({env:e,chainId:t=s.ethereum,amount:n=1}){const{baseApiUrl:a}=h(e),i=x(t),{data:r}=await w.get(`api/v1/exchange/rate/${i}`,{baseURL:a,params:{amount:n}}),o=new v(we).multipliedBy(M).toFixed();return{exchangeRate:+r.amount_out,minAmount:+o}}async function Ae({address:e,chainId:t,env:n}){const{baseApiUrl:a}=h(n);try{const{data:i}=await w.get(`${a}/api/v1/claimer/get-user-signature`,{params:{user_destination_address:e,chain_id:t}});return{expirationDate:i==null?void 0:i.expiration_date,hasSignature:i==null?void 0:i.has_signature,isDelayed:i==null?void 0:i.is_delayed}}catch(i){const r=C(i);throw new Error(r)}}async function ve({signature:e,typedData:t,address:n,env:a}){const{baseApiUrl:i}=h(a);try{const{data:r}=await w.post(`${i}/api/v1/claimer/save-user-signature`,null,{params:{typed_data:t,signature:e,user_destination_address:n}});return r.status}catch(r){const o=C(r);throw new Error(o)}}async function Ce({signature:e,typedData:t,env:n}){const{baseApiUrl:a}=h(n);try{const{data:i}=await w.post(`${a}/api/v1/claimer/save-stake-and-bake-signature`,null,{params:{typed_data:t,signature:e}});return i.status}catch(i){const r=C(i);throw new Error(r)}}const D={[s.ethereum]:"https://rpc.ankr.com/eth",[s.holesky]:"https://rpc.ankr.com/eth_holesky",[s.sepolia]:"https://rpc.ankr.com/eth_sepolia",[s.base]:"https://rpc.ankr.com/base",[s.baseTestnet]:"https://rpc.ankr.com/base_sepolia",[s.binanceSmartChain]:"https://rpc.ankr.com/bsc",[s.binanceSmartChainTestnet]:"https://rpc.ankr.com/bsc_testnet_chapel"};async function Ee(e){const n=await(await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({jsonrpc:"2.0",id:1,method:"eth_maxPriorityFeePerGas",params:[]})})).json(),a=b.utils.hexToNumber(n==null?void 0:n.result);return new v(Number(a))}const _e=2,Ie=25e3;class O{constructor({chainId:t,rpcUrlConfig:n}){S(this,"chainId");S(this,"rpcConfig");this.chainId=t,this.rpcConfig={...D,...n}}getReadWeb3(){const t=this.getRpcUrl(),n=new b.Web3,a=new b.Web3.providers.HttpProvider(t);return n.setProvider(a),n}getRpcUrl(){var a;const{chainId:t}=this,n=(a=this.rpcConfig)==null?void 0:a[t];if(!n)throw console.error(`You might need to add the rpcConfig for the ${t} chain ID when creating the provider.`),new Error(`RPC URL for chainId ${t} not found`);return n}async getMaxFees(){const t=this.getReadWeb3(),n=this.getRpcUrl(),[a,i]=await Promise.all([t.eth.getBlock("latest"),Ee(n)]);return!(a!=null&&a.baseFeePerGas)&&typeof(a==null?void 0:a.baseFeePerGas)!="bigint"?{}:{maxFeePerGas:+new v(a.baseFeePerGas.toString(10)).multipliedBy(_e).plus(i),maxPriorityFeePerGas:+i}}async getSafeGasPriceWei(){const t=await this.getReadWeb3().eth.getGasPrice();return new v(t.toString(10)).plus(Ie)}createContract(t,n){const a=this.getReadWeb3();return new a.eth.Contract(t,n)}}const Ne=[s.ethereum,s.base,s.binanceSmartChain],j=e=>Ne.includes(e)?T.prod:T.stage;function R(e){return Object.values(s).includes(e)}const De={[s.holesky]:"0xED7bfd5C1790576105Af4649817f6d35A75CD818",[s.ethereum]:u,[s.binanceSmartChainTestnet]:"0x731eFa688F3679688cf60A3993b8658138953ED6",[s.binanceSmartChain]:u,[s.sepolia]:"0xc47e4b3124597fdf8dd07843d4a7052f2ee80c30",[s.base]:u,[s.baseTestnet]:u,[s.berachainBartioTestnet]:"0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30",[s.corn]:u,[s.swell]:u},xe={[s.holesky]:"0x38A13AB20D15ffbE5A7312d2336EF1552580a4E2",[s.ethereum]:u,[s.binanceSmartChainTestnet]:"0x107Fc7d90484534704dD2A9e24c7BD45DB4dD1B5",[s.binanceSmartChain]:u,[s.sepolia]:"0xc47e4b3124597fdf8dd07843d4a7052f2ee80c30",[s.base]:u,[s.baseTestnet]:u,[s.berachainBartioTestnet]:"0xc47e4b3124597FDF8DD07843D4a7052F2eE80C30",[s.corn]:u,[s.swell]:u},Me={[s.ethereum]:"0x8236a87084f8b84306f72007f36f2618a5634494",[s.holesky]:u,[s.sepolia]:u,[s.binanceSmartChainTestnet]:u,[s.binanceSmartChain]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[s.base]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[s.baseTestnet]:u,[s.berachainBartioTestnet]:u,[s.corn]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1",[s.swell]:"0xecAc9C5F704e954931349Da37F60E39f515c11c1"};function J(e=P){switch(e){case T.prod:return Me;case T.testnet:return xe;default:return De}}const Pe=[{constant:!0,inputs:[],name:"name",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_spender",type:"address"},{name:"_value",type:"uint256"}],name:"approve",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"totalSupply",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_from",type:"address"},{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transferFrom",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[],name:"decimals",outputs:[{name:"",type:"uint8"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"}],name:"balanceOf",outputs:[{name:"balance",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{constant:!0,inputs:[],name:"symbol",outputs:[{name:"",type:"string"}],payable:!1,stateMutability:"view",type:"function"},{constant:!1,inputs:[{name:"_to",type:"address"},{name:"_value",type:"uint256"}],name:"transfer",outputs:[{name:"",type:"bool"}],payable:!1,stateMutability:"nonpayable",type:"function"},{constant:!0,inputs:[{name:"_owner",type:"address"},{name:"_spender",type:"address"}],name:"allowance",outputs:[{name:"",type:"uint256"}],payable:!1,stateMutability:"view",type:"function"},{payable:!0,stateMutability:"payable",type:"fallback"},{anonymous:!1,inputs:[{indexed:!0,name:"owner",type:"address"},{indexed:!0,name:"spender",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,name:"from",type:"address"},{indexed:!0,name:"to",type:"address"},{indexed:!1,name:"value",type:"uint256"}],name:"Transfer",type:"event"}],Oe=[{inputs:[],stateMutability:"nonpayable",type:"constructor"},{inputs:[{internalType:"uint256",name:"dustLimit",type:"uint256"}],name:"AmountBelowDustLimit",type:"error"},{inputs:[{internalType:"uint256",name:"fee",type:"uint256"}],name:"AmountLessThanCommission",type:"error"},{inputs:[],name:"ECDSAInvalidSignature",type:"error"},{inputs:[{internalType:"uint256",name:"length",type:"uint256"}],name:"ECDSAInvalidSignatureLength",type:"error"},{inputs:[{internalType:"bytes32",name:"s",type:"bytes32"}],name:"ECDSAInvalidSignatureS",type:"error"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"allowance",type:"uint256"},{internalType:"uint256",name:"needed",type:"uint256"}],name:"ERC20InsufficientAllowance",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"},{internalType:"uint256",name:"balance",type:"uint256"},{internalType:"uint256",name:"needed",type:"uint256"}],name:"ERC20InsufficientBalance",type:"error"},{inputs:[{internalType:"address",name:"approver",type:"address"}],name:"ERC20InvalidApprover",type:"error"},{inputs:[{internalType:"address",name:"receiver",type:"address"}],name:"ERC20InvalidReceiver",type:"error"},{inputs:[{internalType:"address",name:"sender",type:"address"}],name:"ERC20InvalidSender",type:"error"},{inputs:[{internalType:"address",name:"spender",type:"address"}],name:"ERC20InvalidSpender",type:"error"},{inputs:[{internalType:"uint256",name:"deadline",type:"uint256"}],name:"ERC2612ExpiredSignature",type:"error"},{inputs:[{internalType:"address",name:"signer",type:"address"},{internalType:"address",name:"owner",type:"address"}],name:"ERC2612InvalidSigner",type:"error"},{inputs:[],name:"EnforcedPause",type:"error"},{inputs:[],name:"ExpectedPause",type:"error"},{inputs:[],name:"FeeGreaterThanAmount",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"},{internalType:"uint256",name:"currentNonce",type:"uint256"}],name:"InvalidAccountNonce",type:"error"},{inputs:[],name:"InvalidDustFeeRate",type:"error"},{inputs:[],name:"InvalidInitialization",type:"error"},{inputs:[],name:"InvalidInputLength",type:"error"},{inputs:[],name:"InvalidUserSignature",type:"error"},{inputs:[],name:"KnownDestination",type:"error"},{inputs:[],name:"NotInitializing",type:"error"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"OwnableInvalidOwner",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"OwnableUnauthorizedAccount",type:"error"},{inputs:[],name:"PayloadAlreadyUsed",type:"error"},{inputs:[],name:"ReentrancyGuardReentrantCall",type:"error"},{inputs:[],name:"ScriptPubkeyUnsupported",type:"error"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"UnauthorizedAccount",type:"error"},{inputs:[{internalType:"bytes4",name:"action",type:"bytes4"}],name:"UnexpectedAction",type:"error"},{inputs:[],name:"UnknownDestination",type:"error"},{inputs:[{internalType:"uint256",name:"fromChainId",type:"uint256"},{internalType:"address",name:"fromContract",type:"address"}],name:"UnknownOriginContract",type:"error"},{inputs:[{internalType:"uint256",name:"expiry",type:"uint256"}],name:"UserSignatureExpired",type:"error"},{inputs:[],name:"WithdrawalsDisabled",type:"error"},{inputs:[],name:"WrongChainId",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{inputs:[],name:"ZeroAddress",type:"error"},{inputs:[],name:"ZeroAmount",type:"error"},{inputs:[],name:"ZeroChainId",type:"error"},{inputs:[],name:"ZeroContractHash",type:"error"},{inputs:[],name:"ZeroFee",type:"error"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"owner",type:"address"},{indexed:!0,internalType:"address",name:"spender",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Approval",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"prevVal",type:"address"},{indexed:!0,internalType:"address",name:"newVal",type:"address"}],name:"BasculeChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"prevVal",type:"address"},{indexed:!0,internalType:"address",name:"newVal",type:"address"}],name:"BridgeChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint64",name:"prevValue",type:"uint64"},{indexed:!0,internalType:"uint64",name:"newValue",type:"uint64"}],name:"BurnCommissionChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"claimer",type:"address"},{indexed:!1,internalType:"bool",name:"isClaimer",type:"bool"}],name:"ClaimerUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"prevVal",type:"address"},{indexed:!0,internalType:"address",name:"newVal",type:"address"}],name:"ConsortiumChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"oldRate",type:"uint256"},{indexed:!0,internalType:"uint256",name:"newRate",type:"uint256"}],name:"DustFeeRateChanged",type:"event"},{anonymous:!1,inputs:[],name:"EIP712DomainChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"oldFee",type:"uint256"},{indexed:!0,internalType:"uint256",name:"newFee",type:"uint256"}],name:"FeeChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"uint256",name:"fee",type:"uint256"},{indexed:!1,internalType:"bytes",name:"userSignature",type:"bytes"}],name:"FeeCharged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"uint64",name:"version",type:"uint64"}],name:"Initialized",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"recipient",type:"address"},{indexed:!0,internalType:"bytes32",name:"payloadHash",type:"bytes32"},{indexed:!1,internalType:"bytes",name:"payload",type:"bytes"}],name:"MintProofConsumed",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"minter",type:"address"},{indexed:!1,internalType:"bool",name:"isMinter",type:"bool"}],name:"MinterUpdated",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"string",name:"name",type:"string"},{indexed:!1,internalType:"string",name:"symbol",type:"string"}],name:"NameAndSymbolChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferStarted",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousOwner",type:"address"},{indexed:!0,internalType:"address",name:"newOwner",type:"address"}],name:"OwnershipTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Paused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"previousPauser",type:"address"},{indexed:!0,internalType:"address",name:"newPauser",type:"address"}],name:"PauserRoleTransferred",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"from",type:"address"},{indexed:!0,internalType:"address",name:"to",type:"address"},{indexed:!1,internalType:"uint256",name:"value",type:"uint256"}],name:"Transfer",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"prevValue",type:"address"},{indexed:!0,internalType:"address",name:"newValue",type:"address"}],name:"TreasuryAddressChanged",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"address",name:"account",type:"address"}],name:"Unpaused",type:"event"},{anonymous:!1,inputs:[{indexed:!0,internalType:"address",name:"fromAddress",type:"address"},{indexed:!1,internalType:"bytes",name:"scriptPubKey",type:"bytes"},{indexed:!1,internalType:"uint256",name:"amount",type:"uint256"}],name:"UnstakeRequest",type:"event"},{anonymous:!1,inputs:[{indexed:!1,internalType:"bool",name:"",type:"bool"}],name:"WithdrawalsEnabled",type:"event"},{inputs:[],name:"Bascule",outputs:[{internalType:"contract IBascule",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"DOMAIN_SEPARATOR",outputs:[{internalType:"bytes32",name:"",type:"bytes32"}],stateMutability:"view",type:"function"},{inputs:[],name:"acceptOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newClaimer",type:"address"}],name:"addClaimer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newMinter",type:"address"}],name:"addMinter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"}],name:"allowance",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"approve",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"account",type:"address"}],name:"balanceOf",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address[]",name:"to",type:"address[]"},{internalType:"uint256[]",name:"amount",type:"uint256[]"}],name:"batchMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"payload",type:"bytes[]"},{internalType:"bytes[]",name:"proof",type:"bytes[]"}],name:"batchMint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes[]",name:"mintPayload",type:"bytes[]"},{internalType:"bytes[]",name:"proof",type:"bytes[]"},{internalType:"bytes[]",name:"feePayload",type:"bytes[]"},{internalType:"bytes[]",name:"userSignature",type:"bytes[]"}],name:"batchMintWithFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"burn",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"scriptPubkey",type:"bytes"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"calcUnstakeRequestAmount",outputs:[{internalType:"uint256",name:"amountAfterFee",type:"uint256"},{internalType:"bool",name:"isAboveDust",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"newVal",type:"address"}],name:"changeBascule",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newBridge",type:"address"}],name:"changeBridge",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint64",name:"newValue",type:"uint64"}],name:"changeBurnCommission",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newVal",type:"address"}],name:"changeConsortium",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"newRate",type:"uint256"}],name:"changeDustFeeRate",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"string",name:"name_",type:"string"},{internalType:"string",name:"symbol_",type:"string"}],name:"changeNameAndSymbol",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newValue",type:"address"}],name:"changeTreasuryAddress",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"consortium",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"decimals",outputs:[{internalType:"uint8",name:"",type:"uint8"}],stateMutability:"view",type:"function"},{inputs:[],name:"eip712Domain",outputs:[{internalType:"bytes1",name:"fields",type:"bytes1"},{internalType:"string",name:"name",type:"string"},{internalType:"string",name:"version",type:"string"},{internalType:"uint256",name:"chainId",type:"uint256"},{internalType:"address",name:"verifyingContract",type:"address"},{internalType:"bytes32",name:"salt",type:"bytes32"},{internalType:"uint256[]",name:"extensions",type:"uint256[]"}],stateMutability:"view",type:"function"},{inputs:[],name:"getBurnCommission",outputs:[{internalType:"uint64",name:"",type:"uint64"}],stateMutability:"view",type:"function"},{inputs:[],name:"getDustFeeRate",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getMintFee",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"getTreasury",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"consortium_",type:"address"},{internalType:"uint64",name:"burnCommission_",type:"uint64"},{internalType:"address",name:"owner_",type:"address"}],name:"initialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"claimer",type:"address"}],name:"isClaimer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"minter",type:"address"}],name:"isMinter",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"payload",type:"bytes"},{internalType:"bytes",name:"proof",type:"bytes"}],name:"mint",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"mintPayload",type:"bytes"},{internalType:"bytes",name:"proof",type:"bytes"},{internalType:"bytes",name:"feePayload",type:"bytes"},{internalType:"bytes",name:"userSignature",type:"bytes"}],name:"mintWithFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"name",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"}],name:"nonces",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[],name:"owner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"paused",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"view",type:"function"},{inputs:[],name:"pauser",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[],name:"pendingOwner",outputs:[{internalType:"address",name:"",type:"address"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"owner",type:"address"},{internalType:"address",name:"spender",type:"address"},{internalType:"uint256",name:"value",type:"uint256"},{internalType:"uint256",name:"deadline",type:"uint256"},{internalType:"uint8",name:"v",type:"uint8"},{internalType:"bytes32",name:"r",type:"bytes32"},{internalType:"bytes32",name:"s",type:"bytes32"}],name:"permit",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"bytes",name:"scriptPubkey",type:"bytes"},{internalType:"uint256",name:"amount",type:"uint256"}],name:"redeem",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"reinitialize",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"oldClaimer",type:"address"}],name:"removeClaimer",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"oldMinter",type:"address"}],name:"removeMinter",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"renounceOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"uint256",name:"fee",type:"uint256"}],name:"setMintFee",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"symbol",outputs:[{internalType:"string",name:"",type:"string"}],stateMutability:"view",type:"function"},{inputs:[],name:"toggleWithdrawals",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"totalSupply",outputs:[{internalType:"uint256",name:"",type:"uint256"}],stateMutability:"view",type:"function"},{inputs:[{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transfer",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"from",type:"address"},{internalType:"address",name:"to",type:"address"},{internalType:"uint256",name:"value",type:"uint256"}],name:"transferFrom",outputs:[{internalType:"bool",name:"",type:"bool"}],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newOwner",type:"address"}],name:"transferOwnership",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{internalType:"address",name:"newPauser",type:"address"}],name:"transferPauserRole",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[],name:"unpause",outputs:[],stateMutability:"nonpayable",type:"function"},{inputs:[{components:[{internalType:"uint256",name:"fromChain",type:"uint256"},{internalType:"address",name:"fromContract",type:"address"},{internalType:"uint256",name:"toChain",type:"uint256"},{internalType:"address",name:"toContract",type:"address"},{internalType:"address",name:"recipient",type:"address"},{internalType:"uint64",name:"amount",type:"uint64"},{internalType:"bytes32",name:"uniqueActionData",type:"bytes32"}],internalType:"struct Actions.DepositBridgeAction",name:"action",type:"tuple"},{internalType:"bytes32",name:"",type:"bytes32"},{internalType:"bytes",name:"",type:"bytes"}],name:"withdraw",outputs:[],stateMutability:"nonpayable",type:"function"}];function Re(e){switch(e){case"LBTC":return Oe;default:return Pe}}function B(e,t){const n=J(t),{chainId:a}=e;if(!R(a))throw new Error(`This chain ${a} is not supported`);const i=n[a];if(!i)throw new Error(`Token address for chain ${a} is not defined`);const r=Re("LBTC"),o=e.createContract(r,i);return o.options.address||(o.options.address=i),o}function X(e,t){if(!R(e))throw new Error(`This chain ${e} is not supported`);const n=t?{[e]:t}:D;if(!n[e])throw new Error(`RPC URL for chainId ${e} not found`);return n}async function Be({chainId:e,bakeGasEstimate:t=0,rpcUrl:n}){const a=X(e,n),i=new O({chainId:e,rpcUrlConfig:a}),r=j(e),p=await B(i,r).methods.getMintFee().call(),d=new v(N(p.toString(10)));return t?d.plus(N(t)):d}class F extends O{constructor({provider:n,account:a,chainId:i,rpcUrlConfig:r}){super({chainId:i,rpcUrlConfig:r});S(this,"web3");S(this,"account");S(this,"rpcConfig",D);this.web3=new b(n),this.account=a,this.chainId=i,this.rpcConfig={...D,...r}}async signMessage(n){const{account:a}=this,i=`0x${Buffer.from(n,"utf8").toString("hex")}`;return this.web3.currentProvider.request({method:"personal_sign",params:[i,a]})}async sendTransactionAsync(n,a,i){const{chainId:r,web3:o}=this,p=this.getReadWeb3(),{data:d,estimate:m=!1,estimateFee:l=!1,extendedGasLimit:y,gasLimit:f="0",value:E="0",gasLimitMultiplier:te=1}=i;let{nonce:_}=i;_||(_=await p.eth.getTransactionCount(n)),console.log(`Nonce: ${_}`);const c={from:n,to:a,value:b.utils.numberToHex(E),data:d,nonce:_,chainId:b.utils.numberToHex(r)};if(m)try{const g=await p.eth.estimateGas(c),I=Math.round(Number(g)*te);y?c.gas=b.utils.numberToHex(I+y):c.gas=b.utils.numberToHex(I)}catch(g){throw new Error(g.message??"Failed to estimate gas limit for transaction.")}else c.gas=b.utils.numberToHex(f);const{maxFeePerGas:k,maxPriorityFeePerGas:U}=l?await this.getMaxFees().catch(()=>i):i;if(U!==void 0&&(c.maxPriorityFeePerGas=b.utils.numberToHex(U)),k!==void 0&&(c.maxFeePerGas=b.utils.numberToHex(k)),!c.maxFeePerGas&&!c.maxPriorityFeePerGas){const g=await this.getSafeGasPriceWei();c.gasPrice=g.toString(10)}if(!c.maxFeePerGas&&!c.maxPriorityFeePerGas){const g=await this.getSafeGasPriceWei();c.gasPrice=g.toString(10)}return console.log("Sending transaction via Web3: ",c),new Promise((g,I)=>{const L=o.eth.sendTransaction(c);L.once("transactionHash",async G=>{console.log(`Just signed transaction has is: ${G}`),g({receiptPromise:L,transactionHash:G})}).catch(I)})}createContract(n,a){return new this.web3.eth.Contract(n,a)}}async function Fe(e){const t=new F(e),n=`destination chain id is ${e.chainId}`;return t.signMessage(n)}const ke=24*60*60;function Ue({chainId:e,verifyingContract:t,fee:n,expiry:a}){return{domain:{name:"Lombard Staked Bitcoin",version:"1",chainId:e,verifyingContract:t},message:{chainId:e,fee:n,expiry:a},primaryType:"feeApproval",types:{EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],feeApproval:[{name:"chainId",type:"uint256"},{name:"fee",type:"uint256"},{name:"expiry",type:"uint256"}]}}}const Le="Failed to obtain a valid signature. The response is undefined or invalid.",Ge=()=>Math.floor(Date.now()/1e3+ke);async function He({address:e,provider:t,fee:n,chainId:a,env:i,expiry:r=Ge()}){var y,f;const o=new F({provider:t,account:e,chainId:a}),d=B(o,i).options.address,m=JSON.stringify(Ue({chainId:a,verifyingContract:d,fee:n,expiry:r})),l=await((f=(y=o.web3)==null?void 0:y.currentProvider)==null?void 0:f.request({method:"eth_signTypedData_v4",params:[e,m]}));if(typeof l=="string")return{signature:l,typedData:m};if(!(l!=null&&l.result))throw new Error(Le);return{signature:l.result,typedData:m}}async function We({owner:e,rpcUrl:t,chainId:n}){const a=X(n,t),i=new O({chainId:n,rpcUrlConfig:a}),r=j(n),o=B(i,r);try{return(await o.methods.nonces(e).call()).toString()}catch(p){const d=C(p);throw new Error(d)}}async function Y({chainId:e,expiryDate:t,owner:n,spender:a,value:i,env:r,rpcUrl:o}){const d=J(r)[e],m=await We({owner:n,chainId:e,rpcUrl:o});return{domain:{name:"Lombard Staked Bitcoin",version:"1",chainId:e,verifyingContract:d},types:{EIP712Domain:[{name:"name",type:"string"},{name:"version",type:"string"},{name:"chainId",type:"uint256"},{name:"verifyingContract",type:"address"}],Permit:[{name:"owner",type:"address"},{name:"spender",type:"address"},{name:"value",type:"uint256"},{name:"nonce",type:"uint256"},{name:"deadline",type:"uint256"}]},primaryType:"Permit",message:{owner:n,spender:a,value:i,nonce:m,deadline:t.toString()}}}const Q={[s.holesky]:"0x52BD640617eeD47A00dA0da93351092D49208d1d"},ee=e=>{const t=Q[e];if(!t)throw new Error(`No spender address configured for chain ID ${e}`);return t},$e="Failed to obtain a valid signature. The response is undefined or invalid.";async function Ve({address:e,provider:t,chainId:n,value:a,env:i,expiryDate:r,rpcUrl:o}){var f,E;const p=new F({provider:t,account:e,chainId:n}),d=ee(n),m=await Y({chainId:n,expiryDate:r,owner:e,spender:d,value:a,env:i,rpcUrl:o}),l=JSON.stringify(m),y=await((E=(f=p.web3)==null?void 0:f.currentProvider)==null?void 0:E.request({method:"eth_signTypedData_v4",params:[e,l]}));if(typeof y=="string")return{signature:y,typedData:l};if(!(y!=null&&y.result))throw new Error($e);return{signature:y.result,typedData:l}}exports.ENotarizationStatus=q;exports.ESessionState=z;exports.OChainId=s;exports.OEnv=T;exports.SANCTIONED_ADDRESS=V;exports.SATOSHI_SCALE=M;exports.STAKE_AND_BAKE_SPENDER_ADDRESSES=Q;exports.fromSatoshi=N;exports.generateDepositBtcAddress=de;exports.getApiConfig=h;exports.getBaseNetworkByEnv=$;exports.getBscNetworkByEnv=W;exports.getChainIdByName=K;exports.getChainNameById=x;exports.getDepositBtcAddress=me;exports.getDepositBtcAddresses=Z;exports.getDepositsByAddress=ge;exports.getEthNetworkByEnv=H;exports.getLBTCExchangeRate=Se;exports.getLBTCMintingFee=Be;exports.getNetworkFeeSignature=Ae;exports.getStakeAndBakeSpenderAddress=ee;exports.getStakeAndBakeTypedData=Y;exports.isValidChain=R;exports.signLbtcDestionationAddr=Fe;exports.signNetworkFee=He;exports.signStakeAndBake=Ve;exports.storeNetworkFeeSignature=ve;exports.storeStakeAndBakeSignature=Ce;exports.toSatoshi=fe;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|