@rango-dev/provider-coin98 0.5.0 → 0.5.1-next.1

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.d.ts CHANGED
@@ -1,9 +1,9 @@
1
- import { Network, WalletTypes, CanSwitchNetwork, Connect, Subscribe, SwitchNetwork, WalletInfo } from '@rango-dev/wallets-shared';
1
+ import { Networks, WalletTypes, CanSwitchNetwork, Connect, Subscribe, SwitchNetwork, WalletInfo } from '@rango-dev/wallets-shared';
2
2
  import { coin98 as coin98_instances } from './helpers';
3
3
  import { SignerFactory, BlockchainMeta } from 'rango-types';
4
4
  export declare const config: {
5
5
  type: WalletTypes;
6
- defaultNetwork: Network;
6
+ defaultNetwork: Networks;
7
7
  };
8
8
  export declare const getInstance: typeof coin98_instances;
9
9
  export declare const connect: Connect;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EACP,WAAW,EAKX,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,aAAa,EACb,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGvD,OAAO,EACL,aAAa,EAGb,cAAc,EACf,MAAM,aAAa,CAAC;AAIrB,eAAO,MAAM,MAAM;;;CAIlB,CAAC;AACF,eAAO,MAAM,WAAW,yBAAmB,CAAC;AAE5C,eAAO,MAAM,OAAO,EAAE,OAarB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SA8BvB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,aAU3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAAwC,CAAC;AAE1E,eAAO,MAAM,UAAU,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,aAAsB,CAAC;AAEnE,eAAO,MAAM,aAAa,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,UAkBjE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,QAAQ,EACR,WAAW,EAKX,gBAAgB,EAChB,OAAO,EACP,SAAS,EACT,aAAa,EACb,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAGvD,OAAO,EACL,aAAa,EAGb,cAAc,EACf,MAAM,aAAa,CAAC;AAIrB,eAAO,MAAM,MAAM;;;CAIlB,CAAC;AACF,eAAO,MAAM,WAAW,yBAAmB,CAAC;AAE5C,eAAO,MAAM,OAAO,EAAE,OAarB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SA8BvB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,aAU3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAAwC,CAAC;AAE1E,eAAO,MAAM,UAAU,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,aAAsB,CAAC;AAEnE,eAAO,MAAM,aAAa,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,UAkBjE,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var k=Object.defineProperty;var o=(n,e)=>k(n,"name",{value:e,configurable:!0});import{getBlockChainNameFromId as b,Network as s,WalletTypes as M,canSwitchNetworkToEvm as C,chooseInstance as l,getEvmAccounts as I,switchNetworkForEvm as L}from"@rango-dev/wallets-shared";import{Network as m}from"@rango-dev/wallets-shared";function w(){let{coin98:n,ethereum:e}=window;if(!n)return null;let t=new Map;return n.provider&&t.set(m.ETHEREUM,n.provider),e&&e.isCoin98&&t.set(m.ETHEREUM,e),n.sol&&t.set(m.SOLANA,n.sol),t}o(w,"coin98");async function S(n){return await n.enable(),{accounts:await n.request({method:"sol_accounts"})}}o(S,"getSolanaAccounts");import{DefaultEvmSigner as x}from"@rango-dev/signer-evm";import{Network as f,getNetworkInstance as d}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as A,TransactionType as E}from"rango-types";import{SignerError as y}from"rango-types";import{PublicKey as T}from"@solana/web3.js";import v from"bs58";import{generalSolanaTransactionExecutor as N}from"@rango-dev/signer-solana";var i=class{constructor(e){this.provider=e}async signMessage(){throw y.UnimplementedError("signMessage")}async signAndSendTx(e){return{hash:await N(e,o(async a=>{let c=await this.provider.request({method:"sol_sign",params:[a]}),g=new T(c.publicKey),u=v.decode(c.signature);return a.addSignature(g,Buffer.from(u)),a.serialize()},"DefaultSolanaSigner"))}}};o(i,"CustomSolanaSigner");function p(n){let e=d(n,f.ETHEREUM),t=d(n,f.SOLANA),r=new A;return r.registerSigner(E.EVM,new x(e)),r.registerSigner(E.SOLANA,new i(t)),r}o(p,"getSigners");import{evmBlockchains as U,solanaBlockchain as F}from"rango-types";var P=M.COIN98,Sn={type:P,defaultNetwork:s.ETHEREUM},fn=w,dn=o(async({instance:n,meta:e})=>{let t=l(n,e,s.ETHEREUM),r=l(n,e,s.SOLANA),a=await I(t),{accounts:c}=await S(r);return[a,{accounts:c,chainId:s.SOLANA}]},"connect"),En=o(({instance:n,meta:e,updateChainId:t,connect:r})=>{l(n,e,s.ETHEREUM)?.on("chainChanged",c=>{let g=b(c,e)||s.Unknown;l(n,e,g).request({method:"eth_requestAccounts"}).then(()=>{}).catch(h=>{console.log({err:h})}),t(c),r(g)})},"subscribe"),kn=o(async n=>{let e=l(n.instance,n.meta,n.network);return L({...n,instance:e})},"switchNetwork"),yn=C,Tn=p,vn=o(n=>{let e=U(n),t=F(n);return{name:"Coin98",img:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/icons/wallets/coin98.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:[...e,...t]}},"getWalletInfo");export{yn as canSwitchNetworkTo,Sn as config,dn as connect,fn as getInstance,Tn as getSigners,vn as getWalletInfo,En as subscribe,kn as switchNetwork};
