@rango-dev/provider-okx 0.52.1-next.1 → 0.53.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.
Files changed (44) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/constants.d.ts +6 -0
  3. package/dist/constants.d.ts.map +1 -0
  4. package/dist/{index.d.ts → legacy/index.d.ts} +7 -3
  5. package/dist/legacy/index.d.ts.map +1 -0
  6. package/dist/mod.d.ts +3 -0
  7. package/dist/mod.d.ts.map +1 -0
  8. package/dist/mod.js +2 -0
  9. package/dist/mod.js.map +7 -0
  10. package/dist/namespaces/evm.d.ts +4 -0
  11. package/dist/namespaces/evm.d.ts.map +1 -0
  12. package/dist/namespaces/solana.d.ts +4 -0
  13. package/dist/namespaces/solana.d.ts.map +1 -0
  14. package/dist/provider-okx.build.json +1 -1
  15. package/dist/provider.d.ts +3 -0
  16. package/dist/provider.d.ts.map +1 -0
  17. package/dist/signer.d.ts +2 -2
  18. package/dist/signer.d.ts.map +1 -1
  19. package/dist/signers/solana.d.ts +6 -0
  20. package/dist/signers/solana.d.ts.map +1 -0
  21. package/dist/types.d.ts +9 -0
  22. package/dist/types.d.ts.map +1 -0
  23. package/dist/utils.d.ts +8 -0
  24. package/dist/utils.d.ts.map +1 -0
  25. package/package.json +9 -9
  26. package/readme.md +61 -1
  27. package/src/constants.ts +68 -0
  28. package/src/{index.ts → legacy/index.ts} +39 -16
  29. package/src/mod.ts +12 -0
  30. package/src/namespaces/evm.ts +50 -0
  31. package/src/namespaces/solana.ts +45 -0
  32. package/src/provider.ts +23 -0
  33. package/src/signer.ts +4 -4
  34. package/src/{solana-signer.ts → signers/solana.ts} +5 -5
  35. package/src/types.ts +12 -0
  36. package/src/utils.ts +58 -0
  37. package/dist/helpers.d.ts +0 -6
  38. package/dist/helpers.d.ts.map +0 -1
  39. package/dist/index.d.ts.map +0 -1
  40. package/dist/index.js +0 -2
  41. package/dist/index.js.map +0 -7
  42. package/dist/solana-signer.d.ts +0 -8
  43. package/dist/solana-signer.d.ts.map +0 -1
  44. package/src/helpers.ts +0 -55
package/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # [0.53.0](https://github.com/rango-exchange/rango-client/compare/provider-okx@0.52.0...provider-okx@0.53.0) (2025-10-29)
2
+
3
+
4
+
1
5
  # [0.52.0](https://github.com/rango-exchange/rango-client/compare/provider-okx@0.51.0...provider-okx@0.52.0) (2025-09-29)
2
6
 
3
7
 
