@helium/distributor-oracle 0.6.42 → 0.7.1

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.
@@ -1,11 +1,11 @@
1
1
  import { BN } from "@coral-xyz/anchor";
2
2
  import { getSingleton } from "@helium/account-fetch-cache";
3
- import { decodeEntityKey, init, init as initHem, keyToAssetKey, keyToAssetForAsset, } from "@helium/helium-entity-manager-sdk";
3
+ import { decodeEntityKey, init, init as initHem, keyToAssetForAsset, keyToAssetKey, } from "@helium/helium-entity-manager-sdk";
4
4
  import { distributeCompressionRewards, initializeCompressionRecipient, recipientKey, } from "@helium/lazy-distributor-sdk";
5
5
  import { init as initRewards } from "@helium/rewards-oracle-sdk";
6
- import { HNT_MINT, getAsset, getAssetProof, getAssetBatch, getAssetProofBatch, truthy, withPriorityFees, } from "@helium/spl-utils";
6
+ import { HELIUM_COMMON_LUT, HELIUM_COMMON_LUT_DEVNET, HNT_MINT, batchInstructionsToTxsWithPriorityFee, getAsset, getAssetBatch, getAssetProof, getAssetProofBatch, populateMissingDraftInfo, toVersionedTx, truthy, withPriorityFees } from "@helium/spl-utils";
7
7
  import { getAssociatedTokenAddress } from "@solana/spl-token";
8
- import { PublicKey, Transaction, } from "@solana/web3.js";
8
+ import { PublicKey, VersionedTransaction, } from "@solana/web3.js";
9
9
  import axios from "axios";
10
10
  const HNT = process.env.HNT_MINT
11
11
  ? new PublicKey(process.env.HNT_MINT)
@@ -77,11 +77,14 @@ export async function getPendingRewards(program, lazyDistributor, dao, entityKey
77
77
  return acc;
78
78
  }, {});
79
79
  }