1
+ var k=Object.defineProperty;var o=(n,e)=>k(n,"name",{value:e,configurable:!0});import{getBlockChainNameFromId as b,Networks as a,WalletTypes as M,canSwitchNetworkToEvm as C,chooseInstance as l,getEvmAccounts as I,switchNetworkForEvm as L}from"@rango-dev/wallets-shared";import{Networks as m}from"@rango-dev/wallets-shared";function w(){let{coin98:n,ethereum:e}=window;if(!n)return null;let t=new Map;return n.provider&&t.set(m.ETHEREUM,n.provider),e&&e.isCoin98&&t.set(m.ETHEREUM,e),n.sol&&t.set(m.SOLANA,n.sol),t}o(w,"coin98");async function S(n){return await n.enable(),{accounts:await n.request({method:"sol_accounts"})}}o(S,"getSolanaAccounts");import{DefaultEvmSigner as x}from"@rango-dev/signer-evm";import{Networks as f,getNetworkInstance as d}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as A,TransactionType as E}from"rango-types";import{SignerError as y}from"rango-types";import{PublicKey as T}from"@solana/web3.js";import v from"bs58";import{generalSolanaTransactionExecutor as N}from"@rango-dev/signer-solana";var i=class{constructor(e){this.provider=e}async signMessage(){throw y.UnimplementedError("signMessage")}async signAndSendTx(e){return{hash:await N(e,o(async s=>{let c=await this.provider.request({method:"sol_sign",params:[s]}),g=new T(c.publicKey),u=v.decode(c.signature);return s.addSignature(g,Buffer.from(u)),s.serialize()},"DefaultSolanaSigner"))}}};o(i,"CustomSolanaSigner");function p(n){let e=d(n,f.ETHEREUM),t=d(n,f.SOLANA),r=new A;return r.registerSigner(E.EVM,new x(e)),r.registerSigner(E.SOLANA,new i(t)),r}o(p,"getSigners");import{evmBlockchains as U,solanaBlockchain as F}from"rango-types";var P=M.COIN98,Sn={type:P,defaultNetwork:a.ETHEREUM},fn=w,dn=o(async({instance:n,meta:e})=>{let t=l(n,e,a.ETHEREUM),r=l(n,e,a.SOLANA),s=await I(t),{accounts:c}=await S(r);return[s,{accounts:c,chainId:a.SOLANA}]},"connect"),En=o(({instance:n,meta:e,updateChainId:t,connect:r})=>{l(n,e,a.ETHEREUM)?.on("chainChanged",c=>{let g=b(c,e)||a.Unknown;l(n,e,g).request({method:"eth_requestAccounts"}).then(()=>{}).catch(h=>{console.log({err:h})}),t(c),r(g)})},"subscribe"),kn=o(async n=>{let e=l(n.instance,n.meta,n.network);return L({...n,instance:e})},"switchNetwork"),yn=C,Tn=p,vn=o(n=>{let e=U(n),t=F(n);return{name:"Coin98",img:"https://raw.githubusercontent.com/rango-exchange/rango-types/main/assets/icons/wallets/coin98.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:[...e,...t]}},"getWalletInfo");export{yn as canSwitchNetworkTo,Sn as config,dn as connect,fn as getInstance,Tn as getSigners,vn as getWalletInfo,En as subscribe,kn 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 {\n getBlockChainNameFromId,\n Network,\n WalletTypes,\n canSwitchNetworkToEvm,\n chooseInstance,\n getEvmAccounts,\n switchNetworkForEvm,\n CanSwitchNetwork,\n Connect,\n Subscribe,\n SwitchNetwork,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\nimport { coin98 as coin98_instances } from './helpers';\nimport { getSolanaAccounts } from './helpers';\nimport signer from './signer';\nimport {\n SignerFactory,\n evmBlockchains,\n solanaBlockchain,\n BlockchainMeta,\n} from 'rango-types';\n\nconst WALLET = WalletTypes.COIN98;\n\nexport const config = {\n type: WALLET,\n // TODO: Get from evm networks\n defaultNetwork: Network.ETHEREUM,\n};\nexport const getInstance = coin98_instances;\n\nexport const connect: Connect = async ({ instance, meta }) => {\n const evm_instance = chooseInstance(instance, meta, Network.ETHEREUM);\n const sol_instance = chooseInstance(instance, meta, Network.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: Network.SOLANA,\n },\n ];\n};\n\nexport const subscribe: Subscribe = ({\n instance,\n meta,\n updateChainId,\n connect,\n}) => {\n const eth = chooseInstance(instance, meta, Network.ETHEREUM);\n eth?.on('chainChanged', (chainId: string) => {\n const network = getBlockChainNameFromId(chainId, meta) || Network.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 // we need to update `network` first, if not, it will goes through\n // the switching network and will open unneccessary pop ups.\n updateChainId(chainId);\n connect(network);\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) => 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/rango-types/main/assets/icons/wallets/coin98.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 { Network } from '@rango-dev/wallets-shared';\n\nexport function coin98() {\n const { coin98, ethereum } = window;\n\n if (!coin98) return null;\n\n const instances = new Map();\n\n // When disabled overring metamask\n if (coin98.provider) instances.set(Network.ETHEREUM, coin98.provider);\n if (ethereum && ethereum.isCoin98) instances.set(Network.ETHEREUM, ethereum);\n if (coin98.sol) instances.set(Network.SOLANA, coin98.sol);\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 { DefaultEvmSigner } from '@rango-dev/signer-evm';\nimport { Network, getNetworkInstance } from '@rango-dev/wallets-shared';\nimport {\n DefaultSignerFactory,\n SignerFactory,\n TransactionType as TxType,\n} from 'rango-types';\nimport { CustomSolanaSigner } from './solana-signer';\n\nexport default function getSigners(provider: any): SignerFactory {\n const ethProvider = getNetworkInstance(provider, Network.ETHEREUM);\n const solProvider = getNetworkInstance(provider, Network.SOLANA);\n const signers = new DefaultSignerFactory();\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));\n signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider));\n return signers;\n}\n", "import { GenericSigner, SignerError, SolanaTransaction } from 'rango-types';\nimport { PublicKey, Transaction, VersionedTransaction } from '@solana/web3.js';\nimport bs58 from 'bs58';\nimport {\n SolanaWeb3Signer,\n generalSolanaTransactionExecutor,\n} from '@rango-dev/signer-solana';\n\n// TODO - replace with real type\n// tslint:disable-next-line: no-any\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(): Promise<string> {\n throw SignerError.UnimplementedError('signMessage');\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": "+EAAA,OACE,2BAAAA,EACA,WAAAC,EACA,eAAAC,EACA,yBAAAC,EACA,kBAAAC,EACA,kBAAAC,EACA,uBAAAC,MAMK,4BCbP,OAAS,WAAAC,MAAe,4BAEjB,SAASC,GAAS,CACvB,GAAM,CAAE,OAAAA,EAAQ,SAAAC,CAAS,EAAI,OAE7B,GAAI,CAACD,EAAQ,OAAO,KAEpB,IAAME,EAAY,IAAI,IAGtB,OAAIF,EAAO,UAAUE,EAAU,IAAIC,EAAQ,SAAUH,EAAO,QAAQ,EAChEC,GAAYA,EAAS,UAAUC,EAAU,IAAIC,EAAQ,SAAUF,CAAQ,EACvED,EAAO,KAAKE,EAAU,IAAIC,EAAQ,OAAQH,EAAO,GAAG,EAEjDE,CACT,CAbgBE,EAAAJ,EAAA,UAmBhB,eAAsBK,EAAkBC,EAAe,CACrD,aAAMA,EAAS,OAAO,EAEf,CACL,SAFe,MAAMA,EAAS,QAAQ,CAAE,OAAQ,cAAe,CAAC,CAGlE,CACF,CANsBF,EAAAC,EAAA,qBCrBtB,OAAS,oBAAAE,MAAwB,wBACjC,OAAS,WAAAC,EAAS,sBAAAC,MAA0B,4BAC5C,OACE,wBAAAC,EAEA,mBAAmBC,MACd,cCNP,OAAwB,eAAAC,MAAsC,cAC9D,OAAS,aAAAC,MAAoD,kBAC7D,OAAOC,MAAU,OACjB,OAEE,oCAAAC,MACK,2BAMA,IAAMC,EAAN,KAAqE,CAE1E,YAAYC,EAAkC,CAC5C,KAAK,SAAWA,CAClB,CAEA,MAAM,aAA+B,CACnC,MAAMC,EAAY,mBAAmB,aAAa,CACpD,CAEA,MAAM,cAAcC,EAAkD,CAoBpE,MAAO,CAAE,KAJI,MAAMC,EACjBD,EAhB4CE,EAAA,MAC5CC,GACG,CACH,IAAMC,EACJ,MAAM,KAAK,SAAS,QAAQ,CAC1B,OAAQ,WACR,OAAQ,CAACD,CAAqB,CAChC,CAAC,EACGE,EAAY,IAAIC,EAAUF,EAAS,SAAS,EAC5CG,EAAOC,EAAK,OAAOJ,EAAS,SAAS,EAE3C,OAAAD,EAAsB,aAAaE,EAAW,OAAO,KAAKE,CAAI,CAAC,EACnDJ,EAAsB,UAAU,CAE9C,EAd8C,sBAkB9C,CACc,CAChB,CACF,EAhCaD,EAAAL,EAAA,sBDHE,SAARY,EAA4BC,EAA8B,CAC/D,IAAMC,EAAcC,EAAmBF,EAAUG,EAAQ,QAAQ,EAC3DC,EAAcF,EAAmBF,EAAUG,EAAQ,MAAM,EACzDE,EAAU,IAAIC,EACpB,OAAAD,EAAQ,eAAeE,EAAO,IAAK,IAAIC,EAAiBP,CAAW,CAAC,EACpEI,EAAQ,eAAeE,EAAO,OAAQ,IAAIE,EAAmBL,CAAW,CAAC,EAClEC,CACT,CAPwBK,EAAAX,EAAA,cFQxB,OAEE,kBAAAY,EACA,oBAAAC,MAEK,cAEP,IAAMC,EAASC,EAAY,OAEdC,GAAS,CACpB,KAAMF,EAEN,eAAgBG,EAAQ,QAC1B,EACaC,GAAcC,EAEdC,GAAmBC,EAAA,MAAO,CAAE,SAAAC,EAAU,KAAAC,CAAK,IAAM,CAC5D,IAAMC,EAAeC,EAAeH,EAAUC,EAAMN,EAAQ,QAAQ,EAC9DS,EAAeD,EAAeH,EAAUC,EAAMN,EAAQ,MAAM,EAC5DU,EAAM,MAAMC,EAAeJ,CAAY,EACvC,CAAE,SAAUK,CAAe,EAAI,MAAMC,EAAkBJ,CAAY,EAEzE,MAAO,CACLC,EACA,CACE,SAAUE,EACV,QAASZ,EAAQ,MACnB,CACF,CACF,EAbgC,WAenBc,GAAuBV,EAAA,CAAC,CACnC,SAAAC,EACA,KAAAC,EACA,cAAAS,EACA,QAAAZ,CACF,IAAM,CACQK,EAAeH,EAAUC,EAAMN,EAAQ,QAAQ,GACtD,GAAG,eAAiBgB,GAAoB,CAC3C,IAAMC,EAAUC,EAAwBF,EAASV,CAAI,GAAKN,EAAQ,QAC3CQ,EAAeH,EAAUC,EAAMW,CAAO,EAE1D,QAAQ,CAAE,OAAQ,qBAAsB,CAAC,EACzC,KAAK,IAAG,EAAY,EACpB,MAAOE,GAAiB,CACvB,QAAQ,IAAI,CAAE,IAAAA,CAAI,CAAC,CACrB,CAAC,EAYHJ,EAAcC,CAAO,EACrBb,EAAQc,CAAO,CACjB,CAAC,CACH,EA9BoC,aAgCvBG,GAA+BhB,EAAA,MAAOiB,GAAY,CAC7D,IAAMhB,EAAWG,EACfa,EAAQ,SACRA,EAAQ,KACRA,EAAQ,OACV,EACA,OAAOC,EAAoB,CACzB,GAAGD,EACH,SAAAhB,CACF,CAAC,CACH,EAV4C,iBAY/BkB,GAAuCC,EAEvCC,GAA+CA,EAE/CC,GAAkEtB,EAC7EuB,GACG,CACH,IAAMC,EAAOC,EAAeF,CAAc,EACpCG,EAASC,EAAiBJ,CAAc,EAC9C,MAAO,CACL,KAAM,SACN,IAAK,oGACL,YAAa,CACX,OACE,2FACF,MACE,2FACF,QAAS,2BACX,EACA,MAAO,UACP,gBAAiB,CAAC,GAAGC,EAAM,GAAGE,CAAM,CACtC,CACF,EAlB+E",
6
- "names": ["getBlockChainNameFromId", "Network", "WalletTypes", "canSwitchNetworkToEvm", "chooseInstance", "getEvmAccounts", "switchNetworkForEvm", "Network", "coin98", "ethereum", "instances", "Network", "__name", "getSolanaAccounts", "instance", "DefaultEvmSigner", "Network", "getNetworkInstance", "DefaultSignerFactory", "TxType", "SignerError", "PublicKey", "bs58", "generalSolanaTransactionExecutor", "CustomSolanaSigner", "provider", "SignerError", "tx", "generalSolanaTransactionExecutor", "__name", "solanaWeb3Transaction", "response", "publicKey", "PublicKey", "sign", "bs58", "getSigners", "provider", "ethProvider", "getNetworkInstance", "Network", "solProvider", "signers", "DefaultSignerFactory", "TxType", "DefaultEvmSigner", "CustomSolanaSigner", "__name", "evmBlockchains", "solanaBlockchain", "WALLET", "WalletTypes", "config", "Network", "getInstance", "coin98", "connect", "__name", "instance", "meta", "evm_instance", "chooseInstance", "sol_instance", "evm", "getEvmAccounts", "solanaAccounts", "getSolanaAccounts", "subscribe", "updateChainId", "chainId", "network", "getBlockChainNameFromId", "err", "switchNetwork", "options", "switchNetworkForEvm", "canSwitchNetworkTo", "canSwitchNetworkToEvm", "getSigners", "getWalletInfo", "allBlockChains", "evms", "evmBlockchains", "solana", "solanaBlockchain"]
4
+ "sourcesContent": ["import {\n getBlockChainNameFromId,\n Networks,\n WalletTypes,\n canSwitchNetworkToEvm,\n chooseInstance,\n getEvmAccounts,\n switchNetworkForEvm,\n CanSwitchNetwork,\n Connect,\n Subscribe,\n SwitchNetwork,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\nimport { coin98 as coin98_instances } from './helpers';\nimport { getSolanaAccounts } from './helpers';\nimport signer from './signer';\nimport {\n SignerFactory,\n evmBlockchains,\n solanaBlockchain,\n BlockchainMeta,\n} from 'rango-types';\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 eth?.on('chainChanged', (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 // we need to update `network` first, if not, it will goes through\n // the switching network and will open unneccessary pop ups.\n updateChainId(chainId);\n connect(network);\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) => 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/rango-types/main/assets/icons/wallets/coin98.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) return null;\n\n const instances = new Map();\n\n // When disabled overring metamask\n if (coin98.provider) instances.set(Networks.ETHEREUM, coin98.provider);\n if (ethereum && ethereum.isCoin98) instances.set(Networks.ETHEREUM, ethereum);\n if (coin98.sol) instances.set(Networks.SOLANA, coin98.sol);\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 { DefaultEvmSigner } from '@rango-dev/signer-evm';\nimport { Networks, getNetworkInstance } from '@rango-dev/wallets-shared';\nimport {\n DefaultSignerFactory,\n SignerFactory,\n TransactionType as TxType,\n} from 'rango-types';\nimport { CustomSolanaSigner } from './solana-signer';\n\nexport default function getSigners(provider: any): SignerFactory {\n const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);\n const solProvider = getNetworkInstance(provider, Networks.SOLANA);\n const signers = new DefaultSignerFactory();\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));\n signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider));\n return signers;\n}\n", "import { GenericSigner, SignerError, SolanaTransaction } from 'rango-types';\nimport { PublicKey, Transaction, VersionedTransaction } from '@solana/web3.js';\nimport bs58 from 'bs58';\nimport {\n SolanaWeb3Signer,\n generalSolanaTransactionExecutor,\n} from '@rango-dev/signer-solana';\n\n// TODO - replace with real type\n// tslint:disable-next-line: no-any\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(): Promise<string> {\n throw SignerError.UnimplementedError('signMessage');\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": "+EAAA,OACE,2BAAAA,EACA,YAAAC,EACA,eAAAC,EACA,yBAAAC,EACA,kBAAAC,EACA,kBAAAC,EACA,uBAAAC,MAMK,4BCbP,OAAS,YAAAC,MAAgB,4BAElB,SAASC,GAAS,CACvB,GAAM,CAAE,OAAAA,EAAQ,SAAAC,CAAS,EAAI,OAE7B,GAAI,CAACD,EAAQ,OAAO,KAEpB,IAAME,EAAY,IAAI,IAGtB,OAAIF,EAAO,UAAUE,EAAU,IAAIC,EAAS,SAAUH,EAAO,QAAQ,EACjEC,GAAYA,EAAS,UAAUC,EAAU,IAAIC,EAAS,SAAUF,CAAQ,EACxED,EAAO,KAAKE,EAAU,IAAIC,EAAS,OAAQH,EAAO,GAAG,EAElDE,CACT,CAbgBE,EAAAJ,EAAA,UAmBhB,eAAsBK,EAAkBC,EAAe,CACrD,aAAMA,EAAS,OAAO,EAEf,CACL,SAFe,MAAMA,EAAS,QAAQ,CAAE,OAAQ,cAAe,CAAC,CAGlE,CACF,CANsBF,EAAAC,EAAA,qBCrBtB,OAAS,oBAAAE,MAAwB,wBACjC,OAAS,YAAAC,EAAU,sBAAAC,MAA0B,4BAC7C,OACE,wBAAAC,EAEA,mBAAmBC,MACd,cCNP,OAAwB,eAAAC,MAAsC,cAC9D,OAAS,aAAAC,MAAoD,kBAC7D,OAAOC,MAAU,OACjB,OAEE,oCAAAC,MACK,2BAMA,IAAMC,EAAN,KAAqE,CAE1E,YAAYC,EAAkC,CAC5C,KAAK,SAAWA,CAClB,CAEA,MAAM,aAA+B,CACnC,MAAMC,EAAY,mBAAmB,aAAa,CACpD,CAEA,MAAM,cAAcC,EAAkD,CAoBpE,MAAO,CAAE,KAJI,MAAMC,EACjBD,EAhB4CE,EAAA,MAC5CC,GACG,CACH,IAAMC,EACJ,MAAM,KAAK,SAAS,QAAQ,CAC1B,OAAQ,WACR,OAAQ,CAACD,CAAqB,CAChC,CAAC,EACGE,EAAY,IAAIC,EAAUF,EAAS,SAAS,EAC5CG,EAAOC,EAAK,OAAOJ,EAAS,SAAS,EAE3C,OAAAD,EAAsB,aAAaE,EAAW,OAAO,KAAKE,CAAI,CAAC,EACnDJ,EAAsB,UAAU,CAE9C,EAd8C,sBAkB9C,CACc,CAChB,CACF,EAhCaD,EAAAL,EAAA,sBDHE,SAARY,EAA4BC,EAA8B,CAC/D,IAAMC,EAAcC,EAAmBF,EAAUG,EAAS,QAAQ,EAC5DC,EAAcF,EAAmBF,EAAUG,EAAS,MAAM,EAC1DE,EAAU,IAAIC,EACpB,OAAAD,EAAQ,eAAeE,EAAO,IAAK,IAAIC,EAAiBP,CAAW,CAAC,EACpEI,EAAQ,eAAeE,EAAO,OAAQ,IAAIE,EAAmBL,CAAW,CAAC,EAClEC,CACT,CAPwBK,EAAAX,EAAA,cFQxB,OAEE,kBAAAY,EACA,oBAAAC,MAEK,cAEP,IAAMC,EAASC,EAAY,OAEdC,GAAS,CACpB,KAAMF,EAEN,eAAgBG,EAAS,QAC3B,EACaC,GAAcC,EAEdC,GAAmBC,EAAA,MAAO,CAAE,SAAAC,EAAU,KAAAC,CAAK,IAAM,CAC5D,IAAMC,EAAeC,EAAeH,EAAUC,EAAMN,EAAS,QAAQ,EAC/DS,EAAeD,EAAeH,EAAUC,EAAMN,EAAS,MAAM,EAC7DU,EAAM,MAAMC,EAAeJ,CAAY,EACvC,CAAE,SAAUK,CAAe,EAAI,MAAMC,EAAkBJ,CAAY,EAEzE,MAAO,CACLC,EACA,CACE,SAAUE,EACV,QAASZ,EAAS,MACpB,CACF,CACF,EAbgC,WAenBc,GAAuBV,EAAA,CAAC,CACnC,SAAAC,EACA,KAAAC,EACA,cAAAS,EACA,QAAAZ,CACF,IAAM,CACQK,EAAeH,EAAUC,EAAMN,EAAS,QAAQ,GACvD,GAAG,eAAiBgB,GAAoB,CAC3C,IAAMC,EAAUC,EAAwBF,EAASV,CAAI,GAAKN,EAAS,QAC5CQ,EAAeH,EAAUC,EAAMW,CAAO,EAE1D,QAAQ,CAAE,OAAQ,qBAAsB,CAAC,EACzC,KAAK,IAAG,EAAY,EACpB,MAAOE,GAAiB,CACvB,QAAQ,IAAI,CAAE,IAAAA,CAAI,CAAC,CACrB,CAAC,EAYHJ,EAAcC,CAAO,EACrBb,EAAQc,CAAO,CACjB,CAAC,CACH,EA9BoC,aAgCvBG,GAA+BhB,EAAA,MAAOiB,GAAY,CAC7D,IAAMhB,EAAWG,EACfa,EAAQ,SACRA,EAAQ,KACRA,EAAQ,OACV,EACA,OAAOC,EAAoB,CACzB,GAAGD,EACH,SAAAhB,CACF,CAAC,CACH,EAV4C,iBAY/BkB,GAAuCC,EAEvCC,GAA+CA,EAE/CC,GAAkEtB,EAC7EuB,GACG,CACH,IAAMC,EAAOC,EAAeF,CAAc,EACpCG,EAASC,EAAiBJ,CAAc,EAC9C,MAAO,CACL,KAAM,SACN,IAAK,oGACL,YAAa,CACX,OACE,2FACF,MACE,2FACF,QAAS,2BACX,EACA,MAAO,UACP,gBAAiB,CAAC,GAAGC,EAAM,GAAGE,CAAM,CACtC,CACF,EAlB+E",
6
+ "names": ["getBlockChainNameFromId", "Networks", "WalletTypes", "canSwitchNetworkToEvm", "chooseInstance", "getEvmAccounts", "switchNetworkForEvm", "Networks", "coin98", "ethereum", "instances", "Networks", "__name", "getSolanaAccounts", "instance", "DefaultEvmSigner", "Networks", "getNetworkInstance", "DefaultSignerFactory", "TxType", "SignerError", "PublicKey", "bs58", "generalSolanaTransactionExecutor", "CustomSolanaSigner", "provider", "SignerError", "tx", "generalSolanaTransactionExecutor", "__name", "solanaWeb3Transaction", "response", "publicKey", "PublicKey", "sign", "bs58", "getSigners", "provider", "ethProvider", "getNetworkInstance", "Networks", "solProvider", "signers", "DefaultSignerFactory", "TxType", "DefaultEvmSigner", "CustomSolanaSigner", "__name", "evmBlockchains", "solanaBlockchain", "WALLET", "WalletTypes", "config", "Networks", "getInstance", "coin98", "connect", "__name", "instance", "meta", "evm_instance", "chooseInstance", "sol_instance", "evm", "getEvmAccounts", "solanaAccounts", "getSolanaAccounts", "subscribe", "updateChainId", "chainId", "network", "getBlockChainNameFromId", "err", "switchNetwork", "options", "switchNetworkForEvm", "canSwitchNetworkTo", "canSwitchNetworkToEvm", "getSigners", "getWalletInfo", "allBlockChains", "evms", "evmBlockchains", "solana", "solanaBlockchain"]
7
7
  }
package/package.json CHANGED
@@ -1,9 +1,13 @@
1
1
  {
2
2
  "name": "@rango-dev/provider-coin98",
3
- "version": "0.5.0",
3
+ "version": "0.5.1-next.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
- "module": "dist/index.js",
6
+ "module": "./dist/index.js",
7
+ "main": "./dist/index.js",
8
+ "exports": {
9
+ ".": "./dist/index.js"
10
+ },
7
11
  "typings": "dist/index.d.ts",
8
12
  "files": [
9
13
  "dist",
@@ -16,12 +20,12 @@
16
20
  "lint": "eslint \"**/*.{ts,tsx}\" --ignore-path ../../.eslintignore"
17
21
  },
18
22
  "dependencies": {
19
- "@rango-dev/signer-evm": "^0.5.0",
20
- "@rango-dev/signer-solana": "^0.5.0",
21
- "@rango-dev/wallets-shared": "^0.5.0",
23
+ "@rango-dev/signer-evm": "^0.5.1-next.0",
24
+ "@rango-dev/signer-solana": "^0.5.1-next.0",
25
+ "@rango-dev/wallets-shared": "^0.5.1-next.0",
22
26
  "@solana/web3.js": "^1.67.2",
23
27
  "bs58": "^5.0.0",
24
- "rango-types": "^0.1.38"
28
+ "rango-types": "^0.1.39"
25
29
  },
26
30
  "publishConfig": {
27
31
  "access": "public"
package/src/helpers.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { Network } from '@rango-dev/wallets-shared';
1
+ import { Networks } from '@rango-dev/wallets-shared';
2
2
 
3
3
  export function coin98() {
4
4
  const { coin98, ethereum } = window;
@@ -8,9 +8,9 @@ export function coin98() {
8
8
  const instances = new Map();
9
9
 
10
10
  // When disabled overring metamask
11
- if (coin98.provider) instances.set(Network.ETHEREUM, coin98.provider);
12
- if (ethereum && ethereum.isCoin98) instances.set(Network.ETHEREUM, ethereum);
13
- if (coin98.sol) instances.set(Network.SOLANA, coin98.sol);
11
+ if (coin98.provider) instances.set(Networks.ETHEREUM, coin98.provider);
12
+ if (ethereum && ethereum.isCoin98) instances.set(Networks.ETHEREUM, ethereum);
13
+ if (coin98.sol) instances.set(Networks.SOLANA, coin98.sol);
14
14
 
15
15
  return instances;
16
16
  }
package/src/index.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getBlockChainNameFromId,
3
- Network,
3
+ Networks,
4
4
  WalletTypes,
5
5
  canSwitchNetworkToEvm,
6
6
  chooseInstance,
@@ -27,13 +27,13 @@ const WALLET = WalletTypes.COIN98;
27
27
  export const config = {
28
28
  type: WALLET,
29
29
  // TODO: Get from evm networks
30
- defaultNetwork: Network.ETHEREUM,
30
+ defaultNetwork: Networks.ETHEREUM,
31
31
  };
32
32
  export const getInstance = coin98_instances;
33
33
 
34
34
  export const connect: Connect = async ({ instance, meta }) => {
35
- const evm_instance = chooseInstance(instance, meta, Network.ETHEREUM);
36
- const sol_instance = chooseInstance(instance, meta, Network.SOLANA);
35
+ const evm_instance = chooseInstance(instance, meta, Networks.ETHEREUM);
36
+ const sol_instance = chooseInstance(instance, meta, Networks.SOLANA);
37
37
  const evm = await getEvmAccounts(evm_instance);
38
38
  const { accounts: solanaAccounts } = await getSolanaAccounts(sol_instance);
39
39
 
@@ -41,7 +41,7 @@ export const connect: Connect = async ({ instance, meta }) => {
41
41
  evm,
42
42
  {
43
43
  accounts: solanaAccounts,
44
- chainId: Network.SOLANA,
44
+ chainId: Networks.SOLANA,
45
45
  },
46
46
  ];
47
47
  };
@@ -52,9 +52,9 @@ export const subscribe: Subscribe = ({
52
52
  updateChainId,
53
53
  connect,
54
54
  }) => {
55
- const eth = chooseInstance(instance, meta, Network.ETHEREUM);
55
+ const eth = chooseInstance(instance, meta, Networks.ETHEREUM);
56
56
  eth?.on('chainChanged', (chainId: string) => {
57
- const network = getBlockChainNameFromId(chainId, meta) || Network.Unknown;
57
+ const network = getBlockChainNameFromId(chainId, meta) || Networks.Unknown;
58
58
  const targetInstance = chooseInstance(instance, meta, network);
59
59
  targetInstance
60
60
  .request({ method: 'eth_requestAccounts' })
package/src/signer.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { DefaultEvmSigner } from '@rango-dev/signer-evm';
2
- import { Network, getNetworkInstance } from '@rango-dev/wallets-shared';
2
+ import { Networks, getNetworkInstance } from '@rango-dev/wallets-shared';
3
3
  import {
4
4
  DefaultSignerFactory,
5
5
  SignerFactory,
@@ -8,8 +8,8 @@ import {
8
8
  import { CustomSolanaSigner } from './solana-signer';
9
9
 
10
10
  export default function getSigners(provider: any): SignerFactory {
11
- const ethProvider = getNetworkInstance(provider, Network.ETHEREUM);
12
- const solProvider = getNetworkInstance(provider, Network.SOLANA);
11
+ const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);
12
+ const solProvider = getNetworkInstance(provider, Networks.SOLANA);
13
13
  const signers = new DefaultSignerFactory();
14
14
  signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));
15
15
  signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider));