@reown/appkit-common-react-native 0.0.0-feat-coinbase-20250722202925 → 0.0.0-feat-onramp-20250722205908

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 (74) hide show
  1. package/lib/commonjs/index.js +1 -62
  2. package/lib/commonjs/index.js.map +1 -1
  3. package/lib/commonjs/utils/ConstantsUtil.js +3 -13
  4. package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
  5. package/lib/commonjs/utils/NumberUtil.js +11 -52
  6. package/lib/commonjs/utils/NumberUtil.js.map +1 -1
  7. package/lib/commonjs/utils/PresetsUtil.js +10 -35
  8. package/lib/commonjs/utils/PresetsUtil.js.map +1 -1
  9. package/lib/commonjs/utils/TypeUtil.js +0 -42
  10. package/lib/commonjs/utils/TypeUtil.js.map +1 -1
  11. package/lib/module/index.js +0 -5
  12. package/lib/module/index.js.map +1 -1
  13. package/lib/module/utils/ConstantsUtil.js +3 -13
  14. package/lib/module/utils/ConstantsUtil.js.map +1 -1
  15. package/lib/module/utils/NumberUtil.js +11 -52
  16. package/lib/module/utils/NumberUtil.js.map +1 -1
  17. package/lib/module/utils/PresetsUtil.js +10 -35
  18. package/lib/module/utils/PresetsUtil.js.map +1 -1
  19. package/lib/module/utils/TypeUtil.js +0 -36
  20. package/lib/module/utils/TypeUtil.js.map +1 -1
  21. package/lib/typescript/index.d.ts +0 -5
  22. package/lib/typescript/index.d.ts.map +1 -1
  23. package/lib/typescript/utils/ConstantsUtil.d.ts +1 -10
  24. package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
  25. package/lib/typescript/utils/NumberUtil.d.ts +11 -39
  26. package/lib/typescript/utils/NumberUtil.d.ts.map +1 -1
  27. package/lib/typescript/utils/PresetsUtil.d.ts +3 -1
  28. package/lib/typescript/utils/PresetsUtil.d.ts.map +1 -1
  29. package/lib/typescript/utils/TypeUtil.d.ts +12 -296
  30. package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
  31. package/package.json +2 -2
  32. package/src/index.ts +0 -5
  33. package/src/utils/ConstantsUtil.ts +3 -14
  34. package/src/utils/NumberUtil.ts +11 -54
  35. package/src/utils/PresetsUtil.ts +12 -37
  36. package/src/utils/TypeUtil.ts +14 -379
  37. package/lib/commonjs/adapters/BlockchainAdapter.js +0 -81
  38. package/lib/commonjs/adapters/BlockchainAdapter.js.map +0 -1
  39. package/lib/commonjs/adapters/EvmAdapter.js +0 -208
  40. package/lib/commonjs/adapters/EvmAdapter.js.map +0 -1
  41. package/lib/commonjs/adapters/SolanaBaseAdapter.js +0 -10
  42. package/lib/commonjs/adapters/SolanaBaseAdapter.js.map +0 -1
  43. package/lib/commonjs/networks/bitcoin.js +0 -40
  44. package/lib/commonjs/networks/bitcoin.js.map +0 -1
  45. package/lib/commonjs/networks/solana.js +0 -78
  46. package/lib/commonjs/networks/solana.js.map +0 -1
  47. package/lib/module/adapters/BlockchainAdapter.js +0 -74
  48. package/lib/module/adapters/BlockchainAdapter.js.map +0 -1
  49. package/lib/module/adapters/EvmAdapter.js +0 -202
  50. package/lib/module/adapters/EvmAdapter.js.map +0 -1
  51. package/lib/module/adapters/SolanaBaseAdapter.js +0 -3
  52. package/lib/module/adapters/SolanaBaseAdapter.js.map +0 -1
  53. package/lib/module/networks/bitcoin.js +0 -34
  54. package/lib/module/networks/bitcoin.js.map +0 -1
  55. package/lib/module/networks/solana.js +0 -72
  56. package/lib/module/networks/solana.js.map +0 -1
  57. package/lib/typescript/adapters/BlockchainAdapter.d.ts +0 -25
  58. package/lib/typescript/adapters/BlockchainAdapter.d.ts.map +0 -1
  59. package/lib/typescript/adapters/EvmAdapter.d.ts +0 -27
  60. package/lib/typescript/adapters/EvmAdapter.d.ts.map +0 -1
  61. package/lib/typescript/adapters/SolanaBaseAdapter.d.ts +0 -6
  62. package/lib/typescript/adapters/SolanaBaseAdapter.d.ts.map +0 -1
  63. package/lib/typescript/adapters/__tests__/EvmAdapter.test.d.ts +0 -2
  64. package/lib/typescript/adapters/__tests__/EvmAdapter.test.d.ts.map +0 -1
  65. package/lib/typescript/networks/bitcoin.d.ts +0 -4
  66. package/lib/typescript/networks/bitcoin.d.ts.map +0 -1
  67. package/lib/typescript/networks/solana.d.ts +0 -5
  68. package/lib/typescript/networks/solana.d.ts.map +0 -1
  69. package/src/adapters/BlockchainAdapter.ts +0 -107
  70. package/src/adapters/EvmAdapter.ts +0 -260
  71. package/src/adapters/SolanaBaseAdapter.ts +0 -6
  72. package/src/adapters/__tests__/EvmAdapter.test.ts +0 -126
  73. package/src/networks/bitcoin.ts +0 -32
  74. package/src/networks/solana.ts +0 -44
