@reown/appkit-common-react-native 2.0.0-alpha.0 → 2.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/adapters/BlockchainAdapter.js +79 -0
- package/lib/commonjs/adapters/BlockchainAdapter.js.map +1 -0
- package/lib/commonjs/adapters/EvmAdapter.js +83 -0
- package/lib/commonjs/adapters/EvmAdapter.js.map +1 -0
- package/lib/commonjs/adapters/SolanaBaseAdapter.js +12 -0
- package/lib/commonjs/adapters/SolanaBaseAdapter.js.map +1 -0
- package/lib/commonjs/index.js +62 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/networks/bitcoin.js +40 -0
- package/lib/commonjs/networks/bitcoin.js.map +1 -0
- package/lib/commonjs/networks/solana.js +78 -0
- package/lib/commonjs/networks/solana.js.map +1 -0
- package/lib/commonjs/utils/ConstantsUtil.js +1 -1
- package/lib/commonjs/utils/NumberUtil.js +52 -11
- package/lib/commonjs/utils/NumberUtil.js.map +1 -1
- package/lib/commonjs/utils/TypeUtil.js +9 -79
- package/lib/commonjs/utils/TypeUtil.js.map +1 -1
- package/lib/module/adapters/BlockchainAdapter.js +72 -0
- package/lib/module/adapters/BlockchainAdapter.js.map +1 -0
- package/lib/module/adapters/EvmAdapter.js +76 -0
- package/lib/module/adapters/EvmAdapter.js.map +1 -0
- package/lib/module/adapters/SolanaBaseAdapter.js +5 -0
- package/lib/module/adapters/SolanaBaseAdapter.js.map +1 -0
- package/lib/module/index.js +5 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/networks/bitcoin.js +34 -0
- package/lib/module/networks/bitcoin.js.map +1 -0
- package/lib/module/networks/solana.js +72 -0
- package/lib/module/networks/solana.js.map +1 -0
- package/lib/module/utils/ConstantsUtil.js +1 -1
- package/lib/module/utils/NumberUtil.js +52 -11
- package/lib/module/utils/NumberUtil.js.map +1 -1
- package/lib/module/utils/TypeUtil.js +7 -75
- package/lib/module/utils/TypeUtil.js.map +1 -1
- package/lib/typescript/adapters/BlockchainAdapter.d.ts +27 -0
- package/lib/typescript/adapters/BlockchainAdapter.d.ts.map +1 -0
- package/lib/typescript/adapters/EvmAdapter.d.ts +6 -0
- package/lib/typescript/adapters/EvmAdapter.d.ts.map +1 -0
- package/lib/typescript/adapters/SolanaBaseAdapter.d.ts +4 -0
- package/lib/typescript/adapters/SolanaBaseAdapter.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +5 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/networks/bitcoin.d.ts +4 -0
- package/lib/typescript/networks/bitcoin.d.ts.map +1 -0
- package/lib/typescript/networks/solana.d.ts +5 -0
- package/lib/typescript/networks/solana.d.ts.map +1 -0
- package/lib/typescript/utils/NumberUtil.d.ts +39 -11
- package/lib/typescript/utils/NumberUtil.d.ts.map +1 -1
- package/lib/typescript/utils/TypeUtil.d.ts +59 -42
- package/lib/typescript/utils/TypeUtil.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/adapters/BlockchainAdapter.ts +109 -0
- package/src/adapters/EvmAdapter.ts +79 -0
- package/src/adapters/SolanaBaseAdapter.ts +5 -0
- package/src/index.ts +5 -0
- package/src/networks/bitcoin.ts +32 -0
- package/src/networks/solana.ts +44 -0
- package/src/utils/ConstantsUtil.ts +1 -1
- package/src/utils/NumberUtil.ts +54 -11
- package/src/utils/TypeUtil.ts +72 -113
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.BlockchainAdapter = void 0;
|
|
7
|
+
var _events = require("events");
|
|
8
|
+
class BlockchainAdapter extends _events.EventEmitter {
|
|
9
|
+
// Typed emit method
|
|
10
|
+
emit(event, payload) {
|
|
11
|
+
return super.emit(event, payload);
|
|
12
|
+
}
|
|
13
|
+
constructor({
|
|
14
|
+
projectId,
|
|
15
|
+
supportedNamespace
|
|
16
|
+
}) {
|
|
17
|
+
super();
|
|
18
|
+
this.projectId = projectId;
|
|
19
|
+
this.supportedNamespace = supportedNamespace;
|
|
20
|
+
}
|
|
21
|
+
setConnector(connector) {
|
|
22
|
+
this.connector = connector;
|
|
23
|
+
this.subscribeToEvents();
|
|
24
|
+
}
|
|
25
|
+
removeConnector() {
|
|
26
|
+
this.connector = undefined;
|
|
27
|
+
}
|
|
28
|
+
getProvider() {
|
|
29
|
+
if (!this.connector) throw new Error('No active connector');
|
|
30
|
+
return this.connector.getProvider();
|
|
31
|
+
}
|
|
32
|
+
subscribeToEvents() {
|
|
33
|
+
const provider = this.connector?.getProvider();
|
|
34
|
+
if (!provider) return;
|
|
35
|
+
provider.on('chainChanged', this.onChainChanged.bind(this));
|
|
36
|
+
provider.on('accountsChanged', this.onAccountsChanged.bind(this));
|
|
37
|
+
provider.on('disconnect', this.onDisconnect.bind(this));
|
|
38
|
+
}
|
|
39
|
+
onChainChanged(chainId) {
|
|
40
|
+
const _chains = this.getAccounts()?.map(account => account.split(':')[1]);
|
|
41
|
+
const shouldEmit = _chains?.some(chain => chain === chainId);
|
|
42
|
+
if (shouldEmit) {
|
|
43
|
+
this.emit('chainChanged', {
|
|
44
|
+
chainId
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
onAccountsChanged(accounts) {
|
|
49
|
+
const _accounts = this.getAccounts();
|
|
50
|
+
const shouldEmit = _accounts?.some(account => {
|
|
51
|
+
const accountAddress = account.split(':')[2];
|
|
52
|
+
return accountAddress !== undefined && accounts.includes(accountAddress);
|
|
53
|
+
});
|
|
54
|
+
if (shouldEmit) {
|
|
55
|
+
this.emit('accountsChanged', {
|
|
56
|
+
accounts
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
onDisconnect() {
|
|
61
|
+
this.emit('disconnect', {
|
|
62
|
+
namespace: this.getSupportedNamespace()
|
|
63
|
+
});
|
|
64
|
+
const provider = this.connector?.getProvider();
|
|
65
|
+
if (provider) {
|
|
66
|
+
provider.off('chainChanged', this.onChainChanged.bind(this));
|
|
67
|
+
provider.off('accountsChanged', this.onAccountsChanged.bind(this));
|
|
68
|
+
provider.off('disconnect', this.onDisconnect.bind(this));
|
|
69
|
+
}
|
|
70
|
+
this.connector = undefined;
|
|
71
|
+
}
|
|
72
|
+
parseUnits(value, decimals) {
|
|
73
|
+
const [whole, fraction = ''] = value.split('.');
|
|
74
|
+
const paddedFraction = (fraction + '0'.repeat(decimals)).slice(0, decimals);
|
|
75
|
+
return BigInt(whole + paddedFraction);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
exports.BlockchainAdapter = BlockchainAdapter;
|
|
79
|
+
//# sourceMappingURL=BlockchainAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_events","require","BlockchainAdapter","EventEmitter","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","exports"],"sourceRoot":"../../../src","sources":["adapters/BlockchainAdapter.ts"],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.EVMAdapter = void 0;
|
|
7
|
+
var _BlockchainAdapter = require("./BlockchainAdapter");
|
|
8
|
+
var _NumberUtil = require("../utils/NumberUtil");
|
|
9
|
+
class EVMAdapter extends _BlockchainAdapter.BlockchainAdapter {
|
|
10
|
+
async estimateGas({
|
|
11
|
+
address,
|
|
12
|
+
to,
|
|
13
|
+
data,
|
|
14
|
+
chainNamespace
|
|
15
|
+
}) {
|
|
16
|
+
const provider = this.getProvider();
|
|
17
|
+
if (!provider) {
|
|
18
|
+
throw new Error('EVMAdapter:estimateGas - provider is undefined');
|
|
19
|
+
}
|
|
20
|
+
if (!address) {
|
|
21
|
+
throw new Error('EVMAdapter:estimateGas - from address is undefined');
|
|
22
|
+
}
|
|
23
|
+
if (chainNamespace && chainNamespace !== 'eip155') {
|
|
24
|
+
throw new Error('EVMAdapter:estimateGas - chainNamespace is not eip155');
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
const txParams = {
|
|
28
|
+
from: address,
|
|
29
|
+
to,
|
|
30
|
+
data,
|
|
31
|
+
type: '0x0' // optional, legacy type
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
const estimatedGasHex = await provider.request({
|
|
35
|
+
method: 'eth_estimateGas',
|
|
36
|
+
params: [txParams]
|
|
37
|
+
});
|
|
38
|
+
return BigInt(estimatedGasHex);
|
|
39
|
+
} catch (error) {
|
|
40
|
+
throw new Error('EVMAdapter:estimateGas - eth_estimateGas RPC failed');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
async sendTransaction(data) {
|
|
44
|
+
const {
|
|
45
|
+
address
|
|
46
|
+
} = data || {};
|
|
47
|
+
if (!this.getProvider()) {
|
|
48
|
+
throw new Error('EVMAdapter:sendTransaction - provider is undefined');
|
|
49
|
+
}
|
|
50
|
+
if (!address) {
|
|
51
|
+
throw new Error('EVMAdapter:sendTransaction - address is undefined');
|
|
52
|
+
}
|
|
53
|
+
const txParams = {
|
|
54
|
+
from: address,
|
|
55
|
+
to: data.to,
|
|
56
|
+
value: _NumberUtil.NumberUtil.convertNumericToHexString(data.value),
|
|
57
|
+
gas: _NumberUtil.NumberUtil.convertNumericToHexString(data.gas),
|
|
58
|
+
gasPrice: _NumberUtil.NumberUtil.convertNumericToHexString(data.gasPrice),
|
|
59
|
+
data: data.data,
|
|
60
|
+
// hex-encoded bytecode
|
|
61
|
+
type: '0x0' // optional: legacy transaction type
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
const txHash = await this.getProvider().request({
|
|
65
|
+
method: 'eth_sendTransaction',
|
|
66
|
+
params: [txParams]
|
|
67
|
+
});
|
|
68
|
+
let receipt = null;
|
|
69
|
+
while (!receipt) {
|
|
70
|
+
receipt = await this.getProvider().request({
|
|
71
|
+
method: 'eth_getTransactionReceipt',
|
|
72
|
+
params: [txHash]
|
|
73
|
+
});
|
|
74
|
+
if (!receipt) {
|
|
75
|
+
await new Promise(r => setTimeout(r, 1000)); // wait 1s
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return receipt?.blockHash || null;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.EVMAdapter = EVMAdapter;
|
|
83
|
+
//# sourceMappingURL=EvmAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_BlockchainAdapter","require","_NumberUtil","EVMAdapter","BlockchainAdapter","estimateGas","address","to","data","chainNamespace","provider","getProvider","Error","txParams","from","type","estimatedGasHex","request","method","params","BigInt","error","sendTransaction","value","NumberUtil","convertNumericToHexString","gas","gasPrice","txHash","receipt","Promise","r","setTimeout","blockHash","exports"],"sourceRoot":"../../../src","sources":["adapters/EvmAdapter.ts"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEO,MAAeE,UAAU,SAASC,oCAAiB,CAAC;EACzD,MAAMC,WAAWA,CAAC;IAAEC,OAAO;IAAEC,EAAE;IAAEC,IAAI;IAAEC;EAAoB,CAAC,EAAmB;IAC7E,MAAMC,QAAQ,GAAG,IAAI,CAACC,WAAW,CAAC,CAAC;IAEnC,IAAI,CAACD,QAAQ,EAAE;MACb,MAAM,IAAIE,KAAK,CAAC,gDAAgD,CAAC;IACnE;IAEA,IAAI,CAACN,OAAO,EAAE;MACZ,MAAM,IAAIM,KAAK,CAAC,oDAAoD,CAAC;IACvE;IAEA,IAAIH,cAAc,IAAIA,cAAc,KAAK,QAAQ,EAAE;MACjD,MAAM,IAAIG,KAAK,CAAC,uDAAuD,CAAC;IAC1E;IAEA,IAAI;MACF,MAAMC,QAAQ,GAAG;QACfC,IAAI,EAAER,OAAO;QACbC,EAAE;QACFC,IAAI;QACJO,IAAI,EAAE,KAAK,CAAC;MACd,CAAC;;MAED,MAAMC,eAAe,GAAG,MAAMN,QAAQ,CAACO,OAAO,CAAC;QAC7CC,MAAM,EAAE,iBAAiB;QACzBC,MAAM,EAAE,CAACN,QAAQ;MACnB,CAAC,CAAC;MAEF,OAAOO,MAAM,CAACJ,eAAyB,CAAC;IAC1C,CAAC,CAAC,OAAOK,KAAK,EAAE;MACd,MAAM,IAAIT,KAAK,CAAC,qDAAqD,CAAC;IACxE;EACF;EAEA,MAAMU,eAAeA,CAACd,IAAS,EAAE;IAC/B,MAAM;MAAEF;IAAQ,CAAC,GAAGE,IAAI,IAAI,CAAC,CAAC;IAE9B,IAAI,CAAC,IAAI,CAACG,WAAW,CAAC,CAAC,EAAE;MACvB,MAAM,IAAIC,KAAK,CAAC,oDAAoD,CAAC;IACvE;IAEA,IAAI,CAACN,OAAO,EAAE;MACZ,MAAM,IAAIM,KAAK,CAAC,mDAAmD,CAAC;IACtE;IAEA,MAAMC,QAAQ,GAAG;MACfC,IAAI,EAAER,OAAO;MACbC,EAAE,EAAEC,IAAI,CAACD,EAAE;MACXgB,KAAK,EAAEC,sBAAU,CAACC,yBAAyB,CAACjB,IAAI,CAACe,KAAK,CAAC;MACvDG,GAAG,EAAEF,sBAAU,CAACC,yBAAyB,CAACjB,IAAI,CAACkB,GAAG,CAAC;MACnDC,QAAQ,EAAEH,sBAAU,CAACC,yBAAyB,CAACjB,IAAI,CAACmB,QAAQ,CAAC;MAC7DnB,IAAI,EAAEA,IAAI,CAACA,IAAI;MAAE;MACjBO,IAAI,EAAE,KAAK,CAAC;IACd,CAAC;;IAED,MAAMa,MAAM,GAAG,MAAM,IAAI,CAACjB,WAAW,CAAC,CAAC,CAACM,OAAO,CAAC;MAC9CC,MAAM,EAAE,qBAAqB;MAC7BC,MAAM,EAAE,CAACN,QAAQ;IACnB,CAAC,CAAC;IAEF,IAAIgB,OAAO,GAAG,IAAI;IAClB,OAAO,CAACA,OAAO,EAAE;MACfA,OAAO,GAAI,MAAM,IAAI,CAAClB,WAAW,CAAC,CAAC,CAACM,OAAO,CAAC;QAC1CC,MAAM,EAAE,2BAA2B;QACnCC,MAAM,EAAE,CAACS,MAAM;MACjB,CAAC,CAAmC;MAEpC,IAAI,CAACC,OAAO,EAAE;QACZ,MAAM,IAAIC,OAAO,CAACC,CAAC,IAAIC,UAAU,CAACD,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;MAC/C;IACF;;IAEA,OAAOF,OAAO,EAAEI,SAAS,IAAI,IAAI;EACnC;AACF;AAACC,OAAA,CAAA/B,UAAA,GAAAA,UAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SolanaBaseAdapter = void 0;
|
|
7
|
+
var _BlockchainAdapter = require("./BlockchainAdapter");
|
|
8
|
+
class SolanaBaseAdapter extends _BlockchainAdapter.BlockchainAdapter {
|
|
9
|
+
// solana logic
|
|
10
|
+
}
|
|
11
|
+
exports.SolanaBaseAdapter = SolanaBaseAdapter;
|
|
12
|
+
//# sourceMappingURL=SolanaBaseAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_BlockchainAdapter","require","SolanaBaseAdapter","BlockchainAdapter","exports"],"sourceRoot":"../../../src","sources":["adapters/SolanaBaseAdapter.ts"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AAEO,MAAeC,iBAAiB,SAASC,oCAAiB,CAAC;EAChE;AAAA;AACDC,OAAA,CAAAF,iBAAA,GAAAA,iBAAA"}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -13,8 +13,22 @@ var _exportNames = {
|
|
|
13
13
|
PresetsUtil: true,
|
|
14
14
|
StringUtil: true,
|
|
15
15
|
ErrorUtil: true,
|
|
16
|
-
erc20ABI: true
|
|
16
|
+
erc20ABI: true,
|
|
17
|
+
solana: true,
|
|
18
|
+
solanaDevnet: true,
|
|
19
|
+
solanaTestnet: true,
|
|
20
|
+
bitcoin: true,
|
|
21
|
+
bitcoinTestnet: true,
|
|
22
|
+
BlockchainAdapter: true,
|
|
23
|
+
EVMAdapter: true,
|
|
24
|
+
SolanaBaseAdapter: true
|
|
17
25
|
};
|
|
26
|
+
Object.defineProperty(exports, "BlockchainAdapter", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function () {
|
|
29
|
+
return _BlockchainAdapter.BlockchainAdapter;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
18
32
|
Object.defineProperty(exports, "ConstantsUtil", {
|
|
19
33
|
enumerable: true,
|
|
20
34
|
get: function () {
|
|
@@ -33,6 +47,12 @@ Object.defineProperty(exports, "DateUtil", {
|
|
|
33
47
|
return _DateUtil.DateUtil;
|
|
34
48
|
}
|
|
35
49
|
});
|
|
50
|
+
Object.defineProperty(exports, "EVMAdapter", {
|
|
51
|
+
enumerable: true,
|
|
52
|
+
get: function () {
|
|
53
|
+
return _EvmAdapter.EVMAdapter;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
36
56
|
Object.defineProperty(exports, "ErrorUtil", {
|
|
37
57
|
enumerable: true,
|
|
38
58
|
get: function () {
|
|
@@ -63,18 +83,54 @@ Object.defineProperty(exports, "PresetsUtil", {
|
|
|
63
83
|
return _PresetsUtil.PresetsUtil;
|
|
64
84
|
}
|
|
65
85
|
});
|
|
86
|
+
Object.defineProperty(exports, "SolanaBaseAdapter", {
|
|
87
|
+
enumerable: true,
|
|
88
|
+
get: function () {
|
|
89
|
+
return _SolanaBaseAdapter.SolanaBaseAdapter;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
66
92
|
Object.defineProperty(exports, "StringUtil", {
|
|
67
93
|
enumerable: true,
|
|
68
94
|
get: function () {
|
|
69
95
|
return _StringUtil.StringUtil;
|
|
70
96
|
}
|
|
71
97
|
});
|
|
98
|
+
Object.defineProperty(exports, "bitcoin", {
|
|
99
|
+
enumerable: true,
|
|
100
|
+
get: function () {
|
|
101
|
+
return _bitcoin.bitcoin;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
Object.defineProperty(exports, "bitcoinTestnet", {
|
|
105
|
+
enumerable: true,
|
|
106
|
+
get: function () {
|
|
107
|
+
return _bitcoin.bitcoinTestnet;
|
|
108
|
+
}
|
|
109
|
+
});
|
|
72
110
|
Object.defineProperty(exports, "erc20ABI", {
|
|
73
111
|
enumerable: true,
|
|
74
112
|
get: function () {
|
|
75
113
|
return _erc.erc20ABI;
|
|
76
114
|
}
|
|
77
115
|
});
|
|
116
|
+
Object.defineProperty(exports, "solana", {
|
|
117
|
+
enumerable: true,
|
|
118
|
+
get: function () {
|
|
119
|
+
return _solana.solana;
|
|
120
|
+
}
|
|
121
|
+
});
|
|
122
|
+
Object.defineProperty(exports, "solanaDevnet", {
|
|
123
|
+
enumerable: true,
|
|
124
|
+
get: function () {
|
|
125
|
+
return _solana.solanaDevnet;
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
Object.defineProperty(exports, "solanaTestnet", {
|
|
129
|
+
enumerable: true,
|
|
130
|
+
get: function () {
|
|
131
|
+
return _solana.solanaTestnet;
|
|
132
|
+
}
|
|
133
|
+
});
|
|
78
134
|
var _ConstantsUtil = require("./utils/ConstantsUtil");
|
|
79
135
|
var _ContractUtil = require("./utils/ContractUtil");
|
|
80
136
|
var _DateUtil = require("./utils/DateUtil");
|
|
@@ -85,6 +141,11 @@ var _PresetsUtil = require("./utils/PresetsUtil");
|
|
|
85
141
|
var _StringUtil = require("./utils/StringUtil");
|
|
86
142
|
var _ErrorUtil = require("./utils/ErrorUtil");
|
|
87
143
|
var _erc = require("./contracts/erc20");
|
|
144
|
+
var _solana = require("./networks/solana");
|
|
145
|
+
var _bitcoin = require("./networks/bitcoin");
|
|
146
|
+
var _BlockchainAdapter = require("./adapters/BlockchainAdapter");
|
|
147
|
+
var _EvmAdapter = require("./adapters/EvmAdapter");
|
|
148
|
+
var _SolanaBaseAdapter = require("./adapters/SolanaBaseAdapter");
|
|
88
149
|
var _TypeUtil = require("./utils/TypeUtil");
|
|
89
150
|
Object.keys(_TypeUtil).forEach(function (key) {
|
|
90
151
|
if (key === "default" || key === "__esModule") return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ConstantsUtil","require","_ContractUtil","_DateUtil","_NamesUtil","_NetworkUtil","_NumberUtil","_PresetsUtil","_StringUtil","_ErrorUtil","_erc","_TypeUtil","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_ConstantsUtil","require","_ContractUtil","_DateUtil","_NamesUtil","_NetworkUtil","_NumberUtil","_PresetsUtil","_StringUtil","_ErrorUtil","_erc","_solana","_bitcoin","_BlockchainAdapter","_EvmAdapter","_SolanaBaseAdapter","_TypeUtil","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,cAAA,GAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,WAAA,GAAAL,OAAA;AACA,IAAAM,YAAA,GAAAN,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AACA,IAAAQ,UAAA,GAAAR,OAAA;AACA,IAAAS,IAAA,GAAAT,OAAA;AACA,IAAAU,OAAA,GAAAV,OAAA;AACA,IAAAW,QAAA,GAAAX,OAAA;AACA,IAAAY,kBAAA,GAAAZ,OAAA;AACA,IAAAa,WAAA,GAAAb,OAAA;AACA,IAAAc,kBAAA,GAAAd,OAAA;AACA,IAAAe,SAAA,GAAAf,OAAA;AAAAgB,MAAA,CAAAC,IAAA,CAAAF,SAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,SAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,SAAA,CAAAI,GAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.bitcoinTestnet = exports.bitcoin = void 0;
|
|
7
|
+
const bitcoin = exports.bitcoin = {
|
|
8
|
+
id: '000000000019d6689c085ae165831e93',
|
|
9
|
+
caipNetworkId: 'bip122:000000000019d6689c085ae165831e93',
|
|
10
|
+
chainNamespace: 'bip122',
|
|
11
|
+
name: 'Bitcoin',
|
|
12
|
+
nativeCurrency: {
|
|
13
|
+
name: 'Bitcoin',
|
|
14
|
+
symbol: 'BTC',
|
|
15
|
+
decimals: 8
|
|
16
|
+
},
|
|
17
|
+
rpcUrls: {
|
|
18
|
+
default: {
|
|
19
|
+
http: ['https://rpc.walletconnect.org/v1']
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
const bitcoinTestnet = exports.bitcoinTestnet = {
|
|
24
|
+
id: '000000000933ea01ad0ee984209779ba',
|
|
25
|
+
caipNetworkId: 'bip122:000000000933ea01ad0ee984209779ba',
|
|
26
|
+
chainNamespace: 'bip122',
|
|
27
|
+
name: 'Bitcoin Testnet',
|
|
28
|
+
nativeCurrency: {
|
|
29
|
+
name: 'Bitcoin',
|
|
30
|
+
symbol: 'BTC',
|
|
31
|
+
decimals: 8
|
|
32
|
+
},
|
|
33
|
+
rpcUrls: {
|
|
34
|
+
default: {
|
|
35
|
+
http: ['https://rpc.walletconnect.org/v1']
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
testnet: true
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=bitcoin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["bitcoin","exports","id","caipNetworkId","chainNamespace","name","nativeCurrency","symbol","decimals","rpcUrls","default","http","bitcoinTestnet","testnet"],"sourceRoot":"../../../src","sources":["networks/bitcoin.ts"],"mappings":";;;;;;AAEO,MAAMA,OAAsB,GAAAC,OAAA,CAAAD,OAAA,GAAG;EACpCE,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;AAEM,MAAMC,cAA6B,GAAAX,OAAA,CAAAW,cAAA,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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.ConstantsUtil = void 0;
|
|
7
7
|
const ConstantsUtil = exports.ConstantsUtil = {
|
|
8
|
-
VERSION: '2.0.0-alpha.
|
|
8
|
+
VERSION: '2.0.0-alpha.1',
|
|
9
9
|
EIP155: 'eip155',
|
|
10
10
|
ADD_CHAIN_METHOD: 'wallet_addEthereumChain',
|
|
11
11
|
WC_NAME_SUFFIX: '.reown.id',
|
|
@@ -8,6 +8,12 @@ var BigNumber = _interopRequireWildcard(require("bignumber.js"));
|
|
|
8
8
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
9
9
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
10
|
const NumberUtil = exports.NumberUtil = {
|
|
11
|
+
/**
|
|
12
|
+
* Creates a BigNumber instance from a given value.
|
|
13
|
+
* If the value is a string, commas are removed before conversion.
|
|
14
|
+
* @param value - The input value (string, number, or BigNumber) to convert to a BigNumber.
|
|
15
|
+
* @returns A BigNumber instance.
|
|
16
|
+
*/
|
|
11
17
|
bigNumber(value) {
|
|
12
18
|
if (typeof value === 'string') {
|
|
13
19
|
return new BigNumber.BigNumber(value.replace(/,/g, ''));
|
|
@@ -15,10 +21,11 @@ const NumberUtil = exports.NumberUtil = {
|
|
|
15
21
|
return new BigNumber.BigNumber(value);
|
|
16
22
|
},
|
|
17
23
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* @param
|
|
21
|
-
* @
|
|
24
|
+
* Multiplies two numbers using BigNumber for precision, especially with decimals.
|
|
25
|
+
* Handles undefined inputs by returning BigNumber(0).
|
|
26
|
+
* @param a - The first multiplicand (string, number, or BigNumber). Commas are removed if it's a string.
|
|
27
|
+
* @param b - The second multiplicand (string, number, or BigNumber). Commas are removed if it's a string.
|
|
28
|
+
* @returns The product as a BigNumber instance, or BigNumber(0) if either input is undefined.
|
|
22
29
|
*/
|
|
23
30
|
multiply(a, b) {
|
|
24
31
|
if (a === undefined || b === undefined) {
|
|
@@ -28,19 +35,32 @@ const NumberUtil = exports.NumberUtil = {
|
|
|
28
35
|
const bBigNumber = new BigNumber.BigNumber(typeof b === 'string' ? b.replace(/,/gu, '') : b);
|
|
29
36
|
return aBigNumber.multipliedBy(bBigNumber);
|
|
30
37
|
},
|
|
38
|
+
/**
|
|
39
|
+
* Rounds a number to a specified number of decimal places if its string representation meets a certain length threshold.
|
|
40
|
+
* @param number - The number to potentially round.
|
|
41
|
+
* @param threshold - The minimum string length of the number to trigger rounding.
|
|
42
|
+
* @param fixed - The number of decimal places to round to.
|
|
43
|
+
* @returns The rounded number (as a string if rounded, otherwise the original number) or the original number.
|
|
44
|
+
*/
|
|
31
45
|
roundNumber(number, threshold, fixed) {
|
|
32
46
|
const roundedNumber = number.toString().length >= threshold ? Number(number).toFixed(fixed) : number;
|
|
33
47
|
return roundedNumber;
|
|
34
48
|
},
|
|
49
|
+
/**
|
|
50
|
+
* Calculates the next multiple of ten greater than or equal to the given amount.
|
|
51
|
+
* Defaults to 10 if no amount is provided or if the calculated multiple is less than 10.
|
|
52
|
+
* @param amount - The number for which to find the next multiple of ten. Optional.
|
|
53
|
+
* @returns The next multiple of ten, at least 10.
|
|
54
|
+
*/
|
|
35
55
|
nextMultipleOfTen(amount) {
|
|
36
56
|
if (!amount) return 10;
|
|
37
57
|
return Math.max(Math.ceil(amount / 10) * 10, 10);
|
|
38
58
|
},
|
|
39
59
|
/**
|
|
40
|
-
*
|
|
41
|
-
* @param value - The value to format
|
|
42
|
-
* @param decimals - number of
|
|
43
|
-
* @returns
|
|
60
|
+
* Formats a number or string to a human-readable string with a specified number of decimal places, using US locale formatting.
|
|
61
|
+
* @param value - The value to format (string, number, or undefined). If undefined, returns '0.00'.
|
|
62
|
+
* @param decimals - The number of decimal places to display. Defaults to 2.
|
|
63
|
+
* @returns A locale-formatted string representation of the number.
|
|
44
64
|
*/
|
|
45
65
|
formatNumberToLocalString(value, decimals = 2) {
|
|
46
66
|
if (value === undefined) {
|
|
@@ -58,9 +78,9 @@ const NumberUtil = exports.NumberUtil = {
|
|
|
58
78
|
});
|
|
59
79
|
},
|
|
60
80
|
/**
|
|
61
|
-
*
|
|
62
|
-
* @param value - The formatted string to parse
|
|
63
|
-
* @returns
|
|
81
|
+
* Parses a locale-formatted numeric string (e.g., with commas) back into a number.
|
|
82
|
+
* @param value - The formatted string to parse. If undefined, returns 0.
|
|
83
|
+
* @returns The parsed number, or 0 if the input is undefined.
|
|
64
84
|
*/
|
|
65
85
|
parseLocalStringToNumber(value) {
|
|
66
86
|
if (value === undefined) {
|
|
@@ -69,6 +89,27 @@ const NumberUtil = exports.NumberUtil = {
|
|
|
69
89
|
|
|
70
90
|
// Remove any commas used as thousand separators and parse the float
|
|
71
91
|
return parseFloat(value.replace(/,/gu, ''));
|
|
92
|
+
},
|
|
93
|
+
/**
|
|
94
|
+
* Converts a numeric value (BigInt, number, or string representation of a number) to a 0x-prefixed hexadecimal string.
|
|
95
|
+
* This is often required for Ethereum RPC parameters like value, gas, gasPrice.
|
|
96
|
+
* @param value - The value to convert. Can be BigInt, number, or a string (decimal or hex).
|
|
97
|
+
* @returns A 0x-prefixed hexadecimal string, or undefined if the input is undefined or null.
|
|
98
|
+
* @throws Error if the value cannot be converted to BigInt.
|
|
99
|
+
*/
|
|
100
|
+
convertNumericToHexString: value => {
|
|
101
|
+
if (value === undefined || value === null) {
|
|
102
|
+
return undefined;
|
|
103
|
+
}
|
|
104
|
+
try {
|
|
105
|
+
// This handles BigInt, number, or string representation of a number (decimal or hex)
|
|
106
|
+
const bigIntValue = BigInt(value);
|
|
107
|
+
// Ethereum RPC spec requires "0x0" for zero, and other values to be 0x-prefixed hex.
|
|
108
|
+
|
|
109
|
+
return '0x' + bigIntValue.toString(16);
|
|
110
|
+
} catch (error) {
|
|
111
|
+
throw new Error(`NumberUtil: Invalid parameter, cannot convert to hex: ${value}`);
|
|
112
|
+
}
|
|
72
113
|
}
|
|
73
114
|
};
|
|
74
115
|
//# sourceMappingURL=NumberUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BigNumber","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","NumberUtil","exports","bigNumber","value","replace","multiply","b","undefined","aBigNumber","bBigNumber","multipliedBy","roundNumber","number","threshold","fixed","roundedNumber","toString","length","Number","toFixed","nextMultipleOfTen","amount","Math","max","ceil","formatNumberToLocalString","decimals","toLocaleString","maximumFractionDigits","minimumFractionDigits","parseFloat","parseLocalStringToNumber"],"sourceRoot":"../../../src","sources":["utils/NumberUtil.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,uBAAA,CAAAC,OAAA;AAA0C,SAAAC,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAH,wBAAAG,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAEnC,MAAMW,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG;
|
|
1
|
+
{"version":3,"names":["BigNumber","_interopRequireWildcard","require","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","NumberUtil","exports","bigNumber","value","replace","multiply","b","undefined","aBigNumber","bBigNumber","multipliedBy","roundNumber","number","threshold","fixed","roundedNumber","toString","length","Number","toFixed","nextMultipleOfTen","amount","Math","max","ceil","formatNumberToLocalString","decimals","toLocaleString","maximumFractionDigits","minimumFractionDigits","parseFloat","parseLocalStringToNumber","convertNumericToHexString","bigIntValue","BigInt","error","Error"],"sourceRoot":"../../../src","sources":["utils/NumberUtil.ts"],"mappings":"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"}
|