@reown/appkit-common-react-native 1.2.4 → 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 +2 -1
- package/lib/commonjs/utils/ConstantsUtil.js.map +1 -1
- package/lib/commonjs/utils/DateUtil.js +3 -0
- package/lib/commonjs/utils/DateUtil.js.map +1 -1
- package/lib/commonjs/utils/NumberUtil.js +56 -11
- package/lib/commonjs/utils/NumberUtil.js.map +1 -1
- package/lib/commonjs/utils/PresetsUtil.js +34 -3
- package/lib/commonjs/utils/PresetsUtil.js.map +1 -1
- package/lib/commonjs/utils/StringUtil.js +1 -1
- package/lib/commonjs/utils/StringUtil.js.map +1 -1
- package/lib/commonjs/utils/TypeUtil.js +34 -0
- 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 +2 -1
- package/lib/module/utils/ConstantsUtil.js.map +1 -1
- package/lib/module/utils/DateUtil.js +3 -0
- package/lib/module/utils/DateUtil.js.map +1 -1
- package/lib/module/utils/NumberUtil.js +56 -11
- package/lib/module/utils/NumberUtil.js.map +1 -1
- package/lib/module/utils/PresetsUtil.js +34 -3
- package/lib/module/utils/PresetsUtil.js.map +1 -1
- package/lib/module/utils/StringUtil.js +1 -1
- package/lib/module/utils/StringUtil.js.map +1 -1
- package/lib/module/utils/TypeUtil.js +28 -0
- 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/ConstantsUtil.d.ts +1 -0
- package/lib/typescript/utils/ConstantsUtil.d.ts.map +1 -1
- package/lib/typescript/utils/DateUtil.d.ts +1 -0
- package/lib/typescript/utils/DateUtil.d.ts.map +1 -1
- package/lib/typescript/utils/NumberUtil.d.ts +40 -11
- 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 +193 -1
- 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 +2 -1
- package/src/utils/DateUtil.ts +4 -0
- package/src/utils/NumberUtil.ts +60 -11
- package/src/utils/PresetsUtil.ts +36 -3
- package/src/utils/StringUtil.ts +1 -1
- package/src/utils/TypeUtil.ts +240 -1
|
@@ -9,11 +9,11 @@ const PresetsUtil = exports.PresetsUtil = {
|
|
|
9
9
|
ConnectorExplorerIds: {
|
|
10
10
|
[_ConstantsUtil.ConstantsUtil.COINBASE_CONNECTOR_ID]: 'fd20dc426fb37566d803205b19bbc1d4096b248ac04548e3cfb6b3a38bd033aa'
|
|
11
11
|
},
|
|
12
|
-
|
|
12
|
+
NetworkImageIds: {
|
|
13
13
|
// Ethereum
|
|
14
14
|
1: 'ba0ba0cd-17c6-4806-ad93-f9d174f17900',
|
|
15
15
|
// Arbitrum
|
|
16
|
-
42161: '
|
|
16
|
+
42161: '3bff954d-5cb0-47a0-9a23-d20192e74600',
|
|
17
17
|
// Avalanche
|
|
18
18
|
43114: '30c46e53-e989-45fb-4549-be3bd4eb3b00',
|
|
19
19
|
// Binance Smart Chain
|
|
@@ -24,6 +24,20 @@ const PresetsUtil = exports.PresetsUtil = {
|
|
|
24
24
|
10: 'ab9c186a-c52f-464b-2906-ca59d760a400',
|
|
25
25
|
// Polygon
|
|
26
26
|
137: '41d04d42-da3b-4453-8506-668cc0727900',
|
|
27
|
+
// Mantle
|
|
28
|
+
5000: 'e86fae9b-b770-4eea-e520-150e12c81100',
|
|
29
|
+
// Hedera Mainnet
|
|
30
|
+
295: '6a97d510-cac8-4e58-c7ce-e8681b044c00',
|
|
31
|
+
// Sepolia
|
|
32
|
+
11_155_111: 'e909ea0a-f92a-4512-c8fc-748044ea6800',
|
|
33
|
+
// Base Sepolia
|
|
34
|
+
84532: 'a18a7ecd-e307-4360-4746-283182228e00',
|
|
35
|
+
// Unichain Sepolia
|
|
36
|
+
1301: '4eeea7ef-0014-4649-5d1d-07271a80f600',
|
|
37
|
+
// Unichain Mainnet
|
|
38
|
+
130: '2257980a-3463-48c6-cbac-a42d2a956e00',
|
|
39
|
+
// Monad Testnet
|
|
40
|
+
10_143: '0a728e83-bacb-46db-7844-948f05434900',
|
|
27
41
|
// Gnosis
|
|
28
42
|
100: '02b53f6a-e3d4-479e-1cb4-21178987d100',
|
|
29
43
|
// EVMos
|
|
@@ -47,7 +61,24 @@ const PresetsUtil = exports.PresetsUtil = {
|
|
|
47
61
|
// Base
|
|
48
62
|
8453: '7289c336-3981-4081-c5f4-efc26ac64a00',
|
|
49
63
|
// Aurora
|
|
50
|
-
1313161554: '3ff73439-a619-4894-9262-4470c773a100'
|
|
64
|
+
1313161554: '3ff73439-a619-4894-9262-4470c773a100',
|
|
65
|
+
// Ronin Mainnet
|
|
66
|
+
2020: 'b8101fc0-9c19-4b6f-ec65-f6dfff106e00',
|
|
67
|
+
// Saigon Testnet (a.k.a. Ronin)
|
|
68
|
+
2021: 'b8101fc0-9c19-4b6f-ec65-f6dfff106e00',
|
|
69
|
+
// Berachain Mainnet
|
|
70
|
+
80094: 'e329c2c9-59b0-4a02-83e4-212ff3779900',
|
|
71
|
+
// Abstract Mainnet
|
|
72
|
+
2741: 'fc2427d1-5af9-4a9c-8da5-6f94627cd900',
|
|
73
|
+
// Solana networks
|
|
74
|
+
/// Mainnet
|
|
75
|
+
'5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp': 'a1b58899-f671-4276-6a5e-56ca5bd59700',
|
|
76
|
+
/// Testnet
|
|
77
|
+
'4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z': 'a1b58899-f671-4276-6a5e-56ca5bd59700',
|
|
78
|
+
// Bitcoin
|
|
79
|
+
'000000000019d6689c085ae165831e93': '0b4838db-0161-4ffe-022d-532bf03dba00',
|
|
80
|
+
// Bitcoin Testnet
|
|
81
|
+
'000000000933ea01ad0ee984209779ba': '39354064-d79b-420b-065d-f980c4b78200'
|
|
51
82
|
},
|
|
52
83
|
ConnectorNamesMap: {
|
|
53
84
|
[_ConstantsUtil.ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID]: 'WalletConnect',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_ConstantsUtil","require","PresetsUtil","exports","ConnectorExplorerIds","ConstantsUtil","COINBASE_CONNECTOR_ID","
|
|
1
|
+
{"version":3,"names":["_ConstantsUtil","require","PresetsUtil","exports","ConnectorExplorerIds","ConstantsUtil","COINBASE_CONNECTOR_ID","NetworkImageIds","ConnectorNamesMap","WALLET_CONNECT_CONNECTOR_ID","AUTH_CONNECTOR_ID","ConnectorImageIds","ConnectorTypesMap","RpcChainIds"],"sourceRoot":"../../../src","sources":["utils/PresetsUtil.ts"],"mappings":";;;;;;AACA,IAAAA,cAAA,GAAAC,OAAA;AAEO,MAAMC,WAAW,GAAAC,OAAA,CAAAD,WAAA,GAAG;EACzBE,oBAAoB,EAAE;IACpB,CAACC,4BAAa,CAACC,qBAAqB,GAClC;EACJ,CAA2B;EAE3BC,eAAe,EAAE;IACf;IACA,CAAC,EAAE,sCAAsC;IACzC;IACA,KAAK,EAAE,sCAAsC;IAC7C;IACA,KAAK,EAAE,sCAAsC;IAC7C;IACA,EAAE,EAAE,sCAAsC;IAC1C;IACA,GAAG,EAAE,sCAAsC;IAC3C;IACA,EAAE,EAAE,sCAAsC;IAC1C;IACA,GAAG,EAAE,sCAAsC;IAC3C;IACA,IAAI,EAAE,sCAAsC;IAC5C;IACA,GAAG,EAAE,sCAAsC;IAC3C;IACA,UAAU,EAAE,sCAAsC;IAClD;IACA,KAAK,EAAE,sCAAsC;IAC7C;IACA,IAAI,EAAE,sCAAsC;IAC5C;IACA,GAAG,EAAE,sCAAsC;IAC3C;IACA,MAAM,EAAE,sCAAsC;IAC9C;IACA,GAAG,EAAE,sCAAsC;IAC3C;IACA,IAAI,EAAE,sCAAsC;IAC5C;IACA,GAAG,EAAE,sCAAsC;IAC3C;IACA,GAAG,EAAE,sCAAsC;IAC3C;IACA,IAAI,EAAE,sCAAsC;IAC5C;IACA,IAAI,EAAE,sCAAsC;IAC5C;IACA,IAAI,EAAE,sCAAsC;IAC5C;IACA,IAAI,EAAE,sCAAsC;IAC5C;IACA,OAAO,EAAE,sCAAsC;IAC/C;IACA,KAAK,EAAE,sCAAsC;IAC7C;IACA,IAAI,EAAE,sCAAsC;IAC5C;IACA,UAAU,EAAE,sCAAsC;IAClD;IACA,IAAI,EAAE,sCAAsC;IAC5C;IACA,IAAI,EAAE,sCAAsC;IAC5C;IACA,KAAK,EAAE,sCAAsC;IAC7C;IACA,IAAI,EAAE,sCAAsC;IAE5C;IACA;IACA,kCAAkC,EAAE,sCAAsC;IAC1E;IACA,kCAAkC,EAAE,sCAAsC;IAE1E;IACA,kCAAkC,EAAE,sCAAsC;IAC1E;IACA,kCAAkC,EAAE;EACtC,CAA2B;EAE3BC,iBAAiB,EAAE;IACjB,CAACH,4BAAa,CAACI,2BAA2B,GAAG,eAAe;IAC5D,CAACJ,4BAAa,CAACC,qBAAqB,GAAG,iBAAiB;IACxD,CAACD,4BAAa,CAACK,iBAAiB,GAAG;EACrC,CAA2B;EAE3BC,iBAAiB,EAAE;IACjB,CAACN,4BAAa,CAACC,qBAAqB,GAAG,sCAAsC;IAC7E,CAACD,4BAAa,CAACI,2BAA2B,GAAG;EAC/C,CAA2B;EAE3BG,iBAAiB,EAAE;IACjB,CAACP,4BAAa,CAACI,2BAA2B,GAAG,gBAAgB;IAC7D,CAACJ,4BAAa,CAACC,qBAAqB,GAAG,UAAU;IACjD,CAACD,4BAAa,CAACK,iBAAiB,GAAG;EACrC,CAAkC;EAElCG,WAAW,EAAE;EACX;EACA,CAAC;EACD;EACA,CAAC;EACD;EACA,QAAQ;EACR;EACA,EAAE;EACF;EACA,GAAG;EACH;EACA,KAAK;EACL;EACA,MAAM;EACN;EACA,GAAG;EACH;EACA,KAAK;EACL;EACA,KAAK;EACL;EACA,UAAU;EACV;EACA,UAAU;EACV;EACA,EAAE;EACF;EACA,EAAE;EACF;EACA,KAAK;EACL;EACA,KAAK;EACL;EACA,GAAG;EACH;EACA,IAAI;EACJ;EACA,KAAK;EACL;EACA,OAAO;EACP;EACA,GAAG;EACH;EACA,GAAG;EACH;EACA,GAAG;AAEP,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StringUtil","exports","capitalize","value","charAt","toUpperCase","slice"],"sourceRoot":"../../../src","sources":["utils/StringUtil.ts"],"mappings":";;;;;;AAAO,MAAMA,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG;EACxBE,UAAUA,CAACC,KAAc,EAAE;IACzB,IAAI,CAACA,KAAK,EAAE;MACV,OAAO,EAAE;IACX;IAEA,OAAOA,KAAK,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGF,KAAK,CAACG,KAAK,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"names":["StringUtil","exports","capitalize","value","charAt","toUpperCase","slice","toLowerCase"],"sourceRoot":"../../../src","sources":["utils/StringUtil.ts"],"mappings":";;;;;;AAAO,MAAMA,UAAU,GAAAC,OAAA,CAAAD,UAAA,GAAG;EACxBE,UAAUA,CAACC,KAAc,EAAE;IACzB,IAAI,CAACA,KAAK,EAAE;MACV,OAAO,EAAE;IACX;IAEA,OAAOA,KAAK,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGF,KAAK,CAACG,KAAK,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC;EACrE;AACF,CAAC"}
|
|
@@ -1,2 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.WalletConnector = void 0;
|
|
7
|
+
var _events = require("events");
|
|
8
|
+
//********** Adapter Event Payloads **********//
|
|
9
|
+
|
|
10
|
+
//********** Adapter Event Map **********//
|
|
11
|
+
|
|
12
|
+
//********** Connector Types **********//
|
|
13
|
+
|
|
14
|
+
class WalletConnector extends _events.EventEmitter {
|
|
15
|
+
constructor({
|
|
16
|
+
type
|
|
17
|
+
}) {
|
|
18
|
+
super();
|
|
19
|
+
this.type = type;
|
|
20
|
+
}
|
|
21
|
+
async init(ops) {
|
|
22
|
+
this.storage = ops.storage;
|
|
23
|
+
this.metadata = ops.metadata;
|
|
24
|
+
}
|
|
25
|
+
setProvider(provider) {
|
|
26
|
+
this.provider = provider;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
//********** Provider Types **********//
|
|
31
|
+
|
|
32
|
+
//TODO: rename this and remove the old one ConnectorType
|
|
33
|
+
|
|
34
|
+
//********** Others **********//
|
|
35
|
+
exports.WalletConnector = WalletConnector;
|
|
2
36
|
//# sourceMappingURL=TypeUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["utils/TypeUtil.ts"],"mappings":""}
|
|
1
|
+
{"version":3,"names":["_events","require","WalletConnector","EventEmitter","constructor","type","init","ops","storage","metadata","setProvider","provider","exports"],"sourceRoot":"../../../src","sources":["utils/TypeUtil.ts"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAgKA;;AAoBA;;AAsBA;;AA6BO,MAAeC,eAAe,SAASC,oBAAY,CAAC;EAQzDC,WAAWA,CAAC;IAAEC;EAAkC,CAAC,EAAE;IACjD,KAAK,CAAC,CAAC;IACP,IAAI,CAACA,IAAI,GAAGA,IAAI;EAClB;EAEA,MAAaC,IAAIA,CAACC,GAAyB,EAAE;IAC3C,IAAI,CAACC,OAAO,GAAGD,GAAG,CAACC,OAAO;IAC1B,IAAI,CAACC,QAAQ,GAAGF,GAAG,CAACE,QAAQ;EAC9B;EAEOC,WAAWA,CAACC,QAAkB,EAAE;IACrC,IAAI,CAACA,QAAQ,GAAGA,QAAQ;EAC1B;AASF;;AAEA;;AAmBA;;AAGA;AAAAC,OAAA,CAAAV,eAAA,GAAAA,eAAA"}
|
|
@@ -0,0 +1,72 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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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"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { BlockchainAdapter } from './BlockchainAdapter';
|
|
2
|
+
import { NumberUtil } from '../utils/NumberUtil';
|
|
3
|
+
export class EVMAdapter extends BlockchainAdapter {
|
|
4
|
+
async estimateGas({
|
|
5
|
+
address,
|
|
6
|
+
to,
|
|
7
|
+
data,
|
|
8
|
+
chainNamespace
|
|
9
|
+
}) {
|
|
10
|
+
const provider = this.getProvider();
|
|
11
|
+
if (!provider) {
|
|
12
|
+
throw new Error('EVMAdapter:estimateGas - provider is undefined');
|
|
13
|
+
}
|
|
14
|
+
if (!address) {
|
|
15
|
+
throw new Error('EVMAdapter:estimateGas - from address is undefined');
|
|
16
|
+
}
|
|
17
|
+
if (chainNamespace && chainNamespace !== 'eip155') {
|
|
18
|
+
throw new Error('EVMAdapter:estimateGas - chainNamespace is not eip155');
|
|
19
|
+
}
|
|
20
|
+
try {
|
|
21
|
+
const txParams = {
|
|
22
|
+
from: address,
|
|
23
|
+
to,
|
|
24
|
+
data,
|
|
25
|
+
type: '0x0' // optional, legacy type
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
const estimatedGasHex = await provider.request({
|
|
29
|
+
method: 'eth_estimateGas',
|
|
30
|
+
params: [txParams]
|
|
31
|
+
});
|
|
32
|
+
return BigInt(estimatedGasHex);
|
|
33
|
+
} catch (error) {
|
|
34
|
+
throw new Error('EVMAdapter:estimateGas - eth_estimateGas RPC failed');
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async sendTransaction(data) {
|
|
38
|
+
const {
|
|
39
|
+
address
|
|
40
|
+
} = data || {};
|
|
41
|
+
if (!this.getProvider()) {
|
|
42
|
+
throw new Error('EVMAdapter:sendTransaction - provider is undefined');
|
|
43
|
+
}
|
|
44
|
+
if (!address) {
|
|
45
|
+
throw new Error('EVMAdapter:sendTransaction - address is undefined');
|
|
46
|
+
}
|
|
47
|
+
const txParams = {
|
|
48
|
+
from: address,
|
|
49
|
+
to: data.to,
|
|
50
|
+
value: NumberUtil.convertNumericToHexString(data.value),
|
|
51
|
+
gas: NumberUtil.convertNumericToHexString(data.gas),
|
|
52
|
+
gasPrice: NumberUtil.convertNumericToHexString(data.gasPrice),
|
|
53
|
+
data: data.data,
|
|
54
|
+
// hex-encoded bytecode
|
|
55
|
+
type: '0x0' // optional: legacy transaction type
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
const txHash = await this.getProvider().request({
|
|
59
|
+
method: 'eth_sendTransaction',
|
|
60
|
+
params: [txParams]
|
|
61
|
+
});
|
|
62
|
+
let receipt = null;
|
|
63
|
+
while (!receipt) {
|
|
64
|
+
receipt = await this.getProvider().request({
|
|
65
|
+
method: 'eth_getTransactionReceipt',
|
|
66
|
+
params: [txHash]
|
|
67
|
+
});
|
|
68
|
+
if (!receipt) {
|
|
69
|
+
await new Promise(r => setTimeout(r, 1000)); // wait 1s
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
return receipt?.blockHash || null;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=EvmAdapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BlockchainAdapter","NumberUtil","EVMAdapter","estimateGas","address","to","data","chainNamespace","provider","getProvider","Error","txParams","from","type","estimatedGasHex","request","method","params","BigInt","error","sendTransaction","value","convertNumericToHexString","gas","gasPrice","txHash","receipt","Promise","r","setTimeout","blockHash"],"sourceRoot":"../../../src","sources":["adapters/EvmAdapter.ts"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,UAAU,QAAQ,qBAAqB;AAEhD,OAAO,MAAeC,UAAU,SAASF,iBAAiB,CAAC;EACzD,MAAMG,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,EAAEpB,UAAU,CAACqB,yBAAyB,CAAChB,IAAI,CAACe,KAAK,CAAC;MACvDE,GAAG,EAAEtB,UAAU,CAACqB,yBAAyB,CAAChB,IAAI,CAACiB,GAAG,CAAC;MACnDC,QAAQ,EAAEvB,UAAU,CAACqB,yBAAyB,CAAChB,IAAI,CAACkB,QAAQ,CAAC;MAC7DlB,IAAI,EAAEA,IAAI,CAACA,IAAI;MAAE;MACjBO,IAAI,EAAE,KAAK,CAAC;IACd,CAAC;;IAED,MAAMY,MAAM,GAAG,MAAM,IAAI,CAAChB,WAAW,CAAC,CAAC,CAACM,OAAO,CAAC;MAC9CC,MAAM,EAAE,qBAAqB;MAC7BC,MAAM,EAAE,CAACN,QAAQ;IACnB,CAAC,CAAC;IAEF,IAAIe,OAAO,GAAG,IAAI;IAClB,OAAO,CAACA,OAAO,EAAE;MACfA,OAAO,GAAI,MAAM,IAAI,CAACjB,WAAW,CAAC,CAAC,CAACM,OAAO,CAAC;QAC1CC,MAAM,EAAE,2BAA2B;QACnCC,MAAM,EAAE,CAACQ,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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
package/lib/module/index.js
CHANGED
|
@@ -8,5 +8,10 @@ export { PresetsUtil } from './utils/PresetsUtil';
|
|
|
8
8
|
export { StringUtil } from './utils/StringUtil';
|
|
9
9
|
export { ErrorUtil } from './utils/ErrorUtil';
|
|
10
10
|
export { erc20ABI } from './contracts/erc20';
|
|
11
|
+
export { solana, solanaDevnet, solanaTestnet } from './networks/solana';
|
|
12
|
+
export { bitcoin, bitcoinTestnet } from './networks/bitcoin';
|
|
13
|
+
export { BlockchainAdapter } from './adapters/BlockchainAdapter';
|
|
14
|
+
export { EVMAdapter } from './adapters/EvmAdapter';
|
|
15
|
+
export { SolanaBaseAdapter } from './adapters/SolanaBaseAdapter';
|
|
11
16
|
export * from './utils/TypeUtil';
|
|
12
17
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ConstantsUtil","ContractUtil","DateUtil","NamesUtil","NetworkUtil","NumberUtil","PresetsUtil","StringUtil","ErrorUtil","erc20ABI"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,aAAa,QAAQ,uBAAuB;AACrD,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,QAAQ,QAAQ,kBAAkB;AAC3C,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,SAASC,WAAW,QAAQ,qBAAqB;AACjD,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,WAAW,QAAQ,qBAAqB;AACjD,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,cAAc,kBAAkB"}
|
|
1
|
+
{"version":3,"names":["ConstantsUtil","ContractUtil","DateUtil","NamesUtil","NetworkUtil","NumberUtil","PresetsUtil","StringUtil","ErrorUtil","erc20ABI","solana","solanaDevnet","solanaTestnet","bitcoin","bitcoinTestnet","BlockchainAdapter","EVMAdapter","SolanaBaseAdapter"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,aAAa,QAAQ,uBAAuB;AACrD,SAASC,YAAY,QAAQ,sBAAsB;AACnD,SAASC,QAAQ,QAAQ,kBAAkB;AAC3C,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,SAASC,WAAW,QAAQ,qBAAqB;AACjD,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,WAAW,QAAQ,qBAAqB;AACjD,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,SAAS,QAAQ,mBAAmB;AAC7C,SAASC,QAAQ,QAAQ,mBAAmB;AAC5C,SAASC,MAAM,EAAEC,YAAY,EAAEC,aAAa,QAAQ,mBAAmB;AACvE,SAASC,OAAO,EAAEC,cAAc,QAAQ,oBAAoB;AAC5D,SAASC,iBAAiB,QAAQ,8BAA8B;AAChE,SAASC,UAAU,QAAQ,uBAAuB;AAClD,SAASC,iBAAiB,QAAQ,8BAA8B;AAChE,cAAc,kBAAkB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,72 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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,10 +1,11 @@
|
|
|
1
1
|
export const ConstantsUtil = {
|
|
2
|
-
VERSION: '
|
|
2
|
+
VERSION: '2.0.0-alpha.1',
|
|
3
3
|
EIP155: 'eip155',
|
|
4
4
|
ADD_CHAIN_METHOD: 'wallet_addEthereumChain',
|
|
5
5
|
WC_NAME_SUFFIX: '.reown.id',
|
|
6
6
|
WC_NAME_SUFFIX_LEGACY: '.wcn.id',
|
|
7
7
|
BLOCKCHAIN_API_RPC_URL: 'https://rpc.walletconnect.org',
|
|
8
|
+
BLOCKCHAIN_API_RPC_URL_STAGING: 'https://staging.rpc.walletconnect.org',
|
|
8
9
|
PULSE_API_URL: 'https://pulse.walletconnect.org',
|
|
9
10
|
API_URL: 'https://api.web3modal.org',
|
|
10
11
|
WALLET_CONNECT_CONNECTOR_ID: 'walletConnect',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ConstantsUtil","VERSION","EIP155","ADD_CHAIN_METHOD","WC_NAME_SUFFIX","WC_NAME_SUFFIX_LEGACY","BLOCKCHAIN_API_RPC_URL","PULSE_API_URL","API_URL","WALLET_CONNECT_CONNECTOR_ID","COINBASE_CONNECTOR_ID","AUTH_CONNECTOR_ID","COINBASE_EXPLORER_ID","USDT_CONTRACT_ADDRESSES"],"sourceRoot":"../../../src","sources":["utils/ConstantsUtil.ts"],"mappings":"AAAA,OAAO,MAAMA,aAAa,GAAG;EAC3BC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"names":["ConstantsUtil","VERSION","EIP155","ADD_CHAIN_METHOD","WC_NAME_SUFFIX","WC_NAME_SUFFIX_LEGACY","BLOCKCHAIN_API_RPC_URL","BLOCKCHAIN_API_RPC_URL_STAGING","PULSE_API_URL","API_URL","WALLET_CONNECT_CONNECTOR_ID","COINBASE_CONNECTOR_ID","AUTH_CONNECTOR_ID","COINBASE_EXPLORER_ID","USDT_CONTRACT_ADDRESSES"],"sourceRoot":"../../../src","sources":["utils/ConstantsUtil.ts"],"mappings":"AAAA,OAAO,MAAMA,aAAa,GAAG;EAC3BC,OAAO,EAAE,eAAe;EAExBC,MAAM,EAAE,QAAQ;EAChBC,gBAAgB,EAAE,yBAAyB;EAE3CC,cAAc,EAAE,WAAW;EAC3BC,qBAAqB,EAAE,SAAS;EAEhCC,sBAAsB,EAAE,+BAA+B;EACvDC,8BAA8B,EAAE,uCAAuC;EACvEC,aAAa,EAAE,iCAAiC;EAChDC,OAAO,EAAE,2BAA2B;EAEpCC,2BAA2B,EAAE,eAAe;EAC5CC,qBAAqB,EAAE,gBAAgB;EACvCC,iBAAiB,EAAE,YAAY;EAE/BC,oBAAoB,EAAE,kEAAkE;EAExFC,uBAAuB,EAAE;EACvB;EACA,4CAA4C;EAC5C;EACA,4CAA4C;EAC5C;EACA,4CAA4C;EAC5C;EACA,4CAA4C;EAC5C;EACA,4CAA4C;EAC5C;EACA,4CAA4C;EAC5C;EACA,4CAA4C;AAEhD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["dayjs","englishLocale","relativeTime","updateLocale","extend","localeObject","name","future","past","s","m","mm","h","hh","d","dd","M","MM","y","yy","locale","DateUtil","getYear","date","Date","toISOString","year","getRelativeDateFromNow","fromNow","formatDate","format","getMonth","month"],"sourceRoot":"../../../src","sources":["utils/DateUtil.ts"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,aAAa,MAAM,oBAAoB;AAC9C,OAAOC,YAAY,MAAM,8BAA8B;AACvD,OAAOC,YAAY,MAAM,8BAA8B;AAEvDH,KAAK,CAACI,MAAM,CAACF,YAAY,CAAC;AAC1BF,KAAK,CAACI,MAAM,CAACD,YAAY,CAAC;AAE1B,MAAME,YAAY,GAAG;EACnB,GAAGJ,aAAa;EAChBK,IAAI,EAAE,eAAe;EACrBJ,YAAY,EAAE;IACZK,MAAM,EAAE,OAAO;IACfC,IAAI,EAAE,QAAQ;IACdC,CAAC,EAAE,QAAQ;IACXC,CAAC,EAAE,OAAO;IACVC,EAAE,EAAE,QAAQ;IACZC,CAAC,EAAE,MAAM;IACTC,EAAE,EAAE,QAAQ;IACZC,CAAC,EAAE,KAAK;IACRC,EAAE,EAAE,MAAM;IACVC,CAAC,EAAE,MAAM;IACTC,EAAE,EAAE,OAAO;IACXC,CAAC,EAAE,MAAM;IACTC,EAAE,EAAE;EACN;AACF,CAAC;AAEDnB,KAAK,CAACoB,MAAM,CAAC,WAAW,EAAEf,YAAY,CAAC;AAEvC,OAAO,MAAMgB,QAAQ,GAAG;EACtBC,OAAOA,CAACC,IAAY,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,EAAE;IAC/C,OAAOzB,KAAK,CAACuB,IAAI,CAAC,CAACG,IAAI,CAAC,CAAC;EAC3B,CAAC;EAEDC,sBAAsBA,CAACJ,IAAqB,EAAE;IAC5C,OAAOvB,KAAK,CAACuB,IAAI,CAAC,CAACH,MAAM,CAAC,WAAW,CAAC,CAACQ,OAAO,CAAC,IAAI,CAAC;EACtD,CAAC;EAEDC,UAAUA,CAACN,IAAqB,EAAEO,MAAM,GAAG,QAAQ,EAAE;IACnD,OAAO9B,KAAK,CAACuB,IAAI,CAAC,CAACO,MAAM,CAACA,MAAM,CAAC;EACnC,CAAC;EAEDC,QAAQA,CAACC,KAAa,EAAE;IACtB,OAAOhC,KAAK,CAAC,CAAC,CAACgC,KAAK,CAACA,KAAK,CAAC,CAACF,MAAM,CAAC,MAAM,CAAC;EAC5C;AACF,CAAC"}
|
|
1
|
+
{"version":3,"names":["dayjs","englishLocale","relativeTime","updateLocale","extend","localeObject","name","future","past","s","m","mm","h","hh","d","dd","M","MM","y","yy","locale","DateUtil","getYear","date","Date","toISOString","year","getRelativeDateFromNow","fromNow","formatDate","format","getMonth","month","isMoreThanOneWeekAgo","isBefore","subtract"],"sourceRoot":"../../../src","sources":["utils/DateUtil.ts"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,aAAa,MAAM,oBAAoB;AAC9C,OAAOC,YAAY,MAAM,8BAA8B;AACvD,OAAOC,YAAY,MAAM,8BAA8B;AAEvDH,KAAK,CAACI,MAAM,CAACF,YAAY,CAAC;AAC1BF,KAAK,CAACI,MAAM,CAACD,YAAY,CAAC;AAE1B,MAAME,YAAY,GAAG;EACnB,GAAGJ,aAAa;EAChBK,IAAI,EAAE,eAAe;EACrBJ,YAAY,EAAE;IACZK,MAAM,EAAE,OAAO;IACfC,IAAI,EAAE,QAAQ;IACdC,CAAC,EAAE,QAAQ;IACXC,CAAC,EAAE,OAAO;IACVC,EAAE,EAAE,QAAQ;IACZC,CAAC,EAAE,MAAM;IACTC,EAAE,EAAE,QAAQ;IACZC,CAAC,EAAE,KAAK;IACRC,EAAE,EAAE,MAAM;IACVC,CAAC,EAAE,MAAM;IACTC,EAAE,EAAE,OAAO;IACXC,CAAC,EAAE,MAAM;IACTC,EAAE,EAAE;EACN;AACF,CAAC;AAEDnB,KAAK,CAACoB,MAAM,CAAC,WAAW,EAAEf,YAAY,CAAC;AAEvC,OAAO,MAAMgB,QAAQ,GAAG;EACtBC,OAAOA,CAACC,IAAY,GAAG,IAAIC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,EAAE;IAC/C,OAAOzB,KAAK,CAACuB,IAAI,CAAC,CAACG,IAAI,CAAC,CAAC;EAC3B,CAAC;EAEDC,sBAAsBA,CAACJ,IAAqB,EAAE;IAC5C,OAAOvB,KAAK,CAACuB,IAAI,CAAC,CAACH,MAAM,CAAC,WAAW,CAAC,CAACQ,OAAO,CAAC,IAAI,CAAC;EACtD,CAAC;EAEDC,UAAUA,CAACN,IAAqB,EAAEO,MAAM,GAAG,QAAQ,EAAE;IACnD,OAAO9B,KAAK,CAACuB,IAAI,CAAC,CAACO,MAAM,CAACA,MAAM,CAAC;EACnC,CAAC;EAEDC,QAAQA,CAACC,KAAa,EAAE;IACtB,OAAOhC,KAAK,CAAC,CAAC,CAACgC,KAAK,CAACA,KAAK,CAAC,CAACF,MAAM,CAAC,MAAM,CAAC;EAC5C,CAAC;EAEDG,oBAAoBA,CAACV,IAAqB,EAAE;IAC1C,OAAOvB,KAAK,CAACuB,IAAI,CAAC,CAACW,QAAQ,CAAClC,KAAK,CAAC,CAAC,CAACmC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;EAC1D;AACF,CAAC"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import * as BigNumber from 'bignumber.js';
|
|
2
2
|
export const NumberUtil = {
|
|
3
|
+
/**
|
|
4
|
+
* Creates a BigNumber instance from a given value.
|
|
5
|
+
* If the value is a string, commas are removed before conversion.
|
|
6
|
+
* @param value - The input value (string, number, or BigNumber) to convert to a BigNumber.
|
|
7
|
+
* @returns A BigNumber instance.
|
|
8
|
+
*/
|
|
3
9
|
bigNumber(value) {
|
|
4
10
|
if (typeof value === 'string') {
|
|
5
11
|
return new BigNumber.BigNumber(value.replace(/,/g, ''));
|
|
@@ -7,10 +13,11 @@ export const NumberUtil = {
|
|
|
7
13
|
return new BigNumber.BigNumber(value);
|
|
8
14
|
},
|
|
9
15
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* @param
|
|
13
|
-
* @
|
|
16
|
+
* Multiplies two numbers using BigNumber for precision, especially with decimals.
|
|
17
|
+
* Handles undefined inputs by returning BigNumber(0).
|
|
18
|
+
* @param a - The first multiplicand (string, number, or BigNumber). Commas are removed if it's a string.
|
|
19
|
+
* @param b - The second multiplicand (string, number, or BigNumber). Commas are removed if it's a string.
|
|
20
|
+
* @returns The product as a BigNumber instance, or BigNumber(0) if either input is undefined.
|
|
14
21
|
*/
|
|
15
22
|
multiply(a, b) {
|
|
16
23
|
if (a === undefined || b === undefined) {
|
|
@@ -20,15 +27,32 @@ export const NumberUtil = {
|
|
|
20
27
|
const bBigNumber = new BigNumber.BigNumber(typeof b === 'string' ? b.replace(/,/gu, '') : b);
|
|
21
28
|
return aBigNumber.multipliedBy(bBigNumber);
|
|
22
29
|
},
|
|
30
|
+
/**
|
|
31
|
+
* Rounds a number to a specified number of decimal places if its string representation meets a certain length threshold.
|
|
32
|
+
* @param number - The number to potentially round.
|
|
33
|
+
* @param threshold - The minimum string length of the number to trigger rounding.
|
|
34
|
+
* @param fixed - The number of decimal places to round to.
|
|
35
|
+
* @returns The rounded number (as a string if rounded, otherwise the original number) or the original number.
|
|
36
|
+
*/
|
|
23
37
|
roundNumber(number, threshold, fixed) {
|
|
24
38
|
const roundedNumber = number.toString().length >= threshold ? Number(number).toFixed(fixed) : number;
|
|
25
39
|
return roundedNumber;
|
|
26
40
|
},
|
|
27
41
|
/**
|
|
28
|
-
*
|
|
29
|
-
*
|
|
30
|
-
* @param
|
|
31
|
-
* @returns
|
|
42
|
+
* Calculates the next multiple of ten greater than or equal to the given amount.
|
|
43
|
+
* Defaults to 10 if no amount is provided or if the calculated multiple is less than 10.
|
|
44
|
+
* @param amount - The number for which to find the next multiple of ten. Optional.
|
|
45
|
+
* @returns The next multiple of ten, at least 10.
|
|
46
|
+
*/
|
|
47
|
+
nextMultipleOfTen(amount) {
|
|
48
|
+
if (!amount) return 10;
|
|
49
|
+
return Math.max(Math.ceil(amount / 10) * 10, 10);
|
|
50
|
+
},
|
|
51
|
+
/**
|
|
52
|
+
* Formats a number or string to a human-readable string with a specified number of decimal places, using US locale formatting.
|
|
53
|
+
* @param value - The value to format (string, number, or undefined). If undefined, returns '0.00'.
|
|
54
|
+
* @param decimals - The number of decimal places to display. Defaults to 2.
|
|
55
|
+
* @returns A locale-formatted string representation of the number.
|
|
32
56
|
*/
|
|
33
57
|
formatNumberToLocalString(value, decimals = 2) {
|
|
34
58
|
if (value === undefined) {
|
|
@@ -46,9 +70,9 @@ export const NumberUtil = {
|
|
|
46
70
|
});
|
|
47
71
|
},
|
|
48
72
|
/**
|
|
49
|
-
*
|
|
50
|
-
* @param value - The formatted string to parse
|
|
51
|
-
* @returns
|
|
73
|
+
* Parses a locale-formatted numeric string (e.g., with commas) back into a number.
|
|
74
|
+
* @param value - The formatted string to parse. If undefined, returns 0.
|
|
75
|
+
* @returns The parsed number, or 0 if the input is undefined.
|
|
52
76
|
*/
|
|
53
77
|
parseLocalStringToNumber(value) {
|
|
54
78
|
if (value === undefined) {
|
|
@@ -57,6 +81,27 @@ export const NumberUtil = {
|
|
|
57
81
|
|
|
58
82
|
// Remove any commas used as thousand separators and parse the float
|
|
59
83
|
return parseFloat(value.replace(/,/gu, ''));
|
|
84
|
+
},
|
|
85
|
+
/**
|
|
86
|
+
* Converts a numeric value (BigInt, number, or string representation of a number) to a 0x-prefixed hexadecimal string.
|
|
87
|
+
* This is often required for Ethereum RPC parameters like value, gas, gasPrice.
|
|
88
|
+
* @param value - The value to convert. Can be BigInt, number, or a string (decimal or hex).
|
|
89
|
+
* @returns A 0x-prefixed hexadecimal string, or undefined if the input is undefined or null.
|
|
90
|
+
* @throws Error if the value cannot be converted to BigInt.
|
|
91
|
+
*/
|
|
92
|
+
convertNumericToHexString: value => {
|
|
93
|
+
if (value === undefined || value === null) {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
// This handles BigInt, number, or string representation of a number (decimal or hex)
|
|
98
|
+
const bigIntValue = BigInt(value);
|
|
99
|
+
// Ethereum RPC spec requires "0x0" for zero, and other values to be 0x-prefixed hex.
|
|
100
|
+
|
|
101
|
+
return '0x' + bigIntValue.toString(16);
|
|
102
|
+
} catch (error) {
|
|
103
|
+
throw new Error(`NumberUtil: Invalid parameter, cannot convert to hex: ${value}`);
|
|
104
|
+
}
|
|
60
105
|
}
|
|
61
106
|
};
|
|
62
107
|
//# sourceMappingURL=NumberUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["BigNumber","NumberUtil","bigNumber","value","replace","multiply","a","b","undefined","aBigNumber","bBigNumber","multipliedBy","roundNumber","number","threshold","fixed","roundedNumber","toString","length","Number","toFixed","formatNumberToLocalString","decimals","toLocaleString","maximumFractionDigits","minimumFractionDigits","parseFloat","parseLocalStringToNumber"],"sourceRoot":"../../../src","sources":["utils/NumberUtil.ts"],"mappings":"AAAA,OAAO,KAAKA,SAAS,MAAM,cAAc;AAEzC,OAAO,MAAMC,UAAU,GAAG;
|
|
1
|
+
{"version":3,"names":["BigNumber","NumberUtil","bigNumber","value","replace","multiply","a","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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"}
|