@rango-dev/provider-walletconnect-2 0.30.1-next.4 → 0.30.1-next.6

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.
@@ -0,0 +1,2 @@
1
+ import"./chunk-RPL2NMJC.js";import{a as l}from"./chunk-DXVBX5XQ.js";import{generalSolanaTransactionExecutor as h}from"@rango-dev/signer-solana";import{PublicKey as u}from"@solana/web3.js";import g from"bs58";import{AccountId as f,ChainId as S}from"caip";import{SignerError as w,SignerErrorCode as y}from"rango-types";var c="solana",p=class{static{l(this,"SOLANASigner")}client;session;constructor(s,e){this.client=s,this.session=e}async signMessage(s,e,o){let n=this.isNetworkAndAccountExistInSession({address:e,chainId:o}),a=new S({namespace:c,reference:n.chainId});try{let t=g.encode(new TextEncoder().encode(s)),i=new u(e),{signature:r}=await this.client.request({topic:this.session.topic,chainId:a.toString(),request:{method:"solana_signMessage",params:{message:t,pubkey:i}}});return r}catch(t){throw new w(y.SIGN_TX_ERROR,void 0,t)}}async signAndSendTx(s,e,o){let n=this.isNetworkAndAccountExistInSession({address:e,chainId:o});return{hash:await h(s,l(async i=>{let r=await this.client.request({topic:this.session.topic,chainId:n.caipChainId,request:{method:"solana_signTransaction",params:i}}),d=new u(s.from),m=g.decode(r.signature);return i.addSignature(d,Buffer.from(m)),i.serialize()},"DefaultSolanaSigner"))}}isNetworkAndAccountExistInSession(s){let{address:e,chainId:o}=s,n=o;if(this.session.namespaces[c]?.accounts.map(r=>{let d=r.split(":");d[2]===e&&(n=d[1])}),!n)throw new Error("You need to set your chain for signing message/transaction.");let a=new f({chainId:{namespace:c,reference:n},address:e}),t=this.session.namespaces[c]?.accounts.map(r=>r);if(!t||!t.includes(a.toString()))throw console.warn("Available adresses and requested address:",t,a.toString()),new Error("Your requested address doesn't exist on your wallect connect session. Please reconnect your wallet.");let i=new S({namespace:c,reference:n});return{chainId:n,address:e,caipChainId:i.toString()}}},P=p;export{P as default};
2
+ //# sourceMappingURL=solana-35I33VLX.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/signers/solana.ts"],
4
+ "sourcesContent": ["import type { SolanaWeb3Signer } from '@rango-dev/signer-solana';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\nimport type { SignClient } from '@walletconnect/sign-client/dist/types/client';\nimport type { SessionTypes } from '@walletconnect/types';\nimport type { GenericSigner, SolanaTransaction } from 'rango-types';\n\nimport { generalSolanaTransactionExecutor } from '@rango-dev/signer-solana';\nimport { PublicKey } from '@solana/web3.js';\nimport base58 from 'bs58';\nimport { AccountId, ChainId } from 'caip';\nimport { SignerError, SignerErrorCode } from 'rango-types';\n\nimport { NAMESPACES, SolanaRPCMethods } from '../constants.js';\n\nconst NAMESPACE_NAME = NAMESPACES.SOLANA;\nclass SOLANASigner implements GenericSigner<SolanaTransaction> {\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\n try {\n const message = base58.encode(new TextEncoder().encode(msg));\n const pubkey = new PublicKey(address);\n const { signature } = await this.client.request<{\n signature: string;\n }>({\n topic: this.session.topic,\n chainId: caipChainId.toString(),\n request: {\n method: SolanaRPCMethods.SIGN_MESSAGE,\n params: {\n message,\n pubkey,\n },\n },\n });\n\n return signature;\n } catch (error) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, error);\n }\n }\n\n async signAndSendTx(\n tx: SolanaTransaction,\n address: string,\n chainId: string | null\n ): Promise<{ hash: string }> {\n const requestedFor = this.isNetworkAndAccountExistInSession({\n address,\n chainId,\n });\n const DefaultSolanaSigner: SolanaWeb3Signer = async (\n solanaWeb3Transaction: Transaction | VersionedTransaction\n ) => {\n const response: { signature: string } = await this.client.request({\n topic: this.session.topic,\n chainId: requestedFor.caipChainId,\n request: {\n method: SolanaRPCMethods.SIGN_TRANSACTION,\n params: solanaWeb3Transaction,\n },\n });\n\n const publicKey = new PublicKey(tx.from);\n const sign = base58.decode(response.signature);\n\n solanaWeb3Transaction.addSignature(publicKey, Buffer.from(sign));\n const raw = solanaWeb3Transaction.serialize();\n return raw;\n };\n\n const hash = await generalSolanaTransactionExecutor(\n tx,\n DefaultSolanaSigner\n );\n return { hash };\n }\n\n private isNetworkAndAccountExistInSession(requestedFor: {\n address: string;\n chainId: string | null;\n }) {\n const { address, chainId } = requestedFor;\n\n /*\n * TODO: solana chain id in supported blockchains(\"mainnet-beta\") is different from solana chain id is here (\"5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp\")\n * # Solana Mainnet\n * solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvd\n * refrence: https://github.com/ChainAgnostic/namespaces/blob/main/solana/caip2.md\n */\n\n let solana_chain_id = chainId;\n this.session.namespaces[NAMESPACE_NAME]?.accounts.map((account) => {\n const sol_account = account.split(':');\n if (sol_account[2] === address) {\n solana_chain_id = sol_account[1];\n }\n });\n\n if (!solana_chain_id) {\n throw new Error(\n 'You need to set your chain for signing message/transaction.'\n );\n }\n const caipAddress = new AccountId({\n chainId: {\n namespace: NAMESPACE_NAME,\n reference: solana_chain_id,\n },\n address,\n });\n\n const addresses = this.session.namespaces[NAMESPACE_NAME]?.accounts.map(\n (address) => address\n );\n if (!addresses || !addresses.includes(caipAddress.toString())) {\n console.warn(\n 'Available adresses and requested address:',\n addresses,\n caipAddress.toString()\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: solana_chain_id,\n });\n\n return {\n chainId: solana_chain_id,\n address,\n caipChainId: caipChainId.toString(),\n };\n }\n}\n\nexport default SOLANASigner;\n"],
5
+ "mappings": "oEAMA,OAAS,oCAAAA,MAAwC,2BACjD,OAAS,aAAAC,MAAiB,kBAC1B,OAAOC,MAAY,OACnB,OAAS,aAAAC,EAAW,WAAAC,MAAe,OACnC,OAAS,eAAAC,EAAa,mBAAAC,MAAuB,cAI7C,IAAMC,WACAC,EAAN,KAA+D,CAf/D,MAe+D,CAAAC,EAAA,qBACrD,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,EAED,GAAI,CACF,IAAMG,EAAUC,EAAO,OAAO,IAAI,YAAY,EAAE,OAAOP,CAAG,CAAC,EACrDQ,EAAS,IAAIC,EAAUR,CAAO,EAC9B,CAAE,UAAAS,CAAU,EAAI,MAAM,KAAK,OAAO,QAErC,CACD,MAAO,KAAK,QAAQ,MACpB,QAASN,EAAY,SAAS,EAC9B,QAAS,CACP,4BACA,OAAQ,CACN,QAAAE,EACA,OAAAE,CACF,CACF,CACF,CAAC,EAED,OAAOE,CACT,OAASC,EAAO,CACd,MAAM,IAAIC,EAAYC,EAAgB,cAAe,OAAWF,CAAK,CACvE,CACF,CAEA,MAAM,cACJG,EACAb,EACAC,EAC2B,CAC3B,IAAMC,EAAe,KAAK,kCAAkC,CAC1D,QAAAF,EACA,QAAAC,CACF,CAAC,EAyBD,MAAO,CAAE,KAJI,MAAMa,EACjBD,EArB4CjB,EAAA,MAC5CmB,GACG,CACH,IAAMC,EAAkC,MAAM,KAAK,OAAO,QAAQ,CAChE,MAAO,KAAK,QAAQ,MACpB,QAASd,EAAa,YACtB,QAAS,CACP,gCACA,OAAQa,CACV,CACF,CAAC,EAEKE,EAAY,IAAIT,EAAUK,EAAG,IAAI,EACjCK,EAAOZ,EAAO,OAAOU,EAAS,SAAS,EAE7C,OAAAD,EAAsB,aAAaE,EAAW,OAAO,KAAKC,CAAI,CAAC,EACnDH,EAAsB,UAAU,CAE9C,EAlB8C,sBAuB9C,CACc,CAChB,CAEQ,kCAAkCb,EAGvC,CACD,GAAM,CAAE,QAAAF,EAAS,QAAAC,CAAQ,EAAIC,EASzBiB,EAAkBlB,EAQtB,GAPA,KAAK,QAAQ,WAAWP,CAAc,GAAG,SAAS,IAAK0B,GAAY,CACjE,IAAMC,EAAcD,EAAQ,MAAM,GAAG,EACjCC,EAAY,CAAC,IAAMrB,IACrBmB,EAAkBE,EAAY,CAAC,EAEnC,CAAC,EAEG,CAACF,EACH,MAAM,IAAI,MACR,6DACF,EAEF,IAAMG,EAAc,IAAIC,EAAU,CAChC,QAAS,CACP,UAAW7B,EACX,UAAWyB,CACb,EACA,QAAAnB,CACF,CAAC,EAEKwB,EAAY,KAAK,QAAQ,WAAW9B,CAAc,GAAG,SAAS,IACjEM,GAAYA,CACf,EACA,GAAI,CAACwB,GAAa,CAACA,EAAU,SAASF,EAAY,SAAS,CAAC,EAC1D,cAAQ,KACN,4CACAE,EACAF,EAAY,SAAS,CACvB,EACM,IAAI,MACR,qGACF,EAGF,IAAMnB,EAAc,IAAIC,EAAQ,CAC9B,UAAWV,EACX,UAAWyB,CACb,CAAC,EAED,MAAO,CACL,QAASA,EACT,QAAAnB,EACA,YAAaG,EAAY,SAAS,CACpC,CACF,CACF,EAEOsB,EAAQ9B",
6
+ "names": ["generalSolanaTransactionExecutor", "PublicKey", "base58", "AccountId", "ChainId", "SignerError", "SignerErrorCode", "NAMESPACE_NAME", "SOLANASigner", "__name", "client", "session", "msg", "address", "chainId", "requestedFor", "caipChainId", "ChainId", "message", "base58", "pubkey", "PublicKey", "signature", "error", "SignerError", "SignerErrorCode", "tx", "generalSolanaTransactionExecutor", "solanaWeb3Transaction", "response", "publicKey", "sign", "solana_chain_id", "account", "sol_account", "caipAddress", "AccountId", "addresses", "solana_default"]
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rango-dev/provider-walletconnect-2",
3
- "version": "0.30.1-next.4",
3
+ "version": "0.30.1-next.6",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "source": "./src/index.ts",
@@ -14,7 +14,7 @@
14
14
  "src"
