@rango-dev/provider-bitget 0.51.2-next.3 → 0.51.2-next.4

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.
@@ -0,0 +1,4 @@
1
+ export declare const tronActions: {
2
+ canEagerConnectAction: () => Promise<boolean>;
3
+ };
4
+ //# sourceMappingURL=tron.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../src/actions/tron.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,WAAW;;CAA4B,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { TronChangeAccountEvent } from '../types.js';
2
+ import { ChangeAccountSubscriberBuilder } from '@rango-dev/wallets-core/namespaces/common';
3
+ import { type ProviderAPI, type TronActions } from '@rango-dev/wallets-core/namespaces/tron';
4
+ export declare const changeAccountSubscriber: (getInstance: () => ProviderAPI) => ChangeAccountSubscriberBuilder<MessageEvent<TronChangeAccountEvent>, ProviderAPI, TronActions>;
5
+ export declare const tronBuilders: {
6
+ changeAccountSubscriber: (getInstance: () => ProviderAPI) => ChangeAccountSubscriberBuilder<MessageEvent<TronChangeAccountEvent>, ProviderAPI, TronActions>;
7
+ };
8
+ //# sourceMappingURL=tron.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../src/builders/tron.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAC3F,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,WAAW,EAEjB,MAAM,yCAAyC,CAAC;AAEjD,eAAO,MAAM,uBAAuB,gBAAiB,MAAM,WAAW,mGAuBhE,CAAC;AAEP,eAAO,MAAM,YAAY;2CAzB4B,MAAM,WAAW;CAyBf,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { type ProviderMetadata } from '@rango-dev/wallets-core';
2
+ export declare const WALLET_ID = "bitget";
3
+ export declare const TronOKRequestCode = 200;
4
+ export declare const metadata: ProviderMetadata;
5
+ //# 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;AAUhE,eAAO,MAAM,SAAS,WAAW,CAAC;AAClC,eAAO,MAAM,iBAAiB,MAAM,CAAC;AACrC,eAAO,MAAM,QAAQ,EAAE,gBAsCtB,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":"AAIA,QAAA,MAAM,QAAQ,kEAC8C,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,CAAC"}
package/dist/mod.js ADDED
@@ -0,0 +1,2 @@
1
+ var L=Object.defineProperty;var o=(e,t)=>L(e,"name",{value:t,configurable:!0});import{defineVersions as nt}from"@rango-dev/wallets-core/utils";import{ProviderBuilder as ot}from"@rango-dev/wallets-core";import"@rango-dev/wallets-core";import{evmBlockchains as M,tronBlockchain as N}from"rango-types";import{LegacyNetworks as u}from"@rango-dev/wallets-core/legacy";import{dynamicImportWithRefinedError as g,getNetworkInstance as f}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as x,TransactionType as w}from"rango-types";async function p(e){let t=f(e,u.ETHEREUM),n=f(e,u.TRON),l=new x,{DefaultEvmSigner:S}=await g(async()=>await import("@rango-dev/signer-evm")),{DefaultTronSigner:C}=await g(async()=>await import("@rango-dev/signer-tron"));return l.registerSigner(w.EVM,new S(t)),l.registerSigner(w.TRON,new C(n)),l}o(p,"getSigners");import{LegacyNetworks as s}from"@rango-dev/wallets-core/legacy";function c(){let e=new Map,{bitkeep:t}=window;return!t||(t.ethereum&&e.set(s.ETHEREUM,t.ethereum),t.tronLink&&e.set(s.TRON,t.tronLink),e.size===0)?null:e}o(c,"bitget");function h(){let e=c();if(!e)throw new Error("Bitget is not injected. Please check your wallet.");return e}o(h,"getInstanceOrThrow");function r(){let t=c()?.get(s.ETHEREUM);if(!t)throw new Error("Bitget not injected or EVM not enabled. Please check your wallet.");return t}o(r,"evmBitget");function a(){let t=c()?.get(s.TRON);if(!t)throw new Error("Bitget not injected or Tron not enabled. Please check your wallet.");return t}o(a,"tronBitget");var i="bitget",b=200,v={name:"Bitget",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/bitget/icon.svg",extensions:{chrome:"https://chrome.google.com/webstore/detail/bitkeep-crypto-nft-wallet/jiidiaalihmmhddjgbnbgdfflelocpak",brave:"https://chrome.google.com/webstore/detail/bitkeep-crypto-nft-wallet/jiidiaalihmmhddjgbnbgdfflelocpak",homepage:"https://web3.bitget.com/en/wallet-download?type=1"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"EVM",value:"EVM",id:"ETH",getSupportedChains:e=>M(e)},{label:"Tron",value:"Tron",id:"TRON",getSupportedChains:e=>N(e)}]}},{name:"signers",value:{getSigners:async()=>p(h())}}]};import{NamespaceBuilder as R}from"@rango-dev/wallets-core";import{builders as j,standardizeAndThrowError as O}from"@rango-dev/wallets-core/namespaces/common";import{actions as m,builders as d,hooks as _}from"@rango-dev/wallets-core/namespaces/evm";var[D,E]=_.changeAccountSubscriber(r),V=d.connect().action(m.connect(r)).before(D).or(E).or(O).build(),W=j.disconnect().after(E).build(),q=d.canSwitchNetwork().action(m.canSwitchNetwork()).build(),H=d.canEagerConnect().action(m.canEagerConnect(r)).build(),z=d.getChainId().action(m.getChainId(r)).build(),y=new R("EVM",i).action(V).action(W).action(z).action(H).action(q).build();import{NamespaceBuilder as J}from"@rango-dev/wallets-core";import{builders as Q,standardizeAndThrowError as X}from"@rango-dev/wallets-core/namespaces/common";import{utils as Y}from"@rango-dev/wallets-core/namespaces/tron";import{builders as P}from"@rango-dev/wallets-core/namespaces/tron";var F=o(async()=>{let e=r();if(!a())throw new Error("Trying to eagerly connect to your wallet, but seems its tron instance is not available.");if(!e)throw new Error("Trying to eagerly connect to your EVM wallet, but seems its instance is not available.");try{return!!(await e.request({method:"eth_accounts"})).length}catch{return!1}},"canEagerConnectAction"),A={canEagerConnectAction:F};import{ChangeAccountSubscriberBuilder as U}from"@rango-dev/wallets-core/namespaces/common";import{utils as K}from"@rango-dev/wallets-core/namespaces/tron";var G=o(e=>new U().getInstance(e).onSwitchAccount((t,n)=>{(!t.payload.data.isTronLink||!t.payload.data.message)&&(t.preventDefault(),t.payload.data.message.action=="accountsChanged"&&n.action("disconnect"))}).format(async(t,n)=>K.formatAccountsToCAIP([n.data.message.address])).addEventListener((t,n)=>{window.addEventListener("message",n)}).removeEventListener((t,n)=>{window.removeEventListener("message",n)}),"changeAccountSubscriber"),T={changeAccountSubscriber:G};var[Z,k]=T.changeAccountSubscriber(a).build(),$=P.connect().action(async()=>{let e=a(),t=await e.request({method:"tron_requestAccounts"});if(!t)throw new Error("Please unlock your Bitget extension first.");if(t?.code&&t.message&&t.code!==b)throw new Error(t.message);return Y.formatAccountsToCAIP([e.tronWeb.defaultAddress.base58])}).before(Z).or(X).or(k).build(),tt=Q.disconnect().after(k).build(),et=P.canEagerConnect().action(A.canEagerConnectAction).build(),B=new J("Tron",i).action($).action(tt).action(et).build();var I=o(()=>new ot(i).init(function(e){let[,t]=e.state();c()&&(t("installed",!0),console.debug("[bitget] instance detected.",e))}).config("metadata",v).add("tron",B).add("evm",y).build(),"buildProvider");var Qt=o(()=>nt().version("1.0.0",I()).build(),"versions");export{Qt as versions};
2
+ //# sourceMappingURL=mod.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/mod.ts", "../src/provider.ts", "../src/constants.ts", "../src/signer.ts", "../src/utils.ts", "../src/namespaces/evm.ts", "../src/namespaces/tron.ts", "../src/actions/tron.ts", "../src/builders/tron.ts"],
4
+ "sourcesContent": ["import { defineVersions } from '@rango-dev/wallets-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 '@rango-dev/wallets-core';\n\nimport { metadata, WALLET_ID } from './constants.js';\nimport { evm } from './namespaces/evm.js';\nimport { tron } from './namespaces/tron.js';\nimport { bitget } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n\n if (bitget()) {\n setState('installed', true);\n console.debug('[bitget] instance detected.', context);\n }\n })\n .config('metadata', metadata)\n .add('tron', tron)\n .add('evm', evm)\n\n .build();\n\nexport { buildProvider };\n", "import { type ProviderMetadata } from '@rango-dev/wallets-core';\nimport {\n type BlockchainMeta,\n evmBlockchains,\n tronBlockchain,\n} from 'rango-types';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const WALLET_ID = 'bitget';\nexport const TronOKRequestCode = 200;\nexport const metadata: ProviderMetadata = {\n name: 'Bitget',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/bitget/icon.svg',\n extensions: {\n chrome:\n 'https://chrome.google.com/webstore/detail/bitkeep-crypto-nft-wallet/jiidiaalihmmhddjgbnbgdfflelocpak',\n brave:\n 'https://chrome.google.com/webstore/detail/bitkeep-crypto-nft-wallet/jiidiaalihmmhddjgbnbgdfflelocpak',\n homepage: 'https://web3.bitget.com/en/wallet-download?type=1',\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 evmBlockchains(allBlockchains),\n },\n {\n label: 'Tron',\n value: 'Tron',\n id: 'TRON',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n tronBlockchain(allBlockchains),\n },\n ],\n },\n },\n {\n name: 'signers',\n value: { getSigners: async () => getSigners(getInstanceOrThrow()) },\n },\n ],\n};\n", "import type { SignerFactory } from 'rango-types';\n\nimport {\n type LegacyNetworkProviderMap,\n LegacyNetworks,\n} from '@rango-dev/wallets-core/legacy';\nimport {\n dynamicImportWithRefinedError,\n getNetworkInstance,\n} from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nexport default async function getSigners(\n provider: LegacyNetworkProviderMap\n): Promise<SignerFactory> {\n const ethProvider = getNetworkInstance(provider, LegacyNetworks.ETHEREUM);\n const tronProvider = getNetworkInstance(provider, LegacyNetworks.TRON);\n const signers = new DefaultSignerFactory();\n const { DefaultEvmSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-evm')\n );\n const { DefaultTronSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-tron')\n );\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));\n signers.registerSigner(TxType.TRON, new DefaultTronSigner(tronProvider));\n return signers;\n}\n", "import type { Provider } from './types.js';\nimport type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';\nimport type { ProviderAPI as TronProviderApi } from '@rango-dev/wallets-core/namespaces/tron';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\n\nexport function bitget(): Provider | null {\n const instances: Provider = new Map();\n const { bitkeep } = window;\n\n if (!bitkeep) {\n return null;\n }\n\n if (bitkeep.ethereum) {\n instances.set(LegacyNetworks.ETHEREUM, bitkeep.ethereum);\n }\n\n if (bitkeep.tronLink) {\n instances.set(LegacyNetworks.TRON, bitkeep.tronLink);\n }\n\n if (instances.size === 0) {\n return null;\n }\n\n return instances;\n}\n\nexport function getInstanceOrThrow(): Provider {\n const instances = bitget();\n\n if (!instances) {\n throw new Error('Bitget is not injected. Please check your wallet.');\n }\n\n return instances;\n}\n\nexport function evmBitget(): EvmProviderApi {\n const instances = bitget();\n\n const evmInstance = instances?.get(LegacyNetworks.ETHEREUM);\n\n if (!evmInstance) {\n throw new Error(\n 'Bitget not injected or EVM not enabled. Please check your wallet.'\n );\n }\n\n return evmInstance as EvmProviderApi;\n}\n\nexport function tronBitget(): TronProviderApi {\n const instance = bitget();\n const tronInstance = instance?.get(LegacyNetworks.TRON);\n\n if (!tronInstance) {\n throw new Error(\n 'Bitget not injected or Tron not enabled. Please check your wallet.'\n );\n }\n\n return tronInstance;\n}\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 { evmBitget } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n hooks.changeAccountSubscriber(evmBitget);\nconst connect = builders\n .connect()\n .action(actions.connect(evmBitget))\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(evmBitget))\n .build();\n\nconst getChainId = builders\n .getChainId()\n .action(actions.getChainId(evmBitget))\n .build();\n\nconst evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(getChainId)\n .action(canEagerConnect)\n .action(canSwitchNetwork)\n .build();\n\nexport { evm };\n", "import { NamespaceBuilder } from '@rango-dev/wallets-core';\nimport {\n builders as commonBuilders,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport {\n type TronActions,\n utils,\n} from '@rango-dev/wallets-core/namespaces/tron';\nimport { builders } from '@rango-dev/wallets-core/namespaces/tron';\n\nimport { tronActions } from '../actions/tron.js';\nimport { tronBuilders } from '../builders/tron.js';\nimport { TronOKRequestCode, WALLET_ID } from '../constants.js';\nimport { tronBitget } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] = tronBuilders\n .changeAccountSubscriber(tronBitget)\n .build();\n\nconst connect = builders\n .connect()\n .action(async () => {\n const instance = tronBitget();\n const accountsResult = await instance.request({\n method: 'tron_requestAccounts',\n });\n if (!accountsResult) {\n throw new Error('Please unlock your Bitget extension first.');\n }\n\n if (\n !!accountsResult?.code &&\n !!accountsResult.message &&\n accountsResult.code !== TronOKRequestCode\n ) {\n throw new Error(accountsResult.message);\n }\n return utils.formatAccountsToCAIP([instance.tronWeb.defaultAddress.base58]);\n })\n .before(changeAccountSubscriber)\n .or(standardizeAndThrowError)\n .or(changeAccountCleanup)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<TronActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst canEagerConnect = builders\n .canEagerConnect()\n .action(tronActions.canEagerConnectAction)\n .build();\n\nconst tron = new NamespaceBuilder<TronActions>('Tron', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { tron };\n", "import { evmBitget, tronBitget } from '../utils.js';\n\n/*\n * Bitget does not provide an eager connection mechanism for its Tron wallet.\n * The only workaround is to use the EVM-based eager connect approach.\n * However, this will only work if the EVM namespace has been connected at least once before.\n * If either wallet instance is unavailable, we throw an error.\n */\nconst canEagerConnectAction = async () => {\n const evmInstance = evmBitget();\n const tronInstance = tronBitget();\n // Making sure that the Tron instance is available first to prevent errors.\n if (!tronInstance) {\n throw new Error(\n 'Trying to eagerly connect to your wallet, but seems its tron instance is not available.'\n );\n }\n if (!evmInstance) {\n throw new Error(\n 'Trying to eagerly connect to your EVM wallet, but seems its instance is not available.'\n );\n }\n\n try {\n const accounts: string[] = await evmInstance.request({\n method: 'eth_accounts',\n });\n if (accounts.length) {\n return true;\n }\n return false;\n } catch {\n return false;\n }\n};\nexport const tronActions = { canEagerConnectAction };\n", "import type { TronChangeAccountEvent } from '../types.js';\n\nimport { ChangeAccountSubscriberBuilder } from '@rango-dev/wallets-core/namespaces/common';\nimport {\n type ProviderAPI,\n type TronActions,\n utils,\n} from '@rango-dev/wallets-core/namespaces/tron';\n\nexport const changeAccountSubscriber = (getInstance: () => ProviderAPI) =>\n new ChangeAccountSubscriberBuilder<\n MessageEvent<TronChangeAccountEvent>,\n ProviderAPI,\n TronActions\n >()\n .getInstance(getInstance)\n .onSwitchAccount((event, context) => {\n if (!event.payload.data.isTronLink || !event.payload.data.message) {\n event.preventDefault();\n if (event.payload.data.message.action == 'accountsChanged') {\n context.action('disconnect');\n }\n }\n })\n .format(async (_, accounts) =>\n utils.formatAccountsToCAIP([accounts.data.message.address])\n )\n .addEventListener((_, callback) => {\n window.addEventListener('message', callback);\n })\n .removeEventListener((_, callback) => {\n window.removeEventListener('message', callback);\n });\n\nexport const tronBuilders = { changeAccountSubscriber };\n"],
5
+ "mappings": "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",
6
+ "names": ["defineVersions", "ProviderBuilder", "evmBlockchains", "tronBlockchain", "LegacyNetworks", "dynamicImportWithRefinedError", "getNetworkInstance", "DefaultSignerFactory", "TxType", "getSigners", "provider", "ethProvider", "getNetworkInstance", "LegacyNetworks", "tronProvider", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "dynamicImportWithRefinedError", "DefaultTronSigner", "TxType", "__name", "LegacyNetworks", "bitget", "instances", "bitkeep", "LegacyNetworks", "__name", "getInstanceOrThrow", "evmBitget", "evmInstance", "tronBitget", "tronInstance", "WALLET_ID", "TronOKRequestCode", "metadata", "allBlockchains", "evmBlockchains", "tronBlockchain", "getSigners", "getInstanceOrThrow", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "actions", "builders", "hooks", "changeAccountSubscriber", "changeAccountCleanup", "hooks", "evmBitget", "connect", "builders", "actions", "standardizeAndThrowError", "disconnect", "commonBuilders", "canSwitchNetwork", "canEagerConnect", "getChainId", "evm", "NamespaceBuilder", "WALLET_ID", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "utils", "builders", "canEagerConnectAction", "__name", "evmInstance", "evmBitget", "tronBitget", "tronActions", "ChangeAccountSubscriberBuilder", "utils", "changeAccountSubscriber", "__name", "getInstance", "ChangeAccountSubscriberBuilder", "event", "context", "_", "accounts", "utils", "callback", "tronBuilders", "changeAccountSubscriber", "changeAccountCleanup", "tronBuilders", "tronBitget", "connect", "builders", "instance", "accountsResult", "TronOKRequestCode", "utils", "standardizeAndThrowError", "disconnect", "commonBuilders", "canEagerConnect", "tronActions", "tron", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "bitget", "metadata", "tron", "evm", "versions", "__name", "defineVersions", "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;AA8CzE,QAAA,MAAM,GAAG,gEAMC,CAAC;AAEX,OAAO,EAAE,GAAG,EAAE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { type TronActions } from '@rango-dev/wallets-core/namespaces/tron';
2
+ declare const tron: import("@rango-dev/wallets-core").ProxiedNamespace<TronActions>;
3
+ export { tron };
4
+ //# sourceMappingURL=tron.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../../src/namespaces/tron.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,WAAW,EAEjB,MAAM,yCAAyC,CAAC;AA+CjD,QAAA,MAAM,IAAI,iEAIA,CAAC;AAEX,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"inputs":{"src/helpers.ts":{"bytes":559,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/signer.ts":{"bytes":971,"imports":[{"path":"@rango-dev/signer-tron","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":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":3764,"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":9414},"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/signer-tron","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}],"exports":["canEagerConnect","canSwitchNetworkTo","config","connect","getInstance","getSigners","getWalletInfo","subscribe","switchNetwork"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":1827},"src/helpers.ts":{"bytesInOutput":230},"src/signer.ts":{"bytesInOutput":478}},"bytes":2816}}}
1
+ {"inputs":{"src/signer.ts":{"bytes":1061,"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":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"@rango-dev/signer-tron","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils.ts":{"bytes":1520,"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":1497,"imports":[{"path":"@rango-dev/wallets-core","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":1350,"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/actions/tron.ts":{"bytes":1129,"imports":[{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/builders/tron.ts":{"bytes":1142,"imports":[{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/tron","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/namespaces/tron.ts":{"bytes":1725,"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/tron","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/tron","kind":"import-statement","external":true},{"path":"src/actions/tron.ts","kind":"import-statement","original":"../actions/tron.js"},{"path":"src/builders/tron.ts","kind":"import-statement","original":"../builders/tron.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":634,"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/tron.ts","kind":"import-statement","original":"./namespaces/tron.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/mod.ts":{"bytes":220,"imports":[{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"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":17099},"dist/mod.js":{"imports":[{"path":"@rango-dev/wallets-core/utils","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-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/signer-evm","kind":"dynamic-import","external":true},{"path":"@rango-dev/signer-tron","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/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/tron","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/tron","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/tron","kind":"import-statement","external":true}],"exports":["versions"],"entryPoint":"src/mod.ts","inputs":{"src/mod.ts":{"bytesInOutput":123},"src/provider.ts":{"bytesInOutput":263},"src/constants.ts":{"bytesInOutput":769},"src/signer.ts":{"bytesInOutput":548},"src/utils.ts":{"bytesInOutput":677},"src/namespaces/evm.ts":{"bytesInOutput":628},"src/namespaces/tron.ts":{"bytesInOutput":809},"src/actions/tron.ts":{"bytesInOutput":387},"src/builders/tron.ts":{"bytesInOutput":624}},"bytes":4963}}}
@@ -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,kDAcP,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';
2
1
  import type { SignerFactory } from 'rango-types';
2
+ import { type LegacyNetworkProviderMap } from '@rango-dev/wallets-core/legacy';
3
3
  export default function getSigners(provider: LegacyNetworkProviderMap): 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;AAUjD,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,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,EACL,KAAK,wBAAwB,EAE9B,MAAM,gCAAgC,CAAC;AAOxC,wBAA8B,UAAU,CACtC,QAAQ,EAAE,wBAAwB,GACjC,OAAO,CAAC,aAAa,CAAC,CAaxB"}
@@ -0,0 +1,16 @@
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 TronProviderApi } from '@rango-dev/wallets-core/namespaces/tron';
4
+ export type ProviderObject = {
5
+ [LegacyNetworks.ETHEREUM]: EvmProviderApi;
6
+ [LegacyNetworks.TRON]: TronProviderApi;
7
+ };
8
+ export type Provider = Map<keyof ProviderObject, ProviderObject[keyof ProviderObject]>;
9
+ export type TronChangeAccountEvent = {
10
+ isTronLink: boolean;
11
+ message: {
12
+ action: string;
13
+ address: string;
14
+ };
15
+ };
16
+ //# 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,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAE9F,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1C,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC;CACxC,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,GAAG,CACxB,MAAM,cAAc,EACpB,cAAc,CAAC,MAAM,cAAc,CAAC,CACrC,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,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 TronProviderApi } from '@rango-dev/wallets-core/namespaces/tron';
4
+ export declare function bitget(): Provider | null;
5
+ export declare function getInstanceOrThrow(): Provider;
6
+ export declare function evmBitget(): EvmProviderApi;
7
+ export declare function tronBitget(): TronProviderApi;
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,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAI9F,wBAAgB,MAAM,IAAI,QAAQ,GAAG,IAAI,CAqBxC;AAED,wBAAgB,kBAAkB,IAAI,QAAQ,CAQ7C;AAED,wBAAgB,SAAS,IAAI,cAAc,CAY1C;AAED,wBAAgB,UAAU,IAAI,eAAe,CAW5C"}
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@rango-dev/provider-bitget",
3
- "version": "0.51.2-next.3",
3
+ "version": "0.51.2-next.4",
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-bitget",
17
+ "build": "node ../../scripts/build/command.mjs --path wallets/provider-bitget --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}'",
@@ -23,8 +23,8 @@
23
23
  "dependencies": {
24
24
  "@rango-dev/signer-evm": "^0.40.0",
25
25
  "@rango-dev/signer-tron": "^0.39.0",
26
- "@rango-dev/wallets-core": "^0.53.1-next.2",
27
- "@rango-dev/wallets-shared": "^0.54.2-next.3",
26
+ "@rango-dev/wallets-core": "^0.53.1-next.3",
27
+ "@rango-dev/wallets-shared": "^0.54.2-next.4",
28
28
  "rango-types": "^0.1.89"
29
29
  },
30
30
  "publishConfig": {
package/readme.md CHANGED
@@ -1 +1,30 @@
1
- # @rango-dev/provider-bitget
1
+ # Bitget
2
+ Bitget Wallet integration for hub.
3
+ [Homepage](https://web3.bitget.com/) | [Docs](https://web3.bitget.com/en/wallet/developer)
4
+
5
+ More about implementation status can be found [here](../readme.md).
6
+
7
+ ## Implementation notes/limitations
8
+
9
+ ### Feature
10
+
11
+ #### ⚠️ Connect (Tron)
12
+ Tron connection attempts can fail unpredictably, often returning an error on the **first or second try**.
13
+ Users may need to **retry the connection** to successfully establish a Tron session.
14
+
15
+ #### ⚠️ Switch Account
16
+ Switching accounts in the Bitget Wallet triggers a **full page refresh**.
17
+ Switch account would break if a single namespace account is connected.
18
+ Switch account would disconnect wallet if the switched one has not connected yet.
19
+
20
+ #### ⚠️ Auto Connect
21
+ - **Tron auto-connect only works if EVM was previously connected.**
22
+ - Tron does **not support silent connection**, so the integration relies on EVM eager-connect when available.
23
+ - If only Tron is selected, **auto-connect will not work**.
24
+
25
+ #### ⚠️ Cross Browser
26
+ Bitget Wallet is supported **only on Chromium-based browsers** (e.g., Chrome, Brave).
27
+
28
+ ---
29
+
30
+ More wallet information can be found in [readme.md](../readme.md).
@@ -0,0 +1,36 @@
1
+ import { evmBitget, tronBitget } from '../utils.js';
2
+
3
+ /*
4
+ * Bitget does not provide an eager connection mechanism for its Tron wallet.
5
+ * The only workaround is to use the EVM-based eager connect approach.
6
+ * However, this will only work if the EVM namespace has been connected at least once before.
7
+ * If either wallet instance is unavailable, we throw an error.
8
+ */
9
+ const canEagerConnectAction = async () => {
10
+ const evmInstance = evmBitget();
11
+ const tronInstance = tronBitget();
12
+ // Making sure that the Tron instance is available first to prevent errors.
13
+ if (!tronInstance) {
14
+ throw new Error(
15
+ 'Trying to eagerly connect to your wallet, but seems its tron instance is not available.'
16
+ );
17
+ }
18
+ if (!evmInstance) {
19
+ throw new Error(
20
+ 'Trying to eagerly connect to your EVM wallet, but seems its instance is not available.'
21
+ );
22
+ }
23
+
24
+ try {
25
+ const accounts: string[] = await evmInstance.request({
26
+ method: 'eth_accounts',
27
+ });
28
+ if (accounts.length) {
29
+ return true;
30
+ }
31
+ return false;
32
+ } catch {
33
+ return false;
34
+ }
35
+ };
36
+ export const tronActions = { canEagerConnectAction };
@@ -0,0 +1,35 @@
1
+ import type { TronChangeAccountEvent } from '../types.js';
2
+
3
+ import { ChangeAccountSubscriberBuilder } from '@rango-dev/wallets-core/namespaces/common';
4
+ import {
5
+ type ProviderAPI,
6
+ type TronActions,
7
+ utils,
8
+ } from '@rango-dev/wallets-core/namespaces/tron';
9
+
10
+ export const changeAccountSubscriber = (getInstance: () => ProviderAPI) =>
11
+ new ChangeAccountSubscriberBuilder<
12
+ MessageEvent<TronChangeAccountEvent>,
13
+ ProviderAPI,
14
+ TronActions
15
+ >()
16
+ .getInstance(getInstance)
17
+ .onSwitchAccount((event, context) => {
18
+ if (!event.payload.data.isTronLink || !event.payload.data.message) {
19
+ event.preventDefault();
20
+ if (event.payload.data.message.action == 'accountsChanged') {
21
+ context.action('disconnect');
22
+ }
23
+ }
24
+ })
25
+ .format(async (_, accounts) =>
26
+ utils.formatAccountsToCAIP([accounts.data.message.address])
27
+ )
28
+ .addEventListener((_, callback) => {
29
+ window.addEventListener('message', callback);
30
+ })
31
+ .removeEventListener((_, callback) => {
32
+ window.removeEventListener('message', callback);
33
+ });
34
+
35
+ export const tronBuilders = { changeAccountSubscriber };
@@ -0,0 +1,51 @@
1
+ import { type ProviderMetadata } from '@rango-dev/wallets-core';
2
+ import {
3
+ type BlockchainMeta,
4
+ evmBlockchains,
5
+ tronBlockchain,
6
+ } from 'rango-types';
7
+
8
+ import getSigners from './signer.js';
9
+ import { getInstanceOrThrow } from './utils.js';
10
+
11
+ export const WALLET_ID = 'bitget';
12
+ export const TronOKRequestCode = 200;
13
+ export const metadata: ProviderMetadata = {
14
+ name: 'Bitget',
15
+ icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/bitget/icon.svg',
16
+ extensions: {
17
+ chrome:
18
+ 'https://chrome.google.com/webstore/detail/bitkeep-crypto-nft-wallet/jiidiaalihmmhddjgbnbgdfflelocpak',
19
+ brave:
20
+ 'https://chrome.google.com/webstore/detail/bitkeep-crypto-nft-wallet/jiidiaalihmmhddjgbnbgdfflelocpak',
21
+ homepage: 'https://web3.bitget.com/en/wallet-download?type=1',
22
+ },
23
+ properties: [
24
+ {
25
+ name: 'namespaces',
26
+ value: {
27
+ selection: 'multiple',
28
+ data: [
29
+ {
30
+ label: 'EVM',
31
+ value: 'EVM',
32
+ id: 'ETH',
33
+ getSupportedChains: (allBlockchains: BlockchainMeta[]) =>
34
+ evmBlockchains(allBlockchains),
35
+ },
36
+ {
37
+ label: 'Tron',
38
+ value: 'Tron',
39
+ id: 'TRON',
40
+ getSupportedChains: (allBlockchains: BlockchainMeta[]) =>
41
+ tronBlockchain(allBlockchains),
42
+ },
43
+ ],
44
+ },
45
+ },
46
+ {
47
+ name: 'signers',
48
+ value: { getSigners: async () => getSigners(getInstanceOrThrow()) },
49
+ },
50
+ ],
51
+ };
package/src/mod.ts ADDED
@@ -0,0 +1,8 @@
1
+ import { defineVersions } from '@rango-dev/wallets-core/utils';
2
+
3
+ import { buildProvider } from './provider.js';
4
+
5
+ const versions = () =>
6
+ defineVersions().version('1.0.0', buildProvider()).build();
7
+
8
+ export { versions };
@@ -0,0 +1,55 @@
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 { evmBitget } from '../utils.js';
16
+
17
+ const [changeAccountSubscriber, changeAccountCleanup] =
18
+ hooks.changeAccountSubscriber(evmBitget);
19
+ const connect = builders
20
+ .connect()
21
+ .action(actions.connect(evmBitget))
22
+ .before(changeAccountSubscriber)
23
+ .or(changeAccountCleanup)
24
+ .or(standardizeAndThrowError)
25
+ .build();
26
+
27
+ const disconnect = commonBuilders
28
+ .disconnect<EvmActions>()
29
+ .after(changeAccountCleanup)
30
+ .build();
31
+
32
+ const canSwitchNetwork = builders
33
+ .canSwitchNetwork()
34
+ .action(actions.canSwitchNetwork())
35
+ .build();
36
+
37
+ const canEagerConnect = builders
38
+ .canEagerConnect()
39
+ .action(actions.canEagerConnect(evmBitget))
40
+ .build();
41
+
42
+ const getChainId = builders
43
+ .getChainId()
44
+ .action(actions.getChainId(evmBitget))
45
+ .build();
46
+
47
+ const evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)
48
+ .action(connect)
49
+ .action(disconnect)
50
+ .action(getChainId)
51
+ .action(canEagerConnect)
52
+ .action(canSwitchNetwork)
53
+ .build();
54
+
55
+ export { evm };
@@ -0,0 +1,62 @@
1
+ import { NamespaceBuilder } from '@rango-dev/wallets-core';
2
+ import {
3
+ builders as commonBuilders,
4
+ standardizeAndThrowError,
5
+ } from '@rango-dev/wallets-core/namespaces/common';
6
+ import {
7
+ type TronActions,
8
+ utils,
9
+ } from '@rango-dev/wallets-core/namespaces/tron';
10
+ import { builders } from '@rango-dev/wallets-core/namespaces/tron';
11
+
12
+ import { tronActions } from '../actions/tron.js';
13
+ import { tronBuilders } from '../builders/tron.js';
14
+ import { TronOKRequestCode, WALLET_ID } from '../constants.js';
15
+ import { tronBitget } from '../utils.js';
16
+
17
+ const [changeAccountSubscriber, changeAccountCleanup] = tronBuilders
18
+ .changeAccountSubscriber(tronBitget)
19
+ .build();
20
+
21
+ const connect = builders
22
+ .connect()
23
+ .action(async () => {
24
+ const instance = tronBitget();
25
+ const accountsResult = await instance.request({
26
+ method: 'tron_requestAccounts',
27
+ });
28
+ if (!accountsResult) {
29
+ throw new Error('Please unlock your Bitget extension first.');
30
+ }
31
+
32
+ if (
33
+ !!accountsResult?.code &&
34
+ !!accountsResult.message &&
35
+ accountsResult.code !== TronOKRequestCode
36
+ ) {
37
+ throw new Error(accountsResult.message);
38
+ }
39
+ return utils.formatAccountsToCAIP([instance.tronWeb.defaultAddress.base58]);
40
+ })
41
+ .before(changeAccountSubscriber)
42
+ .or(standardizeAndThrowError)
43
+ .or(changeAccountCleanup)
44
+ .build();
45
+
46
+ const disconnect = commonBuilders
47
+ .disconnect<TronActions>()
48
+ .after(changeAccountCleanup)
49
+ .build();
50
+
51
+ const canEagerConnect = builders
52
+ .canEagerConnect()
53
+ .action(tronActions.canEagerConnectAction)
54
+ .build();
55
+
56
+ const tron = new NamespaceBuilder<TronActions>('Tron', WALLET_ID)
57
+ .action(connect)
58
+ .action(disconnect)
59
+ .action(canEagerConnect)
60
+ .build();
61
+
62
+ export { tron };
@@ -0,0 +1,24 @@
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 { tron } from './namespaces/tron.js';
6
+ import { bitget } from './utils.js';
7
+
8
+ const buildProvider = () =>
9
+ new ProviderBuilder(WALLET_ID)
10
+ .init(function (context) {
11
+ const [, setState] = context.state();
12
+
13
+ if (bitget()) {
14
+ setState('installed', true);
15
+ console.debug('[bitget] instance detected.', context);
16
+ }
17
+ })
18
+ .config('metadata', metadata)
19
+ .add('tron', tron)
20
+ .add('evm', evm)
21
+
22
+ .build();
23
+
24
+ export { buildProvider };
package/src/signer.ts CHANGED
@@ -1,23 +1,27 @@
1
- import type { LegacyNetworkProviderMap } from '@rango-dev/wallets-core/legacy';
2
1
  import type { SignerFactory } from 'rango-types';
3
2
 
4
- import { DefaultTronSigner } from '@rango-dev/signer-tron';
3
+ import {
4
+ type LegacyNetworkProviderMap,
5
+ LegacyNetworks,
6
+ } from '@rango-dev/wallets-core/legacy';
5
7
  import {
6
8
  dynamicImportWithRefinedError,
7
9
  getNetworkInstance,
8
- Networks,
9
10
  } from '@rango-dev/wallets-shared';
10
11
  import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';
11
12
 
12
13
  export default async function getSigners(
13
14
  provider: LegacyNetworkProviderMap
14
15
  ): Promise<SignerFactory> {
15
- const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);
16
- const tronProvider = getNetworkInstance(provider, Networks.TRON);
16
+ const ethProvider = getNetworkInstance(provider, LegacyNetworks.ETHEREUM);
17
+ const tronProvider = getNetworkInstance(provider, LegacyNetworks.TRON);
17
18
  const signers = new DefaultSignerFactory();
18
19
  const { DefaultEvmSigner } = await dynamicImportWithRefinedError(
19
20
  async () => await import('@rango-dev/signer-evm')
20
21
  );
22
+ const { DefaultTronSigner } = await dynamicImportWithRefinedError(
23
+ async () => await import('@rango-dev/signer-tron')
24
+ );
21
25
  signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));
22
26
  signers.registerSigner(TxType.TRON, new DefaultTronSigner(tronProvider));
23
27
  return signers;
package/src/types.ts ADDED
@@ -0,0 +1,20 @@
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 TronProviderApi } from '@rango-dev/wallets-core/namespaces/tron';
4
+
5
+ export type ProviderObject = {
6
+ [LegacyNetworks.ETHEREUM]: EvmProviderApi;
7
+ [LegacyNetworks.TRON]: TronProviderApi;
8
+ };
9
+ export type Provider = Map<
10
+ keyof ProviderObject,
11
+ ProviderObject[keyof ProviderObject]
12
+ >;
13
+
14
+ export type TronChangeAccountEvent = {
15
+ isTronLink: boolean;
16
+ message: {
17
+ action: string;
18
+ address: string;
19
+ };
20
+ };
package/src/utils.ts ADDED
@@ -0,0 +1,65 @@
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 TronProviderApi } from '@rango-dev/wallets-core/namespaces/tron';
4
+
5
+ import { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
6
+
7
+ export function bitget(): Provider | null {
8
+ const instances: Provider = new Map();
9
+ const { bitkeep } = window;
10
+
11
+ if (!bitkeep) {
12
+ return null;
13
+ }
14
+
15
+ if (bitkeep.ethereum) {
16
+ instances.set(LegacyNetworks.ETHEREUM, bitkeep.ethereum);
17
+ }
18
+
19
+ if (bitkeep.tronLink) {
20
+ instances.set(LegacyNetworks.TRON, bitkeep.tronLink);
21
+ }
22
+
23
+ if (instances.size === 0) {
24
+ return null;
25
+ }
26
+
27
+ return instances;
28
+ }
29
+
30
+ export function getInstanceOrThrow(): Provider {
31
+ const instances = bitget();
32
+
33
+ if (!instances) {
34
+ throw new Error('Bitget is not injected. Please check your wallet.');
35
+ }
36
+
37
+ return instances;
38
+ }
39
+
40
+ export function evmBitget(): EvmProviderApi {
41
+ const instances = bitget();
42
+
43
+ const evmInstance = instances?.get(LegacyNetworks.ETHEREUM);
44
+
45
+ if (!evmInstance) {
46
+ throw new Error(
47
+ 'Bitget not injected or EVM not enabled. Please check your wallet.'
48
+ );
49
+ }
50
+
51
+ return evmInstance as EvmProviderApi;
52
+ }
53
+
54
+ export function tronBitget(): TronProviderApi {
55
+ const instance = bitget();
56
+ const tronInstance = instance?.get(LegacyNetworks.TRON);
57
+
58
+ if (!tronInstance) {
59
+ throw new Error(
60
+ 'Bitget not injected or Tron not enabled. Please check your wallet.'
61
+ );
62
+ }
63
+
64
+ return tronInstance;
65
+ }
package/dist/helpers.d.ts DELETED
@@ -1,5 +0,0 @@
1
- import type { Network } from '@rango-dev/wallets-shared';
2
- type Provider = Map<Network, any>;
3
- export declare function bitgetInstances(): Provider | null;
4
- export {};
5
- //# 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,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAIzD,KAAK,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAElC,wBAAgB,eAAe,IAAI,QAAQ,GAAG,IAAI,CAqBjD"}
package/dist/index.d.ts DELETED
@@ -1,17 +0,0 @@
1
- import type { CanEagerConnect, CanSwitchNetwork, Connect, Subscribe, SwitchNetwork, WalletInfo } from '@rango-dev/wallets-shared';
2
- import type { BlockchainMeta, SignerFactory } from 'rango-types';
3
- import { Networks, WalletTypes } from '@rango-dev/wallets-shared';
4
- import { bitgetInstances } from './helpers.js';
5
- export declare const config: {
6
- type: WalletTypes;
7
- defaultNetwork: Networks;
8
- };
9
- export declare const getInstance: typeof bitgetInstances;
10
- export declare const connect: Connect;
11
- export declare const subscribe: Subscribe;
12
- export declare const switchNetwork: SwitchNetwork;
13
- export declare const canSwitchNetworkTo: CanSwitchNetwork;
14
- export declare const canEagerConnect: CanEagerConnect;
15
- export declare const getSigners: (provider: any) => Promise<SignerFactory>;
16
- export declare const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo;
17
- //# sourceMappingURL=index.d.ts.map
@@ -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,EAGR,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAK/C,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,eAAO,MAAM,WAAW,wBAAkB,CAAC;AAE3C,eAAO,MAAM,OAAO,EAAE,OA4BrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SA0CvB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,aAAmC,CAAC;AAEhE,eAAO,MAAM,kBAAkB,EAAE,gBAAwC,CAAC;AAE1E,eAAO,MAAM,eAAe,EAAE,eAM7B,CAAC;AACF,eAAO,MAAM,UAAU,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,aAAa,CAAU,CAAC;AAE5E,eAAO,MAAM,aAAa,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,UAkBjE,CAAC"}
package/dist/index.js DELETED
@@ -1,2 +0,0 @@
1
- var v=Object.defineProperty;var s=(e,t)=>v(e,"name",{value:t,configurable:!0});import{canEagerlyConnectToEvm as S,canSwitchNetworkToEvm as R,chooseInstance as g,getEvmAccounts as C,Networks as i,subscribeToEvm as M,switchNetworkForEvm as x,WalletTypes as I}from"@rango-dev/wallets-shared";import{evmBlockchains as P,isEvmBlockchain as B,tronBlockchain as L}from"rango-types";import{Networks as w}from"@rango-dev/wallets-shared";function d(){let e=new Map,{bitkeep:t}=window;return!t||(t.ethereum&&e.set(w.ETHEREUM,t.ethereum),t.tronLink&&e.set(w.TRON,t.tronLink),e.size===0)?null:e}s(d,"bitgetInstances");import{DefaultTronSigner as T}from"@rango-dev/signer-tron";import{dynamicImportWithRefinedError as b,getNetworkInstance as h,Networks as u}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as N,TransactionType as E}from"rango-types";async function m(e){let t=h(e,u.ETHEREUM),o=h(e,u.TRON),r=new N,{DefaultEvmSigner:a}=await b(async()=>await import("@rango-dev/signer-evm"));return r.registerSigner(E.EVM,new a(t)),r.registerSigner(E.TRON,new T(o)),r}s(m,"getSigners");var W=I.BITGET,K={type:W,defaultNetwork:i.ETHEREUM},Q=d,X=s(async({instance:e,meta:t})=>{let o=g(e,t,i.ETHEREUM),r=g(e,t,i.TRON),a=[];if(o){let n=await C(o);a.push(n)}if(r){let n=await r.request({method:"tron_requestAccounts"});if(!n)throw new Error("Please unlock your Bitget extension first.");if(n?.code&&n.message&&n.code!==200)throw new Error(n.message);let c=r.tronWeb.defaultAddress.base58;a.push({accounts:c?[c]:[],chainId:i.TRON})}return a},"connect"),Y=s(({instance:e,state:t,updateChainId:o,updateAccounts:r,meta:a,connect:n,disconnect:c})=>{let k=e.get(i.ETHEREUM),y=a.filter(B),p=M({instance:k,state:t,updateChainId:o,updateAccounts:r,meta:y,connect:n,disconnect:c});return window.addEventListener("message",l=>{if(l.data.isTronLink&&l.data.message&&l.data.message.action=="accountsChanged"){let f=l?.data?.message?.data?.address;f?r([f]):c()}}),()=>{p&&p()}},"subscribe"),Z=x,$=R,ee=s(async({instance:e,meta:t})=>{let o=g(e,t,i.ETHEREUM);return o?S({instance:o,meta:t}):Promise.resolve(!1)},"canEagerConnect"),te=m,oe=s(e=>{let t=P(e),o=L(e);return{name:"Bitget Wallet",img:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/bitget/icon.svg",installLink:{CHROME:"https://chrome.google.com/webstore/detail/bitkeep-crypto-nft-wallet/jiidiaalihmmhddjgbnbgdfflelocpak",BRAVE:"https://chrome.google.com/webstore/detail/bitkeep-crypto-nft-wallet/jiidiaalihmmhddjgbnbgdfflelocpak",DEFAULT:"https://web3.bitget.com/en/wallet-download?type=1"},color:"#ffffff",supportedChains:[...t,...o]}},"getWalletInfo");export{ee as canEagerConnect,$ as canSwitchNetworkTo,K as config,X as connect,Q as getInstance,te as getSigners,oe as getWalletInfo,Y as subscribe,Z 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"],
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 subscribeToEvm,\n switchNetworkForEvm,\n WalletTypes,\n} from '@rango-dev/wallets-shared';\nimport { evmBlockchains, isEvmBlockchain, tronBlockchain } from 'rango-types';\n\nimport { bitgetInstances } from './helpers.js';\nimport signer from './signer.js';\n\nconst WALLET = WalletTypes.BITGET;\n\nexport const config = {\n type: WALLET,\n defaultNetwork: Networks.ETHEREUM,\n};\n\nexport const getInstance = bitgetInstances;\n\nexport const connect: Connect = async ({ instance, meta }) => {\n const ethInstance = chooseInstance(instance, meta, Networks.ETHEREUM);\n const tronInstance = chooseInstance(instance, meta, Networks.TRON);\n\n const results: ProviderConnectResult[] = [];\n\n if (ethInstance) {\n const evmResult = await getEvmAccounts(ethInstance);\n results.push(evmResult);\n }\n\n if (tronInstance) {\n const res = await tronInstance.request({ method: 'tron_requestAccounts' });\n if (!res) {\n throw new Error('Please unlock your Bitget extension first.');\n }\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers\n if (!!res?.code && !!res.message && res.code !== 200) {\n throw new Error(res.message);\n }\n const address = tronInstance.tronWeb.defaultAddress.base58;\n results.push({\n accounts: address ? [address] : [],\n chainId: Networks.TRON,\n });\n }\n\n return results;\n};\n\nexport const subscribe: Subscribe = ({\n instance,\n state,\n updateChainId,\n updateAccounts,\n meta,\n connect,\n disconnect,\n}) => {\n const ethInstance = instance.get(Networks.ETHEREUM);\n const evmBlockchainMeta = meta.filter(isEvmBlockchain);\n\n const cleanup = subscribeToEvm({\n instance: ethInstance,\n state,\n updateChainId,\n updateAccounts,\n meta: evmBlockchainMeta,\n connect,\n disconnect,\n });\n\n window.addEventListener('message', (e) => {\n if (\n e.data.isTronLink &&\n e.data.message &&\n e.data.message.action == 'accountsChanged'\n ) {\n const account = e?.data?.message?.data?.address;\n if (account) {\n updateAccounts([account]);\n } else {\n disconnect();\n }\n }\n });\n\n return () => {\n if (cleanup) {\n cleanup();\n }\n };\n};\n\nexport const switchNetwork: SwitchNetwork = switchNetworkForEvm;\n\nexport const canSwitchNetworkTo: CanSwitchNetwork = canSwitchNetworkToEvm;\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};\nexport const getSigners: (provider: any) => Promise<SignerFactory> = signer;\n\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => {\n const evms = evmBlockchains(allBlockChains);\n const tron = tronBlockchain(allBlockChains);\n return {\n name: 'Bitget Wallet',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/bitget/icon.svg',\n installLink: {\n CHROME:\n 'https://chrome.google.com/webstore/detail/bitkeep-crypto-nft-wallet/jiidiaalihmmhddjgbnbgdfflelocpak',\n BRAVE:\n 'https://chrome.google.com/webstore/detail/bitkeep-crypto-nft-wallet/jiidiaalihmmhddjgbnbgdfflelocpak',\n DEFAULT: 'https://web3.bitget.com/en/wallet-download?type=1',\n },\n color: '#ffffff',\n supportedChains: [...evms, ...tron],\n };\n};\n", "import type { Network } from '@rango-dev/wallets-shared';\n\nimport { Networks } from '@rango-dev/wallets-shared';\n\ntype Provider = Map<Network, any>;\n\nexport function bitgetInstances(): Provider | null {\n const instances: Provider = new Map();\n const { bitkeep } = window;\n\n if (!bitkeep) {\n return null;\n }\n\n if (bitkeep.ethereum) {\n instances.set(Networks.ETHEREUM, bitkeep.ethereum);\n }\n\n if (bitkeep.tronLink) {\n instances.set(Networks.TRON, bitkeep.tronLink);\n }\n\n if (instances.size === 0) {\n return null;\n }\n\n return instances;\n}\n", "import type { LegacyNetworkProviderMap } from '@rango-dev/wallets-core/legacy';\nimport type { SignerFactory } from 'rango-types';\n\nimport { DefaultTronSigner } from '@rango-dev/signer-tron';\nimport {\n dynamicImportWithRefinedError,\n getNetworkInstance,\n Networks,\n} from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nexport default async function getSigners(\n provider: LegacyNetworkProviderMap\n): Promise<SignerFactory> {\n const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);\n const tronProvider = getNetworkInstance(provider, Networks.TRON);\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.TRON, new DefaultTronSigner(tronProvider));\n return signers;\n}\n"],
5
- "mappings": "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",
6
- "names": ["canEagerlyConnectToEvm", "canSwitchNetworkToEvm", "chooseInstance", "getEvmAccounts", "Networks", "subscribeToEvm", "switchNetworkForEvm", "WalletTypes", "evmBlockchains", "isEvmBlockchain", "tronBlockchain", "Networks", "bitgetInstances", "instances", "bitkeep", "Networks", "__name", "DefaultTronSigner", "dynamicImportWithRefinedError", "getNetworkInstance", "Networks", "DefaultSignerFactory", "TxType", "getSigners", "provider", "ethProvider", "getNetworkInstance", "Networks", "tronProvider", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "dynamicImportWithRefinedError", "TxType", "DefaultTronSigner", "__name", "WALLET", "WalletTypes", "config", "Networks", "getInstance", "bitgetInstances", "connect", "__name", "instance", "meta", "ethInstance", "chooseInstance", "tronInstance", "results", "evmResult", "getEvmAccounts", "res", "address", "subscribe", "state", "updateChainId", "updateAccounts", "disconnect", "evmBlockchainMeta", "isEvmBlockchain", "cleanup", "subscribeToEvm", "e", "account", "switchNetwork", "switchNetworkForEvm", "canSwitchNetworkTo", "canSwitchNetworkToEvm", "canEagerConnect", "evm_instance", "canEagerlyConnectToEvm", "getSigners", "getWalletInfo", "allBlockChains", "evms", "evmBlockchains", "tron", "tronBlockchain"]
7
- }
package/src/helpers.ts DELETED
@@ -1,28 +0,0 @@
1
- import type { Network } from '@rango-dev/wallets-shared';
2
-
3
- import { Networks } from '@rango-dev/wallets-shared';
4
-
5
- type Provider = Map<Network, any>;
6
-
7
- export function bitgetInstances(): Provider | null {
8
- const instances: Provider = new Map();
9
- const { bitkeep } = window;
10
-
11
- if (!bitkeep) {
12
- return null;
13
- }
14
-
15
- if (bitkeep.ethereum) {
16
- instances.set(Networks.ETHEREUM, bitkeep.ethereum);
17
- }
18
-
19
- if (bitkeep.tronLink) {
20
- instances.set(Networks.TRON, bitkeep.tronLink);
21
- }
22
-
23
- if (instances.size === 0) {
24
- return null;
25
- }
26
-
27
- return instances;
28
- }
package/src/index.ts DELETED
@@ -1,141 +0,0 @@
1
- import type {
2
- CanEagerConnect,
3
- CanSwitchNetwork,
4
- Connect,
5
- ProviderConnectResult,
6
- Subscribe,
7
- SwitchNetwork,
8
- WalletInfo,
9
- } from '@rango-dev/wallets-shared';
10
- import type { BlockchainMeta, SignerFactory } from 'rango-types';
11
-
12
- import {
13
- canEagerlyConnectToEvm,
14
- canSwitchNetworkToEvm,
15
- chooseInstance,
16
- getEvmAccounts,
17
- Networks,
18
- subscribeToEvm,
19
- switchNetworkForEvm,
20
- WalletTypes,
21
- } from '@rango-dev/wallets-shared';
22
- import { evmBlockchains, isEvmBlockchain, tronBlockchain } from 'rango-types';
23
-
24
- import { bitgetInstances } from './helpers.js';
25
- import signer from './signer.js';
26
-
27
- const WALLET = WalletTypes.BITGET;
28
-
29
- export const config = {
30
- type: WALLET,
31
- defaultNetwork: Networks.ETHEREUM,
32
- };
33
-
34
- export const getInstance = bitgetInstances;
35
-
36
- export const connect: Connect = async ({ instance, meta }) => {
37
- const ethInstance = chooseInstance(instance, meta, Networks.ETHEREUM);
38
- const tronInstance = chooseInstance(instance, meta, Networks.TRON);
39
-
40
- const results: ProviderConnectResult[] = [];
41
-
42
- if (ethInstance) {
43
- const evmResult = await getEvmAccounts(ethInstance);
44
- results.push(evmResult);
45
- }
46
-
47
- if (tronInstance) {
48
- const res = await tronInstance.request({ method: 'tron_requestAccounts' });
49
- if (!res) {
50
- throw new Error('Please unlock your Bitget extension first.');
51
- }
52
- // eslint-disable-next-line @typescript-eslint/no-magic-numbers
53
- if (!!res?.code && !!res.message && res.code !== 200) {
54
- throw new Error(res.message);
55
- }
56
- const address = tronInstance.tronWeb.defaultAddress.base58;
57
- results.push({
58
- accounts: address ? [address] : [],
59
- chainId: Networks.TRON,
60
- });
61
- }
62
-
63
- return results;
64
- };
65
-
66
- export const subscribe: Subscribe = ({
67
- instance,
68
- state,
69
- updateChainId,
70
- updateAccounts,
71
- meta,
72
- connect,
73
- disconnect,
74
- }) => {
75
- const ethInstance = instance.get(Networks.ETHEREUM);
76
- const evmBlockchainMeta = meta.filter(isEvmBlockchain);
77
-
78
- const cleanup = subscribeToEvm({
79
- instance: ethInstance,
80
- state,
81
- updateChainId,
82
- updateAccounts,
83
- meta: evmBlockchainMeta,
84
- connect,
85
- disconnect,
86
- });
87
-
88
- window.addEventListener('message', (e) => {
89
- if (
90
- e.data.isTronLink &&
91
- e.data.message &&
92
- e.data.message.action == 'accountsChanged'
93
- ) {
94
- const account = e?.data?.message?.data?.address;
95
- if (account) {
96
- updateAccounts([account]);
97
- } else {
98
- disconnect();
99
- }
100
- }
101
- });
102
-
103
- return () => {
104
- if (cleanup) {
105
- cleanup();
106
- }
107
- };
108
- };
109
-
110
- export const switchNetwork: SwitchNetwork = switchNetworkForEvm;
111
-
112
- export const canSwitchNetworkTo: CanSwitchNetwork = canSwitchNetworkToEvm;
113
-
114
- export const canEagerConnect: CanEagerConnect = async ({ instance, meta }) => {
115
- const evm_instance = chooseInstance(instance, meta, Networks.ETHEREUM);
116
- if (evm_instance) {
117
- return canEagerlyConnectToEvm({ instance: evm_instance, meta });
118
- }
119
- return Promise.resolve(false);
120
- };
121
- export const getSigners: (provider: any) => Promise<SignerFactory> = signer;
122
-
123
- export const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (
124
- allBlockChains
125
- ) => {
126
- const evms = evmBlockchains(allBlockChains);
127
- const tron = tronBlockchain(allBlockChains);
128
- return {
129
- name: 'Bitget Wallet',
130
- img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/bitget/icon.svg',
131
- installLink: {
132
- CHROME:
133
- 'https://chrome.google.com/webstore/detail/bitkeep-crypto-nft-wallet/jiidiaalihmmhddjgbnbgdfflelocpak',
134
- BRAVE:
135
- 'https://chrome.google.com/webstore/detail/bitkeep-crypto-nft-wallet/jiidiaalihmmhddjgbnbgdfflelocpak',
136
- DEFAULT: 'https://web3.bitget.com/en/wallet-download?type=1',
137
- },
138
- color: '#ffffff',
139
- supportedChains: [...evms, ...tron],
140
- };
141
- };