@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.
- package/lib/commonjs/index.js +1 -62
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/ConstantsUtil.js +1 -1
- package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
- package/lib/commonjs/utils/NumberUtil.js +11 -52
- package/lib/commonjs/utils/NumberUtil.js.map +1 -1
- package/lib/commonjs/utils/PresetsUtil.js +3 -34
- package/lib/commonjs/utils/PresetsUtil.js.map +1 -1
- package/lib/commonjs/utils/TypeUtil.js +0 -38
- package/lib/commonjs/utils/TypeUtil.js.map +1 -1
- package/lib/module/index.js +0 -5
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/ConstantsUtil.js +1 -1
- package/lib/module/utils/ConstantsUtil.js.map +1 -1
- package/lib/module/utils/NumberUtil.js +11 -52
- package/lib/module/utils/NumberUtil.js.map +1 -1
- package/lib/module/utils/PresetsUtil.js +3 -34
- package/lib/module/utils/PresetsUtil.js.map +1 -1
- package/lib/module/utils/TypeUtil.js +0 -32
- package/lib/module/utils/TypeUtil.js.map +1 -1
- package/lib/typescript/index.d.ts +0 -5
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/utils/NumberUtil.d.ts +11 -39
- package/lib/typescript/utils/NumberUtil.d.ts.map +1 -1
- package/lib/typescript/utils/PresetsUtil.d.ts +1 -1
- package/lib/typescript/utils/PresetsUtil.d.ts.map +1 -1
- package/lib/typescript/utils/TypeUtil.d.ts +1 -279
- package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +0 -5
- package/src/utils/ConstantsUtil.ts +1 -1
- package/src/utils/NumberUtil.ts +11 -54
- package/src/utils/PresetsUtil.ts +3 -36
- package/src/utils/TypeUtil.ts +1 -346
- package/lib/commonjs/adapters/BlockchainAdapter.js +0 -79
- package/lib/commonjs/adapters/BlockchainAdapter.js.map +0 -1
- package/lib/commonjs/adapters/EvmAdapter.js +0 -94
- package/lib/commonjs/adapters/EvmAdapter.js.map +0 -1
- package/lib/commonjs/adapters/SolanaBaseAdapter.js +0 -12
- package/lib/commonjs/adapters/SolanaBaseAdapter.js.map +0 -1
- package/lib/commonjs/networks/bitcoin.js +0 -40
- package/lib/commonjs/networks/bitcoin.js.map +0 -1
- package/lib/commonjs/networks/solana.js +0 -78
- package/lib/commonjs/networks/solana.js.map +0 -1
- package/lib/module/adapters/BlockchainAdapter.js +0 -72
- package/lib/module/adapters/BlockchainAdapter.js.map +0 -1
- package/lib/module/adapters/EvmAdapter.js +0 -87
- package/lib/module/adapters/EvmAdapter.js.map +0 -1
- package/lib/module/adapters/SolanaBaseAdapter.js +0 -5
- package/lib/module/adapters/SolanaBaseAdapter.js.map +0 -1
- package/lib/module/networks/bitcoin.js +0 -34
- package/lib/module/networks/bitcoin.js.map +0 -1
- package/lib/module/networks/solana.js +0 -72
- package/lib/module/networks/solana.js.map +0 -1
- package/lib/typescript/adapters/BlockchainAdapter.d.ts +0 -27
- package/lib/typescript/adapters/BlockchainAdapter.d.ts.map +0 -1
- package/lib/typescript/adapters/EvmAdapter.d.ts +0 -7
- package/lib/typescript/adapters/EvmAdapter.d.ts.map +0 -1
- package/lib/typescript/adapters/SolanaBaseAdapter.d.ts +0 -4
- package/lib/typescript/adapters/SolanaBaseAdapter.d.ts.map +0 -1
- package/lib/typescript/networks/bitcoin.d.ts +0 -4
- package/lib/typescript/networks/bitcoin.d.ts.map +0 -1
- package/lib/typescript/networks/solana.d.ts +0 -5
- package/lib/typescript/networks/solana.d.ts.map +0 -1
- package/src/adapters/BlockchainAdapter.ts +0 -109
- package/src/adapters/EvmAdapter.ts +0 -96
- package/src/adapters/SolanaBaseAdapter.ts +0 -5
- package/src/networks/bitcoin.ts +0 -32
- 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 +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 +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 +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 +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
|
-
}
|