@@ -0,0 +1,6 @@
1
+ import { type ProviderMetadata } from '@rango-dev/wallets-core';
2
+ import { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
3
+ export declare const WALLET_ID = "okx";
4
+ export declare const OKX_WALLET_SUPPORTED_CHAINS: LegacyNetworks[];
5
+ export declare const metadata: ProviderMetadata;
6
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAMhE,eAAO,MAAM,SAAS,QAAQ,CAAC;AAC/B,eAAO,MAAM,2BAA2B,kBAcvC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,gBA2CtB,CAAC"}
@@ -1,17 +1,21 @@
1
+ import type { LegacyProviderInterface } from '@rango-dev/wallets-core/legacy';
1
2
  import type { CanEagerConnect, CanSwitchNetwork, Connect, Subscribe, SwitchNetwork, WalletInfo } from '@rango-dev/wallets-shared';
2
3
  import type { BlockchainMeta, SignerFactory } from 'rango-types';
3
4
  import { Networks, WalletTypes } from '@rango-dev/wallets-shared';
4
- import { okx_instance } from './helpers.js';
5
+ import { okx } from '../utils.js';
5
6
  export declare const config: {
6
7
  type: WalletTypes;
7
8
  defaultNetwork: Networks;
8
9
  };
9
- export declare const getInstance: typeof okx_instance;
10
+ export declare const getInstance: typeof okx;
10
11
  export declare const connect: Connect;
11
12
  export declare const subscribe: Subscribe;
12
13
  export declare const switchNetwork: SwitchNetwork;
13
14
  export declare const canSwitchNetworkTo: CanSwitchNetwork;
14
- export declare const getSigners: (provider: any) => Promise<SignerFactory>;
15
+ type Provider = any;
16
+ export declare const getSigners: (provider: Provider) => Promise<SignerFactory>;
15
17
  export declare const canEagerConnect: CanEagerConnect;
16
18
  export declare const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo;
19
+ declare const buildLegacyProvider: () => LegacyProviderInterface;
20
+ export { buildLegacyProvider };
17
21
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/legacy/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,OAAO,EAEP,SAAS,EACT,aAAa,EACb,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAML,QAAQ,EAER,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAKnC,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAIlC,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,eAAO,MAAM,WAAW,YAAM,CAAC;AAC/B,eAAO,MAAM,OAAO,EAAE,OAiBrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SAsBvB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,aAU3B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAAwC,CAAC;AAG1E,KAAK,QAAQ,GAAG,GAAG,CAAC;AACpB,eAAO,MAAM,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,aAAa,CAC9D,CAAC;AAET,eAAO,MAAM,eAAe,EAAE,eAM7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,UAiBhE,CAAC;AACH,QAAA,MAAM,mBAAmB,EAAE,MAAM,uBAU/B,CAAC;AAEH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
package/dist/mod.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ declare const versions: () => import("@rango-dev/wallets-core/utils").VersionedProviders;
2
+ export { versions };
3
+ //# sourceMappingURL=mod.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,QAAQ,kEAIF,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAE,CAAC"}
package/dist/mod.js ADDED
@@ -0,0 +1,2 @@
1
+ var U=Object.defineProperty;var t=(e,o)=>U(e,"name",{value:o,configurable:!0});import{defineVersions as Pe}from"@rango-dev/wallets-core/utils";import{canEagerlyConnectToEvm as j,canSwitchNetworkToEvm as V,chooseInstance as f,getEvmAccounts as z,getSolanaAccounts as N,Networks as m,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 d=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 d(r)),a}t(l,"getSigners");import{LegacyNetworks as p}from"@rango-dev/wallets-core/legacy";function i(){let{okxwallet:e}=window;if(!e)return null;let o=new Map;return e&&o.set(p.ETHEREUM,e),e.solana&&o.set(p.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 g(){let o=i()?.get(p.ETHEREUM);if(!o)throw new Error("OKX Wallet not injected or EVM not enabled. Please check your wallet.");return o}t(g,"evmOKX");function u(){let o=i()?.get(p.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",v=[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=>v.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:m.ETHEREUM},Z=i,$=t(async({instance:e,meta:o})=>{let r=[],a=f(e,o,m.ETHEREUM);if(a){let w=await z(a);r.push(w)}let c=await N(e);return r.push(...Array.isArray(c)?c:[c]),r},"connect"),ee=t(({instance:e,updateAccounts:o,meta:r})=>{let a=f(e,r,m.ETHEREUM),c=t(async w=>{let B=r.filter(q).find(E=>E.name===m.ETHEREUM)?.chainId;o(w,B);let h=await N(e);(Array.isArray(h)?h:[h]).forEach(({chainId:E,accounts:H})=>{o(H,E)})},"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,m.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=>v.includes(o.name))}),"getWalletInfo"),O=t(()=>({config:Q,getInstance:Z,connect:$,subscribe:ee,switchNetwork:oe,canSwitchNetworkTo:te,getSigners:re,getWalletInfo:ae,canEagerConnect:ne}),"buildLegacyProvider");import{ProviderBuilder as xe}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 S,builders as b,hooks as le}from"@rango-dev/wallets-core/namespaces/evm";var[me,C]=le.changeAccountSubscriber(g),de=b.connect().action(S.connect(g)).before(me).or(C).or(se).build(),pe=ie.disconnect().after(C).build(),ge=b.canSwitchNetwork().action(S.canSwitchNetwork()).build(),ue=b.canEagerConnect().action(S.canEagerConnect(g)).build(),T=new ce("EVM",s).action(de).action(pe).action(ue).action(ge).build();import{ActionBuilder as fe,NamespaceBuilder as we}from"@rango-dev/wallets-core";import{builders as he,standardizeAndThrowError as Ee}from"@rango-dev/wallets-core/namespaces/common";import{actions as I,builders as ve,hooks as Se}from"@rango-dev/wallets-core/namespaces/solana";var[be,M]=Se.changeAccountSubscriber(u),Ae=ve.connect().action(I.connect(u)).before(be).or(M).or(Ee).build(),ye=he.disconnect().after(M).build(),ke=new fe("canEagerConnect").action(I.canEagerConnect(u)).build(),L=new we("Solana",s).action(Ae).action(ye).action(ke).build();var R=t(()=>new xe(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",T).build(),"buildProvider");var yo=t(()=>Pe().version("0.0.0",O()).version("1.0.0",R()).build(),"versions");export{yo as versions};
2
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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 evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .action(canSwitchNetwork)\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", "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"]
7
+ }
@@ -0,0 +1,4 @@
1
+ import type { EvmActions } from '@rango-dev/wallets-core/namespaces/evm';
2
+ declare const evm: import("@rango-dev/wallets-core").ProxiedNamespace<EvmActions>;
3
+ export { evm };
4
+ //# sourceMappingURL=evm.d.ts.map
@@ -0,0 +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;AA0CzE,QAAA,MAAM,GAAG,gEAKC,CAAC;AAEX,OAAO,EAAE,GAAG,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { SolanaActions } from '@rango-dev/wallets-core/namespaces/solana';
2
+ declare const solana: import("@rango-dev/wallets-core").ProxiedNamespace<SolanaActions>;
3
+ export { solana };
4
+ //# sourceMappingURL=solana.d.ts.map
@@ -0,0 +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 +1 @@
1
- {"inputs":{"src/helpers.ts":{"bytes":1245,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/solana-signer.ts":{"bytes":712,"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":972,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/solana-signer.ts","kind":"import-statement","original":"./solana-signer.js"},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":3249,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/helpers.ts","kind":"import-statement","original":"./helpers.js"},{"path":"src/signer.ts","kind":"import-statement","original":"./signer.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":11059},"dist/index.js":{"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-solana","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true}],"exports":["canEagerConnect","canSwitchNetworkTo","config","connect","getInstance","getSigners","getWalletInfo","subscribe","switchNetwork"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":1479},"src/helpers.ts":{"bytesInOutput":541},"src/signer.ts":{"bytesInOutput":423},"src/solana-signer.ts":{"bytesInOutput":380}},"bytes":3108}}}
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":1219,"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":21175},"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":587},"src/namespaces/solana.ts":{"bytesInOutput":549}},"bytes":5856}}}
@@ -0,0 +1,3 @@
1
+ declare const buildProvider: () => import("@rango-dev/wallets-core").Provider;
2
+ export { buildProvider };
3
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAOA,QAAA,MAAM,aAAa,kDAaP,CAAC;AAEb,OAAO,EAAE,aAAa,EAAE,CAAC"}
package/dist/signer.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { LegacyNetworkProviderMap } from '@rango-dev/wallets-core/legacy';
1
+ import type { Provider } from './types.js';
2
2
  import type { SignerFactory } from 'rango-types';
3
- export default function getSigners(provider: LegacyNetworkProviderMap): Promise<SignerFactory>;
3
+ export default function getSigners(provider: Provider): Promise<SignerFactory>;
4
4
  //# sourceMappingURL=signer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAWjD,wBAA8B,UAAU,CACtC,QAAQ,EAAE,wBAAwB,GACjC,OAAO,CAAC,aAAa,CAAC,CAUxB"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAWjD,wBAA8B,UAAU,CACtC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,CAAC,CAUxB"}
