@rango-dev/provider-coin98 0.50.1-next.1 → 0.50.1-next.2

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.js CHANGED
@@ -1,2 +1,2 @@
1
- var k=Object.defineProperty;var n=(e,t)=>k(e,"name",{value:t,configurable:!0});import{canSwitchNetworkToEvm as M,chooseInstance as i,getBlockChainNameFromId as I,getEvmAccounts as L,Networks as c,switchNetworkForEvm as P,WalletTypes as R}from"@rango-dev/wallets-shared";import{evmBlockchains as F,solanaBlockchain as O}from"rango-types";import{Networks as p}from"@rango-dev/wallets-shared";function h(){let{coin98:e,ethereum:t}=window;if(!e)return null;let o=new Map;return e.provider&&o.set(p.ETHEREUM,e.provider),t&&t.isCoin98&&o.set(p.ETHEREUM,t),e.sol&&o.set(p.SOLANA,e.sol),o}n(h,"coin98");async function w(e){return await e.enable(),{accounts:await e.request({method:"sol_accounts"})}}n(w,"getSolanaAccounts");import{getNetworkInstance as S,Networks as d,retryLazyImport as b}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as C,TransactionType as f}from"rango-types";import{generalSolanaTransactionExecutor as v}from"@rango-dev/signer-solana";import{PublicKey as N}from"@solana/web3.js";import T from"bs58";import{SignerError as x,SignerErrorCode as A}from"rango-types";var m=class{static{n(this,"CustomSolanaSigner")}provider;constructor(t){this.provider=t}async signMessage(t){try{return(await this.provider.signMessage(t)).signature}catch(o){throw new x(A.SIGN_TX_ERROR,void 0,o)}}async signAndSendTx(t){return{hash:await v(t,n(async r=>{let s=await this.provider.request({method:"sol_sign",params:[r]}),l=new N(s.publicKey),g=T.decode(s.signature);return r.addSignature(l,Buffer.from(g)),r.serialize()},"DefaultSolanaSigner"))}}};async function u(e){let t=S(e,d.ETHEREUM),o=S(e,d.SOLANA),a=new C,{DefaultEvmSigner:r}=await b(async()=>await import("@rango-dev/signer-evm"));return a.registerSigner(f.EVM,new r(t)),a.registerSigner(f.SOLANA,new m(o)),a}n(u,"getSigners");var U=R.COIN98,oe={type:U,defaultNetwork:c.ETHEREUM},ne=h,re=n(async({instance:e,meta:t})=>{let o=i(e,t,c.ETHEREUM),a=i(e,t,c.SOLANA),r=await L(o),{accounts:s}=await w(a);return[r,{accounts:s,chainId:c.SOLANA}]},"connect"),ae=n(({instance:e,meta:t,updateChainId:o,connect:a})=>{let r=i(e,t,c.ETHEREUM),s=n(l=>{let g=I(l,t)||c.Unknown;i(e,t,g).request({method:"eth_requestAccounts"}).then(()=>{}).catch(E=>{console.log({err:E})}),o(l),a(g)},"handleChainChanged");return r?.on?.("chainChanged",s),()=>{r?.off?.("chainChanged",s)}},"subscribe"),se=n(async e=>{let t=i(e.instance,e.meta,e.network);return P({...e,instance:t})},"switchNetwork"),ce=M,ie=u,le=n(e=>{let t=F(e),o=O(e);return{name:"Coin98",img:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/coin98/icon.svg",installLink:{CHROME:"https://chrome.google.com/webstore/detail/coin98-wallet/aeachknmefphepccionboohckonoeemg",BRAVE:"https://chrome.google.com/webstore/detail/coin98-wallet/aeachknmefphepccionboohckonoeemg",DEFAULT:"https://coin98.com/wallet"},color:"#1d1c25",supportedChains:[...t,...o]}},"getWalletInfo");export{ce as canSwitchNetworkTo,oe as config,re as connect,ne as getInstance,ie as getSigners,le as getWalletInfo,ae as subscribe,se as switchNetwork};
1
+ var k=Object.defineProperty;var n=(e,o)=>k(e,"name",{value:o,configurable:!0});import{canSwitchNetworkToEvm as M,chooseInstance as i,getBlockChainNameFromId as I,getEvmAccounts as P,Networks as c,switchNetworkForEvm as R,WalletTypes as L}from"@rango-dev/wallets-shared";import{evmBlockchains as F,solanaBlockchain as O}from"rango-types";import{Networks as p}from"@rango-dev/wallets-shared";function u(){let{coin98:e,ethereum:o}=window;if(!e)return null;let t=new Map;return e.provider&&t.set(p.ETHEREUM,e.provider),o&&o.isCoin98&&t.set(p.ETHEREUM,o),e.sol&&t.set(p.SOLANA,e.sol),t}n(u,"coin98");async function w(e){return await e.enable(),{accounts:await e.request({method:"sol_accounts"})}}n(w,"getSolanaAccounts");import{dynamicImportWithRefinedError as b,getNetworkInstance as d,Networks as S}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as C,TransactionType as f}from"rango-types";import{generalSolanaTransactionExecutor as v}from"@rango-dev/signer-solana";import{PublicKey as N}from"@solana/web3.js";import T from"bs58";import{SignerError as x,SignerErrorCode as A}from"rango-types";var m=class{static{n(this,"CustomSolanaSigner")}provider;constructor(o){this.provider=o}async signMessage(o){try{return(await this.provider.signMessage(o)).signature}catch(t){throw new x(A.SIGN_TX_ERROR,void 0,t)}}async signAndSendTx(o){return{hash:await v(o,n(async r=>{let s=await this.provider.request({method:"sol_sign",params:[r]}),l=new N(s.publicKey),g=T.decode(s.signature);return r.addSignature(l,Buffer.from(g)),r.serialize()},"DefaultSolanaSigner"))}}};async function h(e){let o=d(e,S.ETHEREUM),t=d(e,S.SOLANA),a=new C,{DefaultEvmSigner:r}=await b(async()=>await import("@rango-dev/signer-evm"));return a.registerSigner(f.EVM,new r(o)),a.registerSigner(f.SOLANA,new m(t)),a}n(h,"getSigners");var U=L.COIN98,te={type:U,defaultNetwork:c.ETHEREUM},ne=u,re=n(async({instance:e,meta:o})=>{let t=i(e,o,c.ETHEREUM),a=i(e,o,c.SOLANA),r=await P(t),{accounts:s}=await w(a);return[r,{accounts:s,chainId:c.SOLANA}]},"connect"),ae=n(({instance:e,meta:o,updateChainId:t,connect:a})=>{let r=i(e,o,c.ETHEREUM),s=n(l=>{let g=I(l,o)||c.Unknown;i(e,o,g).request({method:"eth_requestAccounts"}).then(()=>{}).catch(E=>{console.log({err:E})}),t(l),a(g)},"handleChainChanged");return r?.on?.("chainChanged",s),()=>{r?.off?.("chainChanged",s)}},"subscribe"),se=n(async e=>{let o=i(e.instance,e.meta,e.network);return R({...e,instance:o})},"switchNetwork"),ce=M,ie=h,le=n(e=>{let o=F(e),t=O(e);return{name:"Coin98",img:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/coin98/icon.svg",installLink:{CHROME:"https://chrome.google.com/webstore/detail/coin98-wallet/aeachknmefphepccionboohckonoeemg",BRAVE:"https://chrome.google.com/webstore/detail/coin98-wallet/aeachknmefphepccionboohckonoeemg",DEFAULT:"https://coin98.com/wallet"},color:"#1d1c25",supportedChains:[...o,...t]}},"getWalletInfo");export{ce as canSwitchNetworkTo,te as config,re as connect,ne as getInstance,ie as getSigners,le as getWalletInfo,ae as subscribe,se as switchNetwork};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/helpers.ts", "../src/signer.ts", "../src/solana-signer.ts"],
4
- "sourcesContent": ["import type {\n CanSwitchNetwork,\n Connect,\n Subscribe,\n SwitchNetwork,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\nimport type { BlockchainMeta, SignerFactory } from 'rango-types';\n\nimport {\n canSwitchNetworkToEvm,\n chooseInstance,\n getBlockChainNameFromId,\n getEvmAccounts,\n Networks,\n switchNetworkForEvm,\n WalletTypes,\n} from '@rango-dev/wallets-shared';\nimport { evmBlockchains, solanaBlockchain } from 'rango-types';\n\nimport { coin98 as coin98_instances, getSolanaAccounts } from './helpers.js';\nimport signer from './signer.js';\n\nconst WALLET = WalletTypes.COIN98;\n\nexport const config = {\n type: WALLET,\n // TODO: Get from evm networks\n defaultNetwork: Networks.ETHEREUM,\n};\nexport const getInstance = coin98_instances;\n\nexport const connect: Connect = async ({ instance, meta }) => {\n const evm_instance = chooseInstance(instance, meta, Networks.ETHEREUM);\n const sol_instance = chooseInstance(instance, meta, Networks.SOLANA);\n const evm = await getEvmAccounts(evm_instance);\n const { accounts: solanaAccounts } = await getSolanaAccounts(sol_instance);\n\n return [\n evm,\n {\n accounts: solanaAccounts,\n chainId: Networks.SOLANA,\n },\n ];\n};\n\nexport const subscribe: Subscribe = ({\n instance,\n meta,\n updateChainId,\n connect,\n}) => {\n const eth = chooseInstance(instance, meta, Networks.ETHEREUM);\n const handleChainChanged = (chainId: string) => {\n const network = getBlockChainNameFromId(chainId, meta) || Networks.Unknown;\n const targetInstance = chooseInstance(instance, meta, network);\n targetInstance\n .request({ method: 'eth_requestAccounts' })\n .then(() => undefined)\n .catch((err: unknown) => {\n console.log({ err });\n });\n /*\n *TODO:\n *We are calling `connect` here because signer can't detect\n *currect network, I guess the bug is in our signer and it\n *gets the wrong network by calling a wrong method or something.\n *Anyways, this works for now, maybe we can reconsider it in future\n *Whenever we refactored the signer code as well.\n */\n\n /*\n * we need to update `network` first, if not, it will goes through\n * the switching network and will open unneccessary pop ups.\n */\n updateChainId(chainId);\n connect(network);\n };\n eth?.on?.('chainChanged', handleChainChanged);\n\n return () => {\n eth?.off?.('chainChanged', handleChainChanged);\n };\n};\n\nexport const switchNetwork: SwitchNetwork = async (options) => {\n const instance = chooseInstance(\n options.instance,\n options.meta,\n options.network\n );\n return switchNetworkForEvm({\n ...options,\n instance,\n });\n};\n\nexport const canSwitchNetworkTo: CanSwitchNetwork = canSwitchNetworkToEvm;\n\nexport const getSigners: (provider: any) => Promise<SignerFactory> = signer;\n\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => {\n const evms = evmBlockchains(allBlockChains);\n const solana = solanaBlockchain(allBlockChains);\n return {\n name: 'Coin98',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/coin98/icon.svg',\n installLink: {\n CHROME:\n 'https://chrome.google.com/webstore/detail/coin98-wallet/aeachknmefphepccionboohckonoeemg',\n BRAVE:\n 'https://chrome.google.com/webstore/detail/coin98-wallet/aeachknmefphepccionboohckonoeemg',\n DEFAULT: 'https://coin98.com/wallet',\n },\n color: '#1d1c25',\n supportedChains: [...evms, ...solana],\n };\n};\n", "import { Networks } from '@rango-dev/wallets-shared';\n\nexport function coin98() {\n const { coin98, ethereum } = window;\n\n if (!coin98) {\n return null;\n }\n\n const instances = new Map();\n\n // When disabled overring metamask\n if (coin98.provider) {\n instances.set(Networks.ETHEREUM, coin98.provider);\n }\n if (ethereum && ethereum.isCoin98) {\n instances.set(Networks.ETHEREUM, ethereum);\n }\n if (coin98.sol) {\n instances.set(Networks.SOLANA, coin98.sol);\n }\n\n return instances;\n}\n\n/*\n *This is how coin98 is getting solana accounts.\n *That's the reason we haven't moved it to `shared`\n */\nexport async function getSolanaAccounts(instance: any) {\n await instance.enable();\n const accounts = await instance.request({ method: 'sol_accounts' });\n return {\n accounts,\n };\n}\n", "import type { LegacyNetworkProviderMap } from '@rango-dev/wallets-core/legacy';\nimport type { SignerFactory } from 'rango-types';\n\nimport {\n getNetworkInstance,\n Networks,\n retryLazyImport,\n} from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nimport { CustomSolanaSigner } from './solana-signer.js';\n\nexport default async function getSigners(\n provider: LegacyNetworkProviderMap\n): Promise<SignerFactory> {\n const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);\n const solProvider = getNetworkInstance(provider, Networks.SOLANA);\n const signers = new DefaultSignerFactory();\n const { DefaultEvmSigner } = await retryLazyImport(\n async () => await import('@rango-dev/signer-evm')\n );\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));\n signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider));\n return signers;\n}\n", "import type { SolanaWeb3Signer } from '@rango-dev/signer-solana';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\nimport type { GenericSigner, SolanaTransaction } from 'rango-types';\n\nimport { generalSolanaTransactionExecutor } from '@rango-dev/signer-solana';\nimport { PublicKey } from '@solana/web3.js';\nimport bs58 from 'bs58';\nimport { SignerError, SignerErrorCode } from 'rango-types';\n\n/*\n * TODO - replace with real type\n * tslint:disable-next-line: no-any\n */\ntype SolanaExternalProvider = any;\n\nexport class CustomSolanaSigner implements GenericSigner<SolanaTransaction> {\n private provider: SolanaExternalProvider;\n constructor(provider: SolanaExternalProvider) {\n this.provider = provider;\n }\n\n async signMessage(msg: string): Promise<string> {\n try {\n const result = await this.provider.signMessage(msg);\n return result.signature;\n } catch (error) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, error);\n }\n }\n\n async signAndSendTx(tx: SolanaTransaction): Promise<{ hash: string }> {\n const DefaultSolanaSigner: SolanaWeb3Signer = async (\n solanaWeb3Transaction: Transaction | VersionedTransaction\n ) => {\n const response: { publicKey: string; signature: string } =\n await this.provider.request({\n method: 'sol_sign',\n params: [solanaWeb3Transaction],\n });\n const publicKey = new PublicKey(response.publicKey);\n const sign = bs58.decode(response.signature);\n\n solanaWeb3Transaction.addSignature(publicKey, Buffer.from(sign));\n const raw = solanaWeb3Transaction.serialize();\n return raw;\n };\n const hash = await generalSolanaTransactionExecutor(\n tx,\n DefaultSolanaSigner\n );\n return { hash };\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["canSwitchNetworkToEvm", "chooseInstance", "getBlockChainNameFromId", "getEvmAccounts", "Networks", "switchNetworkForEvm", "WalletTypes", "evmBlockchains", "solanaBlockchain", "Networks", "coin98", "ethereum", "instances", "Networks", "__name", "getSolanaAccounts", "instance", "getNetworkInstance", "Networks", "retryLazyImport", "DefaultSignerFactory", "TxType", "generalSolanaTransactionExecutor", "PublicKey", "bs58", "SignerError", "SignerErrorCode", "CustomSolanaSigner", "__name", "provider", "msg", "error", "SignerError", "SignerErrorCode", "tx", "generalSolanaTransactionExecutor", "solanaWeb3Transaction", "response", "publicKey", "PublicKey", "sign", "bs58", "getSigners", "provider", "ethProvider", "getNetworkInstance", "Networks", "solProvider", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "retryLazyImport", "TxType", "CustomSolanaSigner", "__name", "WALLET", "WalletTypes", "config", "Networks", "getInstance", "coin98", "connect", "__name", "instance", "meta", "evm_instance", "chooseInstance", "sol_instance", "evm", "getEvmAccounts", "solanaAccounts", "getSolanaAccounts", "subscribe", "updateChainId", "eth", "handleChainChanged", "chainId", "network", "getBlockChainNameFromId", "err", "switchNetwork", "options", "switchNetworkForEvm", "canSwitchNetworkTo", "canSwitchNetworkToEvm", "getSigners", "getWalletInfo", "allBlockChains", "evms", "evmBlockchains", "solana", "solanaBlockchain"]
4
+ "sourcesContent": ["import type {\n CanSwitchNetwork,\n Connect,\n Subscribe,\n SwitchNetwork,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\nimport type { BlockchainMeta, SignerFactory } from 'rango-types';\n\nimport {\n canSwitchNetworkToEvm,\n chooseInstance,\n getBlockChainNameFromId,\n getEvmAccounts,\n Networks,\n switchNetworkForEvm,\n WalletTypes,\n} from '@rango-dev/wallets-shared';\nimport { evmBlockchains, solanaBlockchain } from 'rango-types';\n\nimport { coin98 as coin98_instances, getSolanaAccounts } from './helpers.js';\nimport signer from './signer.js';\n\nconst WALLET = WalletTypes.COIN98;\n\nexport const config = {\n type: WALLET,\n // TODO: Get from evm networks\n defaultNetwork: Networks.ETHEREUM,\n};\nexport const getInstance = coin98_instances;\n\nexport const connect: Connect = async ({ instance, meta }) => {\n const evm_instance = chooseInstance(instance, meta, Networks.ETHEREUM);\n const sol_instance = chooseInstance(instance, meta, Networks.SOLANA);\n const evm = await getEvmAccounts(evm_instance);\n const { accounts: solanaAccounts } = await getSolanaAccounts(sol_instance);\n\n return [\n evm,\n {\n accounts: solanaAccounts,\n chainId: Networks.SOLANA,\n },\n ];\n};\n\nexport const subscribe: Subscribe = ({\n instance,\n meta,\n updateChainId,\n connect,\n}) => {\n const eth = chooseInstance(instance, meta, Networks.ETHEREUM);\n const handleChainChanged = (chainId: string) => {\n const network = getBlockChainNameFromId(chainId, meta) || Networks.Unknown;\n const targetInstance = chooseInstance(instance, meta, network);\n targetInstance\n .request({ method: 'eth_requestAccounts' })\n .then(() => undefined)\n .catch((err: unknown) => {\n console.log({ err });\n });\n /*\n *TODO:\n *We are calling `connect` here because signer can't detect\n *currect network, I guess the bug is in our signer and it\n *gets the wrong network by calling a wrong method or something.\n *Anyways, this works for now, maybe we can reconsider it in future\n *Whenever we refactored the signer code as well.\n */\n\n /*\n * we need to update `network` first, if not, it will goes through\n * the switching network and will open unneccessary pop ups.\n */\n updateChainId(chainId);\n connect(network);\n };\n eth?.on?.('chainChanged', handleChainChanged);\n\n return () => {\n eth?.off?.('chainChanged', handleChainChanged);\n };\n};\n\nexport const switchNetwork: SwitchNetwork = async (options) => {\n const instance = chooseInstance(\n options.instance,\n options.meta,\n options.network\n );\n return switchNetworkForEvm({\n ...options,\n instance,\n });\n};\n\nexport const canSwitchNetworkTo: CanSwitchNetwork = canSwitchNetworkToEvm;\n\nexport const getSigners: (provider: any) => Promise<SignerFactory> = signer;\n\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => {\n const evms = evmBlockchains(allBlockChains);\n const solana = solanaBlockchain(allBlockChains);\n return {\n name: 'Coin98',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/coin98/icon.svg',\n installLink: {\n CHROME:\n 'https://chrome.google.com/webstore/detail/coin98-wallet/aeachknmefphepccionboohckonoeemg',\n BRAVE:\n 'https://chrome.google.com/webstore/detail/coin98-wallet/aeachknmefphepccionboohckonoeemg',\n DEFAULT: 'https://coin98.com/wallet',\n },\n color: '#1d1c25',\n supportedChains: [...evms, ...solana],\n };\n};\n", "import { Networks } from '@rango-dev/wallets-shared';\n\nexport function coin98() {\n const { coin98, ethereum } = window;\n\n if (!coin98) {\n return null;\n }\n\n const instances = new Map();\n\n // When disabled overring metamask\n if (coin98.provider) {\n instances.set(Networks.ETHEREUM, coin98.provider);\n }\n if (ethereum && ethereum.isCoin98) {\n instances.set(Networks.ETHEREUM, ethereum);\n }\n if (coin98.sol) {\n instances.set(Networks.SOLANA, coin98.sol);\n }\n\n return instances;\n}\n\n/*\n *This is how coin98 is getting solana accounts.\n *That's the reason we haven't moved it to `shared`\n */\nexport async function getSolanaAccounts(instance: any) {\n await instance.enable();\n const accounts = await instance.request({ method: 'sol_accounts' });\n return {\n accounts,\n };\n}\n", "import type { LegacyNetworkProviderMap } from '@rango-dev/wallets-core/legacy';\nimport type { SignerFactory } from 'rango-types';\n\nimport {\n dynamicImportWithRefinedError,\n getNetworkInstance,\n Networks,\n} from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nimport { CustomSolanaSigner } from './solana-signer.js';\n\nexport default async function getSigners(\n provider: LegacyNetworkProviderMap\n): Promise<SignerFactory> {\n const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);\n const solProvider = getNetworkInstance(provider, Networks.SOLANA);\n const signers = new DefaultSignerFactory();\n const { DefaultEvmSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-evm')\n );\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));\n signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider));\n return signers;\n}\n", "import type { SolanaWeb3Signer } from '@rango-dev/signer-solana';\nimport type { Transaction, VersionedTransaction } from '@solana/web3.js';\nimport type { GenericSigner, SolanaTransaction } from 'rango-types';\n\nimport { generalSolanaTransactionExecutor } from '@rango-dev/signer-solana';\nimport { PublicKey } from '@solana/web3.js';\nimport bs58 from 'bs58';\nimport { SignerError, SignerErrorCode } from 'rango-types';\n\n/*\n * TODO - replace with real type\n * tslint:disable-next-line: no-any\n */\ntype SolanaExternalProvider = any;\n\nexport class CustomSolanaSigner implements GenericSigner<SolanaTransaction> {\n private provider: SolanaExternalProvider;\n constructor(provider: SolanaExternalProvider) {\n this.provider = provider;\n }\n\n async signMessage(msg: string): Promise<string> {\n try {\n const result = await this.provider.signMessage(msg);\n return result.signature;\n } catch (error) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, error);\n }\n }\n\n async signAndSendTx(tx: SolanaTransaction): Promise<{ hash: string }> {\n const DefaultSolanaSigner: SolanaWeb3Signer = async (\n solanaWeb3Transaction: Transaction | VersionedTransaction\n ) => {\n const response: { publicKey: string; signature: string } =\n await this.provider.request({\n method: 'sol_sign',\n params: [solanaWeb3Transaction],\n });\n const publicKey = new PublicKey(response.publicKey);\n const sign = bs58.decode(response.signature);\n\n solanaWeb3Transaction.addSignature(publicKey, Buffer.from(sign));\n const raw = solanaWeb3Transaction.serialize();\n return raw;\n };\n const hash = await generalSolanaTransactionExecutor(\n tx,\n DefaultSolanaSigner\n );\n return { hash };\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["canSwitchNetworkToEvm", "chooseInstance", "getBlockChainNameFromId", "getEvmAccounts", "Networks", "switchNetworkForEvm", "WalletTypes", "evmBlockchains", "solanaBlockchain", "Networks", "coin98", "ethereum", "instances", "Networks", "__name", "getSolanaAccounts", "instance", "dynamicImportWithRefinedError", "getNetworkInstance", "Networks", "DefaultSignerFactory", "TxType", "generalSolanaTransactionExecutor", "PublicKey", "bs58", "SignerError", "SignerErrorCode", "CustomSolanaSigner", "__name", "provider", "msg", "error", "SignerError", "SignerErrorCode", "tx", "generalSolanaTransactionExecutor", "solanaWeb3Transaction", "response", "publicKey", "PublicKey", "sign", "bs58", "getSigners", "provider", "ethProvider", "getNetworkInstance", "Networks", "solProvider", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "dynamicImportWithRefinedError", "TxType", "CustomSolanaSigner", "__name", "WALLET", "WalletTypes", "config", "Networks", "getInstance", "coin98", "connect", "__name", "instance", "meta", "evm_instance", "chooseInstance", "sol_instance", "evm", "getEvmAccounts", "solanaAccounts", "getSolanaAccounts", "subscribe", "updateChainId", "eth", "handleChainChanged", "chainId", "network", "getBlockChainNameFromId", "err", "switchNetwork", "options", "switchNetworkForEvm", "canSwitchNetworkTo", "canSwitchNetworkToEvm", "getSigners", "getWalletInfo", "allBlockChains", "evms", "evmBlockchains", "solana", "solanaBlockchain"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"src/helpers.ts":{"bytes":796,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/solana-signer.ts":{"bytes":1784,"imports":[{"path":"@rango-dev/signer-solana","kind":"import-statement","external":true},{"path":"@solana/web3.js","kind":"import-statement","external":true},{"path":"bs58","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/signer.ts":{"bytes":944,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/solana-signer.ts","kind":"import-statement","original":"./solana-signer.js"},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":3500,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/helpers.ts","kind":"import-statement","original":"./helpers.js"},{"path":"src/signer.ts","kind":"import-statement","original":"./signer.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":11801},"dist/index.js":{"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-solana","kind":"import-statement","external":true},{"path":"@solana/web3.js","kind":"import-statement","external":true},{"path":"bs58","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true}],"exports":["canSwitchNetworkTo","config","connect","getInstance","getSigners","getWalletInfo","subscribe","switchNetwork"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":1355},"src/helpers.ts":{"bytesInOutput":379},"src/signer.ts":{"bytesInOutput":409},"src/solana-signer.ts":{"bytesInOutput":667}},"bytes":3075}}}
1
+ {"inputs":{"src/helpers.ts":{"bytes":796,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/solana-signer.ts":{"bytes":1784,"imports":[{"path":"@rango-dev/signer-solana","kind":"import-statement","external":true},{"path":"@solana/web3.js","kind":"import-statement","external":true},{"path":"bs58","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/signer.ts":{"bytes":972,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/solana-signer.ts","kind":"import-statement","original":"./solana-signer.js"},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":3500,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/helpers.ts","kind":"import-statement","original":"./helpers.js"},{"path":"src/signer.ts","kind":"import-statement","original":"./signer.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":11857},"dist/index.js":{"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-solana","kind":"import-statement","external":true},{"path":"@solana/web3.js","kind":"import-statement","external":true},{"path":"bs58","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true}],"exports":["canSwitchNetworkTo","config","connect","getInstance","getSigners","getWalletInfo","subscribe","switchNetwork"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":1355},"src/helpers.ts":{"bytesInOutput":379},"src/signer.ts":{"bytesInOutput":423},"src/solana-signer.ts":{"bytesInOutput":667}},"bytes":3089}}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rango-dev/provider-coin98",
3
- "version": "0.50.1-next.1",
3
+ "version": "0.50.1-next.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "source": "./src/index.ts",
@@ -24,7 +24,7 @@
24
24
  "@rango-dev/signer-evm": "^0.39.1-next.0",
25
25
  "@rango-dev/signer-solana": "^0.43.1-next.0",
26
26
  "@rango-dev/wallets-core": "^0.47.1-next.1",
27
- "@rango-dev/wallets-shared": "^0.48.1-next.1",
27
+ "@rango-dev/wallets-shared": "^0.48.1-next.2",
28
28
  "@solana/web3.js": "^1.91.4",
29
29
  "bs58": "^5.0.0",
30
30
  "rango-types": "^0.1.89"
package/src/signer.ts CHANGED
@@ -2,9 +2,9 @@ import type { LegacyNetworkProviderMap } from '@rango-dev/wallets-core/legacy';
2
2
  import type { SignerFactory } from 'rango-types';
3
3
 
4
4
  import {
5
+ dynamicImportWithRefinedError,
5
6
  getNetworkInstance,
6
7
  Networks,
7
- retryLazyImport,
8
8
  } from '@rango-dev/wallets-shared';
9
9
  import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';
10
10
 
@@ -16,7 +16,7 @@ export default async function getSigners(
16
16
  const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);
17
17
  const solProvider = getNetworkInstance(provider, Networks.SOLANA);
18
18
  const signers = new DefaultSignerFactory();
19
- const { DefaultEvmSigner } = await retryLazyImport(
19
+ const { DefaultEvmSigner } = await dynamicImportWithRefinedError(
20
20
  async () => await import('@rango-dev/signer-evm')
21
21
  );
22
22
  signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));