@reown/appkit-common-react-native 0.0.0-feat-multi-siwe-20250623183423 → 0.0.0-feat-onramp-20250626173252

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 (69) 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 +1 -1
  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 +3 -34
  8. package/lib/commonjs/utils/PresetsUtil.js.map +1 -1
  9. package/lib/commonjs/utils/TypeUtil.js +0 -38
  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 +1 -1
  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 +3 -34
  18. package/lib/module/utils/PresetsUtil.js.map +1 -1
  19. package/lib/module/utils/TypeUtil.js +0 -32
  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/NumberUtil.d.ts +11 -39
  24. package/lib/typescript/utils/NumberUtil.d.ts.map +1 -1
  25. package/lib/typescript/utils/PresetsUtil.d.ts +1 -1
  26. package/lib/typescript/utils/PresetsUtil.d.ts.map +1 -1
  27. package/lib/typescript/utils/TypeUtil.d.ts +1 -279
  28. package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
  29. package/package.json +2 -2
  30. package/src/index.ts +0 -5
  31. package/src/utils/ConstantsUtil.ts +1 -1
  32. package/src/utils/NumberUtil.ts +11 -54
  33. package/src/utils/PresetsUtil.ts +3 -36
  34. package/src/utils/TypeUtil.ts +1 -346
  35. package/lib/commonjs/adapters/BlockchainAdapter.js +0 -79
  36. package/lib/commonjs/adapters/BlockchainAdapter.js.map +0 -1
  37. package/lib/commonjs/adapters/EvmAdapter.js +0 -94
  38. package/lib/commonjs/adapters/EvmAdapter.js.map +0 -1
  39. package/lib/commonjs/adapters/SolanaBaseAdapter.js +0 -12
  40. package/lib/commonjs/adapters/SolanaBaseAdapter.js.map +0 -1
  41. package/lib/commonjs/networks/bitcoin.js +0 -40
  42. package/lib/commonjs/networks/bitcoin.js.map +0 -1
  43. package/lib/commonjs/networks/solana.js +0 -78
  44. package/lib/commonjs/networks/solana.js.map +0 -1
  45. package/lib/module/adapters/BlockchainAdapter.js +0 -72
  46. package/lib/module/adapters/BlockchainAdapter.js.map +0 -1
  47. package/lib/module/adapters/EvmAdapter.js +0 -87
  48. package/lib/module/adapters/EvmAdapter.js.map +0 -1
  49. package/lib/module/adapters/SolanaBaseAdapter.js +0 -5
  50. package/lib/module/adapters/SolanaBaseAdapter.js.map +0 -1
  51. package/lib/module/networks/bitcoin.js +0 -34
  52. package/lib/module/networks/bitcoin.js.map +0 -1
  53. package/lib/module/networks/solana.js +0 -72
  54. package/lib/module/networks/solana.js.map +0 -1
  55. package/lib/typescript/adapters/BlockchainAdapter.d.ts +0 -27
  56. package/lib/typescript/adapters/BlockchainAdapter.d.ts.map +0 -1
  57. package/lib/typescript/adapters/EvmAdapter.d.ts +0 -7
  58. package/lib/typescript/adapters/EvmAdapter.d.ts.map +0 -1
  59. package/lib/typescript/adapters/SolanaBaseAdapter.d.ts +0 -4
  60. package/lib/typescript/adapters/SolanaBaseAdapter.d.ts.map +0 -1
  61. package/lib/typescript/networks/bitcoin.d.ts +0 -4
  62. package/lib/typescript/networks/bitcoin.d.ts.map +0 -1
  63. package/lib/typescript/networks/solana.d.ts +0 -5
  64. package/lib/typescript/networks/solana.d.ts.map +0 -1
  65. package/src/adapters/BlockchainAdapter.ts +0 -109
  66. package/src/adapters/EvmAdapter.ts +0 -96
  67. package/src/adapters/SolanaBaseAdapter.ts +0 -5
  68. package/src/networks/bitcoin.ts +0 -32
  69. package/src/networks/solana.ts +0 -44