@@ -0,0 +1,6 @@
1
+ import { DefaultSolanaSigner, type SolanaExternalProvider } from '@rango-dev/signer-solana';
2
+ export declare class OKXSolanaSigner extends DefaultSolanaSigner {
3
+ constructor(provider: SolanaExternalProvider);
4
+ signMessage(msg: string): Promise<string>;
5
+ }
6
+ //# sourceMappingURL=solana.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/signers/solana.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAC;AAGlC,qBAAa,eAAgB,SAAQ,mBAAmB;gBAC1C,QAAQ,EAAE,sBAAsB;IAItC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAahD"}
@@ -0,0 +1,9 @@
1
+ import type { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
2
+ import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';
3
+ import type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';
4
+ export type ProviderObject = {
5
+ [LegacyNetworks.ETHEREUM]: EvmProviderApi;
6
+ [LegacyNetworks.SOLANA]: SolanaProviderApi;
7
+ };
8
+ export type Provider = Map<keyof ProviderObject, ProviderObject[keyof ProviderObject]>;
9
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,KAAK,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAElG,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1C,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5C,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,GAAG,CACxB,MAAM,cAAc,EACpB,cAAc,CAAC,MAAM,cAAc,CAAC,CACrC,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Provider } from './types.js';
2
+ import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';
3
+ import type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';
4
+ export declare function okx(): Provider | null;
5
+ export declare function getInstanceOrThrow(): Provider;
6
+ export declare function evmOKX(): EvmProviderApi;
7
+ export declare function solanaOKX(): SolanaProviderApi;
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,KAAK,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAIlG,wBAAgB,GAAG,IAAI,QAAQ,GAAG,IAAI,CAcrC;AAED,wBAAgB,kBAAkB,IAAI,QAAQ,CAQ7C;AAED,wBAAgB,MAAM,IAAI,cAAc,CAYvC;AAED,wBAAgB,SAAS,IAAI,iBAAiB,CAW7C"}
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@rango-dev/provider-okx",
3
- "version": "0.52.1-next.1",
3
+ "version": "0.53.1-next.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
- "source": "./src/index.ts",
7
- "main": "./dist/index.js",
6
+ "source": "./src/mod.ts",
7
+ "main": "./dist/mod.js",
8
8
  "exports": {
9
- ".": "./dist/index.js"
9
+ ".": "./dist/mod.js"
10
10
  },
11
- "typings": "dist/index.d.ts",
11
+ "typings": "dist/mod.d.ts",
12
12
  "files": [
13
13
  "dist",
14
14
  "src"
15
15
  ],
16
16
  "scripts": {
17
- "build": "node ../../scripts/build/command.mjs --path wallets/provider-okx",
17
+ "build": "node ../../scripts/build/command.mjs --path wallets/provider-okx --inputs src/mod.ts",
18
18
  "ts-check": "tsc --declaration --emitDeclarationOnly -p ./tsconfig.json",
19
19
  "clean": "rimraf dist",
20
20
  "format": "prettier --write '{.,src}/**/*.{ts,tsx}'",
@@ -22,9 +22,9 @@
22
22
  },
23
23
  "dependencies": {
24
24
  "@rango-dev/signer-evm": "^0.40.0",
25
- "@rango-dev/signer-solana": "^0.44.0",
26
- "@rango-dev/wallets-core": "^0.50.1-next.1",
27
- "@rango-dev/wallets-shared": "^0.51.1-next.1",
25
+ "@rango-dev/signer-solana": "^0.44.1-next.0",
26
+ "@rango-dev/wallets-core": "^0.51.1-next.0",
27
+ "@rango-dev/wallets-shared": "^0.52.1-next.0",
28
28
  "rango-types": "^0.1.89"
29
29
  },
