@helium/helium-admin-cli 0.10.0-alpha.0 → 0.10.0-alpha.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.
Files changed (42) hide show
  1. package/lib/cjs/backfill-mobile-deployment-infos.js +29 -14
  2. package/lib/cjs/backfill-mobile-deployment-infos.js.map +1 -1
  3. package/lib/cjs/end-epoch.js +237 -68
  4. package/lib/cjs/end-epoch.js.map +1 -1
  5. package/lib/cjs/queue-hotspot-claims.js +135 -0
  6. package/lib/cjs/queue-hotspot-claims.js.map +1 -0
  7. package/lib/cjs/queue-position-claims.js +160 -0
  8. package/lib/cjs/queue-position-claims.js.map +1 -0
  9. package/lib/cjs/remove-authorities.js +134 -0
  10. package/lib/cjs/remove-authorities.js.map +1 -0
  11. package/lib/cjs/requeue-hotspot-claims.js +111 -0
  12. package/lib/cjs/requeue-hotspot-claims.js.map +1 -0
  13. package/lib/cjs/start-cron.js +155 -0
  14. package/lib/cjs/start-cron.js.map +1 -0
  15. package/lib/esm/src/backfill-mobile-deployment-infos.js +32 -13
  16. package/lib/esm/src/backfill-mobile-deployment-infos.js.map +1 -1
  17. package/lib/esm/src/end-epoch.js +234 -69
  18. package/lib/esm/src/end-epoch.js.map +1 -1
  19. package/lib/esm/src/queue-hotspot-claims.js +94 -0
  20. package/lib/esm/src/queue-hotspot-claims.js.map +1 -0
  21. package/lib/esm/src/queue-position-claims.js +119 -0
  22. package/lib/esm/src/queue-position-claims.js.map +1 -0
  23. package/lib/esm/src/remove-authorities.js +93 -0
  24. package/lib/esm/src/remove-authorities.js.map +1 -0
  25. package/lib/esm/src/requeue-hotspot-claims.js +70 -0
  26. package/lib/esm/src/requeue-hotspot-claims.js.map +1 -0
  27. package/lib/esm/src/start-cron.js +114 -0
  28. package/lib/esm/src/start-cron.js.map +1 -0
  29. package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
  30. package/lib/types/src/backfill-mobile-deployment-infos.d.ts.map +1 -1
  31. package/lib/types/src/end-epoch.d.ts.map +1 -1
  32. package/lib/types/src/queue-hotspot-claims.d.ts +2 -0
  33. package/lib/types/src/queue-hotspot-claims.d.ts.map +1 -0
  34. package/lib/types/src/queue-position-claims.d.ts +2 -0
  35. package/lib/types/src/queue-position-claims.d.ts.map +1 -0
  36. package/lib/types/src/remove-authorities.d.ts +2 -0
  37. package/lib/types/src/remove-authorities.d.ts.map +1 -0
  38. package/lib/types/src/requeue-hotspot-claims.d.ts +2 -0
  39. package/lib/types/src/requeue-hotspot-claims.d.ts.map +1 -0
  40. package/lib/types/src/start-cron.d.ts +2 -0
  41. package/lib/types/src/start-cron.d.ts.map +1 -0
  42. package/package.json +19 -16
