@helium/distributor-oracle 0.9.30 → 0.9.32
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/lib/cjs/constants.js +17 -0
- package/lib/cjs/constants.js.map +1 -0
- package/lib/cjs/database.js +9 -0
- package/lib/cjs/database.js.map +1 -0
- package/lib/cjs/model.js +19 -1
- package/lib/cjs/model.js.map +1 -1
- package/lib/cjs/pgDatabase.js +184 -0
- package/lib/cjs/pgDatabase.js.map +1 -0
- package/lib/cjs/server.js +206 -132
- package/lib/cjs/server.js.map +1 -1
- package/lib/esm/src/constants.js +14 -0
- package/lib/esm/src/constants.js.map +1 -0
- package/lib/esm/src/database.js +6 -0
- package/lib/esm/src/database.js.map +1 -0
- package/lib/esm/src/model.js +18 -1
- package/lib/esm/src/model.js.map +1 -1
- package/lib/esm/src/pgDatabase.js +169 -0
- package/lib/esm/src/pgDatabase.js.map +1 -0
- package/lib/esm/src/server.js +188 -123
- package/lib/esm/src/server.js.map +1 -1
- package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/src/constants.d.ts +6 -0
- package/lib/types/src/constants.d.ts.map +1 -0
- package/lib/types/src/database.d.ts +32 -0
- package/lib/types/src/database.d.ts.map +1 -0
- package/lib/types/src/model.d.ts +4 -0
- package/lib/types/src/model.d.ts.map +1 -1
- package/lib/types/src/pgDatabase.d.ts +24 -0
- package/lib/types/src/pgDatabase.d.ts.map +1 -0
- package/lib/types/src/server.d.ts +9 -21
- package/lib/types/src/server.d.ts.map +1 -1
- package/package.json +12 -10
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MAX_CLAIMS_PER_TX = exports.DAO = exports.DNT = exports.HNT = void 0;
|
|
4
|
+
const spl_utils_1 = require("@helium/spl-utils");
|
|
5
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
6
|
+
const helium_sub_daos_sdk_1 = require("@helium/helium-sub-daos-sdk");
|
|
7
|
+
exports.HNT = process.env.HNT_MINT
|
|
8
|
+
? new web3_js_1.PublicKey(process.env.HNT_MINT)
|
|
9
|
+
: spl_utils_1.HNT_MINT;
|
|
10
|
+
exports.DNT = process.env.DNT_MINT
|
|
11
|
+
? new web3_js_1.PublicKey(process.env.DNT_MINT)
|
|
12
|
+
: spl_utils_1.IOT_MINT;
|
|
13
|
+
exports.DAO = (0, helium_sub_daos_sdk_1.daoKey)(exports.HNT)[0];
|
|
14
|
+
exports.MAX_CLAIMS_PER_TX = process.env.MAX_CLAIMS_PER_TX
|
|
15
|
+
? parseInt(process.env.MAX_CLAIMS_PER_TX)
|
|
16
|
+
: 5;
|
|
17
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAA,iDAAuD;AACvD,6CAA4C;AAC5C,qEAAqD;AAExC,QAAA,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ;IACrC,CAAC,CAAC,IAAI,mBAAS,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrC,CAAC,CAAC,oBAAQ,CAAC;AACA,QAAA,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ;IACrC,CAAC,CAAC,IAAI,mBAAS,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;IACrC,CAAC,CAAC,oBAAQ,CAAC;AACA,QAAA,GAAG,GAAG,IAAA,4BAAM,EAAC,WAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAErB,QAAA,iBAAiB,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB;IAC5D,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IACzC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeviceType = void 0;
|
|
4
|
+
var DeviceType;
|
|
5
|
+
(function (DeviceType) {
|
|
6
|
+
DeviceType["IOT"] = "iot";
|
|
7
|
+
DeviceType["MOBILE"] = "mobile";
|
|
8
|
+
})(DeviceType || (exports.DeviceType = DeviceType = {}));
|
|
9
|
+
//# sourceMappingURL=database.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/database.ts"],"names":[],"mappings":";;;AAKA,IAAY,UAGX;AAHD,WAAY,UAAU;IACpB,yBAAW,CAAA;IACX,+BAAiB,CAAA;AACnB,CAAC,EAHW,UAAU,0BAAV,UAAU,QAGrB"}
|
package/lib/cjs/model.js
CHANGED
|
@@ -35,7 +35,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
35
35
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
36
|
};
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
exports.Reward = exports.sequelize = void 0;
|
|
38
|
+
exports.WalletClaimJob = exports.Reward = exports.sequelize = void 0;
|
|
39
39
|
const sequelize_1 = require("sequelize");
|
|
40
40
|
const aws_sdk_1 = __importDefault(require("aws-sdk"));
|
|
41
41
|
const pg = __importStar(require("pg"));
|
|
@@ -101,4 +101,22 @@ Reward.init({
|
|
|
101
101
|
type: sequelize_1.STRING,
|
|
102
102
|
}
|
|
103
103
|
}, { sequelize: exports.sequelize, modelName: "reward_index", tableName: "reward_index", underscored: true, timestamps: false });
|
|
104
|
+
class WalletClaimJob extends sequelize_1.Model {
|
|
105
|
+
}
|
|
106
|
+
exports.WalletClaimJob = WalletClaimJob;
|
|
107
|
+
WalletClaimJob.init({
|
|
108
|
+
wallet: {
|
|
109
|
+
type: sequelize_1.STRING,
|
|
110
|
+
primaryKey: true,
|
|
111
|
+
},
|
|
112
|
+
remainingKtas: {
|
|
113
|
+
type: (0, sequelize_1.ARRAY)(sequelize_1.STRING),
|
|
114
|
+
}
|
|
115
|
+
}, {
|
|
116
|
+
sequelize: exports.sequelize,
|
|
117
|
+
modelName: "wallet_claim_jobs",
|
|
118
|
+
tableName: "wallet_claim_jobs",
|
|
119
|
+
underscored: true,
|
|
120
|
+
timestamps: false,
|
|
121
|
+
});
|
|
104
122
|
//# sourceMappingURL=model.js.map
|
package/lib/cjs/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.PgDatabase = void 0;
|
|
13
|
+
// @ts-ignore
|
|
14
|
+
const anchor_1 = require("@coral-xyz/anchor");
|
|
15
|
+
const helium_entity_manager_sdk_1 = require("@helium/helium-entity-manager-sdk");
|
|
16
|
+
const lazy_distributor_sdk_1 = require("@helium/lazy-distributor-sdk");
|
|
17
|
+
const spl_utils_1 = require("@helium/spl-utils");
|
|
18
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
19
|
+
const sequelize_1 = require("sequelize");
|
|
20
|
+
const constants_1 = require("./constants");
|
|
21
|
+
const database_1 = require("./database");
|
|
22
|
+
const model_1 = require("./model");
|
|
23
|
+
const ENTITY_CREATOR = (0, helium_entity_manager_sdk_1.entityCreatorKey)(constants_1.DAO)[0];
|
|
24
|
+
const HNT_LAZY_DISTRIBUTOR = (0, lazy_distributor_sdk_1.lazyDistributorKey)(spl_utils_1.HNT_MINT)[0];
|
|
25
|
+
const getRewardTypeForDevice = (deviceType) => `${deviceType.toString().toLowerCase()}_gateway`;
|
|
26
|
+
class PgDatabase {
|
|
27
|
+
constructor(issuanceProgram, lazyDistributorProgram, getAssetFn = spl_utils_1.getAsset, searchAssetsFn = spl_utils_1.searchAssets) {
|
|
28
|
+
this.issuanceProgram = issuanceProgram;
|
|
29
|
+
this.lazyDistributorProgram = lazyDistributorProgram;
|
|
30
|
+
this.getAssetFn = getAssetFn;
|
|
31
|
+
this.searchAssetsFn = searchAssetsFn;
|
|
32
|
+
}
|
|
33
|
+
getOrCreateWalletClaimJob(wallet, batchNumber) {
|
|
34
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
35
|
+
if (!batchNumber) {
|
|
36
|
+
yield model_1.WalletClaimJob.destroy({
|
|
37
|
+
where: { wallet: wallet.toBase58() },
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
const job = yield model_1.WalletClaimJob.findOne({
|
|
41
|
+
where: { wallet: wallet.toBase58() },
|
|
42
|
+
});
|
|
43
|
+
if (!job) {
|
|
44
|
+
let page = 1;
|
|
45
|
+
const limit = 1000;
|
|
46
|
+
let allKtas = [];
|
|
47
|
+
while (true) {
|
|
48
|
+
const assets = (yield this.searchAssetsFn(process.env.ASSET_API_URL ||
|
|
49
|
+
this.issuanceProgram.provider.connection.rpcEndpoint, {
|
|
50
|
+
ownerAddress: wallet.toBase58(),
|
|
51
|
+
creatorVerified: true,
|
|
52
|
+
creatorAddress: ENTITY_CREATOR.toBase58(),
|
|
53
|
+
page,
|
|
54
|
+
limit,
|
|
55
|
+
})) || [];
|
|
56
|
+
allKtas = allKtas.concat(assets.map((asset) => (0, helium_entity_manager_sdk_1.keyToAssetForAsset)(asset, constants_1.DAO).toBase58()));
|
|
57
|
+
if (assets.length < limit) {
|
|
58
|
+
break;
|
|
59
|
+
}
|
|
60
|
+
page++;
|
|
61
|
+
}
|
|
62
|
+
const job = yield model_1.WalletClaimJob.create({
|
|
63
|
+
wallet: wallet.toBase58(),
|
|
64
|
+
remainingKtas: allKtas,
|
|
65
|
+
});
|
|
66
|
+
yield job.save();
|
|
67
|
+
return job;
|
|
68
|
+
}
|
|
69
|
+
return job;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
getRewardableEntities(wallet, limit, batchNumber = 0) {
|
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
74
|
+
const job = yield this.getOrCreateWalletClaimJob(wallet, batchNumber);
|
|
75
|
+
const entities = [];
|
|
76
|
+
let nextBatchNumber = batchNumber || 0;
|
|
77
|
+
while (entities.length == 0) {
|
|
78
|
+
const remainingKtas = job.remainingKtas.slice(nextBatchNumber * limit, (nextBatchNumber + 1) * limit);
|
|
79
|
+
if (remainingKtas.length === 0) {
|
|
80
|
+
nextBatchNumber++;
|
|
81
|
+
break;
|
|
82
|
+
}
|
|
83
|
+
const ktas = (yield this.issuanceProgram.account.keyToAssetV0.fetchMultiple(remainingKtas)).map((kta, index) => (Object.assign(Object.assign({}, kta), { address: new web3_js_1.PublicKey(remainingKtas[index]) })));
|
|
84
|
+
const assets = ktas.map((kta) => kta.asset);
|
|
85
|
+
const recipientKeys = assets.map((a) => (0, lazy_distributor_sdk_1.recipientKey)(HNT_LAZY_DISTRIBUTOR, a)[0]);
|
|
86
|
+
const recipients = (yield this.lazyDistributorProgram.account.recipientV0.fetchMultiple(recipientKeys)).map((r, index) => (Object.assign(Object.assign({}, r), { address: new web3_js_1.PublicKey(recipientKeys[index]) })));
|
|
87
|
+
const entityKeys = ktas.map((kta) => (0, helium_entity_manager_sdk_1.decodeEntityKey)(kta.entityKey, kta.keySerialization));
|
|
88
|
+
const lifetimeRewards = yield this.getBulkRewards(entityKeys);
|
|
89
|
+
for (let i = 0; i < recipients.length; i++) {
|
|
90
|
+
const entityKey = entityKeys[i];
|
|
91
|
+
const recipient = recipients[i];
|
|
92
|
+
const kta = ktas[i];
|
|
93
|
+
const lifetimeReward = lifetimeRewards[entityKey];
|
|
94
|
+
const pendingRewards = new anchor_1.BN(lifetimeReward).sub((recipient === null || recipient === void 0 ? void 0 : recipient.totalRewards) || new anchor_1.BN("0"));
|
|
95
|
+
if (!pendingRewards.lte(new anchor_1.BN("0"))) {
|
|
96
|
+
entities.push({
|
|
97
|
+
keyToAsset: kta,
|
|
98
|
+
lifetimeReward: lifetimeReward,
|
|
99
|
+
pendingReward: pendingRewards.toString(),
|
|
100
|
+
recipient: recipient,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
nextBatchNumber++;
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
entities,
|
|
108
|
+
nextBatchNumber,
|
|
109
|
+
};
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
getTotalRewards() {
|
|
113
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
const totalRewards = (yield model_1.Reward.findAll({
|
|
115
|
+
attributes: [
|
|
116
|
+
[model_1.sequelize.fn("SUM", model_1.sequelize.col("rewards")), "rewards"],
|
|
117
|
+
],
|
|
118
|
+
}))[0].rewards;
|
|
119
|
+
return totalRewards;
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
getActiveDevices(type) {
|
|
123
|
+
const rewardTypes = type
|
|
124
|
+
? [getRewardTypeForDevice(type)]
|
|
125
|
+
: Object.values(database_1.DeviceType)
|
|
126
|
+
.filter((value) => isNaN(Number(value))) // Filter out numeric enum keys
|
|
127
|
+
.map((deviceType) => getRewardTypeForDevice(deviceType));
|
|
128
|
+
return model_1.Reward.count({
|
|
129
|
+
where: {
|
|
130
|
+
lastReward: {
|
|
131
|
+
[sequelize_1.Op.gte]: new Date(Date.now() - 1000 * 60 * 60 * 24 * 30), // Active within the last 30 days
|
|
132
|
+
},
|
|
133
|
+
rewardType: {
|
|
134
|
+
[sequelize_1.Op.in]: rewardTypes,
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
getBulkRewards(entityKeys) {
|
|
140
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
141
|
+
const rewards = yield model_1.Reward.findAll({
|
|
142
|
+
where: {
|
|
143
|
+
address: {
|
|
144
|
+
[sequelize_1.Op.in]: entityKeys,
|
|
145
|
+
},
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
return rewards
|
|
149
|
+
.map((rew) => [rew.address, rew.rewards])
|
|
150
|
+
.reduce((acc, [key, val]) => {
|
|
151
|
+
acc[key] = new anchor_1.BN(val).toString();
|
|
152
|
+
return acc;
|
|
153
|
+
}, {});
|
|
154
|
+
});
|
|
155
|
+
}
|
|
156
|
+
getCurrentRewards(assetId) {
|
|
157
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
158
|
+
const asset = yield this.getAssetFn(process.env.ASSET_API_URL ||
|
|
159
|
+
this.issuanceProgram.provider.connection.rpcEndpoint, assetId);
|
|
160
|
+
if (!asset) {
|
|
161
|
+
console.error("No asset found", assetId.toBase58());
|
|
162
|
+
return "0";
|
|
163
|
+
}
|
|
164
|
+
const keyToAssetKey = (0, helium_entity_manager_sdk_1.keyToAssetForAsset)(asset, constants_1.DAO);
|
|
165
|
+
const keyToAsset = yield this.issuanceProgram.account.keyToAssetV0.fetch(keyToAssetKey);
|
|
166
|
+
const entityKey = (0, helium_entity_manager_sdk_1.decodeEntityKey)(keyToAsset.entityKey, keyToAsset.keySerialization);
|
|
167
|
+
// Verify the creator is our entity creator, otherwise they could just
|
|
168
|
+
// pass in any NFT with this ecc compact to collect rewards
|
|
169
|
+
if (!asset.creators[0].verified ||
|
|
170
|
+
!new web3_js_1.PublicKey(asset.creators[0].address).equals(ENTITY_CREATOR)) {
|
|
171
|
+
throw new Error("Not a valid rewardable entity");
|
|
172
|
+
}
|
|
173
|
+
return this.getCurrentRewardsByEntity(entityKey);
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
getCurrentRewardsByEntity(entityKeyStr) {
|
|
177
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
178
|
+
const reward = (yield model_1.Reward.findByPk(entityKeyStr));
|
|
179
|
+
return new anchor_1.BN(reward === null || reward === void 0 ? void 0 : reward.rewards).toString() || "0";
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
exports.PgDatabase = PgDatabase;
|
|
184
|
+
//# sourceMappingURL=pgDatabase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pgDatabase.js","sourceRoot":"","sources":["../../src/pgDatabase.ts"],"names":[],"mappings":"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"}
|