1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6945],{49326:(e,t,s)=>{s.d(t,{default:()=>k});let a=e=>e.toString(16).padStart(2,"0");class i{}i.makeRequest=(e,t)=>({id:(()=>{if("u">typeof window){let e;return e=new Uint8Array(5),window.crypto.getRandomValues(e),Array.from(e,a).join("")}return new Date().getTime().toString(36)})(),method:e,params:t,env:{sdkVersion:"9.1.0"}}),i.makeResponse=(e,t,s)=>({id:e,success:!0,version:s,data:t}),i.makeErrorResponse=(e,t,s)=>({id:e,success:!1,error:t,version:s}),(g=m||(m={})).sendTransactions="sendTransactions",g.rpcCall="rpcCall",g.getChainInfo="getChainInfo",g.getSafeInfo="getSafeInfo",g.getTxBySafeTxHash="getTxBySafeTxHash",g.getSafeBalances="getSafeBalances",g.signMessage="signMessage",g.signTypedMessage="signTypedMessage",g.getEnvironmentInfo="getEnvironmentInfo",g.getOffChainSignature="getOffChainSignature",g.requestAddressBook="requestAddressBook",g.wallet_getPermissions="wallet_getPermissions",g.wallet_requestPermissions="wallet_requestPermissions",(y||(y={})).requestAddressBook="requestAddressBook";class n{constructor(e=null,t=!1){this.allowedOrigins=null,this.callbacks=new Map,this.debugMode=!1,this.isServer="u"<typeof window,this.isValidMessage=({origin:e,data:t,source:s})=>{let a=!t,i=!this.isServer&&s===window.parent,n=void 0!==t.version&&parseInt(t.version.split(".")[0]),r=!0;return Array.isArray(this.allowedOrigins)&&(r=void 0!==this.allowedOrigins.find(t=>t.test(e))),!a&&i&&"number"==typeof n&&n>=1&&r},this.logIncomingMessage=e=>{console.info(`Safe Apps SDK v1: A message was received from origin ${e.origin}. `,e.data)},this.onParentMessage=e=>{this.isValidMessage(e)&&(this.debugMode&&this.logIncomingMessage(e),this.handleIncomingMessage(e.data))},this.handleIncomingMessage=e=>{let{id:t}=e,s=this.callbacks.get(t);s&&(s(e),this.callbacks.delete(t))},this.send=(e,t)=>{let s=i.makeRequest(e,t);if(this.isServer)throw Error("Window doesn't exist");return window.parent.postMessage(s,"*"),new Promise((e,t)=>{this.callbacks.set(s.id,s=>{s.success?e(s):t(Error(s.error))})})},this.allowedOrigins=e,this.debugMode=t,this.isServer||window.addEventListener("message",this.onParentMessage)}}let r=e=>"object"==typeof e&&null!=e&&"domain"in e&&"types"in e&&"message"in e;s(67099);class o{constructor(e){this.communicator=e}async getBySafeTxHash(e){if(!e)throw Error("Invalid safeTxHash");return(await this.communicator.send(m.getTxBySafeTxHash,{safeTxHash:e})).data}async signMessage(e){return(await this.communicator.send(m.signMessage,{message:e})).data}async signTypedMessage(e){if(!r(e))throw Error("Invalid typed data");return(await this.communicator.send(m.signTypedMessage,{typedData:e})).data}async send({txs:e,params:t}){if(!e||!e.length)throw Error("No transactions were passed");return(await this.communicator.send(m.sendTransactions,{txs:e,params:t})).data}}let c="eth_call",l=(e="latest")=>e,u=(e=!1)=>e,h=e=>Number.isInteger(e)?`0x${e.toString(16)}`:e;class d{constructor(e){this.communicator=e,this.call=this.buildRequest({call:c,formatters:[null,l]}),this.getBalance=this.buildRequest({call:"eth_getBalance",formatters:[null,l]}),this.getCode=this.buildRequest({call:"eth_getCode",formatters:[null,l]}),this.getStorageAt=this.buildRequest({call:"eth_getStorageAt",formatters:[null,h,l]}),this.getPastLogs=this.buildRequest({call:"eth_getLogs"}),this.getBlockByHash=this.buildRequest({call:"eth_getBlockByHash",formatters:[null,u]}),this.getBlockByNumber=this.buildRequest({call:"eth_getBlockByNumber",formatters:[h,u]}),this.getTransactionByHash=this.buildRequest({call:"eth_getTransactionByHash"}),this.getTransactionReceipt=this.buildRequest({call:"eth_getTransactionReceipt"}),this.getTransactionCount=this.buildRequest({call:"eth_getTransactionCount",formatters:[null,l]}),this.getGasPrice=this.buildRequest({call:"eth_gasPrice"}),this.getEstimateGas=e=>this.buildRequest({call:"eth_estimateGas"})([e]),this.setSafeSettings=this.buildRequest({call:"safe_setSettings"})}buildRequest(e){let{call:t,formatters:s}=e;return async e=>(s&&Array.isArray(e)&&s.forEach((t,s)=>{t&&(e[s]=t(e[s]))}),(await this.communicator.send(m.rpcCall,{call:t,params:e||[]})).data)}}var g,m,y,f=s(14237),p=s(1379),w=s(42841);
1class b extends Error{constructor(e,t,s){super(e),this.code=t,this.data=s,Object.setPrototypeOf(this,b.prototype)}}class S{constructor(e){this.communicator=e}async getPermissions(){return(await this.communicator.send(m.wallet_getPermissions,void 0)).data}async requestPermissions(e){if(!this.isPermissionRequestValid(e))throw new b("Permissions request is invalid",4001);try{return(await this.communicator.send(m.wallet_requestPermissions,e)).data}catch{throw new b("Permissions rejected",4001)}}isPermissionRequestValid(e){return e.every(e=>"object"==typeof e&&Object.keys(e).every(e=>!!Object.values(y).includes(e)))}}let v=(e,t)=>t.some(t=>t.parentCapability===e);class q{constructor(e){this.communicator=e}async getChainInfo(){return(await this.communicator.send(m.getChainInfo,void 0)).data}async getInfo(){return(await this.communicator.send(m.getSafeInfo,void 0)).data}async experimental_getBalances({currency:e="usd"}={}){return(await this.communicator.send(m.getSafeBalances,{currency:e})).data}async check1271Signature(e,t="0x"){let s=await this.getInfo(),a=(0,f.p)({abi:[{constant:!1,inputs:[{name:"_dataHash",type:"bytes32"},{name:"_signature",type:"bytes"}],name:"isValidSignature",outputs:[{name:"",type:"bytes4"}],payable:!1,stateMutability:"nonpayable",type:"function"}],functionName:"isValidSignature",args:[e,t]}),i={call:c,params:[{to:s.safeAddress,data:a},"latest"]};try{return"0x1626ba7e"===(await this.communicator.send(m.rpcCall,i)).data.slice(0,10).toLowerCase()}catch(e){return!1}}async check1271SignatureBytes(e,t="0x"){let s=await this.getInfo(),a=(0,f.p)({abi:[{constant:!1,inputs:[{name:"_data",type:"bytes"},{name:"_signature",type:"bytes"}],name:"isValidSignature",outputs:[{name:"",type:"bytes4"}],payable:!1,stateMutability:"nonpayable",type:"function"}],functionName:"isValidSignature",args:[e,t]}),i={call:c,params:[{to:s.safeAddress,data:a},"latest"]};try{return"0x20c13b0b"===(await this.communicator.send(m.rpcCall,i)).data.slice(0,10).toLowerCase()}catch(e){return!1}}calculateMessageHash(e){return(0,p.A)(e)}calculateTypedMessageHash(e){let t="object"==typeof e.domain.chainId?e.domain.chainId.toNumber():Number(e.domain.chainId),s=e.primaryType;if(!s){let t=Object.values(e.types),a=Object.keys(e.types).filter(e=>t.every(t=>t.every(({type:t})=>t.replace("[","").replace("]","")!==e)));if(0===a.length||a.length>1)throw Error("Please specify primaryType");s=a[0]}return(0,w.Zh)({message:e.message,domain:{...e.domain,chainId:t,verifyingContract:e.domain.verifyingContract,salt:e.domain.salt},types:e.types,primaryType:s})}async getOffChainSignature(e){return(await this.communicator.send(m.getOffChainSignature,e)).data}async isMessageSigned(e,t="0x"){let s;if("string"==typeof e&&(s=async()=>{let s=this.calculateMessageHash(e);return await this.isMessageHashSigned(s,t)}),r(e)&&(s=async()=>{let s=this.calculateTypedMessageHash(e);return await this.isMessageHashSigned(s,t)}),s)return await s();throw Error("Invalid message type")}async isMessageHashSigned(e,t="0x"){for(let s of[this.check1271Signature.bind(this),this.check1271SignatureBytes.bind(this)])if(await s(e,t))return!0;return!1}async getEnvironmentInfo(){return(await this.communicator.send(m.getEnvironmentInfo,void 0)).data}async requestAddressBook(){return(await this.communicator.send(m.requestAddressBook,void 0)).data}}!function(e,t,s,a){var i,n=arguments.length,r=n<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,s):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,s,a);else for(var o=e.length-1;o>=0;o--)(i=e[o])&&(r=(n<3?i(r):n>3?i(t,s,r):i(t,s))||r);n>3&&r&&Object.defineProperty(t,s,r)}([(e,t,s)=>{let a=s.value;return s.value=async function(){let e=new S(this.communicator),s=await e.getPermissions();if(v(t,s)||(s=await e.requestPermissions([{[t]:{}}])),!v(t,s))throw new b("Permissions rejected",4001);return a.apply(this)},s}],q.prototype,"requestAddressBook",null);class M{constructor(e={}){const{allowedDomains:t=null,debug:s=!1}=e;this.communicator=new n(t,s),this.eth=new d(this.communicator),this.txs=new o(this.communicator),this.safe=new q(this.communicator),this.wallet=new S(this.communicator)}}let k=M}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.