@helium/distributor-oracle 0.0.49 → 0.0.50

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.
@@ -4,7 +4,8 @@ dotenv.config();
4
4
  import { AnchorProvider, BN, getProvider, setProvider } from "@coral-xyz/anchor";
5
5
  import { entityCreatorKey, init as initHeliumEntityManager, keyToAssetKey } from "@helium/helium-entity-manager-sdk";
6
6
  import { daoKey } from "@helium/helium-sub-daos-sdk";
7
- import { init, lazyDistributorKey, PROGRAM_ID } from "@helium/lazy-distributor-sdk";
7
+ import { init as initLazy, lazyDistributorKey, PROGRAM_ID as LD_PID } from "@helium/lazy-distributor-sdk";
8
+ import { init as initRewards, PROGRAM_ID as RO_PID } from "@helium/rewards-oracle-sdk";
8
9
  import { AccountFetchCache, getAsset, HNT_MINT, IOT_MINT } from "@helium/spl-utils";
9
10
  import { Keypair, PublicKey, Transaction } from "@solana/web3.js";
10
11
  import { Op } from "sequelize";
@@ -67,7 +68,8 @@ export class PgDatabase {
67
68
  ;
68
69
  }
69
70
  export class OracleServer {
70
- program;
71
+ ldProgram;
72
+ roProgram;
71
73
  hemProgram;
72
74
  oracle;
73
75
  db;
@@ -75,8 +77,9 @@ export class OracleServer {
75
77
  app;
76
78
  port = 8080;
77
79
  server;
78
- constructor(program, hemProgram, oracle, db, lazyDistributor) {
79
- this.program = program;
80
+ constructor(ldProgram, roProgram, hemProgram, oracle, db, lazyDistributor) {
81
+ this.ldProgram = ldProgram;
82
+ this.roProgram = roProgram;
80
83
  this.hemProgram = hemProgram;
81
84
  this.oracle = oracle;
82
85
  this.db = db;
@@ -159,11 +162,11 @@ export class OracleServer {
159
162
  return;
160
163
  }
161
164
  const tx = Transaction.from(req.body.transaction.data);
162
- // validate only interacts with LD program and only calls setCurrentRewards and distributeRewards
165
+ // validate only interacts with LD and RO programs and only calls setCurrentRewards, distributeRewards
163
166
  const setRewardIxs = [];
164
167
  let recipientToLazyDistToMint = {};
165
- const initRecipientTx = this.program.idl.instructions.find((x) => x.name === "initializeRecipientV0");
166
- const initCompressionRecipientTx = this.program.idl.instructions.find((x) => x.name === "initializeCompressionRecipientV0");
168
+ const initRecipientTx = this.ldProgram.idl.instructions.find((x) => x.name === "initializeRecipientV0");
169
+ const initCompressionRecipientTx = this.ldProgram.idl.instructions.find((x) => x.name === "initializeCompressionRecipientV0");
167
170
  const lazyDistributorIdxInitRecipient = initRecipientTx.accounts.findIndex((x) => x.name === "lazyDistributor");
168
171
  const lazyDistributorIdxInitCompressionRecipient = initCompressionRecipientTx.accounts.findIndex((x) => x.name === "lazyDistributor");
169
172
  const mintIdx = initRecipientTx.accounts.findIndex((x) => x.name === "mint");
@@ -171,22 +174,29 @@ export class OracleServer {
171
174
  const recipientIdxInitRecipient = initRecipientTx.accounts.findIndex((x) => x.name === "recipient");
172
175
  const recipientIdxInitCompressionRecipient = initCompressionRecipientTx.accounts.findIndex((x) => x.name === "recipient");
173
176
  for (const ix of tx.instructions) {
174
- if (!ix.programId.equals(PROGRAM_ID)) {
177
+ if (!(ix.programId.equals(LD_PID) || ix.programId.equals(RO_PID))) {
175
178
  res.status(400).send({ error: "Invalid instructions in transaction" });
176
179
  return;
177
180
  }
178
- let decoded = this.program.coder.instruction.decode(ix.data);
181
+ let decoded;
182
+ if (ix.programId.equals(LD_PID)) {
183
+ decoded = this.ldProgram.coder.instruction.decode(ix.data);
184
+ }
185
+ else {
186
+ decoded = this.roProgram.coder.instruction.decode(ix.data);
187
+ }
179
188
  if (!decoded ||
180
189
  (decoded.name !== "setCurrentRewardsV0" &&
181
190
  decoded.name !== "distributeRewardsV0" &&
182
191
  decoded.name !== "distributeCompressionRewardsV0" &&
183
192
  decoded.name !== "initializeRecipientV0" &&
184
- decoded.name !== "initializeCompressionRecipientV0")) {
193
+ decoded.name !== "initializeCompressionRecipientV0" &&
194
+ decoded.name !== "setCurrentRewardsWrapperV0")) {
185
195
  res.status(400).send({ error: "Invalid instructions in transaction" });
186
196
  return;
187
197
  }
188
198
  console.log(decoded.name);
189
- if (decoded.name === "setCurrentRewardsV0")
199
+ if (decoded.name === "setCurrentRewardsV0" || decoded.name === "setCurrentRewardsWrapperV0")
190
200
  setRewardIxs.push(ix);
191
201
  // Since recipient wont exist to fetch to get the mint id, grab it from the init recipient ix
192
202
  if (decoded.name === "initializeRecipientV0") {
@@ -206,42 +216,55 @@ export class OracleServer {
206
216
  recipientToLazyDistToMint[recipient][lazyDist] = await getLeafAssetId(merkleTree, new BN(index));
207
217
  }
208
218
  }
209
- const setRewardsIx = this.program.idl.instructions.find((x) => x.name === "setCurrentRewardsV0");
219
+ const setRewardsIx = this.ldProgram.idl.instructions.find((x) => x.name === "setCurrentRewardsV0");
210
220
  const payerKeyIdx = setRewardsIx.accounts.findIndex((x) => x.name === "payer");
211
221
  const oracleKeyIdx = setRewardsIx.accounts.findIndex((x) => x.name === "oracle");
212
222
  const lazyDistIdx = setRewardsIx.accounts.findIndex((x) => x.name === "lazyDistributor");
213
223
  const recipientIdx = setRewardsIx.accounts.findIndex((x) => x.name === "recipient");
224
+ const setRewardsWrapperIx = this.roProgram.idl.instructions.find((x) => x.name === "setCurrentRewardsWrapperV0");
225
+ const wrapperOracleKeyIdx = setRewardsWrapperIx.accounts.findIndex((x) => x.name === "oracle");
226
+ const wrapperLazyDistIdx = setRewardsWrapperIx.accounts.findIndex((x) => x.name === "lazyDistributor");
227
+ const wrapperRecipientIdx = setRewardsWrapperIx.accounts.findIndex((x) => x.name === "recipient");
214
228
  // validate setRewards value for this oracle is correct
215
229
  for (const ix of setRewardIxs) {
216
- if (ix.keys[oracleKeyIdx].pubkey.equals(this.oracle.publicKey)) {
217
- let decoded = this.program.coder.instruction.decode(ix.data);
218
- const recipient = ix.keys[recipientIdx].pubkey;
219
- const lazyDist = ix.keys[lazyDistIdx].pubkey;
220
- if (!lazyDist.equals(this.lazyDistributor)) {
221
- res.status(400).send({ error: "Invalid lazy distributor" });
222
- return;
223
- }
224
- let mint = (recipientToLazyDistToMint[recipient.toBase58()] || {})[lazyDist.toBase58()];
225
- if (!mint) {
226
- const recipientAcc = await this.program.account.recipientV0.fetchNullable(recipient);
227
- if (!recipientAcc) {
228
- console.error(recipientToLazyDistToMint);
229
- res
230
- .status(400)
231
- .send({
232
- error: "Recipient doesn't exist",
233
- recipientToLazyDistToMint,
234
- });
235
- return;
236
- }
237
- mint = recipientAcc.asset;
238
- }
239
- const currentRewards = await this.db.getCurrentRewards(mint);
240
- // @ts-ignore
241
- if (decoded.data.args.currentRewards.toNumber() > currentRewards) {
242
- res.status(400).send({ error: "Invalid amount" });
230
+ let recipient, lazyDist, proposedCurrentRewards;
231
+ if (ix.keys[wrapperOracleKeyIdx].pubkey.equals(this.oracle.publicKey) && ix.programId.equals(RO_PID)) {
232
+ let decoded = this.roProgram.coder.instruction.decode(ix.data);
233
+ recipient = ix.keys[wrapperRecipientIdx].pubkey;
234
+ lazyDist = ix.keys[wrapperLazyDistIdx].pubkey;
235
+ //@ts-ignore
236
+ proposedCurrentRewards = decoded.data.args.currentRewards;
237
+ }
238
+ else if (ix.keys[oracleKeyIdx].pubkey.equals(this.oracle.publicKey) && ix.programId.equals(LD_PID)) {
239
+ let decoded = this.ldProgram.coder.instruction.decode(ix.data);
240
+ recipient = ix.keys[recipientIdx].pubkey;
241
+ lazyDist = ix.keys[lazyDistIdx].pubkey;
242
+ //@ts-ignore
243
+ proposedCurrentRewards = decoded.data.args.currentRewards;
244
+ }
245
+ if (!lazyDist || !recipient || !lazyDist.equals(this.lazyDistributor)) {
246
+ res.status(400).send({ error: "Invalid lazy distributor" });
247
+ return;
248
+ }
249
+ let mint = (recipientToLazyDistToMint[recipient.toBase58()] || {})[lazyDist.toBase58()];
250
+ if (!mint) {
251
+ const recipientAcc = await this.ldProgram.account.recipientV0.fetchNullable(recipient);
252
+ if (!recipientAcc) {
253
+ console.error(recipientToLazyDistToMint);
254
+ res
255
+ .status(400)
256
+ .send({
257
+ error: "Recipient doesn't exist",
258
+ recipientToLazyDistToMint,
259
+ });
243
260
  return;
244
261
  }
262
+ mint = recipientAcc.asset;
263
+ }
264
+ const currentRewards = await this.db.getCurrentRewards(mint);
265
+ if (proposedCurrentRewards.toNumber() > currentRewards) {
266
+ res.status(400).send({ error: "Invalid amount" });
267
+ return;
245
268
  }
246
269
  }
247
270
  // validate that this oracle is not the fee payer
@@ -267,13 +290,14 @@ export class OracleServer {
267
290
  const oracleKeypair = Keypair.fromSecretKey(new Uint8Array(JSON.parse(fs
268
291
  .readFileSync((process.env.ORACLE_KEYPAIR_PATH || process.env.ANCHOR_WALLET))
269
292
  .toString())));
270
- const program = await init(provider);
293
+ const ldProgram = await initLazy(provider);
294
+ const roProgram = await initRewards(provider);
271
295
  const hemProgram = await initHeliumEntityManager(provider);
272
296
  const DNT = process.env.DNT_MINT
273
297
  ? new PublicKey(process.env.DNT_MINT)
274
298
  : IOT_MINT;
275
299
  const LAZY_DISTRIBUTOR = lazyDistributorKey(DNT)[0];
276
- const server = new OracleServer(program, hemProgram, oracleKeypair, new PgDatabase(hemProgram), LAZY_DISTRIBUTOR);
300
+ const server = new OracleServer(ldProgram, roProgram, hemProgram, oracleKeypair, new PgDatabase(hemProgram), LAZY_DISTRIBUTOR);
277
301
  // For performance
278
302
  new AccountFetchCache({
279
303
  connection: provider.connection,
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/server.ts"],"names":[],"mappings":"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"}