@@ -1 +1 @@
1
- {"version":3,"file":"backfill-mobile-deployment-infos.js","sourceRoot":"","sources":["../../../src/backfill-mobile-deployment-infos.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backfill-mobile-deployment-infos.js","sourceRoot":"","sources":["../../../src/backfill-mobile-deployment-infos.ts"],"names":[],"mappings":"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"}
@@ -1,88 +1,253 @@
1
- import { currentEpoch, daoEpochInfoKey, daoKey, EPOCH_LENGTH, init as initDao, } from "@helium/helium-sub-daos-sdk";
2
1
  import * as anchor from "@coral-xyz/anchor";
3
- import { PublicKey } from "@solana/web3.js";
2
+ import * as client from "@helium/distributor-oracle";
3
+ import { init as initHem, keyToAssetKey, } from "@helium/helium-entity-manager-sdk";
4
+ import { EPOCH_LENGTH, currentEpoch, daoEpochInfoKey, daoKey, init as initDao, subDaoEpochInfoKey, } from "@helium/helium-sub-daos-sdk";
5
+ import { init as initLazy, lazyDistributorKey, recipientKey, } from "@helium/lazy-distributor-sdk";
6
+ import { init as initBurn } from "@helium/no-emit-sdk";
7
+ import { init as initRewards } from "@helium/rewards-oracle-sdk";
8
+ import { HNT_MINT, IOT_MINT, MOBILE_MINT, createMintInstructions, sendAndConfirmWithRetry, sendInstructions, sendInstructionsWithPriorityFee, } from "@helium/spl-utils";
9
+ import { Keypair, PublicKey, SYSVAR_CLOCK_PUBKEY, } from "@solana/web3.js";
4
10
  import { BN } from "bn.js";
5
11
  import b58 from "bs58";
6
12
  import os from "os";
7
13
  import yargs from "yargs/yargs";
8
- import { sendInstructionsWithPriorityFee } from "@helium/spl-utils";
14
+ const IOT_OPERATIONS_FUND = "iot_operations_fund";
15
+ const NOT_EMITTED = "not_emitted";
16
+ const MAX_CLAIM_AMOUNT = new BN("207020547945205");
17
+ async function getSolanaUnixTimestamp(connection) {
18
+ const clock = await connection.getAccountInfo(SYSVAR_CLOCK_PUBKEY);
19
+ const unixTime = clock.data.readBigInt64LE(8 * 4);
20
+ return unixTime;
21
+ }
22
+ async function sleep(ms) {
23
+ return new Promise((resolve) => setTimeout(resolve, ms));
24
+ }
9
25
  export async function run(args = process.argv) {
10
- const yarg = yargs(args).options({
11
- wallet: {
12
- alias: "k",
13
- describe: "Anchor wallet keypair",
14
- default: `${os.homedir()}/.config/solana/id.json`,
15
- },
16
- url: {
17
- alias: "u",
18
- default: "http://127.0.0.1:8899",
19
- describe: "The solana url",
20
- },
21
- hntMint: {
22
- type: "string",
23
- describe: "Mint of the HNT token",
24
- },
25
- from: {
26
- type: "number",
27
- describe: "The timestamp to start ending epochs from",
28
- },
29
- });
30
- const argv = await yarg.argv;
31
- process.env.ANCHOR_WALLET = argv.wallet;
32
- process.env.ANCHOR_PROVIDER_URL = argv.url;
33
- anchor.setProvider(anchor.AnchorProvider.local(argv.url));
34
- const provider = anchor.getProvider();
35
- const heliumSubDaosProgram = await initDao(provider);
36
- const hntMint = new PublicKey(argv.hntMint);
37
- const dao = await daoKey(hntMint)[0];
38
- const subdaos = await heliumSubDaosProgram.account.subDaoV0.all([
39
- {
40
- memcmp: {
41
- offset: 8,
42
- bytes: b58.encode(dao.toBuffer()),
26
+ try {
27
+ const yarg = yargs(args).options({
28
+ wallet: {
29
+ alias: "k",
30
+ describe: "Anchor wallet keypair",
31
+ default: `${os.homedir()}/.config/solana/id.json`,
43
32
  },
44
- },
45
- ]);
46
- let targetTs = argv.from
47
- ? new BN(argv.from)
48
- : subdaos[0].account.vehntLastCalculatedTs;
49
- while (targetTs.toNumber() < new Date().valueOf() / 1000) {
50
- const epoch = currentEpoch(targetTs);
51
- console.log(epoch.toNumber(), targetTs.toNumber());
52
- const daoEpochInfo = await heliumSubDaosProgram.account.daoEpochInfoV0.fetchNullable(daoEpochInfoKey(dao, targetTs)[0]);
53
- if (!daoEpochInfo?.doneCalculatingScores) {
54
- for (const subDao of subdaos) {
55
- try {
56
- await sendInstructionsWithPriorityFee(provider, [
57
- await heliumSubDaosProgram.methods
58
- .calculateUtilityScoreV0({ epoch })
59
- .accountsPartial({ subDao: subDao.publicKey })
60
- .instruction(),
61
- ], {
62
- computeUnitLimit: 1000000,
63
- });
33
+ url: {
34
+ alias: "u",
35
+ default: "http://127.0.0.1:8899",
36
+ describe: "The solana url",
37
+ },
38
+ basePriorityFee: {
39
+ type: "number",
40
+ describe: "Base priority fee to be used",
41
+ },
42
+ from: {
43
+ type: "number",
44
+ describe: "The timestamp to start ending epochs from",
45
+ },
46
+ });
47
+ const argv = await yarg.argv;
48
+ process.env.ANCHOR_WALLET = argv.wallet;
49
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
50
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
51
+ const errors = [];
52
+ const provider = anchor.getProvider();
53
+ const heliumSubDaosProgram = await initDao(provider);
54
+ const hntMint = new PublicKey(HNT_MINT);
55
+ const unixNow = new Date().valueOf() / 1000;
56
+ const [dao] = daoKey(hntMint);
57
+ const basePriorityFee = Number(argv.basePriorityFee || 1);
58
+ const subDaos = await heliumSubDaosProgram.account.subDaoV0.all([
59
+ {
60
+ memcmp: {
61
+ offset: 8,
62
+ bytes: b58.encode(dao.toBuffer()),
63
+ },
64
+ },
65
+ ]);
66
+ let targetTs = argv.from
67
+ ? new BN(argv.from)
68
+ : subDaos.reduce((acc, subDao) => BN.min(acc, subDao.account.vehntLastCalculatedTs),
69
+ // Start one day back to ensure we at least close the epoch that the job is running in.
70
+ new BN(unixNow - 24 * 60 * 60));
71
+ const solanaTime = await getSolanaUnixTimestamp(provider.connection);
72
+ mainLoop: while (targetTs.toNumber() < unixNow) {
73
+ const epoch = currentEpoch(targetTs);
74
+ console.log(epoch.toNumber(), targetTs.toNumber());
75
+ const driftFromSolana = targetTs.toNumber() - Number(solanaTime);
76
+ // If Solana is within 5 minutes of the epoch we're trying to end, wait.
77
+ // This can happen because of solana clock drift.
78
+ if (driftFromSolana > 0 && driftFromSolana < 60 * 5) {
79
+ await sleep(driftFromSolana * 1000);
80
+ }
81
+ const [daoEpoch] = daoEpochInfoKey(dao, targetTs);
82
+ const daoEpochInfo = await heliumSubDaosProgram.account.daoEpochInfoV0.fetchNullable(daoEpoch);
83
+ if (!daoEpochInfo?.doneCalculatingScores) {
84
+ for (const subDao of subDaos) {
85
+ const [subDaoEpoch] = subDaoEpochInfoKey(subDao.publicKey, targetTs);
86
+ const subDaoEpochInfo = await heliumSubDaosProgram.account.subDaoEpochInfoV0.fetchNullable(subDaoEpoch);
87
+ if (!subDaoEpochInfo?.utilityScore) {
88
+ try {
89
+ await sendInstructionsWithPriorityFee(provider, [
90
+ await heliumSubDaosProgram.methods
91
+ .calculateUtilityScoreV0({ epoch })
92
+ .accountsPartial({ subDao: subDao.publicKey })
93
+ .instruction(),
94
+ ], {
95
+ computeUnitLimit: 1000000,
96
+ basePriorityFee: basePriorityFee,
97
+ });
98
+ }
99
+ catch (err) {
100
+ const strErr = JSON.stringify(err);
101
+ if (strErr.includes("Error Code: EpochNotOver") ||
102
+ strErr.includes(`{"Custom":6003}`)) {
103
+ // epoch not over
104
+ break mainLoop;
105
+ }
106
+ if (!strErr.includes("Error Code: UtilityScoreAlreadyCalculated") ||
107
+ !strErr.includes(`{"Custom":6002}`))
108
+ errors.push(`Failed to calculate utility score for ${subDao.account.dntMint.toBase58()}: ${err}`);
109
+ }
110
+ }
64
111
  }
65
- catch (e) {
66
- console.log(`Failed to calculate utility score for ${subDao.account.dntMint.toBase58()}: ${e.message}`);
112
+ }
113
+ for (const subDao of subDaos) {
114
+ if (!daoEpochInfo?.doneIssuingRewards) {
115
+ const [subDaoEpoch] = subDaoEpochInfoKey(subDao.publicKey, targetTs);
116
+ const subDaoEpochInfo = await heliumSubDaosProgram.account.subDaoEpochInfoV0.fetchNullable(subDaoEpoch);
117
+ if (!subDaoEpochInfo?.rewardsIssuedAt) {
118
+ try {
119
+ await sendInstructionsWithPriorityFee(provider, [
120
+ await heliumSubDaosProgram.methods
121
+ .issueRewardsV0({ epoch })
122
+ .accountsPartial({ subDao: subDao.publicKey })
123
+ .instruction(),
124
+ ], {
125
+ basePriorityFee: basePriorityFee,
126
+ });
127
+ }
128
+ catch (err) {
129
+ errors.push(`Failed to issue rewards for ${subDao.account.dntMint.toBase58()}: ${err}`);
130
+ }
131
+ }
67
132
  }
68
133
  }
134
+ targetTs = targetTs.add(new BN(EPOCH_LENGTH));
69
135
  }
70
- if (!daoEpochInfo?.doneIssuingRewards) {
71
- for (const subDao of subdaos) {
72
- try {
73
- await sendInstructionsWithPriorityFee(provider, [
74
- await heliumSubDaosProgram.methods
75
- .issueRewardsV0({ epoch })
76
- .accountsPartial({ subDao: subDao.publicKey })
136
+ // distribute iot operations fund
137
+ const hemProgram = await initHem(provider);
138
+ const lazyProgram = await initLazy(provider);
139
+ const rewardsOracleProgram = await initRewards(provider);
140
+ for (const token of [IOT_MINT, HNT_MINT]) {
141
+ const [lazyDistributor] = lazyDistributorKey(token);
142
+ const [keyToAsset] = keyToAssetKey(dao, IOT_OPERATIONS_FUND, "utf8");
143
+ const assetId = (await hemProgram.account.keyToAssetV0.fetch(keyToAsset))
144
+ .asset;
145
+ const [recipient] = recipientKey(lazyDistributor, assetId);
146
+ if (!(await provider.connection.getAccountInfo(recipient))) {
147
+ const method = lazyProgram.methods.initializeRecipientV0().accountsPartial({
148
+ lazyDistributor,
149
+ mint: assetId,
150
+ });
151
+ await sendInstructionsWithPriorityFee(provider, [await method.instruction()], { basePriorityFee });
152
+ }
153
+ const rewards = await client.getCurrentRewards(lazyProgram, lazyDistributor, assetId);
154
+ const pending = await client.getPendingRewards(lazyProgram, lazyDistributor, daoKey(HNT_MINT)[0], [IOT_OPERATIONS_FUND], "utf8");
155
+ // Avoid claiming too much and tripping the breaker
156
+ if (new BN(pending[IOT_OPERATIONS_FUND]).gt(MAX_CLAIM_AMOUNT)) {
157
+ rewards[0].currentRewards = new BN(rewards[0].currentRewards)
158
+ .sub(new BN(pending[IOT_OPERATIONS_FUND]))
159
+ .add(MAX_CLAIM_AMOUNT)
160
+ .toString();
161
+ }
162
+ const tx = await client.formTransaction({
163
+ program: lazyProgram,
164
+ rewardsOracleProgram: rewardsOracleProgram,
165
+ provider,
166
+ rewards,
167
+ asset: assetId,
168
+ lazyDistributor,
169
+ });
170
+ const signed = await provider.wallet.signTransaction(tx);
171
+ try {
172
+ await sendAndConfirmWithRetry(provider.connection, Buffer.from(signed.serialize()), { skipPreflight: true }, "confirmed");
173
+ }
174
+ catch (err) {
175
+ errors.push(`Failed to distribute iot op funds: ${err}`);
176
+ }
177
+ }
178
+ // Only do this if that feature has been deployed
179
+ if (hemProgram.methods.issueNotEmittedEntityV0) {
180
+ console.log("Issuing no_emit");
181
+ const noEmitProgram = await initBurn(provider);
182
+ const tokens = [MOBILE_MINT, IOT_MINT, HNT_MINT];
183
+ for (const token of tokens) {
184
+ const [lazyDistributor] = lazyDistributorKey(token);
185
+ const notEmittedEntityKta = keyToAssetKey(dao, NOT_EMITTED, "utf-8")[0];
186
+ // Issue the burn entity if it doesn't exist yet.
187
+ if (!(await provider.connection.getAccountInfo(notEmittedEntityKta))) {
188
+ const mint = Keypair.generate();
189
+ await sendInstructions(provider, [
190
+ ...(await createMintInstructions(provider, 0, provider.wallet.publicKey, provider.wallet.publicKey, mint)),
191
+ await hemProgram.methods
192
+ .issueNotEmittedEntityV0()
193
+ .accountsPartial({
194
+ dao,
195
+ mint: mint.publicKey,
196
+ })
77
197
  .instruction(),
78
- ]);
198
+ ], [mint]);
199
+ }
200
+ const assetId = (await hemProgram.account.keyToAssetV0.fetch(notEmittedEntityKta)).asset;
201
+ const [recipient] = recipientKey(lazyDistributor, assetId);
202
+ try {
203
+ if (!(await provider.connection.getAccountInfo(recipient))) {
204
+ const method = lazyProgram.methods
205
+ .initializeRecipientV0()
206
+ .accountsPartial({
207
+ lazyDistributor,
208
+ mint: assetId,
209
+ });
210
+ await sendInstructionsWithPriorityFee(provider, [await method.instruction()], { basePriorityFee });
211
+ }
212
+ const rewards = await client.getCurrentRewards(lazyProgram, lazyDistributor, assetId);
213
+ const tx = await client.formTransaction({
214
+ program: lazyProgram,
215
+ rewardsOracleProgram: rewardsOracleProgram,
216
+ provider,
217
+ rewards,
218
+ asset: assetId,
219
+ lazyDistributor,
220
+ });
221
+ const signed = await provider.wallet.signTransaction(tx);
222
+ await sendAndConfirmWithRetry(provider.connection, Buffer.from(signed.serialize()), { skipPreflight: true }, "confirmed");
79
223
  }
80
- catch (e) {
81
- console.log(`Failed to issue rewards for ${subDao.account.dntMint.toBase58()}: ${e.message}`);
224
+ catch (err) {
225
+ errors.push(`Failed to distribute burn funds for mint ${token.toBase58()}: ${err}`);
82
226
  }
83
227
  }
84
- targetTs = targetTs.add(new BN(EPOCH_LENGTH));
228
+ try {
229
+ console.log("No emit");
230
+ await sendInstructions(provider, [
231
+ await noEmitProgram.methods
232
+ .noEmitV0()
233
+ .accountsPartial({
234
+ mint: hntMint,
235
+ })
236
+ .instruction(),
237
+ ]);
238
+ }
239
+ catch (err) {
240
+ errors.push(`Failed to run noEmitV0`);
241
+ }
85
242
  }
243
+ if (!errors.length)
244
+ process.exit(0);
245
+ errors.map(console.log);
246
+ process.exit(1);
247
+ }
248
+ catch (err) {
249
+ console.log(err);
250
+ process.exit(1);
86
251
  }
87
252
  }
88
253
  //# sourceMappingURL=end-epoch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"end-epoch.js","sourceRoot":"","sources":["../../../src/end-epoch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"end-epoch.js","sourceRoot":"","sources":["../../../src/end-epoch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { cronJobKey, cronJobNameMappingKey, cronJobTransactionKey, init as initCron } from "@helium/cron-sdk";
3
+ import { sendInstructionsWithPriorityFee } from "@helium/spl-utils";
4
+ import { init as initTuktuk, taskKey } from "@helium/tuktuk-sdk";
5
+ import { PublicKey, SystemProgram, } from "@solana/web3.js";
6
+ import os from "os";
7
+ import yargs from "yargs/yargs";
8
+ import { init as initHplCrons, entityCronAuthorityKey, nextAvailableTaskIds, } from "@helium/hpl-crons-sdk";
9
+ export async function run(args = process.argv) {
10
+ const yarg = yargs(args).options({
11
+ wallet: {
12
+ alias: "k",
13
+ describe: "Anchor wallet keypair",
14
+ default: `${os.homedir()}/.config/solana/id.json`,
15
+ },
16
+ url: {
17
+ alias: "u",
18
+ default: "http://127.0.0.1:8899",
19
+ describe: "The solana url",
20
+ },
21
+ taskQueue: {
22
+ required: true,
23
+ type: "string",
24
+ alias: "t",
25
+ describe: "The task queue to queue",
26
+ default: "H39gEszvsi6AT4rYBiJTuZHJSF5hMHy6CKGTd7wzhsg7",
27
+ },
28
+ keyToAsset: {
29
+ required: true,
30
+ type: "string",
31
+ describe: "The key to asset to queue",
32
+ },
33
+ fundingAmount: {
34
+ required: true,
35
+ type: "string",
36
+ describe: "The amount of lamports to fund the cron job with",
37
+ },
38
+ });
39
+ const argv = await yarg.argv;
40
+ process.env.ANCHOR_WALLET = argv.wallet;
41
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
42
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
43
+ const provider = anchor.getProvider();
44
+ const taskQueue = new PublicKey(argv.taskQueue);
45
+ const program = await initHplCrons(provider);
46
+ const cronProgram = await initCron(provider);
47
+ const tuktukProgram = await initTuktuk(provider);
48
+ const taskQueueAcc = await tuktukProgram.account.taskQueueV0.fetch(taskQueue);
49
+ const nextAvailable = nextAvailableTaskIds(taskQueueAcc.taskBitmap, 1)[0];
50
+ const [task] = taskKey(taskQueue, nextAvailable);
51
+ const keyToAsset = new PublicKey(argv.keyToAsset);
52
+ const authority = entityCronAuthorityKey(provider.wallet.publicKey)[0];
53
+ const cronJob = cronJobKey(authority, 0)[0];
54
+ if (!(await provider.connection.getAccountInfo(cronJob))) {
55
+ await sendInstructionsWithPriorityFee(provider, [
56
+ await program.methods
57
+ .initEntityClaimCronV0({
58
+ schedule: "0 0 2 * * *",
59
+ })
60
+ .accountsPartial({
61
+ taskQueue,
62
+ cronJob,
63
+ task,
64
+ cronJobNameMapping: cronJobNameMappingKey(authority, "entity_claim")[0],
65
+ })
66
+ .instruction(),
67
+ SystemProgram.transfer({
68
+ fromPubkey: provider.wallet.publicKey,
69
+ toPubkey: cronJob,
70
+ lamports: BigInt(argv.fundingAmount),
71
+ }),
72
+ ], {
73
+ computeUnitLimit: 500000
74
+ });
75
+ }
76
+ console.log("Cron job account", cronJob.toBase58());
77
+ const cronJobAcc = await cronProgram.account.cronJobV0.fetch(cronJob);
78
+ const instructions = [];
79
+ const { instruction } = await program.methods
80
+ .addEntityToCronV0({
81
+ index: cronJobAcc.nextTransactionId,
82
+ })
83
+ .accountsPartial({
84
+ keyToAsset,
85
+ cronJob,
86
+ cronJobTransaction: cronJobTransactionKey(cronJob, cronJobAcc.nextTransactionId)[0],
87
+ })
88
+ .prepare();
89
+ instructions.push(instruction);
90
+ await sendInstructionsWithPriorityFee(provider, instructions, {
91
+ computeUnitLimit: 500000,
92
+ });
93
+ }
94
+ //# sourceMappingURL=queue-hotspot-claims.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-hotspot-claims.js","sourceRoot":"","sources":["../../../src/queue-hotspot-claims.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,119 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { delegatedPositionKey, EPOCH_LENGTH, init as initHsd, } from "@helium/helium-sub-daos-sdk";
3
+ import { sendInstructionsWithPriorityFee } from "@helium/spl-utils";
4
+ import { customSignerKey, init as initTuktuk, taskKey, } from "@helium/tuktuk-sdk";
5
+ import { init as initVsr } from "@helium/voter-stake-registry-sdk";
6
+ import { getAccount, getAssociatedTokenAddressSync } from "@solana/spl-token";
7
+ import { PublicKey, SystemProgram, } from "@solana/web3.js";
8
+ import BN from "bn.js";
9
+ import os from "os";
10
+ import yargs from "yargs/yargs";
11
+ import { init as initHplCrons, delegationClaimBotKey, nextAvailableTaskIds, } from "@helium/hpl-crons-sdk";
12
+ export async function run(args = process.argv) {
13
+ const yarg = yargs(args).options({
14
+ wallet: {
15
+ alias: "k",
16
+ describe: "Anchor wallet keypair",
17
+ default: `${os.homedir()}/.config/solana/id.json`,
18
+ },
19
+ url: {
20
+ alias: "u",
21
+ default: "http://127.0.0.1:8899",
22
+ describe: "The solana url",
23
+ },
24
+ taskQueue: {
25
+ required: true,
26
+ type: "string",
27
+ alias: "t",
28
+ describe: "The task queue to queue",
29
+ default: "H39gEszvsi6AT4rYBiJTuZHJSF5hMHy6CKGTd7wzhsg7",
30
+ },
31
+ position: {
32
+ required: true,
33
+ type: "string",
34
+ describe: "The position to trigger automated claims for",
35
+ },
36
+ });
37
+ const argv = await yarg.argv;
38
+ process.env.ANCHOR_WALLET = argv.wallet;
39
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
40
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
41
+ const provider = anchor.getProvider();
42
+ const taskQueue = new PublicKey(argv.taskQueue);
43
+ const program = await initHplCrons(provider);
44
+ const vsrProgram = await initVsr(provider);
45
+ const hsdProgram = await initHsd(provider);
46
+ const tuktukProgram = await initTuktuk(provider);
47
+ const taskQueueAcc = await tuktukProgram.account.taskQueueV0.fetch(taskQueue);
48
+ const nextAvailable = nextAvailableTaskIds(taskQueueAcc.taskBitmap, 1)[0];
49
+ const [task] = taskKey(taskQueue, nextAvailable);
50
+ const position = new PublicKey(argv.position);
51
+ const positionAcc = await vsrProgram.account.positionV0.fetch(position);
52
+ const delegatedPosition = delegatedPositionKey(position)[0];
53
+ const delegatedPositionAcc = await hsdProgram.account.delegatedPositionV0.fetch(delegatedPosition);
54
+ const [customWallet, bump] = customSignerKey(taskQueue, [
55
+ Buffer.from("helium", "utf-8"),
56
+ ]);
57
+ const [positionClaimPayer, positionClaimPayerBump] = customSignerKey(taskQueue, [Buffer.from("position", "utf-8")]);
58
+ const bumpBuffer = Buffer.alloc(1);
59
+ bumpBuffer.writeUint8(bump);
60
+ const positionClaimPayerBumpBuffer = Buffer.alloc(1);
61
+ positionClaimPayerBumpBuffer.writeUint8(positionClaimPayerBump);
62
+ const claimBot = delegationClaimBotKey(taskQueue, delegatedPosition)[0];
63
+ const instructions = [];
64
+ const account = await provider.connection.getTokenLargestAccounts(positionAcc.mint);
65
+ const positionTokenAccount = account.value[0];
66
+ if (!(await provider.connection.getAccountInfo(claimBot))) {
67
+ instructions.push(await program.methods
68
+ .initDelegationClaimBotV0()
69
+ .accountsPartial({
70
+ delegatedPosition,
71
+ position: delegatedPositionAcc.position,
72
+ taskQueue,
73
+ mint: positionAcc.mint,
74
+ positionTokenAccount: positionTokenAccount.address,
75
+ })
76
+ .instruction());
77
+ // @ts-ignore
78
+ const endEpoch = delegatedPositionAcc.expirationTs.div(new BN(EPOCH_LENGTH));
79
+ instructions.push(SystemProgram.transfer({
80
+ fromPubkey: provider.wallet.publicKey,
81
+ toPubkey: claimBot,
82
+ lamports: BigInt(taskQueueAcc.minCrankReward
83
+ .mul(endEpoch.sub(
84
+ // @ts-ignore
85
+ delegatedPositionAcc.lastClaimedEpoch))
86
+ .toString()),
87
+ }));
88
+ }
89
+ console.log("Payer for claims", positionClaimPayer.toBase58());
90
+ // TODO: Have to do a bunch of manual stuff because the anchor 28 IDL
91
+ // prevents account resolution from working :/
92
+ const subDaoAcc = await hsdProgram.account.subDaoV0.fetch(delegatedPositionAcc.subDao);
93
+ const daoAcc = await hsdProgram.account.daoV0.fetch(subDaoAcc.dao);
94
+ const { instruction, pubkeys } = await program.methods
95
+ .startDelegationClaimBotV0({
96
+ taskId: nextAvailable,
97
+ })
98
+ .accountsPartial({
99
+ delegationClaimBot: claimBot,
100
+ subDao: delegatedPositionAcc.subDao,
101
+ dao: subDaoAcc.dao,
102
+ mint: positionAcc.mint,
103
+ hntMint: daoAcc.hntMint,
104
+ positionAuthority: (await getAccount(provider.connection, positionTokenAccount.address)).owner,
105
+ positionTokenAccount: positionTokenAccount.address,
106
+ taskQueue,
107
+ delegatedPosition,
108
+ systemProgram: SystemProgram.programId,
109
+ delegatorAta: getAssociatedTokenAddressSync(daoAcc.hntMint, provider.wallet.publicKey),
110
+ task,
111
+ })
112
+ .prepare();
113
+ console.log("Queue authority is", pubkeys.queueAuthority.toBase58());
114
+ instructions.push(instruction);
115
+ await sendInstructionsWithPriorityFee(provider, instructions, {
116
+ computeUnitLimit: 500000,
117
+ });
118
+ }
119
+ //# sourceMappingURL=queue-position-claims.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queue-position-claims.js","sourceRoot":"","sources":["../../../src/queue-position-claims.ts"],"names":[],"mappings":"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"}