@reown/appkit-adapter-bitcoin 1.8.15-viem-upgrade.0 → 1.8.15-viem-upgrade-2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/esm/exports/index.js +3 -0
  2. package/dist/esm/exports/index.js.map +1 -0
  3. package/dist/esm/src/adapter.js +451 -0
  4. package/dist/esm/src/adapter.js.map +1 -0
  5. package/dist/esm/src/connectors/BitcoinWalletConnectConnector.js +121 -0
  6. package/dist/esm/src/connectors/BitcoinWalletConnectConnector.js.map +1 -0
  7. package/dist/esm/src/connectors/LeatherConnector.js +87 -0
  8. package/dist/esm/src/connectors/LeatherConnector.js.map +1 -0
  9. package/dist/esm/src/connectors/OKXConnector.js +158 -0
  10. package/dist/esm/src/connectors/OKXConnector.js.map +1 -0
  11. package/dist/esm/src/connectors/SatsConnectConnector.js +171 -0
  12. package/dist/esm/src/connectors/SatsConnectConnector.js.map +1 -0
  13. package/dist/esm/src/connectors/UnisatConnector/index.js +151 -0
  14. package/dist/esm/src/connectors/UnisatConnector/index.js.map +1 -0
  15. package/dist/esm/src/connectors/UnisatConnector/types.js +2 -0
  16. package/dist/esm/src/connectors/UnisatConnector/types.js.map +1 -0
  17. package/dist/esm/src/connectors/WalletStandardConnector.js +151 -0
  18. package/dist/esm/src/connectors/WalletStandardConnector.js.map +1 -0
  19. package/dist/esm/src/errors/MethodNotSupportedError.js +11 -0
  20. package/dist/esm/src/errors/MethodNotSupportedError.js.map +1 -0
  21. package/dist/esm/src/index.js +3 -0
  22. package/dist/esm/src/index.js.map +1 -0
  23. package/dist/esm/src/utils/BitcoinApi.js +13 -0
  24. package/dist/esm/src/utils/BitcoinApi.js.map +1 -0
  25. package/dist/esm/src/utils/BitcoinConnector.js +21 -0
  26. package/dist/esm/src/utils/BitcoinConnector.js.map +1 -0
  27. package/dist/esm/src/utils/HelperUtil.js +26 -0
  28. package/dist/esm/src/utils/HelperUtil.js.map +1 -0
  29. package/dist/esm/src/utils/ProviderEventEmitter.js +28 -0
  30. package/dist/esm/src/utils/ProviderEventEmitter.js.map +1 -0
  31. package/dist/esm/src/utils/UnisatUtil.js +27 -0
  32. package/dist/esm/src/utils/UnisatUtil.js.map +1 -0
  33. package/dist/esm/src/utils/UnitsUtil.js +10 -0
  34. package/dist/esm/src/utils/UnitsUtil.js.map +1 -0
  35. package/dist/esm/src/utils/wallet-standard/SignMessage.js +7 -0
  36. package/dist/esm/src/utils/wallet-standard/SignMessage.js.map +1 -0
  37. package/dist/esm/src/utils/wallet-standard/SignTransaction.js +7 -0
  38. package/dist/esm/src/utils/wallet-standard/SignTransaction.js.map +1 -0
  39. package/dist/esm/src/utils/wallet-standard/WalletFeatures.js +2 -0
  40. package/dist/esm/src/utils/wallet-standard/WalletFeatures.js.map +1 -0
  41. package/dist/esm/tsconfig.build.tsbuildinfo +1 -0
  42. package/dist/types/exports/index.d.ts +2 -0
  43. package/dist/types/src/adapter.d.ts +42 -0
  44. package/dist/types/src/connectors/BitcoinWalletConnectConnector.d.ts +89 -0
  45. package/dist/types/src/connectors/LeatherConnector.d.ts +31 -0
  46. package/dist/types/src/connectors/OKXConnector.d.ts +75 -0
  47. package/dist/types/src/connectors/SatsConnectConnector.d.ts +42 -0
  48. package/dist/types/src/connectors/UnisatConnector/index.d.ts +31 -0
  49. package/dist/types/src/connectors/UnisatConnector/types.d.ts +66 -0
  50. package/dist/types/src/connectors/WalletStandardConnector.d.ts +38 -0
  51. package/dist/types/src/errors/MethodNotSupportedError.d.ts +6 -0
  52. package/dist/types/src/index.d.ts +3 -0
  53. package/dist/types/src/utils/BitcoinApi.d.ts +22 -0
  54. package/dist/types/src/utils/BitcoinConnector.d.ts +7 -0
  55. package/dist/types/src/utils/HelperUtil.d.ts +3 -0
  56. package/dist/types/src/utils/ProviderEventEmitter.d.ts +11 -0
  57. package/dist/types/src/utils/UnisatUtil.d.ts +2 -0
  58. package/dist/types/src/utils/UnitsUtil.d.ts +4 -0
  59. package/dist/types/src/utils/wallet-standard/SignMessage.d.ts +64 -0
  60. package/dist/types/src/utils/wallet-standard/SignTransaction.d.ts +72 -0
  61. package/dist/types/src/utils/wallet-standard/WalletFeatures.d.ts +9 -0
  62. package/package.json +6 -6
