evernode-js-client 0.6.57 → 0.6.59
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/index.js +82 -54
- package/package.json +1 -1
package/index.js
CHANGED
@@ -59581,7 +59581,7 @@ const codec = __nccwpck_require__(597);
|
|
59581
59581
|
const { Buffer } = __nccwpck_require__(4300);
|
59582
59582
|
const { XrplApi } = __nccwpck_require__(7609);
|
59583
59583
|
const { XrplAccount } = __nccwpck_require__(6099);
|
59584
|
-
const { XrplApiEvents, XrplConstants } = __nccwpck_require__(8325);
|
59584
|
+
const { XrplApiEvents, XrplConstants, XrplTransactionTypes } = __nccwpck_require__(8325);
|
59585
59585
|
const { EvernodeEvents, EventTypes, MemoFormats, EvernodeConstants, HookStateKeys, HookParamKeys, RegExp, ReputationConstants } = __nccwpck_require__(5732);
|
59586
59586
|
const { Defaults } = __nccwpck_require__(1001);
|
59587
59587
|
const { EncryptionHelper } = __nccwpck_require__(2731);
|
@@ -59847,7 +59847,7 @@ class BaseEvernodeClient {
|
|
59847
59847
|
eventType = tx.HookParameters.find(p => p.name === HookParamKeys.PARAM_EVENT_TYPE_KEY)?.value;
|
59848
59848
|
eventData = tx.HookParameters.find(p => p.name === HookParamKeys.PARAM_EVENT_DATA_KEY)?.value ?? '';
|
59849
59849
|
}
|
59850
|
-
if (tx.TransactionType ===
|
59850
|
+
if (tx.TransactionType === XrplTransactionTypes.URI_TOKEN_BUY_OFFER && eventType === EventTypes.ACQUIRE_LEASE && tx.Memos.length &&
|
59851
59851
|
tx.Memos[0].type === EventTypes.ACQUIRE_LEASE && tx.Memos[0].format === MemoFormats.BASE64 && tx.Memos[0].data) {
|
59852
59852
|
|
59853
59853
|
// If our account is the destination host account, then decrypt the payload if it is encrypted.
|
@@ -59880,7 +59880,6 @@ class BaseEvernodeClient {
|
|
59880
59880
|
}
|
59881
59881
|
}
|
59882
59882
|
}
|
59883
|
-
|
59884
59883
|
else if (eventType === EventTypes.ACQUIRE_SUCCESS && eventData && tx.Memos.length &&
|
59885
59884
|
tx.Memos[0].type === EventTypes.ACQUIRE_SUCCESS && tx.Memos[0].data) {
|
59886
59885
|
|
@@ -59985,6 +59984,20 @@ class BaseEvernodeClient {
|
|
59985
59984
|
}
|
59986
59985
|
}
|
59987
59986
|
}
|
59987
|
+
else if (eventType === EventTypes.TERMINATE_LEASE && eventData) {
|
59988
|
+
|
59989
|
+
let uriTokenId = eventData;
|
59990
|
+
|
59991
|
+
return {
|
59992
|
+
name: EvernodeEvents.TerminateLease,
|
59993
|
+
data: {
|
59994
|
+
transaction: tx,
|
59995
|
+
terminateRefId: tx.hash,
|
59996
|
+
tenant: tx.Account,
|
59997
|
+
uriTokenId: uriTokenId
|
59998
|
+
}
|
59999
|
+
}
|
60000
|
+
}
|
59988
60001
|
else if (eventType === EventTypes.EXTEND_SUCCESS && eventData && tx.Memos.length &&
|
59989
60002
|
tx.Memos[0].type === EventTypes.EXTEND_SUCCESS && tx.Memos[0].format === MemoFormats.HEX && tx.Memos[0].data) {
|
59990
60003
|
|
@@ -61103,11 +61116,8 @@ module.exports = {
|
|
61103
61116
|
/***/ 538:
|
61104
61117
|
/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
|
61105
61118
|
|
61106
|
-
const codec = __nccwpck_require__(597);
|
61107
61119
|
const { StateHelpers } = __nccwpck_require__(3390);
|
61108
|
-
const { XrplAccount } = __nccwpck_require__(6099);
|
61109
61120
|
const { BaseEvernodeClient } = __nccwpck_require__(4438);
|
61110
|
-
const { ReputationConstants } = __nccwpck_require__(5732);
|
61111
61121
|
|
61112
61122
|
const ReputationEvents = {}
|
61113
61123
|
|
@@ -61232,7 +61242,8 @@ const OFFER_WAIT_TIMEOUT = 60;
|
|
61232
61242
|
|
61233
61243
|
const HostEvents = {
|
61234
61244
|
AcquireLease: EvernodeEvents.AcquireLease,
|
61235
|
-
ExtendLease: EvernodeEvents.ExtendLease
|
61245
|
+
ExtendLease: EvernodeEvents.ExtendLease,
|
61246
|
+
TerminateLease: EvernodeEvents.TerminateLease,
|
61236
61247
|
}
|
61237
61248
|
|
61238
61249
|
const HOST_COUNTRY_CODE_PARAM_OFFSET = 0;
|
@@ -61645,58 +61656,43 @@ class HostClient extends BaseEvernodeClient {
|
|
61645
61656
|
|
61646
61657
|
/**
|
61647
61658
|
* Prepare host reputation score to a common format for submission.
|
61648
|
-
* @param {object} collectedScores
|
61649
|
-
* @returns Unified reputation score array.
|
61650
|
-
*/
|
61651
|
-
async prepareHostReputationScores(collectedScores = {}) {
|
61652
|
-
const myReputationInfo = await this.getReputationOrderByAddress(this.xrplAcc.address);
|
61653
|
-
if (!("orderedId" in (myReputationInfo ?? {})))
|
61654
|
-
return null;
|
61655
|
-
|
61656
|
-
const myOrderId = myReputationInfo.orderedId;
|
61657
|
-
|
61658
|
-
// Deciding universe.
|
61659
|
-
const universeStartIndex = Math.floor(myOrderId / 64) * 64;
|
61660
|
-
|
61661
|
-
const reputationClient = await HookClientFactory.create(HookTypes.reputation);
|
61662
|
-
await reputationClient.connect();
|
61663
|
-
let data = {};
|
61664
|
-
await Promise.all(Array.from({ length: 64 }, (_, i) => i + universeStartIndex).map(async (i) => {
|
61665
|
-
try {
|
61666
|
-
const hostReputationInfo = await reputationClient.getReputationContractInfoByOrderedId(i);
|
61667
|
-
if (!hostReputationInfo)
|
61668
|
-
throw 'No reputation info for this order id';
|
61669
|
-
data[i.toString()] = {
|
61670
|
-
publicKey: hostReputationInfo.contract?.pubkey ?? "-1",
|
61671
|
-
orderId: i
|
61672
|
-
};
|
61673
|
-
} catch (error) {
|
61674
|
-
data[i.toString()] = { publicKey: "-1", orderId: i };
|
61675
|
-
}
|
61676
|
-
}));
|
61677
|
-
await reputationClient.disconnect();
|
61678
|
-
|
61679
|
-
return Object.entries(data).map(e => ({
|
61680
|
-
...e[1],
|
61681
|
-
scoreValue: collectedScores[e[1]?.publicKey] || 0
|
61682
|
-
}));
|
61683
|
-
}
|
61684
|
-
|
61685
|
-
/**
|
61686
|
-
* Send reputation scores to the reputation hook.
|
61687
61659
|
* @param {number} scoreVersion Version of the scores.
|
61688
61660
|
* @param {number} clusterSize Size of the cluster.
|
61689
|
-
* @param {object}
|
61661
|
+
* @param {object} collectedScores [Optional] Score object in { host: score } format.
|
61662
|
+
* @returns Unified reputation score buffer.
|
61690
61663
|
*/
|
61691
|
-
async
|
61664
|
+
async prepareHostReputationScores(scoreVersion, clusterSize, collectedScores = null) {
|
61692
61665
|
let buffer = Buffer.alloc(1);
|
61693
|
-
if (
|
61694
|
-
const
|
61695
|
-
if (
|
61666
|
+
if (collectedScores) {
|
61667
|
+
const myReputationInfo = await this.getReputationOrderByAddress(this.xrplAcc.address);
|
61668
|
+
if (("orderedId" in (myReputationInfo ?? {}))) {
|
61669
|
+
const myOrderId = myReputationInfo.orderedId;
|
61670
|
+
|
61671
|
+
// Deciding universe.
|
61672
|
+
const universeStartIndex = Math.floor(myOrderId / 64) * 64;
|
61673
|
+
|
61674
|
+
const reputationClient = await HookClientFactory.create(HookTypes.reputation);
|
61675
|
+
await reputationClient.connect();
|
61676
|
+
let data = {};
|
61677
|
+
await Promise.all(Array.from({ length: 64 }, (_, i) => i + universeStartIndex).map(async (i) => {
|
61678
|
+
try {
|
61679
|
+
const hostReputationInfo = await reputationClient.getReputationContractInfoByOrderedId(i);
|
61680
|
+
if (!hostReputationInfo)
|
61681
|
+
throw 'No reputation info for this order id';
|
61682
|
+
data[i.toString()] = {
|
61683
|
+
publicKey: hostReputationInfo.contract?.pubkey ?? "-1",
|
61684
|
+
orderId: i
|
61685
|
+
};
|
61686
|
+
} catch (error) {
|
61687
|
+
data[i.toString()] = { publicKey: "-1", orderId: i };
|
61688
|
+
}
|
61689
|
+
}));
|
61690
|
+
await reputationClient.disconnect();
|
61691
|
+
|
61696
61692
|
buffer = Buffer.alloc(66, 0);
|
61697
61693
|
let i = 0;
|
61698
|
-
for (const
|
61699
|
-
buffer.writeUIntLE(Number(
|
61694
|
+
for (const e of Object.entries(data)) {
|
61695
|
+
buffer.writeUIntLE(Number(collectedScores[e[1]?.publicKey] || 0), i + 1, 1);
|
61700
61696
|
i++;
|
61701
61697
|
}
|
61702
61698
|
buffer.writeUIntLE(clusterSize, 65, 1);
|
@@ -61705,10 +61701,18 @@ class HostClient extends BaseEvernodeClient {
|
|
61705
61701
|
|
61706
61702
|
buffer.writeUIntLE(scoreVersion, 0, 1);
|
61707
61703
|
|
61704
|
+
return buffer;
|
61705
|
+
}
|
61706
|
+
|
61707
|
+
/**
|
61708
|
+
* Send reputation scores to the reputation hook.
|
61709
|
+
* @param {string} bufferHex Prepared score buffer as hex string.
|
61710
|
+
*/
|
61711
|
+
async sendReputations(bufferHex, options = {}) {
|
61708
61712
|
const paramData = codec.decodeAccountID(this.xrplAcc.address);
|
61709
61713
|
|
61710
61714
|
await this.reputationAcc.invoke(this.config.reputationAddress,
|
61711
|
-
|
61715
|
+
bufferHex ? { isHex: true, data: bufferHex } : null,
|
61712
61716
|
{
|
61713
61717
|
hookParams: [
|
61714
61718
|
{ name: HookParamKeys.PARAM_EVENT_TYPE_KEY, value: EventTypes.HOST_SEND_REPUTATION },
|
@@ -62621,6 +62625,7 @@ const { XrplAccount } = __nccwpck_require__(6099);
|
|
62621
62625
|
const { UtilHelpers } = __nccwpck_require__(3726);
|
62622
62626
|
const { EvernodeHelpers } = __nccwpck_require__(6384);
|
62623
62627
|
const { TransactionHelper } = __nccwpck_require__(5358);
|
62628
|
+
const { XrplConstants } = __nccwpck_require__(8325);
|
62624
62629
|
|
62625
62630
|
const DEFAULT_WAIT_TIMEOUT = 300000;
|
62626
62631
|
|
@@ -62970,6 +62975,27 @@ class TenantClient extends BaseEvernodeClient {
|
|
62970
62975
|
}
|
62971
62976
|
});
|
62972
62977
|
}
|
62978
|
+
|
62979
|
+
/**
|
62980
|
+
* Terminate the lease instance.
|
62981
|
+
* @param {string} uriTokenId Hex URI token id of the lease.
|
62982
|
+
*/
|
62983
|
+
async terminateLease(uriTokenId, options = {}) {
|
62984
|
+
const uriToken = await this.xrplApi.getURITokenByIndex(uriTokenId);
|
62985
|
+
if (uriToken && uriToken.Owner === this.xrplAcc.address) {
|
62986
|
+
await this.xrplAcc.makePayment(uriToken.Issuer, XrplConstants.MIN_DROPS, null, null, null,
|
62987
|
+
{
|
62988
|
+
hookParams: [
|
62989
|
+
{ name: HookParamKeys.PARAM_EVENT_TYPE_KEY, value: EventTypes.TERMINATE_LEASE },
|
62990
|
+
{ name: HookParamKeys.PARAM_EVENT_DATA_KEY, value: uriTokenId }
|
62991
|
+
],
|
62992
|
+
...options.transactionOptions
|
62993
|
+
});
|
62994
|
+
}
|
62995
|
+
else {
|
62996
|
+
console.log(`Uri token ${uriTokenId} not found or already burned. Burn skipped.`);
|
62997
|
+
}
|
62998
|
+
}
|
62973
62999
|
}
|
62974
63000
|
|
62975
63001
|
module.exports = {
|
@@ -63532,6 +63558,7 @@ const EventTypes = {
|
|
63532
63558
|
EXTEND_SUCCESS: 'evnExtendSuccess',
|
63533
63559
|
EXTEND_ERROR: 'evnExtendError',
|
63534
63560
|
EXTEND_REF: 'evnExtendRef',
|
63561
|
+
TERMINATE_LEASE: 'evnTerminateLease',
|
63535
63562
|
INIT: 'evnInitialize',
|
63536
63563
|
REFUND: 'evnRefund',
|
63537
63564
|
REFUND_REF: 'evnRefundRef',
|
@@ -63644,6 +63671,7 @@ const EvernodeEvents = {
|
|
63644
63671
|
ExtendLease: "ExtendLease",
|
63645
63672
|
ExtendSuccess: "ExtendSuccess",
|
63646
63673
|
ExtendError: "ExtendError",
|
63674
|
+
TerminateLease: 'TerminateLease',
|
63647
63675
|
HostRegUpdated: "HostRegUpdated",
|
63648
63676
|
HostReRegistered: "HostReRegistered",
|
63649
63677
|
Initialized: "Initialized",
|
package/package.json
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
],
|
7
7
|
"homepage": "https://github.com/HotPocketDev/evernode-js-client",
|
8
8
|
"license": "SEE LICENSE IN https://raw.githubusercontent.com/EvernodeXRPL/evernode-resources/main/license/evernode-license.pdf",
|
9
|
-
"version": "0.6.
|
9
|
+
"version": "0.6.59",
|
10
10
|
"dependencies": {
|
11
11
|
"elliptic": "6.5.4",
|
12
12
|
"libsodium-wrappers": "0.7.10",
|