@super-protocol/sdk-js 3.1.1-beta.0 → 3.1.2-beta.0
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/cjs/constants.d.ts +1 -1
- package/dist/cjs/constants.js +19 -19
- package/dist/cjs/contracts/abi.d.ts +603 -428
- package/dist/cjs/contracts/abi.js +863 -637
- package/dist/cjs/contracts/tokenAbi.d.ts +361 -0
- package/dist/cjs/contracts/tokenAbi.js +469 -0
- package/dist/cjs/models/Order.d.ts +1 -1
- package/dist/cjs/models/Order.js +5 -6
- package/dist/cjs/models/Provider.d.ts +0 -1
- package/dist/cjs/models/Provider.js +1 -7
- package/dist/cjs/models/TCB.d.ts +1 -1
- package/dist/cjs/models/TCB.js +8 -3
- package/dist/cjs/staticModels/Deposits.d.ts +15 -1
- package/dist/cjs/staticModels/Deposits.js +48 -4
- package/dist/cjs/staticModels/Orders.d.ts +1 -0
- package/dist/cjs/staticModels/Orders.js +15 -1
- package/dist/cjs/staticModels/ProviderRewards.d.ts +3 -2
- package/dist/cjs/staticModels/ProviderRewards.js +27 -7
- package/dist/cjs/staticModels/SuperproToken.d.ts +38 -0
- package/dist/cjs/staticModels/SuperproToken.js +151 -3
- package/dist/cjs/types/Consensus.d.ts +10 -3
- package/dist/cjs/types/Consensus.js +1 -1
- package/dist/cjs/types/OrderUsage.d.ts +1 -0
- package/dist/cjs/types/ProviderRewards.d.ts +5 -0
- package/dist/cjs/types/ProviderRewards.js +3 -0
- package/dist/cjs/types/index.d.ts +1 -0
- package/dist/cjs/types/index.js +2 -1
- package/dist/cjs/utils/helper.d.ts +2 -1
- package/dist/cjs/utils/helper.js +13 -2
- package/dist/cjs/utils/helpers/OrderArgsHelper.d.ts +2 -1
- package/dist/cjs/utils/helpers/OrderArgsHelper.js +25 -1
- package/dist/cjs/utils/helpers/index.d.ts +0 -1
- package/dist/cjs/utils/helpers/index.js +1 -2
- package/dist/mjs/constants.d.ts +1 -1
- package/dist/mjs/constants.js +19 -19
- package/dist/mjs/contracts/abi.d.ts +603 -428
- package/dist/mjs/contracts/abi.js +861 -635
- package/dist/mjs/contracts/tokenAbi.d.ts +361 -0
- package/dist/mjs/contracts/tokenAbi.js +466 -0
- package/dist/mjs/models/Order.d.ts +1 -1
- package/dist/mjs/models/Order.js +5 -6
- package/dist/mjs/models/Provider.d.ts +0 -1
- package/dist/mjs/models/Provider.js +1 -7
- package/dist/mjs/models/TCB.d.ts +1 -1
- package/dist/mjs/models/TCB.js +8 -3
- package/dist/mjs/staticModels/Deposits.d.ts +15 -1
- package/dist/mjs/staticModels/Deposits.js +48 -4
- package/dist/mjs/staticModels/Orders.d.ts +1 -0
- package/dist/mjs/staticModels/Orders.js +15 -1
- package/dist/mjs/staticModels/ProviderRewards.d.ts +3 -2
- package/dist/mjs/staticModels/ProviderRewards.js +28 -8
- package/dist/mjs/staticModels/SuperproToken.d.ts +38 -0
- package/dist/mjs/staticModels/SuperproToken.js +150 -2
- package/dist/mjs/types/Consensus.d.ts +10 -3
- package/dist/mjs/types/Consensus.js +1 -1
- package/dist/mjs/types/OrderUsage.d.ts +1 -0
- package/dist/mjs/types/ProviderRewards.d.ts +5 -0
- package/dist/mjs/types/ProviderRewards.js +2 -0
- package/dist/mjs/types/index.d.ts +1 -0
- package/dist/mjs/types/index.js +2 -1
- package/dist/mjs/utils/helper.d.ts +2 -1
- package/dist/mjs/utils/helper.js +11 -1
- package/dist/mjs/utils/helpers/OrderArgsHelper.d.ts +2 -1
- package/dist/mjs/utils/helpers/OrderArgsHelper.js +25 -1
- package/dist/mjs/utils/helpers/index.d.ts +0 -1
- package/dist/mjs/utils/helpers/index.js +1 -2
- package/package.json +1 -3
- package/dist/cjs/utils/helpers/calculateObjectHash.d.ts +0 -8
- package/dist/cjs/utils/helpers/calculateObjectHash.js +0 -25
- package/dist/mjs/utils/helpers/calculateObjectHash.d.ts +0 -8
- package/dist/mjs/utils/helpers/calculateObjectHash.js +0 -18
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import rootLogger from '../logger.js';
|
|
2
|
-
import { abi } from '../contracts/
|
|
2
|
+
import { abi } from '../contracts/tokenAbi.js';
|
|
3
3
|
import store from '../store.js';
|
|
4
4
|
import { checkIfActionAccountInitialized, cleanWeb3Data, convertBigIntToString, } from '../utils/helper.js';
|
|
5
5
|
import TxManager from '../utils/TxManager.js';
|
|
@@ -48,6 +48,20 @@ class SuperproToken {
|
|
|
48
48
|
this.checkInit();
|
|
49
49
|
return convertBigIntToString(await this.contractHttps.methods.allowance(from, to).call());
|
|
50
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* Fetching true if the address is whitelisted
|
|
53
|
+
*/
|
|
54
|
+
static async isWhitelisted(address) {
|
|
55
|
+
this.checkInit();
|
|
56
|
+
return convertBigIntToString(await this.contractHttps.methods.whitelist(address).call());
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Fetching true if the whitelist is activated
|
|
60
|
+
*/
|
|
61
|
+
static async isWhitelistActivated() {
|
|
62
|
+
this.checkInit();
|
|
63
|
+
return convertBigIntToString(await this.contractHttps.methods.whitelistIsActivated().call());
|
|
64
|
+
}
|
|
51
65
|
/**
|
|
52
66
|
* Transfers specific amount of SP tokens to specific address
|
|
53
67
|
* @param to - address to revive tokens
|
|
@@ -77,6 +91,56 @@ class SuperproToken {
|
|
|
77
91
|
}
|
|
78
92
|
await TxManager.execute(contract.methods.approve(address, amount), transactionOptions, SuperproToken.addressHttps);
|
|
79
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* Adds an address to the whitelist.
|
|
96
|
+
* @param address - address
|
|
97
|
+
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
98
|
+
*/
|
|
99
|
+
static async addWhitelistAddress(address, transactionOptions, checkTxBeforeSend = false) {
|
|
100
|
+
const contract = this.checkInit();
|
|
101
|
+
checkIfActionAccountInitialized(transactionOptions);
|
|
102
|
+
if (checkTxBeforeSend) {
|
|
103
|
+
await TxManager.dryRun(contract.methods.addWhitelistAddress(address), transactionOptions);
|
|
104
|
+
}
|
|
105
|
+
await TxManager.execute(contract.methods.addWhitelistAddress(address), transactionOptions, SuperproToken.addressHttps);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Removes an address from the whitelist.
|
|
109
|
+
* @param address - address
|
|
110
|
+
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
111
|
+
*/
|
|
112
|
+
static async removeWhitelistAddress(address, transactionOptions, checkTxBeforeSend = false) {
|
|
113
|
+
const contract = this.checkInit();
|
|
114
|
+
checkIfActionAccountInitialized(transactionOptions);
|
|
115
|
+
if (checkTxBeforeSend) {
|
|
116
|
+
await TxManager.dryRun(contract.methods.removeWhitelistAddress(address), transactionOptions);
|
|
117
|
+
}
|
|
118
|
+
await TxManager.execute(contract.methods.removeWhitelistAddress(address), transactionOptions, SuperproToken.addressHttps);
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* Activates the whitelist.
|
|
122
|
+
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
123
|
+
*/
|
|
124
|
+
static async activateWhitelist(transactionOptions, checkTxBeforeSend = false) {
|
|
125
|
+
const contract = this.checkInit();
|
|
126
|
+
checkIfActionAccountInitialized(transactionOptions);
|
|
127
|
+
if (checkTxBeforeSend) {
|
|
128
|
+
await TxManager.dryRun(contract.methods.activateWhitelist(), transactionOptions);
|
|
129
|
+
}
|
|
130
|
+
await TxManager.execute(contract.methods.activateWhitelist(), transactionOptions, SuperproToken.addressHttps);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Deactivates the whitelist.
|
|
134
|
+
* @param transactionOptions - object what contains alternative action account or gas limit (optional)
|
|
135
|
+
*/
|
|
136
|
+
static async deactivateWhitelist(transactionOptions, checkTxBeforeSend = false) {
|
|
137
|
+
const contract = this.checkInit();
|
|
138
|
+
checkIfActionAccountInitialized(transactionOptions);
|
|
139
|
+
if (checkTxBeforeSend) {
|
|
140
|
+
await TxManager.dryRun(contract.methods.deactivateWhitelist(), transactionOptions);
|
|
141
|
+
}
|
|
142
|
+
await TxManager.execute(contract.methods.deactivateWhitelist(), transactionOptions, SuperproToken.addressHttps);
|
|
143
|
+
}
|
|
80
144
|
static onTokenApprove(callback, owner, spender) {
|
|
81
145
|
const listener = BlockchainEventsListener.getInstance();
|
|
82
146
|
const logger = this.logger.child({ method: 'onTokenApprove' });
|
|
@@ -129,6 +193,90 @@ class SuperproToken {
|
|
|
129
193
|
contract: listener.getTokenContract(),
|
|
130
194
|
});
|
|
131
195
|
}
|
|
196
|
+
static onAddressAddedToWhitelist(callback, address) {
|
|
197
|
+
const listener = BlockchainEventsListener.getInstance();
|
|
198
|
+
const logger = this.logger.child({ method: 'onAddressAddedToWhitelist' });
|
|
199
|
+
const onData = (event) => {
|
|
200
|
+
const parsedEvent = cleanWeb3Data(event.returnValues);
|
|
201
|
+
if (address && parsedEvent.address != address) {
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
callback(parsedEvent.address, {
|
|
205
|
+
index: Number(event.blockNumber),
|
|
206
|
+
hash: event.blockHash,
|
|
207
|
+
});
|
|
208
|
+
};
|
|
209
|
+
const onError = (error) => {
|
|
210
|
+
logger.warn(error);
|
|
211
|
+
};
|
|
212
|
+
return listener.subscribeEvent({
|
|
213
|
+
onError,
|
|
214
|
+
onData,
|
|
215
|
+
event: 'AddressAddedToWhitelist',
|
|
216
|
+
contract: listener.getTokenContract(),
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
static onAddressRemovedFromWhitelist(callback, address) {
|
|
220
|
+
const listener = BlockchainEventsListener.getInstance();
|
|
221
|
+
const logger = this.logger.child({ method: 'onAddressRemovedFromWhitelist' });
|
|
222
|
+
const onData = (event) => {
|
|
223
|
+
const parsedEvent = cleanWeb3Data(event.returnValues);
|
|
224
|
+
if (address && parsedEvent.address != address) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
callback(parsedEvent.address, {
|
|
228
|
+
index: Number(event.blockNumber),
|
|
229
|
+
hash: event.blockHash,
|
|
230
|
+
});
|
|
231
|
+
};
|
|
232
|
+
const onError = (error) => {
|
|
233
|
+
logger.warn(error);
|
|
234
|
+
};
|
|
235
|
+
return listener.subscribeEvent({
|
|
236
|
+
onError,
|
|
237
|
+
onData,
|
|
238
|
+
event: 'AddressRemovedFromWhitelist',
|
|
239
|
+
contract: listener.getTokenContract(),
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
static onWhitelistActivated(callback) {
|
|
243
|
+
const listener = BlockchainEventsListener.getInstance();
|
|
244
|
+
const logger = this.logger.child({ method: 'onWhitelistActivated' });
|
|
245
|
+
const onData = (event) => {
|
|
246
|
+
callback({
|
|
247
|
+
index: Number(event.blockNumber),
|
|
248
|
+
hash: event.blockHash,
|
|
249
|
+
});
|
|
250
|
+
};
|
|
251
|
+
const onError = (error) => {
|
|
252
|
+
logger.warn(error);
|
|
253
|
+
};
|
|
254
|
+
return listener.subscribeEvent({
|
|
255
|
+
onError,
|
|
256
|
+
onData,
|
|
257
|
+
event: 'WhitelistActivated',
|
|
258
|
+
contract: listener.getTokenContract(),
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
static onWhitelistDeactivated(callback) {
|
|
262
|
+
const listener = BlockchainEventsListener.getInstance();
|
|
263
|
+
const logger = this.logger.child({ method: 'onWhitelistDeactivated' });
|
|
264
|
+
const onData = (event) => {
|
|
265
|
+
callback({
|
|
266
|
+
index: Number(event.blockNumber),
|
|
267
|
+
hash: event.blockHash,
|
|
268
|
+
});
|
|
269
|
+
};
|
|
270
|
+
const onError = (error) => {
|
|
271
|
+
logger.warn(error);
|
|
272
|
+
};
|
|
273
|
+
return listener.subscribeEvent({
|
|
274
|
+
onError,
|
|
275
|
+
onData,
|
|
276
|
+
event: 'WhitelistDeactivated',
|
|
277
|
+
contract: listener.getTokenContract(),
|
|
278
|
+
});
|
|
279
|
+
}
|
|
132
280
|
}
|
|
133
281
|
export default SuperproToken;
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VwZXJwcm9Ub2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGF0aWNNb2RlbHMvU3VwZXJwcm9Ub2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFVBQVUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNoQyxPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGFBQWEsRUFDYixxQkFBcUIsR0FDdEIsTUFBTSxvQkFBb0IsQ0FBQztBQUc1QixPQUFPLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU1sRSxNQUFNLGFBQWE7SUFDVCxNQUFNLENBQUMsYUFBYSxDQUFTO0lBQzdCLE1BQU0sQ0FBQyxXQUFXLENBQVM7SUFDM0IsTUFBTSxDQUFDLGFBQWEsQ0FBd0I7SUFDNUMsTUFBTSxDQUFVLE1BQU0sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFFM0UsTUFBTSxLQUFLLFlBQVk7UUFDNUIsT0FBTyxhQUFhLENBQUMsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxNQUFNLEtBQUssWUFBWSxDQUFDLFVBQWtCO1FBQy9DLGFBQWEsQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDO1FBQ3pDLGFBQWEsQ0FBQyxhQUFhLEdBQUcsSUFBSSxLQUFLLENBQUMsU0FBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRTtZQUMvRSxRQUFRLEVBQUUsS0FBSyxDQUFDLFNBQVUsQ0FBQyxlQUFlO1lBQzFDLE1BQU0sRUFBRSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sRUFBRTtTQUMxQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFB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
|
|
282
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3VwZXJwcm9Ub2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9zdGF0aWNNb2RlbHMvU3VwZXJwcm9Ub2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLFVBQVUsTUFBTSxjQUFjLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxNQUFNLGFBQWEsQ0FBQztBQUNoQyxPQUFPLEVBQ0wsK0JBQStCLEVBQy9CLGFBQWEsRUFDYixxQkFBcUIsR0FDdEIsTUFBTSxvQkFBb0IsQ0FBQztBQUc1QixPQUFPLFNBQVMsTUFBTSx1QkFBdUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQU1sRSxNQUFNLGFBQWE7SUFDVCxNQUFNLENBQUMsYUFBYSxDQUFTO0lBQzdCLE1BQU0sQ0FBQyxXQUFXLENBQVM7SUFDM0IsTUFBTSxDQUFDLGFBQWEsQ0FBd0I7SUFDNUMsTUFBTSxDQUFVLE1BQU0sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFFM0UsTUFBTSxLQUFLLFlBQVk7UUFDNUIsT0FBTyxhQUFhLENBQUMsYUFBYSxDQUFDO0lBQ3JDLENBQUM7SUFFTSxNQUFNLEtBQUssWUFBWSxDQUFDLFVBQWtCO1FBQy9DLGFBQWEsQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDO1FBQ3pDLGFBQWEsQ0FBQyxhQUFhLEdBQUcsSUFBSSxLQUFLLENBQUMsU0FBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRTtZQUMvRSxRQUFRLEVBQUUsS0FBSyxDQUFDLFNBQVUsQ0FBQyxlQUFlO1lBQzFDLE1BQU0sRUFBRSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sRUFBRTtTQUMxQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sTUFB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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BlockchainId, TokenAmount } from './Web3.js';
|
|
2
|
-
import { TcbVerifiedStatus
|
|
2
|
+
import { TcbVerifiedStatus } from '@super-protocol/dto-js';
|
|
3
3
|
export type ConsensusBenchmarkStorage = {
|
|
4
4
|
cpuSize: number;
|
|
5
5
|
ramSize: number;
|
|
@@ -12,6 +12,13 @@ export type ConsensusBenchmarkStorage = {
|
|
|
12
12
|
diskMark: number;
|
|
13
13
|
networkMark: number;
|
|
14
14
|
};
|
|
15
|
+
export type ConsensusBenchmarkPriceMultipliers = {
|
|
16
|
+
cpuMultiplier: number;
|
|
17
|
+
ramMultiplier: number;
|
|
18
|
+
gpuMultiplier: number;
|
|
19
|
+
diskMultiplier: number;
|
|
20
|
+
networkMultiplier: number;
|
|
21
|
+
};
|
|
15
22
|
export type TcbPublicData = {
|
|
16
23
|
checkingTcbIds: BlockchainId[];
|
|
17
24
|
checkingTcbMarks: TcbVerifiedStatus[];
|
|
@@ -45,8 +52,8 @@ export declare enum TcbStatus {
|
|
|
45
52
|
export type EpochInfo = {
|
|
46
53
|
valueReward: TokenAmount;
|
|
47
54
|
teeReward: TokenAmount;
|
|
48
|
-
|
|
49
|
-
|
|
55
|
+
priceMultipliers: ConsensusBenchmarkPriceMultipliers;
|
|
56
|
+
penaltyPriceMultipliers: ConsensusBenchmarkPriceMultipliers;
|
|
50
57
|
};
|
|
51
58
|
export type ConsensusConstants = {
|
|
52
59
|
CONSENSUS_L1: number;
|
|
@@ -13,4 +13,4 @@ export const ConsensusConstantsStructure = {
|
|
|
13
13
|
MAX_BECHMARK_OVERRUN_PERCENT: Number,
|
|
14
14
|
CONSENSUS_EPOCH_DURATION: Number,
|
|
15
15
|
};
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29uc2Vuc3VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3R5cGVzL0NvbnNlbnN1cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvREEsTUFBTSxDQUFOLElBQVksU0FLWDtBQUxELFdBQVksU0FBUztJQUNuQix5QkFBWSxDQUFBO0lBQ1osNEJBQWUsQ0FBQTtJQUNmLHlCQUFZLENBQUE7SUFDWixtQ0FBc0IsQ0FBQTtBQUN4QixDQUFDLEVBTFcsU0FBUyxLQUFULFNBQVMsUUFLcEI7QUFrQkQsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUc7SUFDekMsWUFBWSxFQUFFLE1BQU07SUFDcEIsWUFBWSxFQUFFLE1BQU07SUFDcEIsV0FBVyxFQUFFLE1BQU07SUFDbkIsdUJBQXVCLEVBQUUsTUFBTTtJQUMvQiw0QkFBNEIsRUFBRSxNQUFNO0lBQ3BDLHdCQUF3QixFQUFFLE1BQU07Q0FDakMsQ0FBQyJ9
|
package/dist/mjs/types/index.js
CHANGED
|
@@ -23,4 +23,5 @@ export * from './TokenInfo.js';
|
|
|
23
23
|
export * from './ValueOfferSlot.js';
|
|
24
24
|
export * from './Web3.js';
|
|
25
25
|
export * from './DistributedSecretStorage.js';
|
|
26
|
-
|
|
26
|
+
export * from './ProviderRewards.js';
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdHlwZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxhQUFhLENBQUM7QUFDNUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxZQUFZLENBQUM7QUFDM0IsY0FBYyxpQkFBaUIsQ0FBQztBQUNoQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxlQUFlLENBQUM7QUFDOUIsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxzQkFBc0IsQ0FBQyJ9
|
|
@@ -2,7 +2,7 @@ import { TransactionOptions } from '../types/Web3.js';
|
|
|
2
2
|
import Web3 from 'web3';
|
|
3
3
|
import { Web3BatchRequest } from 'web3-core';
|
|
4
4
|
import { SlotInfo } from '../types/SlotInfo.js';
|
|
5
|
-
import { ConsensusBenchmarkStorage, LoaderSecretPublicKey, LoaderSession, OfferResource, OfferStorageAllocated, OfferStorageRequest, OptionInfo, OptionInfoRaw, OrderUsage, OrderUsageRaw, SecretRequest, SlotUsage, TcbPublicData, TeeOfferOption, TeeOfferOptionRaw, TeeOfferSlot, ValueOfferSlot, ValueOfferSlotRaw } from '../types/index.js';
|
|
5
|
+
import { ConsensusBenchmarkStorage, LoaderSecretPublicKey, LoaderSession, OfferResource, OfferStorageAllocated, OfferStorageRequest, OptionInfo, OptionInfoRaw, OrderUsage, OrderUsageRaw, SecretRequest, SlotUsage, TcbPublicData, TeeOfferOption, TeeOfferOptionRaw, TeeOfferSlot, ValueOfferSlot, ValueOfferSlotRaw, ConsensusBenchmarkPriceMultipliers } from '../types/index.js';
|
|
6
6
|
import { BenchmarkInfo, ConsensusBenchmark } from '@super-protocol/dto-js';
|
|
7
7
|
/**
|
|
8
8
|
* Function for checking if provider action account initialized (required for set methods)
|
|
@@ -40,6 +40,7 @@ export declare function formatEpochIndexes(epochIndexes: string[]): number[];
|
|
|
40
40
|
export declare function formatTeeOfferSlot(slot: TeeOfferSlot, coresDenominator: number): TeeOfferSlot;
|
|
41
41
|
export declare function formatOfferSlot(slot: ValueOfferSlotRaw, coresDenominator: number): ValueOfferSlot;
|
|
42
42
|
export declare function createBenchmarkInfo(mark: number, size: number): BenchmarkInfo;
|
|
43
|
+
export declare function formatPriceMultipliers(priceMultipliers: ConsensusBenchmarkPriceMultipliers): ConsensusBenchmarkPriceMultipliers;
|
|
43
44
|
export declare function formatBenchmarks(benchmarks: ConsensusBenchmarkStorage[]): ConsensusBenchmark[];
|
|
44
45
|
export declare function formatBenchmark(benchmark: ConsensusBenchmarkStorage): ConsensusBenchmark;
|
|
45
46
|
export declare function formatBenchmarkTo(benchmark: ConsensusBenchmark): ConsensusBenchmarkStorage;
|
package/dist/mjs/utils/helper.js
CHANGED
|
@@ -237,6 +237,15 @@ export function createBenchmarkInfo(mark, size) {
|
|
|
237
237
|
size: Number(size),
|
|
238
238
|
};
|
|
239
239
|
}
|
|
240
|
+
export function formatPriceMultipliers(priceMultipliers) {
|
|
241
|
+
return {
|
|
242
|
+
cpuMultiplier: Number(priceMultipliers.cpuMultiplier),
|
|
243
|
+
ramMultiplier: Number(priceMultipliers.ramMultiplier),
|
|
244
|
+
gpuMultiplier: Number(priceMultipliers.gpuMultiplier),
|
|
245
|
+
diskMultiplier: Number(priceMultipliers.diskMultiplier),
|
|
246
|
+
networkMultiplier: Number(priceMultipliers.networkMultiplier),
|
|
247
|
+
};
|
|
248
|
+
}
|
|
240
249
|
export function formatBenchmarks(benchmarks) {
|
|
241
250
|
const result = [];
|
|
242
251
|
for (const benchmark of benchmarks) {
|
|
@@ -277,6 +286,7 @@ export function formatUsage(usage) {
|
|
|
277
286
|
}
|
|
278
287
|
export function convertOrderUsage(usage, slotInfo, slotUsage) {
|
|
279
288
|
return {
|
|
289
|
+
slotId: usage.slotId,
|
|
280
290
|
slotCount: usage.slotCount,
|
|
281
291
|
optionInfo: usage.optionInfo.map((oi) => convertOptionInfoFromRaw(oi)),
|
|
282
292
|
optionUsage: usage.optionUsage,
|
|
@@ -376,4 +386,4 @@ export const executeBatchAsync = async (batch, timeout = BLOCKCHAIN_BATCH_REQUES
|
|
|
376
386
|
export const preparePrivateKey = (pk) => {
|
|
377
387
|
return pk.startsWith('0x') ? pk : '0x' + pk;
|
|
378
388
|
};
|
|
379
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2hlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxhQUFhLENBQUM7QUFJaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBeUI3QyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBR2hDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLENBQUMsa0JBQXVDLEVBQVEsRUFBRTtJQUMvRixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUk7UUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FDYix3SUFBd0ksQ0FDekksQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FDNUMsa0JBQXVDLEVBQzlCLEVBQUU7SUFDWCwrSEFBK0g7SUFDL0gsT0FBTyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDO0FBQ3BDLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBVSxFQUFtQixFQUFFO0lBQ3pELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNoQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQVUsRUFBRTtJQUN6RSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENB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
|
|
389
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWxzL2hlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxhQUFhLENBQUM7QUFJaEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBMEI3QyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBR2hDOzs7R0FHRztBQUNILE1BQU0sQ0FBQyxNQUFNLCtCQUErQixHQUFHLENBQUMsa0JBQXVDLEVBQVEsRUFBRTtJQUMvRixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxDQUFDLGtCQUFrQixFQUFFLElBQUk7UUFDbkQsTUFBTSxJQUFJLEtBQUssQ0FDYix3SUFBd0ksQ0FDekksQ0FBQztBQUNOLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsQ0FDNUMsa0JBQXVDLEVBQzlCLEVBQUU7SUFDWCwrSEFBK0g7SUFDL0gsT0FBTyxDQUFDLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDO0FBQ3BDLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBVSxFQUFtQixFQUFFO0lBQ3pELE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztBQUNoQyxDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEdBQVcsRUFBRSxHQUFXLEVBQVUsRUFBRTtJQUN6RSxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENB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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Encryption, StorageProviderResource, TeeOrderEncryptedArgs } from '@super-protocol/dto-js';
|
|
1
|
+
import { Encryption, Hash, StorageProviderResource, TeeOrderEncryptedArgs } from '@super-protocol/dto-js';
|
|
2
2
|
import StorageAccess from '../../types/storage/StorageAccess.js';
|
|
3
3
|
export declare class OrderArgsHelper {
|
|
4
4
|
static decryptOrderArgs<T>(encryptedArgs: string, ecdhPrivateKey: string): Promise<T | undefined>;
|
|
@@ -13,4 +13,5 @@ export declare class OrderArgsHelper {
|
|
|
13
13
|
};
|
|
14
14
|
encryption: Encryption;
|
|
15
15
|
}): Promise<StorageProviderResource>;
|
|
16
|
+
static calculateArgsHash(args: Record<string, unknown>): Promise<Hash>;
|
|
16
17
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import _ from 'lodash';
|
|
2
|
+
import { Encoding, HashAlgorithm, } from '@super-protocol/dto-js';
|
|
2
3
|
import Crypto from '../../crypto/index.js';
|
|
3
4
|
import { uploadObjectToStorage } from './uploadObjectToStorage.js';
|
|
4
5
|
const isStringArray = (item) => Array.isArray(item) && item.every(_.isString);
|
|
@@ -19,6 +20,16 @@ const isEncryptedArgs = (arg) => Boolean(_.isPlainObject(arg) &&
|
|
|
19
20
|
isStringArray(arg.image) &&
|
|
20
21
|
isStringArray(arg.solution) &&
|
|
21
22
|
(!arg.configuration || isEncryptedData(arg.configuration)));
|
|
23
|
+
const sortArrayByHash = async (array) => {
|
|
24
|
+
const elementsWithHashes = await Promise.all(array.map(async (element) => {
|
|
25
|
+
const hashObj = await Crypto.createHash(Buffer.from(element), {
|
|
26
|
+
algo: HashAlgorithm.SHA256,
|
|
27
|
+
encoding: Encoding.hex,
|
|
28
|
+
});
|
|
29
|
+
return { element, hash: hashObj.hash };
|
|
30
|
+
}));
|
|
31
|
+
return _.chain(elementsWithHashes).sortBy(['hash']).map('element').value();
|
|
32
|
+
};
|
|
22
33
|
export class OrderArgsHelper {
|
|
23
34
|
static async decryptOrderArgs(encryptedArgs, ecdhPrivateKey) {
|
|
24
35
|
if (!encryptedArgs) {
|
|
@@ -52,5 +63,18 @@ export class OrderArgsHelper {
|
|
|
52
63
|
encryption,
|
|
53
64
|
});
|
|
54
65
|
}
|
|
66
|
+
static async calculateArgsHash(args) {
|
|
67
|
+
const entries = Object.entries(args);
|
|
68
|
+
const resultObject = {};
|
|
69
|
+
for (const [key, value] of _.sortBy(entries, [0])) {
|
|
70
|
+
if (isStringArray(value) && value.length > 1) {
|
|
71
|
+
resultObject[key] = await sortArrayByHash(value);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return Crypto.createHash(Buffer.from(JSON.stringify(resultObject)), {
|
|
75
|
+
algo: HashAlgorithm.SHA256,
|
|
76
|
+
encoding: Encoding.hex,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
55
79
|
}
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiT3JkZXJBcmdzSGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWxzL2hlbHBlcnMvT3JkZXJBcmdzSGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQ0wsUUFBUSxFQUdSLGFBQWEsR0FHZCxNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sTUFBTSxNQUFNLHVCQUF1QixDQUFDO0FBRTNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRW5FLE1BQU0sYUFBYSxHQUFHLENBQUMsSUFBYSxFQUFvQixFQUFFLENBQ3hELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFaEQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxHQUFZLEVBQVcsRUFBRTtJQUNoRCxJQUFJLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sVUFBVSxHQUFlLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFL0MsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsSUFBSSxVQUFVLENBQUMsSUFBSSxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsRixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUcsQ0FBQyxHQUF5QyxFQUFXLEVBQUUsQ0FDN0UsT0FBTyxDQUNMLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDO0lBQ2xCLGFBQWEsQ0FBQyxHQUFHLENBQUMs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
|
|
@@ -2,5 +2,4 @@ export * from './tryWithInterval.js';
|
|
|
2
2
|
export * from './OrderArgsHelper.js';
|
|
3
3
|
export * from './uploadObjectToStorage.js';
|
|
4
4
|
export * from './promise.js';
|
|
5
|
-
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLDBCQUEwQixDQUFDIn0=
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLGNBQWMsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@super-protocol/sdk-js",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.2-beta.0",
|
|
4
4
|
"main": "dist/cjs/index.js",
|
|
5
5
|
"module": "dist/mjs/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -45,7 +45,6 @@
|
|
|
45
45
|
"@types/node": "^16.18.59",
|
|
46
46
|
"@types/node-forge": "^1.3.1",
|
|
47
47
|
"@types/node-gzip": "^1.1.0",
|
|
48
|
-
"@types/object-hash": "^3.0.6",
|
|
49
48
|
"@types/ua-parser-js": "^0.7.39",
|
|
50
49
|
"@types/uuid": "^9.0.7",
|
|
51
50
|
"jest": "^29.7.0",
|
|
@@ -74,7 +73,6 @@
|
|
|
74
73
|
"lru-cache": "^10.0.0",
|
|
75
74
|
"node-forge": "^1.3.1",
|
|
76
75
|
"node-gzip": "^1.1.2",
|
|
77
|
-
"object-hash": "^3.0.0",
|
|
78
76
|
"p-queue": "6.6.2",
|
|
79
77
|
"pino": "^7.2.0",
|
|
80
78
|
"pkijs": "^3.0.15",
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import hash from 'object-hash';
|
|
2
|
-
import { Hash } from '@super-protocol/dto-js';
|
|
3
|
-
/**
|
|
4
|
-
* Calculates a hash value for any JavaScript/TypeScript object
|
|
5
|
-
* @param obj - The object to hash
|
|
6
|
-
* @returns A string hash value
|
|
7
|
-
*/
|
|
8
|
-
export declare const calculateObjectHash: (obj: hash.NotUndefined) => Hash;
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.calculateObjectHash = void 0;
|
|
7
|
-
const object_hash_1 = __importDefault(require("object-hash"));
|
|
8
|
-
const dto_js_1 = require("@super-protocol/dto-js");
|
|
9
|
-
/**
|
|
10
|
-
* Calculates a hash value for any JavaScript/TypeScript object
|
|
11
|
-
* @param obj - The object to hash
|
|
12
|
-
* @returns A string hash value
|
|
13
|
-
*/
|
|
14
|
-
const calculateObjectHash = (obj) => {
|
|
15
|
-
const encoding = dto_js_1.Encoding.hex;
|
|
16
|
-
const algo = dto_js_1.HashAlgorithm.SHA256;
|
|
17
|
-
const result = (0, object_hash_1.default)(obj, {
|
|
18
|
-
encoding,
|
|
19
|
-
algorithm: algo,
|
|
20
|
-
unorderedArrays: true,
|
|
21
|
-
});
|
|
22
|
-
return { hash: result, encoding, algo };
|
|
23
|
-
};
|
|
24
|
-
exports.calculateObjectHash = calculateObjectHash;
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlT2JqZWN0SGFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlscy9oZWxwZXJzL2NhbGN1bGF0ZU9iamVjdEhhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsOERBQStCO0FBQy9CLG1EQUF1RTtBQU92RTs7OztHQUlHO0FBQ0ksTUFBTSxtQkFBbUIsR0FBRyxDQUFDLEdBQXNCLEVBQVEsRUFBRTtJQUNsRSxNQUFNLFFBQVEsR0FBRyxpQkFBUSxDQUFDLEdBQUcsQ0FBQztJQUM5QixNQUFNLElBQUksR0FBRyxzQkFBYSxDQUFDLE1BQU0sQ0FBQztJQUNsQyxNQUFNLE1BQU0sR0FBRyxJQUFBLHFCQUFJLEVBQUMsR0FBRyxFQUFFO1FBQ3ZCLFFBQVE7UUFDUixTQUFTLEVBQUUsSUFBSTtRQUNmLGVBQWUsRUFBRSxJQUFJO0tBQ3RCLENBQUMsQ0FBQztJQUNILE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUMxQyxDQUFDLENBQUM7QUFUVyxRQUFBLG1CQUFtQix1QkFTOUIifQ==
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import hash from 'object-hash';
|
|
2
|
-
import { Hash } from '@super-protocol/dto-js';
|
|
3
|
-
/**
|
|
4
|
-
* Calculates a hash value for any JavaScript/TypeScript object
|
|
5
|
-
* @param obj - The object to hash
|
|
6
|
-
* @returns A string hash value
|
|
7
|
-
*/
|
|
8
|
-
export declare const calculateObjectHash: (obj: hash.NotUndefined) => Hash;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import hash from 'object-hash';
|
|
2
|
-
import { Encoding, HashAlgorithm } from '@super-protocol/dto-js';
|
|
3
|
-
/**
|
|
4
|
-
* Calculates a hash value for any JavaScript/TypeScript object
|
|
5
|
-
* @param obj - The object to hash
|
|
6
|
-
* @returns A string hash value
|
|
7
|
-
*/
|
|
8
|
-
export const calculateObjectHash = (obj) => {
|
|
9
|
-
const encoding = Encoding.hex;
|
|
10
|
-
const algo = HashAlgorithm.SHA256;
|
|
11
|
-
const result = hash(obj, {
|
|
12
|
-
encoding,
|
|
13
|
-
algorithm: algo,
|
|
14
|
-
unorderedArrays: true,
|
|
15
|
-
});
|
|
16
|
-
return { hash: result, encoding, algo };
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRlT2JqZWN0SGFzaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy91dGlscy9oZWxwZXJzL2NhbGN1bGF0ZU9iamVjdEhhc2gudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxJQUFJLE1BQU0sYUFBYSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxRQUFRLEVBQVEsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFPdkU7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsR0FBc0IsRUFBUSxFQUFFO0lBQ2xFLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7SUFDOUIsTUFBTSxJQUFJLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQztJQUNsQyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ3ZCLFFBQVE7UUFDUixTQUFTLEVBQUUsSUFBSTtRQUNmLGVBQWUsRUFBRSxJQUFJO0tBQ3RCLENBQUMsQ0FBQztJQUNILE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQztBQUMxQyxDQUFDLENBQUMifQ==
|