@rango-dev/provider-okx 0.53.1-next.1 → 0.54.1-next.0

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/mod.js CHANGED
@@ -1,2 +1,2 @@
1
- var U=Object.defineProperty;var t=(e,o)=>U(e,"name",{value:o,configurable:!0});import{defineVersions as Ce}from"@rango-dev/wallets-core/utils";import{canEagerlyConnectToEvm as j,canSwitchNetworkToEvm as V,chooseInstance as f,getEvmAccounts as z,getSolanaAccounts as C,Networks as d,switchNetworkForEvm as G,WalletTypes as Y}from"@rango-dev/wallets-shared";import{isEvmBlockchain as q}from"rango-types";import"@rango-dev/wallets-core";import{LegacyNetworks as n}from"@rango-dev/wallets-core/legacy";import{solanaBlockchain as F}from"rango-types";import{dynamicImportWithRefinedError as K,getNetworkInstance as A,Networks as y}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as D,TransactionType as k}from"rango-types";import{DefaultSolanaSigner as W}from"@rango-dev/signer-solana";import{SignerError as X,SignerErrorCode as _}from"rango-types";var p=class extends W{static{t(this,"OKXSolanaSigner")}constructor(o){super(o)}async signMessage(o){try{let{signature:r}=await this.provider.request({method:"signMessage",params:{message:o}});return r}catch(r){throw new X(_.SIGN_TX_ERROR,void 0,r)}}};async function l(e){let o=A(e,y.ETHEREUM),r=A(e,y.SOLANA),a=new D,{DefaultEvmSigner:c}=await K(async()=>await import("@rango-dev/signer-evm"));return a.registerSigner(k.EVM,new c(o)),a.registerSigner(k.SOLANA,new p(r)),a}t(l,"getSigners");import{LegacyNetworks as g}from"@rango-dev/wallets-core/legacy";function i(){let{okxwallet:e}=window;if(!e)return null;let o=new Map;return e&&o.set(g.ETHEREUM,e),e.solana&&o.set(g.SOLANA,e.solana),o}t(i,"okx");function x(){let e=i();if(!e)throw new Error("OKX Wallet is not injected. Please check your wallet.");return e}t(x,"getInstanceOrThrow");function m(){let o=i()?.get(g.ETHEREUM);if(!o)throw new Error("OKX Wallet not injected or EVM not enabled. Please check your wallet.");return o}t(m,"evmOKX");function u(){let o=i()?.get(g.SOLANA);if(!o)throw new Error("OKX Wallet not injected or Solana not enabled. Please check your wallet.");return o}t(u,"solanaOKX");var s="okx",b=[n.ETHEREUM,n.BSC,n.POLYGON,n.FANTOM,n.ARBITRUM,n.OPTIMISM,n.CRONOS,n.BOBA,n.GNOSIS,n.MOONBEAM,n.MOONRIVER,n.HARMONY,n.AVAX_CCHAIN],P={name:"OKX",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/okx/icon.svg",extensions:{chrome:"https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge",brave:"https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge",firefox:"https://addons.mozilla.org/en-US/firefox/addon/okexwallet",homepage:"https://www.okx.com/web3"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"EVM",value:"EVM",id:"ETH",getSupportedChains:e=>e.filter(o=>b.includes(o.name))},{label:"Solana",value:"Solana",id:"SOLANA",getSupportedChains:e=>F(e)}]}},{name:"signers",value:{getSigners:async()=>l(x())}}]};var J=Y.OKX,Q={type:J,defaultNetwork:d.ETHEREUM},Z=i,$=t(async({instance:e,meta:o})=>{let r=[],a=f(e,o,d.ETHEREUM);if(a){let E=await z(a);r.push(E)}let c=await C(e);return r.push(...Array.isArray(c)?c:[c]),r},"connect"),ee=t(({instance:e,updateAccounts:o,meta:r})=>{let a=f(e,r,d.ETHEREUM),c=t(async E=>{let B=r.filter(q).find(S=>S.name===d.ETHEREUM)?.chainId;o(E,B);let v=await C(e);(Array.isArray(v)?v:[v]).forEach(({chainId:S,accounts:H})=>{o(H,S)})},"handleEvmAccountsChanged");return a?.on?.("accountsChanged",c),()=>{a?.off?.("accountsChanged",c)}},"subscribe"),oe=t(async e=>{let o=f(e.instance,e.meta,e.network);return G({...e,instance:o})},"switchNetwork"),te=V,re=l,ne=t(async({instance:e,meta:o})=>{let r=f(e,o,d.ETHEREUM);return r?j({instance:r,meta:o}):Promise.resolve(!1)},"canEagerConnect"),ae=t(e=>({name:"OKX",img:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/okx/icon.svg",installLink:{CHROME:"https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge",BRAVE:"https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge",FIREFOX:"https://addons.mozilla.org/en-US/firefox/addon/okexwallet",DEFAULT:"https://www.okx.com/web3"},color:"white",supportedChains:e.filter(o=>b.includes(o.name))}),"getWalletInfo"),I=t(()=>({config:Q,getInstance:Z,connect:$,subscribe:ee,switchNetwork:oe,canSwitchNetworkTo:te,getSigners:re,getWalletInfo:ae,canEagerConnect:ne}),"buildLegacyProvider");import{ProviderBuilder as Pe}from"@rango-dev/wallets-core";import{NamespaceBuilder as ce}from"@rango-dev/wallets-core";import{builders as ie,standardizeAndThrowError as se}from"@rango-dev/wallets-core/namespaces/common";import{actions as w,builders as h,hooks as le}from"@rango-dev/wallets-core/namespaces/evm";var[me,N]=le.changeAccountSubscriber(m),de=h.connect().action(w.connect(m)).before(me).or(N).or(se).build(),pe=ie.disconnect().after(N).build(),ge=h.canSwitchNetwork().action(w.canSwitchNetwork()).build(),ue=h.canEagerConnect().action(w.canEagerConnect(m)).build(),fe=h.getChainId().action(w.getChainId(m)).build(),O=new ce("EVM",s).action(de).action(pe).action(ue).action(ge).action(fe).build();import{ActionBuilder as we,NamespaceBuilder as he}from"@rango-dev/wallets-core";import{builders as Ee,standardizeAndThrowError as ve}from"@rango-dev/wallets-core/namespaces/common";import{actions as T,builders as Se,hooks as be}from"@rango-dev/wallets-core/namespaces/solana";var[Ae,M]=be.changeAccountSubscriber(u),ye=Se.connect().action(T.connect(u)).before(Ae).or(M).or(ve).build(),ke=Ee.disconnect().after(M).build(),xe=new we("canEagerConnect").action(T.canEagerConnect(u)).build(),L=new he("Solana",s).action(ye).action(ke).action(xe).build();var R=t(()=>new Pe(s).init(function(e){let[,o]=e.state();i()&&(o("installed",!0),console.debug("[okx] instance detected.",e))}).config("metadata",P).add("solana",L).add("evm",O).build(),"buildProvider");var ko=t(()=>Ce().version("0.0.0",I()).version("1.0.0",R()).build(),"versions");export{ko as versions};
1
+ var U=Object.defineProperty;var t=(e,o)=>U(e,"name",{value:o,configurable:!0});import{defineVersions as Ce}from"@rango-dev/wallets-core/utils";import{canEagerlyConnectToEvm as V,canSwitchNetworkToEvm as z,chooseInstance as h,getEvmAccounts as G,getSolanaAccounts as C,Networks as d,switchNetworkForEvm as q,WalletTypes as Y}from"@rango-dev/wallets-shared";import{isEvmBlockchain as J}from"rango-types";import"@rango-dev/wallets-core";import{LegacyNetworks as n}from"@rango-dev/wallets-core/legacy";import{solanaBlockchain as j}from"rango-types";import{dynamicImportWithRefinedError as K,getNetworkInstance as b,Networks as y}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as F,TransactionType as k}from"rango-types";import{DefaultSolanaSigner as W}from"@rango-dev/signer-solana";import{SignerError as X,SignerErrorCode as D}from"rango-types";var g=class extends W{static{t(this,"OKXSolanaSigner")}constructor(o){super(o)}async signMessage(o){try{let{signature:r}=await this.provider.request({method:"signMessage",params:{message:o}});return r}catch(r){throw new X(D.SIGN_TX_ERROR,void 0,r)}}};async function l(e){let o=b(e,y.ETHEREUM),r=b(e,y.SOLANA),a=new F,{DefaultEvmSigner:c}=await K(async()=>await import("@rango-dev/signer-evm"));return a.registerSigner(k.EVM,new c(o)),a.registerSigner(k.SOLANA,new g(r)),a}t(l,"getSigners");import{LegacyNetworks as u}from"@rango-dev/wallets-core/legacy";function i(){let{okxwallet:e}=window;if(!e)return null;let o=new Map;return e&&o.set(u.ETHEREUM,e),e.solana&&o.set(u.SOLANA,e.solana),o}t(i,"okx");function x(){let e=i();if(!e)throw new Error("OKX Wallet is not injected. Please check your wallet.");return e}t(x,"getInstanceOrThrow");function m(){let o=i()?.get(u.ETHEREUM);if(!o)throw new Error("OKX Wallet not injected or EVM not enabled. Please check your wallet.");return o}t(m,"evmOKX");function f(){let o=i()?.get(u.SOLANA);if(!o)throw new Error("OKX Wallet not injected or Solana not enabled. Please check your wallet.");return o}t(f,"solanaOKX");var s="okx",S=[n.ETHEREUM,n.BSC,n.POLYGON,n.FANTOM,n.ARBITRUM,n.OPTIMISM,n.CRONOS,n.BOBA,n.GNOSIS,n.MOONBEAM,n.MOONRIVER,n.HARMONY,n.AVAX_CCHAIN],P={name:"OKX",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/okx/icon.svg",extensions:{chrome:"https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge",brave:"https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge",firefox:"https://addons.mozilla.org/en-US/firefox/addon/okexwallet",homepage:"https://www.okx.com/web3"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"EVM",value:"EVM",id:"ETH",getSupportedChains:e=>e.filter(o=>S.includes(o.name))},{label:"Solana",value:"Solana",id:"SOLANA",getSupportedChains:e=>j(e)}]}},{name:"signers",value:{getSigners:async()=>l(x())}}]};var Q=Y.OKX,Z={type:Q,defaultNetwork:d.ETHEREUM},$=i,ee=t(async({instance:e,meta:o})=>{let r=[],a=h(e,o,d.ETHEREUM);if(a){let E=await G(a);r.push(E)}let c=await C(e);return r.push(...Array.isArray(c)?c:[c]),r},"connect"),oe=t(({instance:e,updateAccounts:o,meta:r})=>{let a=h(e,r,d.ETHEREUM),c=t(async E=>{let _=r.filter(J).find(A=>A.name===d.ETHEREUM)?.chainId;o(E,_);let v=await C(e);(Array.isArray(v)?v:[v]).forEach(({chainId:A,accounts:H})=>{o(H,A)})},"handleEvmAccountsChanged");return a?.on?.("accountsChanged",c),()=>{a?.off?.("accountsChanged",c)}},"subscribe"),te=t(async e=>{let o=h(e.instance,e.meta,e.network);return q({...e,instance:o})},"switchNetwork"),re=z,ne=l,ae=t(async({instance:e,meta:o})=>{let r=h(e,o,d.ETHEREUM);return r?V({instance:r,meta:o}):Promise.resolve(!1)},"canEagerConnect"),ce=t(e=>({name:"OKX",img:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/okx/icon.svg",installLink:{CHROME:"https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge",BRAVE:"https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge",FIREFOX:"https://addons.mozilla.org/en-US/firefox/addon/okexwallet",DEFAULT:"https://www.okx.com/web3"},color:"white",supportedChains:e.filter(o=>S.includes(o.name))}),"getWalletInfo"),I=t(()=>({config:Z,getInstance:$,connect:ee,subscribe:oe,switchNetwork:te,canSwitchNetworkTo:re,getSigners:ne,getWalletInfo:ce,canEagerConnect:ae}),"buildLegacyProvider");import{ProviderBuilder as Pe}from"@rango-dev/wallets-core";import{NamespaceBuilder as ie}from"@rango-dev/wallets-core";import{builders as se,standardizeAndThrowError as le}from"@rango-dev/wallets-core/namespaces/common";import{actions as w,builders as p,utils as me}from"@rango-dev/wallets-core/namespaces/evm";var[de,T]=p.changeAccountSubscriber(m).onSwitchAccount(e=>{e.payload.length||e.preventDefault()}).format(async(e,o)=>{let r=await e.request({method:"eth_chainId"});return me.formatAccountsToCAIP(o.filter(Boolean),r)}).build(),pe=p.connect().action(w.connect(m)).before(de).or(T).or(le).build(),ge=se.disconnect().after(T).build(),ue=p.canSwitchNetwork().action(w.canSwitchNetwork()).build(),fe=p.canEagerConnect().action(w.canEagerConnect(m)).build(),he=p.getChainId().action(w.getChainId(m)).build(),N=new ie("EVM",s).action(pe).action(ge).action(fe).action(ue).action(he).build();import{ActionBuilder as we,NamespaceBuilder as Ee}from"@rango-dev/wallets-core";import{builders as ve,standardizeAndThrowError as Ae}from"@rango-dev/wallets-core/namespaces/common";import{actions as O,builders as M,utils as Se}from"@rango-dev/wallets-core/namespaces/solana";var[be,L]=M.changeAccountSubscriber(f).onSwitchAccount(e=>{e.payload||e.preventDefault()}).format(async(e,o)=>Se.formatAccountsToCAIP(o?[o]:[])).build(),ye=M.connect().action(O.connect(f)).before(be).or(L).or(Ae).build(),ke=ve.disconnect().after(L).build(),xe=new we("canEagerConnect").action(O.canEagerConnect(f)).build(),R=new Ee("Solana",s).action(ye).action(ke).action(xe).build();var B=t(()=>new Pe(s).init(function(e){let[,o]=e.state();i()&&(o("installed",!0),console.debug("[okx] instance detected.",e))}).config("metadata",P).add("solana",R).add("evm",N).build(),"buildProvider");var ko=t(()=>Ce().version("0.0.0",I()).version("1.0.0",B()).build(),"versions");export{ko as versions};
2
2
  //# sourceMappingURL=mod.js.map
package/dist/mod.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/mod.ts", "../src/legacy/index.ts", "../src/constants.ts", "../src/signer.ts", "../src/signers/solana.ts", "../src/utils.ts", "../src/provider.ts", "../src/namespaces/evm.ts", "../src/namespaces/solana.ts"],
4
- "sourcesContent": ["import { defineVersions } from '@rango-dev/wallets-core/utils';\n\nimport { buildLegacyProvider } from './legacy/index.js';\nimport { buildProvider } from './provider.js';\n\nconst versions = () =>\n defineVersions()\n .version('0.0.0', buildLegacyProvider())\n .version('1.0.0', buildProvider())\n .build();\n\nexport { versions };\n", "import type { LegacyProviderInterface } from '@rango-dev/wallets-core/legacy';\nimport type {\n CanEagerConnect,\n CanSwitchNetwork,\n Connect,\n ProviderConnectResult,\n Subscribe,\n SwitchNetwork,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\nimport type { BlockchainMeta, SignerFactory } from 'rango-types';\n\nimport {\n canEagerlyConnectToEvm,\n canSwitchNetworkToEvm,\n chooseInstance,\n getEvmAccounts,\n getSolanaAccounts,\n Networks,\n switchNetworkForEvm,\n WalletTypes,\n} from '@rango-dev/wallets-shared';\nimport { isEvmBlockchain } from 'rango-types';\n\nimport { OKX_WALLET_SUPPORTED_CHAINS } from '../constants.js';\nimport signer from '../signer.js';\nimport { okx } from '../utils.js';\n\nconst WALLET = WalletTypes.OKX;\n\nexport const config = {\n type: WALLET,\n defaultNetwork: Networks.ETHEREUM,\n};\n\nexport const getInstance = okx;\nexport const connect: Connect = async ({ instance, meta }) => {\n const results: ProviderConnectResult[] = [];\n\n const evmInstance = chooseInstance(instance, meta, Networks.ETHEREUM);\n\n if (evmInstance) {\n const evmResults = await getEvmAccounts(evmInstance);\n results.push(evmResults);\n }\n\n const solanaResults = await getSolanaAccounts(instance);\n\n results.push(\n ...(Array.isArray(solanaResults) ? solanaResults : [solanaResults])\n );\n\n return results;\n};\n\nexport const subscribe: Subscribe = ({ instance, updateAccounts, meta }) => {\n const ethInstance = chooseInstance(instance, meta, Networks.ETHEREUM);\n const handleEvmAccountsChanged = async (addresses: string[]) => {\n const eth_chainId = meta\n .filter(isEvmBlockchain)\n .find((blockchain) => blockchain.name === Networks.ETHEREUM)?.chainId;\n\n updateAccounts(addresses, eth_chainId);\n const solanaResults = await getSolanaAccounts(instance);\n const resultsArray = Array.isArray(solanaResults)\n ? solanaResults\n : [solanaResults];\n\n resultsArray.forEach(({ chainId, accounts }) => {\n updateAccounts(accounts, chainId);\n });\n };\n ethInstance?.on?.('accountsChanged', handleEvmAccountsChanged);\n\n return () => {\n ethInstance?.off?.('accountsChanged', handleEvmAccountsChanged);\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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Provider = any;\nexport const getSigners: (provider: Provider) => Promise<SignerFactory> =\n signer;\n\nexport const canEagerConnect: CanEagerConnect = async ({ instance, meta }) => {\n const evm_instance = chooseInstance(instance, meta, Networks.ETHEREUM);\n if (evm_instance) {\n return canEagerlyConnectToEvm({ instance: evm_instance, meta });\n }\n return Promise.resolve(false);\n};\n\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => ({\n name: 'OKX',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/okx/icon.svg',\n installLink: {\n CHROME:\n 'https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge',\n BRAVE:\n 'https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge',\n FIREFOX: 'https://addons.mozilla.org/en-US/firefox/addon/okexwallet',\n DEFAULT: 'https://www.okx.com/web3',\n },\n color: 'white',\n supportedChains: allBlockChains.filter((blockchainMeta) =>\n OKX_WALLET_SUPPORTED_CHAINS.includes(blockchainMeta.name as Networks)\n ),\n});\nconst buildLegacyProvider: () => LegacyProviderInterface = () => ({\n config,\n getInstance,\n connect,\n subscribe,\n switchNetwork,\n canSwitchNetworkTo,\n getSigners,\n getWalletInfo,\n canEagerConnect,\n});\n\nexport { buildLegacyProvider };\n", "import { type ProviderMetadata } from '@rango-dev/wallets-core';\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\nimport { type BlockchainMeta, solanaBlockchain } from 'rango-types';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const WALLET_ID = 'okx';\nexport const OKX_WALLET_SUPPORTED_CHAINS = [\n LegacyNetworks.ETHEREUM,\n LegacyNetworks.BSC,\n LegacyNetworks.POLYGON,\n LegacyNetworks.FANTOM,\n LegacyNetworks.ARBITRUM,\n LegacyNetworks.OPTIMISM,\n LegacyNetworks.CRONOS,\n LegacyNetworks.BOBA,\n LegacyNetworks.GNOSIS,\n LegacyNetworks.MOONBEAM,\n LegacyNetworks.MOONRIVER,\n LegacyNetworks.HARMONY,\n LegacyNetworks.AVAX_CCHAIN,\n];\n\nexport const metadata: ProviderMetadata = {\n name: 'OKX',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/okx/icon.svg',\n extensions: {\n chrome:\n 'https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge',\n brave:\n 'https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge',\n firefox: 'https://addons.mozilla.org/en-US/firefox/addon/okexwallet',\n homepage: 'https://www.okx.com/web3',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'multiple',\n data: [\n {\n label: 'EVM',\n value: 'EVM',\n id: 'ETH',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter((blockchainMeta) =>\n OKX_WALLET_SUPPORTED_CHAINS.includes(\n blockchainMeta.name as LegacyNetworks\n )\n ),\n },\n {\n label: 'Solana',\n value: 'Solana',\n id: 'SOLANA',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n solanaBlockchain(allBlockchains),\n },\n ],\n },\n },\n {\n name: 'signers',\n value: { getSigners: async () => getSigners(getInstanceOrThrow()) },\n },\n ],\n};\n", "import type { Provider } from './types.js';\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 { OKXSolanaSigner } from './signers/solana.js';\n\nexport default async function getSigners(\n provider: Provider\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 OKXSolanaSigner(solProvider));\n return signers;\n}\n", "import {\n DefaultSolanaSigner,\n type SolanaExternalProvider,\n} from '@rango-dev/signer-solana';\nimport { SignerError, SignerErrorCode } from 'rango-types';\n\nexport class OKXSolanaSigner extends DefaultSolanaSigner {\n constructor(provider: SolanaExternalProvider) {\n super(provider);\n }\n\n async signMessage(msg: string): Promise<string> {\n try {\n const { signature } = await this.provider.request({\n method: 'signMessage',\n params: {\n message: msg,\n },\n });\n return signature;\n } catch (error) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, error);\n }\n }\n}\n", "import type { Provider } from './types.js';\nimport type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';\nimport type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\n\nexport function okx(): Provider | null {\n const { okxwallet } = window;\n if (!okxwallet) {\n return null;\n }\n const instances: Provider = new Map();\n if (okxwallet) {\n instances.set(LegacyNetworks.ETHEREUM, okxwallet);\n }\n if (okxwallet.solana) {\n instances.set(LegacyNetworks.SOLANA, okxwallet.solana);\n }\n\n return instances;\n}\n\nexport function getInstanceOrThrow(): Provider {\n const instances = okx();\n\n if (!instances) {\n throw new Error('OKX Wallet is not injected. Please check your wallet.');\n }\n\n return instances;\n}\n\nexport function evmOKX(): EvmProviderApi {\n const instances = okx();\n\n const evmInstance = instances?.get(LegacyNetworks.ETHEREUM);\n\n if (!evmInstance) {\n throw new Error(\n 'OKX Wallet not injected or EVM not enabled. Please check your wallet.'\n );\n }\n\n return evmInstance as EvmProviderApi;\n}\n\nexport function solanaOKX(): SolanaProviderApi {\n const instance = okx();\n const solanaInstance = instance?.get(LegacyNetworks.SOLANA);\n\n if (!solanaInstance) {\n throw new Error(\n 'OKX Wallet not injected or Solana not enabled. Please check your wallet.'\n );\n }\n\n return solanaInstance as SolanaProviderApi;\n}\n", "import { ProviderBuilder } from '@rango-dev/wallets-core';\n\nimport { metadata, WALLET_ID } from './constants.js';\nimport { evm } from './namespaces/evm.js';\nimport { solana } from './namespaces/solana.js';\nimport { okx as okxInstance } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n\n if (okxInstance()) {\n setState('installed', true);\n console.debug('[okx] instance detected.', context);\n }\n })\n .config('metadata', metadata)\n .add('solana', solana)\n .add('evm', evm)\n .build();\n\nexport { buildProvider };\n", "import type { EvmActions } from '@rango-dev/wallets-core/namespaces/evm';\n\nimport { NamespaceBuilder } from '@rango-dev/wallets-core';\nimport {\n builders as commonBuilders,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport {\n actions,\n builders,\n hooks,\n} from '@rango-dev/wallets-core/namespaces/evm';\n\nimport { WALLET_ID } from '../constants.js';\nimport { evmOKX } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n hooks.changeAccountSubscriber(evmOKX);\n\nconst connect = builders\n .connect()\n .action(actions.connect(evmOKX))\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<EvmActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst canSwitchNetwork = builders\n .canSwitchNetwork()\n .action(actions.canSwitchNetwork())\n .build();\n\nconst canEagerConnect = builders\n .canEagerConnect()\n .action(actions.canEagerConnect(evmOKX))\n .build();\n\nconst getChainId = builders\n .getChainId()\n .action(actions.getChainId(evmOKX))\n .build();\n\nconst evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .action(canSwitchNetwork)\n .action(getChainId)\n .build();\n\nexport { evm };\n", "import type { SolanaActions } from '@rango-dev/wallets-core/namespaces/solana';\n\nimport { ActionBuilder, NamespaceBuilder } from '@rango-dev/wallets-core';\nimport {\n builders as commonBuilders,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport {\n actions,\n builders,\n hooks,\n} from '@rango-dev/wallets-core/namespaces/solana';\n\nimport { WALLET_ID } from '../constants.js';\nimport { solanaOKX } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n hooks.changeAccountSubscriber(solanaOKX);\n\nconst connect = builders\n .connect()\n .action(actions.connect(solanaOKX))\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<SolanaActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(actions.canEagerConnect(solanaOKX))\n .build();\n\nconst solana = new NamespaceBuilder<SolanaActions>('Solana', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { solana };\n"],
5
- "mappings": "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",
6
- "names": ["defineVersions", "canEagerlyConnectToEvm", "canSwitchNetworkToEvm", "chooseInstance", "getEvmAccounts", "getSolanaAccounts", "Networks", "switchNetworkForEvm", "WalletTypes", "isEvmBlockchain", "LegacyNetworks", "solanaBlockchain", "dynamicImportWithRefinedError", "getNetworkInstance", "Networks", "DefaultSignerFactory", "TxType", "DefaultSolanaSigner", "SignerError", "SignerErrorCode", "OKXSolanaSigner", "DefaultSolanaSigner", "__name", "provider", "msg", "signature", "error", "SignerError", "SignerErrorCode", "getSigners", "provider", "ethProvider", "getNetworkInstance", "Networks", "solProvider", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "dynamicImportWithRefinedError", "TxType", "OKXSolanaSigner", "__name", "LegacyNetworks", "okx", "okxwallet", "instances", "LegacyNetworks", "__name", "getInstanceOrThrow", "evmOKX", "evmInstance", "solanaOKX", "solanaInstance", "WALLET_ID", "OKX_WALLET_SUPPORTED_CHAINS", "LegacyNetworks", "metadata", "allBlockchains", "blockchainMeta", "solanaBlockchain", "getSigners", "getInstanceOrThrow", "WALLET", "WalletTypes", "config", "Networks", "getInstance", "okx", "connect", "__name", "instance", "meta", "results", "evmInstance", "chooseInstance", "evmResults", "getEvmAccounts", "solanaResults", "getSolanaAccounts", "subscribe", "updateAccounts", "ethInstance", "handleEvmAccountsChanged", "addresses", "eth_chainId", "isEvmBlockchain", "blockchain", "chainId", "accounts", "switchNetwork", "options", "switchNetworkForEvm", "canSwitchNetworkTo", "canSwitchNetworkToEvm", "getSigners", "canEagerConnect", "evm_instance", "canEagerlyConnectToEvm", "getWalletInfo", "allBlockChains", "blockchainMeta", "OKX_WALLET_SUPPORTED_CHAINS", "buildLegacyProvider", "ProviderBuilder", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "actions", "builders", "hooks", "changeAccountSubscriber", "changeAccountCleanup", "hooks", "evmOKX", "connect", "builders", "actions", "standardizeAndThrowError", "disconnect", "commonBuilders", "canSwitchNetwork", "canEagerConnect", "getChainId", "evm", "NamespaceBuilder", "WALLET_ID", "ActionBuilder", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "actions", "builders", "hooks", "changeAccountSubscriber", "changeAccountCleanup", "hooks", "solanaOKX", "connect", "builders", "actions", "standardizeAndThrowError", "disconnect", "commonBuilders", "canEagerConnect", "ActionBuilder", "solana", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "okx", "metadata", "solana", "evm", "versions", "__name", "defineVersions", "buildLegacyProvider", "buildProvider"]
4
+ "sourcesContent": ["import { defineVersions } from '@rango-dev/wallets-core/utils';\n\nimport { buildLegacyProvider } from './legacy/index.js';\nimport { buildProvider } from './provider.js';\n\nconst versions = () =>\n defineVersions()\n .version('0.0.0', buildLegacyProvider())\n .version('1.0.0', buildProvider())\n .build();\n\nexport { versions };\n", "import type { LegacyProviderInterface } from '@rango-dev/wallets-core/legacy';\nimport type {\n CanEagerConnect,\n CanSwitchNetwork,\n Connect,\n ProviderConnectResult,\n Subscribe,\n SwitchNetwork,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\nimport type { BlockchainMeta, SignerFactory } from 'rango-types';\n\nimport {\n canEagerlyConnectToEvm,\n canSwitchNetworkToEvm,\n chooseInstance,\n getEvmAccounts,\n getSolanaAccounts,\n Networks,\n switchNetworkForEvm,\n WalletTypes,\n} from '@rango-dev/wallets-shared';\nimport { isEvmBlockchain } from 'rango-types';\n\nimport { OKX_WALLET_SUPPORTED_CHAINS } from '../constants.js';\nimport signer from '../signer.js';\nimport { okx } from '../utils.js';\n\nconst WALLET = WalletTypes.OKX;\n\nexport const config = {\n type: WALLET,\n defaultNetwork: Networks.ETHEREUM,\n};\n\nexport const getInstance = okx;\nexport const connect: Connect = async ({ instance, meta }) => {\n const results: ProviderConnectResult[] = [];\n\n const evmInstance = chooseInstance(instance, meta, Networks.ETHEREUM);\n\n if (evmInstance) {\n const evmResults = await getEvmAccounts(evmInstance);\n results.push(evmResults);\n }\n\n const solanaResults = await getSolanaAccounts(instance);\n\n results.push(\n ...(Array.isArray(solanaResults) ? solanaResults : [solanaResults])\n );\n\n return results;\n};\n\nexport const subscribe: Subscribe = ({ instance, updateAccounts, meta }) => {\n const ethInstance = chooseInstance(instance, meta, Networks.ETHEREUM);\n const handleEvmAccountsChanged = async (addresses: string[]) => {\n const eth_chainId = meta\n .filter(isEvmBlockchain)\n .find((blockchain) => blockchain.name === Networks.ETHEREUM)?.chainId;\n\n updateAccounts(addresses, eth_chainId);\n const solanaResults = await getSolanaAccounts(instance);\n const resultsArray = Array.isArray(solanaResults)\n ? solanaResults\n : [solanaResults];\n\n resultsArray.forEach(({ chainId, accounts }) => {\n updateAccounts(accounts, chainId);\n });\n };\n ethInstance?.on?.('accountsChanged', handleEvmAccountsChanged);\n\n return () => {\n ethInstance?.off?.('accountsChanged', handleEvmAccountsChanged);\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\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype Provider = any;\nexport const getSigners: (provider: Provider) => Promise<SignerFactory> =\n signer;\n\nexport const canEagerConnect: CanEagerConnect = async ({ instance, meta }) => {\n const evm_instance = chooseInstance(instance, meta, Networks.ETHEREUM);\n if (evm_instance) {\n return canEagerlyConnectToEvm({ instance: evm_instance, meta });\n }\n return Promise.resolve(false);\n};\n\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => ({\n name: 'OKX',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/okx/icon.svg',\n installLink: {\n CHROME:\n 'https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge',\n BRAVE:\n 'https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge',\n FIREFOX: 'https://addons.mozilla.org/en-US/firefox/addon/okexwallet',\n DEFAULT: 'https://www.okx.com/web3',\n },\n color: 'white',\n supportedChains: allBlockChains.filter((blockchainMeta) =>\n OKX_WALLET_SUPPORTED_CHAINS.includes(blockchainMeta.name as Networks)\n ),\n});\nconst buildLegacyProvider: () => LegacyProviderInterface = () => ({\n config,\n getInstance,\n connect,\n subscribe,\n switchNetwork,\n canSwitchNetworkTo,\n getSigners,\n getWalletInfo,\n canEagerConnect,\n});\n\nexport { buildLegacyProvider };\n", "import { type ProviderMetadata } from '@rango-dev/wallets-core';\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\nimport { type BlockchainMeta, solanaBlockchain } from 'rango-types';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const WALLET_ID = 'okx';\nexport const OKX_WALLET_SUPPORTED_CHAINS = [\n LegacyNetworks.ETHEREUM,\n LegacyNetworks.BSC,\n LegacyNetworks.POLYGON,\n LegacyNetworks.FANTOM,\n LegacyNetworks.ARBITRUM,\n LegacyNetworks.OPTIMISM,\n LegacyNetworks.CRONOS,\n LegacyNetworks.BOBA,\n LegacyNetworks.GNOSIS,\n LegacyNetworks.MOONBEAM,\n LegacyNetworks.MOONRIVER,\n LegacyNetworks.HARMONY,\n LegacyNetworks.AVAX_CCHAIN,\n];\n\nexport const metadata: ProviderMetadata = {\n name: 'OKX',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/okx/icon.svg',\n extensions: {\n chrome:\n 'https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge',\n brave:\n 'https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge',\n firefox: 'https://addons.mozilla.org/en-US/firefox/addon/okexwallet',\n homepage: 'https://www.okx.com/web3',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'multiple',\n data: [\n {\n label: 'EVM',\n value: 'EVM',\n id: 'ETH',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter((blockchainMeta) =>\n OKX_WALLET_SUPPORTED_CHAINS.includes(\n blockchainMeta.name as LegacyNetworks\n )\n ),\n },\n {\n label: 'Solana',\n value: 'Solana',\n id: 'SOLANA',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n solanaBlockchain(allBlockchains),\n },\n ],\n },\n },\n {\n name: 'signers',\n value: { getSigners: async () => getSigners(getInstanceOrThrow()) },\n },\n ],\n};\n", "import type { Provider } from './types.js';\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 { OKXSolanaSigner } from './signers/solana.js';\n\nexport default async function getSigners(\n provider: Provider\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 OKXSolanaSigner(solProvider));\n return signers;\n}\n", "import {\n DefaultSolanaSigner,\n type SolanaExternalProvider,\n} from '@rango-dev/signer-solana';\nimport { SignerError, SignerErrorCode } from 'rango-types';\n\nexport class OKXSolanaSigner extends DefaultSolanaSigner {\n constructor(provider: SolanaExternalProvider) {\n super(provider);\n }\n\n async signMessage(msg: string): Promise<string> {\n try {\n const { signature } = await this.provider.request({\n method: 'signMessage',\n params: {\n message: msg,\n },\n });\n return signature;\n } catch (error) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, error);\n }\n }\n}\n", "import type { Provider } from './types.js';\nimport type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';\nimport type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\n\nexport function okx(): Provider | null {\n const { okxwallet } = window;\n if (!okxwallet) {\n return null;\n }\n const instances: Provider = new Map();\n if (okxwallet) {\n instances.set(LegacyNetworks.ETHEREUM, okxwallet);\n }\n if (okxwallet.solana) {\n instances.set(LegacyNetworks.SOLANA, okxwallet.solana);\n }\n\n return instances;\n}\n\nexport function getInstanceOrThrow(): Provider {\n const instances = okx();\n\n if (!instances) {\n throw new Error('OKX Wallet is not injected. Please check your wallet.');\n }\n\n return instances;\n}\n\nexport function evmOKX(): EvmProviderApi {\n const instances = okx();\n\n const evmInstance = instances?.get(LegacyNetworks.ETHEREUM);\n\n if (!evmInstance) {\n throw new Error(\n 'OKX Wallet not injected or EVM not enabled. Please check your wallet.'\n );\n }\n\n return evmInstance as EvmProviderApi;\n}\n\nexport function solanaOKX(): SolanaProviderApi {\n const instance = okx();\n const solanaInstance = instance?.get(LegacyNetworks.SOLANA);\n\n if (!solanaInstance) {\n throw new Error(\n 'OKX Wallet not injected or Solana not enabled. Please check your wallet.'\n );\n }\n\n return solanaInstance as SolanaProviderApi;\n}\n", "import { ProviderBuilder } from '@rango-dev/wallets-core';\n\nimport { metadata, WALLET_ID } from './constants.js';\nimport { evm } from './namespaces/evm.js';\nimport { solana } from './namespaces/solana.js';\nimport { okx as okxInstance } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n\n if (okxInstance()) {\n setState('installed', true);\n console.debug('[okx] instance detected.', context);\n }\n })\n .config('metadata', metadata)\n .add('solana', solana)\n .add('evm', evm)\n .build();\n\nexport { buildProvider };\n", "import type { EvmActions } from '@rango-dev/wallets-core/namespaces/evm';\n\nimport { NamespaceBuilder } from '@rango-dev/wallets-core';\nimport {\n builders as commonBuilders,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport {\n actions,\n builders,\n utils,\n} from '@rango-dev/wallets-core/namespaces/evm';\n\nimport { WALLET_ID } from '../constants.js';\nimport { evmOKX } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] = builders\n .changeAccountSubscriber(evmOKX)\n /*\n * Okx wallet may call the `changeAccount` event with `null` value\n * but we shouldn't disconnect in this case.\n */\n .onSwitchAccount((event) => {\n if (!event.payload.length) {\n event.preventDefault();\n }\n })\n .format(async (instance, event) => {\n const chainId = await instance.request({ method: 'eth_chainId' });\n // The wallet may emit a `null` value in its `sent` event.\n return utils.formatAccountsToCAIP(event.filter(Boolean), chainId);\n })\n .build();\nconst connect = builders\n .connect()\n .action(actions.connect(evmOKX))\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<EvmActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst canSwitchNetwork = builders\n .canSwitchNetwork()\n .action(actions.canSwitchNetwork())\n .build();\n\nconst canEagerConnect = builders\n .canEagerConnect()\n .action(actions.canEagerConnect(evmOKX))\n .build();\n\nconst getChainId = builders\n .getChainId()\n .action(actions.getChainId(evmOKX))\n .build();\n\nconst evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .action(canSwitchNetwork)\n .action(getChainId)\n .build();\n\nexport { evm };\n", "import type { SolanaActions } from '@rango-dev/wallets-core/namespaces/solana';\n\nimport { ActionBuilder, NamespaceBuilder } from '@rango-dev/wallets-core';\nimport {\n builders as commonBuilders,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport {\n actions,\n builders,\n utils,\n} from '@rango-dev/wallets-core/namespaces/solana';\n\nimport { WALLET_ID } from '../constants.js';\nimport { solanaOKX } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] = builders\n .changeAccountSubscriber(solanaOKX)\n /*\n * Okx wallet may call the `changeAccount` event with `null` value\n * but we shouldn't disconnect in this case.\n */\n .onSwitchAccount((event) => {\n if (!event.payload) {\n event.preventDefault();\n }\n })\n .format(async (_, event) => {\n // The wallet may emit a `null` value in its `sent` event.\n return utils.formatAccountsToCAIP(event ? [event] : []);\n })\n .build();\n\nconst connect = builders\n .connect()\n .action(actions.connect(solanaOKX))\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<SolanaActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(actions.canEagerConnect(solanaOKX))\n .build();\n\nconst solana = new NamespaceBuilder<SolanaActions>('Solana', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { solana };\n"],
5
+ "mappings": "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",
6
+ "names": ["defineVersions", "canEagerlyConnectToEvm", "canSwitchNetworkToEvm", "chooseInstance", "getEvmAccounts", "getSolanaAccounts", "Networks", "switchNetworkForEvm", "WalletTypes", "isEvmBlockchain", "LegacyNetworks", "solanaBlockchain", "dynamicImportWithRefinedError", "getNetworkInstance", "Networks", "DefaultSignerFactory", "TxType", "DefaultSolanaSigner", "SignerError", "SignerErrorCode", "OKXSolanaSigner", "DefaultSolanaSigner", "__name", "provider", "msg", "signature", "error", "SignerError", "SignerErrorCode", "getSigners", "provider", "ethProvider", "getNetworkInstance", "Networks", "solProvider", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "dynamicImportWithRefinedError", "TxType", "OKXSolanaSigner", "__name", "LegacyNetworks", "okx", "okxwallet", "instances", "LegacyNetworks", "__name", "getInstanceOrThrow", "evmOKX", "evmInstance", "solanaOKX", "solanaInstance", "WALLET_ID", "OKX_WALLET_SUPPORTED_CHAINS", "LegacyNetworks", "metadata", "allBlockchains", "blockchainMeta", "solanaBlockchain", "getSigners", "getInstanceOrThrow", "WALLET", "WalletTypes", "config", "Networks", "getInstance", "okx", "connect", "__name", "instance", "meta", "results", "evmInstance", "chooseInstance", "evmResults", "getEvmAccounts", "solanaResults", "getSolanaAccounts", "subscribe", "updateAccounts", "ethInstance", "handleEvmAccountsChanged", "addresses", "eth_chainId", "isEvmBlockchain", "blockchain", "chainId", "accounts", "switchNetwork", "options", "switchNetworkForEvm", "canSwitchNetworkTo", "canSwitchNetworkToEvm", "getSigners", "canEagerConnect", "evm_instance", "canEagerlyConnectToEvm", "getWalletInfo", "allBlockChains", "blockchainMeta", "OKX_WALLET_SUPPORTED_CHAINS", "buildLegacyProvider", "ProviderBuilder", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "actions", "builders", "utils", "changeAccountSubscriber", "changeAccountCleanup", "builders", "evmOKX", "event", "instance", "chainId", "utils", "connect", "actions", "standardizeAndThrowError", "disconnect", "commonBuilders", "canSwitchNetwork", "canEagerConnect", "getChainId", "evm", "NamespaceBuilder", "WALLET_ID", "ActionBuilder", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "actions", "builders", "utils", "changeAccountSubscriber", "changeAccountCleanup", "builders", "solanaOKX", "event", "_", "utils", "connect", "actions", "standardizeAndThrowError", "disconnect", "commonBuilders", "canEagerConnect", "ActionBuilder", "solana", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "okx", "metadata", "solana", "evm", "versions", "__name", "defineVersions", "buildLegacyProvider", "buildProvider"]
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/namespaces/evm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AA+CzE,QAAA,MAAM,GAAG,gEAMC,CAAC;AAEX,OAAO,EAAE,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/namespaces/evm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AA6DzE,QAAA,MAAM,GAAG,gEAMC,CAAC;AAEX,OAAO,EAAE,GAAG,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/namespaces/solana.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAsC/E,QAAA,MAAM,MAAM,mEAIF,CAAC;AAEX,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/namespaces/solana.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAoD/E,QAAA,MAAM,MAAM,mEAIF,CAAC;AAEX,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"inputs":{"src/signers/solana.ts":{"bytes":644,"imports":[{"path":"@rango-dev/signer-solana","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":915,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/signers/solana.ts","kind":"import-statement","original":"./signers/solana.js"},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils.ts":{"bytes":1490,"imports":[{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/constants.ts":{"bytes":2063,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/signer.ts","kind":"import-statement","original":"./signer.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"}],"format":"esm"},"src/legacy/index.ts":{"bytes":3891,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/signer.ts","kind":"import-statement","original":"../signer.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/namespaces/evm.ts":{"bytes":1336,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/evm","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"}],"format":"esm"},"src/namespaces/solana.ts":{"bytes":1180,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/solana","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"}],"format":"esm"},"src/provider.ts":{"bytes":655,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"src/namespaces/evm.ts","kind":"import-statement","original":"./namespaces/evm.js"},{"path":"src/namespaces/solana.ts","kind":"import-statement","original":"./namespaces/solana.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/mod.ts":{"bytes":332,"imports":[{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"src/legacy/index.ts","kind":"import-statement","original":"./legacy/index.js"},{"path":"src/provider.ts","kind":"import-statement","original":"./provider.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/mod.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":21395},"dist/mod.js":{"imports":[{"path":"@rango-dev/wallets-core/utils","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/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/legacy","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-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-solana","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/evm","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/solana","kind":"import-statement","external":true}],"exports":["versions"],"entryPoint":"src/mod.ts","inputs":{"src/mod.ts":{"bytesInOutput":144},"src/legacy/index.ts":{"bytesInOutput":1731},"src/constants.ts":{"bytesInOutput":980},"src/signer.ts":{"bytesInOutput":423},"src/signers/solana.ts":{"bytesInOutput":377},"src/utils.ts":{"bytesInOutput":668},"src/provider.ts":{"bytesInOutput":262},"src/namespaces/evm.ts":{"bytesInOutput":648},"src/namespaces/solana.ts":{"bytesInOutput":549}},"bytes":5917}}}
1
+ {"inputs":{"src/signers/solana.ts":{"bytes":644,"imports":[{"path":"@rango-dev/signer-solana","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":915,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/signers/solana.ts","kind":"import-statement","original":"./signers/solana.js"},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils.ts":{"bytes":1490,"imports":[{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/constants.ts":{"bytes":2063,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/signer.ts","kind":"import-statement","original":"./signer.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"}],"format":"esm"},"src/legacy/index.ts":{"bytes":3891,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/signer.ts","kind":"import-statement","original":"../signer.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/namespaces/evm.ts":{"bytes":1832,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/evm","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"}],"format":"esm"},"src/namespaces/solana.ts":{"bytes":1582,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/solana","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"}],"format":"esm"},"src/provider.ts":{"bytes":655,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"src/namespaces/evm.ts","kind":"import-statement","original":"./namespaces/evm.js"},{"path":"src/namespaces/solana.ts","kind":"import-statement","original":"./namespaces/solana.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/mod.ts":{"bytes":332,"imports":[{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"src/legacy/index.ts","kind":"import-statement","original":"./legacy/index.js"},{"path":"src/provider.ts","kind":"import-statement","original":"./provider.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/mod.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":22727},"dist/mod.js":{"imports":[{"path":"@rango-dev/wallets-core/utils","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/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/legacy","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-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-solana","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/evm","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/solana","kind":"import-statement","external":true}],"exports":["versions"],"entryPoint":"src/mod.ts","inputs":{"src/mod.ts":{"bytesInOutput":144},"src/legacy/index.ts":{"bytesInOutput":1733},"src/constants.ts":{"bytesInOutput":980},"src/signer.ts":{"bytesInOutput":423},"src/signers/solana.ts":{"bytesInOutput":377},"src/utils.ts":{"bytesInOutput":668},"src/provider.ts":{"bytesInOutput":262},"src/namespaces/evm.ts":{"bytesInOutput":834},"src/namespaces/solana.ts":{"bytesInOutput":660}},"bytes":6216}}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rango-dev/provider-okx",
3
- "version": "0.53.1-next.1",
3
+ "version": "0.54.1-next.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "source": "./src/mod.ts",
@@ -23,8 +23,8 @@
23
23
  "dependencies": {
24
24
  "@rango-dev/signer-evm": "^0.40.0",
25
25
  "@rango-dev/signer-solana": "^0.44.1-next.0",
26
- "@rango-dev/wallets-core": "^0.51.1-next.1",
27
- "@rango-dev/wallets-shared": "^0.52.1-next.1",
26
+ "@rango-dev/wallets-core": "^0.52.1-next.1",
27
+ "@rango-dev/wallets-shared": "^0.53.1-next.0",
28
28
  "rango-types": "^0.1.89"
29
29
  },
30
30
  "publishConfig": {
@@ -8,15 +8,29 @@ import {
8
8
  import {
9
9
  actions,
10
10
  builders,
11
- hooks,
11
+ utils,
12
12
  } from '@rango-dev/wallets-core/namespaces/evm';
13
13
 
14
14
  import { WALLET_ID } from '../constants.js';
15
15
  import { evmOKX } from '../utils.js';
16
16
 
17
- const [changeAccountSubscriber, changeAccountCleanup] =
18
- hooks.changeAccountSubscriber(evmOKX);
19
-
17
+ const [changeAccountSubscriber, changeAccountCleanup] = builders
18
+ .changeAccountSubscriber(evmOKX)
19
+ /*
20
+ * Okx wallet may call the `changeAccount` event with `null` value
21
+ * but we shouldn't disconnect in this case.
22
+ */
23
+ .onSwitchAccount((event) => {
24
+ if (!event.payload.length) {
25
+ event.preventDefault();
26
+ }
27
+ })
28
+ .format(async (instance, event) => {
29
+ const chainId = await instance.request({ method: 'eth_chainId' });
30
+ // The wallet may emit a `null` value in its `sent` event.
31
+ return utils.formatAccountsToCAIP(event.filter(Boolean), chainId);
32
+ })
33
+ .build();
20
34
  const connect = builders
21
35
  .connect()
22
36
  .action(actions.connect(evmOKX))
@@ -8,14 +8,28 @@ import {
8
8
  import {
9
9
  actions,
10
10
  builders,
11
- hooks,
11
+ utils,
12
12
  } from '@rango-dev/wallets-core/namespaces/solana';
13
13
 
14
14
  import { WALLET_ID } from '../constants.js';
15
15
  import { solanaOKX } from '../utils.js';
16
16
 
17
- const [changeAccountSubscriber, changeAccountCleanup] =
18
- hooks.changeAccountSubscriber(solanaOKX);
17
+ const [changeAccountSubscriber, changeAccountCleanup] = builders
18
+ .changeAccountSubscriber(solanaOKX)
19
+ /*
20
+ * Okx wallet may call the `changeAccount` event with `null` value
21
+ * but we shouldn't disconnect in this case.
22
+ */
23
+ .onSwitchAccount((event) => {
24
+ if (!event.payload) {
25
+ event.preventDefault();
26
+ }
27
+ })
28
+ .format(async (_, event) => {
29
+ // The wallet may emit a `null` value in its `sent` event.
30
+ return utils.formatAccountsToCAIP(event ? [event] : []);
31
+ })
32
+ .build();
19
33
 
20
34
  const connect = builders
21
35
  .connect()