30
30
  "publishConfig": {
package/readme.md CHANGED
@@ -1 +1,61 @@
1
- # @rango-dev/provider-okx
1
+ # OKX Wallet
2
+ OKX Wallet integration for hub.
3
+ [Homepage](https://www.okx.com/web3) | [Docs](https://www.okx.com/web3/build/docs)
4
+
5
+ More about implementation status can be found [here](../readme.md).
6
+
7
+ ## Implementation notes/limitations
8
+
9
+ ### Group
10
+
11
+ #### ✅ Solana
12
+ - Fully supported in this integration.
13
+ - No known limitations.
14
+
15
+ ---
16
+
17
+ #### ⚠️ EVM
18
+ Supported networks :
19
+ - Ethereum
20
+ - BSC
21
+ - Polygon
22
+ - Fantom
23
+ - Arbitrum
24
+ - Optimism
25
+ - Cronos
26
+ - Boba
27
+ - Gnosis
28
+ - Moonbeam
29
+ - Moonriver
30
+ - Harmony
31
+ - Avalanche C-Chain
32
+
33
+
34
+ #### 🚧 Cosmos
35
+ The wallet supports Cosmos, but it is **not implemented** in the current integration.
36
+
37
+
38
+ #### 🚧 TON
39
+ The wallet supports TON, but it is **not implemented** in the current integration.
40
+
41
+
42
+ #### 🚧 Sui
43
+ The wallet supports Sui, but it is **not implemented** in the current integration.
44
+
45
+
46
+ #### 🚧 UTXO Chains
47
+ The wallet supports UTXO-based networks, but they are **not implemented** in the current integration.
48
+
49
+ ### Feature
50
+
51
+ #### ⚠️ Disconnect
52
+ After a dApp is disconnected, it **cannot reconnect automatically** unless the user also manually disconnects from the wallet itself.
53
+
54
+ #### ⚠️ Switch Account
55
+ Switching accounts from the wallet interface **is not reflected in the dApp**.
56
+ The previously connected account remains active until the user performs a **full disconnect and reconnect**.
57
+
58
+
59
+ ---
60
+
61
+ More wallet information can be found in [readme.md](../readme.md).
@@ -0,0 +1,68 @@
1
+ import { type ProviderMetadata } from '@rango-dev/wallets-core';
2
+ import { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
3
+ import { type BlockchainMeta, solanaBlockchain } from 'rango-types';
4
+
5
+ import getSigners from './signer.js';
6
+ import { getInstanceOrThrow } from './utils.js';
7
+
8
+ export const WALLET_ID = 'okx';
9
+ export const OKX_WALLET_SUPPORTED_CHAINS = [
10
+ LegacyNetworks.ETHEREUM,
11
+ LegacyNetworks.BSC,
12
+ LegacyNetworks.POLYGON,
13
+ LegacyNetworks.FANTOM,
14
+ LegacyNetworks.ARBITRUM,
15
+ LegacyNetworks.OPTIMISM,
16
+ LegacyNetworks.CRONOS,
17
+ LegacyNetworks.BOBA,
18
+ LegacyNetworks.GNOSIS,
19
+ LegacyNetworks.MOONBEAM,
20
+ LegacyNetworks.MOONRIVER,
21
+ LegacyNetworks.HARMONY,
22
+ LegacyNetworks.AVAX_CCHAIN,
23
+ ];
24
+
25
+ export const metadata: ProviderMetadata = {
26
+ name: 'OKX',
27
+ icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/okx/icon.svg',
28
+ extensions: {
29
+ chrome:
30
+ 'https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge',
31
+ brave:
32
+ 'https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge',
33
+ firefox: 'https://addons.mozilla.org/en-US/firefox/addon/okexwallet',
34
+ homepage: 'https://www.okx.com/web3',
35
+ },
36
+ properties: [
37
+ {
38
+ name: 'namespaces',
39
+ value: {
40
+ selection: 'multiple',
41
+ data: [
42
+ {
43
+ label: 'EVM',
44
+ value: 'EVM',
45
+ id: 'ETH',
46
+ getSupportedChains: (allBlockchains: BlockchainMeta[]) =>
47
+ allBlockchains.filter((blockchainMeta) =>
48
+ OKX_WALLET_SUPPORTED_CHAINS.includes(
49
+ blockchainMeta.name as LegacyNetworks
50
+ )
51
+ ),
52
+ },
53
+ {
54
+ label: 'Solana',
55
+ value: 'Solana',
56
+ id: 'SOLANA',
57
+ getSupportedChains: (allBlockchains: BlockchainMeta[]) =>
58
+ solanaBlockchain(allBlockchains),
59
+ },
60
+ ],
61
+ },
62
+ },
63
+ {
64
+ name: 'signers',
65
+ value: { getSigners: async () => getSigners(getInstanceOrThrow()) },
66
+ },
67
+ ],
68
+ };
@@ -1,3 +1,4 @@
1
+ import type { LegacyProviderInterface } from '@rango-dev/wallets-core/legacy';
1
2
  import type {
2
3
  CanEagerConnect,
3
4
  CanSwitchNetwork,
@@ -14,18 +15,16 @@ import {
14
15
  canSwitchNetworkToEvm,
15
16
  chooseInstance,
16
17
  getEvmAccounts,
18
+ getSolanaAccounts,
17
19
  Networks,
18
20
  switchNetworkForEvm,
19
21
  WalletTypes,
20
22
  } from '@rango-dev/wallets-shared';
21
23
  import { isEvmBlockchain } from 'rango-types';
22
24
 
23
- import {
24
- getSolanaAccounts,
25
- okx_instance,
26
- OKX_WALLET_SUPPORTED_CHAINS,
27
- } from './helpers.js';
28
- import signer from './signer.js';
25
+ import { OKX_WALLET_SUPPORTED_CHAINS } from '../constants.js';
26
+ import signer from '../signer.js';
27
+ import { okx } from '../utils.js';
29
28
 
30
29
  const WALLET = WalletTypes.OKX;
31
30
 
@@ -34,20 +33,22 @@ export const config = {
34
33
  defaultNetwork: Networks.ETHEREUM,
35
34
  };
36
35
 
37
- export const getInstance = okx_instance;
36
+ export const getInstance = okx;
38
37
  export const connect: Connect = async ({ instance, meta }) => {
39
- let results: ProviderConnectResult[] = [];
38
+ const results: ProviderConnectResult[] = [];
40
39
 
41
- const evm_instance = chooseInstance(instance, meta, Networks.ETHEREUM);
40
+ const evmInstance = chooseInstance(instance, meta, Networks.ETHEREUM);
42
41
 
43
- if (evm_instance) {
44
- const evm = await getEvmAccounts(evm_instance);
45
- results.push(evm);
42
+ if (evmInstance) {
43
+ const evmResults = await getEvmAccounts(evmInstance);
44
+ results.push(evmResults);
46
45
  }
47
46
 
48
47
  const solanaResults = await getSolanaAccounts(instance);
49
48
 
50
- results = [...results, ...solanaResults];
49
+ results.push(
50
+ ...(Array.isArray(solanaResults) ? solanaResults : [solanaResults])
51
+ );
51
52
 
52
53
  return results;
53
54
  };
@@ -60,8 +61,14 @@ export const subscribe: Subscribe = ({ instance, updateAccounts, meta }) => {
60
61
  .find((blockchain) => blockchain.name === Networks.ETHEREUM)?.chainId;
61
62
 
62
63
  updateAccounts(addresses, eth_chainId);
63
- const [{ accounts, chainId }] = await getSolanaAccounts(instance);
64
- updateAccounts(accounts, chainId);
64
+ const solanaResults = await getSolanaAccounts(instance);
65
+ const resultsArray = Array.isArray(solanaResults)
66
+ ? solanaResults
67
+ : [solanaResults];
68
+
69
+ resultsArray.forEach(({ chainId, accounts }) => {
70
+ updateAccounts(accounts, chainId);
71
+ });
65
72
  };
66
73
  ethInstance?.on?.('accountsChanged', handleEvmAccountsChanged);
67
74
 
@@ -84,7 +91,10 @@ export const switchNetwork: SwitchNetwork = async (options) => {
84
91
 
85
92
  export const canSwitchNetworkTo: CanSwitchNetwork = canSwitchNetworkToEvm;
86
93
 
87
- export const getSigners: (provider: any) => Promise<SignerFactory> = signer;
94
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
95
+ type Provider = any;
96
+ export const getSigners: (provider: Provider) => Promise<SignerFactory> =
97
+ signer;
88
98
 
89
99
  export const canEagerConnect: CanEagerConnect = async ({ instance, meta }) => {
90
100
  const evm_instance = chooseInstance(instance, meta, Networks.ETHEREUM);
@@ -112,3 +122,16 @@ export const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (
112
122
  OKX_WALLET_SUPPORTED_CHAINS.includes(blockchainMeta.name as Networks)
113
123
  ),
114
124
  });
125
+ const buildLegacyProvider: () => LegacyProviderInterface = () => ({
126
+ config,
127
+ getInstance,
128
+ connect,
129
+ subscribe,
130
+ switchNetwork,
131
+ canSwitchNetworkTo,
132
+ getSigners,
133
+ getWalletInfo,
134
+ canEagerConnect,
135
+ });
136
+
137
+ export { buildLegacyProvider };
package/src/mod.ts ADDED
@@ -0,0 +1,12 @@
1
+ import { defineVersions } from '@rango-dev/wallets-core/utils';
2
+
3
+ import { buildLegacyProvider } from './legacy/index.js';
4
+ import { buildProvider } from './provider.js';
5
+
6
+ const versions = () =>
7
+ defineVersions()
8
+ .version('0.0.0', buildLegacyProvider())
9
+ .version('1.0.0', buildProvider())
10
+ .build();
11
+
12
+ export { versions };
@@ -0,0 +1,50 @@
1
+ import type { EvmActions } from '@rango-dev/wallets-core/namespaces/evm';
2
+
3
+ import { NamespaceBuilder } from '@rango-dev/wallets-core';
4
+ import {
5
+ builders as commonBuilders,
6
+ standardizeAndThrowError,
7
+ } from '@rango-dev/wallets-core/namespaces/common';
8
+ import {
9
+ actions,
10
+ builders,
11
+ hooks,
12
+ } from '@rango-dev/wallets-core/namespaces/evm';
13
+
14
+ import { WALLET_ID } from '../constants.js';
15
+ import { evmOKX } from '../utils.js';
16
+
17
+ const [changeAccountSubscriber, changeAccountCleanup] =
18
+ hooks.changeAccountSubscriber(evmOKX);
19
+
20
+ const connect = builders
21
+ .connect()
22
+ .action(actions.connect(evmOKX))
23
+ .before(changeAccountSubscriber)
24
+ .or(changeAccountCleanup)
25
+ .or(standardizeAndThrowError)
26
+ .build();
27
+
28
+ const disconnect = commonBuilders
29
+ .disconnect<EvmActions>()
30
+ .after(changeAccountCleanup)
31
+ .build();
32
+
33
+ const canSwitchNetwork = builders
34
+ .canSwitchNetwork()
35
+ .action(actions.canSwitchNetwork())
36
+ .build();
37
+
38
+ const canEagerConnect = builders
39
+ .canEagerConnect()
40
+ .action(actions.canEagerConnect(evmOKX))
41
+ .build();
42
+
43
+ const evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)
44
+ .action(connect)
45
+ .action(disconnect)
46
+ .action(canEagerConnect)
47
+ .action(canSwitchNetwork)
48
+ .build();
49
+
50
+ export { evm };
@@ -0,0 +1,45 @@
1
+ import type { SolanaActions } from '@rango-dev/wallets-core/namespaces/solana';
2
+
3
+ import { ActionBuilder, NamespaceBuilder } from '@rango-dev/wallets-core';
4
+ import {
5
+ builders as commonBuilders,
6
+ standardizeAndThrowError,
7
+ } from '@rango-dev/wallets-core/namespaces/common';
8
+ import {
9
+ actions,
10
+ builders,
11
+ hooks,
12
+ } from '@rango-dev/wallets-core/namespaces/solana';
13
+
14
+ import { WALLET_ID } from '../constants.js';
15
+ import { solanaOKX } from '../utils.js';
16
+
17
+ const [changeAccountSubscriber, changeAccountCleanup] =
18
+ hooks.changeAccountSubscriber(solanaOKX);
19
+
20
+ const connect = builders
21
+ .connect()
22
+ .action(actions.connect(solanaOKX))
23
+ .before(changeAccountSubscriber)
24
+ .or(changeAccountCleanup)
25
+ .or(standardizeAndThrowError)
26
+ .build();
27
+
28
+ const disconnect = commonBuilders
29
+ .disconnect<SolanaActions>()
30
+ .after(changeAccountCleanup)
31
+ .build();
32
+
33
+ const canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(
34
+ 'canEagerConnect'
35
+ )
36
+ .action(actions.canEagerConnect(solanaOKX))
37
+ .build();
38
+
39
+ const solana = new NamespaceBuilder<SolanaActions>('Solana', WALLET_ID)
40
+ .action(connect)
41
+ .action(disconnect)
42
+ .action(canEagerConnect)
43
+ .build();
44
+
45
+ export { solana };
@@ -0,0 +1,23 @@
1
+ import { ProviderBuilder } from '@rango-dev/wallets-core';
2
+
3
+ import { metadata, WALLET_ID } from './constants.js';
4
+ import { evm } from './namespaces/evm.js';
5
+ import { solana } from './namespaces/solana.js';
6
+ import { okx as okxInstance } from './utils.js';
7
+
8
+ const buildProvider = () =>
9
+ new ProviderBuilder(WALLET_ID)
10
+ .init(function (context) {
11
+ const [, setState] = context.state();
12
+
13
+ if (okxInstance()) {
14
+ setState('installed', true);
15
+ console.debug('[okx] instance detected.', context);
16
+ }
17
+ })
18
+ .config('metadata', metadata)
19
+ .add('solana', solana)
20
+ .add('evm', evm)
21
+ .build();
22
+
23
+ export { buildProvider };
package/src/signer.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { LegacyNetworkProviderMap } from '@rango-dev/wallets-core/legacy';
1
+ import type { Provider } from './types.js';
2
2
  import type { SignerFactory } from 'rango-types';
3
3
 
4
4
  import {
@@ -8,10 +8,10 @@ import {
8
8
  } from '@rango-dev/wallets-shared';
9
9
  import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';
10
10
 
11
- import { CustomSolanaSigner } from './solana-signer.js';
11
+ import { OKXSolanaSigner } from './signers/solana.js';
12
12
 
13
13
  export default async function getSigners(
14
- provider: LegacyNetworkProviderMap
14
+ provider: Provider
15
15
  ): Promise<SignerFactory> {
16
16
  const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);
17
17
  const solProvider = getNetworkInstance(provider, Networks.SOLANA);
@@ -20,6 +20,6 @@ export default async function getSigners(
20
20
  async () => await import('@rango-dev/signer-evm')
21
21
  );
22
22
  signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));
23
- signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider));
23
+ signers.registerSigner(TxType.SOLANA, new OKXSolanaSigner(solProvider));
24
24
  return signers;
25
25
  }
