@rango-dev/provider-okx 0.62.1-next.2 → 0.63.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/legacy/index.d.ts +21 -0
- package/dist/legacy/index.d.ts.map +1 -0
- package/dist/mod.d.ts +1 -1
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +1 -1
- package/dist/mod.js.map +4 -4
- package/dist/provider-okx.build.json +1 -1
- package/package.json +9 -9
- package/src/legacy/index.ts +137 -0
- package/src/mod.ts +5 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { LegacyProviderInterface } from '@rango-dev/wallets-core/legacy';
|
|
2
|
+
import type { CanEagerConnect, CanSwitchNetwork, Connect, Subscribe, SwitchNetwork, WalletInfo } from '@rango-dev/wallets-shared';
|
|
3
|
+
import type { BlockchainMeta, SignerFactory } from 'rango-types';
|
|
4
|
+
import { Networks, WalletTypes } from '@rango-dev/wallets-shared';
|
|
5
|
+
import { okx } from '../utils.js';
|
|
6
|
+
export declare const config: {
|
|
7
|
+
type: WalletTypes;
|
|
8
|
+
defaultNetwork: Networks;
|
|
9
|
+
};
|
|
10
|
+
export declare const getInstance: typeof okx;
|
|
11
|
+
export declare const connect: Connect;
|
|
12
|
+
export declare const subscribe: Subscribe;
|
|
13
|
+
export declare const switchNetwork: SwitchNetwork;
|
|
14
|
+
export declare const canSwitchNetworkTo: CanSwitchNetwork;
|
|
15
|
+
type Provider = any;
|
|
16
|
+
export declare const getSigners: (provider: Provider) => Promise<SignerFactory>;
|
|
17
|
+
export declare const canEagerConnect: CanEagerConnect;
|
|
18
|
+
export declare const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo;
|
|
19
|
+
declare const buildLegacyProvider: () => LegacyProviderInterface;
|
|
20
|
+
export { buildLegacyProvider };
|
|
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
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
declare const versions: () => readonly [readonly ["1.0.0", import("@hub3js/core").Provider<Record<"solana", import("@hub3js/solana").SolanaActions> & Record<"evm", import("@hub3js/evm").EvmActions> & Record<"utxo", import("@rango-dev/wallets-core/namespaces/utxo").UtxoActions>>]];
|
|
1
|
+
declare const versions: () => readonly [readonly ["0.0.0", import("@rango-dev/wallets-core/legacy").LegacyProviderInterface], readonly ["1.0.0", import("@hub3js/core").Provider<Record<"solana", import("@hub3js/solana").SolanaActions> & Record<"evm", import("@hub3js/evm").EvmActions> & Record<"utxo", import("@rango-dev/wallets-core/namespaces/utxo").UtxoActions>>]];
|
|
2
2
|
export { versions };
|
|
3
3
|
//# sourceMappingURL=mod.d.ts.map
|
package/dist/mod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAKA,QAAA,MAAM,QAAQ,wVAIF,CAAC;AAEb,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/mod.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var
|
|
1
|
+
var q=Object.defineProperty;var r=(o,e)=>q(o,"name",{value:e,configurable:!0});import{defineVersions as oe}from"@hub3js/core/utils";import{canEagerlyConnectToEvm as no,canSwitchNetworkToEvm as co,chooseInstance as v,getEvmAccounts as ao,getSolanaAccounts as M,Networks as w,switchNetworkForEvm as io,WalletTypes as so}from"@rango-dev/wallets-shared";import{isEvmBlockchain as mo}from"rango-types";import{LegacyNetworks as c}from"@rango-dev/wallets-core/legacy";import{Networks as to}from"@rango-dev/wallets-shared";import{solanaBlockchain as ro}from"rango-types";import{dynamicImportWithRefinedError as oo,getNetworkInstance as x,Networks as P}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as eo,TransactionType as C}from"rango-types";import{DefaultSolanaSigner as Y}from"@rango-dev/signer-solana";import{SignerError as $,SignerErrorCode as J}from"rango-types";var E=class extends Y{static{r(this,"OKXSolanaSigner")}constructor(e){super(e)}async signMessage(e){try{let{signature:t}=await this.provider.request({method:"signMessage",params:{message:e}});return t}catch(t){throw new $(J.SIGN_TX_ERROR,void 0,t)}}};import{Networks as Q}from"@rango-dev/wallets-shared";import{SignerError as Z}from"rango-types";var b=class{static{r(this,"OKXUTXOSigner")}provider;constructor(e){this.provider=e}async signMessage(){throw Z.UnimplementedError("signMessage")}async signAndSendTx(e){let{asset:t,psbt:a}=e;if(!a)throw new Error("No PSBT found to sign. Ensure a valid PSBT is provided.");if(t.blockchain!==Q.BTC)throw new Error(`Signing ${t.blockchain} transaction is not implemented by the signer.`);let n=Buffer.from(a.unsignedPsbtBase64,"base64").toString("hex"),m=a.inputsToSign.flatMap(({address:l,signingIndexes:d})=>d.map(T=>({index:T,address:l})));try{let l=await this.provider.signPsbt(n,{autoFinalized:!0,toSignInputs:m});return{hash:await this.provider.pushPsbt(l)}}catch(l){throw new Error(l?.message||"Error during signing transaction")}}};async function g(o){let e=x(o,P.ETHEREUM),t=x(o,P.SOLANA),a=x(o,P.BTC),n=new eo,{DefaultEvmSigner:m}=await oo(async()=>await import("@rango-dev/signer-evm"));return n.registerSigner(C.EVM,new m(e)),n.registerSigner(C.SOLANA,new E(t)),n.registerSigner(C.TRANSFER,new b(a)),n}r(g,"getSigners");import{LegacyNetworks as u}from"@rango-dev/wallets-core/legacy";function i(){let{okxwallet:o}=window;if(!o)return null;let e=new Map;return o&&e.set(u.ETHEREUM,o),o.solana&&e.set(u.SOLANA,o.solana),o.bitcoin&&e.set(u.BTC,o.bitcoin),e}r(i,"okx");function B(){let o=i();if(!o)throw new Error("OKX Wallet is not injected. Please check your wallet.");return o}r(B,"getInstanceOrThrow");function p(){let e=i()?.get(u.ETHEREUM);if(!e)throw new Error("OKX Wallet not injected or EVM not enabled. Please check your wallet.");return e}r(p,"evmOKX");function f(){let e=i()?.get(u.SOLANA);if(!e)throw new Error("OKX Wallet not injected or Solana not enabled. Please check your wallet.");return e}r(f,"solanaOKX");function h(){let e=i()?.get(u.BTC);if(!e)throw new Error("OKX Wallet not injected or Utxo not enabled. Please check your wallet.");return e}r(h,"bitcoinOKX");async function O(){let e=await h().connect();if(e.error?.message)throw new Error(e.error.message);return e}r(O,"getBitcoinAccounts");var s="okx",k=[c.ETHEREUM,c.BSC,c.POLYGON,c.FANTOM,c.ARBITRUM,c.OPTIMISM,c.CRONOS,c.BOBA,c.GNOSIS,c.MOONBEAM,c.MOONRIVER,c.HARMONY,c.AVAX_CCHAIN],N={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:o=>o.filter(e=>k.includes(e.name))},{label:"Solana",value:"Solana",id:"SOLANA",getSupportedChains:o=>ro(o)},{label:"BTC",value:"UTXO",id:"BTC",getSupportedChains:o=>o.filter(e=>e.name===to.BTC)}]}},{name:"signers",value:{getSigners:async()=>g(B())}}]};var lo=so.OKX,uo={type:lo,defaultNetwork:w.ETHEREUM},po=i,go=r(async({instance:o,meta:e})=>{let t=[],a=v(o,e,w.ETHEREUM);if(a){let m=await ao(a);t.push(m)}let n=await M(o);return t.push(...Array.isArray(n)?n:[n]),t},"connect"),fo=r(({instance:o,updateAccounts:e,meta:t})=>{let a=v(o,t,w.ETHEREUM),n=r(async m=>{let l=t.filter(mo).find(y=>y.name===w.ETHEREUM)?.chainId;e(m,l);let d=await M(o);(Array.isArray(d)?d:[d]).forEach(({chainId:y,accounts:G})=>{e(G,y)})},"handleEvmAccountsChanged");return a?.on?.("accountsChanged",n),()=>{a?.off?.("accountsChanged",n)}},"subscribe"),ho=r(async o=>{let e=v(o.instance,o.meta,o.network);return io({...o,instance:e})},"switchNetwork"),wo=co,Ao=g,Eo=r(async({instance:o,meta:e})=>{let t=v(o,e,w.ETHEREUM);return t?no({instance:t,meta:e}):Promise.resolve(!1)},"canEagerConnect"),bo=r(o=>({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:o.filter(e=>k.includes(e.name))}),"getWalletInfo"),L=r(()=>({config:uo,getInstance:po,connect:go,subscribe:fo,switchNetwork:ho,canSwitchNetworkTo:wo,getSigners:Ao,getWalletInfo:bo,canEagerConnect:Eo}),"buildLegacyProvider");import{ProviderBuilder as Zo}from"@hub3js/core";import{NamespaceBuilder as vo}from"@hub3js/core";import{actions as S,builders as A,utils as So}from"@hub3js/evm";import*as R from"@hub3js/std/builders";import{standardizeAndThrowError as yo}from"@hub3js/std/operators";var[xo,U]=A.changeAccountSubscriber(p).onSwitchAccount(o=>{o.payload.length||o.preventDefault()}).format(async(o,e)=>{let t=await o.request({method:"eth_chainId"});return So.formatAccountsToCAIP(e.filter(Boolean),t)}).build(),Po=A.connect().action(S.connect(p)).before(xo).or(U).or(yo).build(),Co=R.disconnect().before(()=>{p().disconnect()}).after(U).build(),ko=A.canSwitchNetwork().action(S.canSwitchNetwork()).build(),Io=A.canEagerConnect().action(S.canEagerConnect(p)).build(),To=A.getChainId().action(S.getChainId(p)).build(),_=new vo("EVM",s).action(Po).action(Co).action(Io).action(ko).action(To).build();import{ActionBuilder as Bo,NamespaceBuilder as Oo}from"@hub3js/core";import{actions as H,builders as X,utils as No}from"@hub3js/solana";import*as W from"@hub3js/std/builders";import{standardizeAndThrowError as Mo}from"@hub3js/std/operators";var[Lo,j]=X.changeAccountSubscriber(f).onSwitchAccount(o=>{o.payload||o.preventDefault()}).format(async(o,e)=>No.formatAccountsToCAIP(e?[e]:[])).build(),Ro=X.connect().action(H.connect(f)).before(Lo).or(j).or(Mo).build(),Uo=W.disconnect().before(()=>{f().disconnect()}).after(j).build(),_o=new Bo("canEagerConnect").action(H.canEagerConnect(f)).build(),D=new Oo("Solana",s).action(Ro).action(Uo).action(_o).build();import{NamespaceBuilder as Fo}from"@hub3js/core";import*as K from"@hub3js/std/builders";import{standardizeAndThrowError as Vo}from"@hub3js/std/operators";import{CAIP_BITCOIN_CHAIN_ID as zo,utils as Go}from"@rango-dev/wallets-core/namespaces/utxo";import{builders as qo}from"@rango-dev/wallets-core/namespaces/utxo";import{ActionBuilder as Ho}from"@hub3js/core";import{ChangeAccountSubscriberBuilder as Xo}from"@hub3js/std/hooks";import{CAIP_BITCOIN_CHAIN_ID as Wo,utils as jo}from"@rango-dev/wallets-core/namespaces/utxo";var Do=r(o=>new Xo().getInstance(o).onSwitchAccount(e=>{e.payload?.address||e.preventDefault()}).format(async(e,t)=>jo.formatAccountsToCAIP(t?[t.address]:[],Wo)).addEventListener((e,t)=>e.addListener("accountChanged",t)).removeEventListener((e,t)=>e.removeListener("accountChanged",t)),"changeAccountSubscriber");function Ko(o){return new Ho("canEagerConnect").action(async()=>{let e=o();try{return!!(await e.getAccounts()).length}catch{return!1}})}r(Ko,"canEagerConnect");var I={changeAccountSubscriber:Do,canEagerConnect:Ko};var[Yo,F]=I.changeAccountSubscriber(h).build(),$o=I.canEagerConnect(h).build(),Jo=qo.connect().action(async function(){let o=await O();if(!o?.address)throw new Error("Couldn't find any address!");return Go.formatAccountsToCAIP([o.address],zo)}).before(Yo).or(F).or(Vo).build(),Qo=K.disconnect().before(()=>{h().disconnect()}).after(F).build(),V=new Fo("UTXO",s).action(Jo).action(Qo).action($o).build();var z=r(()=>new Zo(s).init(function(o){let[,e]=o.state();i()&&(e("installed",!0),console.debug("[okx] instance detected.",o))}).config("metadata",N).add("solana",D).add("evm",_).add("utxo",V).build(),"buildProvider");var gt=r(()=>oe().version("0.0.0",L()).version("1.0.0",z()).build(),"versions");export{gt 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
|
-
"sources": ["../src/mod.ts", "../src/
|
|
4
|
-
"sourcesContent": ["import { defineVersions } from '@hub3js/core/utils';\n\nimport { buildProvider } from './provider.js';\n\nconst versions = () =>\n defineVersions().version('1.0.0', buildProvider()).build();\n\nexport { versions };\n", "import { ProviderBuilder } from '@hub3js/core';\n\nimport { metadata, WALLET_ID } from './constants.js';\nimport { evm } from './namespaces/evm.js';\nimport { solana } from './namespaces/solana.js';\nimport { utxo } from './namespaces/utxo.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 .add('utxo', utxo)\n\n .build();\n\nexport { buildProvider };\n", "import type { ProviderMetadata } from '@hub3js/core';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\nimport { Networks } from '@rango-dev/wallets-shared';\nimport {\n type BlockchainMeta,\n solanaBlockchain,\n type TransferBlockchainMeta,\n} 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 label: 'BTC',\n value: 'UTXO',\n id: 'BTC',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is TransferBlockchainMeta =>\n chain.name === Networks.BTC\n ),\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';\nimport { OKXUTXOSigner } from './signers/utxo.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 utxoProvider = getNetworkInstance(provider, Networks.BTC);\n\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 signers.registerSigner(TxType.TRANSFER, new OKXUTXOSigner(utxoProvider));\n\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 { ProviderAPI } from '@rango-dev/wallets-core/namespaces/utxo';\nimport type { GenericSigner, Transfer } from 'rango-types';\n\nimport { Networks } from '@rango-dev/wallets-shared';\nimport { SignerError } from 'rango-types';\n\nexport class OKXUTXOSigner implements GenericSigner<Transfer> {\n private provider: ProviderAPI;\n constructor(provider: ProviderAPI) {\n this.provider = provider;\n }\n\n async signMessage(): Promise<string> {\n throw SignerError.UnimplementedError('signMessage');\n }\n\n async signAndSendTx(tx: Transfer): Promise<{ hash: string }> {\n const { asset, psbt } = tx;\n if (!psbt) {\n throw new Error(\n 'No PSBT found to sign. Ensure a valid PSBT is provided.'\n );\n }\n\n if (asset.blockchain !== Networks.BTC) {\n throw new Error(\n `Signing ${asset.blockchain} transaction is not implemented by the signer.`\n );\n }\n // 1. Decode Base64 to hex\n const psbtHex = Buffer.from(psbt.unsignedPsbtBase64, 'base64').toString(\n 'hex'\n );\n\n // 2. Build UniSat inputs\n const toSignInputs = psbt.inputsToSign.flatMap(\n ({ address, signingIndexes }) =>\n signingIndexes.map((index) => ({ index, address }))\n );\n\n try {\n // 3. Sign (& auto-finalize)\n const signedPsbtHex = await this.provider.signPsbt(psbtHex, {\n autoFinalized: true,\n toSignInputs,\n });\n\n // 4. Push signed psbt\n const transactionHash = await this.provider.pushPsbt(signedPsbtHex);\n\n return { hash: transactionHash };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n throw new Error(error?.message || 'Error during signing transaction');\n }\n }\n}\n", "import type { OkxBtcAddress, Provider } from './types.js';\nimport type { ProviderAPI as EvmProviderApi } from '@hub3js/evm';\nimport type { ProviderAPI as SolanaProviderApi } from '@hub3js/solana';\nimport type { ProviderAPI as UtxoProviderApi } from '@rango-dev/wallets-core/namespaces/utxo';\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 if (okxwallet.bitcoin) {\n instances.set(LegacyNetworks.BTC, okxwallet.bitcoin);\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;\n}\nexport function bitcoinOKX(): UtxoProviderApi {\n const instance = okx();\n const bitcoinInstance = instance?.get(LegacyNetworks.BTC);\n\n if (!bitcoinInstance) {\n throw new Error(\n 'OKX Wallet not injected or Utxo not enabled. Please check your wallet.'\n );\n }\n\n return bitcoinInstance;\n}\nexport async function getBitcoinAccounts(): Promise<OkxBtcAddress> {\n const instance = bitcoinOKX();\n const requestResult = await instance.connect();\n\n if (requestResult.error?.message) {\n throw new Error(requestResult.error.message);\n }\n\n return requestResult;\n}\n", "import type { EvmActions } from '@hub3js/evm';\n\nimport { NamespaceBuilder } from '@hub3js/core';\nimport { actions, builders, utils } from '@hub3js/evm';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport { standardizeAndThrowError } from '@hub3js/std/operators';\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 .before(() => {\n evmOKX().disconnect();\n })\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 '@hub3js/solana';\n\nimport { ActionBuilder, NamespaceBuilder } from '@hub3js/core';\nimport { actions, builders, utils } from '@hub3js/solana';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport { standardizeAndThrowError } from '@hub3js/std/operators';\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 .before(() => {\n solanaOKX().disconnect();\n })\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", "import { NamespaceBuilder } from '@hub3js/core';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport { standardizeAndThrowError } from '@hub3js/std/operators';\nimport {\n CAIP_BITCOIN_CHAIN_ID,\n utils,\n type UtxoActions,\n} from '@rango-dev/wallets-core/namespaces/utxo';\nimport { builders } from '@rango-dev/wallets-core/namespaces/utxo';\n\nimport { utxoBuilders } from '../builders/utxo.js';\nimport { WALLET_ID } from '../constants.js';\nimport { bitcoinOKX, getBitcoinAccounts } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] = utxoBuilders\n .changeAccountSubscriber(bitcoinOKX)\n .build();\n\nconst canEagerConnect = utxoBuilders.canEagerConnect(bitcoinOKX).build();\n\nconst connect = builders\n .connect()\n .action(async function () {\n const accountsResult = await getBitcoinAccounts();\n\n if (!accountsResult?.address) {\n throw new Error(\"Couldn't find any address!\");\n }\n return utils.formatAccountsToCAIP(\n [accountsResult.address],\n CAIP_BITCOIN_CHAIN_ID\n );\n })\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<UtxoActions>()\n .before(() => {\n bitcoinOKX().disconnect();\n })\n .after(changeAccountCleanup)\n .build();\n\nconst utxo = new NamespaceBuilder<UtxoActions>('UTXO', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { utxo };\n", "import type { OkxBtcAddress } from '../types.js';\n\nimport { ActionBuilder } from '@hub3js/core';\nimport { ChangeAccountSubscriberBuilder } from '@hub3js/std/hooks';\nimport {\n CAIP_BITCOIN_CHAIN_ID,\n type ProviderAPI,\n utils,\n type UtxoActions,\n} from '@rango-dev/wallets-core/namespaces/utxo';\n\nexport const changeAccountSubscriber = (getInstance: () => ProviderAPI) =>\n new ChangeAccountSubscriberBuilder<OkxBtcAddress, ProviderAPI, UtxoActions>()\n .getInstance(getInstance)\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?.address) {\n event.preventDefault();\n }\n })\n\n .format(async (_, event) => {\n return utils.formatAccountsToCAIP(\n event ? [event.address] : [],\n CAIP_BITCOIN_CHAIN_ID\n );\n })\n .addEventListener((instance, callback) => {\n return instance.addListener('accountChanged', callback);\n })\n .removeEventListener((instance, callback) => {\n return instance.removeListener('accountChanged', callback);\n });\n\nfunction canEagerConnect(getInstance: () => ProviderAPI) {\n return new ActionBuilder<UtxoActions, 'canEagerConnect'>(\n 'canEagerConnect'\n ).action(async () => {\n const instance = getInstance();\n try {\n const accounts = await instance.getAccounts();\n return !!accounts.length;\n } catch {\n return false;\n }\n });\n}\n\nexport const utxoBuilders = { changeAccountSubscriber, canEagerConnect };\n"],
|
|
5
|
-
"mappings": "+EAAA,OAAS,kBAAAA,OAAsB,
|
|
6
|
-
"names": ["defineVersions", "
|
|
3
|
+
"sources": ["../src/mod.ts", "../src/legacy/index.ts", "../src/constants.ts", "../src/signer.ts", "../src/signers/solana.ts", "../src/signers/utxo.ts", "../src/utils.ts", "../src/provider.ts", "../src/namespaces/evm.ts", "../src/namespaces/solana.ts", "../src/namespaces/utxo.ts", "../src/builders/utxo.ts"],
|
|
4
|
+
"sourcesContent": ["import { defineVersions } from '@hub3js/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 '@hub3js/core';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\nimport { Networks } from '@rango-dev/wallets-shared';\nimport {\n type BlockchainMeta,\n solanaBlockchain,\n type TransferBlockchainMeta,\n} 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 label: 'BTC',\n value: 'UTXO',\n id: 'BTC',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is TransferBlockchainMeta =>\n chain.name === Networks.BTC\n ),\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';\nimport { OKXUTXOSigner } from './signers/utxo.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 utxoProvider = getNetworkInstance(provider, Networks.BTC);\n\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 signers.registerSigner(TxType.TRANSFER, new OKXUTXOSigner(utxoProvider));\n\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 { ProviderAPI } from '@rango-dev/wallets-core/namespaces/utxo';\nimport type { GenericSigner, Transfer } from 'rango-types';\n\nimport { Networks } from '@rango-dev/wallets-shared';\nimport { SignerError } from 'rango-types';\n\nexport class OKXUTXOSigner implements GenericSigner<Transfer> {\n private provider: ProviderAPI;\n constructor(provider: ProviderAPI) {\n this.provider = provider;\n }\n\n async signMessage(): Promise<string> {\n throw SignerError.UnimplementedError('signMessage');\n }\n\n async signAndSendTx(tx: Transfer): Promise<{ hash: string }> {\n const { asset, psbt } = tx;\n if (!psbt) {\n throw new Error(\n 'No PSBT found to sign. Ensure a valid PSBT is provided.'\n );\n }\n\n if (asset.blockchain !== Networks.BTC) {\n throw new Error(\n `Signing ${asset.blockchain} transaction is not implemented by the signer.`\n );\n }\n // 1. Decode Base64 to hex\n const psbtHex = Buffer.from(psbt.unsignedPsbtBase64, 'base64').toString(\n 'hex'\n );\n\n // 2. Build UniSat inputs\n const toSignInputs = psbt.inputsToSign.flatMap(\n ({ address, signingIndexes }) =>\n signingIndexes.map((index) => ({ index, address }))\n );\n\n try {\n // 3. Sign (& auto-finalize)\n const signedPsbtHex = await this.provider.signPsbt(psbtHex, {\n autoFinalized: true,\n toSignInputs,\n });\n\n // 4. Push signed psbt\n const transactionHash = await this.provider.pushPsbt(signedPsbtHex);\n\n return { hash: transactionHash };\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n throw new Error(error?.message || 'Error during signing transaction');\n }\n }\n}\n", "import type { OkxBtcAddress, Provider } from './types.js';\nimport type { ProviderAPI as EvmProviderApi } from '@hub3js/evm';\nimport type { ProviderAPI as SolanaProviderApi } from '@hub3js/solana';\nimport type { ProviderAPI as UtxoProviderApi } from '@rango-dev/wallets-core/namespaces/utxo';\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 if (okxwallet.bitcoin) {\n instances.set(LegacyNetworks.BTC, okxwallet.bitcoin);\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;\n}\nexport function bitcoinOKX(): UtxoProviderApi {\n const instance = okx();\n const bitcoinInstance = instance?.get(LegacyNetworks.BTC);\n\n if (!bitcoinInstance) {\n throw new Error(\n 'OKX Wallet not injected or Utxo not enabled. Please check your wallet.'\n );\n }\n\n return bitcoinInstance;\n}\nexport async function getBitcoinAccounts(): Promise<OkxBtcAddress> {\n const instance = bitcoinOKX();\n const requestResult = await instance.connect();\n\n if (requestResult.error?.message) {\n throw new Error(requestResult.error.message);\n }\n\n return requestResult;\n}\n", "import { ProviderBuilder } from '@hub3js/core';\n\nimport { metadata, WALLET_ID } from './constants.js';\nimport { evm } from './namespaces/evm.js';\nimport { solana } from './namespaces/solana.js';\nimport { utxo } from './namespaces/utxo.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 .add('utxo', utxo)\n\n .build();\n\nexport { buildProvider };\n", "import type { EvmActions } from '@hub3js/evm';\n\nimport { NamespaceBuilder } from '@hub3js/core';\nimport { actions, builders, utils } from '@hub3js/evm';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport { standardizeAndThrowError } from '@hub3js/std/operators';\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 .before(() => {\n evmOKX().disconnect();\n })\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 '@hub3js/solana';\n\nimport { ActionBuilder, NamespaceBuilder } from '@hub3js/core';\nimport { actions, builders, utils } from '@hub3js/solana';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport { standardizeAndThrowError } from '@hub3js/std/operators';\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 .before(() => {\n solanaOKX().disconnect();\n })\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", "import { NamespaceBuilder } from '@hub3js/core';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport { standardizeAndThrowError } from '@hub3js/std/operators';\nimport {\n CAIP_BITCOIN_CHAIN_ID,\n utils,\n type UtxoActions,\n} from '@rango-dev/wallets-core/namespaces/utxo';\nimport { builders } from '@rango-dev/wallets-core/namespaces/utxo';\n\nimport { utxoBuilders } from '../builders/utxo.js';\nimport { WALLET_ID } from '../constants.js';\nimport { bitcoinOKX, getBitcoinAccounts } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] = utxoBuilders\n .changeAccountSubscriber(bitcoinOKX)\n .build();\n\nconst canEagerConnect = utxoBuilders.canEagerConnect(bitcoinOKX).build();\n\nconst connect = builders\n .connect()\n .action(async function () {\n const accountsResult = await getBitcoinAccounts();\n\n if (!accountsResult?.address) {\n throw new Error(\"Couldn't find any address!\");\n }\n return utils.formatAccountsToCAIP(\n [accountsResult.address],\n CAIP_BITCOIN_CHAIN_ID\n );\n })\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<UtxoActions>()\n .before(() => {\n bitcoinOKX().disconnect();\n })\n .after(changeAccountCleanup)\n .build();\n\nconst utxo = new NamespaceBuilder<UtxoActions>('UTXO', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { utxo };\n", "import type { OkxBtcAddress } from '../types.js';\n\nimport { ActionBuilder } from '@hub3js/core';\nimport { ChangeAccountSubscriberBuilder } from '@hub3js/std/hooks';\nimport {\n CAIP_BITCOIN_CHAIN_ID,\n type ProviderAPI,\n utils,\n type UtxoActions,\n} from '@rango-dev/wallets-core/namespaces/utxo';\n\nexport const changeAccountSubscriber = (getInstance: () => ProviderAPI) =>\n new ChangeAccountSubscriberBuilder<OkxBtcAddress, ProviderAPI, UtxoActions>()\n .getInstance(getInstance)\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?.address) {\n event.preventDefault();\n }\n })\n\n .format(async (_, event) => {\n return utils.formatAccountsToCAIP(\n event ? [event.address] : [],\n CAIP_BITCOIN_CHAIN_ID\n );\n })\n .addEventListener((instance, callback) => {\n return instance.addListener('accountChanged', callback);\n })\n .removeEventListener((instance, callback) => {\n return instance.removeListener('accountChanged', callback);\n });\n\nfunction canEagerConnect(getInstance: () => ProviderAPI) {\n return new ActionBuilder<UtxoActions, 'canEagerConnect'>(\n 'canEagerConnect'\n ).action(async () => {\n const instance = getInstance();\n try {\n const accounts = await instance.getAccounts();\n return !!accounts.length;\n } catch {\n return false;\n }\n });\n}\n\nexport const utxoBuilders = { changeAccountSubscriber, canEagerConnect };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["defineVersions", "canEagerlyConnectToEvm", "canSwitchNetworkToEvm", "chooseInstance", "getEvmAccounts", "getSolanaAccounts", "Networks", "switchNetworkForEvm", "WalletTypes", "isEvmBlockchain", "LegacyNetworks", "Networks", "solanaBlockchain", "dynamicImportWithRefinedError", "getNetworkInstance", "Networks", "DefaultSignerFactory", "TxType", "DefaultSolanaSigner", "SignerError", "SignerErrorCode", "OKXSolanaSigner", "DefaultSolanaSigner", "__name", "provider", "msg", "signature", "error", "SignerError", "SignerErrorCode", "Networks", "SignerError", "OKXUTXOSigner", "__name", "provider", "SignerError", "tx", "asset", "psbt", "Networks", "psbtHex", "toSignInputs", "address", "signingIndexes", "index", "signedPsbtHex", "error", "getSigners", "provider", "ethProvider", "getNetworkInstance", "Networks", "solProvider", "utxoProvider", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "dynamicImportWithRefinedError", "TxType", "OKXSolanaSigner", "OKXUTXOSigner", "__name", "LegacyNetworks", "okx", "okxwallet", "instances", "LegacyNetworks", "__name", "getInstanceOrThrow", "evmOKX", "evmInstance", "solanaOKX", "solanaInstance", "bitcoinOKX", "bitcoinInstance", "getBitcoinAccounts", "requestResult", "WALLET_ID", "OKX_WALLET_SUPPORTED_CHAINS", "LegacyNetworks", "metadata", "allBlockchains", "blockchainMeta", "solanaBlockchain", "chain", "Networks", "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", "actions", "builders", "utils", "commonBuilders", "standardizeAndThrowError", "changeAccountSubscriber", "changeAccountCleanup", "builders", "evmOKX", "event", "instance", "chainId", "utils", "connect", "actions", "standardizeAndThrowError", "disconnect", "canSwitchNetwork", "canEagerConnect", "getChainId", "evm", "NamespaceBuilder", "WALLET_ID", "ActionBuilder", "NamespaceBuilder", "actions", "builders", "utils", "commonBuilders", "standardizeAndThrowError", "changeAccountSubscriber", "changeAccountCleanup", "builders", "solanaOKX", "event", "_", "utils", "connect", "actions", "standardizeAndThrowError", "disconnect", "canEagerConnect", "ActionBuilder", "solana", "NamespaceBuilder", "WALLET_ID", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "CAIP_BITCOIN_CHAIN_ID", "utils", "builders", "ActionBuilder", "ChangeAccountSubscriberBuilder", "CAIP_BITCOIN_CHAIN_ID", "utils", "changeAccountSubscriber", "__name", "getInstance", "ChangeAccountSubscriberBuilder", "event", "_", "utils", "CAIP_BITCOIN_CHAIN_ID", "instance", "callback", "canEagerConnect", "ActionBuilder", "utxoBuilders", "changeAccountSubscriber", "changeAccountCleanup", "utxoBuilders", "bitcoinOKX", "canEagerConnect", "connect", "builders", "accountsResult", "getBitcoinAccounts", "utils", "CAIP_BITCOIN_CHAIN_ID", "standardizeAndThrowError", "disconnect", "utxo", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "okx", "metadata", "solana", "evm", "utxo", "versions", "__name", "defineVersions", "buildLegacyProvider", "buildProvider"]
|
|
7
7
|
}
|
|
@@ -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/signers/utxo.ts":{"bytes":1717,"imports":[{"path":"@rango-dev/wallets-shared","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":1111,"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":"src/signers/utxo.ts","kind":"import-statement","original":"./signers/utxo.js"},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils.ts":{"bytes":2187,"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":2474,"imports":[{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","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/namespaces/evm.ts":{"bytes":1813,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/evm","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","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":1566,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/solana","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","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/builders/utxo.ts":{"bytes":1561,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/std/hooks","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/namespaces/utxo.ts":{"bytes":1472,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"src/builders/utxo.ts","kind":"import-statement","original":"../builders/utxo.js"},{"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":713,"imports":[{"path":"@hub3js/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/namespaces/utxo.ts","kind":"import-statement","original":"./namespaces/utxo.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/mod.ts":{"bytes":
|
|
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/signers/utxo.ts":{"bytes":1717,"imports":[{"path":"@rango-dev/wallets-shared","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":1111,"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":"src/signers/utxo.ts","kind":"import-statement","original":"./signers/utxo.js"},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils.ts":{"bytes":2187,"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":2474,"imports":[{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","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":1813,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/evm","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","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":1566,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/solana","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","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/builders/utxo.ts":{"bytes":1561,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/std/hooks","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/namespaces/utxo.ts":{"bytes":1472,"imports":[{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"src/builders/utxo.ts","kind":"import-statement","original":"../builders/utxo.js"},{"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":713,"imports":[{"path":"@hub3js/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/namespaces/utxo.ts","kind":"import-statement","original":"./namespaces/utxo.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/mod.ts":{"bytes":321,"imports":[{"path":"@hub3js/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":32858},"dist/mod.js":{"imports":[{"path":"@hub3js/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/legacy","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-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/wallets-shared","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":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/evm","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","kind":"import-statement","external":true},{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/solana","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","kind":"import-statement","external":true},{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/std/builders","kind":"import-statement","external":true},{"path":"@hub3js/std/operators","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"@hub3js/core","kind":"import-statement","external":true},{"path":"@hub3js/std/hooks","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true}],"exports":["versions"],"entryPoint":"src/mod.ts","inputs":{"src/mod.ts":{"bytesInOutput":133},"src/legacy/index.ts":{"bytesInOutput":1751},"src/constants.ts":{"bytesInOutput":1091},"src/signer.ts":{"bytesInOutput":478},"src/signers/solana.ts":{"bytesInOutput":377},"src/signers/utxo.ts":{"bytesInOutput":831},"src/utils.ts":{"bytesInOutput":993},"src/provider.ts":{"bytesInOutput":265},"src/namespaces/evm.ts":{"bytesInOutput":830},"src/namespaces/solana.ts":{"bytesInOutput":656},"src/namespaces/utxo.ts":{"bytesInOutput":718},"src/builders/utxo.ts":{"bytesInOutput":734}},"bytes":8992}}}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rango-dev/provider-okx",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.63.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"source": "./src/mod.ts",
|
|
@@ -21,17 +21,17 @@
|
|
|
21
21
|
"lint": "eslint \"**/*.{ts,tsx}\""
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@hub3js/core": "^0.
|
|
25
|
-
"@hub3js/evm": "^0.
|
|
26
|
-
"@hub3js/solana": "^0.
|
|
27
|
-
"@hub3js/std": "^0.
|
|
28
|
-
"@rango-dev/signer-evm": "^0.
|
|
24
|
+
"@hub3js/core": "^0.60.1",
|
|
25
|
+
"@hub3js/evm": "^0.2.1",
|
|
26
|
+
"@hub3js/solana": "^0.2.1",
|
|
27
|
+
"@hub3js/std": "^0.1.1",
|
|
28
|
+
"@rango-dev/signer-evm": "^0.44.0",
|
|
29
29
|
"@rango-dev/signer-solana": "^0.48.0",
|
|
30
|
-
"@rango-dev/wallets-core": "^0.60.
|
|
31
|
-
"@rango-dev/wallets-shared": "^0.61.
|
|
30
|
+
"@rango-dev/wallets-core": "^0.60.0",
|
|
31
|
+
"@rango-dev/wallets-shared": "^0.61.0",
|
|
32
32
|
"rango-types": "^0.5.0"
|
|
33
33
|
},
|
|
34
34
|
"publishConfig": {
|
|
35
35
|
"access": "public"
|
|
36
36
|
}
|
|
37
|
-
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import type { LegacyProviderInterface } from '@rango-dev/wallets-core/legacy';
|
|
2
|
+
import type {
|
|
3
|
+
CanEagerConnect,
|
|
4
|
+
CanSwitchNetwork,
|
|
5
|
+
Connect,
|
|
6
|
+
ProviderConnectResult,
|
|
7
|
+
Subscribe,
|
|
8
|
+
SwitchNetwork,
|
|
9
|
+
WalletInfo,
|
|
10
|
+
} from '@rango-dev/wallets-shared';
|
|
11
|
+
import type { BlockchainMeta, SignerFactory } from 'rango-types';
|
|
12
|
+
|
|
13
|
+
import {
|
|
14
|
+
canEagerlyConnectToEvm,
|
|
15
|
+
canSwitchNetworkToEvm,
|
|
16
|
+
chooseInstance,
|
|
17
|
+
getEvmAccounts,
|
|
18
|
+
getSolanaAccounts,
|
|
19
|
+
Networks,
|
|
20
|
+
switchNetworkForEvm,
|
|
21
|
+
WalletTypes,
|
|
22
|
+
} from '@rango-dev/wallets-shared';
|
|
23
|
+
import { isEvmBlockchain } from 'rango-types';
|
|
24
|
+
|
|
25
|
+
import { OKX_WALLET_SUPPORTED_CHAINS } from '../constants.js';
|
|
26
|
+
import signer from '../signer.js';
|
|
27
|
+
import { okx } from '../utils.js';
|
|
28
|
+
|
|
29
|
+
const WALLET = WalletTypes.OKX;
|
|
30
|
+
|
|
31
|
+
export const config = {
|
|
32
|
+
type: WALLET,
|
|
33
|
+
defaultNetwork: Networks.ETHEREUM,
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
export const getInstance = okx;
|
|
37
|
+
export const connect: Connect = async ({ instance, meta }) => {
|
|
38
|
+
const results: ProviderConnectResult[] = [];
|
|
39
|
+
|
|
40
|
+
const evmInstance = chooseInstance(instance, meta, Networks.ETHEREUM);
|
|
41
|
+
|
|
42
|
+
if (evmInstance) {
|
|
43
|
+
const evmResults = await getEvmAccounts(evmInstance);
|
|
44
|
+
results.push(evmResults);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const solanaResults = await getSolanaAccounts(instance);
|
|
48
|
+
|
|
49
|
+
results.push(
|
|
50
|
+
...(Array.isArray(solanaResults) ? solanaResults : [solanaResults])
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
return results;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export const subscribe: Subscribe = ({ instance, updateAccounts, meta }) => {
|
|
57
|
+
const ethInstance = chooseInstance(instance, meta, Networks.ETHEREUM);
|
|
58
|
+
const handleEvmAccountsChanged = async (addresses: string[]) => {
|
|
59
|
+
const eth_chainId = meta
|
|
60
|
+
.filter(isEvmBlockchain)
|
|
61
|
+
.find((blockchain) => blockchain.name === Networks.ETHEREUM)?.chainId;
|
|
62
|
+
|
|
63
|
+
updateAccounts(addresses, eth_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
|
+
});
|
|
72
|
+
};
|
|
73
|
+
ethInstance?.on?.('accountsChanged', handleEvmAccountsChanged);
|
|
74
|
+
|
|
75
|
+
return () => {
|
|
76
|
+
ethInstance?.off?.('accountsChanged', handleEvmAccountsChanged);
|
|
77
|
+
};
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
export const switchNetwork: SwitchNetwork = async (options) => {
|
|
81
|
+
const instance = chooseInstance(
|
|
82
|
+
options.instance,
|
|
83
|
+
options.meta,
|
|
84
|
+
options.network
|
|
85
|
+
);
|
|
86
|
+
return switchNetworkForEvm({
|
|
87
|
+
...options,
|
|
88
|
+
instance,
|
|
89
|
+
});
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export const canSwitchNetworkTo: CanSwitchNetwork = canSwitchNetworkToEvm;
|
|
93
|
+
|
|
94
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
95
|
+
type Provider = any;
|
|
96
|
+
export const getSigners: (provider: Provider) => Promise<SignerFactory> =
|
|
97
|
+
signer;
|
|
98
|
+
|
|
99
|
+
export const canEagerConnect: CanEagerConnect = async ({ instance, meta }) => {
|
|
100
|
+
const evm_instance = chooseInstance(instance, meta, Networks.ETHEREUM);
|
|
101
|
+
if (evm_instance) {
|
|
102
|
+
return canEagerlyConnectToEvm({ instance: evm_instance, meta });
|
|
103
|
+
}
|
|
104
|
+
return Promise.resolve(false);
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
export const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (
|
|
108
|
+
allBlockChains
|
|
109
|
+
) => ({
|
|
110
|
+
name: 'OKX',
|
|
111
|
+
img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/okx/icon.svg',
|
|
112
|
+
installLink: {
|
|
113
|
+
CHROME:
|
|
114
|
+
'https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge',
|
|
115
|
+
BRAVE:
|
|
116
|
+
'https://chrome.google.com/webstore/detail/okx-wallet/mcohilncbfahbmgdjkbpemcciiolgcge',
|
|
117
|
+
FIREFOX: 'https://addons.mozilla.org/en-US/firefox/addon/okexwallet',
|
|
118
|
+
DEFAULT: 'https://www.okx.com/web3',
|
|
119
|
+
},
|
|
120
|
+
color: 'white',
|
|
121
|
+
supportedChains: allBlockChains.filter((blockchainMeta) =>
|
|
122
|
+
OKX_WALLET_SUPPORTED_CHAINS.includes(blockchainMeta.name as Networks)
|
|
123
|
+
),
|
|
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
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import { defineVersions } from '@hub3js/core/utils';
|
|
2
2
|
|
|
3
|
+
import { buildLegacyProvider } from './legacy/index.js';
|
|
3
4
|
import { buildProvider } from './provider.js';
|
|
4
5
|
|
|
5
6
|
const versions = () =>
|
|
6
|
-
defineVersions()
|
|
7
|
+
defineVersions()
|
|
8
|
+
.version('0.0.0', buildLegacyProvider())
|
|
9
|
+
.version('1.0.0', buildProvider())
|
|
10
|
+
.build();
|
|
7
11
|
|
|
8
12
|
export { versions };
|