80
- export async function formBulkTransactions({ program: lazyDistributorProgram, rewardsOracleProgram, heliumEntityManagerProgram, skipOracleSign = false, rewards, assets, compressionAssetAccs, lazyDistributor, lazyDistributorAcc, wallet = lazyDistributorProgram.provider.wallet.publicKey, payer = lazyDistributorProgram.provider.wallet.publicKey, assetEndpoint, getAssetBatchFn = getAssetBatch, getAssetProofBatchFn = getAssetProofBatch, basePriorityFee, }) {
80
+ export async function formBulkTransactions({ program: lazyDistributorProgram, rewardsOracleProgram, heliumEntityManagerProgram, skipOracleSign = false, rewards, assets, compressionAssetAccs, lazyDistributor, lazyDistributorAcc, wallet = lazyDistributorProgram.provider.wallet.publicKey, payer = lazyDistributorProgram.provider.wallet.publicKey, assetEndpoint, getAssetBatchFn = getAssetBatch, getAssetProofBatchFn = getAssetProofBatch, basePriorityFee, isDevnet: isDevnetIn, }) {
81
81
  if (assets.length > 100) {
82
82
  throw new Error("Too many assets, max 100");
83
83
  }
84
84
  const provider = lazyDistributorProgram.provider;
85
+ const isDevnet = isDevnetIn ||
86
+ provider.connection.rpcEndpoint.includes("test") ||
87
+ provider.connection.rpcEndpoint.includes("devnet");
85
88
  if (!rewardsOracleProgram) {
86
89
  rewardsOracleProgram = await initRewards(provider);
87
90
  }
@@ -134,7 +137,7 @@ export async function formBulkTransactions({ program: lazyDistributorProgram, re
134
137
  info: heliumEntityManagerProgram.coder.accounts.decode("KeyToAssetV0", account.data),
135
138
  }), true, false);
136
139
  // construct the set and distribute ixs
137
- const setAndDistributeIxs = await Promise.all(compressionAssetAccs.map(async (assetAcc, idx) => {
140
+ const setAndDistributeIxs = (await Promise.all(compressionAssetAccs.map(async (assetAcc, idx) => {
138
141
  const keyToAssetK = keyToAssets[idx]?.pubkey;
139
142
  const keyToAsset = keyToAssets[idx]?.info;
140
143
  if (!keyToAsset || !keyToAssetK) {
@@ -173,46 +176,38 @@ export async function formBulkTransactions({ program: lazyDistributorProgram, re
173
176
  : undefined,
174
177
  assetEndpoint,
175
178
  })).instruction();
176
- return await withPriorityFees({
177
- connection: provider.connection,
178
- instructions: [...inits, ...setRewardIxs, distributeIx],
179
- // Require more compute if init recipient
180
- computeUnits: inits.length > 0 ? MISSING_RECIPIENT_CU : RECIPIENT_EXISTS_CU,
181
- basePriorityFee,
182
- });
183
- }));
184
- let blockhash = (await provider.connection.getLatestBlockhash()).blockhash;
185
- // unsigned txs
186
- let initialTxs = setAndDistributeIxs
179
+ const ret = [...inits, ...setRewardIxs, distributeIx];
187
180
  // filter arrays where init recipient is the only ix
188
- .filter((ix) => ix.length > 1)
189
- .map((ixs) => {
190
- const tx = new Transaction();
191
- tx.recentBlockhash = blockhash;
192
- tx.feePayer = payer;
193
- tx.add(...ixs);
194
- return tx;
181
+ if (ret.length > 1) {
182
+ return ret;
183
+ }
184
+ return [];
185
+ })));
186
+ // unsigned txs
187
+ const initialTxDrafts = await batchInstructionsToTxsWithPriorityFee(provider, setAndDistributeIxs, {
188
+ basePriorityFee,
189
+ addressLookupTableAddresses: [
190
+ isDevnet ? HELIUM_COMMON_LUT_DEVNET : HELIUM_COMMON_LUT,
191
+ ],
195
192
  });
193
+ const initialTxs = initialTxDrafts.map(toVersionedTx);
196
194
  // @ts-ignore
197
195
  const oracleUrls = lazyDistributorAcc.oracles.map((x) => x.url);
198
196
  let serTxs = initialTxs.map((tx) => {
199
- return tx.serialize({
200
- requireAllSignatures: false,
201
- verifySignatures: false,
202
- });
197
+ return tx.serialize();
203
198
  });
204
199
  if (!skipOracleSign) {
205
200
  for (const oracle of oracleUrls) {
206
201
  const res = await axios.post(`${oracle}/bulk-sign`, {
207
- transactions: serTxs.map((tx) => tx.toJSON().data),
202
+ transactions: serTxs.map((tx) => Buffer.from(tx).toJSON().data),
208
203
  });
209
204
  serTxs = res.data.transactions.map((x) => Buffer.from(x));
210
205
  }
211
206
  }
212
- const finalTxs = serTxs.map((tx) => Transaction.from(tx));
207
+ const finalTxs = serTxs.map((tx) => VersionedTransaction.deserialize(tx));
213
208
  // Check instructions are the same
214
209
  finalTxs.forEach((finalTx, idx) => {
215
- assertSameIxns(finalTx.instructions, initialTxs[idx].instructions);
210
+ assertSameTx(finalTx, initialTxs[idx], initialTxDrafts[0]?.addressLookupTables);
216
211
  });
217
212
  return finalTxs;
218
213
  }
@@ -234,8 +229,8 @@ export async function formTransaction({ program: lazyDistributorProgram, rewards
234
229
  const recipient = recipientKey(lazyDistributor, asset)[0];
235
230
  const lazyDistributorAcc = (await lazyDistributorProgram.account.lazyDistributorV0.fetch(lazyDistributor));
236
231
  const rewardsMint = lazyDistributorAcc.rewardsMint;
237
- let tx = new Transaction();
238
232
  const destinationAccount = await getAssociatedTokenAddress(rewardsMint, assetAcc.ownership.owner, true);
233
+ const instructions = [];
239
234
  const recipientExists = await provider.connection.getAccountInfo(recipient);
240
235
  if (!recipientExists) {
241
236
  let initRecipientIx;
@@ -260,7 +255,7 @@ export async function formTransaction({ program: lazyDistributorProgram, rewards
260
255
  })
261
256
  .instruction();
262
257
  }
263
- tx.add(initRecipientIx);
258
+ instructions.push(initRecipientIx);
264
259
  }
265
260
  const ixPromises = rewards.map((x, idx) => {
266
261
  return rewardsOracleProgram.methods
@@ -277,14 +272,12 @@ export async function formTransaction({ program: lazyDistributorProgram, rewards
277
272
  .instruction();
278
273
  });
279
274
  const ixs = await Promise.all(ixPromises);
280
- tx.add(...(await withPriorityFees({
275
+ instructions.push(...(await withPriorityFees({
281
276
  connection: provider.connection,
282
277
  computeUnits: recipientExists ? RECIPIENT_EXISTS_CU : MISSING_RECIPIENT_CU,
283
278
  instructions: ixs,
284
279
  basePriorityFee,
285
280
  })));
286
- tx.recentBlockhash = (await provider.connection.getLatestBlockhash()).blockhash;
287
- tx.feePayer = payer ? payer : provider.wallet.publicKey;
288
281
  if (assetAcc.compression.compressed) {
289
282
  const distributeIx = await (await distributeCompressionRewards({
290
283
  program: lazyDistributorProgram,
@@ -295,7 +288,7 @@ export async function formTransaction({ program: lazyDistributorProgram, rewards
295
288
  assetEndpoint,
296
289
  payer,
297
290
  })).instruction();
298
- tx.add(distributeIx);
291
+ instructions.push(distributeIx);
299
292
  }
300
293
  else {
301
294
  const distributeIx = await lazyDistributorProgram.methods
@@ -312,14 +305,15 @@ export async function formTransaction({ program: lazyDistributorProgram, rewards
312
305
  },
313
306
  })
314
307
  .instruction();
315
- tx.add(distributeIx);
308
+ instructions.push(distributeIx);
316
309
  }
310
+ const tx = toVersionedTx(await populateMissingDraftInfo(provider.connection, {
311
+ instructions,
312
+ feePayer: payer ? payer : provider.wallet.publicKey,
313
+ }));
317
314
  // @ts-ignore
318
315
  const oracleUrls = lazyDistributorAcc.oracles.map((x) => x.url);
319
- let serTx = tx.serialize({
320
- requireAllSignatures: false,
321
- verifySignatures: false,
322
- });
316
+ let serTx = tx.serialize();
323
317
  if (!skipOracleSign) {
324
318
  for (const oracle of oracleUrls) {
325
319
  const res = await axios.post(`${oracle}`, {
@@ -328,32 +322,51 @@ export async function formTransaction({ program: lazyDistributorProgram, rewards
328
322
  serTx = Buffer.from(res.data.transaction);
329
323
  }
330
324
  }
331
- const finalTx = Transaction.from(serTx);
325
+ const finalTx = VersionedTransaction.deserialize(serTx);
332
326
  // Ensure the oracle didn't pull a fast one
333
- assertSameIxns(finalTx.instructions, tx.instructions);
327
+ assertSameTx(finalTx, tx);
334
328
  return finalTx;
335
329
  }
336
- function assertSameIxns(instructions, instructions1) {
337
- if (instructions.length !== instructions1.length) {
330
+ function assertSameTx(tx, tx1, luts = []) {
331
+ if (tx.message.compiledInstructions.length !== tx1.message.compiledInstructions.length) {
338
332
  throw new Error("Extra instructions added by oracle");
339
333
  }
340
- instructions.forEach((instruction, idx) => {
341
- const instruction1 = instructions1[idx];
342
- if (instruction.programId.toBase58() !== instruction1.programId.toBase58()) {
334
+ tx.message.compiledInstructions.forEach((instruction, idx) => {
335
+ const instruction1 = tx1.message.compiledInstructions[idx];
336
+ if (instruction.programIdIndex !== instruction1.programIdIndex) {
343
337
  throw new Error("Program id mismatch");
344
338
  }
345
- if (!instruction.data.equals(instruction1.data)) {
339
+ if (!Buffer.from(instruction.data).equals(Buffer.from(instruction1.data))) {
346
340
  throw new Error("Instruction data mismatch");
347
341
  }
348
- if (instruction.keys.length !== instruction1.keys.length) {
342
+ if (instruction.accountKeyIndexes.length !== instruction1.accountKeyIndexes.length) {
349
343
  throw new Error("Key length mismatch");
350
344
  }
351
- instruction.keys.forEach((key, idx) => {
352
- const key1 = instruction1.keys[idx];
353
- if (key.pubkey.toBase58() !== key1.pubkey.toBase58()) {
345
+ instruction.accountKeyIndexes.forEach((key, idx) => {
346
+ const key1 = instruction1.accountKeyIndexes[idx];
347
+ if (key !== key1) {
354
348
  throw new Error("Key mismatch");
355
349
  }
356
350
  });
357
351
  });
352
+ const keys = tx.message
353
+ .getAccountKeys({ addressLookupTableAccounts: luts })
354
+ .keySegments()
355
+ .reduce((acc, cur) => acc.concat(cur), []);
356
+ const keys1 = tx1.message
357
+ .getAccountKeys({
358
+ addressLookupTableAccounts: luts,
359
+ })
360
+ .keySegments()
361
+ .reduce((acc, cur) => acc.concat(cur), []);
362
+ ;
363
+ if (keys1.length !== keys.length) {
364
+ throw new Error("Account keys do not match");
365
+ }
366
+ for (let i = 0; i < keys.length; i++) {
367
+ if (!keys[i].equals(keys1[i])) {
368
+ throw new Error("Account key mismatch");
369
+ }
370
+ }
358
371
  }
359
372
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/client.ts"],"names":[],"mappings":"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"}
@@ -8,7 +8,7 @@ import { init as initLazy, lazyDistributorKey, PROGRAM_ID as LD_PID, } from "@he
8
8
  import { init as initRewards, PROGRAM_ID as RO_PID, } from "@helium/rewards-oracle-sdk";
9
9
  import { getAsset, HNT_MINT, IOT_MINT, toNumber, } from "@helium/spl-utils";
10
10
  import { AccountFetchCache } from "@helium/account-fetch-cache";
11
- import { Keypair, PublicKey, Transaction, ComputeBudgetProgram, } from "@solana/web3.js";
11
+ import { Keypair, PublicKey, ComputeBudgetProgram, VersionedTransaction, } from "@solana/web3.js";
12
12
  import { Op } from "sequelize";
13
13
  import fs from "fs";
14
14
  import { Reward, sequelize } from "./model";
@@ -213,7 +213,15 @@ export class OracleServer {
213
213
  });
214
214
  }
215
215
  async signTransaction(data) {
216
- const tx = Transaction.from(data);
216
+ const conn = this.ldProgram.provider.connection;
217
+ const tx = VersionedTransaction.deserialize(new Uint8Array(data));
218
+ const LUTs = (await Promise.all(tx.message.addressTableLookups.map((acc) => conn.getAddressLookupTable(acc.accountKey))))
219
+ .map((lut) => lut.value)
220
+ .filter((val) => val !== null);
221
+ const allAccs = tx.message
222
+ .getAccountKeys({ addressLookupTableAccounts: LUTs })
223
+ .keySegments()
224
+ .reduce((acc, cur) => acc.concat(cur), []);
217
225
  // validate only interacts with LD and RO programs and only calls setCurrentRewards, distributeRewards
218
226
  const setRewardIxs = [];
219
227
  let recipientToLazyDistToMint = {};
@@ -225,22 +233,24 @@ export class OracleServer {
225
233
  const merkleTreeIdxInitCompressionRecipient = initCompressionRecipientTx.accounts.findIndex((x) => x.name === "merkleTree");
226
234
  const recipientIdxInitRecipient = initRecipientTx.accounts.findIndex((x) => x.name === "recipient");
227
235
  const recipientIdxInitCompressionRecipient = initCompressionRecipientTx.accounts.findIndex((x) => x.name === "recipient");
228
- for (const ix of tx.instructions) {
229
- if (ix.programId.equals(ComputeBudgetProgram.programId)) {
236
+ for (const ix of tx.message.compiledInstructions) {
237
+ const programId = allAccs[ix.programIdIndex];
238
+ if (programId.equals(ComputeBudgetProgram.programId)) {
230
239
  continue;
231
240
  }
232
- if (!(ix.programId.equals(LD_PID) || ix.programId.equals(RO_PID))) {
241
+ if (!(programId.equals(LD_PID) || programId.equals(RO_PID))) {
233
242
  return {
234
243
  success: false,
235
244
  message: "Invalid instructions in transaction",
236
245
  };
237
246
  }
247
+ const data = Buffer.from(ix.data);
238
248
  let decoded;
239
- if (ix.programId.equals(LD_PID)) {
240
- decoded = this.ldProgram.coder.instruction.decode(ix.data);
249
+ if (programId.equals(LD_PID)) {
250
+ decoded = this.ldProgram.coder.instruction.decode(data);
241
251
  }
242
252
  else {
243
- decoded = this.roProgram.coder.instruction.decode(ix.data);
253
+ decoded = this.roProgram.coder.instruction.decode(data);
244
254
  }
245
255
  if (!decoded ||
246
256
  (decoded.name !== "setCurrentRewardsV0" &&
@@ -262,18 +272,18 @@ export class OracleServer {
262
272
  setRewardIxs.push(ix);
263
273
  // Since recipient wont exist to fetch to get the mint id, grab it from the init recipient ix
264
274
  if (decoded.name === "initializeRecipientV0") {
265
- const recipient = ix.keys[recipientIdxInitRecipient].pubkey.toBase58();
275
+ const recipient = allAccs[ix.accountKeyIndexes[recipientIdxInitRecipient]].toBase58();
266
276
  recipientToLazyDistToMint[recipient] ||= {};
267
- const lazyDist = ix.keys[lazyDistributorIdxInitRecipient].pubkey.toBase58();
277
+ const lazyDist = allAccs[ix.accountKeyIndexes[lazyDistributorIdxInitRecipient]].toBase58();
268
278
  recipientToLazyDistToMint[recipient][lazyDist] =
269
- ix.keys[mintIdx].pubkey;
279
+ allAccs[ix.accountKeyIndexes[mintIdx]];
270
280
  }
271
281
  // Since recipient wont exist to fetch to get the asset id, grab it from the init recipient ix
272
282
  if (decoded.name === "initializeCompressionRecipientV0") {
273
- const recipient = ix.keys[recipientIdxInitCompressionRecipient].pubkey.toBase58();
283
+ const recipient = allAccs[ix.accountKeyIndexes[recipientIdxInitCompressionRecipient]].toBase58();
274
284
  recipientToLazyDistToMint[recipient] ||= {};
275
- const lazyDist = ix.keys[lazyDistributorIdxInitCompressionRecipient].pubkey.toBase58();
276
- const merkleTree = ix.keys[merkleTreeIdxInitCompressionRecipient].pubkey;
285
+ const lazyDist = allAccs[ix.accountKeyIndexes[lazyDistributorIdxInitCompressionRecipient]].toBase58();
286
+ const merkleTree = allAccs[ix.accountKeyIndexes[merkleTreeIdxInitCompressionRecipient]];
277
287
  const index = decoded.data.args.index;
278
288
  recipientToLazyDistToMint[recipient][lazyDist] = await getLeafAssetId(merkleTree, new BN(index));
279
289
  }
@@ -294,12 +304,12 @@ export class OracleServer {
294
304
  let recipient, lazyDist, proposedCurrentRewards;
295
305
  let entityKey;
296
306
  let keyToAssetK = undefined;
297
- if (ix.keys[wrapperOracleKeyIdx].pubkey.equals(this.oracle.publicKey) &&
298
- ix.programId.equals(RO_PID)) {
299
- let decoded = this.roProgram.coder.instruction.decode(ix.data);
300
- recipient = ix.keys[wrapperRecipientIdx].pubkey;
301
- lazyDist = ix.keys[wrapperLazyDistIdx].pubkey;
302
- keyToAssetK = ix.keys[wrapperKeyToAssetIdx].pubkey;
307
+ if (allAccs[ix.accountKeyIndexes[wrapperOracleKeyIdx]].equals(this.oracle.publicKey) &&
308
+ allAccs[ix.programIdIndex].equals(RO_PID)) {
309
+ let decoded = this.roProgram.coder.instruction.decode(Buffer.from(ix.data));
310
+ recipient = allAccs[ix.accountKeyIndexes[wrapperRecipientIdx]];
311
+ lazyDist = allAccs[ix.accountKeyIndexes[wrapperLazyDistIdx]];
312
+ keyToAssetK = allAccs[ix.accountKeyIndexes[wrapperKeyToAssetIdx]];
303
313
  //@ts-ignore
304
314
  proposedCurrentRewards = decoded.data.args.currentRewards;
305
315
  entityKey = (await this.hemProgram.account.keyToAssetV0.fetch(keyToAssetK)).entityKey;
@@ -311,11 +321,11 @@ export class OracleServer {
311
321
  };
312
322
  }
313
323
  }
314
- else if (ix.keys[oracleKeyIdx].pubkey.equals(this.oracle.publicKey) &&
315
- ix.programId.equals(LD_PID)) {
316
- let decoded = this.ldProgram.coder.instruction.decode(ix.data);
317
- recipient = ix.keys[recipientIdx].pubkey;
318
- lazyDist = ix.keys[lazyDistIdx].pubkey;
324
+ else if (allAccs[ix.accountKeyIndexes[oracleKeyIdx]].equals(this.oracle.publicKey) &&
325
+ allAccs[ix.programIdIndex].equals(LD_PID)) {
326
+ let decoded = this.ldProgram.coder.instruction.decode(Buffer.from(ix.data));
327
+ recipient = allAccs[ix.accountKeyIndexes[recipientIdx]];
328
+ lazyDist = allAccs[ix.accountKeyIndexes[lazyDistIdx]];
319
329
  //@ts-ignore
320
330
  proposedCurrentRewards = decoded.data.args.currentRewards;
321
331
  }
@@ -348,18 +358,24 @@ export class OracleServer {
348
358
  }
349
359
  }
350
360
  // validate that this oracle is not the fee payer
351
- if (tx.feePayer?.equals(this.oracle.publicKey)) {
361
+ if (allAccs[0]?.equals(this.oracle.publicKey)) {
352
362
  return {
353
363
  success: false,
354
364
  message: "Cannot set this oracle as the fee payer",
355
365
  };
356
366
  }
357
- tx.partialSign(this.oracle);
358
- const serialized = tx.serialize({
359
- requireAllSignatures: false,
360
- verifySignatures: false,
361
- });
362
- return { success: true, transaction: serialized };
367
+ try {
368
+ // It's valid to send txs that don't actually need to be signed by us. Happens sometimes with
369
+ // tx packing.
370
+ tx.sign([this.oracle]);
371
+ }
372
+ catch (e) {
373
+ if (!e.message.toString().includes("Cannot sign with non signer key")) {
374
+ throw e;
375
+ }
376
+ }
377
+ const serialized = tx.serialize();
378
+ return { success: true, transaction: Buffer.from(serialized) };
363
379
  }
364
380
  async signBulkTransactionsHandler(req, res) {
365
381
  if (!req.body.transactions) {
@@ -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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"}