@cityofzion/bs-ethereum 2.0.0 → 2.0.2

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.
@@ -22,30 +22,37 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
22
22
  var __importDefault = (this && this.__importDefault) || function (mod) {
23
23
  return (mod && mod.__esModule) ? mod : { "default": mod };
24
24
  };
25
- var _BitqueryEDSEthereum_client, _BitqueryEDSEthereum_networkId;
25
+ var _BitqueryEDSEthereum_client, _BitqueryEDSEthereum_network;
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
27
  exports.BitqueryEDSEthereum = void 0;
28
28
  const blockchain_service_1 = require("@cityofzion/blockchain-service");
29
29
  const axios_1 = __importDefault(require("axios"));
30
30
  const dayjs_1 = __importDefault(require("dayjs"));
31
31
  const utc_1 = __importDefault(require("dayjs/plugin/utc"));
32
- const constants_1 = require("./constants");
32
+ const BSEthereumHelper_1 = require("./BSEthereumHelper");
33
+ const BitqueryBDSEthereum_1 = require("./BitqueryBDSEthereum");
33
34
  dayjs_1.default.extend(utc_1.default);
34
35
  class BitqueryEDSEthereum extends blockchain_service_1.CryptoCompareEDS {
35
- constructor(networkId) {
36
- super([constants_1.NATIVE_ASSET_BY_NETWORK_ID[networkId]]);
36
+ constructor(network, tokens) {
37
+ super(tokens);
37
38
  _BitqueryEDSEthereum_client.set(this, void 0);
38
- _BitqueryEDSEthereum_networkId.set(this, void 0);
39
- __classPrivateFieldSet(this, _BitqueryEDSEthereum_networkId, networkId, "f");
39
+ _BitqueryEDSEthereum_network.set(this, void 0);
40
+ __classPrivateFieldSet(this, _BitqueryEDSEthereum_network, network, "f");
40
41
  __classPrivateFieldSet(this, _BitqueryEDSEthereum_client, axios_1.default.create({
41
- baseURL: constants_1.BITQUERY_MIRROR_URL,
42
+ baseURL: BitqueryBDSEthereum_1.BitqueryBDSEthereum.MIRROR_URL,
42
43
  }), "f");
43
44
  }
44
45
  getTokenPrices(currency) {
45
46
  return __awaiter(this, void 0, void 0, function* () {
47
+ if (BSEthereumHelper_1.BSEthereumHelper.isMainnet(__classPrivateFieldGet(this, _BitqueryEDSEthereum_network, "f")))
48
+ throw new Error('Exchange is only available on mainnet');
46
49
  const twoDaysAgo = dayjs_1.default.utc().subtract(2, 'day').startOf('date').toISOString();
50
+ const mirrorNetwork = BitqueryBDSEthereum_1.BitqueryBDSEthereum.MIRROR_NETWORK_BY_NETWORK_ID[__classPrivateFieldGet(this, _BitqueryEDSEthereum_network, "f").id];
51
+ if (!mirrorNetwork) {
52
+ throw new Error('BitqueryEDSEthereum is not available for this network');
53
+ }
47
54
  const result = yield __classPrivateFieldGet(this, _BitqueryEDSEthereum_client, "f").get(`/get-price`, {
48
- params: { network: constants_1.BITQUERY_MIRROR_NETWORK_BY_NETWORK_ID[__classPrivateFieldGet(this, _BitqueryEDSEthereum_networkId, "f")], after: twoDaysAgo },
55
+ params: { network: mirrorNetwork, after: twoDaysAgo },
49
56
  });
50
57
  if (!result.data) {
51
58
  throw new Error('There is no price data');
@@ -62,6 +69,16 @@ class BitqueryEDSEthereum extends blockchain_service_1.CryptoCompareEDS {
62
69
  return prices;
63
70
  });
64
71
  }
72
+ getTokenPriceHistory(params) {
73
+ const _super = Object.create(null, {
74
+ getTokenPriceHistory: { get: () => super.getTokenPriceHistory }
75
+ });
76
+ return __awaiter(this, void 0, void 0, function* () {
77
+ if (BSEthereumHelper_1.BSEthereumHelper.isMainnet(__classPrivateFieldGet(this, _BitqueryEDSEthereum_network, "f")))
78
+ throw new Error('Exchange is only available on mainnet');
79
+ return yield _super.getTokenPriceHistory.call(this, params);
80
+ });
81
+ }
65
82
  getCurrencyRatio(currency) {
66
83
  return __awaiter(this, void 0, void 0, function* () {
67
84
  const { data } = yield axios_1.default.get(`https://api.flamingo.finance/fiat/exchange-rate?pair=USD_${currency}`);
@@ -70,4 +87,4 @@ class BitqueryEDSEthereum extends blockchain_service_1.CryptoCompareEDS {
70
87
  }
71
88
  }
72
89
  exports.BitqueryEDSEthereum = BitqueryEDSEthereum;
73
- _BitqueryEDSEthereum_client = new WeakMap(), _BitqueryEDSEthereum_networkId = new WeakMap();
90
+ _BitqueryEDSEthereum_client = new WeakMap(), _BitqueryEDSEthereum_network = new WeakMap();
@@ -2,21 +2,21 @@ import { Account, LedgerService, LedgerServiceEmitter } from '@cityofzion/blockc
2
2
  import Transport from '@ledgerhq/hw-transport';
3
3
  import { ethers, Signer } from 'ethers';
4
4
  import { TypedDataSigner } from '@ethersproject/abstract-signer';
5
- export declare class LedgerSigner extends Signer implements TypedDataSigner {
5
+ export declare class EthersLedgerSigner extends Signer implements TypedDataSigner {
6
6
  #private;
7
7
  constructor(transport: Transport, provider?: ethers.providers.Provider, emitter?: LedgerServiceEmitter);
8
- connect(provider: ethers.providers.Provider): LedgerSigner;
8
+ connect(provider: ethers.providers.Provider): EthersLedgerSigner;
9
9
  getAddress(): Promise<string>;
10
10
  getPublicKey(): Promise<string>;
11
11
  signMessage(message: string | ethers.utils.Bytes): Promise<string>;
12
12
  signTransaction(transaction: ethers.utils.Deferrable<ethers.providers.TransactionRequest>): Promise<string>;
13
13
  _signTypedData(domain: ethers.TypedDataDomain, types: Record<string, ethers.TypedDataField[]>, value: Record<string, any>): Promise<string>;
14
14
  }
15
- export declare class LedgerServiceEthereum implements LedgerService {
15
+ export declare class EthersLedgerServiceEthereum implements LedgerService {
16
16
  getLedgerTransport?: ((account: Account) => Promise<Transport>) | undefined;
17
17
  emitter: LedgerServiceEmitter;
18
18
  constructor(getLedgerTransport?: ((account: Account) => Promise<Transport>) | undefined);
19
19
  getAddress(transport: Transport): Promise<string>;
20
20
  getPublicKey(transport: Transport): Promise<string>;
21
- getSigner(transport: Transport): LedgerSigner;
21
+ getSigner(transport: Transport): EthersLedgerSigner;
22
22
  }
@@ -45,40 +45,40 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
45
45
  var __importDefault = (this && this.__importDefault) || function (mod) {
46
46
  return (mod && mod.__esModule) ? mod : { "default": mod };
47
47
  };
48
- var _LedgerSigner_instances, _LedgerSigner_transport, _LedgerSigner_emitter, _LedgerSigner_path, _LedgerSigner_retry;
48
+ var _EthersLedgerSigner_instances, _EthersLedgerSigner_transport, _EthersLedgerSigner_emitter, _EthersLedgerSigner_path, _EthersLedgerSigner_retry;
49
49
  Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.LedgerServiceEthereum = exports.LedgerSigner = void 0;
50
+ exports.EthersLedgerServiceEthereum = exports.EthersLedgerSigner = void 0;
51
51
  const hw_app_eth_1 = __importStar(require("@ledgerhq/hw-app-eth"));
52
52
  const ethers_1 = require("ethers");
53
53
  const properties_1 = require("@ethersproject/properties");
54
- const constants_1 = require("./constants");
55
54
  const events_1 = __importDefault(require("events"));
56
- class LedgerSigner extends ethers_1.Signer {
55
+ const BSEthereumHelper_1 = require("./BSEthereumHelper");
56
+ class EthersLedgerSigner extends ethers_1.Signer {
57
57
  constructor(transport, provider, emitter) {
58
58
  super();
59
- _LedgerSigner_instances.add(this);
60
- _LedgerSigner_transport.set(this, void 0);
61
- _LedgerSigner_emitter.set(this, void 0);
62
- _LedgerSigner_path.set(this, void 0);
63
- __classPrivateFieldSet(this, _LedgerSigner_path, constants_1.DEFAULT_PATH, "f");
64
- __classPrivateFieldSet(this, _LedgerSigner_transport, transport, "f");
65
- __classPrivateFieldSet(this, _LedgerSigner_emitter, emitter, "f");
59
+ _EthersLedgerSigner_instances.add(this);
60
+ _EthersLedgerSigner_transport.set(this, void 0);
61
+ _EthersLedgerSigner_emitter.set(this, void 0);
62
+ _EthersLedgerSigner_path.set(this, void 0);
63
+ __classPrivateFieldSet(this, _EthersLedgerSigner_path, BSEthereumHelper_1.BSEthereumHelper.DEFAULT_PATH, "f");
64
+ __classPrivateFieldSet(this, _EthersLedgerSigner_transport, transport, "f");
65
+ __classPrivateFieldSet(this, _EthersLedgerSigner_emitter, emitter, "f");
66
66
  (0, properties_1.defineReadOnly)(this, 'provider', provider);
67
67
  }
68
68
  connect(provider) {
69
- return new LedgerSigner(__classPrivateFieldGet(this, _LedgerSigner_transport, "f"), provider, __classPrivateFieldGet(this, _LedgerSigner_emitter, "f"));
69
+ return new EthersLedgerSigner(__classPrivateFieldGet(this, _EthersLedgerSigner_transport, "f"), provider, __classPrivateFieldGet(this, _EthersLedgerSigner_emitter, "f"));
70
70
  }
71
71
  getAddress() {
72
72
  return __awaiter(this, void 0, void 0, function* () {
73
- const ledgerApp = new hw_app_eth_1.default(__classPrivateFieldGet(this, _LedgerSigner_transport, "f"));
74
- const { address } = yield __classPrivateFieldGet(this, _LedgerSigner_instances, "m", _LedgerSigner_retry).call(this, () => ledgerApp.getAddress(__classPrivateFieldGet(this, _LedgerSigner_path, "f")));
73
+ const ledgerApp = new hw_app_eth_1.default(__classPrivateFieldGet(this, _EthersLedgerSigner_transport, "f"));
74
+ const { address } = yield __classPrivateFieldGet(this, _EthersLedgerSigner_instances, "m", _EthersLedgerSigner_retry).call(this, () => ledgerApp.getAddress(__classPrivateFieldGet(this, _EthersLedgerSigner_path, "f")));
75
75
  return ethers_1.ethers.utils.getAddress(address);
76
76
  });
77
77
  }
78
78
  getPublicKey() {
79
79
  return __awaiter(this, void 0, void 0, function* () {
80
- const ledgerApp = new hw_app_eth_1.default(__classPrivateFieldGet(this, _LedgerSigner_transport, "f"));
81
- const { publicKey } = yield __classPrivateFieldGet(this, _LedgerSigner_instances, "m", _LedgerSigner_retry).call(this, () => ledgerApp.getAddress(__classPrivateFieldGet(this, _LedgerSigner_path, "f")));
80
+ const ledgerApp = new hw_app_eth_1.default(__classPrivateFieldGet(this, _EthersLedgerSigner_transport, "f"));
81
+ const { publicKey } = yield __classPrivateFieldGet(this, _EthersLedgerSigner_instances, "m", _EthersLedgerSigner_retry).call(this, () => ledgerApp.getAddress(__classPrivateFieldGet(this, _EthersLedgerSigner_path, "f")));
82
82
  return '0x' + publicKey;
83
83
  });
84
84
  }
@@ -89,17 +89,17 @@ class LedgerSigner extends ethers_1.Signer {
89
89
  if (typeof message === 'string') {
90
90
  message = ethers_1.ethers.utils.toUtf8Bytes(message);
91
91
  }
92
- const ledgerApp = new hw_app_eth_1.default(__classPrivateFieldGet(this, _LedgerSigner_transport, "f"));
93
- (_a = __classPrivateFieldGet(this, _LedgerSigner_emitter, "f")) === null || _a === void 0 ? void 0 : _a.emit('getSignatureStart');
94
- const obj = yield __classPrivateFieldGet(this, _LedgerSigner_instances, "m", _LedgerSigner_retry).call(this, () => ledgerApp.signPersonalMessage(__classPrivateFieldGet(this, _LedgerSigner_path, "f"), ethers_1.ethers.utils.hexlify(message).substring(2)));
95
- (_b = __classPrivateFieldGet(this, _LedgerSigner_emitter, "f")) === null || _b === void 0 ? void 0 : _b.emit('getSignatureEnd');
92
+ const ledgerApp = new hw_app_eth_1.default(__classPrivateFieldGet(this, _EthersLedgerSigner_transport, "f"));
93
+ (_a = __classPrivateFieldGet(this, _EthersLedgerSigner_emitter, "f")) === null || _a === void 0 ? void 0 : _a.emit('getSignatureStart');
94
+ const obj = yield __classPrivateFieldGet(this, _EthersLedgerSigner_instances, "m", _EthersLedgerSigner_retry).call(this, () => ledgerApp.signPersonalMessage(__classPrivateFieldGet(this, _EthersLedgerSigner_path, "f"), ethers_1.ethers.utils.hexlify(message).substring(2)));
95
+ (_b = __classPrivateFieldGet(this, _EthersLedgerSigner_emitter, "f")) === null || _b === void 0 ? void 0 : _b.emit('getSignatureEnd');
96
96
  // Normalize the signature for Ethers
97
97
  obj.r = '0x' + obj.r;
98
98
  obj.s = '0x' + obj.s;
99
99
  return ethers_1.ethers.utils.joinSignature(obj);
100
100
  }
101
101
  catch (error) {
102
- (_c = __classPrivateFieldGet(this, _LedgerSigner_emitter, "f")) === null || _c === void 0 ? void 0 : _c.emit('getSignatureEnd');
102
+ (_c = __classPrivateFieldGet(this, _EthersLedgerSigner_emitter, "f")) === null || _c === void 0 ? void 0 : _c.emit('getSignatureEnd');
103
103
  throw error;
104
104
  }
105
105
  });
@@ -108,7 +108,7 @@ class LedgerSigner extends ethers_1.Signer {
108
108
  var _a, _b, _c, _d, _e, _f, _g, _h, _j;
109
109
  return __awaiter(this, void 0, void 0, function* () {
110
110
  try {
111
- const ledgerApp = new hw_app_eth_1.default(__classPrivateFieldGet(this, _LedgerSigner_transport, "f"));
111
+ const ledgerApp = new hw_app_eth_1.default(__classPrivateFieldGet(this, _EthersLedgerSigner_transport, "f"));
112
112
  const tx = yield ethers_1.ethers.utils.resolveProperties(transaction);
113
113
  const unsignedTransaction = {
114
114
  chainId: (_a = tx.chainId) !== null && _a !== void 0 ? _a : undefined,
@@ -121,9 +121,9 @@ class LedgerSigner extends ethers_1.Signer {
121
121
  };
122
122
  const serializedUnsignedTransaction = ethers_1.ethers.utils.serializeTransaction(unsignedTransaction).substring(2);
123
123
  const resolution = yield hw_app_eth_1.ledgerService.resolveTransaction(serializedUnsignedTransaction, {}, {});
124
- (_g = __classPrivateFieldGet(this, _LedgerSigner_emitter, "f")) === null || _g === void 0 ? void 0 : _g.emit('getSignatureStart');
125
- const signature = yield __classPrivateFieldGet(this, _LedgerSigner_instances, "m", _LedgerSigner_retry).call(this, () => ledgerApp.signTransaction(__classPrivateFieldGet(this, _LedgerSigner_path, "f"), serializedUnsignedTransaction, resolution));
126
- (_h = __classPrivateFieldGet(this, _LedgerSigner_emitter, "f")) === null || _h === void 0 ? void 0 : _h.emit('getSignatureEnd');
124
+ (_g = __classPrivateFieldGet(this, _EthersLedgerSigner_emitter, "f")) === null || _g === void 0 ? void 0 : _g.emit('getSignatureStart');
125
+ const signature = yield __classPrivateFieldGet(this, _EthersLedgerSigner_instances, "m", _EthersLedgerSigner_retry).call(this, () => ledgerApp.signTransaction(__classPrivateFieldGet(this, _EthersLedgerSigner_path, "f"), serializedUnsignedTransaction, resolution));
126
+ (_h = __classPrivateFieldGet(this, _EthersLedgerSigner_emitter, "f")) === null || _h === void 0 ? void 0 : _h.emit('getSignatureEnd');
127
127
  return ethers_1.ethers.utils.serializeTransaction(unsignedTransaction, {
128
128
  v: ethers_1.ethers.BigNumber.from('0x' + signature.v).toNumber(),
129
129
  r: '0x' + signature.r,
@@ -131,7 +131,7 @@ class LedgerSigner extends ethers_1.Signer {
131
131
  });
132
132
  }
133
133
  catch (error) {
134
- (_j = __classPrivateFieldGet(this, _LedgerSigner_emitter, "f")) === null || _j === void 0 ? void 0 : _j.emit('getSignatureEnd');
134
+ (_j = __classPrivateFieldGet(this, _EthersLedgerSigner_emitter, "f")) === null || _j === void 0 ? void 0 : _j.emit('getSignatureEnd');
135
135
  throw error;
136
136
  }
137
137
  });
@@ -149,32 +149,32 @@ class LedgerSigner extends ethers_1.Signer {
149
149
  return resolved;
150
150
  }));
151
151
  const payload = ethers_1.ethers.utils._TypedDataEncoder.getPayload(populated.domain, types, populated.value);
152
- const ledgerApp = new hw_app_eth_1.default(__classPrivateFieldGet(this, _LedgerSigner_transport, "f"));
153
- (_a = __classPrivateFieldGet(this, _LedgerSigner_emitter, "f")) === null || _a === void 0 ? void 0 : _a.emit('getSignatureStart');
152
+ const ledgerApp = new hw_app_eth_1.default(__classPrivateFieldGet(this, _EthersLedgerSigner_transport, "f"));
153
+ (_a = __classPrivateFieldGet(this, _EthersLedgerSigner_emitter, "f")) === null || _a === void 0 ? void 0 : _a.emit('getSignatureStart');
154
154
  let obj;
155
155
  try {
156
- obj = yield __classPrivateFieldGet(this, _LedgerSigner_instances, "m", _LedgerSigner_retry).call(this, () => ledgerApp.signEIP712Message(__classPrivateFieldGet(this, _LedgerSigner_path, "f"), payload));
156
+ obj = yield __classPrivateFieldGet(this, _EthersLedgerSigner_instances, "m", _EthersLedgerSigner_retry).call(this, () => ledgerApp.signEIP712Message(__classPrivateFieldGet(this, _EthersLedgerSigner_path, "f"), payload));
157
157
  }
158
158
  catch (_d) {
159
159
  const domainSeparatorHex = ethers_1.ethers.utils._TypedDataEncoder.hashDomain(payload.domain);
160
160
  const hashStructMessageHex = ethers_1.ethers.utils._TypedDataEncoder.hashStruct(payload.primaryType, types, payload.message);
161
- obj = yield __classPrivateFieldGet(this, _LedgerSigner_instances, "m", _LedgerSigner_retry).call(this, () => ledgerApp.signEIP712HashedMessage(__classPrivateFieldGet(this, _LedgerSigner_path, "f"), domainSeparatorHex, hashStructMessageHex));
161
+ obj = yield __classPrivateFieldGet(this, _EthersLedgerSigner_instances, "m", _EthersLedgerSigner_retry).call(this, () => ledgerApp.signEIP712HashedMessage(__classPrivateFieldGet(this, _EthersLedgerSigner_path, "f"), domainSeparatorHex, hashStructMessageHex));
162
162
  }
163
- (_b = __classPrivateFieldGet(this, _LedgerSigner_emitter, "f")) === null || _b === void 0 ? void 0 : _b.emit('getSignatureEnd');
163
+ (_b = __classPrivateFieldGet(this, _EthersLedgerSigner_emitter, "f")) === null || _b === void 0 ? void 0 : _b.emit('getSignatureEnd');
164
164
  // Normalize the signature for Ethers
165
165
  obj.r = '0x' + obj.r;
166
166
  obj.s = '0x' + obj.s;
167
167
  return ethers_1.ethers.utils.joinSignature(obj);
168
168
  }
169
169
  catch (error) {
170
- (_c = __classPrivateFieldGet(this, _LedgerSigner_emitter, "f")) === null || _c === void 0 ? void 0 : _c.emit('getSignatureEnd');
170
+ (_c = __classPrivateFieldGet(this, _EthersLedgerSigner_emitter, "f")) === null || _c === void 0 ? void 0 : _c.emit('getSignatureEnd');
171
171
  throw error;
172
172
  }
173
173
  });
174
174
  }
175
175
  }
176
- exports.LedgerSigner = LedgerSigner;
177
- _LedgerSigner_transport = new WeakMap(), _LedgerSigner_emitter = new WeakMap(), _LedgerSigner_path = new WeakMap(), _LedgerSigner_instances = new WeakSet(), _LedgerSigner_retry = function _LedgerSigner_retry(callback) {
176
+ exports.EthersLedgerSigner = EthersLedgerSigner;
177
+ _EthersLedgerSigner_transport = new WeakMap(), _EthersLedgerSigner_emitter = new WeakMap(), _EthersLedgerSigner_path = new WeakMap(), _EthersLedgerSigner_instances = new WeakSet(), _EthersLedgerSigner_retry = function _EthersLedgerSigner_retry(callback) {
178
178
  // eslint-disable-next-line no-async-promise-executor
179
179
  return new Promise((resolve, reject) => __awaiter(this, void 0, void 0, function* () {
180
180
  // Wait up to 5 seconds
@@ -193,28 +193,28 @@ _LedgerSigner_transport = new WeakMap(), _LedgerSigner_emitter = new WeakMap(),
193
193
  return reject(new Error('timeout'));
194
194
  }));
195
195
  };
196
- class LedgerServiceEthereum {
196
+ class EthersLedgerServiceEthereum {
197
197
  constructor(getLedgerTransport) {
198
198
  this.getLedgerTransport = getLedgerTransport;
199
199
  this.emitter = new events_1.default();
200
200
  }
201
201
  getAddress(transport) {
202
202
  return __awaiter(this, void 0, void 0, function* () {
203
- const signer = new LedgerSigner(transport);
203
+ const signer = new EthersLedgerSigner(transport);
204
204
  return yield signer.getAddress();
205
205
  });
206
206
  }
207
207
  getPublicKey(transport) {
208
208
  return __awaiter(this, void 0, void 0, function* () {
209
- const signer = new LedgerSigner(transport);
209
+ const signer = new EthersLedgerSigner(transport);
210
210
  return yield signer.getPublicKey();
211
211
  });
212
212
  }
213
213
  getSigner(transport) {
214
- return new LedgerSigner(transport, undefined, this.emitter);
214
+ return new EthersLedgerSigner(transport, undefined, this.emitter);
215
215
  }
216
216
  }
217
- exports.LedgerServiceEthereum = LedgerServiceEthereum;
217
+ exports.EthersLedgerServiceEthereum = EthersLedgerServiceEthereum;
218
218
  function wait(duration) {
219
219
  return new Promise(resolve => {
220
220
  setTimeout(resolve, duration);
@@ -1,9 +1,13 @@
1
1
  import { NftResponse, NftsResponse, GetNftParam, GetNftsByAddressParams, Network } from '@cityofzion/blockchain-service';
2
2
  import { RpcNDSEthereum } from './RpcNDSEthereum';
3
- import { AvailableNetworkIds } from './constants';
3
+ import { BSEthereumNetworkId } from './BSEthereumHelper';
4
4
  export declare class GhostMarketNDSEthereum extends RpcNDSEthereum {
5
5
  #private;
6
- constructor(network: Network<AvailableNetworkIds>);
6
+ static CONFIG_BY_NETWORK_ID: Partial<Record<BSEthereumNetworkId, {
7
+ url: string;
8
+ chain: string;
9
+ }>>;
10
+ constructor(network: Network<BSEthereumNetworkId>);
7
11
  getNftsByAddress({ address, size, cursor }: GetNftsByAddressParams): Promise<NftsResponse>;
8
12
  getNft({ contractHash, tokenId }: GetNftParam): Promise<NftResponse>;
9
13
  private treatGhostMarketImage;
@@ -22,18 +22,17 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
22
22
  var __importDefault = (this && this.__importDefault) || function (mod) {
23
23
  return (mod && mod.__esModule) ? mod : { "default": mod };
24
24
  };
25
- var _GhostMarketNDSEthereum_networkId;
25
+ var _GhostMarketNDSEthereum_network;
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
27
  exports.GhostMarketNDSEthereum = void 0;
28
28
  const query_string_1 = __importDefault(require("query-string"));
29
29
  const axios_1 = __importDefault(require("axios"));
30
30
  const RpcNDSEthereum_1 = require("./RpcNDSEthereum");
31
- const constants_1 = require("./constants");
32
31
  class GhostMarketNDSEthereum extends RpcNDSEthereum_1.RpcNDSEthereum {
33
32
  constructor(network) {
34
33
  super(network);
35
- _GhostMarketNDSEthereum_networkId.set(this, void 0);
36
- __classPrivateFieldSet(this, _GhostMarketNDSEthereum_networkId, network.id, "f");
34
+ _GhostMarketNDSEthereum_network.set(this, void 0);
35
+ __classPrivateFieldSet(this, _GhostMarketNDSEthereum_network, network, "f");
37
36
  }
38
37
  getNftsByAddress({ address, size = 18, cursor }) {
39
38
  var _a;
@@ -69,8 +68,11 @@ class GhostMarketNDSEthereum extends RpcNDSEthereum_1.RpcNDSEthereum {
69
68
  return srcImage;
70
69
  }
71
70
  getUrlWithParams(params) {
72
- const parameters = query_string_1.default.stringify(Object.assign({ chain: constants_1.GHOSTMARKET_CHAIN_BY_NETWORK_TYPE[__classPrivateFieldGet(this, _GhostMarketNDSEthereum_networkId, "f")] }, params), { arrayFormat: 'bracket' });
73
- return `${constants_1.GHOSTMARKET_URL_BY_NETWORK_TYPE[__classPrivateFieldGet(this, _GhostMarketNDSEthereum_networkId, "f")]}/assets?${parameters}`;
71
+ const config = GhostMarketNDSEthereum.CONFIG_BY_NETWORK_ID[__classPrivateFieldGet(this, _GhostMarketNDSEthereum_network, "f").id];
72
+ if (!config)
73
+ throw new Error('Unsupported network');
74
+ const parameters = query_string_1.default.stringify(Object.assign({ chain: config.chain }, params), { arrayFormat: 'bracket' });
75
+ return `${config.url}/assets?${parameters}`;
74
76
  }
75
77
  parse(data) {
76
78
  var _a, _b;
@@ -92,4 +94,10 @@ class GhostMarketNDSEthereum extends RpcNDSEthereum_1.RpcNDSEthereum {
92
94
  }
93
95
  }
94
96
  exports.GhostMarketNDSEthereum = GhostMarketNDSEthereum;
95
- _GhostMarketNDSEthereum_networkId = new WeakMap();
97
+ _GhostMarketNDSEthereum_network = new WeakMap();
98
+ GhostMarketNDSEthereum.CONFIG_BY_NETWORK_ID = {
99
+ '1': {
100
+ url: 'https://api.ghostmarket.io/api/v2',
101
+ chain: 'eth',
102
+ },
103
+ };
@@ -1,9 +1,9 @@
1
1
  import { BalanceResponse, BlockchainDataService, ContractResponse, Network, RpcResponse, Token, TransactionResponse, TransactionsByAddressParams, TransactionsByAddressResponse } from '@cityofzion/blockchain-service';
2
- import { AvailableNetworkIds } from './constants';
2
+ import { BSEthereumNetworkId } from './BSEthereumHelper';
3
3
  export declare class RpcBDSEthereum implements BlockchainDataService {
4
4
  #private;
5
5
  maxTimeToConfirmTransactionInMs: number;
6
- constructor(network: Network<AvailableNetworkIds>);
6
+ constructor(network: Network<BSEthereumNetworkId>);
7
7
  getTransaction(hash: string): Promise<TransactionResponse>;
8
8
  getTransactionsByAddress(_params: TransactionsByAddressParams): Promise<TransactionsByAddressResponse>;
9
9
  getContract(): Promise<ContractResponse>;
@@ -23,8 +23,8 @@ var _RpcBDSEthereum_network;
23
23
  Object.defineProperty(exports, "__esModule", { value: true });
24
24
  exports.RpcBDSEthereum = void 0;
25
25
  const ethers_1 = require("ethers");
26
- const constants_1 = require("./constants");
27
26
  const ERC20_1 = require("./assets/abis/ERC20");
27
+ const BSEthereumHelper_1 = require("./BSEthereumHelper");
28
28
  class RpcBDSEthereum {
29
29
  constructor(network) {
30
30
  _RpcBDSEthereum_network.set(this, void 0);
@@ -40,7 +40,7 @@ class RpcBDSEthereum {
40
40
  const block = yield provider.getBlock(transaction.blockHash);
41
41
  if (!block)
42
42
  throw new Error('Block not found');
43
- const token = constants_1.NATIVE_ASSET_BY_NETWORK_ID[__classPrivateFieldGet(this, _RpcBDSEthereum_network, "f").id];
43
+ const token = BSEthereumHelper_1.BSEthereumHelper.getNativeAsset(__classPrivateFieldGet(this, _RpcBDSEthereum_network, "f"));
44
44
  return {
45
45
  block: block.number,
46
46
  time: block.timestamp,
@@ -71,8 +71,9 @@ class RpcBDSEthereum {
71
71
  }
72
72
  getTokenInfo(hash) {
73
73
  return __awaiter(this, void 0, void 0, function* () {
74
- if (constants_1.NATIVE_ASSET_BY_NETWORK_ID[__classPrivateFieldGet(this, _RpcBDSEthereum_network, "f").id].hash === hash)
75
- return constants_1.NATIVE_ASSET_BY_NETWORK_ID[__classPrivateFieldGet(this, _RpcBDSEthereum_network, "f").id];
74
+ const nativeAsset = BSEthereumHelper_1.BSEthereumHelper.getNativeAsset(__classPrivateFieldGet(this, _RpcBDSEthereum_network, "f"));
75
+ if (nativeAsset.hash === hash)
76
+ return nativeAsset;
76
77
  const provider = new ethers_1.ethers.providers.JsonRpcProvider(__classPrivateFieldGet(this, _RpcBDSEthereum_network, "f").url);
77
78
  const contract = new ethers_1.ethers.Contract(hash, ERC20_1.ERC20_ABI, provider);
78
79
  const decimals = yield contract.decimals();
@@ -89,7 +90,7 @@ class RpcBDSEthereum {
89
90
  return __awaiter(this, void 0, void 0, function* () {
90
91
  const provider = new ethers_1.ethers.providers.JsonRpcProvider(__classPrivateFieldGet(this, _RpcBDSEthereum_network, "f").url);
91
92
  const balance = yield provider.getBalance(address);
92
- const token = constants_1.NATIVE_ASSET_BY_NETWORK_ID[__classPrivateFieldGet(this, _RpcBDSEthereum_network, "f").id];
93
+ const token = BSEthereumHelper_1.BSEthereumHelper.getNativeAsset(__classPrivateFieldGet(this, _RpcBDSEthereum_network, "f"));
93
94
  return [
94
95
  {
95
96
  amount: ethers_1.ethers.utils.formatEther(balance),
@@ -107,7 +108,8 @@ class RpcBDSEthereum {
107
108
  getRpcList() {
108
109
  return __awaiter(this, void 0, void 0, function* () {
109
110
  const list = [];
110
- const promises = constants_1.RPC_LIST_BY_NETWORK_ID[__classPrivateFieldGet(this, _RpcBDSEthereum_network, "f").id].map(url => {
111
+ const urls = BSEthereumHelper_1.BSEthereumHelper.getRpcList(__classPrivateFieldGet(this, _RpcBDSEthereum_network, "f"));
112
+ const promises = urls.map(url => {
111
113
  // eslint-disable-next-line no-async-promise-executor
112
114
  return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
113
115
  const timeout = setTimeout(() => {
@@ -23,6 +23,7 @@ var _RpcNDSEthereum_network;
23
23
  Object.defineProperty(exports, "__esModule", { value: true });
24
24
  exports.RpcNDSEthereum = void 0;
25
25
  const ethers_1 = require("ethers");
26
+ const ERC20_1 = require("./assets/abis/ERC20");
26
27
  class RpcNDSEthereum {
27
28
  constructor(network) {
28
29
  _RpcNDSEthereum_network.set(this, void 0);
@@ -32,7 +33,7 @@ class RpcNDSEthereum {
32
33
  return __awaiter(this, void 0, void 0, function* () {
33
34
  try {
34
35
  const provider = new ethers_1.ethers.providers.JsonRpcProvider(__classPrivateFieldGet(this, _RpcNDSEthereum_network, "f").url);
35
- const contract = new ethers_1.ethers.Contract(contractHash, ['function balanceOf(address _owner) external view returns (uint256)'], provider);
36
+ const contract = new ethers_1.ethers.Contract(contractHash, ERC20_1.ERC20_ABI, provider);
36
37
  const response = yield contract.balanceOf(address);
37
38
  if (!response)
38
39
  throw new Error();
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  export * from './BSEthereum';
2
2
  export * from './GhostMarketNDSEthereum';
3
- export * from './constants';
3
+ export * from './RpcNDSEthereum';
4
+ export * from './BSEthereumHelper';
4
5
  export * from './BitqueryBDSEthereum';
5
- export * from './BitqueryEDSEthereum';
6
6
  export * from './RpcBDSEthereum';
7
- export * from './LedgerServiceEthereum';
7
+ export * from './BitqueryEDSEthereum';
8
+ export * from './EthersLedgerServiceEthereum';
package/dist/index.js CHANGED
@@ -16,8 +16,9 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./BSEthereum"), exports);
18
18
  __exportStar(require("./GhostMarketNDSEthereum"), exports);
19
- __exportStar(require("./constants"), exports);
19
+ __exportStar(require("./RpcNDSEthereum"), exports);
20
+ __exportStar(require("./BSEthereumHelper"), exports);
20
21
  __exportStar(require("./BitqueryBDSEthereum"), exports);
21
- __exportStar(require("./BitqueryEDSEthereum"), exports);
22
22
  __exportStar(require("./RpcBDSEthereum"), exports);
23
- __exportStar(require("./LedgerServiceEthereum"), exports);
23
+ __exportStar(require("./BitqueryEDSEthereum"), exports);
24
+ __exportStar(require("./EthersLedgerServiceEthereum"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cityofzion/bs-ethereum",
3
- "version": "2.0.0",
3
+ "version": "2.0.2",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "repository": "https://github.com/CityOfZion/blockchain-services",
@@ -22,7 +22,7 @@
22
22
  "@ledgerhq/hw-app-eth": "~6.35.7",
23
23
  "@ethersproject/abstract-signer": "~5.7.0",
24
24
  "@ethersproject/properties": "~5.7.0",
25
- "@cityofzion/blockchain-service": "1.0.0"
25
+ "@cityofzion/blockchain-service": "1.0.2"
26
26
  },
27
27
  "devDependencies": {
28
28
  "@ledgerhq/hw-transport-node-hid": "~6.28.5",
@@ -1,9 +0,0 @@
1
- import { Token } from '@cityofzion/blockchain-service';
2
- export declare const ETH: Token;
3
- export declare const MATIC: Token;
4
- export declare const BNB: Token;
5
- export declare const FTM: Token;
6
- export declare const CELO: Token;
7
- export declare const AVAX: Token;
8
- export declare const CRO: Token;
9
- export declare const GAS: Token;
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GAS = exports.CRO = exports.AVAX = exports.CELO = exports.FTM = exports.BNB = exports.MATIC = exports.ETH = void 0;
4
- exports.ETH = {
5
- symbol: 'ETH',
6
- hash: '-',
7
- decimals: 18,
8
- name: 'ETH',
9
- };
10
- exports.MATIC = {
11
- symbol: 'MATIC',
12
- hash: '-',
13
- decimals: 18,
14
- name: 'MATIC',
15
- };
16
- exports.BNB = {
17
- symbol: 'BNB',
18
- hash: '-',
19
- decimals: 18,
20
- name: 'BNB',
21
- };
22
- exports.FTM = {
23
- symbol: 'FTM',
24
- hash: '-',
25
- decimals: 18,
26
- name: 'FTM',
27
- };
28
- exports.CELO = {
29
- symbol: 'CELO',
30
- hash: '-',
31
- decimals: 18,
32
- name: 'CELO',
33
- };
34
- exports.AVAX = {
35
- symbol: 'AVAX',
36
- hash: '-',
37
- decimals: 18,
38
- name: 'AVAX',
39
- };
40
- exports.CRO = {
41
- symbol: 'CRO',
42
- hash: '-',
43
- decimals: 18,
44
- name: 'CRO',
45
- };
46
- exports.GAS = {
47
- symbol: 'GAS',
48
- hash: '-',
49
- decimals: 18,
50
- name: 'GAS',
51
- };
@@ -1,12 +0,0 @@
1
- import { Token } from '@cityofzion/blockchain-service';
2
- export type AvailableNetworkIds = '1' | '10' | '25' | '56' | '137' | '250' | '1101' | '8453' | '80002' | '42161' | '42220' | '43114' | '59144' | '11155111' | '12227331';
3
- export declare const DERIVATION_PATH = "m/44'/60'/0'/0/?";
4
- export declare const DEFAULT_PATH = "44'/60'/0'/0/0";
5
- export declare const NATIVE_ASSET_BY_NETWORK_ID: Record<AvailableNetworkIds, Token>;
6
- export declare const RPC_LIST_BY_NETWORK_ID: Record<AvailableNetworkIds, string[]>;
7
- export declare const DEFAULT_URL_BY_NETWORK_ID: Record<AvailableNetworkIds, string>;
8
- export declare const NETWORK_NAME_BY_NETWORK_ID: Record<AvailableNetworkIds, string>;
9
- export declare const BITQUERY_MIRROR_URL = "https://i4l7kcg43c.execute-api.us-east-1.amazonaws.com/production/";
10
- export declare const BITQUERY_MIRROR_NETWORK_BY_NETWORK_ID: Partial<Record<AvailableNetworkIds, string>>;
11
- export declare const GHOSTMARKET_URL_BY_NETWORK_TYPE: Partial<Record<AvailableNetworkIds, string>>;
12
- export declare const GHOSTMARKET_CHAIN_BY_NETWORK_TYPE: Partial<Record<AvailableNetworkIds, string>>;