@cityofzion/bs-neo3 1.0.0 → 1.0.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/dist/BSNeo3.d.ts +13 -13
- package/dist/BSNeo3.js +50 -45
- package/dist/BSNeo3Helper.d.ts +21 -0
- package/dist/BSNeo3Helper.js +74 -0
- package/dist/DoraBDSNeo3.d.ts +3 -2
- package/dist/DoraBDSNeo3.js +4 -7
- package/dist/DoraESNeo3.d.ts +2 -1
- package/dist/DoraESNeo3.js +10 -4
- package/dist/FlamingoEDSNeo3.d.ts +3 -3
- package/dist/FlamingoEDSNeo3.js +2 -3
- package/dist/GhostMarketNDSNeo3.d.ts +5 -4
- package/dist/GhostMarketNDSNeo3.js +51 -41
- package/dist/{LedgerServiceNeo3.d.ts → NeonDappKitLedgerServiceNeo3.d.ts} +1 -1
- package/dist/{LedgerServiceNeo3.js → NeonDappKitLedgerServiceNeo3.js} +3 -3
- package/dist/RpcBDSNeo3.d.ts +3 -2
- package/dist/RpcBDSNeo3.js +7 -4
- package/dist/RpcNDSNeo3.d.ts +2 -1
- package/dist/flamingo-swap/FlamingoSwapControllerService.d.ts +1 -37
- package/dist/flamingo-swap/FlamingoSwapControllerService.js +183 -225
- package/dist/flamingo-swap/FlamingoSwapHelper.d.ts +14 -1
- package/dist/flamingo-swap/FlamingoSwapHelper.js +57 -6
- package/dist/flamingo-swap/FlamingoSwapNeonDappKitInvocationBuilder.d.ts +1 -1
- package/dist/flamingo-swap/FlamingoSwapNeonDappKitInvocationBuilder.js +7 -9
- package/dist/index.d.ts +3 -4
- package/dist/index.js +3 -4
- package/package.json +2 -2
- package/dist/constants.d.ts +0 -21
- package/dist/constants.js +0 -74
- package/dist/flamingo-swap/FlamingoSwapError.d.ts +0 -12
- package/dist/flamingo-swap/FlamingoSwapError.js +0 -28
package/dist/BSNeo3.d.ts
CHANGED
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import { BlockchainDataService, BlockchainService, BSClaimable, Account, ExchangeDataService, BDSClaimable, Token, BSWithNameService, Network, TransferParam, BSCalculableFee, NftDataService, BSWithNft, AccountWithDerivationPath, BSWithExplorerService, ExplorerService, BSWithLedger
|
|
2
|
-
import { AvailableNetworkIds } from './constants';
|
|
3
|
-
import { LedgerServiceNeo3 } from './LedgerServiceNeo3';
|
|
1
|
+
import { BlockchainDataService, BlockchainService, BSClaimable, Account, ExchangeDataService, BDSClaimable, Token, BSWithNameService, Network, TransferParam, BSCalculableFee, NftDataService, BSWithNft, AccountWithDerivationPath, BSWithExplorerService, ExplorerService, BSWithLedger } from '@cityofzion/blockchain-service';
|
|
4
2
|
import Transport from '@ledgerhq/hw-transport';
|
|
3
|
+
import { AvailableNetworkIds } from './BSNeo3Helper';
|
|
4
|
+
import { NeonDappKitLedgerServiceNeo3 } from './NeonDappKitLedgerServiceNeo3';
|
|
5
5
|
export declare class BSNeo3<BSCustomName extends string = string> implements BlockchainService<BSCustomName, AvailableNetworkIds>, BSClaimable, BSWithNameService, BSCalculableFee, BSWithNft, BSWithExplorerService, BSWithLedger {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
#private;
|
|
7
|
+
blockchainName: BSCustomName;
|
|
8
|
+
derivationPath: string;
|
|
9
|
+
tokens: Token[];
|
|
10
|
+
feeToken: Token;
|
|
11
|
+
claimToken: Token;
|
|
12
|
+
burnToken: Token;
|
|
11
13
|
blockchainDataService: BlockchainDataService & BDSClaimable;
|
|
12
14
|
nftDataService: NftDataService;
|
|
13
|
-
ledgerService:
|
|
15
|
+
ledgerService: NeonDappKitLedgerServiceNeo3;
|
|
14
16
|
exchangeDataService: ExchangeDataService;
|
|
15
17
|
explorerService: ExplorerService;
|
|
16
|
-
tokens: Token[];
|
|
17
18
|
network: Network<AvailableNetworkIds>;
|
|
18
|
-
constructor(blockchainName: BSCustomName, network
|
|
19
|
-
setNetwork(
|
|
19
|
+
constructor(blockchainName: BSCustomName, network?: Network<AvailableNetworkIds>, getLedgerTransport?: (account: Account) => Promise<Transport>);
|
|
20
|
+
setNetwork(network: Network<AvailableNetworkIds>): void;
|
|
20
21
|
validateAddress(address: string): boolean;
|
|
21
22
|
validateEncrypted(encryptedKey: string): boolean;
|
|
22
23
|
validateKey(key: string): boolean;
|
|
@@ -30,5 +31,4 @@ export declare class BSNeo3<BSCustomName extends string = string> implements Blo
|
|
|
30
31
|
transfer(param: TransferParam): Promise<string>;
|
|
31
32
|
claim(account: Account, isLedger?: boolean): Promise<string>;
|
|
32
33
|
resolveNameServiceDomain(domainName: string): Promise<any>;
|
|
33
|
-
private buildTransferInvocation;
|
|
34
34
|
}
|
package/dist/BSNeo3.js
CHANGED
|
@@ -8,44 +8,43 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
8
8
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
12
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
13
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
14
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
15
|
+
};
|
|
16
|
+
var _BSNeo3_instances, _BSNeo3_setTokens, _BSNeo3_buildTransferInvocation;
|
|
11
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
18
|
exports.BSNeo3 = void 0;
|
|
13
19
|
const neon_js_1 = require("@cityofzion/neon-js");
|
|
14
20
|
const neon_dappkit_1 = require("@cityofzion/neon-dappkit");
|
|
15
|
-
const
|
|
21
|
+
const bs_asteroid_sdk_1 = require("@cityofzion/bs-asteroid-sdk");
|
|
22
|
+
const BSNeo3Helper_1 = require("./BSNeo3Helper");
|
|
23
|
+
const NeonDappKitLedgerServiceNeo3_1 = require("./NeonDappKitLedgerServiceNeo3");
|
|
16
24
|
const DoraBDSNeo3_1 = require("./DoraBDSNeo3");
|
|
17
|
-
const
|
|
25
|
+
const RpcBDSNeo3_1 = require("./RpcBDSNeo3");
|
|
18
26
|
const FlamingoEDSNeo3_1 = require("./FlamingoEDSNeo3");
|
|
19
27
|
const GhostMarketNDSNeo3_1 = require("./GhostMarketNDSNeo3");
|
|
20
|
-
const bs_asteroid_sdk_1 = require("@cityofzion/bs-asteroid-sdk");
|
|
21
28
|
const DoraESNeo3_1 = require("./DoraESNeo3");
|
|
22
|
-
const LedgerServiceNeo3_1 = require("./LedgerServiceNeo3");
|
|
23
29
|
class BSNeo3 {
|
|
24
30
|
constructor(blockchainName, network, getLedgerTransport) {
|
|
31
|
+
_BSNeo3_instances.add(this);
|
|
32
|
+
network = network !== null && network !== void 0 ? network : BSNeo3Helper_1.BSNeo3Helper.DEFAULT_NETWORK;
|
|
25
33
|
this.blockchainName = blockchainName;
|
|
26
|
-
this.ledgerService = new
|
|
27
|
-
this.
|
|
28
|
-
this.derivationPath = constants_1.DERIVATION_PATH;
|
|
29
|
-
this.feeToken = this.tokens.find(token => token.symbol === 'GAS');
|
|
30
|
-
this.burnToken = this.tokens.find(token => token.symbol === 'NEO');
|
|
31
|
-
this.claimToken = this.tokens.find(token => token.symbol === 'GAS');
|
|
34
|
+
this.ledgerService = new NeonDappKitLedgerServiceNeo3_1.NeonDappKitLedgerServiceNeo3(getLedgerTransport);
|
|
35
|
+
this.derivationPath = BSNeo3Helper_1.BSNeo3Helper.DERIVATION_PATH;
|
|
32
36
|
this.setNetwork(network);
|
|
33
37
|
}
|
|
34
|
-
setNetwork(
|
|
35
|
-
|
|
36
|
-
const network = {
|
|
37
|
-
id: partialNetwork.id,
|
|
38
|
-
name: (_a = partialNetwork.name) !== null && _a !== void 0 ? _a : partialNetwork.id,
|
|
39
|
-
url: (_b = partialNetwork.url) !== null && _b !== void 0 ? _b : constants_1.DEFAULT_URL_BY_NETWORK_TYPE[partialNetwork.id],
|
|
40
|
-
};
|
|
38
|
+
setNetwork(network) {
|
|
39
|
+
__classPrivateFieldGet(this, _BSNeo3_instances, "m", _BSNeo3_setTokens).call(this, network);
|
|
41
40
|
this.network = network;
|
|
42
|
-
if (network.
|
|
43
|
-
this.blockchainDataService = new
|
|
41
|
+
if (DoraBDSNeo3_1.DoraBDSNeo3.SUPPORTED_NETWORKS.includes(network.id)) {
|
|
42
|
+
this.blockchainDataService = new DoraBDSNeo3_1.DoraBDSNeo3(network, this.feeToken, this.claimToken, this.tokens);
|
|
44
43
|
}
|
|
45
44
|
else {
|
|
46
|
-
this.blockchainDataService = new
|
|
45
|
+
this.blockchainDataService = new RpcBDSNeo3_1.RPCBDSNeo3(network, this.feeToken, this.claimToken, this.tokens);
|
|
47
46
|
}
|
|
48
|
-
this.exchangeDataService = new FlamingoEDSNeo3_1.FlamingoEDSNeo3(network.id);
|
|
47
|
+
this.exchangeDataService = new FlamingoEDSNeo3_1.FlamingoEDSNeo3(network.id, this.tokens);
|
|
49
48
|
this.nftDataService = new GhostMarketNDSNeo3_1.GhostMarketNDSNeo3(network);
|
|
50
49
|
this.explorerService = new DoraESNeo3_1.DoraESNeo3(network.id);
|
|
51
50
|
}
|
|
@@ -107,7 +106,7 @@ class BSNeo3 {
|
|
|
107
106
|
rpcAddress: this.network.url,
|
|
108
107
|
account,
|
|
109
108
|
});
|
|
110
|
-
const invocations = this.
|
|
109
|
+
const invocations = __classPrivateFieldGet(this, _BSNeo3_instances, "m", _BSNeo3_buildTransferInvocation).call(this, param, account);
|
|
111
110
|
const { total } = yield invoker.calculateFee({
|
|
112
111
|
invocations,
|
|
113
112
|
signers: [],
|
|
@@ -129,7 +128,7 @@ class BSNeo3 {
|
|
|
129
128
|
account,
|
|
130
129
|
signingCallback: ledgerTransport ? this.ledgerService.getSigningCallback(ledgerTransport) : undefined,
|
|
131
130
|
});
|
|
132
|
-
const invocations = this.
|
|
131
|
+
const invocations = __classPrivateFieldGet(this, _BSNeo3_instances, "m", _BSNeo3_buildTransferInvocation).call(this, param, account);
|
|
133
132
|
const transactionHash = yield invoker.invokeFunction({
|
|
134
133
|
invocations,
|
|
135
134
|
signers: [],
|
|
@@ -163,7 +162,7 @@ class BSNeo3 {
|
|
|
163
162
|
const response = yield invoker.testInvoke({
|
|
164
163
|
invocations: [
|
|
165
164
|
{
|
|
166
|
-
scriptHash:
|
|
165
|
+
scriptHash: BSNeo3Helper_1.BSNeo3Helper.NEO_NS_HASH,
|
|
167
166
|
operation: 'ownerOf',
|
|
168
167
|
args: [{ type: 'String', value: domainName }],
|
|
169
168
|
},
|
|
@@ -179,26 +178,32 @@ class BSNeo3 {
|
|
|
179
178
|
return address;
|
|
180
179
|
});
|
|
181
180
|
}
|
|
182
|
-
buildTransferInvocation({ intent, tipIntent }, account) {
|
|
183
|
-
const intents = [intent, ...(tipIntent ? [tipIntent] : [])];
|
|
184
|
-
const invocations = intents.map(intent => {
|
|
185
|
-
return {
|
|
186
|
-
operation: 'transfer',
|
|
187
|
-
scriptHash: intent.tokenHash,
|
|
188
|
-
args: [
|
|
189
|
-
{ type: 'Hash160', value: account.address },
|
|
190
|
-
{ type: 'Hash160', value: intent.receiverAddress },
|
|
191
|
-
{
|
|
192
|
-
type: 'Integer',
|
|
193
|
-
value: intent.tokenDecimals
|
|
194
|
-
? neon_js_1.u.BigInteger.fromDecimal(intent.amount, intent.tokenDecimals).toString()
|
|
195
|
-
: intent.amount,
|
|
196
|
-
},
|
|
197
|
-
{ type: 'Any', value: '' },
|
|
198
|
-
],
|
|
199
|
-
};
|
|
200
|
-
});
|
|
201
|
-
return invocations;
|
|
202
|
-
}
|
|
203
181
|
}
|
|
204
182
|
exports.BSNeo3 = BSNeo3;
|
|
183
|
+
_BSNeo3_instances = new WeakSet(), _BSNeo3_setTokens = function _BSNeo3_setTokens(network) {
|
|
184
|
+
const tokens = BSNeo3Helper_1.BSNeo3Helper.getTokens(network);
|
|
185
|
+
this.tokens = tokens;
|
|
186
|
+
this.feeToken = tokens.find(token => token.symbol === 'GAS');
|
|
187
|
+
this.burnToken = tokens.find(token => token.symbol === 'NEO');
|
|
188
|
+
this.claimToken = tokens.find(token => token.symbol === 'GAS');
|
|
189
|
+
}, _BSNeo3_buildTransferInvocation = function _BSNeo3_buildTransferInvocation({ intent, tipIntent }, account) {
|
|
190
|
+
const intents = [intent, ...(tipIntent ? [tipIntent] : [])];
|
|
191
|
+
const invocations = intents.map(intent => {
|
|
192
|
+
return {
|
|
193
|
+
operation: 'transfer',
|
|
194
|
+
scriptHash: intent.tokenHash,
|
|
195
|
+
args: [
|
|
196
|
+
{ type: 'Hash160', value: account.address },
|
|
197
|
+
{ type: 'Hash160', value: intent.receiverAddress },
|
|
198
|
+
{
|
|
199
|
+
type: 'Integer',
|
|
200
|
+
value: intent.tokenDecimals
|
|
201
|
+
? neon_js_1.u.BigInteger.fromDecimal(intent.amount, intent.tokenDecimals).toString()
|
|
202
|
+
: intent.amount,
|
|
203
|
+
},
|
|
204
|
+
{ type: 'Any', value: '' },
|
|
205
|
+
],
|
|
206
|
+
};
|
|
207
|
+
});
|
|
208
|
+
return invocations;
|
|
209
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Network } from '@cityofzion/blockchain-service';
|
|
2
|
+
export type AvailableNetworkIds = 'mainnet' | 'testnet' | 'custom';
|
|
3
|
+
export declare class BSNeo3Helper {
|
|
4
|
+
#private;
|
|
5
|
+
static MAINNET_NETWORK_IDS: AvailableNetworkIds[];
|
|
6
|
+
static TESTNET_NETWORK_IDS: AvailableNetworkIds[];
|
|
7
|
+
static ALL_NETWORK_IDS: AvailableNetworkIds[];
|
|
8
|
+
static MAINNET_NETWORKS: Network<AvailableNetworkIds>[];
|
|
9
|
+
static TESTNET_NETWORKS: Network<AvailableNetworkIds>[];
|
|
10
|
+
static ALL_NETWORKS: Network<AvailableNetworkIds>[];
|
|
11
|
+
static DEFAULT_NETWORK: Network<AvailableNetworkIds>;
|
|
12
|
+
static NEO_NS_HASH: string;
|
|
13
|
+
static DERIVATION_PATH: string;
|
|
14
|
+
static getTokens(network: Network<AvailableNetworkIds>): {
|
|
15
|
+
symbol: string;
|
|
16
|
+
name: string;
|
|
17
|
+
hash: string;
|
|
18
|
+
decimals: number;
|
|
19
|
+
}[];
|
|
20
|
+
static getRpcList(network: Network<AvailableNetworkIds>): string[];
|
|
21
|
+
}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
5
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
6
|
+
};
|
|
7
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
8
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
|
+
};
|
|
10
|
+
var _a, _BSNeo3Helper_EXTRA_TOKENS_BY_NETWORK_ID, _BSNeo3Helper_RPC_LIST_BY_NETWORK_ID;
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.BSNeo3Helper = void 0;
|
|
13
|
+
const mainnet_json_1 = __importDefault(require("./assets/tokens/mainnet.json"));
|
|
14
|
+
const common_json_1 = __importDefault(require("./assets/tokens/common.json"));
|
|
15
|
+
class BSNeo3Helper {
|
|
16
|
+
static getTokens(network) {
|
|
17
|
+
var _b;
|
|
18
|
+
const extraTokens = (_b = __classPrivateFieldGet(this, _a, "f", _BSNeo3Helper_EXTRA_TOKENS_BY_NETWORK_ID)[network.id]) !== null && _b !== void 0 ? _b : [];
|
|
19
|
+
return [...extraTokens, ...common_json_1.default];
|
|
20
|
+
}
|
|
21
|
+
static getRpcList(network) {
|
|
22
|
+
var _b;
|
|
23
|
+
return (_b = __classPrivateFieldGet(this, _a, "f", _BSNeo3Helper_RPC_LIST_BY_NETWORK_ID)[network.id]) !== null && _b !== void 0 ? _b : [];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.BSNeo3Helper = BSNeo3Helper;
|
|
27
|
+
_a = BSNeo3Helper;
|
|
28
|
+
_BSNeo3Helper_EXTRA_TOKENS_BY_NETWORK_ID = { value: {
|
|
29
|
+
mainnet: mainnet_json_1.default,
|
|
30
|
+
} };
|
|
31
|
+
_BSNeo3Helper_RPC_LIST_BY_NETWORK_ID = { value: {
|
|
32
|
+
mainnet: [
|
|
33
|
+
'https://mainnet1.neo.coz.io:443',
|
|
34
|
+
'https://mainnet4.neo.coz.io:443',
|
|
35
|
+
'http://seed1.neo.org:10332',
|
|
36
|
+
'http://seed2.neo.org:10332',
|
|
37
|
+
'https://mainnet2.neo.coz.io:443',
|
|
38
|
+
'https://mainnet5.neo.coz.io:443',
|
|
39
|
+
'https://mainnet3.neo.coz.io:443',
|
|
40
|
+
'https://rpc10.n3.nspcc.ru:10331',
|
|
41
|
+
'https://neo1-nodes.ghostmarket.io:443',
|
|
42
|
+
],
|
|
43
|
+
testnet: [
|
|
44
|
+
'https://testnet1.neo.coz.io:443',
|
|
45
|
+
'https://testnet2.neo.coz.io:443',
|
|
46
|
+
'https://rpc.t5.n3.nspcc.ru:20331',
|
|
47
|
+
'http://seed1t5.neo.org:20332',
|
|
48
|
+
'http://seed2t5.neo.org:20332',
|
|
49
|
+
'http://seed3t5.neo.org:20332',
|
|
50
|
+
'http://seed4t5.neo.org:20332',
|
|
51
|
+
'http://seed5t5.neo.org:20332',
|
|
52
|
+
],
|
|
53
|
+
} };
|
|
54
|
+
BSNeo3Helper.MAINNET_NETWORK_IDS = ['mainnet'];
|
|
55
|
+
BSNeo3Helper.TESTNET_NETWORK_IDS = ['testnet'];
|
|
56
|
+
BSNeo3Helper.ALL_NETWORK_IDS = [..._a.MAINNET_NETWORK_IDS, ..._a.TESTNET_NETWORK_IDS];
|
|
57
|
+
BSNeo3Helper.MAINNET_NETWORKS = [
|
|
58
|
+
{
|
|
59
|
+
id: 'mainnet',
|
|
60
|
+
name: 'Mainnet',
|
|
61
|
+
url: __classPrivateFieldGet(_a, _a, "f", _BSNeo3Helper_RPC_LIST_BY_NETWORK_ID)['mainnet'][0],
|
|
62
|
+
},
|
|
63
|
+
];
|
|
64
|
+
BSNeo3Helper.TESTNET_NETWORKS = [
|
|
65
|
+
{
|
|
66
|
+
id: 'testnet',
|
|
67
|
+
name: 'Testnet',
|
|
68
|
+
url: __classPrivateFieldGet(_a, _a, "f", _BSNeo3Helper_RPC_LIST_BY_NETWORK_ID)['testnet'][0],
|
|
69
|
+
},
|
|
70
|
+
];
|
|
71
|
+
BSNeo3Helper.ALL_NETWORKS = [..._a.MAINNET_NETWORKS, ..._a.TESTNET_NETWORKS];
|
|
72
|
+
BSNeo3Helper.DEFAULT_NETWORK = _a.MAINNET_NETWORKS[0];
|
|
73
|
+
BSNeo3Helper.NEO_NS_HASH = '0x50ac1c37690cc2cfc594472833cf57505d5f46de';
|
|
74
|
+
BSNeo3Helper.DERIVATION_PATH = "m/44'/888'/0'/0/?";
|
package/dist/DoraBDSNeo3.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { BalanceResponse, ContractResponse, TransactionsByAddressParams, TransactionsByAddressResponse, TransactionResponse, Network, Token } from '@cityofzion/blockchain-service';
|
|
2
2
|
import { RPCBDSNeo3 } from './RpcBDSNeo3';
|
|
3
|
-
import { AvailableNetworkIds } from './
|
|
3
|
+
import { AvailableNetworkIds } from './BSNeo3Helper';
|
|
4
4
|
export declare class DoraBDSNeo3 extends RPCBDSNeo3 {
|
|
5
|
-
|
|
5
|
+
static SUPPORTED_NETWORKS: AvailableNetworkIds[];
|
|
6
|
+
constructor(network: Network<AvailableNetworkIds>, feeToken: Token, claimToken: Token, tokens: Token[]);
|
|
6
7
|
getTransaction(hash: string): Promise<TransactionResponse>;
|
|
7
8
|
getTransactionsByAddress({ address, page, }: TransactionsByAddressParams): Promise<TransactionsByAddressResponse>;
|
|
8
9
|
getContract(contractHash: string): Promise<ContractResponse>;
|
package/dist/DoraBDSNeo3.js
CHANGED
|
@@ -13,17 +13,13 @@ exports.DoraBDSNeo3 = void 0;
|
|
|
13
13
|
const neon_js_1 = require("@cityofzion/neon-js");
|
|
14
14
|
const api_1 = require("@cityofzion/dora-ts/dist/api");
|
|
15
15
|
const RpcBDSNeo3_1 = require("./RpcBDSNeo3");
|
|
16
|
-
const constants_1 = require("./constants");
|
|
17
16
|
const NeoRest = new api_1.NeoRESTApi({
|
|
18
17
|
doraUrl: 'https://dora.coz.io',
|
|
19
18
|
endpoint: '/api/v2/neo3',
|
|
20
19
|
});
|
|
21
20
|
class DoraBDSNeo3 extends RpcBDSNeo3_1.RPCBDSNeo3 {
|
|
22
|
-
constructor(network, feeToken, claimToken) {
|
|
23
|
-
|
|
24
|
-
throw new Error('DoraBDSNeo3 does not support custom networks');
|
|
25
|
-
}
|
|
26
|
-
super(network, feeToken, claimToken);
|
|
21
|
+
constructor(network, feeToken, claimToken, tokens) {
|
|
22
|
+
super(network, feeToken, claimToken, tokens);
|
|
27
23
|
}
|
|
28
24
|
getTransaction(hash) {
|
|
29
25
|
var _a, _b;
|
|
@@ -127,7 +123,7 @@ class DoraBDSNeo3 extends RpcBDSNeo3_1.RPCBDSNeo3 {
|
|
|
127
123
|
}
|
|
128
124
|
getTokenInfo(tokenHash) {
|
|
129
125
|
return __awaiter(this, void 0, void 0, function* () {
|
|
130
|
-
const localToken =
|
|
126
|
+
const localToken = this._tokens.find(token => token.hash === tokenHash);
|
|
131
127
|
if (localToken)
|
|
132
128
|
return localToken;
|
|
133
129
|
if (this._tokenCache.has(tokenHash)) {
|
|
@@ -175,3 +171,4 @@ class DoraBDSNeo3 extends RpcBDSNeo3_1.RPCBDSNeo3 {
|
|
|
175
171
|
}
|
|
176
172
|
}
|
|
177
173
|
exports.DoraBDSNeo3 = DoraBDSNeo3;
|
|
174
|
+
DoraBDSNeo3.SUPPORTED_NETWORKS = ['mainnet', 'testnet'];
|
package/dist/DoraESNeo3.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { ExplorerService, BuildNftUrlParams } from '@cityofzion/blockchain-service';
|
|
2
|
-
import { AvailableNetworkIds } from './
|
|
2
|
+
import { AvailableNetworkIds } from './BSNeo3Helper';
|
|
3
3
|
export declare class DoraESNeo3 implements ExplorerService {
|
|
4
4
|
#private;
|
|
5
5
|
constructor(networkType: AvailableNetworkIds);
|
|
6
6
|
buildTransactionUrl(hash: string): string;
|
|
7
|
+
buildContractUrl(contractHash: string): string;
|
|
7
8
|
buildNftUrl({ contractHash, tokenId }: BuildNftUrlParams): string;
|
|
8
9
|
}
|
package/dist/DoraESNeo3.js
CHANGED
|
@@ -13,19 +13,25 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
13
13
|
var _DoraESNeo3_networkId;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.DoraESNeo3 = void 0;
|
|
16
|
+
const DoraBDSNeo3_1 = require("./DoraBDSNeo3");
|
|
16
17
|
class DoraESNeo3 {
|
|
17
18
|
constructor(networkType) {
|
|
18
19
|
_DoraESNeo3_networkId.set(this, void 0);
|
|
19
20
|
__classPrivateFieldSet(this, _DoraESNeo3_networkId, networkType, "f");
|
|
20
21
|
}
|
|
21
22
|
buildTransactionUrl(hash) {
|
|
22
|
-
if (__classPrivateFieldGet(this, _DoraESNeo3_networkId, "f")
|
|
23
|
-
throw new Error('
|
|
23
|
+
if (!DoraBDSNeo3_1.DoraBDSNeo3.SUPPORTED_NETWORKS.includes(__classPrivateFieldGet(this, _DoraESNeo3_networkId, "f")))
|
|
24
|
+
throw new Error('Unsupported network');
|
|
24
25
|
return `https://dora.coz.io/transaction/neo3/${__classPrivateFieldGet(this, _DoraESNeo3_networkId, "f")}/${hash}`;
|
|
25
26
|
}
|
|
27
|
+
buildContractUrl(contractHash) {
|
|
28
|
+
if (!DoraBDSNeo3_1.DoraBDSNeo3.SUPPORTED_NETWORKS.includes(__classPrivateFieldGet(this, _DoraESNeo3_networkId, "f")))
|
|
29
|
+
throw new Error('Unsupported network');
|
|
30
|
+
return `https://dora.coz.io/contract/neo3/${__classPrivateFieldGet(this, _DoraESNeo3_networkId, "f")}/${contractHash}`;
|
|
31
|
+
}
|
|
26
32
|
buildNftUrl({ contractHash, tokenId }) {
|
|
27
|
-
if (__classPrivateFieldGet(this, _DoraESNeo3_networkId, "f")
|
|
28
|
-
throw new Error('
|
|
33
|
+
if (!DoraBDSNeo3_1.DoraBDSNeo3.SUPPORTED_NETWORKS.includes(__classPrivateFieldGet(this, _DoraESNeo3_networkId, "f")))
|
|
34
|
+
throw new Error('Unsupported network');
|
|
29
35
|
return `https://dora.coz.io/nft/neo3/${__classPrivateFieldGet(this, _DoraESNeo3_networkId, "f")}/${contractHash}/${tokenId}`;
|
|
30
36
|
}
|
|
31
37
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { CryptoCompareEDS, Currency, ExchangeDataService, GetTokenPriceHistory, TokenPricesHistoryResponse, TokenPricesResponse } from '@cityofzion/blockchain-service';
|
|
2
|
-
import { AvailableNetworkIds } from './
|
|
1
|
+
import { CryptoCompareEDS, Currency, ExchangeDataService, GetTokenPriceHistory, Token, TokenPricesHistoryResponse, TokenPricesResponse } from '@cityofzion/blockchain-service';
|
|
2
|
+
import { AvailableNetworkIds } from './BSNeo3Helper';
|
|
3
3
|
export declare class FlamingoEDSNeo3 extends CryptoCompareEDS implements ExchangeDataService {
|
|
4
4
|
#private;
|
|
5
|
-
constructor(networkId: AvailableNetworkIds);
|
|
5
|
+
constructor(networkId: AvailableNetworkIds, tokens: Token[]);
|
|
6
6
|
getTokenPrices(currency: Currency): Promise<TokenPricesResponse[]>;
|
|
7
7
|
getTokenPriceHistory(params: GetTokenPriceHistory): Promise<TokenPricesHistoryResponse[]>;
|
|
8
8
|
private getCurrencyRatio;
|
package/dist/FlamingoEDSNeo3.js
CHANGED
|
@@ -27,10 +27,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
27
27
|
exports.FlamingoEDSNeo3 = void 0;
|
|
28
28
|
const blockchain_service_1 = require("@cityofzion/blockchain-service");
|
|
29
29
|
const axios_1 = __importDefault(require("axios"));
|
|
30
|
-
const constants_1 = require("./constants");
|
|
31
30
|
class FlamingoEDSNeo3 extends blockchain_service_1.CryptoCompareEDS {
|
|
32
|
-
constructor(networkId) {
|
|
33
|
-
super(
|
|
31
|
+
constructor(networkId, tokens) {
|
|
32
|
+
super(tokens);
|
|
34
33
|
_FlamingoEDSNeo3_networkId.set(this, void 0);
|
|
35
34
|
_FlamingoEDSNeo3_axiosInstance.set(this, void 0);
|
|
36
35
|
__classPrivateFieldSet(this, _FlamingoEDSNeo3_networkId, networkId, "f");
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { NftResponse, NftsResponse, GetNftParam, GetNftsByAddressParams, Network } from '@cityofzion/blockchain-service';
|
|
2
|
-
import { AvailableNetworkIds } from './
|
|
2
|
+
import { AvailableNetworkIds } from './BSNeo3Helper';
|
|
3
3
|
import { RpcNDSNeo3 } from './RpcNDSNeo3';
|
|
4
4
|
export declare class GhostMarketNDSNeo3 extends RpcNDSNeo3 {
|
|
5
5
|
#private;
|
|
6
|
+
static CONFIG_BY_NETWORK_ID: Partial<Record<AvailableNetworkIds, {
|
|
7
|
+
url: string;
|
|
8
|
+
chain: string;
|
|
9
|
+
}>>;
|
|
6
10
|
constructor(network: Network<AvailableNetworkIds>);
|
|
7
11
|
getNftsByAddress({ address, size, cursor }: GetNftsByAddressParams): Promise<NftsResponse>;
|
|
8
12
|
getNft({ contractHash, tokenId }: GetNftParam): Promise<NftResponse>;
|
|
9
|
-
private treatGhostMarketImage;
|
|
10
|
-
private getUrlWithParams;
|
|
11
|
-
private parse;
|
|
12
13
|
}
|
|
@@ -22,74 +22,84 @@ 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
|
|
25
|
+
var _GhostMarketNDSNeo3_instances, _GhostMarketNDSNeo3_network, _GhostMarketNDSNeo3_treatGhostMarketImage, _GhostMarketNDSNeo3_getUrlWithParams, _GhostMarketNDSNeo3_parse;
|
|
26
26
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
27
|
exports.GhostMarketNDSNeo3 = void 0;
|
|
28
28
|
const query_string_1 = __importDefault(require("query-string"));
|
|
29
29
|
const axios_1 = __importDefault(require("axios"));
|
|
30
|
-
const constants_1 = require("./constants");
|
|
31
30
|
const RpcNDSNeo3_1 = require("./RpcNDSNeo3");
|
|
32
31
|
class GhostMarketNDSNeo3 extends RpcNDSNeo3_1.RpcNDSNeo3 {
|
|
33
32
|
constructor(network) {
|
|
34
33
|
super(network);
|
|
35
|
-
|
|
36
|
-
|
|
34
|
+
_GhostMarketNDSNeo3_instances.add(this);
|
|
35
|
+
_GhostMarketNDSNeo3_network.set(this, void 0);
|
|
36
|
+
__classPrivateFieldSet(this, _GhostMarketNDSNeo3_network, network, "f");
|
|
37
37
|
}
|
|
38
38
|
getNftsByAddress({ address, size = 18, cursor }) {
|
|
39
39
|
var _a;
|
|
40
40
|
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
const url = this.
|
|
41
|
+
const url = __classPrivateFieldGet(this, _GhostMarketNDSNeo3_instances, "m", _GhostMarketNDSNeo3_getUrlWithParams).call(this, {
|
|
42
42
|
size,
|
|
43
43
|
owners: [address],
|
|
44
44
|
cursor: cursor,
|
|
45
45
|
});
|
|
46
46
|
const { data } = yield axios_1.default.get(url);
|
|
47
47
|
const nfts = (_a = data.assets) !== null && _a !== void 0 ? _a : [];
|
|
48
|
-
return { nextCursor: data.next, items: nfts.map(this.
|
|
48
|
+
return { nextCursor: data.next, items: nfts.map(__classPrivateFieldGet(this, _GhostMarketNDSNeo3_instances, "m", _GhostMarketNDSNeo3_parse).bind(this)) };
|
|
49
49
|
});
|
|
50
50
|
}
|
|
51
51
|
getNft({ contractHash, tokenId }) {
|
|
52
52
|
return __awaiter(this, void 0, void 0, function* () {
|
|
53
|
-
const url = this.
|
|
53
|
+
const url = __classPrivateFieldGet(this, _GhostMarketNDSNeo3_instances, "m", _GhostMarketNDSNeo3_getUrlWithParams).call(this, {
|
|
54
54
|
contract: contractHash,
|
|
55
55
|
tokenIds: [tokenId],
|
|
56
56
|
});
|
|
57
57
|
const { data } = yield axios_1.default.get(url);
|
|
58
|
-
return this.
|
|
58
|
+
return __classPrivateFieldGet(this, _GhostMarketNDSNeo3_instances, "m", _GhostMarketNDSNeo3_parse).call(this, data.assets[0]);
|
|
59
59
|
});
|
|
60
60
|
}
|
|
61
|
-
treatGhostMarketImage(srcImage) {
|
|
62
|
-
if (!srcImage) {
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
if (srcImage.startsWith('ipfs://')) {
|
|
66
|
-
const [, imageId] = srcImage.split('://');
|
|
67
|
-
return `https://ghostmarket.mypinata.cloud/ipfs/${imageId}`;
|
|
68
|
-
}
|
|
69
|
-
return srcImage;
|
|
70
|
-
}
|
|
71
|
-
getUrlWithParams(params) {
|
|
72
|
-
const parameters = query_string_1.default.stringify(Object.assign({ chain: constants_1.GHOSTMARKET_CHAIN_BY_NETWORK_TYPE[__classPrivateFieldGet(this, _GhostMarketNDSNeo3_networkId, "f")] }, params), { arrayFormat: 'bracket' });
|
|
73
|
-
return `${constants_1.GHOSTMARKET_URL_BY_NETWORK_TYPE[__classPrivateFieldGet(this, _GhostMarketNDSNeo3_networkId, "f")]}/assets?${parameters}`;
|
|
74
|
-
}
|
|
75
|
-
parse(data) {
|
|
76
|
-
var _a, _b;
|
|
77
|
-
const nftResponse = {
|
|
78
|
-
collectionImage: this.treatGhostMarketImage((_a = data.collection) === null || _a === void 0 ? void 0 : _a.logoUrl),
|
|
79
|
-
id: data.tokenId,
|
|
80
|
-
contractHash: data.contract.hash,
|
|
81
|
-
symbol: data.contract.symbol,
|
|
82
|
-
collectionName: (_b = data.collection) === null || _b === void 0 ? void 0 : _b.name,
|
|
83
|
-
image: this.treatGhostMarketImage(data.metadata.mediaUri),
|
|
84
|
-
isSVG: String(data.metadata.mediaType).includes('svg+xml'),
|
|
85
|
-
name: data.metadata.name,
|
|
86
|
-
creator: {
|
|
87
|
-
address: data.creator.address,
|
|
88
|
-
name: data.creator.offchainName,
|
|
89
|
-
},
|
|
90
|
-
};
|
|
91
|
-
return nftResponse;
|
|
92
|
-
}
|
|
93
61
|
}
|
|
94
62
|
exports.GhostMarketNDSNeo3 = GhostMarketNDSNeo3;
|
|
95
|
-
|
|
63
|
+
_GhostMarketNDSNeo3_network = new WeakMap(), _GhostMarketNDSNeo3_instances = new WeakSet(), _GhostMarketNDSNeo3_treatGhostMarketImage = function _GhostMarketNDSNeo3_treatGhostMarketImage(srcImage) {
|
|
64
|
+
if (!srcImage) {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (srcImage.startsWith('ipfs://')) {
|
|
68
|
+
const [, imageId] = srcImage.split('://');
|
|
69
|
+
return `https://ghostmarket.mypinata.cloud/ipfs/${imageId}`;
|
|
70
|
+
}
|
|
71
|
+
return srcImage;
|
|
72
|
+
}, _GhostMarketNDSNeo3_getUrlWithParams = function _GhostMarketNDSNeo3_getUrlWithParams(params) {
|
|
73
|
+
const config = GhostMarketNDSNeo3.CONFIG_BY_NETWORK_ID[__classPrivateFieldGet(this, _GhostMarketNDSNeo3_network, "f").id];
|
|
74
|
+
if (!config)
|
|
75
|
+
throw new Error('Unsupported network');
|
|
76
|
+
const parameters = query_string_1.default.stringify(Object.assign({ chain: config.chain }, params), { arrayFormat: 'bracket' });
|
|
77
|
+
return `${config.url}/assets?${parameters}`;
|
|
78
|
+
}, _GhostMarketNDSNeo3_parse = function _GhostMarketNDSNeo3_parse(data) {
|
|
79
|
+
var _a, _b;
|
|
80
|
+
const nftResponse = {
|
|
81
|
+
collectionImage: __classPrivateFieldGet(this, _GhostMarketNDSNeo3_instances, "m", _GhostMarketNDSNeo3_treatGhostMarketImage).call(this, (_a = data.collection) === null || _a === void 0 ? void 0 : _a.logoUrl),
|
|
82
|
+
id: data.tokenId,
|
|
83
|
+
contractHash: data.contract.hash,
|
|
84
|
+
symbol: data.contract.symbol,
|
|
85
|
+
collectionName: (_b = data.collection) === null || _b === void 0 ? void 0 : _b.name,
|
|
86
|
+
image: __classPrivateFieldGet(this, _GhostMarketNDSNeo3_instances, "m", _GhostMarketNDSNeo3_treatGhostMarketImage).call(this, data.metadata.mediaUri),
|
|
87
|
+
isSVG: String(data.metadata.mediaType).includes('svg+xml'),
|
|
88
|
+
name: data.metadata.name,
|
|
89
|
+
creator: {
|
|
90
|
+
address: data.creator.address,
|
|
91
|
+
name: data.creator.offchainName,
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
return nftResponse;
|
|
95
|
+
};
|
|
96
|
+
GhostMarketNDSNeo3.CONFIG_BY_NETWORK_ID = {
|
|
97
|
+
mainnet: {
|
|
98
|
+
url: 'https://api.ghostmarket.io/api/v2',
|
|
99
|
+
chain: 'n3',
|
|
100
|
+
},
|
|
101
|
+
testnet: {
|
|
102
|
+
url: 'https://api.ghostmarket.io/api/v2',
|
|
103
|
+
chain: 'n3t',
|
|
104
|
+
},
|
|
105
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Account, LedgerService, LedgerServiceEmitter } from '@cityofzion/blockchain-service';
|
|
2
2
|
import Transport from '@ledgerhq/hw-transport';
|
|
3
3
|
import { api } from '@cityofzion/neon-js';
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class NeonDappKitLedgerServiceNeo3 implements LedgerService {
|
|
5
5
|
getLedgerTransport?: ((account: Account) => Promise<Transport>) | undefined;
|
|
6
6
|
emitter: LedgerServiceEmitter;
|
|
7
7
|
constructor(getLedgerTransport?: ((account: Account) => Promise<Transport>) | undefined);
|
|
@@ -12,11 +12,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.
|
|
15
|
+
exports.NeonDappKitLedgerServiceNeo3 = void 0;
|
|
16
16
|
const neon_js_1 = require("@cityofzion/neon-js");
|
|
17
17
|
const neon_dappkit_1 = require("@cityofzion/neon-dappkit");
|
|
18
18
|
const events_1 = __importDefault(require("events"));
|
|
19
|
-
class
|
|
19
|
+
class NeonDappKitLedgerServiceNeo3 {
|
|
20
20
|
constructor(getLedgerTransport) {
|
|
21
21
|
this.getLedgerTransport = getLedgerTransport;
|
|
22
22
|
this.emitter = new events_1.default();
|
|
@@ -107,4 +107,4 @@ class LedgerServiceNeo3 {
|
|
|
107
107
|
return integers.join('');
|
|
108
108
|
}
|
|
109
109
|
}
|
|
110
|
-
exports.
|
|
110
|
+
exports.NeonDappKitLedgerServiceNeo3 = NeonDappKitLedgerServiceNeo3;
|
package/dist/RpcBDSNeo3.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { BDSClaimable, BalanceResponse, BlockchainDataService, ContractResponse, Network, RpcResponse, Token, TransactionResponse, TransactionsByAddressParams, TransactionsByAddressResponse } from '@cityofzion/blockchain-service';
|
|
2
|
-
import { AvailableNetworkIds } from './
|
|
2
|
+
import { AvailableNetworkIds } from './BSNeo3Helper';
|
|
3
3
|
export declare class RPCBDSNeo3 implements BlockchainDataService, BDSClaimable {
|
|
4
4
|
readonly _tokenCache: Map<string, Token>;
|
|
5
5
|
readonly _feeToken: Token;
|
|
6
6
|
readonly _claimToken: Token;
|
|
7
7
|
readonly _network: Network<AvailableNetworkIds>;
|
|
8
|
+
readonly _tokens: Token[];
|
|
8
9
|
maxTimeToConfirmTransactionInMs: number;
|
|
9
|
-
constructor(network: Network<AvailableNetworkIds>, feeToken: Token, claimToken: Token);
|
|
10
|
+
constructor(network: Network<AvailableNetworkIds>, feeToken: Token, claimToken: Token, tokens: Token[]);
|
|
10
11
|
getTransaction(hash: string): Promise<TransactionResponse>;
|
|
11
12
|
getTransactionsByAddress(_params: TransactionsByAddressParams): Promise<TransactionsByAddressResponse>;
|
|
12
13
|
getContract(contractHash: string): Promise<ContractResponse>;
|
package/dist/RpcBDSNeo3.js
CHANGED
|
@@ -12,14 +12,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.RPCBDSNeo3 = void 0;
|
|
13
13
|
const neon_core_1 = require("@cityofzion/neon-core");
|
|
14
14
|
const neon_dappkit_1 = require("@cityofzion/neon-dappkit");
|
|
15
|
-
const
|
|
15
|
+
const BSNeo3Helper_1 = require("./BSNeo3Helper");
|
|
16
16
|
class RPCBDSNeo3 {
|
|
17
|
-
constructor(network, feeToken, claimToken) {
|
|
17
|
+
constructor(network, feeToken, claimToken, tokens) {
|
|
18
18
|
this._tokenCache = new Map();
|
|
19
|
+
this._tokens = [];
|
|
19
20
|
this.maxTimeToConfirmTransactionInMs = 1000 * 60 * 2;
|
|
20
21
|
this._network = network;
|
|
21
22
|
this._feeToken = feeToken;
|
|
22
23
|
this._claimToken = claimToken;
|
|
24
|
+
this._tokens = tokens;
|
|
23
25
|
}
|
|
24
26
|
getTransaction(hash) {
|
|
25
27
|
var _a, _b;
|
|
@@ -73,7 +75,7 @@ class RPCBDSNeo3 {
|
|
|
73
75
|
}
|
|
74
76
|
getTokenInfo(tokenHash) {
|
|
75
77
|
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
-
const localToken =
|
|
78
|
+
const localToken = this._tokens.find(token => token.hash === tokenHash);
|
|
77
79
|
if (localToken)
|
|
78
80
|
return localToken;
|
|
79
81
|
if (this._tokenCache.has(tokenHash)) {
|
|
@@ -158,7 +160,8 @@ class RPCBDSNeo3 {
|
|
|
158
160
|
getRpcList() {
|
|
159
161
|
return __awaiter(this, void 0, void 0, function* () {
|
|
160
162
|
const list = [];
|
|
161
|
-
const
|
|
163
|
+
const urls = BSNeo3Helper_1.BSNeo3Helper.getRpcList(this._network);
|
|
164
|
+
const promises = urls.map(url => {
|
|
162
165
|
// eslint-disable-next-line no-async-promise-executor
|
|
163
166
|
return new Promise((resolve) => __awaiter(this, void 0, void 0, function* () {
|
|
164
167
|
const timeout = setTimeout(() => {
|
package/dist/RpcNDSNeo3.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { GetNftParam, GetNftsByAddressParams, HasTokenParam, Network, NftDataService, NftResponse, NftsResponse } from '@cityofzion/blockchain-service';
|
|
2
|
+
import { AvailableNetworkIds } from './BSNeo3Helper';
|
|
2
3
|
export declare abstract class RpcNDSNeo3 implements NftDataService {
|
|
3
4
|
#private;
|
|
4
|
-
protected constructor(network: Network);
|
|
5
|
+
protected constructor(network: Network<AvailableNetworkIds>);
|
|
5
6
|
abstract getNftsByAddress(params: GetNftsByAddressParams): Promise<NftsResponse>;
|
|
6
7
|
abstract getNft(params: GetNftParam): Promise<NftResponse>;
|
|
7
8
|
hasToken({ contractHash, address }: HasTokenParam): Promise<boolean>;
|