@@ -1,10 +1,10 @@
1
- import { DefaultSolanaSigner } from '@rango-dev/signer-solana';
1
+ import {
2
+ DefaultSolanaSigner,
3
+ type SolanaExternalProvider,
4
+ } from '@rango-dev/signer-solana';
2
5
  import { SignerError, SignerErrorCode } from 'rango-types';
3
6
 
4
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
- type SolanaExternalProvider = any;
6
-
7
- export class CustomSolanaSigner extends DefaultSolanaSigner {
7
+ export class OKXSolanaSigner extends DefaultSolanaSigner {
8
8
  constructor(provider: SolanaExternalProvider) {
9
9
  super(provider);
10
10
  }
package/src/types.ts ADDED
@@ -0,0 +1,12 @@
1
+ import type { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
2
+ import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';
3
+ import type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';
4
+
5
+ export type ProviderObject = {
6
+ [LegacyNetworks.ETHEREUM]: EvmProviderApi;
7
+ [LegacyNetworks.SOLANA]: SolanaProviderApi;
8
+ };
9
+ export type Provider = Map<
10
+ keyof ProviderObject,
11
+ ProviderObject[keyof ProviderObject]
12
+ >;
package/src/utils.ts ADDED
@@ -0,0 +1,58 @@
1
+ import type { Provider } from './types.js';
2
+ import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';
3
+ import type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';
4
+
5
+ import { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
6
+
7
+ export function okx(): Provider | null {
8
+ const { okxwallet } = window;
9
+ if (!okxwallet) {
10
+ return null;
11
+ }
12
+ const instances: Provider = new Map();
13
+ if (okxwallet) {
14
+ instances.set(LegacyNetworks.ETHEREUM, okxwallet);
15
+ }
16
+ if (okxwallet.solana) {
17
+ instances.set(LegacyNetworks.SOLANA, okxwallet.solana);
18
+ }
19
+
20
+ return instances;
21
+ }
22
+
23
+ export function getInstanceOrThrow(): Provider {
24
+ const instances = okx();
25
+
26
+ if (!instances) {
27
+ throw new Error('OKX Wallet is not injected. Please check your wallet.');
28
+ }
29
+
30
+ return instances;
31
+ }
32
+
33
+ export function evmOKX(): EvmProviderApi {
34
+ const instances = okx();
35
+
36
+ const evmInstance = instances?.get(LegacyNetworks.ETHEREUM);
37
+
38
+ if (!evmInstance) {
39
+ throw new Error(
40
+ 'OKX Wallet not injected or EVM not enabled. Please check your wallet.'
41
+ );
42
+ }
43
+
44
+ return evmInstance as EvmProviderApi;
45
+ }
46
+
47
+ export function solanaOKX(): SolanaProviderApi {
48
+ const instance = okx();
49
+ const solanaInstance = instance?.get(LegacyNetworks.SOLANA);
50
+
51
+ if (!solanaInstance) {
52
+ throw new Error(
53
+ 'OKX Wallet not injected or Solana not enabled. Please check your wallet.'
54
+ );
55
+ }
56
+
57
+ return solanaInstance as SolanaProviderApi;
58
+ }
package/dist/helpers.d.ts DELETED
@@ -1,6 +0,0 @@
1
- import type { ProviderConnectResult } from '@rango-dev/wallets-shared';
2
- import { Networks } from '@rango-dev/wallets-shared';
3
- export declare function okx_instance(): Map<any, any> | null;
4
- export declare function getSolanaAccounts(instance: any): Promise<ProviderConnectResult[]>;
5
- export declare const OKX_WALLET_SUPPORTED_CHAINS: Networks[];
6
- //# sourceMappingURL=helpers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAEvE,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,wBAAgB,YAAY,yBAc3B;AAED,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,GAAG,GACZ,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAelC;AAED,eAAO,MAAM,2BAA2B,YAevC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,OAAO,EAEP,SAAS,EACT,aAAa,EACb,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAKL,QAAQ,EAER,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAEL,YAAY,EAEb,MAAM,cAAc,CAAC;AAKtB,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,eAAO,MAAM,WAAW,qBAAe,CAAC;AACxC,eAAO,MAAM,OAAO,EAAE,OAerB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SAgBvB,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,OAAO,CAAC,aAAa,CAAU,CAAC;AAE5E,eAAO,MAAM,eAAe,EAAE,eAM7B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,UAiBhE,CAAC"}
package/dist/index.js DELETED
@@ -1,2 +0,0 @@
1
- var k=Object.defineProperty;var r=(e,t)=>k(e,"name",{value:t,configurable:!0});import{canEagerlyConnectToEvm as v,canSwitchNetworkToEvm as T,chooseInstance as l,getEvmAccounts as M,Networks as c,switchNetworkForEvm as I,WalletTypes as P}from"@rango-dev/wallets-shared";import{isEvmBlockchain as b}from"rango-types";import{Networks as n}from"@rango-dev/wallets-shared";function w(){let{okxwallet:e}=window;if(!e)return null;let t=new Map;return e&&t.set(n.ETHEREUM,e),e.solana&&t.set(n.SOLANA,e.solana),t}r(w,"okx_instance");async function m(e){let t=await e.get(n.SOLANA),o=[];if(t){let s=(await t.connect()).publicKey.toString();o.push({accounts:s?[s]:[],chainId:n.SOLANA})}return o}r(m,"getSolanaAccounts");var E=[n.ETHEREUM,n.BSC,n.SOLANA,n.POLYGON,n.FANTOM,n.ARBITRUM,n.OPTIMISM,n.CRONOS,n.BOBA,n.GNOSIS,n.MOONBEAM,n.MOONRIVER,n.HARMONY,n.AVAX_CCHAIN];import{dynamicImportWithRefinedError as C,getNetworkInstance as u,Networks as h}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as O,TransactionType as d}from"rango-types";import{DefaultSolanaSigner as R}from"@rango-dev/signer-solana";import{SignerError as A,SignerErrorCode as x}from"rango-types";var i=class extends R{static{r(this,"CustomSolanaSigner")}constructor(t){super(t)}async signMessage(t){try{let{signature:o}=await this.provider.request({method:"signMessage",params:{message:t}});return o}catch(o){throw new A(x.SIGN_TX_ERROR,void 0,o)}}};async function p(e){let t=u(e,h.ETHEREUM),o=u(e,h.SOLANA),a=new O,{DefaultEvmSigner:s}=await C(async()=>await import("@rango-dev/signer-evm"));return a.registerSigner(d.EVM,new s(t)),a.registerSigner(d.SOLANA,new i(o)),a}r(p,"getSigners");var L=P.OKX,Z={type:L,defaultNetwork:c.ETHEREUM},$=w,ee=r(async({instance:e,meta:t})=>{let o=[],a=l(e,t,c.ETHEREUM);if(a){let g=await M(a);o.push(g)}let s=await m(e);return o=[...o,...s],o},"connect"),te=r(({instance:e,updateAccounts:t,meta:o})=>{let a=l(e,o,c.ETHEREUM),s=r(async g=>{let f=o.filter(b).find(N=>N.name===c.ETHEREUM)?.chainId;t(g,f);let[{accounts:S,chainId:y}]=await m(e);t(S,y)},"handleEvmAccountsChanged");return a?.on?.("accountsChanged",s),()=>{a?.off?.("accountsChanged",s)}},"subscribe"),oe=r(async e=>{let t=l(e.instance,e.meta,e.network);return I({...e,instance:t})},"switchNetwork"),ne=T,re=p,ae=r(async({instance:e,meta:t})=>{let o=l(e,t,c.ETHEREUM);return o?v({instance:o,meta:t}):Promise.resolve(!1)},"canEagerConnect"),se=r(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(t=>E.includes(t.name))}),"getWalletInfo");export{ae as canEagerConnect,ne as canSwitchNetworkTo,Z as config,ee as connect,$ as getInstance,re as getSigners,se as getWalletInfo,te as subscribe,oe as switchNetwork};
2
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/index.ts", "../src/helpers.ts", "../src/signer.ts", "../src/solana-signer.ts"],
4
- "sourcesContent": ["import 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 Networks,\n switchNetworkForEvm,\n WalletTypes,\n} from '@rango-dev/wallets-shared';\nimport { isEvmBlockchain } from 'rango-types';\n\nimport {\n getSolanaAccounts,\n okx_instance,\n OKX_WALLET_SUPPORTED_CHAINS,\n} from './helpers.js';\nimport signer from './signer.js';\n\nconst WALLET = WalletTypes.OKX;\n\nexport const config = {\n type: WALLET,\n defaultNetwork: Networks.ETHEREUM,\n};\n\nexport const getInstance = okx_instance;\nexport const connect: Connect = async ({ instance, meta }) => {\n let results: ProviderConnectResult[] = [];\n\n const evm_instance = chooseInstance(instance, meta, Networks.ETHEREUM);\n\n if (evm_instance) {\n const evm = await getEvmAccounts(evm_instance);\n results.push(evm);\n }\n\n const solanaResults = await getSolanaAccounts(instance);\n\n results = [...results, ...solanaResults];\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 [{ accounts, chainId }] = await getSolanaAccounts(instance);\n updateAccounts(accounts, chainId);\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\nexport const getSigners: (provider: any) => Promise<SignerFactory> = 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});\n", "import type { ProviderConnectResult } from '@rango-dev/wallets-shared';\n\nimport { Networks } from '@rango-dev/wallets-shared';\n\nexport function okx_instance() {\n const { okxwallet } = window;\n if (!okxwallet) {\n return null;\n }\n const instances = new Map();\n if (okxwallet) {\n instances.set(Networks.ETHEREUM, okxwallet);\n }\n if (okxwallet.solana) {\n instances.set(Networks.SOLANA, okxwallet.solana);\n }\n\n return instances;\n}\n\nexport async function getSolanaAccounts(\n instance: any\n): Promise<ProviderConnectResult[]> {\n const solanaInstance = await instance.get(Networks.SOLANA);\n const results: ProviderConnectResult[] = [];\n\n if (solanaInstance) {\n const solanaResponse = await solanaInstance.connect();\n const account = solanaResponse.publicKey.toString();\n\n results.push({\n accounts: account ? [account] : [],\n chainId: Networks.SOLANA,\n });\n }\n\n return results;\n}\n\nexport const OKX_WALLET_SUPPORTED_CHAINS = [\n Networks.ETHEREUM,\n Networks.BSC,\n Networks.SOLANA,\n Networks.POLYGON,\n Networks.FANTOM,\n Networks.ARBITRUM,\n Networks.OPTIMISM,\n Networks.CRONOS,\n Networks.BOBA,\n Networks.GNOSIS,\n Networks.MOONBEAM,\n Networks.MOONRIVER,\n Networks.HARMONY,\n Networks.AVAX_CCHAIN,\n];\n", "import type { LegacyNetworkProviderMap } from '@rango-dev/wallets-core/legacy';\nimport type { SignerFactory } from 'rango-types';\n\nimport {\n dynamicImportWithRefinedError,\n getNetworkInstance,\n Networks,\n} from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nimport { CustomSolanaSigner } from './solana-signer.js';\n\nexport default async function getSigners(\n provider: LegacyNetworkProviderMap\n): Promise<SignerFactory> {\n const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);\n const solProvider = getNetworkInstance(provider, Networks.SOLANA);\n const signers = new DefaultSignerFactory();\n const { DefaultEvmSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-evm')\n );\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));\n signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider));\n return signers;\n}\n", "import { DefaultSolanaSigner } from '@rango-dev/signer-solana';\nimport { SignerError, SignerErrorCode } from 'rango-types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype SolanaExternalProvider = any;\n\nexport class CustomSolanaSigner 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"],
5
- "mappings": "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",
6
- "names": ["canEagerlyConnectToEvm", "canSwitchNetworkToEvm", "chooseInstance", "getEvmAccounts", "Networks", "switchNetworkForEvm", "WalletTypes", "isEvmBlockchain", "Networks", "okx_instance", "okxwallet", "instances", "Networks", "__name", "getSolanaAccounts", "instance", "solanaInstance", "results", "account", "OKX_WALLET_SUPPORTED_CHAINS", "dynamicImportWithRefinedError", "getNetworkInstance", "Networks", "DefaultSignerFactory", "TxType", "DefaultSolanaSigner", "SignerError", "SignerErrorCode", "CustomSolanaSigner", "DefaultSolanaSigner", "__name", "provider", "msg", "signature", "error", "SignerError", "SignerErrorCode", "getSigners", "provider", "ethProvider", "getNetworkInstance", "Networks", "solProvider", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "dynamicImportWithRefinedError", "TxType", "CustomSolanaSigner", "__name", "WALLET", "WalletTypes", "config", "Networks", "getInstance", "okx_instance", "connect", "__name", "instance", "meta", "results", "evm_instance", "chooseInstance", "evm", "getEvmAccounts", "solanaResults", "getSolanaAccounts", "subscribe", "updateAccounts", "ethInstance", "handleEvmAccountsChanged", "addresses", "eth_chainId", "isEvmBlockchain", "blockchain", "accounts", "chainId", "switchNetwork", "options", "switchNetworkForEvm", "canSwitchNetworkTo", "canSwitchNetworkToEvm", "getSigners", "canEagerConnect", "canEagerlyConnectToEvm", "getWalletInfo", "allBlockChains", "blockchainMeta", "OKX_WALLET_SUPPORTED_CHAINS"]
7
- }
@@ -1,8 +0,0 @@
1
- import { DefaultSolanaSigner } from '@rango-dev/signer-solana';
2
- type SolanaExternalProvider = any;
3
- export declare class CustomSolanaSigner extends DefaultSolanaSigner {
4
- constructor(provider: SolanaExternalProvider);
5
- signMessage(msg: string): Promise<string>;
6
- }
7
- export {};
8
- //# sourceMappingURL=solana-signer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solana-signer.d.ts","sourceRoot":"","sources":["../src/solana-signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D,KAAK,sBAAsB,GAAG,GAAG,CAAC;AAElC,qBAAa,kBAAmB,SAAQ,mBAAmB;gBAC7C,QAAQ,EAAE,sBAAsB;IAItC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAahD"}
package/src/helpers.ts DELETED
@@ -1,55 +0,0 @@
1
- import type { ProviderConnectResult } from '@rango-dev/wallets-shared';
2
-
3
- import { Networks } from '@rango-dev/wallets-shared';
4
-
5
- export function okx_instance() {
6
- const { okxwallet } = window;
7
- if (!okxwallet) {
8
- return null;
9
- }
10
- const instances = new Map();
11
- if (okxwallet) {
12
- instances.set(Networks.ETHEREUM, okxwallet);
13
- }
14
- if (okxwallet.solana) {
15
- instances.set(Networks.SOLANA, okxwallet.solana);
16
- }
17
-
18
- return instances;
19
- }
20
-
21
- export async function getSolanaAccounts(
22
- instance: any
23
- ): Promise<ProviderConnectResult[]> {
24
- const solanaInstance = await instance.get(Networks.SOLANA);
25
- const results: ProviderConnectResult[] = [];
26
-
27
- if (solanaInstance) {
28
- const solanaResponse = await solanaInstance.connect();
29
- const account = solanaResponse.publicKey.toString();
30
-
31
- results.push({
32
- accounts: account ? [account] : [],
33
- chainId: Networks.SOLANA,
34
- });
35
- }
36
-
37
- return results;
38
- }
39
-
40
- export const OKX_WALLET_SUPPORTED_CHAINS = [
41
- Networks.ETHEREUM,
42
- Networks.BSC,
43
- Networks.SOLANA,
44
- Networks.POLYGON,
45
- Networks.FANTOM,
46
- Networks.ARBITRUM,
47
- Networks.OPTIMISM,
48
- Networks.CRONOS,
49
- Networks.BOBA,
50
- Networks.GNOSIS,
51
- Networks.MOONBEAM,
52
- Networks.MOONRIVER,
53
- Networks.HARMONY,
54
- Networks.AVAX_CCHAIN,
55
- ];