15
15
  ],
16
16
  "scripts": {
17
- "build": "node ../../scripts/build/command.mjs --path wallets/provider-walletconnect-2 --external-all-except @walletconnect/modal",
17
+ "build": "node ../../scripts/build/command.mjs --path wallets/provider-walletconnect-2 --splitting --external-all-except @walletconnect/modal",
18
18
  "ts-check": "tsc --declaration --emitDeclarationOnly -p ./tsconfig.json",
19
19
  "clean": "rimraf dist",
20
20
  "format": "prettier --write '{.,src}/**/*.{ts,tsx}'",
@@ -27,7 +27,7 @@
27
27
  "@rango-dev/logging-core": "^0.6.0",
28
28
  "@rango-dev/signer-cosmos": "^0.29.0",
29
29
  "@rango-dev/signer-evm": "^0.30.0",
30
- "@rango-dev/signer-solana": "^0.32.1-next.0",
30
+ "@rango-dev/signer-solana": "^0.32.1-next.1",
31
31
  "@rango-dev/wallets-shared": "^0.37.1-next.3",
32
32
  "@solana/web3.js": "^1.91.4",
33
33
  "@walletconnect/encoding": "^1.0.2",
@@ -45,4 +45,4 @@
45
45
  "publishConfig": {
46
46
  "access": "public"
47
47
  }
48
- }
48
+ }