@@ -1,202 +0,0 @@
1
- import { BlockchainAdapter } from './BlockchainAdapter';
2
- import { NumberUtil } from '../utils/NumberUtil';
3
-
4
- // Type definitions for writeContract
5
-
6
- // Simple ABI encoder for ERC20 functions
7
- function encodeERC20Function(method, params) {
8
- const functionSelectors = {
9
- transfer: '0xa9059cbb',
10
- // transfer(address,uint256)
11
- transferFrom: '0x23b872dd',
12
- // transferFrom(address,address,uint256)
13
- approve: '0x095ea7b3' // approve(address,uint256)
14
- };
15
-
16
- const selector = functionSelectors[method];
17
- if (!selector) {
18
- throw new Error(`EVMAdapter:encodeERC20Function - unsupported method: ${method}`);
19
- }
20
- let encodedParams = '';
21
- switch (method) {
22
- case 'transfer':
23
- if (params.length !== 2) throw new Error('transfer requires 2 parameters: to, amount');
24
- const [to, amount] = params;
25
- encodedParams = to.toLowerCase().slice(2).padStart(64, '0') + amount.toString(16).padStart(64, '0');
26
- break;
27
- case 'transferFrom':
28
- if (params.length !== 3) throw new Error('transferFrom requires 3 parameters: from, to, amount');
29
- const [from, toTransferFrom, amountTransferFrom] = params;
30
- encodedParams = from.toLowerCase().slice(2).padStart(64, '0') + toTransferFrom.toLowerCase().slice(2).padStart(64, '0') + amountTransferFrom.toString(16).padStart(64, '0');
31
- break;
32
- case 'approve':
33
- if (params.length !== 2) throw new Error('approve requires 2 parameters: spender, amount');
34
- const [spender, amountApprove] = params;
35
- encodedParams = spender.toLowerCase().slice(2).padStart(64, '0') + amountApprove.toString(16).padStart(64, '0');
36
- break;
37
- default:
38
- throw new Error(`EVMAdapter:encodeERC20Function - unsupported method: ${method}`);
39
- }
40
- return selector + encodedParams;
41
- }
42
- export class EVMAdapter extends BlockchainAdapter {
43
- subscribeToEvents() {
44
- super.subscribeToEvents();
45
- const provider = this.getProvider();
46
- if (!provider) return;
47
- provider.on('reown_updateEmail', info => {
48
- // this.emit('updateEmail', email);
49
- //TODO: check this
50
- //eslint-disable-next-line no-console
51
- console.log('reown_updateEmail', info);
52
- });
53
- }
54
- async signMessage(address, message, chain) {
55
- const provider = this.getProvider();
56
- if (!provider) {
57
- throw new Error('EVMAdapter:signMessage - provider is undefined');
58
- }
59
- const signature = await provider.request({
60
- method: 'personal_sign',
61
- params: [message, address]
62
- }, `eip155:${chain}`);
63
- return signature;
64
- }
65
- async estimateGas({
66
- address,
67
- to,
68
- data,
69
- chainNamespace
70
- }) {
71
- const provider = this.getProvider();
72
- if (!provider) {
73
- throw new Error('EVMAdapter:estimateGas - provider is undefined');
74
- }
75
- if (!address) {
76
- throw new Error('EVMAdapter:estimateGas - from address is undefined');
77
- }
78
- if (chainNamespace && chainNamespace !== 'eip155') {
79
- throw new Error('EVMAdapter:estimateGas - chainNamespace is not eip155');
80
- }
81
- try {
82
- const txParams = {
83
- from: address,
84
- to,
85
- data,
86
- type: '0x0' // optional, legacy type
87
- };
88
-
89
- const estimatedGasHex = await provider.request({
90
- method: 'eth_estimateGas',
91
- params: [txParams]
92
- });
93
- return BigInt(estimatedGasHex);
94
- } catch (error) {
95
- throw new Error('EVMAdapter:estimateGas - eth_estimateGas RPC failed');
96
- }
97
- }
98
- async sendTransaction(data) {
99
- const {
100
- address,
101
- network
102
- } = data || {};
103
- if (!this.getProvider()) {
104
- throw new Error('EVMAdapter:sendTransaction - provider is undefined');
105
- }
106
- if (!address) {
107
- throw new Error('EVMAdapter:sendTransaction - address is undefined');
108
- }
109
- if (!network) {
110
- throw new Error('EVMAdapter:sendTransaction - network is undefined');
111
- }
112
- const txParams = {
113
- from: address,
114
- to: data.to,
115
- value: NumberUtil.convertNumericToHexString(data.value),
116
- data: data.data,
117
- // hex-encoded bytecode
118
- type: '0x0' // optional: legacy transaction type
119
- };
120
-
121
- const txHash = await this.getProvider().request({
122
- method: 'eth_sendTransaction',
123
- params: [txParams]
124
- }, network.caipNetworkId);
125
- return txHash;
126
- }
127
- async writeContract(data) {
128
- const {
129
- tokenAddress,
130
- receiverAddress,
131
- tokenAmount,
132
- method,
133
- fromAddress,
134
- spenderAddress,
135
- network
136
- } = data;
137
- if (!this.getProvider()) {
138
- throw new Error('EVMAdapter:writeContract - provider is undefined');
139
- }
140
- if (!fromAddress) {
141
- throw new Error('EVMAdapter:writeContract - fromAddress is undefined');
142
- }
143
- if (!tokenAddress) {
144
- throw new Error('EVMAdapter:writeContract - tokenAddress is undefined');
145
- }
146
- if (!tokenAmount) {
147
- throw new Error('EVMAdapter:writeContract - tokenAmount is undefined');
148
- }
149
- if (!method) {
150
- throw new Error('EVMAdapter:writeContract - method is undefined');
151
- }
152
-
153
- // Validate method-specific parameters
154
- if (method === 'transfer' && !receiverAddress) {
155
- throw new Error('EVMAdapter:writeContract - receiverAddress is required for transfer method');
156
- }
157
- if ((method === 'transferFrom' || method === 'approve') && !spenderAddress) {
158
- throw new Error(`EVMAdapter:writeContract - spenderAddress is required for ${method} method`);
159
- }
160
-
161
- // Encode the function call data based on method
162
- let encodedData;
163
- switch (method) {
164
- case 'transfer':
165
- encodedData = encodeERC20Function('transfer', [receiverAddress, tokenAmount]);
166
- break;
167
- case 'transferFrom':
168
- encodedData = encodeERC20Function('transferFrom', [fromAddress, receiverAddress, tokenAmount]);
169
- break;
170
- case 'approve':
171
- encodedData = encodeERC20Function('approve', [spenderAddress, tokenAmount]);
172
- break;
173
- default:
174
- throw new Error(`EVMAdapter:writeContract - method '${method}' is not supported`);
175
- }
176
-
177
- // Create transaction parameters
178
- const txParams = {
179
- from: fromAddress,
180
- to: tokenAddress,
181
- data: encodedData,
182
- value: '0x0',
183
- // No ETH value for token operations
184
- type: '0x0' // legacy transaction type
185
- };
186
-
187
- try {
188
- // Send the transaction
189
- const txHash = await this.getProvider().request({
190
- method: 'eth_sendTransaction',
191
- params: [txParams]
192
- }, network.caipNetworkId);
193
- return txHash;
194
- } catch (error) {
195
- if (error instanceof Error) {
196
- throw new Error(`EVMAdapter:writeContract - ${error.message}`);
197
- }
198
- throw new Error('EVMAdapter:writeContract - unknown error occurred');
199
- }
200
- }
201
- }
202
- //# sourceMappingURL=EvmAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["BlockchainAdapter","NumberUtil","encodeERC20Function","method","params","functionSelectors","transfer","transferFrom","approve","selector","Error","encodedParams","length","to","amount","toLowerCase","slice","padStart","toString","from","toTransferFrom","amountTransferFrom","spender","amountApprove","EVMAdapter","subscribeToEvents","provider","getProvider","on","info","console","log","signMessage","address","message","chain","signature","request","estimateGas","data","chainNamespace","txParams","type","estimatedGasHex","BigInt","error","sendTransaction","network","value","convertNumericToHexString","txHash","caipNetworkId","writeContract","tokenAddress","receiverAddress","tokenAmount","fromAddress","spenderAddress","encodedData"],"sourceRoot":"../../../src","sources":["adapters/EvmAdapter.ts"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { BlockchainAdapter } from './BlockchainAdapter';
2
- export class SolanaBaseAdapter extends BlockchainAdapter {}
3
- //# sourceMappingURL=SolanaBaseAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["BlockchainAdapter","SolanaBaseAdapter"],"sourceRoot":"../../../src","sources":["adapters/SolanaBaseAdapter.ts"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAEvD,OAAO,MAAeC,iBAAiB,SAASD,iBAAiB,CAAC"}
@@ -1,34 +0,0 @@
1
- export const bitcoin = {
2
- id: '000000000019d6689c085ae165831e93',
3
- caipNetworkId: 'bip122:000000000019d6689c085ae165831e93',
4
- chainNamespace: 'bip122',
5
- name: 'Bitcoin',
6
- nativeCurrency: {
7
- name: 'Bitcoin',
8
- symbol: 'BTC',
9
- decimals: 8
10
- },
11
- rpcUrls: {
12
- default: {
13
- http: ['https://rpc.walletconnect.org/v1']
14
- }
15
- }
16
- };
17
- export const bitcoinTestnet = {
18
- id: '000000000933ea01ad0ee984209779ba',
19
- caipNetworkId: 'bip122:000000000933ea01ad0ee984209779ba',
20
- chainNamespace: 'bip122',
21
- name: 'Bitcoin Testnet',
22
- nativeCurrency: {
23
- name: 'Bitcoin',
24
- symbol: 'BTC',
25
- decimals: 8
26
- },
27
- rpcUrls: {
28
- default: {
29
- http: ['https://rpc.walletconnect.org/v1']
30
- }
31
- },
32
- testnet: true
33
- };
34
- //# sourceMappingURL=bitcoin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["bitcoin","id","caipNetworkId","chainNamespace","name","nativeCurrency","symbol","decimals","rpcUrls","default","http","bitcoinTestnet","testnet"],"sourceRoot":"../../../src","sources":["networks/bitcoin.ts"],"mappings":"AAEA,OAAO,MAAMA,OAAsB,GAAG;EACpCC,EAAE,EAAE,kCAAkC;EACtCC,aAAa,EAAE,yCAAyC;EACxDC,cAAc,EAAE,QAAQ;EACxBC,IAAI,EAAE,SAAS;EACfC,cAAc,EAAE;IACdD,IAAI,EAAE,SAAS;IACfE,MAAM,EAAE,KAAK;IACbC,QAAQ,EAAE;EACZ,CAAC;EACDC,OAAO,EAAE;IACPC,OAAO,EAAE;MAAEC,IAAI,EAAE,CAAC,kCAAkC;IAAE;EACxD;AACF,CAAC;AAED,OAAO,MAAMC,cAA6B,GAAG;EAC3CV,EAAE,EAAE,kCAAkC;EACtCC,aAAa,EAAE,yCAAyC;EACxDC,cAAc,EAAE,QAAQ;EACxBC,IAAI,EAAE,iBAAiB;EACvBC,cAAc,EAAE;IACdD,IAAI,EAAE,SAAS;IACfE,MAAM,EAAE,KAAK;IACbC,QAAQ,EAAE;EACZ,CAAC;EACDC,OAAO,EAAE;IACPC,OAAO,EAAE;MAAEC,IAAI,EAAE,CAAC,kCAAkC;IAAE;EACxD,CAAC;EACDE,OAAO,EAAE;AACX,CAAC"}
@@ -1,72 +0,0 @@
1
- export const solana = {
2
- id: '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
3
- name: 'Solana',
4
- nativeCurrency: {
5
- name: 'Solana',
6
- symbol: 'SOL',
7
- decimals: 9
8
- },
9
- rpcUrls: {
10
- default: {
11
- http: ['https://rpc.walletconnect.org/v1']
12
- }
13
- },
14
- blockExplorers: {
15
- default: {
16
- name: 'Solscan',
17
- url: 'https://solscan.io'
18
- }
19
- },
20
- chainNamespace: 'solana',
21
- caipNetworkId: 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
22
- deprecatedCaipNetworkId: 'solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ',
23
- testnet: false
24
- };
25
- export const solanaDevnet = {
26
- id: 'EtWTRABZaYq6iMfeYKouRu166VU2xqa1',
27
- name: 'Solana Devnet',
28
- nativeCurrency: {
29
- name: 'Solana',
30
- symbol: 'SOL',
31
- decimals: 9
32
- },
33
- rpcUrls: {
34
- default: {
35
- http: ['https://rpc.walletconnect.org/v1']
36
- }
37
- },
38
- blockExplorers: {
39
- default: {
40
- name: 'Solscan',
41
- url: 'https://solscan.io'
42
- }
43
- },
44
- chainNamespace: 'solana',
45
- caipNetworkId: 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',
46
- deprecatedCaipNetworkId: 'solana:8E9rvCKLFQia2Y35HXjjpWzj8weVo44K',
47
- testnet: true
48
- };
49
- export const solanaTestnet = {
50
- id: '4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z',
51
- name: 'Solana Testnet',
52
- nativeCurrency: {
53
- name: 'Solana',
54
- symbol: 'SOL',
55
- decimals: 9
56
- },
57
- rpcUrls: {
58
- default: {
59
- http: ['https://rpc.walletconnect.org/v1']
60
- }
61
- },
62
- blockExplorers: {
63
- default: {
64
- name: 'Solscan',
65
- url: 'https://solscan.io'
66
- }
67
- },
68
- chainNamespace: 'solana',
69
- caipNetworkId: 'solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z',
70
- testnet: true
71
- };
72
- //# sourceMappingURL=solana.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["solana","id","name","nativeCurrency","symbol","decimals","rpcUrls","default","http","blockExplorers","url","chainNamespace","caipNetworkId","deprecatedCaipNetworkId","testnet","solanaDevnet","solanaTestnet"],"sourceRoot":"../../../src","sources":["networks/solana.ts"],"mappings":"AAEA,OAAO,MAAMA,MAAqB,GAAG;EACnCC,EAAE,EAAE,kCAAkC;EACtCC,IAAI,EAAE,QAAQ;EACdC,cAAc,EAAE;IAAED,IAAI,EAAE,QAAQ;IAAEE,MAAM,EAAE,KAAK;IAAEC,QAAQ,EAAE;EAAE,CAAC;EAC9DC,OAAO,EAAE;IACPC,OAAO,EAAE;MACPC,IAAI,EAAE,CAAC,kCAAkC;IAC3C;EACF,CAAC;EACDC,cAAc,EAAE;IAAEF,OAAO,EAAE;MAAEL,IAAI,EAAE,SAAS;MAAEQ,GAAG,EAAE;IAAqB;EAAE,CAAC;EAC3EC,cAAc,EAAE,QAAQ;EACxBC,aAAa,EAAE,yCAAyC;EACxDC,uBAAuB,EAAE,yCAAyC;EAClEC,OAAO,EAAE;AACX,CAAC;AAED,OAAO,MAAMC,YAA2B,GAAG;EACzCd,EAAE,EAAE,kCAAkC;EACtCC,IAAI,EAAE,eAAe;EACrBC,cAAc,EAAE;IAAED,IAAI,EAAE,QAAQ;IAAEE,MAAM,EAAE,KAAK;IAAEC,QAAQ,EAAE;EAAE,CAAC;EAC9DC,OAAO,EAAE;IACPC,OAAO,EAAE;MAAEC,IAAI,EAAE,CAAC,kCAAkC;IAAE;EACxD,CAAC;EACDC,cAAc,EAAE;IAAEF,OAAO,EAAE;MAAEL,IAAI,EAAE,SAAS;MAAEQ,GAAG,EAAE;IAAqB;EAAE,CAAC;EAC3EC,cAAc,EAAE,QAAQ;EACxBC,aAAa,EAAE,yCAAyC;EACxDC,uBAAuB,EAAE,yCAAyC;EAClEC,OAAO,EAAE;AACX,CAAC;AAED,OAAO,MAAME,aAA4B,GAAG;EAC1Cf,EAAE,EAAE,kCAAkC;EACtCC,IAAI,EAAE,gBAAgB;EACtBC,cAAc,EAAE;IAAED,IAAI,EAAE,QAAQ;IAAEE,MAAM,EAAE,KAAK;IAAEC,QAAQ,EAAE;EAAE,CAAC;EAC9DC,OAAO,EAAE;IACPC,OAAO,EAAE;MAAEC,IAAI,EAAE,CAAC,kCAAkC;IAAE;EACxD,CAAC;EACDC,cAAc,EAAE;IAAEF,OAAO,EAAE;MAAEL,IAAI,EAAE,SAAS;MAAEQ,GAAG,EAAE;IAAqB;EAAE,CAAC;EAC3EC,cAAc,EAAE,QAAQ;EACxBC,aAAa,EAAE,yCAAyC;EACxDE,OAAO,EAAE;AACX,CAAC"}
@@ -1,25 +0,0 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
- import type { AdapterEvents, AdapterType, AppKitNetwork, BlockchainAdapterConfig, CaipAddress, ChainNamespace, GetBalanceParams, GetBalanceResponse, Provider, WalletConnector } from '../utils/TypeUtil';
4
- export declare abstract class BlockchainAdapter extends EventEmitter {
5
- projectId: string;
6
- connector?: WalletConnector;
7
- supportedNamespace: ChainNamespace;
8
- adapterType: AdapterType;
9
- emit<K extends keyof AdapterEvents>(event: K, payload: Parameters<AdapterEvents[K]>[0]): boolean;
10
- constructor({ projectId, supportedNamespace, adapterType }: BlockchainAdapterConfig);
11
- setConnector(connector: WalletConnector): void;
12
- removeConnector(): void;
13
- getProvider(): Provider;
14
- subscribeToEvents(): void;
15
- onChainChanged(chainId: string): void;
16
- onAccountsChanged(accounts: string[]): void;
17
- onDisconnect(): void;
18
- parseUnits(value: string, decimals: number): bigint;
19
- abstract disconnect(): Promise<void>;
20
- abstract getSupportedNamespace(): ChainNamespace;
21
- abstract getBalance(params: GetBalanceParams): Promise<GetBalanceResponse>;
22
- abstract getAccounts(): CaipAddress[] | undefined;
23
- abstract switchNetwork(network: AppKitNetwork): Promise<void>;
24
- }
25
- //# sourceMappingURL=BlockchainAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BlockchainAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/BlockchainAdapter.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,aAAa,EACb,uBAAuB,EACvB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,kBAAkB,EAClB,QAAQ,EACR,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAE3B,8BAAsB,iBAAkB,SAAQ,YAAY;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,kBAAkB,EAAE,cAAc,CAAC;IACnC,WAAW,EAAE,WAAW,CAAC;IAGvB,IAAI,CAAC,CAAC,SAAS,MAAM,aAAa,EACzC,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GACvC,OAAO;gBAIE,EAAE,SAAS,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,uBAAuB;IAOnF,YAAY,CAAC,SAAS,EAAE,eAAe;IAKvC,eAAe;IAIf,WAAW,IAAI,QAAQ;IAMvB,iBAAiB,IAAI,IAAI;IASzB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IASrC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAa3C,YAAY,IAAI,IAAI;IAapB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAOnD,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IACpC,QAAQ,CAAC,qBAAqB,IAAI,cAAc;IAChD,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAC1E,QAAQ,CAAC,WAAW,IAAI,WAAW,EAAE,GAAG,SAAS;IACjD,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAC9D"}
@@ -1,27 +0,0 @@
1
- import { BlockchainAdapter } from './BlockchainAdapter';
2
- import type { AppKitNetwork } from '../utils/TypeUtil';
3
- export interface WriteContractData {
4
- tokenAddress: `0x${string}`;
5
- receiverAddress: `0x${string}`;
6
- tokenAmount: bigint;
7
- fromAddress: `0x${string}`;
8
- method: 'transfer' | 'transferFrom' | 'approve';
9
- abi?: any;
10
- spenderAddress?: `0x${string}`;
11
- network: AppKitNetwork;
12
- }
13
- export interface SendTransactionData {
14
- address: `0x${string}`;
15
- network: AppKitNetwork;
16
- to: `0x${string}`;
17
- value: string;
18
- data: string;
19
- }
20
- export declare abstract class EVMAdapter extends BlockchainAdapter {
21
- subscribeToEvents(): void;
22
- signMessage(address: string, message: string, chain?: string): Promise<string>;
23
- estimateGas({ address, to, data, chainNamespace }: any): Promise<bigint>;
24
- sendTransaction(data: SendTransactionData): Promise<`0x${string}` | null>;
25
- writeContract(data: WriteContractData): Promise<`0x${string}` | null>;
26
- }
27
- //# sourceMappingURL=EvmAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvmAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/EvmAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,eAAe,EAAE,KAAK,MAAM,EAAE,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;IAC3B,MAAM,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAAC;IAChD,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,cAAc,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC/B,OAAO,EAAE,aAAa,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,aAAa,CAAC;IACvB,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAkDD,8BAAsB,UAAW,SAAQ,iBAAiB;IAC/C,iBAAiB,IAAI,IAAI;IAa5B,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB9E,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAkCxE,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC;IAkCzE,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC;CAwF5E"}
@@ -1,6 +0,0 @@
1
- import { BlockchainAdapter } from './BlockchainAdapter';
2
- export declare abstract class SolanaBaseAdapter extends BlockchainAdapter {
3
- abstract signTransaction(data: any): Promise<string | null>;
4
- abstract sendTransaction(data: any): Promise<string | null>;
5
- }
6
- //# sourceMappingURL=SolanaBaseAdapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SolanaBaseAdapter.d.ts","sourceRoot":"","sources":["../../../src/adapters/SolanaBaseAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,8BAAsB,iBAAkB,SAAQ,iBAAiB;IAC/D,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAC3D,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAC5D"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=EvmAdapter.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EvmAdapter.test.d.ts","sourceRoot":"","sources":["../../../../src/adapters/__tests__/EvmAdapter.test.ts"],"names":[],"mappings":""}
@@ -1,4 +0,0 @@
1
- import type { AppKitNetwork } from '../utils/TypeUtil';
2
- export declare const bitcoin: AppKitNetwork;
3
- export declare const bitcoinTestnet: AppKitNetwork;
4
- //# sourceMappingURL=bitcoin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bitcoin.d.ts","sourceRoot":"","sources":["../../../src/networks/bitcoin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,eAAO,MAAM,OAAO,EAAE,aAarB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,aAc5B,CAAC"}
@@ -1,5 +0,0 @@
1
- import type { AppKitNetwork } from '../utils/TypeUtil';
2
- export declare const solana: AppKitNetwork;
3
- export declare const solanaDevnet: AppKitNetwork;
4
- export declare const solanaTestnet: AppKitNetwork;
5
- //# sourceMappingURL=solana.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../src/networks/solana.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,eAAO,MAAM,MAAM,EAAE,aAcpB,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,aAY1B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,aAW3B,CAAC"}
@@ -1,107 +0,0 @@
1
- import { EventEmitter } from 'events';
2
- import type {
3
- AdapterEvents,
4
- AdapterType,
5
- AppKitNetwork,
6
- BlockchainAdapterConfig,
7
- CaipAddress,
8
- ChainNamespace,
9
- GetBalanceParams,
10
- GetBalanceResponse,
11
- Provider,
12
- WalletConnector
13
- } from '../utils/TypeUtil';
14
-
15
- export abstract class BlockchainAdapter extends EventEmitter {
16
- public projectId: string;
17
- public connector?: WalletConnector;
18
- public supportedNamespace: ChainNamespace;
19
- public adapterType: AdapterType;
20
-
21
- // Typed emit method
22
- override emit<K extends keyof AdapterEvents>(
23
- event: K,
24
- payload: Parameters<AdapterEvents[K]>[0]
25
- ): boolean {
26
- return super.emit(event, payload);
27
- }
28
-
29
- constructor({ projectId, supportedNamespace, adapterType }: BlockchainAdapterConfig) {
30
- super();
31
- this.projectId = projectId;
32
- this.supportedNamespace = supportedNamespace;
33
- this.adapterType = adapterType;
34
- }
35
-
36
- setConnector(connector: WalletConnector) {
37
- this.connector = connector;
38
- this.subscribeToEvents();
39
- }
40
-
41
- removeConnector() {
42
- this.connector = undefined;
43
- }
44
-
45
- getProvider(): Provider {
46
- if (!this.connector) throw new Error('No active connector');
47
-
48
- return this.connector.getProvider();
49
- }
50
-
51
- subscribeToEvents(): void {
52
- const provider = this.connector?.getProvider();
53
- if (!provider) return;
54
-
55
- provider.on('chainChanged', this.onChainChanged.bind(this));
56
- provider.on('accountsChanged', this.onAccountsChanged.bind(this));
57
- provider.on('disconnect', this.onDisconnect.bind(this));
58
- }
59
-
60
- onChainChanged(chainId: string): void {
61
- const _chains = this.getAccounts()?.map(account => account.split(':')[1]);
62
- const shouldEmit = _chains?.some(chain => chain === chainId);
63
-
64
- if (shouldEmit) {
65
- this.emit('chainChanged', { chainId });
66
- }
67
- }
68
-
69
- onAccountsChanged(accounts: string[]): void {
70
- const _accounts = this.getAccounts();
71
- const shouldEmit = _accounts?.some(account => {
72
- const accountAddress = account.split(':')[2];
73
-
74
- return accountAddress !== undefined && accounts.includes(accountAddress);
75
- });
76
-
77
- if (shouldEmit) {
78
- this.emit('accountsChanged', { accounts });
79
- }
80
- }
81
-
82
- onDisconnect(): void {
83
- this.emit('disconnect', { namespace: this.getSupportedNamespace() });
84
-
85
- const provider = this.connector?.getProvider();
86
- if (provider) {
87
- provider.off('chainChanged', this.onChainChanged.bind(this));
88
- provider.off('accountsChanged', this.onAccountsChanged.bind(this));
89
- provider.off('disconnect', this.onDisconnect.bind(this));
90
- }
91
-
92
- this.connector = undefined;
93
- }
94
-
95
- parseUnits(value: string, decimals: number): bigint {
96
- const [whole, fraction = ''] = value.split('.');
97
- const paddedFraction = (fraction + '0'.repeat(decimals)).slice(0, decimals);
98
-
99
- return BigInt(whole + paddedFraction);
100
- }
101
-
102
- abstract disconnect(): Promise<void>;
103
- abstract getSupportedNamespace(): ChainNamespace;
104
- abstract getBalance(params: GetBalanceParams): Promise<GetBalanceResponse>;
105
- abstract getAccounts(): CaipAddress[] | undefined;
106
- abstract switchNetwork(network: AppKitNetwork): Promise<void>;
107
- }