@my-packages-changeit/abstract-extractor 3.2.3
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/CHANGELOG.md +225 -0
- package/README.md +24 -0
- package/dist/abstractExtractor.d.ts +59 -0
- package/dist/abstractExtractor.d.ts.map +1 -0
- package/dist/abstractExtractor.js +22 -0
- package/dist/constants.d.ts +4 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +4 -0
- package/dist/ergo/database/actions/abstractErgoAction.d.ts +91 -0
- package/dist/ergo/database/actions/abstractErgoAction.d.ts.map +1 -0
- package/dist/ergo/database/actions/abstractErgoAction.js +180 -0
- package/dist/ergo/database/actions/abstractErgoBoxAction.d.ts +31 -0
- package/dist/ergo/database/actions/abstractErgoBoxAction.d.ts.map +1 -0
- package/dist/ergo/database/actions/abstractErgoBoxAction.js +70 -0
- package/dist/ergo/database/entities/abstractErgoBoxEntity.d.ts +18 -0
- package/dist/ergo/database/entities/abstractErgoBoxEntity.d.ts.map +1 -0
- package/dist/ergo/database/entities/abstractErgoBoxEntity.js +36 -0
- package/dist/ergo/database/entities/abstractErgoEntity.d.ts +26 -0
- package/dist/ergo/database/entities/abstractErgoEntity.d.ts.map +1 -0
- package/dist/ergo/database/entities/abstractErgoEntity.js +64 -0
- package/dist/ergo/database/index.d.ts +5 -0
- package/dist/ergo/database/index.d.ts.map +1 -0
- package/dist/ergo/database/index.js +5 -0
- package/dist/ergo/extractors/abstractErgoBoxExtractor.d.ts +67 -0
- package/dist/ergo/extractors/abstractErgoBoxExtractor.d.ts.map +1 -0
- package/dist/ergo/extractors/abstractErgoBoxExtractor.js +106 -0
- package/dist/ergo/extractors/abstractErgoExtractor.d.ts +61 -0
- package/dist/ergo/extractors/abstractErgoExtractor.d.ts.map +1 -0
- package/dist/ergo/extractors/abstractErgoExtractor.js +99 -0
- package/dist/ergo/extractors/abstractErgoTxExtractor.d.ts +54 -0
- package/dist/ergo/extractors/abstractErgoTxExtractor.d.ts.map +1 -0
- package/dist/ergo/extractors/abstractErgoTxExtractor.js +76 -0
- package/dist/ergo/extractors/index.d.ts +4 -0
- package/dist/ergo/extractors/index.d.ts.map +1 -0
- package/dist/ergo/extractors/index.js +4 -0
- package/dist/ergo/index.d.ts +8 -0
- package/dist/ergo/index.d.ts.map +1 -0
- package/dist/ergo/index.js +8 -0
- package/dist/ergo/initializers/constants.d.ts +4 -0
- package/dist/ergo/initializers/constants.d.ts.map +1 -0
- package/dist/ergo/initializers/constants.js +4 -0
- package/dist/ergo/initializers/ergoBoxInitializer.d.ts +36 -0
- package/dist/ergo/initializers/ergoBoxInitializer.d.ts.map +1 -0
- package/dist/ergo/initializers/ergoBoxInitializer.js +84 -0
- package/dist/ergo/initializers/ergoInitializer.d.ts +39 -0
- package/dist/ergo/initializers/ergoInitializer.d.ts.map +1 -0
- package/dist/ergo/initializers/ergoInitializer.js +80 -0
- package/dist/ergo/initializers/index.d.ts +4 -0
- package/dist/ergo/initializers/index.d.ts.map +1 -0
- package/dist/ergo/initializers/index.js +4 -0
- package/dist/ergo/initializers/strategies/explorerInitializationStrategy.d.ts +59 -0
- package/dist/ergo/initializers/strategies/explorerInitializationStrategy.d.ts.map +1 -0
- package/dist/ergo/initializers/strategies/explorerInitializationStrategy.js +161 -0
- package/dist/ergo/initializers/strategies/index.d.ts +4 -0
- package/dist/ergo/initializers/strategies/index.d.ts.map +1 -0
- package/dist/ergo/initializers/strategies/index.js +4 -0
- package/dist/ergo/initializers/strategies/nodeInitializationStrategy.d.ts +30 -0
- package/dist/ergo/initializers/strategies/nodeInitializationStrategy.d.ts.map +1 -0
- package/dist/ergo/initializers/strategies/nodeInitializationStrategy.js +78 -0
- package/dist/ergo/initializers/strategies/workerManager.d.ts +79 -0
- package/dist/ergo/initializers/strategies/workerManager.d.ts.map +1 -0
- package/dist/ergo/initializers/strategies/workerManager.js +182 -0
- package/dist/ergo/interfaces.d.ts +63 -0
- package/dist/ergo/interfaces.d.ts.map +1 -0
- package/dist/ergo/interfaces.js +8 -0
- package/dist/ergo/networks/explorerNetwork.d.ts +52 -0
- package/dist/ergo/networks/explorerNetwork.d.ts.map +1 -0
- package/dist/ergo/networks/explorerNetwork.js +132 -0
- package/dist/ergo/networks/index.d.ts +3 -0
- package/dist/ergo/networks/index.d.ts.map +1 -0
- package/dist/ergo/networks/index.js +3 -0
- package/dist/ergo/networks/nodeNetwork.d.ts +34 -0
- package/dist/ergo/networks/nodeNetwork.d.ts.map +1 -0
- package/dist/ergo/networks/nodeNetwork.js +77 -0
- package/dist/ergo/utils.d.ts +23 -0
- package/dist/ergo/utils.d.ts.map +1 -0
- package/dist/ergo/utils.js +49 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { mapValues, pick } from 'lodash-es';
|
|
2
|
+
import ergoExplorerClientFactory from '@rosen-clients/ergo-explorer';
|
|
3
|
+
import { API_LIMIT } from '../../constants';
|
|
4
|
+
export class ExplorerNetwork {
|
|
5
|
+
api;
|
|
6
|
+
constructor(url) {
|
|
7
|
+
this.api = ergoExplorerClientFactory(url);
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* convert explorer api output boxes to OutputBox interface
|
|
11
|
+
* @param box
|
|
12
|
+
* @returns OutputBox
|
|
13
|
+
*/
|
|
14
|
+
convertOutputBox = (box) => {
|
|
15
|
+
return {
|
|
16
|
+
boxId: box.boxId,
|
|
17
|
+
creationHeight: box.creationHeight,
|
|
18
|
+
ergoTree: box.ergoTree,
|
|
19
|
+
index: box.index,
|
|
20
|
+
transactionId: box.transactionId,
|
|
21
|
+
value: box.value,
|
|
22
|
+
additionalRegisters: mapValues(box.additionalRegisters, 'serializedValue'),
|
|
23
|
+
assets: box.assets?.map((asset) => pick(asset, ['tokenId', 'amount'])) ?? [],
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* convert explorer api input boxes to OutputBox interface
|
|
28
|
+
* @param box
|
|
29
|
+
* @returns OutputBox
|
|
30
|
+
*/
|
|
31
|
+
convertInputBox = (box) => {
|
|
32
|
+
return {
|
|
33
|
+
boxId: box.boxId,
|
|
34
|
+
creationHeight: box.outputCreatedAt,
|
|
35
|
+
ergoTree: box.ergoTree,
|
|
36
|
+
index: box.outputIndex,
|
|
37
|
+
transactionId: box.outputTransactionId,
|
|
38
|
+
value: box.value,
|
|
39
|
+
additionalRegisters: mapValues(box.additionalRegisters, 'serializedValue'),
|
|
40
|
+
spendingProof: box.spendingProof,
|
|
41
|
+
extension: {},
|
|
42
|
+
assets: box.assets?.map((asset) => pick(asset, ['tokenId', 'amount'])) ?? [],
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* convert explorer transaction to extractor transaction type
|
|
47
|
+
* @param tx
|
|
48
|
+
*/
|
|
49
|
+
convertTransaction = (tx) => {
|
|
50
|
+
return {
|
|
51
|
+
id: tx.id,
|
|
52
|
+
inclusionHeight: tx.inclusionHeight,
|
|
53
|
+
blockId: tx.blockId,
|
|
54
|
+
dataInputs: tx.dataInputs?.map((dataInput) => ({
|
|
55
|
+
boxId: dataInput.boxId,
|
|
56
|
+
})) ?? [],
|
|
57
|
+
// TODO: Add input extension to explorer local/ergo/rosen-bridge/scanner/-/issues/156
|
|
58
|
+
inputs: tx.inputs?.map((input) => this.convertInputBox(input)) ?? [],
|
|
59
|
+
outputs: tx.outputs?.map((output) => this.convertOutputBox(output)) ?? [],
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* convert explorer block transaction to transaction type
|
|
64
|
+
* @param tx
|
|
65
|
+
*/
|
|
66
|
+
convertBlockTransaction = (tx) => {
|
|
67
|
+
return {
|
|
68
|
+
id: tx.id,
|
|
69
|
+
dataInputs: tx.dataInputs?.map((dataInput) => ({
|
|
70
|
+
boxId: dataInput.id,
|
|
71
|
+
})) ?? [],
|
|
72
|
+
// TODO: Add input extension local/ergo/rosen-bridge/scanner/-/issues/156
|
|
73
|
+
inputs: tx.inputs?.map((input) => ({
|
|
74
|
+
boxId: input.id,
|
|
75
|
+
spendingProof: input.spendingProof,
|
|
76
|
+
})) ?? [],
|
|
77
|
+
outputs: tx.outputs?.map((output) => ({
|
|
78
|
+
boxId: output.id,
|
|
79
|
+
transactionId: output.txId,
|
|
80
|
+
additionalRegisters: output.additionalRegisters,
|
|
81
|
+
assets: output.assets?.map((asset) => pick(asset, ['tokenId', 'amount'])) ??
|
|
82
|
+
[],
|
|
83
|
+
ergoTree: output.ergoTree,
|
|
84
|
+
creationHeight: output.creationHeight,
|
|
85
|
+
index: output.index,
|
|
86
|
+
value: output.value,
|
|
87
|
+
})) ?? [],
|
|
88
|
+
};
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* use explorer api to return related transactions of the specified address in the height range
|
|
92
|
+
* @param tokenId
|
|
93
|
+
* @param offset
|
|
94
|
+
* @param limit
|
|
95
|
+
* @returns related transactions
|
|
96
|
+
*/
|
|
97
|
+
getAddressTransactionsWithHeight = async (address, fromHeight, toHeight, limit = API_LIMIT) => {
|
|
98
|
+
const txs = await this.api.v1.getApiV1AddressesP1Transactions(address, {
|
|
99
|
+
fromHeight,
|
|
100
|
+
toHeight,
|
|
101
|
+
limit: limit,
|
|
102
|
+
});
|
|
103
|
+
if (!txs.items)
|
|
104
|
+
throw new Error('Explorer AddressTransactions api expected to have items');
|
|
105
|
+
return {
|
|
106
|
+
items: txs.items.map((tx) => this.convertTransaction(tx)),
|
|
107
|
+
total: txs.total,
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* use explorer api to get the block id at the specified height
|
|
112
|
+
* @param height
|
|
113
|
+
* @returns block id
|
|
114
|
+
*/
|
|
115
|
+
getBlockIdAtHeight = async (height) => {
|
|
116
|
+
const id = await this.api.v0.getApiV0BlocksAtP1(height);
|
|
117
|
+
return id[0];
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* use explorer api to return all transactions in a block
|
|
121
|
+
* @param blockId
|
|
122
|
+
* @returns converted transactions
|
|
123
|
+
*/
|
|
124
|
+
getBlockTxs = async (blockId) => {
|
|
125
|
+
const block = await this.api.v1.getApiV1BlocksP1(blockId);
|
|
126
|
+
if (!block.block.blockTransactions) {
|
|
127
|
+
throw new Error(`Expected explorer block api to include block transactions for block ${blockId}`);
|
|
128
|
+
}
|
|
129
|
+
return block.block.blockTransactions.map((tx) => this.convertBlockTransaction(tx));
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwbG9yZXJOZXR3b3JrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2VyZ28vbmV0d29ya3MvZXhwbG9yZXJOZXR3b3JrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBTzVDLE9BQU8seUJBQXlCLE1BQU0sOEJBQThCLENBQUM7QUFHckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRzVDLE1BQU0sT0FBTyxlQUFlO0lBQ2xCLEdBQUcsQ0FBQztJQUVaLFlBQVksR0FBVztRQUNyQixJQUFJLENBQUMsR0FBRyxHQUFHLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ssZ0JBQWdCLEdBQUcsQ0FBQyxHQUFrQixFQUFhLEVBQUU7UUFDM0QsT0FBTztZQUNMLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztZQUNoQixjQUFjLEVBQUUsR0FBRyxDQUFDLGNBQWM7WUFDbEMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRO1lBQ3RCLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSztZQUNoQixhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWE7WUFDaEMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLO1lBQ2hCLG1CQUFtQixFQUFFLFNBQVMsQ0FDNUIsR0FBRyxDQUFDLG1CQUFtQixFQUN2QixpQkFBaUIsQ0FDbEI7WUFDRCxNQUFNLEVBQ0osR0FBRyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUU7U0FDdkUsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSyxlQUFlLEdBQUcsQ0FBQyxHQUFpQixFQUF3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QUcsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNuQyxNQUFNLElBQUksS0FBSyxDQUNiLHVFQUF1RSxPQUFPLEVBQUUsQ0FDakYsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FDOUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxDQUNqQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXBWYWx1ZXMsIHBpY2sgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQge1xuICBJbnB1dEJveCxcbiAgT3V0cHV0Qm94LFxuICBUcmFuc2FjdGlvbixcbn0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuaW1wb3J0IGVyZ29FeHBsb3JlckNsaWVudEZhY3RvcnkgZnJvbSAnQHJvc2VuLWNsaWVudHMvZXJnby1leHBsb3Jlcic7XG5pbXBvcnQgeyBWMSB9IGZyb20gJ0Byb3Nlbi1jbGllbnRzL2VyZ28tZXhwbG9yZXInO1xuXG5pbXBvcnQgeyBBUElfTElNSVQgfSBmcm9tICcuLi8uLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgRXh0ZW5kZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgY2xhc3MgRXhwbG9yZXJOZXR3b3JrIHtcbiAgcHJpdmF0ZSBhcGk7XG5cbiAgY29uc3RydWN0b3IodXJsOiBzdHJpbmcpIHtcbiAgICB0aGlzLmFwaSA9IGVyZ29FeHBsb3JlckNsaWVudEZhY3RvcnkodXJsKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjb252ZXJ0IGV4cGxvcmVyIGFwaSBvdXRwdXQgYm94ZXMgdG8gT3V0cHV0Qm94IGludGVyZmFjZVxuICAgKiBAcGFyYW0gYm94XG4gICAqIEByZXR1cm5zIE91dHB1dEJveFxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0T3V0cHV0Qm94ID0gKGJveDogVjEuT3V0cHV0SW5mbyk6IE91dHB1dEJveCA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGJveElkOiBib3guYm94SWQsXG4gICAgICBjcmVhdGlvbkhlaWdodDogYm94LmNyZWF0aW9uSGVpZ2h0LFxuICAgICAgZXJnb1RyZWU6IGJveC5lcmdvVHJlZSxcbiAgICAgIGluZGV4OiBib3guaW5kZXgsXG4gICAgICB0cmFuc2FjdGlvbklkOiBib3gudHJhbnNhY3Rpb25JZCxcbiAgICAgIHZhbHVlOiBib3gudmFsdWUsXG4gICAgICBhZGRpdGlvbmFsUmVnaXN0ZXJzOiBtYXBWYWx1ZXMoXG4gICAgICAgIGJveC5hZGRpdGlvbmFsUmVnaXN0ZXJzLFxuICAgICAgICAnc2VyaWFsaXplZFZhbHVlJyxcbiAgICAgICksXG4gICAgICBhc3NldHM6XG4gICAgICAgIGJveC5hc3NldHM/Lm1hcCgoYXNzZXQpID0+IHBpY2soYXNzZXQsIFsndG9rZW5JZCcsICdhbW91bnQnXSkpID8/IFtdLFxuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIGNvbnZlcnQgZXhwbG9yZXIgYXBpIGlucHV0IGJveGVzIHRvIE91dHB1dEJveCBpbnRlcmZhY2VcbiAgICogQHBhcmFtIGJveFxuICAgKiBAcmV0dXJucyBPdXRwdXRCb3hcbiAgICovXG4gIHByaXZhdGUgY29udmVydElucHV0Qm94ID0gKGJveDogVjEuSW5wdXRJbmZvKTogT3V0cHV0Qm94ICYgSW5wdXRCb3ggPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBib3hJZDogYm94LmJveElkLFxuICAgICAgY3JlYXRpb25IZWlnaHQ6IGJveC5vdXRwdXRDcmVhdGVkQXQsXG4gICAgICBlcmdvVHJlZTogYm94LmVyZ29UcmVlLFxuICAgICAgaW5kZXg6IGJveC5vdXRwdXRJbmRleCxcbiAgICAgIHRyYW5zYWN0aW9uSWQ6IGJveC5vdXRwdXRUcmFuc2FjdGlvbklkLFxuICAgICAgdmFsdWU6IGJveC52YWx1ZSxcbiAgICAgIGFkZGl0aW9uYWxSZWdpc3RlcnM6IG1hcFZhbHVlcyhcbiAgICAgICAgYm94LmFkZGl0aW9uYWxSZWdpc3RlcnMsXG4gICAgICAgICdzZXJpYWxpemVkVmFsdWUnLFxuICAgICAgKSxcbiAgICAgIHNwZW5kaW5nUHJvb2Y6IGJveC5zcGVuZGluZ1Byb29mLFxuICAgICAgZXh0ZW5zaW9uOiB7fSxcbiAgICAgIGFzc2V0czpcbiAgICAgICAgYm94LmFzc2V0cz8ubWFwKChhc3NldCkgPT4gcGljayhhc3NldCwgWyd0b2tlbklkJywgJ2Ftb3VudCddKSkgPz8gW10sXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogY29udmVydCBleHBsb3JlciB0cmFuc2FjdGlvbiB0byBleHRyYWN0b3IgdHJhbnNhY3Rpb24gdHlwZVxuICAgKiBAcGFyYW0gdHhcbiAgICovXG4gIHByaXZhdGUgY29udmVydFRyYW5zYWN0aW9uID0gKFxuICAgIHR4OiBWMS5UcmFuc2FjdGlvbkluZm8sXG4gICk6IEV4dGVuZGVkVHJhbnNhY3Rpb24gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdHguaWQsXG4gICAgICBpbmNsdXNpb25IZWlnaHQ6IHR4LmluY2x1c2lvbkhlaWdodCxcbiAgICAgIGJsb2NrSWQ6IHR4LmJsb2NrSWQsXG4gICAgICBkYXRhSW5wdXRzOlxuICAgICAgICB0eC5kYXRhSW5wdXRzPy5tYXAoKGRhdGFJbnB1dCkgPT4gKHtcbiAgICAgICAgICBib3hJZDogZGF0YUlucHV0LmJveElkLFxuICAgICAgICB9KSkgPz8gW10sXG4gICAgICAvLyBUT0RPOiBBZGQgaW5wdXQgZXh0ZW5zaW9uIHRvIGV4cGxvcmVyIGxvY2FsL2VyZ28vcm9zZW4tYnJpZGdlL3NjYW5uZXIvLS9pc3N1ZXMvMTU2XG4gICAgICBpbnB1dHM6IHR4LmlucHV0cz8ubWFwKChpbnB1dCkgPT4gdGhpcy5jb252ZXJ0SW5wdXRCb3goaW5wdXQpKSA/PyBbXSxcbiAgICAgIG91dHB1dHM6IHR4Lm91dHB1dHM/Lm1hcCgob3V0cHV0KSA9PiB0aGlzLmNvbnZlcnRPdXRwdXRCb3gob3V0cHV0KSkgPz8gW10sXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogY29udmVydCBleHBsb3JlciBibG9jayB0cmFuc2FjdGlvbiB0byB0cmFuc2FjdGlvbiB0eXBlXG4gICAqIEBwYXJhbSB0eFxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0QmxvY2tUcmFuc2FjdGlvbiA9ICh0eDogVjEuVHJhbnNhY3Rpb25JbmZvMSk6IFRyYW5zYWN0aW9uID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IHR4LmlkLFxuICAgICAgZGF0YUlucHV0czpcbiAgICAgICAgdHguZGF0YUlucHV0cz8ubWFwKChkYXRhSW5wdXQpID0+ICh7XG4gICAgICAgICAgYm94SWQ6IGRhdGFJbnB1dC5pZCxcbiAgICAgICAgfSkpID8/IFtdLFxuICAgICAgLy8gVE9ETzogQWRkIGlucHV0IGV4dGVuc2lvbiBsb2NhbC9lcmdvL3Jvc2VuLWJyaWRnZS9zY2FubmVyLy0vaXNzdWVzLzE1NlxuICAgICAgaW5wdXRzOlxuICAgICAgICB0eC5pbnB1dHM/Lm1hcCgoaW5wdXQpID0+ICh7XG4gICAgICAgICAgYm94SWQ6IGlucHV0LmlkLFxuICAgICAgICAgIHNwZW5kaW5nUHJvb2Y6IGlucHV0LnNwZW5kaW5nUHJvb2YsXG4gICAgICAgIH0pKSA/PyBbXSxcbiAgICAgIG91dHB1dHM6XG4gICAgICAgIHR4Lm91dHB1dHM/Lm1hcCgob3V0cHV0KSA9PiAoe1xuICAgICAgICAgIGJveElkOiBvdXRwdXQuaWQsXG4gICAgICAgICAgdHJhbnNhY3Rpb25JZDogb3V0cHV0LnR4SWQsXG4gICAgICAgICAgYWRkaXRpb25hbFJlZ2lzdGVyczogb3V0cHV0LmFkZGl0aW9uYWxSZWdpc3RlcnMsXG4gICAgICAgICAgYXNzZXRzOlxuICAgICAgICAgICAgb3V0cHV0LmFzc2V0cz8ubWFwKChhc3NldCkgPT4gcGljayhhc3NldCwgWyd0b2tlbklkJywgJ2Ftb3VudCddKSkgPz9cbiAgICAgICAgICAgIFtdLFxuICAgICAgICAgIGVyZ29UcmVlOiBvdXRwdXQuZXJnb1RyZWUsXG4gICAgICAgICAgY3JlYXRpb25IZWlnaHQ6IG91dHB1dC5jcmVhdGlvbkhlaWdodCxcbiAgICAgICAgICBpbmRleDogb3V0cHV0LmluZGV4LFxuICAgICAgICAgIHZhbHVlOiBvdXRwdXQudmFsdWUsXG4gICAgICAgIH0pKSA/PyBbXSxcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiB1c2UgZXhwbG9yZXIgYXBpIHRvIHJldHVybiByZWxhdGVkIHRyYW5zYWN0aW9ucyBvZiB0aGUgc3BlY2lmaWVkIGFkZHJlc3MgaW4gdGhlIGhlaWdodCByYW5nZVxuICAgKiBAcGFyYW0gdG9rZW5JZFxuICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAqIEBwYXJhbSBsaW1pdFxuICAgKiBAcmV0dXJucyByZWxhdGVkIHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgZ2V0QWRkcmVzc1RyYW5zYWN0aW9uc1dpdGhIZWlnaHQgPSBhc3luYyAoXG4gICAgYWRkcmVzczogc3RyaW5nLFxuICAgIGZyb21IZWlnaHQ6IG51bWJlcixcbiAgICB0b0hlaWdodDogbnVtYmVyLFxuICAgIGxpbWl0ID0gQVBJX0xJTUlULFxuICApOiBQcm9taXNlPHsgaXRlbXM6IEFycmF5PEV4dGVuZGVkVHJhbnNhY3Rpb24+OyB0b3RhbDogbnVtYmVyIH0+ID0+IHtcbiAgICBjb25zdCB0eHMgPSBhd2FpdCB0aGlzLmFwaS52MS5nZXRBcGlWMUFkZHJlc3Nlc1AxVHJhbnNhY3Rpb25zKGFkZHJlc3MsIHtcbiAgICAgIGZyb21IZWlnaHQsXG4gICAgICB0b0hlaWdodCxcbiAgICAgIGxpbWl0OiBsaW1pdCxcbiAgICB9KTtcbiAgICBpZiAoIXR4cy5pdGVtcylcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0V4cGxvcmVyIEFkZHJlc3NUcmFuc2FjdGlvbnMgYXBpIGV4cGVjdGVkIHRvIGhhdmUgaXRlbXMnLFxuICAgICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXM6IHR4cy5pdGVtcy5tYXAoKHR4KSA9PiB0aGlzLmNvbnZlcnRUcmFuc2FjdGlvbih0eCkpLFxuICAgICAgdG90YWw6IHR4cy50b3RhbCxcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiB1c2UgZXhwbG9yZXIgYXBpIHRvIGdldCB0aGUgYmxvY2sgaWQgYXQgdGhlIHNwZWNpZmllZCBoZWlnaHRcbiAgICogQHBhcmFtIGhlaWdodFxuICAgKiBAcmV0dXJucyBibG9jayBpZFxuICAgKi9cbiAgZ2V0QmxvY2tJZEF0SGVpZ2h0ID0gYXN5bmMgKGhlaWdodDogbnVtYmVyKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgICBjb25zdCBpZCA9IGF3YWl0IHRoaXMuYXBpLnYwLmdldEFwaVYwQmxvY2tzQXRQMShoZWlnaHQpO1xuICAgIHJldHVybiBpZFswXTtcbiAgfTtcblxuICAvKipcbiAgICogdXNlIGV4cGxvcmVyIGFwaSB0byByZXR1cm4gYWxsIHRyYW5zYWN0aW9ucyBpbiBhIGJsb2NrXG4gICAqIEBwYXJhbSBibG9ja0lkXG4gICAqIEByZXR1cm5zIGNvbnZlcnRlZCB0cmFuc2FjdGlvbnNcbiAgICovXG4gIGdldEJsb2NrVHhzID0gYXN5bmMgKGJsb2NrSWQ6IHN0cmluZyk6IFByb21pc2U8QXJyYXk8VHJhbnNhY3Rpb24+PiA9PiB7XG4gICAgY29uc3QgYmxvY2sgPSBhd2FpdCB0aGlzLmFwaS52MS5nZXRBcGlWMUJsb2Nrc1AxKGJsb2NrSWQpO1xuICAgIGlmICghYmxvY2suYmxvY2suYmxvY2tUcmFuc2FjdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEV4cGVjdGVkIGV4cGxvcmVyIGJsb2NrIGFwaSB0byBpbmNsdWRlIGJsb2NrIHRyYW5zYWN0aW9ucyBmb3IgYmxvY2sgJHtibG9ja0lkfWAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gYmxvY2suYmxvY2suYmxvY2tUcmFuc2FjdGlvbnMubWFwKCh0eCkgPT5cbiAgICAgIHRoaXMuY29udmVydEJsb2NrVHJhbnNhY3Rpb24odHgpLFxuICAgICk7XG4gIH07XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../lib/ergo/networks/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './explorerNetwork';
|
|
2
|
+
export * from './nodeNetwork';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZXJnby9uZXR3b3Jrcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsZUFBZSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9leHBsb3Jlck5ldHdvcmsnO1xuZXhwb3J0ICogZnJvbSAnLi9ub2RlTmV0d29yayc7XG4iXX0=
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { ExtendedTransaction } from '../interfaces';
|
|
2
|
+
export declare class NodeNetwork {
|
|
3
|
+
private api;
|
|
4
|
+
constructor(url: string);
|
|
5
|
+
/**
|
|
6
|
+
* convert node api input boxes to OutputBox interface
|
|
7
|
+
* @param box
|
|
8
|
+
* @returns ErgoBox
|
|
9
|
+
*/
|
|
10
|
+
private convertInputBox;
|
|
11
|
+
/**
|
|
12
|
+
* convert node api output boxes to OutputBox interface
|
|
13
|
+
* @param box
|
|
14
|
+
* @returns ErgoBox
|
|
15
|
+
*/
|
|
16
|
+
private convertOutputBox;
|
|
17
|
+
/**
|
|
18
|
+
* convert Node transaction to extractor transaction type
|
|
19
|
+
* @param tx
|
|
20
|
+
*/
|
|
21
|
+
private convertTransaction;
|
|
22
|
+
/**
|
|
23
|
+
* use node api to return related transactions of the specified address with limit offset
|
|
24
|
+
* @param address
|
|
25
|
+
* @param offset
|
|
26
|
+
* @param limit
|
|
27
|
+
* @returns related transactions
|
|
28
|
+
*/
|
|
29
|
+
getAddressTransactionsWithOffsetLimit: (address: string, offset: number, limit: number) => Promise<{
|
|
30
|
+
items: Array<ExtendedTransaction>;
|
|
31
|
+
total: number;
|
|
32
|
+
}>;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=nodeNetwork.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodeNetwork.d.ts","sourceRoot":"","sources":["../../../lib/ergo/networks/nodeNetwork.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,qBAAa,WAAW;IACtB,OAAO,CAAC,GAAG,CAAC;gBAEA,GAAG,EAAE,MAAM;IAIvB;;;;OAIG;IACH,OAAO,CAAC,eAAe,CAarB;IAEF;;;;OAIG;IACH,OAAO,CAAC,gBAAgB,CAWtB;IAEF;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAWxB;IAEF;;;;;;OAMG;IACH,qCAAqC,GACnC,SAAS,MAAM,EACf,QAAQ,MAAM,EACd,OAAO,MAAM,KACZ,OAAO,CAAC;QAAE,KAAK,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAa9D;CACH"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import ergoNodeClientFactory from '@rosen-clients/ergo-node';
|
|
2
|
+
export class NodeNetwork {
|
|
3
|
+
api;
|
|
4
|
+
constructor(url) {
|
|
5
|
+
this.api = ergoNodeClientFactory(url);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* convert node api input boxes to OutputBox interface
|
|
9
|
+
* @param box
|
|
10
|
+
* @returns ErgoBox
|
|
11
|
+
*/
|
|
12
|
+
convertInputBox = (box) => {
|
|
13
|
+
return {
|
|
14
|
+
transactionId: box.transactionId || '',
|
|
15
|
+
index: box.index || 0,
|
|
16
|
+
value: box.value || 0n,
|
|
17
|
+
ergoTree: box.ergoTree || '',
|
|
18
|
+
creationHeight: box.creationHeight || 0,
|
|
19
|
+
assets: box.assets || [],
|
|
20
|
+
additionalRegisters: box.additionalRegisters,
|
|
21
|
+
boxId: box.boxId || '',
|
|
22
|
+
extension: box.spendingProof?.extension,
|
|
23
|
+
spendingProof: box.spendingProof?.proofBytes,
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* convert node api output boxes to OutputBox interface
|
|
28
|
+
* @param box
|
|
29
|
+
* @returns ErgoBox
|
|
30
|
+
*/
|
|
31
|
+
convertOutputBox = (box) => {
|
|
32
|
+
return {
|
|
33
|
+
transactionId: box.transactionId || '',
|
|
34
|
+
index: box.index || 0,
|
|
35
|
+
value: box.value || 0n,
|
|
36
|
+
ergoTree: box.ergoTree || '',
|
|
37
|
+
creationHeight: box.creationHeight || 0,
|
|
38
|
+
assets: box.assets || [],
|
|
39
|
+
additionalRegisters: box.additionalRegisters,
|
|
40
|
+
boxId: box.boxId || '',
|
|
41
|
+
};
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* convert Node transaction to extractor transaction type
|
|
45
|
+
* @param tx
|
|
46
|
+
*/
|
|
47
|
+
convertTransaction = (tx) => {
|
|
48
|
+
return {
|
|
49
|
+
id: tx.id || '',
|
|
50
|
+
inclusionHeight: tx.inclusionHeight,
|
|
51
|
+
blockId: tx.blockId,
|
|
52
|
+
outputs: tx.outputs.map((output) => this.convertOutputBox(output)),
|
|
53
|
+
inputs: tx.inputs.map((input) => this.convertInputBox(input)),
|
|
54
|
+
dataInputs: tx.dataInputs,
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* use node api to return related transactions of the specified address with limit offset
|
|
59
|
+
* @param address
|
|
60
|
+
* @param offset
|
|
61
|
+
* @param limit
|
|
62
|
+
* @returns related transactions
|
|
63
|
+
*/
|
|
64
|
+
getAddressTransactionsWithOffsetLimit = async (address, offset, limit) => {
|
|
65
|
+
const txs = await this.api.getTxsByAddress(address, {
|
|
66
|
+
offset,
|
|
67
|
+
limit,
|
|
68
|
+
});
|
|
69
|
+
if (!txs.items)
|
|
70
|
+
throw new Error('Explorer AddressTransactions api expected to have items');
|
|
71
|
+
return {
|
|
72
|
+
items: txs.items.map((tx) => this.convertTransaction(tx)),
|
|
73
|
+
total: txs.total,
|
|
74
|
+
};
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9kZU5ldHdvcmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvZXJnby9uZXR3b3Jrcy9ub2RlTmV0d29yay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLHFCQUdOLE1BQU0sMEJBQTBCLENBQUM7QUFJbEMsTUFBTSxPQUFPLFdBQVc7SUFDZCxHQUFHLENBQUM7SUFFWixZQUFZLEdBQVc7UUFDckIsSUFBSSxDQUFDLEdBQUcsR0FBRyxxQkFBcUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNLLGVBQWUsR0FBRyxDQUFDLEdBQW1CLEVBQXdCLEVBQUU7UUFDdEUsT0FBTztZQUNMLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYSxJQUFJLEVBQUU7WUFDdEMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksQ0FBQztZQUNyQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQ3RCLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUU7WUFDNUIsY0FBYyxFQUFFLEdBQUcsQ0FBQyxjQUFjLElBQUksQ0FBQztZQUN2QyxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sSUFBSSxFQUFFO1lBQ3hCLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxtQkFBbUI7WUFDNUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtZQUN0QixTQUFTLEVBQUUsR0FBRyxDQUFDLGFBQWEsRUFBRSxTQUFTO1lBQ3ZDLGFBQWEsRUFBRSxHQUFHLENBQUMsYUFBYSxFQUFFLFVBQVU7U0FDN0MsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7O09BSUc7SUFDSyxnQkFBZ0IsR0FBRyxDQUFDLEdBQW1CLEVBQWEsRUFBRTtRQUM1RCxPQUFPO1lBQ0wsYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhLElBQUksRUFBRTtZQUN0QyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxDQUFDO1lBQ3JCLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdEIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxRQUFRLElBQUksRUFBRTtZQUM1QixjQUFjLEVBQUUsR0FBRyxDQUFDLGNBQWMsSUFBSSxDQUFDO1lBQ3ZDLE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUU7WUFDeEIsbUJBQW1CLEVBQUUsR0FBRyxDQUFDLG1CQUFtQjtZQUM1QyxLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFO1NBQ3ZCLENBQUM7SUFDSixDQUFDLENBQUM7SUFFRjs7O09BR0c7SUFDSyxrQkFBa0IsR0FBRyxDQUMzQixFQUEwQixFQUNMLEVBQUU7UUFDdkIsT0FBTztZQUNMLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUU7WUFDZixlQUFlLEVBQUUsRUFBRSxDQUFDLGVBQWU7WUFDbkMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxPQUFPO1lBQ25CLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUM3RCxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVU7U0FDMUIsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGOzs7Ozs7T0FNRztJQUNILHFDQUFxQyxHQUFHLEtBQUssRUFDM0MsT0FBZSxFQUNmLE1BQWMsRUFDZCxLQUFhLEVBQ2tELEVBQUU7UUFDakUsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUU7WUFDbEQsTUFBTTtZQUNOLEtBQUs7U0FDTixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUs7WUFDWixNQUFNLElBQUksS0FBSyxDQUNiLHlEQUF5RCxDQUMxRCxDQUFDO1FBQ0osT0FBTztZQUNMLEtBQUssRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3pELEtBQUssRUFBRSxHQUFHLENBQUMsS0FBTTtTQUNsQixDQUFDO0lBQ0osQ0FBQyxDQUFDO0NBQ0giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbnB1dEJveCwgT3V0cHV0Qm94IH0gZnJvbSAnQHJvc2VuLWJyaWRnZS9zY2FubmVyLWludGVyZmFjZXMnO1xuaW1wb3J0IGVyZ29Ob2RlQ2xpZW50RmFjdG9yeSwge1xuICBJbmRleGVkRXJnb0JveCxcbiAgSW5kZXhlZEVyZ29UcmFuc2FjdGlvbixcbn0gZnJvbSAnQHJvc2VuLWNsaWVudHMvZXJnby1ub2RlJztcblxuaW1wb3J0IHsgRXh0ZW5kZWRUcmFuc2FjdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMnO1xuXG5leHBvcnQgY2xhc3MgTm9kZU5ldHdvcmsge1xuICBwcml2YXRlIGFwaTtcblxuICBjb25zdHJ1Y3Rvcih1cmw6IHN0cmluZykge1xuICAgIHRoaXMuYXBpID0gZXJnb05vZGVDbGllbnRGYWN0b3J5KHVybCk7XG4gIH1cblxuICAvKipcbiAgICogY29udmVydCBub2RlIGFwaSBpbnB1dCBib3hlcyB0byBPdXRwdXRCb3ggaW50ZXJmYWNlXG4gICAqIEBwYXJhbSBib3hcbiAgICogQHJldHVybnMgRXJnb0JveFxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0SW5wdXRCb3ggPSAoYm94OiBJbmRleGVkRXJnb0JveCk6IE91dHB1dEJveCAmIElucHV0Qm94ID0+IHtcbiAgICByZXR1cm4ge1xuICAgICAgdHJhbnNhY3Rpb25JZDogYm94LnRyYW5zYWN0aW9uSWQgfHwgJycsXG4gICAgICBpbmRleDogYm94LmluZGV4IHx8IDAsXG4gICAgICB2YWx1ZTogYm94LnZhbHVlIHx8IDBuLFxuICAgICAgZXJnb1RyZWU6IGJveC5lcmdvVHJlZSB8fCAnJyxcbiAgICAgIGNyZWF0aW9uSGVpZ2h0OiBib3guY3JlYXRpb25IZWlnaHQgfHwgMCxcbiAgICAgIGFzc2V0czogYm94LmFzc2V0cyB8fCBbXSxcbiAgICAgIGFkZGl0aW9uYWxSZWdpc3RlcnM6IGJveC5hZGRpdGlvbmFsUmVnaXN0ZXJzLFxuICAgICAgYm94SWQ6IGJveC5ib3hJZCB8fCAnJyxcbiAgICAgIGV4dGVuc2lvbjogYm94LnNwZW5kaW5nUHJvb2Y/LmV4dGVuc2lvbixcbiAgICAgIHNwZW5kaW5nUHJvb2Y6IGJveC5zcGVuZGluZ1Byb29mPy5wcm9vZkJ5dGVzLFxuICAgIH07XG4gIH07XG5cbiAgLyoqXG4gICAqIGNvbnZlcnQgbm9kZSBhcGkgb3V0cHV0IGJveGVzIHRvIE91dHB1dEJveCBpbnRlcmZhY2VcbiAgICogQHBhcmFtIGJveFxuICAgKiBAcmV0dXJucyBFcmdvQm94XG4gICAqL1xuICBwcml2YXRlIGNvbnZlcnRPdXRwdXRCb3ggPSAoYm94OiBJbmRleGVkRXJnb0JveCk6IE91dHB1dEJveCA9PiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRyYW5zYWN0aW9uSWQ6IGJveC50cmFuc2FjdGlvbklkIHx8ICcnLFxuICAgICAgaW5kZXg6IGJveC5pbmRleCB8fCAwLFxuICAgICAgdmFsdWU6IGJveC52YWx1ZSB8fCAwbixcbiAgICAgIGVyZ29UcmVlOiBib3guZXJnb1RyZWUgfHwgJycsXG4gICAgICBjcmVhdGlvbkhlaWdodDogYm94LmNyZWF0aW9uSGVpZ2h0IHx8IDAsXG4gICAgICBhc3NldHM6IGJveC5hc3NldHMgfHwgW10sXG4gICAgICBhZGRpdGlvbmFsUmVnaXN0ZXJzOiBib3guYWRkaXRpb25hbFJlZ2lzdGVycyxcbiAgICAgIGJveElkOiBib3guYm94SWQgfHwgJycsXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogY29udmVydCBOb2RlIHRyYW5zYWN0aW9uIHRvIGV4dHJhY3RvciB0cmFuc2FjdGlvbiB0eXBlXG4gICAqIEBwYXJhbSB0eFxuICAgKi9cbiAgcHJpdmF0ZSBjb252ZXJ0VHJhbnNhY3Rpb24gPSAoXG4gICAgdHg6IEluZGV4ZWRFcmdvVHJhbnNhY3Rpb24sXG4gICk6IEV4dGVuZGVkVHJhbnNhY3Rpb24gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBpZDogdHguaWQgfHwgJycsXG4gICAgICBpbmNsdXNpb25IZWlnaHQ6IHR4LmluY2x1c2lvbkhlaWdodCxcbiAgICAgIGJsb2NrSWQ6IHR4LmJsb2NrSWQsXG4gICAgICBvdXRwdXRzOiB0eC5vdXRwdXRzLm1hcCgob3V0cHV0KSA9PiB0aGlzLmNvbnZlcnRPdXRwdXRCb3gob3V0cHV0KSksXG4gICAgICBpbnB1dHM6IHR4LmlucHV0cy5tYXAoKGlucHV0KSA9PiB0aGlzLmNvbnZlcnRJbnB1dEJveChpbnB1dCkpLFxuICAgICAgZGF0YUlucHV0czogdHguZGF0YUlucHV0cyxcbiAgICB9O1xuICB9O1xuXG4gIC8qKlxuICAgKiB1c2Ugbm9kZSBhcGkgdG8gcmV0dXJuIHJlbGF0ZWQgdHJhbnNhY3Rpb25zIG9mIHRoZSBzcGVjaWZpZWQgYWRkcmVzcyB3aXRoIGxpbWl0IG9mZnNldFxuICAgKiBAcGFyYW0gYWRkcmVzc1xuICAgKiBAcGFyYW0gb2Zmc2V0XG4gICAqIEBwYXJhbSBsaW1pdFxuICAgKiBAcmV0dXJucyByZWxhdGVkIHRyYW5zYWN0aW9uc1xuICAgKi9cbiAgZ2V0QWRkcmVzc1RyYW5zYWN0aW9uc1dpdGhPZmZzZXRMaW1pdCA9IGFzeW5jIChcbiAgICBhZGRyZXNzOiBzdHJpbmcsXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgbGltaXQ6IG51bWJlcixcbiAgKTogUHJvbWlzZTx7IGl0ZW1zOiBBcnJheTxFeHRlbmRlZFRyYW5zYWN0aW9uPjsgdG90YWw6IG51bWJlciB9PiA9PiB7XG4gICAgY29uc3QgdHhzID0gYXdhaXQgdGhpcy5hcGkuZ2V0VHhzQnlBZGRyZXNzKGFkZHJlc3MsIHtcbiAgICAgIG9mZnNldCxcbiAgICAgIGxpbWl0LFxuICAgIH0pO1xuICAgIGlmICghdHhzLml0ZW1zKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnRXhwbG9yZXIgQWRkcmVzc1RyYW5zYWN0aW9ucyBhcGkgZXhwZWN0ZWQgdG8gaGF2ZSBpdGVtcycsXG4gICAgICApO1xuICAgIHJldHVybiB7XG4gICAgICBpdGVtczogdHhzLml0ZW1zLm1hcCgodHgpID0+IHRoaXMuY29udmVydFRyYW5zYWN0aW9uKHR4KSksXG4gICAgICB0b3RhbDogdHhzLnRvdGFsISxcbiAgICB9O1xuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AbstractLogger } from '@rosen-bridge/abstract-logger';
|
|
2
|
+
import { OutputBox } from '@rosen-bridge/scanner-interfaces';
|
|
3
|
+
/**
|
|
4
|
+
* Check box to have specified tokens
|
|
5
|
+
* @param box
|
|
6
|
+
* @return true if box has the required token and false otherwise
|
|
7
|
+
*/
|
|
8
|
+
export declare const boxHasToken: (box: OutputBox, tokenIds: string[]) => boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Create delay in procedures based on the specified time in milliseconds
|
|
11
|
+
* @param time
|
|
12
|
+
*/
|
|
13
|
+
export declare const delay: (time: number) => Promise<unknown>;
|
|
14
|
+
/**
|
|
15
|
+
* Retry the request in case of failure
|
|
16
|
+
* Throw error if request fails after RETRIAL_COUNT retrials
|
|
17
|
+
* Wait for 1 second between each trial
|
|
18
|
+
* @param request
|
|
19
|
+
* @param logger
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
export declare const requestWithRetrial: <returnT>(request: () => Promise<returnT>, logger?: AbstractLogger) => Promise<returnT>;
|
|
23
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/ergo/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAe,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAI7D;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,KAAK,SAAS,EAAE,UAAU,MAAM,EAAE,YAM7D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAU,MAAM,MAAM,qBACa,CAAC;AAEtD;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,GAAU,OAAO,EAC9C,SAAS,MAAM,OAAO,CAAC,OAAO,CAAC,EAC/B,SAAQ,cAAkC,KACzC,OAAO,CAAC,OAAO,CAkBjB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { intersection } from 'lodash-es';
|
|
2
|
+
import { DummyLogger } from '@rosen-bridge/abstract-logger';
|
|
3
|
+
import { RETRIAL_COUNT } from '../constants';
|
|
4
|
+
/**
|
|
5
|
+
* Check box to have specified tokens
|
|
6
|
+
* @param box
|
|
7
|
+
* @return true if box has the required token and false otherwise
|
|
8
|
+
*/
|
|
9
|
+
export const boxHasToken = (box, tokenIds) => {
|
|
10
|
+
if (!box.assets)
|
|
11
|
+
return false;
|
|
12
|
+
const boxTokens = box.assets.map((token) => token.tokenId);
|
|
13
|
+
const requiredTokens = intersection(tokenIds, boxTokens);
|
|
14
|
+
if (requiredTokens.length == tokenIds.length)
|
|
15
|
+
return true;
|
|
16
|
+
return false;
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Create delay in procedures based on the specified time in milliseconds
|
|
20
|
+
* @param time
|
|
21
|
+
*/
|
|
22
|
+
export const delay = async (time) => new Promise((resolve) => setTimeout(resolve, time));
|
|
23
|
+
/**
|
|
24
|
+
* Retry the request in case of failure
|
|
25
|
+
* Throw error if request fails after RETRIAL_COUNT retrials
|
|
26
|
+
* Wait for 1 second between each trial
|
|
27
|
+
* @param request
|
|
28
|
+
* @param logger
|
|
29
|
+
* @returns
|
|
30
|
+
*/
|
|
31
|
+
export const requestWithRetrial = async (request, logger = new DummyLogger()) => {
|
|
32
|
+
let trial = 0;
|
|
33
|
+
let lastErrorMessage;
|
|
34
|
+
while (trial < RETRIAL_COUNT) {
|
|
35
|
+
try {
|
|
36
|
+
const result = await request();
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
catch (e) {
|
|
40
|
+
lastErrorMessage = e instanceof Error ? e.message : String(e);
|
|
41
|
+
trial++;
|
|
42
|
+
logger.warn(`request failed with error ${lastErrorMessage}`);
|
|
43
|
+
logger.debug(`Retrying the request with retrial step ${trial}`);
|
|
44
|
+
await delay(1000);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
throw new Error(`request failed after ${trial} retrials with error: ${lastErrorMessage}`);
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9saWIvZXJnby91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpDLE9BQU8sRUFBRSxXQUFXLEVBQWtCLE1BQU0sK0JBQStCLENBQUM7QUFHNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3Qzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBYyxFQUFFLFFBQWtCLEVBQUUsRUFBRTtJQUNoRSxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU07UUFBRSxPQUFPLEtBQUssQ0FBQztJQUM5QixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNELE1BQU0sY0FBYyxHQUFHLFlBQVksQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDekQsSUFBSSxjQUFjLENBQUMsTUFBTSxJQUFJLFFBQVEsQ0FBQyxNQUFNO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDMUQsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUM7QUFFRjs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsS0FBSyxFQUFFLElBQVksRUFBRSxFQUFFLENBQzFDLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7QUFFdEQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLEtBQUssRUFDckMsT0FBK0IsRUFDL0IsU0FBeUIsSUFBSSxXQUFXLEVBQUUsRUFDeEIsRUFBRTtJQUNwQixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7SUFDZCxJQUFJLGdCQUFvQyxDQUFDO0lBQ3pDLE9BQU8sS0FBSyxHQUFHLGFBQWEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sT0FBTyxFQUFFLENBQUM7WUFDL0IsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztRQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDWCxnQkFBZ0IsR0FBRyxDQUFDLFlBQVksS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUQsS0FBSyxFQUFFLENBQUM7WUFDUixNQUFNLENBQUMsSUFBSSxDQUFDLDZCQUE2QixnQkFBZ0IsRUFBRSxDQUFDLENBQUM7WUFDN0QsTUFBTSxDQUFDLEtBQUssQ0FBQywwQ0FBMEMsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNoRSxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQixDQUFDO0lBQ0gsQ0FBQztJQUNELE1BQU0sSUFBSSxLQUFLLENBQ2Isd0JBQXdCLEtBQUsseUJBQXlCLGdCQUFnQixFQUFFLENBQ3pFLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbnRlcnNlY3Rpb24gfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG5pbXBvcnQgeyBEdW1teUxvZ2dlciwgQWJzdHJhY3RMb2dnZXIgfSBmcm9tICdAcm9zZW4tYnJpZGdlL2Fic3RyYWN0LWxvZ2dlcic7XG5pbXBvcnQgeyBPdXRwdXRCb3ggfSBmcm9tICdAcm9zZW4tYnJpZGdlL3NjYW5uZXItaW50ZXJmYWNlcyc7XG5cbmltcG9ydCB7IFJFVFJJQUxfQ09VTlQgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG4vKipcbiAqIENoZWNrIGJveCB0byBoYXZlIHNwZWNpZmllZCB0b2tlbnNcbiAqIEBwYXJhbSBib3hcbiAqIEByZXR1cm4gdHJ1ZSBpZiBib3ggaGFzIHRoZSByZXF1aXJlZCB0b2tlbiBhbmQgZmFsc2Ugb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBjb25zdCBib3hIYXNUb2tlbiA9IChib3g6IE91dHB1dEJveCwgdG9rZW5JZHM6IHN0cmluZ1tdKSA9PiB7XG4gIGlmICghYm94LmFzc2V0cykgcmV0dXJuIGZhbHNlO1xuICBjb25zdCBib3hUb2tlbnMgPSBib3guYXNzZXRzLm1hcCgodG9rZW4pID0+IHRva2VuLnRva2VuSWQpO1xuICBjb25zdCByZXF1aXJlZFRva2VucyA9IGludGVyc2VjdGlvbih0b2tlbklkcywgYm94VG9rZW5zKTtcbiAgaWYgKHJlcXVpcmVkVG9rZW5zLmxlbmd0aCA9PSB0b2tlbklkcy5sZW5ndGgpIHJldHVybiB0cnVlO1xuICByZXR1cm4gZmFsc2U7XG59O1xuXG4vKipcbiAqIENyZWF0ZSBkZWxheSBpbiBwcm9jZWR1cmVzIGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgdGltZSBpbiBtaWxsaXNlY29uZHNcbiAqIEBwYXJhbSB0aW1lXG4gKi9cbmV4cG9ydCBjb25zdCBkZWxheSA9IGFzeW5jICh0aW1lOiBudW1iZXIpID0+XG4gIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIHRpbWUpKTtcblxuLyoqXG4gKiBSZXRyeSB0aGUgcmVxdWVzdCBpbiBjYXNlIG9mIGZhaWx1cmVcbiAqIFRocm93IGVycm9yIGlmIHJlcXVlc3QgZmFpbHMgYWZ0ZXIgUkVUUklBTF9DT1VOVCByZXRyaWFsc1xuICogV2FpdCBmb3IgMSBzZWNvbmQgYmV0d2VlbiBlYWNoIHRyaWFsXG4gKiBAcGFyYW0gcmVxdWVzdFxuICogQHBhcmFtIGxvZ2dlclxuICogQHJldHVybnNcbiAqL1xuZXhwb3J0IGNvbnN0IHJlcXVlc3RXaXRoUmV0cmlhbCA9IGFzeW5jIDxyZXR1cm5UPihcbiAgcmVxdWVzdDogKCkgPT4gUHJvbWlzZTxyZXR1cm5UPixcbiAgbG9nZ2VyOiBBYnN0cmFjdExvZ2dlciA9IG5ldyBEdW1teUxvZ2dlcigpLFxuKTogUHJvbWlzZTxyZXR1cm5UPiA9PiB7XG4gIGxldCB0cmlhbCA9IDA7XG4gIGxldCBsYXN0RXJyb3JNZXNzYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHdoaWxlICh0cmlhbCA8IFJFVFJJQUxfQ09VTlQpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVxdWVzdCgpO1xuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBsYXN0RXJyb3JNZXNzYWdlID0gZSBpbnN0YW5jZW9mIEVycm9yID8gZS5tZXNzYWdlIDogU3RyaW5nKGUpO1xuICAgICAgdHJpYWwrKztcbiAgICAgIGxvZ2dlci53YXJuKGByZXF1ZXN0IGZhaWxlZCB3aXRoIGVycm9yICR7bGFzdEVycm9yTWVzc2FnZX1gKTtcbiAgICAgIGxvZ2dlci5kZWJ1ZyhgUmV0cnlpbmcgdGhlIHJlcXVlc3Qgd2l0aCByZXRyaWFsIHN0ZXAgJHt0cmlhbH1gKTtcbiAgICAgIGF3YWl0IGRlbGF5KDEwMDApO1xuICAgIH1cbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgYHJlcXVlc3QgZmFpbGVkIGFmdGVyICR7dHJpYWx9IHJldHJpYWxzIHdpdGggZXJyb3I6ICR7bGFzdEVycm9yTWVzc2FnZX1gLFxuICApO1xufTtcbiJdfQ==
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,qBAAqB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './ergo';
|
|
2
|
+
export * from './constants';
|
|
3
|
+
export * from './abstractExtractor';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9saWIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxRQUFRLENBQUM7QUFDdkIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXJnbyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cyc7XG5leHBvcnQgKiBmcm9tICcuL2Fic3RyYWN0RXh0cmFjdG9yJztcbiJdfQ==
|