@@ -0,0 +1,151 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/require-await */
2
+ import { getWallets } from '@wallet-standard/app';
3
+ import { PresetsUtil } from '@reown/appkit-common';
4
+ import { bitcoin, bitcoinTestnet } from '@reown/appkit/networks';
5
+ import { MethodNotSupportedError } from '../errors/MethodNotSupportedError.js';
6
+ import { AddressPurpose } from '../utils/BitcoinConnector.js';
7
+ import { ProviderEventEmitter } from '../utils/ProviderEventEmitter.js';
8
+ export class WalletStandardConnector extends ProviderEventEmitter {
9
+ constructor({ wallet, requestedChains }) {
10
+ super();
11
+ this.chain = 'bip122';
12
+ this.type = 'ANNOUNCED';
13
+ this.requestedChains = [];
14
+ this.provider = this;
15
+ this.wallet = wallet;
16
+ this.requestedChains = requestedChains;
17
+ this.provider = this;
18
+ }
19
+ get id() {
20
+ return this.name;
21
+ }
22
+ get name() {
23
+ return this.wallet.name;
24
+ }
25
+ get imageUrl() {
26
+ return this.wallet.icon;
27
+ }
28
+ get explorerId() {
29
+ return PresetsUtil.ConnectorExplorerIds[this.name];
30
+ }
31
+ get chains() {
32
+ return this.wallet.chains
33
+ .map(chainId => this.requestedChains.find(chain => {
34
+ switch (chainId) {
35
+ case 'bitcoin:mainnet':
36
+ return chain.caipNetworkId === bitcoin.caipNetworkId;
37
+ case 'bitcoin:testnet':
38
+ return chain.caipNetworkId === bitcoinTestnet.caipNetworkId;
39
+ default:
40
+ return chain.caipNetworkId === chainId;
41
+ }
42
+ }))
43
+ .filter(Boolean);
44
+ }
45
+ async connect() {
46
+ const connectFeature = this.getWalletFeature('bitcoin:connect');
47
+ const response = await connectFeature.connect({ purposes: ['payment', 'ordinals'] });
48
+ const account = response.accounts[0];
49
+ if (!account) {
50
+ throw new Error('No account found');
51
+ }
52
+ return account.address;
53
+ }
54
+ async getAccountAddresses() {
55
+ const addresses = new Set();
56
+ const mappedAccounts = this.wallet.accounts
57
+ .map(acc => ({
58
+ address: acc.address,
59
+ purpose: AddressPurpose.Payment,
60
+ publicKey: Buffer.from(acc.publicKey).toString('hex')
61
+ }))
62
+ .filter(acc => {
63
+ if (addresses.has(acc.address)) {
64
+ return false;
65
+ }
66
+ addresses.add(acc.address);
67
+ return true;
68
+ });
69
+ return Promise.resolve(mappedAccounts);
70
+ }
71
+ async signMessage(params) {
72
+ if (params.protocol) {
73
+ console.warn('WalletStandardConnector:signMessage - protocol parameter not supported in WalletStandard:bitcoin - signMessage');
74
+ }
75
+ const feature = this.getWalletFeature('bitcoin:signMessage');
76
+ const account = this.wallet.accounts.find(acc => acc.address === params.address);
77
+ if (!account) {
78
+ throw new Error('Account not found');
79
+ }
80
+ const message = new TextEncoder().encode(params.message);
81
+ const response = (await feature.signMessage({ account, message }))[0];
82
+ if (!response) {
83
+ throw new Error('No response from wallet');
84
+ }
85
+ return Buffer.from(response.signature).toString('base64');
86
+ }
87
+ async signPSBT(params) {
88
+ const feature = this.getWalletFeature('bitcoin:signTransaction');
89
+ if (params.broadcast) {
90
+ throw new MethodNotSupportedError(this.id, 'signPSBT', 'This wallet does not support broadcasting, please broadcast it manually or contact the development team.');
91
+ }
92
+ const inputsToSign = params.signInputs.map(input => {
93
+ const account = this.wallet.accounts.find(acc => acc.address === input.address);
94
+ if (!account) {
95
+ throw new Error(`Account with address ${input.address} not found`);
96
+ }
97
+ return {
98
+ account,
99
+ signingIndexes: [input.index],
100
+ sigHash: undefined
101
+ };
102
+ });
103
+ const response = (await feature.signTransaction({
104
+ psbt: new Uint8Array(Buffer.from(params.psbt, 'base64')),
105
+ inputsToSign
106
+ }))[0];
107
+ if (!response) {
108
+ throw new Error('No response from wallet');
109
+ }
110
+ return {
111
+ psbt: Buffer.from(response.signedPsbt).toString('base64'),
112
+ txid: undefined
113
+ };
114
+ }
115
+ async sendTransfer(_params) {
116
+ return Promise.reject(new MethodNotSupportedError(this.id, 'sendTransfer', 'Please use "signPSBT" instead and broadcast the transaction manually.'));
117
+ }
118
+ async disconnect() {
119
+ return Promise.resolve();
120
+ }
121
+ async request(_args) {
122
+ return Promise.reject(new MethodNotSupportedError(this.id, 'request'));
123
+ }
124
+ getWalletFeature(feature) {
125
+ if (!(feature in this.wallet.features)) {
126
+ throw new MethodNotSupportedError(this.id, feature);
127
+ }
128
+ return this.wallet.features[feature];
129
+ }
130
+ static watchWallets({ callback, requestedChains }) {
131
+ const { get, on } = getWallets();
132
+ function wrapWallets(wallets) {
133
+ // Must replace the filter with the correct function to identify bitcoin wallets
134
+ return wallets
135
+ .filter(wallet => 'bitcoin:connect' in wallet.features)
136
+ .map(wallet => new WalletStandardConnector({ wallet, requestedChains }));
137
+ }
138
+ callback(...wrapWallets(get()));
139
+ return on('register', (...wallets) => callback(...wrapWallets(wallets)));
140
+ }
141
+ async switchNetwork(caipNetworkId) {
142
+ const switchFeature = this.wallet.features['bitcoin:switchNetwork'];
143
+ if (switchFeature && typeof switchFeature.switchNetwork === 'function') {
144
+ await switchFeature.switchNetwork(caipNetworkId);
145
+ this.emit('change', { accounts: this.wallet.accounts });
146
+ return;
147
+ }
148
+ throw new Error(`${this.name} wallet does not support network switching`);
149
+ }
150
+ }
151
+ //# sourceMappingURL=WalletStandardConnector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletStandardConnector.js","sourceRoot":"","sources":["../../../../src/connectors/WalletStandardConnector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export class MethodNotSupportedError extends Error {
2
+ constructor(walletId, method, log) {
3
+ super(`Wallet call is not supported`);
4
+ this.name = 'MethodNotSupported';
5
+ this.method = method;
6
+ this.walletId = walletId;
7
+ // eslint-disable-next-line no-console
8
+ console.error(`BitcoinAdapter:MethodNotSupportedError:${walletId} - The connected wallet doesn't support the method "${method}".${log ? ` ${log}` : ''}`);
9
+ }
10
+ }
11
+ //# sourceMappingURL=MethodNotSupportedError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MethodNotSupportedError.js","sourceRoot":"","sources":["../../../../src/errors/MethodNotSupportedError.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAKhD,YAAY,QAAgB,EAAE,MAAc,EAAE,GAAY;QACxD,KAAK,CAAC,8BAA8B,CAAC,CAAA;QAL9B,SAAI,GAAG,oBAAoB,CAAA;QAMlC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QAExB,sCAAsC;QACtC,OAAO,CAAC,KAAK,CACX,0CAA0C,QAAQ,uDAAuD,MAAM,KAC7G,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EACpB,EAAE,CACH,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ export * from './adapter.js';
2
+ export * from './utils/BitcoinConnector.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAE5B,cAAc,6BAA6B,CAAA"}
@@ -0,0 +1,13 @@
1
+ import { bitcoinTestnet } from '@reown/appkit/networks';
2
+ export const BitcoinApi = {
3
+ getUTXOs: async ({ network, address }) => {
4
+ const isTestnet = network.caipNetworkId === bitcoinTestnet.caipNetworkId;
5
+ const response = await fetch(`https://mempool.space${isTestnet ? '/testnet' : ''}/api/address/${address}/utxo`);
6
+ if (!response.ok) {
7
+ console.warn(`Failed to fetch UTXOs: ${await response.text()}`);
8
+ return [];
9
+ }
10
+ return (await response.json());
11
+ }
12
+ };
13
+ //# sourceMappingURL=BitcoinApi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BitcoinApi.js","sourceRoot":"","sources":["../../../../src/utils/BitcoinApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEvD,MAAM,CAAC,MAAM,UAAU,GAAyB;IAC9C,QAAQ,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAA6B,EAA8B,EAAE;QAC9F,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,KAAK,cAAc,CAAC,aAAa,CAAA;QAExE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,wBAAwB,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,gBAAgB,OAAO,OAAO,CAClF,CAAA;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,IAAI,CAAC,0BAA0B,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAA;YAE/D,OAAO,EAAE,CAAA;QACX,CAAC;QAED,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAsB,CAAA;IACrD,CAAC;CACF,CAAA"}
@@ -0,0 +1,21 @@
1
+ import { AddressPurpose as SatsConnectAddressPurpose } from 'sats-connect';
2
+ // eslint-disable-next-line no-shadow
3
+ export var AddressPurpose;
4
+ (function (AddressPurpose) {
5
+ AddressPurpose["Ordinal"] = "ordinal";
6
+ AddressPurpose["Payment"] = "payment";
7
+ AddressPurpose["Stacks"] = "stx";
8
+ })(AddressPurpose || (AddressPurpose = {}));
9
+ export function mapSatsConnectAddressPurpose(purpose) {
10
+ switch (purpose) {
11
+ case SatsConnectAddressPurpose.Payment:
12
+ return AddressPurpose.Payment;
13
+ case SatsConnectAddressPurpose.Ordinals:
14
+ return AddressPurpose.Ordinal;
15
+ case SatsConnectAddressPurpose.Stacks:
16
+ return AddressPurpose.Stacks;
17
+ default:
18
+ return undefined;
19
+ }
20
+ }
21
+ //# sourceMappingURL=BitcoinConnector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BitcoinConnector.js","sourceRoot":"","sources":["../../../../src/utils/BitcoinConnector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,IAAI,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAE1E,qCAAqC;AACrC,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,qCAAmB,CAAA;IACnB,gCAAc,CAAA;AAChB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AACD,MAAM,UAAU,4BAA4B,CAC1C,OAAkC;IAElC,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,yBAAyB,CAAC,OAAO;YACpC,OAAO,cAAc,CAAC,OAAO,CAAA;QAC/B,KAAK,yBAAyB,CAAC,QAAQ;YACrC,OAAO,cAAc,CAAC,OAAO,CAAA;QAC/B,KAAK,yBAAyB,CAAC,MAAM;YACnC,OAAO,cAAc,CAAC,MAAM,CAAA;QAC9B;YACE,OAAO,SAAS,CAAA;IACpB,CAAC;AACH,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { BitcoinNetworkType } from 'sats-connect';
2
+ import { bitcoin, bitcoinTestnet } from '@reown/appkit/networks';
3
+ export function mapCaipNetworkToXverseName(caipNetworkId) {
4
+ if (!caipNetworkId) {
5
+ throw new Error('mapCaipNetworkToXverseName: Invalid caipNetworkId provided');
6
+ }
7
+ switch (caipNetworkId) {
8
+ case bitcoin.caipNetworkId:
9
+ return BitcoinNetworkType.Mainnet;
10
+ case bitcoinTestnet.caipNetworkId:
11
+ return BitcoinNetworkType.Testnet4;
12
+ default:
13
+ throw new Error(`Network ${caipNetworkId} not supported by Xverse wallet`);
14
+ }
15
+ }
16
+ export function mapXverseNameToCaipNetwork(network) {
17
+ switch (network) {
18
+ case BitcoinNetworkType.Mainnet:
19
+ return bitcoin.caipNetworkId;
20
+ case BitcoinNetworkType.Testnet4:
21
+ return bitcoinTestnet.caipNetworkId;
22
+ default:
23
+ throw new Error(`Network ${network} not supported by Xverse wallet`);
24
+ }
25
+ }
26
+ //# sourceMappingURL=HelperUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HelperUtil.js","sourceRoot":"","sources":["../../../../src/utils/HelperUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEhE,MAAM,UAAU,0BAA0B,CAAC,aAAiC;IAC1E,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,4DAA4D,CAAC,CAAA;IAC/E,CAAC;IAED,QAAQ,aAAa,EAAE,CAAC;QACtB,KAAK,OAAO,CAAC,aAAa;YACxB,OAAO,kBAAkB,CAAC,OAAO,CAAA;QACnC,KAAK,cAAc,CAAC,aAAa;YAC/B,OAAO,kBAAkB,CAAC,QAAQ,CAAA;QACpC;YACE,MAAM,IAAI,KAAK,CAAC,WAAW,aAAa,iCAAiC,CAAC,CAAA;IAC9E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAA2B;IACpE,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,kBAAkB,CAAC,OAAO;YAC7B,OAAO,OAAO,CAAC,aAAa,CAAA;QAC9B,KAAK,kBAAkB,CAAC,QAAQ;YAC9B,OAAO,cAAc,CAAC,aAAa,CAAA;QACrC;YACE,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,iCAAiC,CAAC,CAAA;IACxE,CAAC;AACH,CAAC"}
@@ -0,0 +1,28 @@
1
+ export class ProviderEventEmitter {
2
+ constructor() {
3
+ this.listeners = {
4
+ accountsChanged: [],
5
+ chainChanged: [],
6
+ connect: [],
7
+ disconnect: [],
8
+ display_uri: [],
9
+ message: []
10
+ };
11
+ }
12
+ on(event, listener) {
13
+ this.listeners[event].push(listener);
14
+ }
15
+ removeListener(event, listener) {
16
+ if (event in this.listeners) {
17
+ // @ts-expect-error - Bad typed Provider from core package
18
+ this.listeners[event] = this.listeners[event].filter((l) => l !== listener);
19
+ }
20
+ }
21
+ emit(event, data) {
22
+ if (event in this.listeners) {
23
+ // @ts-expect-error - Bad typed Provider from core package
24
+ this.listeners[event].forEach(listener => listener(data));
25
+ }
26
+ }
27
+ }
28
+ //# sourceMappingURL=ProviderEventEmitter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProviderEventEmitter.js","sourceRoot":"","sources":["../../../../src/utils/ProviderEventEmitter.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,oBAAoB;IAAjC;QACU,cAAS,GAAc;YAC7B,eAAe,EAAE,EAAE;YACnB,YAAY,EAAE,EAAE;YAChB,OAAO,EAAE,EAAE;YACX,UAAU,EAAE,EAAE;YACd,WAAW,EAAE,EAAE;YACf,OAAO,EAAE,EAAE;SACZ,CAAA;IAmBH,CAAC;IAjBC,EAAE,CAAuB,KAAY,EAAE,QAAyB;QAC9D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACtC,CAAC;IAED,cAAc,CAAI,KAAa,EAAE,QAA2B;QAC1D,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,0DAA0D;YAC1D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAmB,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAA;QAC/F,CAAC;IACH,CAAC;IAEM,IAAI,CAAC,KAAa,EAAE,IAAc;QACvC,IAAI,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC5B,0DAA0D;YAC1D,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;QAC3D,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,27 @@
1
+ import { CoreHelperUtil } from '@reown/appkit-controllers';
2
+ export const UNISAT_CONNECTORS = [
3
+ {
4
+ id: 'unisat',
5
+ name: 'Unisat Wallet',
6
+ imageUrl:
7
+ // Cloudflare Image URL for Unisat Wallet
8
+ 'https://imagedelivery.net/_aTEfDRm7z3tKgu9JhfeKA/530e8a71-f014-46e5-1302-26d1eff60200/sm'
9
+ },
10
+ {
11
+ id: 'bitget',
12
+ name: 'Bitget Wallet',
13
+ imageUrl:
14
+ // Bitget Sui has an appropiate icon, so we use the window object to get it
15
+ CoreHelperUtil.isClient()
16
+ ? (window?.bitkeep?.suiWallet?.icon ?? '')
17
+ : ''
18
+ },
19
+ {
20
+ id: 'binancew3w',
21
+ name: 'Binance Web3 Wallet',
22
+ imageUrl:
23
+ // Cloudflare Image URL for Binance Web3 Wallet
24
+ 'https://imagedelivery.net/_aTEfDRm7z3tKgu9JhfeKA/7c1961a6-9c4c-4632-8710-d02a43df1300/sm'
25
+ }
26
+ ];
27
+ //# sourceMappingURL=UnisatUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnisatUtil.js","sourceRoot":"","sources":["../../../../src/utils/UnisatUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAI1D,MAAM,CAAC,MAAM,iBAAiB,GAGxB;IACJ;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,eAAe;QACrB,QAAQ;QACN,yCAAyC;QACzC,0FAA0F;KAC7F;IACD;QACE,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,eAAe;QACrB,QAAQ;QACN,2EAA2E;QAC3E,cAAc,CAAC,QAAQ,EAAE;YACvB,CAAC,CAAC,CAAE,MAAuC,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC;YAC5E,CAAC,CAAC,EAAE;KACT;IACD;QACE,EAAE,EAAE,YAAY;QAChB,IAAI,EAAE,qBAAqB;QAC3B,QAAQ;QACN,+CAA+C;QAC/C,0FAA0F;KAC7F;CACF,CAAA"}
@@ -0,0 +1,10 @@
1
+ export const UnitsUtil = {
2
+ parseSatoshis(amount, network) {
3
+ const value = parseFloat(amount) / 10 ** network.nativeCurrency.decimals;
4
+ // eslint-disable-next-line new-cap
5
+ return Intl.NumberFormat('en-US', {
6
+ maximumFractionDigits: network.nativeCurrency.decimals
7
+ }).format(value);
8
+ }
9
+ };
10
+ //# sourceMappingURL=UnitsUtil.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UnitsUtil.js","sourceRoot":"","sources":["../../../../src/utils/UnitsUtil.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,aAAa,CAAC,MAAc,EAAE,OAAoB;QAChD,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAA;QAExE,mCAAmC;QACnC,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE;YAChC,qBAAqB,EAAE,OAAO,CAAC,cAAc,CAAC,QAAQ;SACvD,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAClB,CAAC;CACF,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * This should be in the package `@exodus/bitcoin-wallet-standard`, but as it is outdated we have it here.
3
+ * References to https://github.com/ExodusMovement/bitcoin-wallet-standard/blob/master/packages/core/features/src/signMessage.ts
4
+ */
5
+ /** Name of the feature. */
6
+ export const BitcoinSignMessage = 'bitcoin:signMessage';
7
+ //# sourceMappingURL=SignMessage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignMessage.js","sourceRoot":"","sources":["../../../../../src/utils/wallet-standard/SignMessage.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,2BAA2B;AAC3B,MAAM,CAAC,MAAM,kBAAkB,GAAG,qBAAqB,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * This should be in the package `@exodus/bitcoin-wallet-standard`, but as it is outdated we have it here.
3
+ * References to https://github.com/ExodusMovement/bitcoin-wallet-standard/blob/master/packages/core/features/src/signTransaction.ts
4
+ */
5
+ /** Name of the feature. */
6
+ export const BitcoinSignTransaction = 'bitcoin:signTransaction';
7
+ //# sourceMappingURL=SignTransaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SignTransaction.js","sourceRoot":"","sources":["../../../../../src/utils/wallet-standard/SignTransaction.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,2BAA2B;AAC3B,MAAM,CAAC,MAAM,sBAAsB,GAAG,yBAAyB,CAAA"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=WalletFeatures.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletFeatures.js","sourceRoot":"","sources":["../../../../../src/utils/wallet-standard/WalletFeatures.ts"],"names":[],"mappings":""}