@rango-dev/provider-walletconnect-2 0.30.1-next.5 → 0.30.1-next.7
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/chunk-BPSEZJUF.js +2 -0
- package/dist/chunk-BPSEZJUF.js.map +7 -0
- package/dist/chunk-DXVBX5XQ.js +2 -0
- package/dist/chunk-DXVBX5XQ.js.map +7 -0
- package/dist/chunk-RPL2NMJC.js +2 -0
- package/dist/chunk-RPL2NMJC.js.map +7 -0
- package/dist/cosmos-I3Z34UI3.js +2 -0
- package/dist/cosmos-I3Z34UI3.js.map +7 -0
- package/dist/dist-6GI3ECE5.js +139 -0
- package/dist/dist-6GI3ECE5.js.map +7 -0
- package/dist/evm-MYSQOTV5.js +2 -0
- package/dist/evm-MYSQOTV5.js.map +7 -0
- package/dist/index.js +1 -138
- package/dist/index.js.map +4 -4
- package/dist/provider-walletconnect-2.build.json +1 -1
- package/dist/solana-35I33VLX.js +2 -0
- package/dist/solana-35I33VLX.js.map +7 -0
- package/package.json +7 -7
- package/src/signers/mock.ts +123 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./chunk-RPL2NMJC.js";import{a as h}from"./chunk-DXVBX5XQ.js";import{cleanEvmError as p,DefaultEvmSigner as u}from"@rango-dev/signer-evm";import*as l from"@walletconnect/encoding";import{AccountId as S,ChainId as m}from"caip";import"rango-types";var a="eip155",d=class{static{h(this,"EVMSigner")}client;session;constructor(r,n){this.client=r,this.session=n}async signMessage(r,n,t){let s=this.isNetworkAndAccountExistInSession({address:n,chainId:t}),i=new m({namespace:a,reference:s.chainId}),o=[l.utf8ToHex(r,!0),n],c;try{c=await this.client.request({topic:this.session.topic,chainId:i.toString(),request:{method:"personal_sign",params:o}})}catch(g){throw p(g)}return c}async signAndSendTx(r,n,t){try{let s=this.isNetworkAndAccountExistInSession({address:n,chainId:t}),i=u.buildTx(r),e=await this.client.request({topic:this.session.topic,chainId:s.caipChainId,request:{method:"eth_sendTransaction",params:[i]}});if(!e?.startsWith("0x"))throw new Error(`Received an invalid hash on signing the transaction. (hash=${e})`);return{hash:e}}catch(s){let i=p(s),e=this.session,o={namspaces:e?.namespaces,peering:e?.peer?.metadata,code:s?.code};throw i.context=o,i}}isNetworkAndAccountExistInSession(r){let{address:n,chainId:t}=r;if(!t)throw console.log("isNetworkAndAccountExistInSession",r),new Error("You need to set your chain for signing message/transaction.");let s=t.startsWith("0x")?String(parseInt(t)):t,i=new S({chainId:{namespace:a,reference:s},address:n}),e=this.session.namespaces[a]?.accounts.map(c=>c.toLowerCase());if(!e||!e.includes(i.toString()))throw console.warn("Available adresses and requested address:",e,i.toString(),t,n),new Error("Your requested address doesn't exist on your wallect connect session. Please reconnect your wallet.");let o=new m({namespace:a,reference:s});return{chainId:s,address:n,caipChainId:o.toString()}}},C=d;export{C as default};
|
|
2
|
+
//# sourceMappingURL=evm-MYSQOTV5.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/signers/evm.ts"],
|
|
4
|
+
"sourcesContent": ["import type { SignClient } from '@walletconnect/sign-client/dist/types/client';\nimport type { SessionTypes } from '@walletconnect/types';\nimport type { EvmTransaction } from 'rango-types/mainApi';\n\nimport { cleanEvmError, DefaultEvmSigner } from '@rango-dev/signer-evm';\nimport * as encoding from '@walletconnect/encoding';\nimport { AccountId, ChainId } from 'caip';\nimport { type GenericSigner } from 'rango-types';\n\nimport { EthereumRPCMethods, NAMESPACES } from '../constants.js';\n\nconst NAMESPACE_NAME = NAMESPACES.ETHEREUM;\n\nclass EVMSigner implements GenericSigner<EvmTransaction> {\n private client: SignClient;\n private session: SessionTypes.Struct;\n\n constructor(client: SignClient, session: SessionTypes.Struct) {\n this.client = client;\n this.session = session;\n }\n\n public async signMessage(\n msg: string,\n address: string,\n chainId: string | null\n ): Promise<string> {\n const requestedFor = this.isNetworkAndAccountExistInSession({\n address,\n chainId,\n });\n\n const caipChainId = new ChainId({\n namespace: NAMESPACE_NAME,\n reference: requestedFor.chainId,\n });\n const hexMsg = encoding.utf8ToHex(msg, true);\n\n const params = [hexMsg, address];\n\n let signature: string;\n try {\n // Send message to wallet (using relayer)\n signature = await this.client.request({\n topic: this.session.topic,\n chainId: caipChainId.toString(),\n request: {\n method: EthereumRPCMethods.PERSONAL_SIGN,\n params,\n },\n });\n } catch (error) {\n throw cleanEvmError(error);\n }\n\n /*\n * TODO: We can also verify the signature here\n * Check web-examples: dapps/react-dapp-v2/src/contexts/JsonRpcContext.tsx\n */\n\n return signature;\n }\n\n async signAndSendTx(\n tx: EvmTransaction,\n address: string,\n chainId: string | null\n ): Promise<{ hash: string }> {\n try {\n const requestedFor = this.isNetworkAndAccountExistInSession({\n address,\n chainId,\n });\n const transaction = DefaultEvmSigner.buildTx(tx);\n const hash: string = await this.client.request({\n topic: this.session.topic,\n chainId: requestedFor.caipChainId,\n request: {\n method: EthereumRPCMethods.SEND_TRANSACTION,\n params: [transaction],\n },\n });\n // Some wallets e.g. Rainbow wallet are returning invalid hash (e.g. 'null') in case of the rejection\n if (!hash?.startsWith('0x')) {\n throw new Error(\n `Received an invalid hash on signing the transaction. (hash=${hash})`\n );\n }\n return {\n hash,\n };\n } catch (error: any) {\n const modifiedError = cleanEvmError(error);\n const session = this.session;\n const context = {\n namspaces: session?.namespaces,\n peering: session?.peer?.metadata,\n code: error?.code,\n };\n modifiedError.context = context;\n throw modifiedError;\n }\n }\n\n private isNetworkAndAccountExistInSession(requestedFor: {\n address: string;\n chainId: string | null;\n }) {\n const { address, chainId } = requestedFor;\n\n if (!chainId) {\n console.log('isNetworkAndAccountExistInSession', requestedFor);\n throw new Error(\n 'You need to set your chain for signing message/transaction.'\n );\n }\n\n /*\n * TODO: We need to make sure we are using a single format for chain ids, it should be hex or number.\n * This is a quick fix for evm.\n */\n const chainIdNumber = chainId.startsWith('0x')\n ? String(parseInt(chainId))\n : chainId;\n\n const caipAddress = new AccountId({\n chainId: {\n namespace: NAMESPACE_NAME,\n reference: chainIdNumber,\n },\n address,\n });\n const addresses = this.session.namespaces[NAMESPACE_NAME]?.accounts.map(\n (address) => address.toLowerCase()\n );\n\n if (!addresses || !addresses.includes(caipAddress.toString())) {\n console.warn(\n 'Available adresses and requested address:',\n addresses,\n caipAddress.toString(),\n chainId,\n address\n );\n throw new Error(\n `Your requested address doesn't exist on your wallect connect session. Please reconnect your wallet.`\n );\n }\n\n const caipChainId = new ChainId({\n namespace: NAMESPACE_NAME,\n reference: chainIdNumber,\n });\n\n return {\n chainId: chainIdNumber,\n address,\n caipChainId: caipChainId.toString(),\n };\n }\n}\n\nexport default EVMSigner;\n"],
|
|
5
|
+
"mappings": "oEAIA,OAAS,iBAAAA,EAAe,oBAAAC,MAAwB,wBAChD,UAAYC,MAAc,0BAC1B,OAAS,aAAAC,EAAW,WAAAC,MAAe,OACnC,MAAmC,cAInC,IAAMC,WAEAC,EAAN,KAAyD,CAbzD,MAayD,CAAAC,EAAA,kBAC/C,OACA,QAER,YAAYC,EAAoBC,EAA8B,CAC5D,KAAK,OAASD,EACd,KAAK,QAAUC,CACjB,CAEA,MAAa,YACXC,EACAC,EACAC,EACiB,CACjB,IAAMC,EAAe,KAAK,kCAAkC,CAC1D,QAAAF,EACA,QAAAC,CACF,CAAC,EAEKE,EAAc,IAAIC,EAAQ,CAC9B,UAAWV,EACX,UAAWQ,EAAa,OAC1B,CAAC,EAGKG,EAAS,CAFS,YAAUN,EAAK,EAAI,EAEnBC,CAAO,EAE3BM,EACJ,GAAI,CAEFA,EAAY,MAAM,KAAK,OAAO,QAAQ,CACpC,MAAO,KAAK,QAAQ,MACpB,QAASH,EAAY,SAAS,EAC9B,QAAS,CACP,uBACA,OAAAE,CACF,CACF,CAAC,CACH,OAASE,EAAO,CACd,MAAMC,EAAcD,CAAK,CAC3B,CAOA,OAAOD,CACT,CAEA,MAAM,cACJG,EACAT,EACAC,EAC2B,CAC3B,GAAI,CACF,IAAMC,EAAe,KAAK,kCAAkC,CAC1D,QAAAF,EACA,QAAAC,CACF,CAAC,EACKS,EAAcC,EAAiB,QAAQF,CAAE,EACzCG,EAAe,MAAM,KAAK,OAAO,QAAQ,CAC7C,MAAO,KAAK,QAAQ,MACpB,QAASV,EAAa,YACtB,QAAS,CACP,6BACA,OAAQ,CAACQ,CAAW,CACtB,CACF,CAAC,EAED,GAAI,CAACE,GAAM,WAAW,IAAI,EACxB,MAAM,IAAI,MACR,8DAA8DA,CAAI,GACpE,EAEF,MAAO,CACL,KAAAA,CACF,CACF,OAASL,EAAY,CACnB,IAAMM,EAAgBL,EAAcD,CAAK,EACnCT,EAAU,KAAK,QACfgB,EAAU,CACd,UAAWhB,GAAS,WACpB,QAASA,GAAS,MAAM,SACxB,KAAMS,GAAO,IACf,EACA,MAAAM,EAAc,QAAUC,EAClBD,CACR,CACF,CAEQ,kCAAkCX,EAGvC,CACD,GAAM,CAAE,QAAAF,EAAS,QAAAC,CAAQ,EAAIC,EAE7B,GAAI,CAACD,EACH,cAAQ,IAAI,oCAAqCC,CAAY,EACvD,IAAI,MACR,6DACF,EAOF,IAAMa,EAAgBd,EAAQ,WAAW,IAAI,EACzC,OAAO,SAASA,CAAO,CAAC,EACxBA,EAEEe,EAAc,IAAIC,EAAU,CAChC,QAAS,CACP,UAAWvB,EACX,UAAWqB,CACb,EACA,QAAAf,CACF,CAAC,EACKkB,EAAY,KAAK,QAAQ,WAAWxB,CAAc,GAAG,SAAS,IACjEM,GAAYA,EAAQ,YAAY,CACnC,EAEA,GAAI,CAACkB,GAAa,CAACA,EAAU,SAASF,EAAY,SAAS,CAAC,EAC1D,cAAQ,KACN,4CACAE,EACAF,EAAY,SAAS,EACrBf,EACAD,CACF,EACM,IAAI,MACR,qGACF,EAGF,IAAMG,EAAc,IAAIC,EAAQ,CAC9B,UAAWV,EACX,UAAWqB,CACb,CAAC,EAED,MAAO,CACL,QAASA,EACT,QAAAf,EACA,YAAaG,EAAY,SAAS,CACpC,CACF,CACF,EAEOgB,EAAQxB",
|
|
6
|
+
"names": ["cleanEvmError", "DefaultEvmSigner", "encoding", "AccountId", "ChainId", "NAMESPACE_NAME", "EVMSigner", "__name", "client", "session", "msg", "address", "chainId", "requestedFor", "caipChainId", "ChainId", "params", "signature", "error", "cleanEvmError", "tx", "transaction", "DefaultEvmSigner", "hash", "modifiedError", "context", "chainIdNumber", "caipAddress", "AccountId", "addresses", "evm_default"]
|
|
7
|
+
}
|