@@ -1,78 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.solanaTestnet = exports.solanaDevnet = exports.solana = void 0;
7
- const solana = exports.solana = {
8
- id: '5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
9
- name: 'Solana',
10
- nativeCurrency: {
11
- name: 'Solana',
12
- symbol: 'SOL',
13
- decimals: 9
14
- },
15
- rpcUrls: {
16
- default: {
17
- http: ['https://rpc.walletconnect.org/v1']
18
- }
19
- },
20
- blockExplorers: {
21
- default: {
22
- name: 'Solscan',
23
- url: 'https://solscan.io'
24
- }
25
- },
26
- chainNamespace: 'solana',
27
- caipNetworkId: 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
28
- deprecatedCaipNetworkId: 'solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ',
29
- testnet: false
30
- };
31
- const solanaDevnet = exports.solanaDevnet = {
32
- id: 'EtWTRABZaYq6iMfeYKouRu166VU2xqa1',
33
- name: 'Solana Devnet',
34
- nativeCurrency: {
35
- name: 'Solana',
36
- symbol: 'SOL',
37
- decimals: 9
38
- },
39
- rpcUrls: {
40
- default: {
41
- http: ['https://rpc.walletconnect.org/v1']
42
- }
43
- },
44
- blockExplorers: {
45
- default: {
46
- name: 'Solscan',
47
- url: 'https://solscan.io'
48
- }
49
- },
50
- chainNamespace: 'solana',
51
- caipNetworkId: 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',
52
- deprecatedCaipNetworkId: 'solana:8E9rvCKLFQia2Y35HXjjpWzj8weVo44K',
53
- testnet: true
54
- };
55
- const solanaTestnet = exports.solanaTestnet = {
56
- id: '4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z',
57
- name: 'Solana Testnet',
58
- nativeCurrency: {
59
- name: 'Solana',
60
- symbol: 'SOL',
61
- decimals: 9
62
- },
63
- rpcUrls: {
64
- default: {
65
- http: ['https://rpc.walletconnect.org/v1']
66
- }
67
- },
68
- blockExplorers: {
69
- default: {
70
- name: 'Solscan',
71
- url: 'https://solscan.io'
72
- }
73
- },
74
- chainNamespace: 'solana',
75
- caipNetworkId: 'solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z',
76
- testnet: true
77
- };
78
- //# sourceMappingURL=solana.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["solana","exports","id","name","nativeCurrency","symbol","decimals","rpcUrls","default","http","blockExplorers","url","chainNamespace","caipNetworkId","deprecatedCaipNetworkId","testnet","solanaDevnet","solanaTestnet"],"sourceRoot":"../../../src","sources":["networks/solana.ts"],"mappings":";;;;;;AAEO,MAAMA,MAAqB,GAAAC,OAAA,CAAAD,MAAA,GAAG;EACnCE,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;AAEM,MAAMC,YAA2B,GAAAf,OAAA,CAAAe,YAAA,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;AAEM,MAAME,aAA4B,GAAAhB,OAAA,CAAAgB,aAAA,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,72 +0,0 @@
1
- import { EventEmitter } from 'events';
2
- export class BlockchainAdapter extends EventEmitter {
3
- // Typed emit method
4
- emit(event, payload) {
5
- return super.emit(event, payload);
6
- }
7
- constructor({
8
- projectId,
9
- supportedNamespace
10
- }) {
11
- super();
12
- this.projectId = projectId;
13
- this.supportedNamespace = supportedNamespace;
14
- }
15
- setConnector(connector) {
16
- this.connector = connector;
17
- this.subscribeToEvents();
18
- }
19
- removeConnector() {
20
- this.connector = undefined;
21
- }
22
- getProvider() {
23
- if (!this.connector) throw new Error('No active connector');
24
- return this.connector.getProvider();
25
- }
26
- subscribeToEvents() {
27
- const provider = this.connector?.getProvider();
28
- if (!provider) return;
29
- provider.on('chainChanged', this.onChainChanged.bind(this));
30
- provider.on('accountsChanged', this.onAccountsChanged.bind(this));
31
- provider.on('disconnect', this.onDisconnect.bind(this));
32
- }
33
- onChainChanged(chainId) {
34
- const _chains = this.getAccounts()?.map(account => account.split(':')[1]);
35
- const shouldEmit = _chains?.some(chain => chain === chainId);
36
- if (shouldEmit) {
37
- this.emit('chainChanged', {
38
- chainId
39
- });
40
- }
41
- }
42
- onAccountsChanged(accounts) {
43
- const _accounts = this.getAccounts();
44
- const shouldEmit = _accounts?.some(account => {
45
- const accountAddress = account.split(':')[2];
46
- return accountAddress !== undefined && accounts.includes(accountAddress);
47
- });
48
- if (shouldEmit) {
49
- this.emit('accountsChanged', {
50
- accounts
51
- });
52
- }
53
- }
54
- onDisconnect() {
55
- this.emit('disconnect', {
56
- namespace: this.getSupportedNamespace()
57
- });
58
- const provider = this.connector?.getProvider();
59
- if (provider) {
60
- provider.off('chainChanged', this.onChainChanged.bind(this));
61
- provider.off('accountsChanged', this.onAccountsChanged.bind(this));
62
- provider.off('disconnect', this.onDisconnect.bind(this));
63
- }
64
- this.connector = undefined;
65
- }
66
- parseUnits(value, decimals) {
67
- const [whole, fraction = ''] = value.split('.');
68
- const paddedFraction = (fraction + '0'.repeat(decimals)).slice(0, decimals);
69
- return BigInt(whole + paddedFraction);
70
- }
71
- }
72
- //# sourceMappingURL=BlockchainAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["EventEmitter","BlockchainAdapter","emit","event","payload","constructor","projectId","supportedNamespace","setConnector","connector","subscribeToEvents","removeConnector","undefined","getProvider","Error","provider","on","onChainChanged","bind","onAccountsChanged","onDisconnect","chainId","_chains","getAccounts","map","account","split","shouldEmit","some","chain","accounts","_accounts","accountAddress","includes","namespace","getSupportedNamespace","off","parseUnits","value","decimals","whole","fraction","paddedFraction","repeat","slice","BigInt"],"sourceRoot":"../../../src","sources":["adapters/BlockchainAdapter.ts"],"mappings":"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"}
@@ -1,87 +0,0 @@
1
- import { BlockchainAdapter } from './BlockchainAdapter';
2
- import { NumberUtil } from '../utils/NumberUtil';
3
- export class EVMAdapter extends BlockchainAdapter {
4
- async signMessage(address, message, chain) {
5
- const provider = this.getProvider();
6
- if (!provider) {
7
- throw new Error('EVMAdapter:signMessage - provider is undefined');
8
- }
9
- const signature = await provider.request({
10
- method: 'personal_sign',
11
- params: [message, address]
12
- }, `eip155:${chain}`);
13
- return signature;
14
- }
15
- async estimateGas({
16
- address,
17
- to,
18
- data,
19
- chainNamespace
20
- }) {
21
- const provider = this.getProvider();
22
- if (!provider) {
23
- throw new Error('EVMAdapter:estimateGas - provider is undefined');
24
- }
25
- if (!address) {
26
- throw new Error('EVMAdapter:estimateGas - from address is undefined');
27
- }
28
- if (chainNamespace && chainNamespace !== 'eip155') {
29
- throw new Error('EVMAdapter:estimateGas - chainNamespace is not eip155');
30
- }
31
- try {
32
- const txParams = {
33
- from: address,
34
- to,
35
- data,
36
- type: '0x0' // optional, legacy type
37
- };
38
-
39
- const estimatedGasHex = await provider.request({
40
- method: 'eth_estimateGas',
41
- params: [txParams]
42
- });
43
- return BigInt(estimatedGasHex);
44
- } catch (error) {
45
- throw new Error('EVMAdapter:estimateGas - eth_estimateGas RPC failed');
46
- }
47
- }
48
- async sendTransaction(data) {
49
- const {
50
- address
51
- } = data || {};
52
- if (!this.getProvider()) {
53
- throw new Error('EVMAdapter:sendTransaction - provider is undefined');
54
- }
55
- if (!address) {
56
- throw new Error('EVMAdapter:sendTransaction - address is undefined');
57
- }
58
- const txParams = {
59
- from: address,
60
- to: data.to,
61
- value: NumberUtil.convertNumericToHexString(data.value),
62
- gas: NumberUtil.convertNumericToHexString(data.gas),
63
- gasPrice: NumberUtil.convertNumericToHexString(data.gasPrice),
64
- data: data.data,
65
- // hex-encoded bytecode
66
- type: '0x0' // optional: legacy transaction type
67
- };
68
-
69
- const txHash = await this.getProvider().request({
70
- method: 'eth_sendTransaction',
71
- params: [txParams]
72
- });
73
- let receipt = null;
74
- while (!receipt) {
75
- receipt = await this.getProvider().request({
76
- method: 'eth_getTransactionReceipt',
77
- params: [txHash]
78
- });
79
- if (!receipt) {
80
- await new Promise(r => setTimeout(r, 1000)); // wait 1s
81
- }
82
- }
83
-
84
- return receipt?.blockHash || null;
85
- }
86
- }
87
- //# sourceMappingURL=EvmAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["BlockchainAdapter","NumberUtil","EVMAdapter","signMessage","address","message","chain","provider","getProvider","Error","signature","request","method","params","estimateGas","to","data","chainNamespace","txParams","from","type","estimatedGasHex","BigInt","error","sendTransaction","value","convertNumericToHexString","gas","gasPrice","txHash","receipt","Promise","r","setTimeout","blockHash"],"sourceRoot":"../../../src","sources":["adapters/EvmAdapter.ts"],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { BlockchainAdapter } from './BlockchainAdapter';
2
- export class SolanaBaseAdapter extends BlockchainAdapter {
3
- // solana logic
4
- }
5
- //# 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;EAChE;AAAA"}
@@ -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,27 +0,0 @@
1
- /// <reference types="node" />
2
- import { EventEmitter } from 'events';
3
- import type { AdapterEvents, AppKitNetwork, 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
- emit<K extends keyof AdapterEvents>(event: K, payload: Parameters<AdapterEvents[K]>[0]): boolean;
9
- constructor({ projectId, supportedNamespace }: {
10
- projectId: string;
11
- supportedNamespace: ChainNamespace;
12
- });
13
- setConnector(connector: WalletConnector): void;
14
- removeConnector(): void;
15
- getProvider(): Provider;
16
- subscribeToEvents(): void;
17
- onChainChanged(chainId: string): void;
18
- onAccountsChanged(accounts: string[]): void;
19
- onDisconnect(): void;
20
- parseUnits(value: string, decimals: number): bigint;
21
- abstract disconnect(): Promise<void>;
22
- abstract getSupportedNamespace(): ChainNamespace;
23
- abstract getBalance(params: GetBalanceParams): Promise<GetBalanceResponse>;
24
- abstract getAccounts(): CaipAddress[] | undefined;
25
- abstract switchNetwork(network: AppKitNetwork): Promise<void>;
26
- }
27
- //# 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,aAAa,EACb,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;IAGjC,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,EACV,SAAS,EACT,kBAAkB,EACnB,EAAE;QACD,SAAS,EAAE,MAAM,CAAC;QAClB,kBAAkB,EAAE,cAAc,CAAC;KACpC;IAMD,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,7 +0,0 @@
1
- import { BlockchainAdapter } from './BlockchainAdapter';
2
- export declare abstract class EVMAdapter extends BlockchainAdapter {
3
- signMessage(address: string, message: string, chain?: string): Promise<string>;
4
- estimateGas({ address, to, data, chainNamespace }: any): Promise<bigint>;
5
- sendTransaction(data: any): Promise<`0x${string}` | null>;
6
- }
7
- //# 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;AAGxD,8BAAsB,UAAW,SAAQ,iBAAiB;IAClD,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,GAAG;CAwChC"}
@@ -1,4 +0,0 @@
1
- import { BlockchainAdapter } from './BlockchainAdapter';
2
- export declare abstract class SolanaBaseAdapter extends BlockchainAdapter {
3
- }
4
- //# 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;CAEhE"}
@@ -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,109 +0,0 @@
1
- import { EventEmitter } from 'events';
2
- import type {
3
- AdapterEvents,
4
- AppKitNetwork,
5
- CaipAddress,
6
- ChainNamespace,
7
- GetBalanceParams,
8
- GetBalanceResponse,
9
- Provider,
10
- WalletConnector
11
- } from '../utils/TypeUtil';
12
-
13
- export abstract class BlockchainAdapter extends EventEmitter {
14
- public projectId: string;
15
- public connector?: WalletConnector;
16
- public supportedNamespace: ChainNamespace;
17
-
18
- // Typed emit method
19
- override emit<K extends keyof AdapterEvents>(
20
- event: K,
21
- payload: Parameters<AdapterEvents[K]>[0]
22
- ): boolean {
23
- return super.emit(event, payload);
24
- }
25
-
26
- constructor({
27
- projectId,
28
- supportedNamespace
29
- }: {
30
- projectId: string;
31
- supportedNamespace: ChainNamespace;
32
- }) {
33
- super();
34
- this.projectId = projectId;
35
- this.supportedNamespace = supportedNamespace;
36
- }
37
-
38
- setConnector(connector: WalletConnector) {
39
- this.connector = connector;
40
- this.subscribeToEvents();
41
- }
42
-
43
- removeConnector() {
44
- this.connector = undefined;
45
- }
46
-
47
- getProvider(): Provider {
48
- if (!this.connector) throw new Error('No active connector');
49
-
50
- return this.connector.getProvider();
51
- }
52
-
53
- subscribeToEvents(): void {
54
- const provider = this.connector?.getProvider();
55
- if (!provider) return;
56
-
57
- provider.on('chainChanged', this.onChainChanged.bind(this));
58
- provider.on('accountsChanged', this.onAccountsChanged.bind(this));
59
- provider.on('disconnect', this.onDisconnect.bind(this));
60
- }
61
-
62
- onChainChanged(chainId: string): void {
63
- const _chains = this.getAccounts()?.map(account => account.split(':')[1]);
64
- const shouldEmit = _chains?.some(chain => chain === chainId);
65
-
66
- if (shouldEmit) {
67
- this.emit('chainChanged', { chainId });
68
- }
69
- }
70
-
71
- onAccountsChanged(accounts: string[]): void {
72
- const _accounts = this.getAccounts();
73
- const shouldEmit = _accounts?.some(account => {
74
- const accountAddress = account.split(':')[2];
75
-
76
- return accountAddress !== undefined && accounts.includes(accountAddress);
77
- });
78
-
79
- if (shouldEmit) {
80
- this.emit('accountsChanged', { accounts });
81
- }
82
- }
83
-
84
- onDisconnect(): void {
85
- this.emit('disconnect', { namespace: this.getSupportedNamespace() });
86
-
87
- const provider = this.connector?.getProvider();
88
- if (provider) {
89
- provider.off('chainChanged', this.onChainChanged.bind(this));
90
- provider.off('accountsChanged', this.onAccountsChanged.bind(this));
91
- provider.off('disconnect', this.onDisconnect.bind(this));
92
- }
93
-
94
- this.connector = undefined;
95
- }
96
-
97
- parseUnits(value: string, decimals: number): bigint {
98
- const [whole, fraction = ''] = value.split('.');
99
- const paddedFraction = (fraction + '0'.repeat(decimals)).slice(0, decimals);
100
-
101
- return BigInt(whole + paddedFraction);
102
- }
103
-
104
- abstract disconnect(): Promise<void>;
105
- abstract getSupportedNamespace(): ChainNamespace;
106
- abstract getBalance(params: GetBalanceParams): Promise<GetBalanceResponse>;
107
- abstract getAccounts(): CaipAddress[] | undefined;
108
- abstract switchNetwork(network: AppKitNetwork): Promise<void>;
109
- }
@@ -1,96 +0,0 @@
1
- import { BlockchainAdapter } from './BlockchainAdapter';
2
- import { NumberUtil } from '../utils/NumberUtil';
3
-
4
- export abstract class EVMAdapter extends BlockchainAdapter {
5
- async signMessage(address: string, message: string, chain?: string): Promise<string> {
6
- const provider = this.getProvider();
7
-
8
- if (!provider) {
9
- throw new Error('EVMAdapter:signMessage - provider is undefined');
10
- }
11
-
12
- const signature = await provider.request(
13
- {
14
- method: 'personal_sign',
15
- params: [message, address]
16
- },
17
- `eip155:${chain}`
18
- );
19
-
20
- return signature as string;
21
- }
22
- async estimateGas({ address, to, data, chainNamespace }: any): Promise<bigint> {
23
- const provider = this.getProvider();
24
-
25
- if (!provider) {
26
- throw new Error('EVMAdapter:estimateGas - provider is undefined');
27
- }
28
-
29
- if (!address) {
30
- throw new Error('EVMAdapter:estimateGas - from address is undefined');
31
- }
32
-
33
- if (chainNamespace && chainNamespace !== 'eip155') {
34
- throw new Error('EVMAdapter:estimateGas - chainNamespace is not eip155');
35
- }
36
-
37
- try {
38
- const txParams = {
39
- from: address,
40
- to,
41
- data,
42
- type: '0x0' // optional, legacy type
43
- };
44
-
45
- const estimatedGasHex = await provider.request({
46
- method: 'eth_estimateGas',
47
- params: [txParams]
48
- });
49
-
50
- return BigInt(estimatedGasHex as string);
51
- } catch (error) {
52
- throw new Error('EVMAdapter:estimateGas - eth_estimateGas RPC failed');
53
- }
54
- }
55
-
56
- async sendTransaction(data: any) {
57
- const { address } = data || {};
58
-
59
- if (!this.getProvider()) {
60
- throw new Error('EVMAdapter:sendTransaction - provider is undefined');
61
- }
62
-
63
- if (!address) {
64
- throw new Error('EVMAdapter:sendTransaction - address is undefined');
65
- }
66
-
67
- const txParams = {
68
- from: address,
69
- to: data.to,
70
- value: NumberUtil.convertNumericToHexString(data.value),
71
- gas: NumberUtil.convertNumericToHexString(data.gas),
72
- gasPrice: NumberUtil.convertNumericToHexString(data.gasPrice),
73
- data: data.data, // hex-encoded bytecode
74
- type: '0x0' // optional: legacy transaction type
75
- };
76
-
77
- const txHash = await this.getProvider().request({
78
- method: 'eth_sendTransaction',
79
- params: [txParams]
80
- });
81
-
82
- let receipt = null;
83
- while (!receipt) {
84
- receipt = (await this.getProvider().request({
85
- method: 'eth_getTransactionReceipt',
86
- params: [txHash]
87
- })) as { blockHash?: `0x${string}` };
88
-
89
- if (!receipt) {
90
- await new Promise(r => setTimeout(r, 1000)); // wait 1s
91
- }
92
- }
93
-
94
- return receipt?.blockHash || null;
95
- }
96
- }