@swapkit/wallets 4.7.0 → 4.8.1
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/src/index.cjs +2 -2
- package/dist/src/index.cjs.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/passkeys/index.cjs +2 -2
- package/dist/src/passkeys/index.cjs.map +3 -3
- package/dist/src/passkeys/index.js +2 -2
- package/dist/src/passkeys/index.js.map +3 -3
- package/dist/src/walletconnect/index.cjs.map +2 -2
- package/dist/src/walletconnect/index.js.map +2 -2
- package/dist/src/xaman/index.cjs +2 -2
- package/dist/src/xaman/index.cjs.map +4 -4
- package/dist/src/xaman/index.js +2 -2
- package/dist/src/xaman/index.js.map +4 -4
- package/dist/types/types.d.ts +36 -0
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/walletconnect/index.d.ts.map +1 -1
- package/package.json +8 -16
- package/src/bitget.ts +1 -0
- package/src/coinbase/index.ts +54 -0
- package/src/coinbase/signer.ts +99 -0
- package/src/cosmostation.ts +1 -0
- package/src/ctrl.ts +1 -0
- package/src/evm-extensions.ts +1 -0
- package/src/index.ts +3 -0
- package/src/keepkey-bex.ts +1 -0
- package/src/keepkey.ts +1 -0
- package/src/keplr.ts +1 -0
- package/src/keystore-helpers.ts +93 -0
- package/src/keystore.ts +193 -0
- package/src/ledger.ts +1 -0
- package/src/near-wallet-selector/index.ts +116 -0
- package/src/okx.ts +1 -0
- package/src/onekey.ts +1 -0
- package/src/passkeys/index.ts +183 -0
- package/src/phantom.ts +1 -0
- package/src/polkadotjs.ts +1 -0
- package/src/radix/index.ts +95 -0
- package/src/talisman.ts +1 -0
- package/src/trezor.ts +1 -0
- package/src/tronlink.ts +1 -0
- package/src/types.ts +137 -0
- package/src/utils.ts +58 -0
- package/src/vultisig.ts +1 -0
- package/src/walletconnect/constants.ts +105 -0
- package/src/walletconnect/evmSigner.ts +116 -0
- package/src/walletconnect/helpers.ts +76 -0
- package/src/walletconnect/index.ts +409 -0
- package/src/walletconnect/namespaces.ts +80 -0
- package/src/walletconnect/types.ts +6 -0
- package/src/xaman/helpers.ts +89 -0
- package/src/xaman/index.ts +63 -0
- package/src/xaman/types.ts +35 -0
- package/src/xaman/walletMethods.ts +117 -0
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/xaman/index.ts", "../src/xaman/helpers.ts", "../src/xaman/walletMethods.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import { Chain, filterSupportedChains, SKConfig, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport {
|
|
5
|
+
"import { Chain, filterSupportedChains, SKConfig, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { Xumm } from \"xumm\";\nimport { getWalletForChain } from \"./helpers\";\nimport type { XamanConfig } from \"./types\";\nimport { connectXamanWallet as connectXamanWalletMethod } from \"./walletMethods\";\n\nexport const xamanWallet = createWallet({\n connect: ({ addChain, supportedChains: walletSupportedChains, walletType }) =>\n function connectXamanWallet(chains: Chain[], xamanConfigOverwrite?: XamanConfig) {\n const supportedChains = filterSupportedChains({ chains, supportedChains: walletSupportedChains, walletType });\n\n const { xaman: xamanApiKey } = SKConfig.get(\"apiKeys\");\n const apiKey = xamanConfigOverwrite?.apiKey || xamanApiKey;\n\n if (!apiKey) {\n throw new SwapKitError(\"wallet_missing_api_key\", { wallet: \"Xaman\" });\n }\n\n const xumm = new Xumm(apiKey);\n\n return new Promise<boolean>((resolve, reject) => {\n xumm.on(\"success\", async () => {\n try {\n const address = await connectXamanWalletMethod(xumm);\n\n const promises = supportedChains.map(async (chain) => {\n const walletMethods = await getWalletForChain({ address, chain, xumm });\n\n addChain({\n ...walletMethods,\n address,\n balance: [],\n chain,\n disconnect: xumm.logout,\n walletType: WalletOption.XAMAN,\n });\n });\n\n await Promise.all(promises);\n resolve(true);\n } catch (error) {\n reject(error);\n }\n });\n\n xumm.on(\"error\", (error) => {\n reject(error);\n });\n\n xumm.authorize();\n });\n },\n directSigningSupport: { [Chain.Ripple]: true },\n name: \"connectXaman\",\n supportedChains: [Chain.Ripple],\n walletType: WalletOption.XAMAN,\n});\n\nexport const XAMAN_SUPPORTED_CHAINS = getWalletSupportedChains(xamanWallet);\nexport type XamanSupportedChain = (typeof XAMAN_SUPPORTED_CHAINS)[number];\n\nexport type { XamanConfig, XamanPaymentParams, XamanTrustSetParams } from \"./types\";\n",
|
|
6
6
|
"import { type AssetValue, Chain, SwapKitError } from \"@swapkit/helpers\";\nimport { match } from \"ts-pattern\";\nimport type { Xumm } from \"xumm\";\nimport { sendXamanTransaction, sendXamanTrustSet, submitXamanPayload } from \"./walletMethods\";\n\ninterface GetWalletForChainParams {\n chain: Chain;\n address: string;\n xumm: Xumm;\n}\n\nexport function getWalletForChain({ xumm, chain, address }: GetWalletForChainParams) {\n return match(chain)\n .with(Chain.Ripple, async () => {\n const { getRippleToolbox } = await import(\"@swapkit/toolboxes/ripple\");\n\n const signer = {\n getAddress: () => address,\n signTransaction: async (jsonTx: Record<string, unknown>) => {\n const txjson = { ...jsonTx, Account: jsonTx.Account ?? address };\n const submitted = await submitXamanPayload(xumm, txjson, { submit: false });\n\n if (!submitted.result.hex) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n return { hash: submitted.result.transactionId, tx_blob: submitted.result.hex };\n },\n };\n\n const toolbox = await getRippleToolbox({ signer });\n\n const transfer = async ({\n assetValue,\n recipient,\n memo,\n destinationTag,\n }: {\n assetValue: AssetValue;\n recipient: string;\n memo?: string;\n destinationTag?: number;\n }) => {\n const isTokenTransfer = !assetValue.isGasAsset;\n\n if (isTokenTransfer && (!assetValue.ticker || !assetValue.address)) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n const paymentResult = await sendXamanTransaction(xumm, {\n amount: assetValue.getValue(\"string\"),\n destination: recipient,\n destinationTag,\n from: address,\n memo,\n ...(isTokenTransfer && { currency: assetValue.ticker, issuer: assetValue.address }),\n });\n\n if (!(paymentResult.result.success && paymentResult.result.transactionId)) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n return paymentResult.result.transactionId;\n };\n\n const setTrustLine = async (params: { currency: string; issuer: string; limit: string }) => {\n const trustSetResult = await sendXamanTrustSet(xumm, { ...params, from: address });\n\n if (!(trustSetResult.result.success && trustSetResult.result.transactionId)) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n return trustSetResult.result.transactionId;\n };\n\n return {\n ...toolbox,\n address,\n createAndSubscribePayment: sendXamanTransaction,\n disconnect: xumm.logout,\n getAddress: () => address,\n setTrustLine,\n transfer,\n };\n })\n .otherwise(() => {\n throw new SwapKitError(\"wallet_chain_not_supported\", { chain, wallet: \"Xaman\" });\n });\n}\n",
|
|
7
|
-
"import { SwapKitError } from \"@swapkit/helpers\";\nimport type { Xumm } from \"xumm\";\nimport type { XamanPaymentParams, XamanTrustSetParams } from \"./types\";\n\nexport const connectXamanWallet = async (xumm: Xumm) => {\n if (!xumm) {\n throw new SwapKitError(\"wallet_xaman_not_configured\");\n }\n\n try {\n const user = await xumm.user;\n const account = await user?.account;\n\n if (account) {\n return account;\n }\n\n throw new SwapKitError(\"wallet_xaman_auth_failed\");\n } catch {\n throw new SwapKitError(\"wallet_xaman_connection_failed\");\n }\n};\n\nexport async function submitXamanPayload(\n xumm: Xumm,\n txjson: Record<string, unknown>,\n { submit = true }: { submit?: boolean } = {},\n) {\n const payload = (
|
|
7
|
+
"import { SwapKitError } from \"@swapkit/helpers\";\nimport type { Xumm } from \"xumm\";\nimport type { XamanPaymentParams, XamanTrustSetParams } from \"./types\";\n\nexport const connectXamanWallet = async (xumm: Xumm) => {\n if (!xumm) {\n throw new SwapKitError(\"wallet_xaman_not_configured\");\n }\n\n try {\n const user = await xumm.user;\n const account = await user?.account;\n\n if (account) {\n return account;\n }\n\n throw new SwapKitError(\"wallet_xaman_auth_failed\");\n } catch {\n throw new SwapKitError(\"wallet_xaman_connection_failed\");\n }\n};\n\nexport async function submitXamanPayload(\n xumm: Xumm,\n txjson: Record<string, unknown>,\n { submit = true }: { submit?: boolean } = {},\n) {\n const payload = (submit ? txjson : { options: { submit: false }, txjson }) as Parameters<\n NonNullable<Xumm[\"payload\"]>[\"createAndSubscribe\"]\n >[0];\n\n const subscription = await xumm.payload?.createAndSubscribe(payload, (event) => {\n if (\"signed\" in event.data) return event.data;\n return undefined;\n });\n\n if (!subscription) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n const { created } = subscription;\n\n if (xumm.runtime?.xapp) {\n xumm.xapp?.openSignRequest(created);\n } else if (typeof window !== \"undefined\") {\n const url =\n created.pushed && created.next?.no_push_msg_received ? created.next.no_push_msg_received : created.next?.always;\n if (url) window.open(url);\n }\n\n const resolved = await subscription.resolved;\n\n if (!resolved || typeof resolved !== \"object\" || !(\"signed\" in resolved) || !resolved.signed) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n const payloadDetails = await xumm.payload?.get((resolved as any).payload_uuidv4);\n\n if (!payloadDetails) {\n throw new SwapKitError(\"wallet_xaman_monitoring_failed\");\n }\n\n const transactionId = payloadDetails.response?.txid || \"\";\n const account = payloadDetails.response?.account || \"\";\n const hex = payloadDetails.response?.hex || \"\";\n\n if (!transactionId) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n return {\n deepLink: created.next?.always || \"\",\n payloadId: created.uuid || \"\",\n qrCode: created.refs?.qr_png || \"\",\n result: { account, hex, reason: undefined, success: true, transactionId },\n websocketUrl: created.refs?.websocket_status || \"\",\n };\n}\n\nexport async function sendXamanTransaction(xumm: Xumm, params: XamanPaymentParams) {\n if (!(params.destination && params.amount && params.from)) {\n throw new SwapKitError(\"wallet_xaman_connection_failed\");\n }\n\n const isTokenTransfer = params.currency && params.issuer;\n const amount = isTokenTransfer\n ? { currency: params.currency, issuer: params.issuer, value: params.amount }\n : (Number.parseFloat(params.amount) * 1000000).toString();\n\n const transaction = {\n Account: params.from,\n Amount: amount,\n Destination: params.destination,\n TransactionType: \"Payment\" as const,\n ...(params.destinationTag !== undefined && { DestinationTag: params.destinationTag }),\n ...(params.memo && {\n Memos: [{ Memo: { MemoData: Buffer.from(params.memo, \"utf8\").toString(\"hex\").toUpperCase() } }],\n }),\n };\n\n return await submitXamanPayload(xumm, transaction);\n}\n\nexport async function sendXamanTrustSet(xumm: Xumm, params: XamanTrustSetParams) {\n if (!(params.from && params.currency && params.issuer && params.limit !== undefined)) {\n throw new SwapKitError(\"wallet_xaman_connection_failed\");\n }\n\n const transaction = {\n Account: params.from,\n LimitAmount: { currency: params.currency, issuer: params.issuer, value: params.limit },\n TransactionType: \"TrustSet\" as const,\n };\n\n return await submitXamanPayload(xumm, transaction);\n}\n"
|
|
8
8
|
],
|
|
9
|
-
"mappings": "mFAAmF,IAAnF,8BACA,
|
|
10
|
-
"debugId": "
|
|
9
|
+
"mappings": "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",
|
|
10
|
+
"debugId": "4100E078498B407F64756E2164756E21",
|
|
11
11
|
"names": []
|
|
12
12
|
}
|
package/dist/src/xaman/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{H as A}from"../../chunk-99wp90e6.js";import{Chain as T,filterSupportedChains as W,SKConfig as k,SwapKitError as R,WalletOption as b}from"@swapkit/helpers";import{
|
|
1
|
+
import{H as A}from"../../chunk-99wp90e6.js";import{Chain as T,filterSupportedChains as W,SKConfig as k,SwapKitError as R,WalletOption as b}from"@swapkit/helpers";import{createWallet as I,getWalletSupportedChains as M}from"@swapkit/wallet-core";import{Xumm as N}from"xumm";import{Chain as C,SwapKitError as f}from"@swapkit/helpers";import{match as P}from"ts-pattern";import{SwapKitError as l}from"@swapkit/helpers";var g=async(n)=>{if(!n)throw new l("wallet_xaman_not_configured");try{let a=await(await n.user)?.account;if(a)return a;throw new l("wallet_xaman_auth_failed")}catch{throw new l("wallet_xaman_connection_failed")}};async function y(n,t,{submit:a=!0}={}){let p=a?t:{options:{submit:!1},txjson:t},m=await n.payload?.createAndSubscribe(p,(i)=>{if("signed"in i.data)return i.data;return});if(!m)throw new l("wallet_xaman_transaction_failed");let{created:r}=m;if(n.runtime?.xapp)n.xapp?.openSignRequest(r);else if(typeof window<"u"){let i=r.pushed&&r.next?.no_push_msg_received?r.next.no_push_msg_received:r.next?.always;if(i)window.open(i)}let s=await m.resolved;if(!s||typeof s!=="object"||!("signed"in s)||!s.signed)throw new l("wallet_xaman_transaction_failed");let d=await n.payload?.get(s.payload_uuidv4);if(!d)throw new l("wallet_xaman_monitoring_failed");let e=d.response?.txid||"",o=d.response?.account||"",c=d.response?.hex||"";if(!e)throw new l("wallet_xaman_transaction_failed");return{deepLink:r.next?.always||"",payloadId:r.uuid||"",qrCode:r.refs?.qr_png||"",result:{account:o,hex:c,reason:void 0,success:!0,transactionId:e},websocketUrl:r.refs?.websocket_status||""}}async function _(n,t){if(!(t.destination&&t.amount&&t.from))throw new l("wallet_xaman_connection_failed");let p=t.currency&&t.issuer?{currency:t.currency,issuer:t.issuer,value:t.amount}:(Number.parseFloat(t.amount)*1e6).toString(),m={Account:t.from,Amount:p,Destination:t.destination,TransactionType:"Payment",...t.destinationTag!==void 0&&{DestinationTag:t.destinationTag},...t.memo&&{Memos:[{Memo:{MemoData:Buffer.from(t.memo,"utf8").toString("hex").toUpperCase()}}]}};return await y(n,m)}async function x(n,t){if(!(t.from&&t.currency&&t.issuer&&t.limit!==void 0))throw new l("wallet_xaman_connection_failed");let a={Account:t.from,LimitAmount:{currency:t.currency,issuer:t.issuer,value:t.limit},TransactionType:"TrustSet"};return await y(n,a)}function X({xumm:n,chain:t,address:a}){return P(t).with(C.Ripple,async()=>{let{getRippleToolbox:p}=await import("@swapkit/toolboxes/ripple"),r=await p({signer:{getAddress:()=>a,signTransaction:async(e)=>{let o={...e,Account:e.Account??a},c=await y(n,o,{submit:!1});if(!c.result.hex)throw new f("wallet_xaman_transaction_failed");return{hash:c.result.transactionId,tx_blob:c.result.hex}}}}),s=async({assetValue:e,recipient:o,memo:c,destinationTag:i})=>{let u=!e.isGasAsset;if(u&&(!e.ticker||!e.address))throw new f("wallet_xaman_transaction_failed");let w=await _(n,{amount:e.getValue("string"),destination:o,destinationTag:i,from:a,memo:c,...u&&{currency:e.ticker,issuer:e.address}});if(!(w.result.success&&w.result.transactionId))throw new f("wallet_xaman_transaction_failed");return w.result.transactionId},d=async(e)=>{let o=await x(n,{...e,from:a});if(!(o.result.success&&o.result.transactionId))throw new f("wallet_xaman_transaction_failed");return o.result.transactionId};return{...r,address:a,createAndSubscribePayment:_,disconnect:n.logout,getAddress:()=>a,setTrustLine:d,transfer:s}}).otherwise(()=>{throw new f("wallet_chain_not_supported",{chain:t,wallet:"Xaman"})})}var K=I({connect:({addChain:n,supportedChains:t,walletType:a})=>function(m,r){let s=W({chains:m,supportedChains:t,walletType:a}),{xaman:d}=k.get("apiKeys"),e=r?.apiKey||d;if(!e)throw new R("wallet_missing_api_key",{wallet:"Xaman"});let o=new N(e);return new Promise((c,i)=>{o.on("success",async()=>{try{let u=await g(o),w=s.map(async(h)=>{let S=await X({address:u,chain:h,xumm:o});n({...S,address:u,balance:[],chain:h,disconnect:o.logout,walletType:b.XAMAN})});await Promise.all(w),c(!0)}catch(u){i(u)}}),o.on("error",(u)=>{i(u)}),o.authorize()})},directSigningSupport:{[T.Ripple]:!0},name:"connectXaman",supportedChains:[T.Ripple],walletType:b.XAMAN}),B=M(K);export{K as xamanWallet,B as XAMAN_SUPPORTED_CHAINS};
|
|
2
2
|
|
|
3
|
-
//# debugId=
|
|
3
|
+
//# debugId=A2ADBE8815B3E83164756E2164756E21
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/xaman/index.ts", "../src/xaman/helpers.ts", "../src/xaman/walletMethods.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import { Chain, filterSupportedChains, SKConfig, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport {
|
|
5
|
+
"import { Chain, filterSupportedChains, SKConfig, SwapKitError, WalletOption } from \"@swapkit/helpers\";\nimport { createWallet, getWalletSupportedChains } from \"@swapkit/wallet-core\";\nimport { Xumm } from \"xumm\";\nimport { getWalletForChain } from \"./helpers\";\nimport type { XamanConfig } from \"./types\";\nimport { connectXamanWallet as connectXamanWalletMethod } from \"./walletMethods\";\n\nexport const xamanWallet = createWallet({\n connect: ({ addChain, supportedChains: walletSupportedChains, walletType }) =>\n function connectXamanWallet(chains: Chain[], xamanConfigOverwrite?: XamanConfig) {\n const supportedChains = filterSupportedChains({ chains, supportedChains: walletSupportedChains, walletType });\n\n const { xaman: xamanApiKey } = SKConfig.get(\"apiKeys\");\n const apiKey = xamanConfigOverwrite?.apiKey || xamanApiKey;\n\n if (!apiKey) {\n throw new SwapKitError(\"wallet_missing_api_key\", { wallet: \"Xaman\" });\n }\n\n const xumm = new Xumm(apiKey);\n\n return new Promise<boolean>((resolve, reject) => {\n xumm.on(\"success\", async () => {\n try {\n const address = await connectXamanWalletMethod(xumm);\n\n const promises = supportedChains.map(async (chain) => {\n const walletMethods = await getWalletForChain({ address, chain, xumm });\n\n addChain({\n ...walletMethods,\n address,\n balance: [],\n chain,\n disconnect: xumm.logout,\n walletType: WalletOption.XAMAN,\n });\n });\n\n await Promise.all(promises);\n resolve(true);\n } catch (error) {\n reject(error);\n }\n });\n\n xumm.on(\"error\", (error) => {\n reject(error);\n });\n\n xumm.authorize();\n });\n },\n directSigningSupport: { [Chain.Ripple]: true },\n name: \"connectXaman\",\n supportedChains: [Chain.Ripple],\n walletType: WalletOption.XAMAN,\n});\n\nexport const XAMAN_SUPPORTED_CHAINS = getWalletSupportedChains(xamanWallet);\nexport type XamanSupportedChain = (typeof XAMAN_SUPPORTED_CHAINS)[number];\n\nexport type { XamanConfig, XamanPaymentParams, XamanTrustSetParams } from \"./types\";\n",
|
|
6
6
|
"import { type AssetValue, Chain, SwapKitError } from \"@swapkit/helpers\";\nimport { match } from \"ts-pattern\";\nimport type { Xumm } from \"xumm\";\nimport { sendXamanTransaction, sendXamanTrustSet, submitXamanPayload } from \"./walletMethods\";\n\ninterface GetWalletForChainParams {\n chain: Chain;\n address: string;\n xumm: Xumm;\n}\n\nexport function getWalletForChain({ xumm, chain, address }: GetWalletForChainParams) {\n return match(chain)\n .with(Chain.Ripple, async () => {\n const { getRippleToolbox } = await import(\"@swapkit/toolboxes/ripple\");\n\n const signer = {\n getAddress: () => address,\n signTransaction: async (jsonTx: Record<string, unknown>) => {\n const txjson = { ...jsonTx, Account: jsonTx.Account ?? address };\n const submitted = await submitXamanPayload(xumm, txjson, { submit: false });\n\n if (!submitted.result.hex) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n return { hash: submitted.result.transactionId, tx_blob: submitted.result.hex };\n },\n };\n\n const toolbox = await getRippleToolbox({ signer });\n\n const transfer = async ({\n assetValue,\n recipient,\n memo,\n destinationTag,\n }: {\n assetValue: AssetValue;\n recipient: string;\n memo?: string;\n destinationTag?: number;\n }) => {\n const isTokenTransfer = !assetValue.isGasAsset;\n\n if (isTokenTransfer && (!assetValue.ticker || !assetValue.address)) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n const paymentResult = await sendXamanTransaction(xumm, {\n amount: assetValue.getValue(\"string\"),\n destination: recipient,\n destinationTag,\n from: address,\n memo,\n ...(isTokenTransfer && { currency: assetValue.ticker, issuer: assetValue.address }),\n });\n\n if (!(paymentResult.result.success && paymentResult.result.transactionId)) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n return paymentResult.result.transactionId;\n };\n\n const setTrustLine = async (params: { currency: string; issuer: string; limit: string }) => {\n const trustSetResult = await sendXamanTrustSet(xumm, { ...params, from: address });\n\n if (!(trustSetResult.result.success && trustSetResult.result.transactionId)) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n return trustSetResult.result.transactionId;\n };\n\n return {\n ...toolbox,\n address,\n createAndSubscribePayment: sendXamanTransaction,\n disconnect: xumm.logout,\n getAddress: () => address,\n setTrustLine,\n transfer,\n };\n })\n .otherwise(() => {\n throw new SwapKitError(\"wallet_chain_not_supported\", { chain, wallet: \"Xaman\" });\n });\n}\n",
|
|
7
|
-
"import { SwapKitError } from \"@swapkit/helpers\";\nimport type { Xumm } from \"xumm\";\nimport type { XamanPaymentParams, XamanTrustSetParams } from \"./types\";\n\nexport const connectXamanWallet = async (xumm: Xumm) => {\n if (!xumm) {\n throw new SwapKitError(\"wallet_xaman_not_configured\");\n }\n\n try {\n const user = await xumm.user;\n const account = await user?.account;\n\n if (account) {\n return account;\n }\n\n throw new SwapKitError(\"wallet_xaman_auth_failed\");\n } catch {\n throw new SwapKitError(\"wallet_xaman_connection_failed\");\n }\n};\n\nexport async function submitXamanPayload(\n xumm: Xumm,\n txjson: Record<string, unknown>,\n { submit = true }: { submit?: boolean } = {},\n) {\n const payload = (
|
|
7
|
+
"import { SwapKitError } from \"@swapkit/helpers\";\nimport type { Xumm } from \"xumm\";\nimport type { XamanPaymentParams, XamanTrustSetParams } from \"./types\";\n\nexport const connectXamanWallet = async (xumm: Xumm) => {\n if (!xumm) {\n throw new SwapKitError(\"wallet_xaman_not_configured\");\n }\n\n try {\n const user = await xumm.user;\n const account = await user?.account;\n\n if (account) {\n return account;\n }\n\n throw new SwapKitError(\"wallet_xaman_auth_failed\");\n } catch {\n throw new SwapKitError(\"wallet_xaman_connection_failed\");\n }\n};\n\nexport async function submitXamanPayload(\n xumm: Xumm,\n txjson: Record<string, unknown>,\n { submit = true }: { submit?: boolean } = {},\n) {\n const payload = (submit ? txjson : { options: { submit: false }, txjson }) as Parameters<\n NonNullable<Xumm[\"payload\"]>[\"createAndSubscribe\"]\n >[0];\n\n const subscription = await xumm.payload?.createAndSubscribe(payload, (event) => {\n if (\"signed\" in event.data) return event.data;\n return undefined;\n });\n\n if (!subscription) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n const { created } = subscription;\n\n if (xumm.runtime?.xapp) {\n xumm.xapp?.openSignRequest(created);\n } else if (typeof window !== \"undefined\") {\n const url =\n created.pushed && created.next?.no_push_msg_received ? created.next.no_push_msg_received : created.next?.always;\n if (url) window.open(url);\n }\n\n const resolved = await subscription.resolved;\n\n if (!resolved || typeof resolved !== \"object\" || !(\"signed\" in resolved) || !resolved.signed) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n const payloadDetails = await xumm.payload?.get((resolved as any).payload_uuidv4);\n\n if (!payloadDetails) {\n throw new SwapKitError(\"wallet_xaman_monitoring_failed\");\n }\n\n const transactionId = payloadDetails.response?.txid || \"\";\n const account = payloadDetails.response?.account || \"\";\n const hex = payloadDetails.response?.hex || \"\";\n\n if (!transactionId) {\n throw new SwapKitError(\"wallet_xaman_transaction_failed\");\n }\n\n return {\n deepLink: created.next?.always || \"\",\n payloadId: created.uuid || \"\",\n qrCode: created.refs?.qr_png || \"\",\n result: { account, hex, reason: undefined, success: true, transactionId },\n websocketUrl: created.refs?.websocket_status || \"\",\n };\n}\n\nexport async function sendXamanTransaction(xumm: Xumm, params: XamanPaymentParams) {\n if (!(params.destination && params.amount && params.from)) {\n throw new SwapKitError(\"wallet_xaman_connection_failed\");\n }\n\n const isTokenTransfer = params.currency && params.issuer;\n const amount = isTokenTransfer\n ? { currency: params.currency, issuer: params.issuer, value: params.amount }\n : (Number.parseFloat(params.amount) * 1000000).toString();\n\n const transaction = {\n Account: params.from,\n Amount: amount,\n Destination: params.destination,\n TransactionType: \"Payment\" as const,\n ...(params.destinationTag !== undefined && { DestinationTag: params.destinationTag }),\n ...(params.memo && {\n Memos: [{ Memo: { MemoData: Buffer.from(params.memo, \"utf8\").toString(\"hex\").toUpperCase() } }],\n }),\n };\n\n return await submitXamanPayload(xumm, transaction);\n}\n\nexport async function sendXamanTrustSet(xumm: Xumm, params: XamanTrustSetParams) {\n if (!(params.from && params.currency && params.issuer && params.limit !== undefined)) {\n throw new SwapKitError(\"wallet_xaman_connection_failed\");\n }\n\n const transaction = {\n Account: params.from,\n LimitAmount: { currency: params.currency, issuer: params.issuer, value: params.limit },\n TransactionType: \"TrustSet\" as const,\n };\n\n return await submitXamanPayload(xumm, transaction);\n}\n"
|
|
8
8
|
],
|
|
9
|
-
"mappings": "4CAAA,gBAAS,2BAAO,cAAuB,kBAAU,kBAAc,yBAC/D,
|
|
10
|
-
"debugId": "
|
|
9
|
+
"mappings": "4CAAA,gBAAS,2BAAO,cAAuB,kBAAU,kBAAc,yBAC/D,uBAAS,8BAAc,6BACvB,eAAS,aCFT,gBAA0B,kBAAO,yBACjC,gBAAS,mBCDT,uBAAS,yBAIF,IAAM,EAAqB,MAAO,IAAe,CACtD,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,6BAA6B,EAGtD,GAAI,CAEF,IAAM,EAAU,MADH,MAAM,EAAK,OACI,QAE5B,GAAI,EACF,OAAO,EAGT,MAAM,IAAI,EAAa,0BAA0B,EACjD,KAAM,CACN,MAAM,IAAI,EAAa,gCAAgC,IAI3D,eAAsB,CAAkB,CACtC,EACA,GACE,SAAS,IAA+B,CAAC,EAC3C,CACA,IAAM,EAAW,EAAS,EAAS,CAAE,QAAS,CAAE,OAAQ,EAAM,EAAG,QAAO,EAIlE,EAAe,MAAM,EAAK,SAAS,mBAAmB,EAAS,CAAC,IAAU,CAC9E,GAAI,WAAY,EAAM,KAAM,OAAO,EAAM,KACzC,OACD,EAED,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,iCAAiC,EAG1D,IAAQ,WAAY,EAEpB,GAAI,EAAK,SAAS,KAChB,EAAK,MAAM,gBAAgB,CAAO,EAC7B,QAAI,OAAO,OAAW,IAAa,CACxC,IAAM,EACJ,EAAQ,QAAU,EAAQ,MAAM,qBAAuB,EAAQ,KAAK,qBAAuB,EAAQ,MAAM,OAC3G,GAAI,EAAK,OAAO,KAAK,CAAG,EAG1B,IAAM,EAAW,MAAM,EAAa,SAEpC,GAAI,CAAC,GAAY,OAAO,IAAa,UAAY,EAAE,WAAY,IAAa,CAAC,EAAS,OACpF,MAAM,IAAI,EAAa,iCAAiC,EAG1D,IAAM,EAAiB,MAAM,EAAK,SAAS,IAAK,EAAiB,cAAc,EAE/E,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,gCAAgC,EAGzD,IAAM,EAAgB,EAAe,UAAU,MAAQ,GACjD,EAAU,EAAe,UAAU,SAAW,GAC9C,EAAM,EAAe,UAAU,KAAO,GAE5C,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,iCAAiC,EAG1D,MAAO,CACL,SAAU,EAAQ,MAAM,QAAU,GAClC,UAAW,EAAQ,MAAQ,GAC3B,OAAQ,EAAQ,MAAM,QAAU,GAChC,OAAQ,CAAE,UAAS,MAAK,OAAQ,OAAW,QAAS,GAAM,eAAc,EACxE,aAAc,EAAQ,MAAM,kBAAoB,EAClD,EAGF,eAAsB,CAAoB,CAAC,EAAY,EAA4B,CACjF,GAAI,EAAE,EAAO,aAAe,EAAO,QAAU,EAAO,MAClD,MAAM,IAAI,EAAa,gCAAgC,EAIzD,IAAM,EADkB,EAAO,UAAY,EAAO,OAE9C,CAAE,SAAU,EAAO,SAAU,OAAQ,EAAO,OAAQ,MAAO,EAAO,MAAO,GACxE,OAAO,WAAW,EAAO,MAAM,EAAI,KAAS,SAAS,EAEpD,EAAc,CAClB,QAAS,EAAO,KAChB,OAAQ,EACR,YAAa,EAAO,YACpB,gBAAiB,aACb,EAAO,iBAAmB,QAAa,CAAE,eAAgB,EAAO,cAAe,KAC/E,EAAO,MAAQ,CACjB,MAAO,CAAC,CAAE,KAAM,CAAE,SAAU,OAAO,KAAK,EAAO,KAAM,MAAM,EAAE,SAAS,KAAK,EAAE,YAAY,CAAE,CAAE,CAAC,CAChG,CACF,EAEA,OAAO,MAAM,EAAmB,EAAM,CAAW,EAGnD,eAAsB,CAAiB,CAAC,EAAY,EAA6B,CAC/E,GAAI,EAAE,EAAO,MAAQ,EAAO,UAAY,EAAO,QAAU,EAAO,QAAU,QACxE,MAAM,IAAI,EAAa,gCAAgC,EAGzD,IAAM,EAAc,CAClB,QAAS,EAAO,KAChB,YAAa,CAAE,SAAU,EAAO,SAAU,OAAQ,EAAO,OAAQ,MAAO,EAAO,KAAM,EACrF,gBAAiB,UACnB,EAEA,OAAO,MAAM,EAAmB,EAAM,CAAW,EDxG5C,SAAS,CAAiB,EAAG,OAAM,QAAO,WAAoC,CACnF,OAAO,EAAM,CAAK,EACf,KAAK,EAAM,OAAQ,SAAY,CAC9B,IAAQ,oBAAqB,KAAa,qCAgBpC,EAAU,MAAM,EAAiB,CAAE,OAd1B,CACb,WAAY,IAAM,EAClB,gBAAiB,MAAO,IAAoC,CAC1D,IAAM,EAAS,IAAK,EAAQ,QAAS,EAAO,SAAW,CAAQ,EACzD,EAAY,MAAM,EAAmB,EAAM,EAAQ,CAAE,OAAQ,EAAM,CAAC,EAE1E,GAAI,CAAC,EAAU,OAAO,IACpB,MAAM,IAAI,EAAa,iCAAiC,EAG1D,MAAO,CAAE,KAAM,EAAU,OAAO,cAAe,QAAS,EAAU,OAAO,GAAI,EAEjF,CAEgD,CAAC,EAE3C,EAAW,OACf,aACA,YACA,OACA,oBAMI,CACJ,IAAM,EAAkB,CAAC,EAAW,WAEpC,GAAI,IAAoB,CAAC,EAAW,QAAU,CAAC,EAAW,SACxD,MAAM,IAAI,EAAa,iCAAiC,EAG1D,IAAM,EAAgB,MAAM,EAAqB,EAAM,CACrD,OAAQ,EAAW,SAAS,QAAQ,EACpC,YAAa,EACb,iBACA,KAAM,EACN,UACI,GAAmB,CAAE,SAAU,EAAW,OAAQ,OAAQ,EAAW,OAAQ,CACnF,CAAC,EAED,GAAI,EAAE,EAAc,OAAO,SAAW,EAAc,OAAO,eACzD,MAAM,IAAI,EAAa,iCAAiC,EAG1D,OAAO,EAAc,OAAO,eAGxB,EAAe,MAAO,IAAgE,CAC1F,IAAM,EAAiB,MAAM,EAAkB,EAAM,IAAK,EAAQ,KAAM,CAAQ,CAAC,EAEjF,GAAI,EAAE,EAAe,OAAO,SAAW,EAAe,OAAO,eAC3D,MAAM,IAAI,EAAa,iCAAiC,EAG1D,OAAO,EAAe,OAAO,eAG/B,MAAO,IACF,EACH,UACA,0BAA2B,EAC3B,WAAY,EAAK,OACjB,WAAY,IAAM,EAClB,eACA,UACF,EACD,EACA,UAAU,IAAM,CACf,MAAM,IAAI,EAAa,6BAA8B,CAAE,QAAO,OAAQ,OAAQ,CAAC,EAChF,EDhFE,IAAM,EAAc,EAAa,CACtC,QAAS,EAAG,WAAU,gBAAiB,EAAuB,gBAC5D,QAA2B,CAAC,EAAiB,EAAoC,CAC/E,IAAM,EAAkB,EAAsB,CAAE,SAAQ,gBAAiB,EAAuB,YAAW,CAAC,GAEpG,MAAO,GAAgB,EAAS,IAAI,SAAS,EAC/C,EAAS,GAAsB,QAAU,EAE/C,GAAI,CAAC,EACH,MAAM,IAAI,EAAa,yBAA0B,CAAE,OAAQ,OAAQ,CAAC,EAGtE,IAAM,EAAO,IAAI,EAAK,CAAM,EAE5B,OAAO,IAAI,QAAiB,CAAC,EAAS,IAAW,CAC/C,EAAK,GAAG,UAAW,SAAY,CAC7B,GAAI,CACF,IAAM,EAAU,MAAM,EAAyB,CAAI,EAE7C,EAAW,EAAgB,IAAI,MAAO,IAAU,CACpD,IAAM,EAAgB,MAAM,EAAkB,CAAE,UAAS,QAAO,MAAK,CAAC,EAEtE,EAAS,IACJ,EACH,UACA,QAAS,CAAC,EACV,QACA,WAAY,EAAK,OACjB,WAAY,EAAa,KAC3B,CAAC,EACF,EAED,MAAM,QAAQ,IAAI,CAAQ,EAC1B,EAAQ,EAAI,EACZ,MAAO,EAAO,CACd,EAAO,CAAK,GAEf,EAED,EAAK,GAAG,QAAS,CAAC,IAAU,CAC1B,EAAO,CAAK,EACb,EAED,EAAK,UAAU,EAChB,GAEL,qBAAsB,EAAG,EAAM,QAAS,EAAK,EAC7C,KAAM,eACN,gBAAiB,CAAC,EAAM,MAAM,EAC9B,WAAY,EAAa,KAC3B,CAAC,EAEY,EAAyB,EAAyB,CAAW",
|
|
10
|
+
"debugId": "A2ADBE8815B3E83164756E2164756E21",
|
|
11
11
|
"names": []
|
|
12
12
|
}
|
package/dist/types/types.d.ts
CHANGED
|
@@ -58,6 +58,42 @@ export type SKWallets = {
|
|
|
58
58
|
[WalletOption.XAMAN]: typeof xamanWallet;
|
|
59
59
|
};
|
|
60
60
|
export type SKConnectWallets = SKWallets[keyof SKWallets];
|
|
61
|
+
export type HDWalletAccountParams = {
|
|
62
|
+
accountIndex?: number;
|
|
63
|
+
};
|
|
64
|
+
export type HDWalletDeriveAddressParams = HDWalletAccountParams & {
|
|
65
|
+
index: number;
|
|
66
|
+
change?: boolean;
|
|
67
|
+
};
|
|
68
|
+
export type HDWalletDeriveAddressesParams = HDWalletAccountParams & {
|
|
69
|
+
count: number;
|
|
70
|
+
startIndex?: number;
|
|
71
|
+
change?: boolean;
|
|
72
|
+
};
|
|
73
|
+
export type HDWalletDerivedAddress = {
|
|
74
|
+
address: string;
|
|
75
|
+
index: number;
|
|
76
|
+
change: boolean;
|
|
77
|
+
path: string;
|
|
78
|
+
accountIndex: number;
|
|
79
|
+
pubkey: string;
|
|
80
|
+
};
|
|
81
|
+
export type HDWalletExtendedPublicKey = {
|
|
82
|
+
xpub: string;
|
|
83
|
+
path: string;
|
|
84
|
+
accountIndex: number;
|
|
85
|
+
xpubSegwit?: string;
|
|
86
|
+
chainCode?: string;
|
|
87
|
+
publicKey?: string;
|
|
88
|
+
fingerprint?: number;
|
|
89
|
+
depth?: number;
|
|
90
|
+
};
|
|
91
|
+
export type HDWalletDiscoveryMethods = {
|
|
92
|
+
getExtendedPublicKey?: () => Promise<string | HDWalletExtendedPublicKey | undefined> | string | HDWalletExtendedPublicKey | undefined;
|
|
93
|
+
getExtendedPublicKeyInfo: (params?: HDWalletAccountParams) => Promise<HDWalletExtendedPublicKey | undefined>;
|
|
94
|
+
deriveAddressAtIndex: (params: HDWalletDeriveAddressParams) => Promise<HDWalletDerivedAddress | undefined>;
|
|
95
|
+
deriveAddresses: (params: HDWalletDeriveAddressesParams) => Promise<HDWalletDerivedAddress[]>;
|
|
96
|
+
};
|
|
61
97
|
export type SKWalletsSupportedChains = {
|
|
62
98
|
[WalletOption.BITGET]: typeof bitgetWallet.connectBitget.supportedChains;
|
|
63
99
|
[WalletOption.BRAVE]: typeof evmWallet.connectEVMWallet.supportedChains;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/walletconnect/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,EAON,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/walletconnect/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,EAON,MAAM,kBAAkB,CAAC;AAO1B,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAY1E,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AAExB,eAAO,MAAM,mBAAmB;;;;;;;;CAsE9B,CAAC;AAEH,eAAO,MAAM,mBAAmB,oRAAgD,CAAC;AACjF,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC,CAAC;AA6NzE,iBAAe,gBAAgB,CAC7B,MAAM,EAAE,KAAK,EAAE,EACf,sBAAsB,EAAE,MAAM,EAC9B,oBAAoB,CAAC,EAAE,eAAe,CAAC,OAAO;;;;;;eA+E/C"}
|
package/package.json
CHANGED
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
"@scure/base": "~2.0.0",
|
|
16
16
|
"@scure/bip39": "~2.0.0",
|
|
17
17
|
"@swapkit/helpers": "^4.13.0",
|
|
18
|
-
"@swapkit/
|
|
19
|
-
"@swapkit/toolboxes": "^4.14.5",
|
|
18
|
+
"@swapkit/toolboxes": "^4.15.0",
|
|
20
19
|
"@swapkit/utxo-signer": "^2.1.1",
|
|
21
|
-
"@swapkit/wallet-
|
|
22
|
-
"@swapkit/wallet-
|
|
20
|
+
"@swapkit/wallet-core": "^4.2.0",
|
|
21
|
+
"@swapkit/wallet-extensions": "4.5.2",
|
|
22
|
+
"@swapkit/wallet-hardware": "4.8.2",
|
|
23
23
|
"@walletconnect/modal": "~2.7.0",
|
|
24
24
|
"@walletconnect/sign-client": "~2.23.0",
|
|
25
25
|
"cosmjs-types": "~0.10.1",
|
|
@@ -205,20 +205,12 @@
|
|
|
205
205
|
"types": "./dist/types/xaman/index.d.ts"
|
|
206
206
|
}
|
|
207
207
|
},
|
|
208
|
-
"files": [
|
|
209
|
-
"dist/"
|
|
210
|
-
],
|
|
208
|
+
"files": ["dist/", "src/"],
|
|
211
209
|
"homepage": "https://github.com/swapkit/wallets",
|
|
212
210
|
"license": "SEE LICENSE IN LICENSE",
|
|
213
211
|
"name": "@swapkit/wallets",
|
|
214
|
-
"publishConfig": {
|
|
215
|
-
|
|
216
|
-
},
|
|
217
|
-
"repository": {
|
|
218
|
-
"directory": "packages/wallets",
|
|
219
|
-
"type": "git",
|
|
220
|
-
"url": "git+https://github.com/swapkit/wallets.git"
|
|
221
|
-
},
|
|
212
|
+
"publishConfig": { "access": "public" },
|
|
213
|
+
"repository": { "directory": "packages/wallets", "type": "git", "url": "git+https://github.com/swapkit/wallets.git" },
|
|
222
214
|
"scripts": {
|
|
223
215
|
"build": "bun run ./build.ts",
|
|
224
216
|
"build:clean": "rm -rf dist && bun run ./build.ts",
|
|
@@ -227,5 +219,5 @@
|
|
|
227
219
|
"type-check:go": "tsgo"
|
|
228
220
|
},
|
|
229
221
|
"type": "module",
|
|
230
|
-
"version": "4.
|
|
222
|
+
"version": "4.8.1"
|
|
231
223
|
}
|
package/src/bitget.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@swapkit/wallet-extensions/bitget";
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Chain, ChainToChainId, filterSupportedChains, SKConfig, WalletOption } from "@swapkit/helpers";
|
|
2
|
+
import { createWallet, getWalletSupportedChains } from "@swapkit/wallet-core";
|
|
3
|
+
|
|
4
|
+
import { getWalletMethods } from "./signer";
|
|
5
|
+
|
|
6
|
+
export const coinbaseWallet = createWallet({
|
|
7
|
+
connect: ({ addChain, walletType, supportedChains }) =>
|
|
8
|
+
async function connectCoinbaseWallet(chains: Chain[]) {
|
|
9
|
+
const { createCoinbaseWalletSDK } = await import("@coinbase/wallet-sdk");
|
|
10
|
+
|
|
11
|
+
const filteredChains = filterSupportedChains({ chains, supportedChains, walletType });
|
|
12
|
+
|
|
13
|
+
const coinbaseConfig = SKConfig.get("integrations").coinbase || { appName: "Swapkit Playground" };
|
|
14
|
+
|
|
15
|
+
const coinbaseSdk = createCoinbaseWalletSDK({
|
|
16
|
+
...coinbaseConfig,
|
|
17
|
+
appChainIds: filteredChains.map((chain) => Number(ChainToChainId[chain])),
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
await Promise.all(
|
|
21
|
+
filteredChains.map(async (chain) => {
|
|
22
|
+
const walletMethods = await getWalletMethods({ chain, coinbaseSdk });
|
|
23
|
+
|
|
24
|
+
addChain({ ...walletMethods, chain, walletType });
|
|
25
|
+
}),
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
return true;
|
|
29
|
+
},
|
|
30
|
+
directSigningSupport: {
|
|
31
|
+
[Chain.Arbitrum]: true,
|
|
32
|
+
[Chain.Avalanche]: true,
|
|
33
|
+
[Chain.Base]: true,
|
|
34
|
+
[Chain.BinanceSmartChain]: true,
|
|
35
|
+
[Chain.Ethereum]: true,
|
|
36
|
+
[Chain.Optimism]: true,
|
|
37
|
+
[Chain.Polygon]: true,
|
|
38
|
+
[Chain.XLayer]: true,
|
|
39
|
+
},
|
|
40
|
+
name: "connectCoinbaseWallet",
|
|
41
|
+
supportedChains: [
|
|
42
|
+
Chain.Arbitrum,
|
|
43
|
+
Chain.Avalanche,
|
|
44
|
+
Chain.Base,
|
|
45
|
+
Chain.BinanceSmartChain,
|
|
46
|
+
Chain.Ethereum,
|
|
47
|
+
Chain.Optimism,
|
|
48
|
+
Chain.Polygon,
|
|
49
|
+
Chain.XLayer,
|
|
50
|
+
],
|
|
51
|
+
walletType: WalletOption.COINBASE_MOBILE,
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
export const COINBASE_SUPPORTED_CHAINS = getWalletSupportedChains(coinbaseWallet);
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import type { CoinbaseWalletProvider } from "@coinbase/wallet-sdk";
|
|
2
|
+
import type { createCoinbaseWalletSDK } from "@coinbase/wallet-sdk/dist/createCoinbaseWalletSDK.js";
|
|
3
|
+
import { Chain, SwapKitError } from "@swapkit/helpers";
|
|
4
|
+
import type { Provider, TypedDataDomain, TypedDataField } from "ethers";
|
|
5
|
+
|
|
6
|
+
async function getCoinbaseMobileSigner(walletProvider: CoinbaseWalletProvider, provider?: Provider) {
|
|
7
|
+
const { AbstractSigner } = await import("ethers");
|
|
8
|
+
|
|
9
|
+
class CoinbaseMobileSigner extends AbstractSigner {
|
|
10
|
+
#coinbaseProvider: CoinbaseWalletProvider;
|
|
11
|
+
|
|
12
|
+
constructor(coinbaseProvider: CoinbaseWalletProvider, provider?: Provider) {
|
|
13
|
+
super(provider);
|
|
14
|
+
this.#coinbaseProvider = coinbaseProvider;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
async getAddress() {
|
|
18
|
+
const accounts = await this.#coinbaseProvider.request<string[]>({ method: "eth_requestAccounts" });
|
|
19
|
+
|
|
20
|
+
if (!accounts[0]) throw new SwapKitError("wallet_coinbase_no_accounts");
|
|
21
|
+
|
|
22
|
+
return accounts[0];
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
async signTransaction() {
|
|
26
|
+
return await this.#coinbaseProvider.request<string>({ method: "eth_signTransaction" });
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
async signMessage(message: string | Uint8Array) {
|
|
30
|
+
return await this.#coinbaseProvider.request<string>({
|
|
31
|
+
method: "personal_sign",
|
|
32
|
+
params: [message, await this.getAddress()],
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
async signTypedData(
|
|
37
|
+
domain: TypedDataDomain,
|
|
38
|
+
types: Record<string, TypedDataField[]>,
|
|
39
|
+
value: Record<string, unknown>,
|
|
40
|
+
explicitPrimaryType?: string,
|
|
41
|
+
) {
|
|
42
|
+
const { buildEIP712DomainType } = await import("@swapkit/toolboxes/evm");
|
|
43
|
+
const { TypedDataEncoder } = await import("ethers");
|
|
44
|
+
const address = await this.getAddress();
|
|
45
|
+
|
|
46
|
+
const { EIP712Domain: _, ...filteredTypes } = types;
|
|
47
|
+
const primaryType = explicitPrimaryType ?? TypedDataEncoder.from(filteredTypes).primaryType;
|
|
48
|
+
|
|
49
|
+
const payload = {
|
|
50
|
+
domain,
|
|
51
|
+
message: value,
|
|
52
|
+
primaryType,
|
|
53
|
+
types: { EIP712Domain: buildEIP712DomainType(domain), ...filteredTypes },
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
return await this.#coinbaseProvider.request<string>({
|
|
57
|
+
method: "eth_signTypedData_v4",
|
|
58
|
+
params: [address, JSON.stringify(payload)],
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
connect(provider: Provider) {
|
|
63
|
+
return new CoinbaseMobileSigner(this.#coinbaseProvider, provider);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return new CoinbaseMobileSigner(walletProvider, provider);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
export const getWalletMethods = async ({
|
|
71
|
+
chain,
|
|
72
|
+
coinbaseSdk,
|
|
73
|
+
}: {
|
|
74
|
+
chain: Chain;
|
|
75
|
+
coinbaseSdk: ReturnType<typeof createCoinbaseWalletSDK>;
|
|
76
|
+
}) => {
|
|
77
|
+
switch (chain) {
|
|
78
|
+
case Chain.Ethereum:
|
|
79
|
+
case Chain.Avalanche:
|
|
80
|
+
case Chain.Arbitrum:
|
|
81
|
+
case Chain.Optimism:
|
|
82
|
+
case Chain.Polygon:
|
|
83
|
+
case Chain.Base:
|
|
84
|
+
case Chain.BinanceSmartChain: {
|
|
85
|
+
const walletProvider = coinbaseSdk.getProvider() as CoinbaseWalletProvider;
|
|
86
|
+
const { getEvmToolboxAsync, getProvider } = await import("@swapkit/toolboxes/evm");
|
|
87
|
+
|
|
88
|
+
const provider = await getProvider(chain);
|
|
89
|
+
const signer = await getCoinbaseMobileSigner(walletProvider, provider);
|
|
90
|
+
const toolbox = await getEvmToolboxAsync(chain, { provider, signer });
|
|
91
|
+
const address = await signer.getAddress();
|
|
92
|
+
|
|
93
|
+
return { ...toolbox, address };
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
default:
|
|
97
|
+
throw new SwapKitError("wallet_coinbase_chain_not_supported", { chain });
|
|
98
|
+
}
|
|
99
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@swapkit/wallet-extensions/cosmostation";
|
package/src/ctrl.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@swapkit/wallet-extensions/ctrl";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@swapkit/wallet-extensions/evm-extensions";
|
package/src/index.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@swapkit/wallet-extensions/keepkey-bex";
|
package/src/keepkey.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@swapkit/wallet-hardware/keepkey";
|
package/src/keplr.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@swapkit/wallet-extensions/keplr";
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { createCipheriv, createDecipheriv, pbkdf2Sync, randomBytes } from "node:crypto";
|
|
2
|
+
import { generateMnemonic, validateMnemonic } from "@scure/bip39";
|
|
3
|
+
import { wordlist } from "@scure/bip39/wordlists/english.js";
|
|
4
|
+
|
|
5
|
+
export type Keystore = {
|
|
6
|
+
version: number;
|
|
7
|
+
meta: string;
|
|
8
|
+
crypto: {
|
|
9
|
+
cipher: string;
|
|
10
|
+
cipherparams: { iv: string };
|
|
11
|
+
ciphertext: string;
|
|
12
|
+
kdf: string;
|
|
13
|
+
kdfparams: { prf: string; dklen: number; salt: string; c: number };
|
|
14
|
+
mac: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
async function blake256(initData: Buffer | string) {
|
|
19
|
+
const { blake2b } = await import("@noble/hashes/blake2.js");
|
|
20
|
+
const data = initData instanceof Buffer ? initData : Buffer.from(initData as string, "hex");
|
|
21
|
+
|
|
22
|
+
const hash = blake2b(data, { dkLen: 32 });
|
|
23
|
+
|
|
24
|
+
return Array.from(hash as Uint8Array)
|
|
25
|
+
.map((byte) => (byte < 0x10 ? `0${byte.toString(16)}` : byte.toString(16)))
|
|
26
|
+
.join("");
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export async function encryptToKeyStore(phrase: string, password: string) {
|
|
30
|
+
const cipher = "aes-128-ctr";
|
|
31
|
+
const iv = randomBytes(16);
|
|
32
|
+
const salt = randomBytes(32);
|
|
33
|
+
const kdfParams = { c: 262144, dklen: 32, prf: "hmac-sha256", salt: salt.toString("hex") };
|
|
34
|
+
|
|
35
|
+
const derivedKey = pbkdf2Sync(password, salt, kdfParams.c, kdfParams.dklen, "sha256");
|
|
36
|
+
const cipherIV = createCipheriv(cipher, derivedKey.subarray(0, 16), iv);
|
|
37
|
+
const ciphertext = Buffer.concat([cipherIV.update(Buffer.from(phrase, "utf8")), cipherIV.final()]);
|
|
38
|
+
const initData = Buffer.concat([derivedKey.subarray(16, 32), Buffer.from(ciphertext)]);
|
|
39
|
+
const mac = await blake256(initData);
|
|
40
|
+
|
|
41
|
+
return {
|
|
42
|
+
crypto: {
|
|
43
|
+
cipher,
|
|
44
|
+
cipherparams: { iv: iv.toString("hex") },
|
|
45
|
+
ciphertext: ciphertext.toString("hex"),
|
|
46
|
+
kdf: "pbkdf2",
|
|
47
|
+
kdfparams: kdfParams,
|
|
48
|
+
mac,
|
|
49
|
+
},
|
|
50
|
+
meta: "xchain-keystore",
|
|
51
|
+
version: 1,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
export function generatePhrase(size: 12 | 24 = 12) {
|
|
56
|
+
return generateMnemonic(wordlist, size === 12 ? 128 : 256);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export function validatePhrase(phrase: string) {
|
|
60
|
+
return validateMnemonic(phrase, wordlist);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export async function decryptFromKeystore(keystore: Keystore, password: string) {
|
|
64
|
+
const { SwapKitError } = await import("@swapkit/helpers");
|
|
65
|
+
|
|
66
|
+
switch (keystore.version) {
|
|
67
|
+
case 1: {
|
|
68
|
+
const kdfParams = keystore.crypto.kdfparams;
|
|
69
|
+
const salt = Buffer.from(kdfParams.salt, "hex");
|
|
70
|
+
const derivedKey = pbkdf2Sync(password, salt, kdfParams.c, kdfParams.dklen, "sha256");
|
|
71
|
+
|
|
72
|
+
const ciphertext = Buffer.from(keystore.crypto.ciphertext, "hex");
|
|
73
|
+
const initData = Buffer.concat([derivedKey.subarray(16, 32), ciphertext]);
|
|
74
|
+
const mac = await blake256(initData);
|
|
75
|
+
|
|
76
|
+
if (mac !== keystore.crypto.mac) {
|
|
77
|
+
throw new SwapKitError("wallet_keystore_invalid_password");
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const decipher = createDecipheriv(
|
|
81
|
+
keystore.crypto.cipher,
|
|
82
|
+
derivedKey.subarray(0, 16),
|
|
83
|
+
Buffer.from(keystore.crypto.cipherparams.iv, "hex"),
|
|
84
|
+
);
|
|
85
|
+
|
|
86
|
+
const phrase = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
|
|
87
|
+
return phrase.toString("utf8");
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
default:
|
|
91
|
+
throw new SwapKitError("wallet_keystore_unsupported_version");
|
|
92
|
+
}
|
|
93
|
+
}
|