@swapkit/wallets 3.0.0-beta.0 → 3.0.0-beta.2
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/chunk-czhtd6cy.js +4 -0
- package/dist/chunk-czhtd6cy.js.map +10 -0
- package/dist/{chunk-5m175wfy.js → chunk-p1kdg37m.js} +2 -2
- package/dist/{chunk-5m175wfy.js.map → chunk-p1kdg37m.js.map} +1 -1
- package/dist/{chunk-f76hj57k.js → chunk-q81hzyra.js} +2 -2
- package/dist/{chunk-f76hj57k.js.map → chunk-q81hzyra.js.map} +1 -1
- package/dist/chunk-qadd75nn.js +3 -0
- package/dist/chunk-qadd75nn.js.map +10 -0
- package/dist/src/bitget/index.cjs +2 -2
- package/dist/src/bitget/index.cjs.map +5 -5
- package/dist/src/bitget/index.js +2 -2
- package/dist/src/bitget/index.js.map +5 -5
- package/dist/src/coinbase/index.cjs +2 -2
- package/dist/src/coinbase/index.cjs.map +4 -4
- package/dist/src/coinbase/index.js +2 -3
- package/dist/src/coinbase/index.js.map +4 -4
- package/dist/src/ctrl/index.cjs +2 -2
- package/dist/src/ctrl/index.cjs.map +5 -5
- package/dist/src/ctrl/index.js +2 -2
- package/dist/src/ctrl/index.js.map +5 -5
- package/dist/src/evm-extensions/index.cjs +2 -2
- package/dist/src/evm-extensions/index.cjs.map +3 -3
- package/dist/src/evm-extensions/index.js +2 -3
- package/dist/src/evm-extensions/index.js.map +3 -3
- package/dist/src/exodus/index.cjs +2 -2
- package/dist/src/exodus/index.cjs.map +3 -3
- package/dist/src/exodus/index.js +2 -3
- package/dist/src/exodus/index.js.map +3 -3
- package/dist/src/index.cjs +2 -2
- package/dist/src/index.cjs.map +3 -4
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +3 -4
- package/dist/src/keepkey/index.cjs +2 -2
- package/dist/src/keepkey/index.cjs.map +7 -7
- package/dist/src/keepkey/index.js +2 -3
- package/dist/src/keepkey/index.js.map +7 -7
- package/dist/src/keepkey-bex/index.cjs +2 -2
- package/dist/src/keepkey-bex/index.cjs.map +4 -4
- package/dist/src/keepkey-bex/index.js +2 -3
- package/dist/src/keepkey-bex/index.js.map +4 -4
- package/dist/src/keplr/index.cjs +2 -2
- package/dist/src/keplr/index.cjs.map +3 -3
- package/dist/src/keplr/index.js +2 -3
- package/dist/src/keplr/index.js.map +3 -3
- package/dist/src/keystore/index.cjs +2 -2
- package/dist/src/keystore/index.cjs.map +4 -4
- package/dist/src/keystore/index.js +2 -3
- package/dist/src/keystore/index.js.map +4 -4
- package/dist/src/ledger/index.cjs +3 -3
- package/dist/src/ledger/index.cjs.map +8 -8
- package/dist/src/ledger/index.js +3 -4
- package/dist/src/ledger/index.js.map +8 -8
- package/dist/src/okx/index.cjs +2 -2
- package/dist/src/okx/index.cjs.map +4 -4
- package/dist/src/okx/index.js +2 -3
- package/dist/src/okx/index.js.map +4 -4
- package/dist/src/onekey/index.cjs +3 -0
- package/dist/src/onekey/index.cjs.map +10 -0
- package/dist/src/onekey/index.js +3 -0
- package/dist/src/onekey/index.js.map +10 -0
- package/dist/src/phantom/index.cjs +2 -2
- package/dist/src/phantom/index.cjs.map +3 -3
- package/dist/src/phantom/index.js +2 -3
- package/dist/src/phantom/index.js.map +3 -3
- package/dist/src/polkadotjs/index.cjs +2 -2
- package/dist/src/polkadotjs/index.cjs.map +3 -3
- package/dist/src/polkadotjs/index.js +2 -3
- package/dist/src/polkadotjs/index.js.map +3 -3
- package/dist/src/radix/index.cjs +2 -2
- package/dist/src/radix/index.cjs.map +3 -3
- package/dist/src/radix/index.js +2 -3
- package/dist/src/radix/index.js.map +3 -3
- package/dist/src/talisman/index.cjs +2 -2
- package/dist/src/talisman/index.cjs.map +3 -3
- package/dist/src/talisman/index.js +2 -3
- package/dist/src/talisman/index.js.map +3 -3
- package/dist/src/trezor/index.cjs +2 -2
- package/dist/src/trezor/index.cjs.map +3 -3
- package/dist/src/trezor/index.js +2 -3
- package/dist/src/trezor/index.js.map +3 -3
- package/dist/src/walletconnect/index.cjs +2 -2
- package/dist/src/walletconnect/index.cjs.map +5 -5
- package/dist/src/walletconnect/index.js +2 -3
- package/dist/src/walletconnect/index.js.map +5 -5
- package/package.json +31 -26
- package/src/bitget/helpers.ts +33 -93
- package/src/bitget/index.ts +32 -54
- package/src/coinbase/index.ts +2 -2
- package/src/coinbase/signer.ts +46 -42
- package/src/ctrl/index.ts +157 -22
- package/src/ctrl/walletHelpers.ts +45 -94
- package/src/evm-extensions/index.ts +21 -40
- package/src/exodus/index.ts +18 -28
- package/src/index.ts +2 -37
- package/src/keepkey/chains/cosmos.ts +10 -7
- package/src/keepkey/chains/mayachain.ts +24 -24
- package/src/keepkey/chains/thorchain.ts +19 -13
- package/src/keepkey/chains/utxo.ts +36 -48
- package/src/keepkey/index.ts +9 -23
- package/src/keepkey-bex/index.ts +25 -23
- package/src/keepkey-bex/walletHelpers.ts +8 -36
- package/src/keplr/index.ts +6 -53
- package/src/keystore/helpers.ts +34 -55
- package/src/keystore/index.ts +15 -183
- package/src/ledger/clients/evm.ts +3 -7
- package/src/ledger/clients/thorchain/lib.ts +0 -19
- package/src/ledger/clients/utxo.ts +3 -2
- package/src/ledger/helpers/getLedgerClient.ts +2 -2
- package/src/ledger/index.ts +20 -21
- package/src/ledger/types.ts +1 -1
- package/src/okx/helpers.ts +23 -33
- package/src/okx/index.ts +4 -47
- package/src/onekey/evmSigner.ts +133 -0
- package/src/onekey/index.ts +213 -0
- package/src/phantom/index.ts +18 -42
- package/src/polkadotjs/index.ts +5 -7
- package/src/radix/index.ts +31 -47
- package/src/talisman/index.ts +15 -32
- package/src/trezor/index.ts +46 -45
- package/src/types.ts +199 -0
- package/src/utils.ts +54 -0
- package/src/walletconnect/constants.ts +1 -1
- package/src/walletconnect/helpers.ts +2 -2
- package/src/walletconnect/index.ts +36 -37
- package/dist/chunk-ha78se5g.js +0 -4
- package/dist/chunk-ha78se5g.js.map +0 -10
- package/dist/chunk-yvbvzc0q.js +0 -3
- package/dist/chunk-yvbvzc0q.js.map +0 -10
- package/src/bitget/bitgetWallet.ts +0 -32
- package/src/ctrl/ctrlWallet.ts +0 -175
- package/src/helpers.ts +0 -8
- package/src/ledger/ledgerLive.ts +0 -429
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/walletconnect/index.ts", "../src/walletconnect/constants.ts", "../src/walletconnect/evmSigner.ts", "../src/walletconnect/helpers.ts", "../src/walletconnect/namespaces.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { StdSignDoc } from \"@cosmjs/amino\";\nimport {\n Chain,\n ChainId,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type {
|
|
6
|
-
"import type { ClientMetadata } from \"./types\";\n\nexport const DEFAULT_RELAY_URL = \"wss://relay.walletconnect.com\";\n\nexport const ETHEREUM_MAINNET_ID = \"eip155:1\";\nexport const BSC_MAINNET_ID = \"eip155:56\";\nexport const
|
|
5
|
+
"import type { StdSignDoc } from \"@cosmjs/amino\";\nimport {\n Chain,\n ChainId,\n type GenericTransferParams,\n SKConfig,\n SwapKitError,\n WalletOption,\n createWallet,\n filterSupportedChains,\n} from \"@swapkit/helpers\";\nimport type { ThorchainDepositParams, createThorchainToolbox } from \"@swapkit/toolboxes/cosmos\";\nimport type { WalletConnectModalSign } from \"@walletconnect/modal-sign-html\";\nimport type { SessionTypes, SignClientTypes } from \"@walletconnect/types\";\n\nimport { getWalletSupportedChains } from \"../utils\";\nimport {\n DEFAULT_APP_METADATA,\n DEFAULT_COSMOS_METHODS,\n DEFAULT_LOGGER,\n DEFAULT_RELAY_URL,\n THORCHAIN_MAINNET_ID,\n} from \"./constants\";\nimport { getEVMSigner } from \"./evmSigner\";\nimport { chainToChainId, getAddressByChain } from \"./helpers\";\nimport { getRequiredNamespaces } from \"./namespaces\";\n\nexport * from \"./constants\";\nexport * from \"./types\";\n\nexport const walletconnectWallet = createWallet({\n name: \"connectWalletconnect\",\n walletType: WalletOption.WALLETCONNECT,\n supportedChains: [\n Chain.Arbitrum,\n Chain.Avalanche,\n Chain.Base,\n Chain.BinanceSmartChain,\n Chain.Cosmos,\n Chain.Ethereum,\n Chain.Kujira,\n Chain.Maya,\n Chain.Optimism,\n Chain.Polygon,\n Chain.THORChain,\n ],\n connect: ({ addChain, supportedChains, walletType }) =>\n async function connectWalletconnect(\n chains: Chain[],\n walletconnectOptions?: SignClientTypes.Options,\n ) {\n const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });\n const { walletConnectProjectId } = SKConfig.get(\"apiKeys\");\n\n if (!walletConnectProjectId) {\n throw new SwapKitError(\"wallet_walletconnect_project_id_not_specified\");\n }\n\n const walletconnect = await getWalletconnect(\n filteredChains,\n walletConnectProjectId,\n walletconnectOptions,\n );\n\n if (!walletconnect) {\n throw new SwapKitError(\"wallet_walletconnect_connection_not_established\");\n }\n\n const { session, accounts } = walletconnect;\n\n await Promise.all(\n filteredChains.map(async (chain) => {\n const address = getAddressByChain(chain, accounts);\n const toolbox = await getToolbox({ session, address, chain, walletconnect });\n\n addChain({\n ...toolbox,\n address,\n chain,\n disconnect: walletconnect.disconnect,\n walletType: WalletOption.WALLETCONNECT,\n });\n }),\n );\n\n return true;\n },\n});\n\nexport const WC_SUPPORTED_CHAINS = getWalletSupportedChains(walletconnectWallet);\nexport type Walletconnect = Awaited<ReturnType<typeof getWalletconnect>>;\n\nasync function getToolbox<T extends (typeof WC_SUPPORTED_CHAINS)[number]>({\n chain,\n walletconnect,\n address,\n session,\n}: {\n walletconnect: Walletconnect;\n session: SessionTypes.Struct;\n chain: T;\n address: string;\n}) {\n switch (chain) {\n case Chain.Arbitrum:\n case Chain.Avalanche:\n case Chain.Base:\n case Chain.BinanceSmartChain:\n case Chain.Ethereum:\n case Chain.Optimism:\n case Chain.Polygon: {\n const { getProvider, getEvmToolbox } = await import(\"@swapkit/toolboxes/evm\");\n\n const provider = await getProvider(chain);\n const signer = await getEVMSigner({ walletconnect, chain, provider });\n const toolbox = await getEvmToolbox(chain, { provider, signer });\n\n return toolbox;\n }\n\n case Chain.THORChain: {\n const { SignMode } = await import(\"cosmjs-types/cosmos/tx/signing/v1beta1/signing.js\");\n const { TxRaw } = await import(\"cosmjs-types/cosmos/tx/v1beta1/tx.js\");\n const { encodePubkey, makeAuthInfoBytes } = await import(\"@cosmjs/proto-signing\");\n const { makeSignDoc } = await import(\"@cosmjs/amino\");\n const {\n getCosmosToolbox,\n buildAminoMsg,\n buildEncodedTxBody,\n createStargateClient,\n fromBase64,\n getDefaultChainFee,\n parseAminoMessageForDirectSigning,\n } = await import(\"@swapkit/toolboxes/cosmos\");\n const toolbox = await getCosmosToolbox(Chain.THORChain);\n\n async function getAccount(accountAddress: string) {\n const cosmosToolbox = toolbox;\n const account = await (\n cosmosToolbox as Awaited<ReturnType<typeof createThorchainToolbox>>\n ).getAccount(accountAddress);\n\n if (chain !== Chain.THORChain) {\n return account;\n }\n\n const [{ address, algo, pubkey }] = (await walletconnect?.client.request({\n chainId: THORCHAIN_MAINNET_ID,\n topic: session.topic,\n request: {\n method: DEFAULT_COSMOS_METHODS.COSMOS_GET_ACCOUNTS,\n params: {},\n },\n })) as [{ address: string; algo: string; pubkey: string }];\n\n return { ...account, address, pubkey: { type: algo, value: pubkey } };\n }\n\n const fee = getDefaultChainFee(chain);\n\n const signRequest = (signDoc: StdSignDoc) =>\n walletconnect?.client.request({\n chainId: THORCHAIN_MAINNET_ID,\n topic: session.topic,\n request: {\n method: DEFAULT_COSMOS_METHODS.COSMOS_SIGN_AMINO,\n params: { signerAddress: address, signDoc },\n },\n });\n\n async function thorchainTransfer({\n assetValue,\n memo,\n ...rest\n }: GenericTransferParams | ThorchainDepositParams) {\n const account = await toolbox.getAccount(address);\n if (!account) {\n throw new SwapKitError({ errorKey: \"wallet_missing_params\", info: { account } });\n }\n\n if (!account.pubkey) {\n throw new SwapKitError({\n errorKey: \"wallet_missing_params\",\n info: { account, pubkey: account?.pubkey },\n });\n }\n\n const { accountNumber, sequence = 0 } = account;\n\n const msgs = [buildAminoMsg({ assetValue, memo, sender: address, ...rest })];\n\n const chainId = ChainId.THORChain;\n\n const signDoc = makeSignDoc(\n msgs,\n fee,\n chainId,\n memo,\n accountNumber?.toString(),\n sequence?.toString() || \"0\",\n );\n\n const signature: any = await signRequest(signDoc);\n\n const bodyBytes = await buildEncodedTxBody({\n chain: Chain.THORChain,\n msgs: msgs.map(parseAminoMessageForDirectSigning),\n memo: memo || \"\",\n });\n const pubkey = encodePubkey(account.pubkey);\n const authInfoBytes = makeAuthInfoBytes(\n [{ pubkey, sequence }],\n fee.amount,\n Number.parseInt(fee.gas),\n undefined,\n undefined,\n SignMode.SIGN_MODE_LEGACY_AMINO_JSON,\n );\n\n const txRaw = TxRaw.fromPartial({\n bodyBytes,\n authInfoBytes,\n signatures: [\n fromBase64(\n typeof signature.signature === \"string\"\n ? signature.signature\n : signature.signature.signature,\n ),\n ],\n });\n const txBytes = TxRaw.encode(txRaw).finish();\n\n const broadcaster = await createStargateClient(SKConfig.get(\"rpcUrls\")[Chain.THORChain]);\n const result = await broadcaster.broadcastTx(txBytes);\n return result.transactionHash;\n }\n\n return {\n ...toolbox,\n transfer: (params: GenericTransferParams) => thorchainTransfer(params),\n deposit: (params: ThorchainDepositParams) => thorchainTransfer(params),\n getAccount,\n };\n }\n default:\n throw new SwapKitError({\n errorKey: \"wallet_chain_not_supported\",\n info: { chain, wallet: WalletOption.WALLETCONNECT },\n });\n }\n}\n\nasync function getWalletconnect(\n chains: Chain[],\n walletConnectProjectId?: string,\n walletconnectOptions?: SignClientTypes.Options,\n) {\n let modal: WalletConnectModalSign | undefined;\n try {\n if (!walletConnectProjectId) {\n throw new SwapKitError(\"wallet_walletconnect_project_id_not_specified\");\n }\n const requiredNamespaces = getRequiredNamespaces(chains.map(chainToChainId));\n\n const { WalletConnectModalSign } = await import(\"@walletconnect/modal-sign-html\");\n\n const client = new WalletConnectModalSign({\n logger: DEFAULT_LOGGER,\n relayUrl: DEFAULT_RELAY_URL,\n projectId: walletConnectProjectId,\n metadata: walletconnectOptions?.metadata || DEFAULT_APP_METADATA,\n ...walletconnectOptions?.core,\n });\n\n const oldSession = await client.getSession();\n\n // disconnect old Session cause we can't handle using it with current ui\n if (oldSession) {\n await client.disconnect({\n topic: oldSession.topic,\n reason: { code: 0, message: \"Resetting session\" },\n });\n }\n\n const session = await client.connect({ requiredNamespaces });\n\n const accounts = Object.values(session.namespaces).flatMap(\n (namespace: any) => namespace.accounts,\n );\n\n const disconnect = async () => {\n await client.disconnect({\n topic: session.topic,\n reason: { code: 0, message: \"User disconnected\" },\n });\n };\n\n return { session, accounts, client, disconnect };\n } catch (e) {\n console.error(e);\n } finally {\n if (modal) {\n // @ts-expect-error wrong typing\n modal.closeModal();\n }\n }\n return undefined;\n}\n",
|
|
6
|
+
"import type { ClientMetadata } from \"./types\";\n\nexport const DEFAULT_RELAY_URL = \"wss://relay.walletconnect.com\";\n\nexport const ETHEREUM_MAINNET_ID = \"eip155:1\";\nexport const BSC_MAINNET_ID = \"eip155:56\";\nexport const AVALANCHE_MAINNET_ID = \"eip155:43114\";\nexport const THORCHAIN_MAINNET_ID = \"cosmos:thorchain\";\nexport const COSMOS_HUB_MAINNET_ID = \"cosmos:cosmoshub-4\";\nexport const KUJIRA_MAINNET_ID = \"cosmos:kaiyo-1\";\nexport const MAYACHAIN_MAINNET_ID = \"cosmos:mayachain-mainnet-v1\";\nexport const ARBITRUM_ONE_MAINNET_ID = \"eip155:42161\";\nexport const OPTIMISM_MAINNET_ID = \"eip155:10\";\nexport const POLYGON_MAINNET_ID = \"eip155:137\";\nexport const BASE_MAINNET_ID = \"eip155:8453\";\n\nexport const DEFAULT_LOGGER = \"debug\";\n\nexport const DEFAULT_APP_METADATA: ClientMetadata = {\n name: \"THORSwap\",\n description: \"THORSwap multi-chain dex aggregator powered by THORChain\",\n url: \"https://app.thorswap.finance/\",\n icons: [\"https://static.thorswap.net/logo.png\"],\n};\n\n/**\n * EIP155\n */\nexport enum DEFAULT_EIP155_METHODS {\n ETH_SEND_TRANSACTION = \"eth_sendTransaction\",\n // not supported by most WC wallets\n // ETH_SIGN_TRANSACTION = 'eth_signTransaction',\n ETH_SIGN = \"eth_sign\",\n PERSONAL_SIGN = \"personal_sign\",\n ETH_SIGN_TYPED_DATA = \"eth_signTypedData\",\n}\n\nexport enum DEFAULT_EIP_155_EVENTS {\n ETH_CHAIN_CHANGED = \"chainChanged\",\n ETH_ACCOUNTS_CHANGED = \"accountsChanged\",\n}\n\n/**\n * COSMOS\n */\nexport enum DEFAULT_COSMOS_METHODS {\n COSMOS_SIGN_DIRECT = \"cosmos_signDirect\",\n COSMOS_SIGN_AMINO = \"cosmos_signAmino\",\n COSMOS_GET_ACCOUNTS = \"cosmos_getAccounts\",\n}\n\nexport enum DEFAULT_COSMOS_EVENTS {}\n\n/**\n * SOLANA\n */\nexport enum DEFAULT_SOLANA_METHODS {\n SOL_SIGN_TRANSACTION = \"solana_signTransaction\",\n SOL_SIGN_MESSAGE = \"solana_signMessage\",\n}\n\nexport enum DEFAULT_SOLANA_EVENTS {}\n\n/**\n * POLKADOT\n */\nexport enum DEFAULT_POLKADOT_METHODS {\n POLKADOT_SIGN_TRANSACTION = \"polkadot_signTransaction\",\n POLKADOT_SIGN_MESSAGE = \"polkadot_signMessage\",\n}\n\nexport enum DEFAULT_POLKADOT_EVENTS {}\n\n/**\n * NEAR\n */\nexport enum DEFAULT_NEAR_METHODS {\n NEAR_SIGN_IN = \"near_signIn\",\n NEAR_SIGN_OUT = \"near_signOut\",\n NEAR_GET_ACCOUNTS = \"near_getAccounts\",\n NEAR_SIGN_AND_SEND_TRANSACTION = \"near_signAndSendTransaction\",\n NEAR_SIGN_AND_SEND_TRANSACTIONS = \"near_signAndSendTransactions\",\n}\n\nexport enum DEFAULT_NEAR_EVENTS {}\n",
|
|
7
7
|
"import { type EVMChain, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport type { JsonRpcProvider, Provider, TransactionRequest, TransactionResponse } from \"ethers\";\nimport { AbstractSigner } from \"ethers\";\n\nimport { DEFAULT_EIP155_METHODS } from \"./constants\";\nimport { chainToChainId, getAddressByChain } from \"./helpers\";\nimport type { Walletconnect } from \"./index\";\n\ninterface WalletconnectEVMSignerParams {\n chain: EVMChain;\n walletconnect: Walletconnect;\n provider: Provider | JsonRpcProvider;\n}\n\nclass WalletconnectSigner extends AbstractSigner {\n address: string;\n\n private chain: EVMChain;\n private walletconnect: Walletconnect;\n readonly provider: Provider | JsonRpcProvider;\n\n constructor({ chain, provider, walletconnect }: WalletconnectEVMSignerParams) {\n super(provider);\n this.chain = chain;\n this.walletconnect = walletconnect;\n this.provider = provider;\n this.address = \"\";\n }\n\n // biome-ignore lint/suspicious/useAwait: fulfil implementation type\n getAddress = async () => {\n if (!this.walletconnect) {\n throw new SwapKitError(\"wallet_walletconnect_connection_not_established\");\n }\n if (!this.address) {\n this.address = getAddressByChain(this.chain, this.walletconnect.accounts);\n }\n\n return this.address;\n };\n\n signMessage = async (message: string) => {\n // this is probably broken\n const txHash = (await this.walletconnect?.client.request({\n chainId: chainToChainId(this.chain),\n topic: this.walletconnect.session.topic,\n request: {\n method: DEFAULT_EIP155_METHODS.ETH_SIGN,\n params: [message],\n },\n })) as string;\n\n return txHash.startsWith(\"0x\") ? txHash : `0x${txHash}`;\n };\n\n signTransaction = () => {\n throw new Error(\"Not implemented: signTransaction\");\n\n // const baseTx = {\n // from,\n // to,\n // value: BigNumber.from(value || 0).toHexString(),\n // data,\n // };\n\n // const txHash = (await this.walletconnect?.client.request({\n // chainId: chainToChainId(this.chain),\n // topic: this.walletconnect.session.topic,\n // request: {\n // method: DEFAULT_EIP155_METHODS.ETH_SIGN_TRANSACTION,\n // params: [baseTx],\n // },\n // })) as string;\n\n // return txHash.startsWith('0x') ? txHash : `0x${txHash}`;\n };\n\n // ANCHOR (@Towan) - Implement in future\n signTypedData = () => {\n throw new Error(\"Not implemented: signTypedData\");\n\n // const { toHexString } = await import('@swapkit/toolboxes/evm');\n\n // const baseTx = {\n // from,\n // to,\n // value: toHexString(value || 0n),\n // data,\n // };\n\n // const txHash = (await this.walletconnect?.client.request({\n // chainId: chainToChainId(this.chain),\n // topic: this.walletconnect.session.topic,\n // request: {\n // method: DEFAULT_EIP155_METHODS.ETH_SIGN_TYPED_DATA,\n // params: [baseTx],\n // },\n // })) as string;\n\n // return txHash.startsWith('0x') ? txHash : `0x${txHash}`;\n };\n\n sendTransaction = async ({ from, to, value, data }: TransactionRequest) => {\n const { toHexString } = await import(\"@swapkit/toolboxes/evm\");\n\n const baseTx = {\n from,\n to,\n value: toHexString(BigInt(value || 0)),\n data,\n };\n const response = await this.walletconnect?.client.request({\n chainId: chainToChainId(this.chain),\n topic: this.walletconnect.session.topic,\n request: {\n method: DEFAULT_EIP155_METHODS.ETH_SEND_TRANSACTION,\n params: [baseTx],\n },\n });\n\n return response as TransactionResponse;\n };\n\n connect = (provider: Provider | null) => {\n if (!provider) {\n throw new SwapKitError({\n errorKey: \"wallet_provider_not_found\",\n info: { wallet: WalletOption.WALLETCONNECT, chain: this.chain },\n });\n }\n\n return new WalletconnectSigner({\n chain: this.chain,\n walletconnect: this.walletconnect,\n provider,\n });\n };\n}\nexport const getEVMSigner = async ({\n chain,\n walletconnect,\n provider,\n}: WalletconnectEVMSignerParams) => new WalletconnectSigner({ chain, walletconnect, provider });\n",
|
|
8
|
-
"import { Chain, type EVMChain } from \"@swapkit/helpers\";\n\nimport {\n ARBITRUM_ONE_MAINNET_ID,\n
|
|
8
|
+
"import { Chain, type EVMChain } from \"@swapkit/helpers\";\n\nimport {\n ARBITRUM_ONE_MAINNET_ID,\n AVALANCHE_MAINNET_ID,\n BASE_MAINNET_ID,\n BSC_MAINNET_ID,\n COSMOS_HUB_MAINNET_ID,\n ETHEREUM_MAINNET_ID,\n KUJIRA_MAINNET_ID,\n MAYACHAIN_MAINNET_ID,\n OPTIMISM_MAINNET_ID,\n POLYGON_MAINNET_ID,\n THORCHAIN_MAINNET_ID,\n} from \"./constants\";\n\nexport const getAddressByChain = (\n chain: EVMChain | Chain.THORChain | Chain.Maya | Chain.Kujira | Chain.Cosmos,\n accounts: string[],\n) => {\n const account = accounts.find((account) => account.startsWith(chainToChainId(chain))) || \"\";\n const address = account?.split(\":\")?.[2];\n\n return address || \"\";\n};\n\nexport const chainToChainId = (chain: Chain) => {\n switch (chain) {\n case Chain.Avalanche:\n return AVALANCHE_MAINNET_ID;\n case Chain.Base:\n return BASE_MAINNET_ID;\n case Chain.BinanceSmartChain:\n return BSC_MAINNET_ID;\n case Chain.Ethereum:\n return ETHEREUM_MAINNET_ID;\n case Chain.THORChain:\n return THORCHAIN_MAINNET_ID;\n case Chain.Arbitrum:\n return ARBITRUM_ONE_MAINNET_ID;\n case Chain.Optimism:\n return OPTIMISM_MAINNET_ID;\n case Chain.Polygon:\n return POLYGON_MAINNET_ID;\n case Chain.Maya:\n return MAYACHAIN_MAINNET_ID;\n case Chain.Cosmos:\n return COSMOS_HUB_MAINNET_ID;\n case Chain.Kujira:\n return KUJIRA_MAINNET_ID;\n default:\n return \"\";\n }\n};\n",
|
|
9
9
|
"import type { ProposalTypes } from \"@walletconnect/types\";\n\nimport { SwapKitError } from \"@swapkit/helpers\";\nimport {\n DEFAULT_COSMOS_METHODS,\n DEFAULT_EIP155_METHODS,\n DEFAULT_EIP_155_EVENTS,\n DEFAULT_NEAR_EVENTS,\n DEFAULT_NEAR_METHODS,\n DEFAULT_POLKADOT_EVENTS,\n DEFAULT_POLKADOT_METHODS,\n DEFAULT_SOLANA_EVENTS,\n DEFAULT_SOLANA_METHODS,\n} from \"./constants\";\n\nexport const getNamespacesFromChains = (chains: string[]) => {\n const supportedNamespaces: string[] = [];\n for (const chainId of chains) {\n const [namespace] = chainId.split(\":\");\n if (namespace && !supportedNamespaces.includes(namespace)) {\n supportedNamespaces.push(namespace);\n }\n }\n\n return supportedNamespaces;\n};\n\nexport const getSupportedMethodsByNamespace = (namespace: string) => {\n switch (namespace) {\n case \"eip155\":\n return Object.values(DEFAULT_EIP155_METHODS);\n case \"cosmos\":\n return Object.values(DEFAULT_COSMOS_METHODS);\n case \"solana\":\n return Object.values(DEFAULT_SOLANA_METHODS);\n case \"polkadot\":\n return Object.values(DEFAULT_POLKADOT_METHODS);\n case \"near\":\n return Object.values(DEFAULT_NEAR_METHODS);\n default:\n throw new SwapKitError({\n errorKey: \"wallet_walletconnect_namespace_not_supported\",\n info: { namespace },\n });\n }\n};\n\nexport const getSupportedEventsByNamespace = (namespace: string) => {\n switch (namespace) {\n case \"eip155\":\n return Object.values(DEFAULT_EIP_155_EVENTS);\n case \"cosmos\":\n return [];\n case \"solana\":\n return Object.values(DEFAULT_SOLANA_EVENTS);\n case \"polkadot\":\n return Object.values(DEFAULT_POLKADOT_EVENTS);\n case \"near\":\n return Object.values(DEFAULT_NEAR_EVENTS);\n default:\n throw new SwapKitError({\n errorKey: \"wallet_walletconnect_namespace_not_supported\",\n info: { namespace },\n });\n }\n};\n\nexport const getRequiredNamespaces = (chains: string[]): ProposalTypes.RequiredNamespaces => {\n const selectedNamespaces = getNamespacesFromChains(chains);\n\n return Object.fromEntries(\n selectedNamespaces.map((namespace) => [\n namespace,\n {\n methods: getSupportedMethodsByNamespace(namespace),\n chains: chains.filter((chain) => chain.startsWith(namespace)),\n events: getSupportedEventsByNamespace(namespace) as any[],\n },\n ]),\n );\n};\n"
|
|
10
10
|
],
|
|
11
|
-
"mappings": "kGACA,cACE,aACA,
|
|
12
|
-
"debugId": "
|
|
11
|
+
"mappings": "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",
|
|
12
|
+
"debugId": "CF101C8AB8BC593A64756E2164756E21",
|
|
13
13
|
"names": []
|
|
14
14
|
}
|
package/package.json
CHANGED
|
@@ -5,41 +5,42 @@
|
|
|
5
5
|
"dist/"
|
|
6
6
|
],
|
|
7
7
|
"dependencies": {
|
|
8
|
-
"@coinbase/wallet-sdk": "4.3.
|
|
9
|
-
"@cosmjs/amino": "0.33.
|
|
10
|
-
"@cosmjs/crypto": "0.33.
|
|
11
|
-
"@cosmjs/proto-signing": "0.33.
|
|
8
|
+
"@coinbase/wallet-sdk": "4.3.2",
|
|
9
|
+
"@cosmjs/amino": "0.33.1",
|
|
10
|
+
"@cosmjs/crypto": "0.33.1",
|
|
11
|
+
"@cosmjs/proto-signing": "0.33.1",
|
|
12
12
|
"@keepkey/keepkey-sdk": "0.2.62",
|
|
13
|
-
"@keplr-wallet/types": "0.12.
|
|
13
|
+
"@keplr-wallet/types": "0.12.219",
|
|
14
14
|
"@ledgerhq/devices": "8.4.4",
|
|
15
15
|
"@ledgerhq/errors": "6.19.1",
|
|
16
|
-
"@ledgerhq/hw-app-btc": "10.
|
|
17
|
-
"@ledgerhq/hw-app-cosmos": "6.
|
|
18
|
-
"@ledgerhq/hw-app-eth": "6.
|
|
16
|
+
"@ledgerhq/hw-app-btc": "10.8.0",
|
|
17
|
+
"@ledgerhq/hw-app-cosmos": "6.32.0",
|
|
18
|
+
"@ledgerhq/hw-app-eth": "6.45.0",
|
|
19
19
|
"@ledgerhq/hw-transport": "6.31.4",
|
|
20
20
|
"@ledgerhq/hw-transport-webusb": "6.29.4",
|
|
21
|
-
"@ledgerhq/wallet-api-client": "1.
|
|
22
|
-
"@passkeys/core": "3.3.
|
|
23
|
-
"@passkeys/react": "2.5.
|
|
24
|
-
"@radixdlt/babylon-gateway-api-sdk": "1.
|
|
21
|
+
"@ledgerhq/wallet-api-client": "1.7.3",
|
|
22
|
+
"@passkeys/core": "3.3.7",
|
|
23
|
+
"@passkeys/react": "2.5.4",
|
|
24
|
+
"@radixdlt/babylon-gateway-api-sdk": "1.10.1",
|
|
25
25
|
"@radixdlt/radix-dapp-toolkit": "2.2.1",
|
|
26
|
-
"@radixdlt/wallet-sdk": "1.0.1",
|
|
27
26
|
"@scure/base": "1.2.4",
|
|
28
27
|
"@scure/bip39": "1.5.4",
|
|
29
|
-
"@
|
|
30
|
-
"@swapkit/
|
|
31
|
-
"@
|
|
32
|
-
"@trezor/connect-web": "9.4.7",
|
|
28
|
+
"@swapkit/helpers": "3.0.0-beta.2",
|
|
29
|
+
"@swapkit/toolboxes": "1.0.0-beta.2",
|
|
30
|
+
"@trezor/connect-web": "9.5.4",
|
|
33
31
|
"@walletconnect/modal-sign-html": "2.7.0",
|
|
32
|
+
"bitcoinjs-lib": "6.1.7",
|
|
34
33
|
"blakejs": "1.2.1",
|
|
35
34
|
"cosmjs-types": "0.9.0",
|
|
36
|
-
"
|
|
37
|
-
"
|
|
35
|
+
"sats-connect": "3.3.0",
|
|
36
|
+
"ts-pattern": "5.7.0"
|
|
37
|
+
},
|
|
38
|
+
"peerDependencies": {
|
|
39
|
+
"@solana/web3.js": "1.98.0"
|
|
38
40
|
},
|
|
39
41
|
"devDependencies": {
|
|
40
|
-
"@types/ripemd160": "2.0.3",
|
|
41
42
|
"@walletconnect/logger": "2.1.2",
|
|
42
|
-
"@walletconnect/types": "2.
|
|
43
|
+
"@walletconnect/types": "2.19.2"
|
|
43
44
|
},
|
|
44
45
|
"exports": {
|
|
45
46
|
".": {
|
|
@@ -102,6 +103,11 @@
|
|
|
102
103
|
"require": "./dist/src/okx/index.cjs",
|
|
103
104
|
"types": "./src/okx/index.ts"
|
|
104
105
|
},
|
|
106
|
+
"./onekey": {
|
|
107
|
+
"default": "./dist/src/onekey/index.js",
|
|
108
|
+
"require": "./dist/src/onekey/index.cjs",
|
|
109
|
+
"types": "./src/onekey/index.ts"
|
|
110
|
+
},
|
|
105
111
|
"./phantom": {
|
|
106
112
|
"default": "./dist/src/phantom/index.js",
|
|
107
113
|
"require": "./dist/src/phantom/index.cjs",
|
|
@@ -142,12 +148,11 @@
|
|
|
142
148
|
},
|
|
143
149
|
"scripts": {
|
|
144
150
|
"build": "bun run ./build.ts",
|
|
151
|
+
"build:clean": "rm -rf dist && bun run ./build.ts",
|
|
145
152
|
"clean": "rm -rf dist node_modules *.tsbuildinfo",
|
|
146
|
-
"
|
|
147
|
-
"
|
|
148
|
-
"test:ci": "bun test --coverage",
|
|
149
|
-
"type-check": "tsc --noEmit"
|
|
153
|
+
"type-check": "bun tsc --noEmit",
|
|
154
|
+
"type-check:go": "tsgo"
|
|
150
155
|
},
|
|
151
156
|
"type": "module",
|
|
152
|
-
"version": "3.0.0-beta.
|
|
157
|
+
"version": "3.0.0-beta.2"
|
|
153
158
|
}
|
package/src/bitget/helpers.ts
CHANGED
|
@@ -1,48 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
|
-
type AssetValue,
|
|
3
2
|
Chain,
|
|
4
3
|
ChainId,
|
|
5
4
|
type EVMChain,
|
|
6
|
-
SKConfig,
|
|
7
5
|
SwapKitError,
|
|
8
|
-
type WalletTxParams,
|
|
9
6
|
prepareNetworkSwitch,
|
|
10
7
|
switchEVMWalletNetwork,
|
|
11
8
|
} from "@swapkit/helpers";
|
|
12
|
-
import type {
|
|
13
|
-
import type { Psbt, UTXOTransferParams } from "@swapkit/toolboxes/utxo";
|
|
9
|
+
import type { Psbt } from "bitcoinjs-lib";
|
|
14
10
|
import type { Eip1193Provider } from "ethers";
|
|
15
11
|
|
|
16
|
-
function cosmosTransfer() {
|
|
17
|
-
return async ({ from, recipient, assetValue, memo }: TransferParams) => {
|
|
18
|
-
const { getMsgSendDenom, createSigningStargateClient } = await import(
|
|
19
|
-
"@swapkit/toolboxes/cosmos"
|
|
20
|
-
);
|
|
21
|
-
if (!(window.bitkeep && "keplr" in window.bitkeep)) {
|
|
22
|
-
throw new SwapKitError("wallet_bitkeep_not_found");
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
const { keplr: wallet } = window.bitkeep;
|
|
26
|
-
|
|
27
|
-
const offlineSigner = wallet.getOfflineSignerOnlyAmino(ChainId.Cosmos);
|
|
28
|
-
const cosmJS = await createSigningStargateClient(SKConfig.get("rpcUrls").GAIA, offlineSigner);
|
|
29
|
-
|
|
30
|
-
const coins = [
|
|
31
|
-
{
|
|
32
|
-
denom: getMsgSendDenom(assetValue.symbol).toLowerCase(),
|
|
33
|
-
amount: assetValue.getBaseValue("string"),
|
|
34
|
-
},
|
|
35
|
-
];
|
|
36
|
-
|
|
37
|
-
try {
|
|
38
|
-
const { transactionHash } = await cosmJS.sendTokens(from, recipient, coins, 2, memo);
|
|
39
|
-
return transactionHash;
|
|
40
|
-
} catch (error) {
|
|
41
|
-
throw new SwapKitError("core_transaction_failed", { error });
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
|
|
46
12
|
export async function getWalletMethods(chain: Chain) {
|
|
47
13
|
const bitget = window.bitkeep;
|
|
48
14
|
|
|
@@ -60,16 +26,10 @@ export async function getWalletMethods(chain: Chain) {
|
|
|
60
26
|
|
|
61
27
|
const wallet = bitget.ethereum;
|
|
62
28
|
|
|
63
|
-
const
|
|
64
|
-
|
|
29
|
+
const [address]: [string] = await wallet.send("eth_requestAccounts", []);
|
|
65
30
|
const evmWallet = await getWeb3WalletMethods({ chain, walletProvider: wallet });
|
|
66
31
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
const getBalance = async (addressOverwrite?: string, potentialScamFilter = true) =>
|
|
70
|
-
evmWallet.getBalance(addressOverwrite || address, potentialScamFilter, getProvider(chain));
|
|
71
|
-
|
|
72
|
-
return { ...evmWallet, getBalance, address };
|
|
32
|
+
return { ...evmWallet, address };
|
|
73
33
|
}
|
|
74
34
|
|
|
75
35
|
case Chain.Bitcoin: {
|
|
@@ -78,9 +38,9 @@ export async function getWalletMethods(chain: Chain) {
|
|
|
78
38
|
}
|
|
79
39
|
const { unisat: wallet } = bitget;
|
|
80
40
|
|
|
81
|
-
const { Psbt
|
|
41
|
+
const { Psbt } = await import("bitcoinjs-lib");
|
|
42
|
+
const { getUtxoToolbox } = await import("@swapkit/toolboxes/utxo");
|
|
82
43
|
const [address] = await wallet.requestAccounts();
|
|
83
|
-
const toolbox = BTCToolbox();
|
|
84
44
|
|
|
85
45
|
async function signTransaction(psbt: Psbt) {
|
|
86
46
|
const signedPsbt = await wallet.signPsbt(psbt.toHex(), { autoFinalized: false });
|
|
@@ -88,11 +48,14 @@ export async function getWalletMethods(chain: Chain) {
|
|
|
88
48
|
return Psbt.fromHex(signedPsbt);
|
|
89
49
|
}
|
|
90
50
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
51
|
+
const signer = {
|
|
52
|
+
getAddress: () => Promise.resolve(address),
|
|
53
|
+
signTransaction,
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
const toolbox = await getUtxoToolbox(Chain.Bitcoin, { signer });
|
|
94
57
|
|
|
95
|
-
return { ...toolbox,
|
|
58
|
+
return { ...toolbox, address };
|
|
96
59
|
}
|
|
97
60
|
|
|
98
61
|
case Chain.Cosmos: {
|
|
@@ -102,14 +65,24 @@ export async function getWalletMethods(chain: Chain) {
|
|
|
102
65
|
const { keplr: wallet } = bitget;
|
|
103
66
|
|
|
104
67
|
await wallet.enable(ChainId.Cosmos);
|
|
105
|
-
const
|
|
68
|
+
const offlineSigner = wallet.getOfflineSignerOnlyAmino(ChainId.Cosmos);
|
|
69
|
+
const accounts = await offlineSigner.getAccounts();
|
|
106
70
|
if (!accounts?.[0]) throw new Error("No cosmos account found");
|
|
107
71
|
|
|
108
|
-
const {
|
|
109
|
-
const toolbox = GaiaToolbox();
|
|
72
|
+
const { getCosmosToolbox } = await import("@swapkit/toolboxes/cosmos");
|
|
110
73
|
const [{ address }] = accounts;
|
|
111
74
|
|
|
112
|
-
|
|
75
|
+
const signer = {
|
|
76
|
+
...offlineSigner,
|
|
77
|
+
getAddress: () => Promise.resolve(address),
|
|
78
|
+
signTransaction: async () => Promise.resolve({} as any),
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
const toolbox = getCosmosToolbox(Chain.Cosmos, {
|
|
82
|
+
signer,
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
return { ...toolbox, address };
|
|
113
86
|
}
|
|
114
87
|
|
|
115
88
|
case Chain.Solana: {
|
|
@@ -117,47 +90,14 @@ export async function getWalletMethods(chain: Chain) {
|
|
|
117
90
|
throw new SwapKitError("wallet_bitkeep_not_found");
|
|
118
91
|
}
|
|
119
92
|
|
|
120
|
-
const {
|
|
93
|
+
const { getSolanaToolbox } = await import("@swapkit/toolboxes/solana");
|
|
121
94
|
const provider = bitget?.solana;
|
|
122
95
|
|
|
96
|
+
const toolbox = getSolanaToolbox({ signer: provider });
|
|
123
97
|
const providerConnection = await provider.connect();
|
|
124
98
|
const address: string = providerConnection.publicKey.toString();
|
|
125
99
|
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
const transfer = async ({
|
|
129
|
-
recipient,
|
|
130
|
-
assetValue,
|
|
131
|
-
isProgramDerivedAddress,
|
|
132
|
-
memo,
|
|
133
|
-
}: WalletTxParams & { assetValue: AssetValue; isProgramDerivedAddress?: boolean }) => {
|
|
134
|
-
const validateAddress = await toolbox.getAddressValidator();
|
|
135
|
-
|
|
136
|
-
if (!(isProgramDerivedAddress || validateAddress(recipient))) {
|
|
137
|
-
throw new SwapKitError("core_transaction_invalid_recipient_address");
|
|
138
|
-
}
|
|
139
|
-
const { PublicKey } = await import("@solana/web3.js");
|
|
140
|
-
const fromPublicKey = new PublicKey(address);
|
|
141
|
-
|
|
142
|
-
const connection = await toolbox.getConnection();
|
|
143
|
-
const transaction = await toolbox.createSolanaTransaction({
|
|
144
|
-
recipient,
|
|
145
|
-
assetValue,
|
|
146
|
-
memo,
|
|
147
|
-
fromPublicKey,
|
|
148
|
-
isProgramDerivedAddress,
|
|
149
|
-
});
|
|
150
|
-
|
|
151
|
-
const blockHash = await connection.getLatestBlockhash();
|
|
152
|
-
transaction.recentBlockhash = blockHash.blockhash;
|
|
153
|
-
transaction.feePayer = fromPublicKey;
|
|
154
|
-
|
|
155
|
-
const signedTransaction = await provider.signTransaction(transaction);
|
|
156
|
-
|
|
157
|
-
return toolbox.broadcastTransaction(signedTransaction);
|
|
158
|
-
};
|
|
159
|
-
|
|
160
|
-
return { ...toolbox, transfer, address };
|
|
100
|
+
return { ...toolbox, address };
|
|
161
101
|
}
|
|
162
102
|
|
|
163
103
|
default:
|
|
@@ -166,16 +106,16 @@ export async function getWalletMethods(chain: Chain) {
|
|
|
166
106
|
}
|
|
167
107
|
|
|
168
108
|
export const getWeb3WalletMethods = async ({
|
|
169
|
-
walletProvider,
|
|
170
109
|
chain,
|
|
110
|
+
walletProvider,
|
|
171
111
|
}: { walletProvider?: Eip1193Provider; chain: EVMChain }) => {
|
|
172
|
-
const {
|
|
112
|
+
const { getEvmToolbox } = await import("@swapkit/toolboxes/evm");
|
|
173
113
|
const { BrowserProvider } = await import("ethers");
|
|
174
114
|
if (!walletProvider) throw new SwapKitError("wallet_provider_not_found");
|
|
175
115
|
|
|
176
116
|
const provider = new BrowserProvider(walletProvider, "any");
|
|
177
117
|
const signer = await provider.getSigner();
|
|
178
|
-
const toolbox =
|
|
118
|
+
const toolbox = await getEvmToolbox(chain, { provider, signer });
|
|
179
119
|
|
|
180
120
|
try {
|
|
181
121
|
if (chain !== Chain.Ethereum && "getNetworkParams" in toolbox) {
|
|
@@ -185,5 +125,5 @@ export const getWeb3WalletMethods = async ({
|
|
|
185
125
|
throw new Error(`Failed to add/switch ${chain} network: ${chain}`);
|
|
186
126
|
}
|
|
187
127
|
|
|
188
|
-
return prepareNetworkSwitch({ toolbox, provider
|
|
128
|
+
return prepareNetworkSwitch({ chain, toolbox, provider });
|
|
189
129
|
};
|
package/src/bitget/index.ts
CHANGED
|
@@ -1,56 +1,34 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import {
|
|
2
|
+
Chain,
|
|
3
|
+
EVMChains,
|
|
4
|
+
WalletOption,
|
|
5
|
+
createWallet,
|
|
6
|
+
filterSupportedChains,
|
|
7
|
+
} from "@swapkit/helpers";
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
sighashTypes?: number[];
|
|
10
|
-
disableTweakSigner?: boolean;
|
|
11
|
-
} & ({ address: string } | { publicKey: string });
|
|
9
|
+
import { getWalletSupportedChains } from "../utils";
|
|
10
|
+
import { getWalletMethods } from "./helpers";
|
|
12
11
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
chainId: string,
|
|
37
|
-
signer: string,
|
|
38
|
-
data: string | Uint8Array,
|
|
39
|
-
) => Promise<StdSignature>;
|
|
40
|
-
verifyArbitrary: (
|
|
41
|
-
chainId: string,
|
|
42
|
-
signer: string,
|
|
43
|
-
data: string | Uint8Array,
|
|
44
|
-
signature: StdSignature,
|
|
45
|
-
) => Promise<boolean>;
|
|
46
|
-
getOfflineSignerOnlyAmino: (chainId: string) => OfflineAminoSigner;
|
|
47
|
-
};
|
|
48
|
-
solana: {
|
|
49
|
-
connect: () => Promise<{ publicKey: string }>;
|
|
50
|
-
getAccounts: () => Promise<{ publicKey: string }[]>;
|
|
51
|
-
signTransaction: (transaction: Transaction) => Promise<Transaction>;
|
|
52
|
-
};
|
|
53
|
-
ethereum: EthereumWindowProvider;
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
}
|
|
12
|
+
export const bitgetWallet = createWallet({
|
|
13
|
+
name: "connectBitget",
|
|
14
|
+
walletType: WalletOption.BITGET,
|
|
15
|
+
supportedChains: [...EVMChains, Chain.Cosmos, Chain.Bitcoin, Chain.Solana],
|
|
16
|
+
connect: ({ addChain, walletType, supportedChains }) =>
|
|
17
|
+
async function connectBitget(chains: Chain[]) {
|
|
18
|
+
const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });
|
|
19
|
+
|
|
20
|
+
await Promise.all(
|
|
21
|
+
filteredChains.map(async (chain) => {
|
|
22
|
+
const walletMethods = await getWalletMethods(chain);
|
|
23
|
+
|
|
24
|
+
const address = (await walletMethods.getAddress()) || "";
|
|
25
|
+
|
|
26
|
+
addChain({ ...walletMethods, address, chain, walletType });
|
|
27
|
+
}),
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
return true;
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
export const BITGET_SUPPORTED_CHAINS = getWalletSupportedChains(bitgetWallet);
|
package/src/coinbase/index.ts
CHANGED
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
filterSupportedChains,
|
|
8
8
|
} from "@swapkit/helpers";
|
|
9
9
|
|
|
10
|
-
import { getWalletSupportedChains } from "../
|
|
10
|
+
import { getWalletSupportedChains } from "../utils";
|
|
11
11
|
import { getWalletMethods } from "./signer";
|
|
12
12
|
|
|
13
13
|
export const coinbaseWallet = createWallet({
|
|
@@ -41,7 +41,7 @@ export const coinbaseWallet = createWallet({
|
|
|
41
41
|
filteredChains.map(async (chain) => {
|
|
42
42
|
const walletMethods = await getWalletMethods({ chain, coinbaseSdk });
|
|
43
43
|
|
|
44
|
-
addChain({ ...walletMethods,
|
|
44
|
+
addChain({ ...walletMethods, chain, walletType });
|
|
45
45
|
}),
|
|
46
46
|
);
|
|
47
47
|
|