@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
@@ -0,0 +1,93 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { daoKey, init as initHsd, subDaoKey } from "@helium/helium-sub-daos-sdk";
3
+ import { init as initCircuitBreaker, mintWindowedBreakerKey } from "@helium/circuit-breaker-sdk";
4
+ import { HNT_MINT, IOT_MINT, MOBILE_MINT } from "@helium/spl-utils";
5
+ import { PublicKey } from "@solana/web3.js";
6
+ import Squads from "@sqds/sdk";
7
+ import os from "os";
8
+ import yargs from "yargs/yargs";
9
+ import { loadKeypair, sendInstructionsOrSquads } from "./utils";
10
+ export async function run(args = process.argv) {
11
+ const yarg = yargs(args).options({
12
+ wallet: {
13
+ alias: "k",
14
+ describe: "Anchor wallet keypair",
15
+ default: `${os.homedir()}/.config/solana/id.json`,
16
+ },
17
+ url: {
18
+ alias: "u",
19
+ default: "http://127.0.0.1:8899",
20
+ describe: "The solana url",
21
+ },
22
+ executeTransaction: {
23
+ type: "boolean",
24
+ },
25
+ multisig: {
26
+ type: "string",
27
+ describe: "Address of the squads multisig to be authority. If not provided, your wallet will be the authority",
28
+ },
29
+ authorityIndex: {
30
+ type: "number",
31
+ describe: "Authority index for squads. Defaults to 1",
32
+ default: 1,
33
+ },
34
+ });
35
+ const argv = await yarg.argv;
36
+ process.env.ANCHOR_WALLET = argv.wallet;
37
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
38
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
39
+ const provider = anchor.getProvider();
40
+ const wallet = new anchor.Wallet(loadKeypair(argv.wallet));
41
+ const program = await initHsd(provider);
42
+ const cbProgram = await initCircuitBreaker(provider);
43
+ const instructions = [];
44
+ const dao = daoKey(HNT_MINT)[0];
45
+ const daoAcc = await program.account.daoV0.fetch(dao);
46
+ instructions.push(await program.methods
47
+ .tempRemoveMintAndFreezeAuthorities()
48
+ .accountsPartial({
49
+ authority: daoAcc.authority,
50
+ dao,
51
+ mobileMint: MOBILE_MINT,
52
+ iotMint: IOT_MINT,
53
+ hntMint: HNT_MINT,
54
+ iotSubDao: subDaoKey(IOT_MINT)[0],
55
+ mobileSubDao: subDaoKey(MOBILE_MINT)[0],
56
+ })
57
+ .instruction());
58
+ const mobileCB = mintWindowedBreakerKey(MOBILE_MINT)[0];
59
+ const mobileCBAcc = await cbProgram.account.mintWindowedCircuitBreakerV0.fetch(mobileCB);
60
+ instructions.push(await cbProgram.methods
61
+ .removeMintAuthorityV0()
62
+ .accountsPartial({
63
+ mint: MOBILE_MINT,
64
+ circuitBreaker: mobileCB,
65
+ rentRefund: mobileCBAcc.authority,
66
+ authority: mobileCBAcc.authority,
67
+ })
68
+ .instruction());
69
+ const iotCB = mintWindowedBreakerKey(IOT_MINT)[0];
70
+ const iotCBAcc = await cbProgram.account.mintWindowedCircuitBreakerV0.fetch(iotCB);
71
+ instructions.push(await cbProgram.methods
72
+ .removeMintAuthorityV0()
73
+ .accountsPartial({
74
+ mint: IOT_MINT,
75
+ circuitBreaker: iotCB,
76
+ rentRefund: iotCBAcc.authority,
77
+ authority: iotCBAcc.authority,
78
+ })
79
+ .instruction());
80
+ const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
81
+ commitmentOrConfig: "finalized",
82
+ });
83
+ await sendInstructionsOrSquads({
84
+ provider,
85
+ instructions,
86
+ executeTransaction: argv.executeTransaction,
87
+ squads,
88
+ multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
89
+ authorityIndex: argv.authorityIndex,
90
+ signers: [],
91
+ });
92
+ }
93
+ //# sourceMappingURL=remove-authorities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"remove-authorities.js","sourceRoot":"","sources":["../../../src/remove-authorities.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,70 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { cronJobKey, cronJobNameMappingKey, 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
+ fundingAmount: {
29
+ required: true,
30
+ type: "string",
31
+ describe: "The amount of lamports to fund the cron job with",
32
+ },
33
+ });
34
+ const argv = await yarg.argv;
35
+ process.env.ANCHOR_WALLET = argv.wallet;
36
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
37
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
38
+ const provider = anchor.getProvider();
39
+ const taskQueue = new PublicKey(argv.taskQueue);
40
+ const program = await initHplCrons(provider);
41
+ const cronProgram = await initCron(provider);
42
+ const tuktukProgram = await initTuktuk(provider);
43
+ const taskQueueAcc = await tuktukProgram.account.taskQueueV0.fetch(taskQueue);
44
+ const nextAvailable = nextAvailableTaskIds(taskQueueAcc.taskBitmap, 1)[0];
45
+ const [task] = taskKey(taskQueue, nextAvailable);
46
+ const authority = entityCronAuthorityKey(provider.wallet.publicKey)[0];
47
+ const cronJob = cronJobKey(authority, 0)[0];
48
+ const cronJobAcc = await cronProgram.account.cronJobV0.fetch(cronJob);
49
+ if (cronJobAcc.removedFromQueue) {
50
+ await sendInstructionsWithPriorityFee(provider, [
51
+ await program.methods
52
+ .requeueEntityClaimCronV0()
53
+ .accounts({
54
+ taskQueue,
55
+ cronJob,
56
+ task,
57
+ cronJobNameMapping: cronJobNameMappingKey(authority, "entity_claim")[0],
58
+ })
59
+ .instruction(),
60
+ SystemProgram.transfer({
61
+ fromPubkey: provider.wallet.publicKey,
62
+ toPubkey: cronJob,
63
+ lamports: BigInt(argv.fundingAmount),
64
+ }),
65
+ ], {
66
+ computeUnitLimit: 500000,
67
+ });
68
+ }
69
+ }
70
+ //# sourceMappingURL=requeue-hotspot-claims.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"requeue-hotspot-claims.js","sourceRoot":"","sources":["../../../src/requeue-hotspot-claims.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,114 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { sendInstructionsWithPriorityFee } from "@helium/spl-utils";
3
+ import { compileTransaction, customSignerKey, init as initTuktuk, taskKey, } from "@helium/tuktuk-sdk";
4
+ import { PublicKey, SystemProgram, } from "@solana/web3.js";
5
+ import os from "os";
6
+ import yargs from "yargs/yargs";
7
+ import { init as initHplCrons, epochTrackerKey, taskReturnAccountKey } from "@helium/hpl-crons-sdk";
8
+ export async function run(args = process.argv) {
9
+ const yarg = yargs(args).options({
10
+ wallet: {
11
+ alias: "k",
12
+ describe: "Anchor wallet keypair",
13
+ default: `${os.homedir()}/.config/solana/id.json`,
14
+ },
15
+ url: {
16
+ alias: "u",
17
+ default: "http://127.0.0.1:8899",
18
+ describe: "The solana url",
19
+ },
20
+ index: {
21
+ type: "number",
22
+ alias: "i",
23
+ default: 0,
24
+ describe: "The index of the task to queue",
25
+ },
26
+ taskQueue: {
27
+ required: true,
28
+ type: "string",
29
+ alias: "t",
30
+ describe: "The task queue to queue",
31
+ },
32
+ epoch: {
33
+ optional: true,
34
+ type: "number",
35
+ describe: "The epoch to set",
36
+ },
37
+ });
38
+ const argv = await yarg.argv;
39
+ process.env.ANCHOR_WALLET = argv.wallet;
40
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
41
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
42
+ const provider = anchor.getProvider();
43
+ const taskQueue = new PublicKey(argv.taskQueue);
44
+ const program = await initHplCrons(provider);
45
+ const tuktukProgram = await initTuktuk(provider);
46
+ const [task] = taskKey(taskQueue, argv.index);
47
+ const dao = new PublicKey("BQ3MCuTT5zVBhNfQ4SjMh3NPVhFy73MPV8rjfq5d1zie");
48
+ const iotSubDao = new PublicKey("39Lw1RH6zt8AJvKn3BTxmUDofzduCM2J3kSaGDZ8L7Sk");
49
+ const mobileSubDao = new PublicKey("Gm9xDCJawDEKDrrQW6haw94gABaYzQwCq4ZQU8h8bd22");
50
+ const [customWallet, bump] = customSignerKey(taskQueue, [
51
+ Buffer.from("helium", "utf-8"),
52
+ ]);
53
+ const bumpBuffer = Buffer.alloc(1);
54
+ bumpBuffer.writeUint8(bump);
55
+ console.log("Using custom wallet", customWallet.toBase58());
56
+ const [epochTracker, etBumpSeed] = epochTrackerKey(dao);
57
+ let ixs = [];
58
+ if (argv.epoch) {
59
+ ixs.push(await program.methods
60
+ .updateEpochTracker({
61
+ epoch: new anchor.BN(argv.epoch),
62
+ authority: provider.wallet.publicKey,
63
+ })
64
+ .accountsStrict({
65
+ authority: provider.wallet.publicKey,
66
+ epochTracker,
67
+ })
68
+ .instruction());
69
+ }
70
+ if (!(await provider.connection.getAccountInfo(epochTracker))) {
71
+ ixs.push(await program.methods
72
+ .initEpochTracker()
73
+ .accountsPartial({
74
+ dao,
75
+ authority: provider.wallet.publicKey,
76
+ })
77
+ .instruction());
78
+ }
79
+ const epochTrackerAcc = await program.account.epochTrackerV0.fetch(epochTracker);
80
+ const { transaction, remainingAccounts } = compileTransaction([
81
+ await program.methods
82
+ .queueEndEpoch()
83
+ .accountsStrict({
84
+ payer: customWallet,
85
+ taskReturnAccount: taskReturnAccountKey()[0],
86
+ epochTracker: epochTrackerKey(dao)[0],
87
+ taskQueue,
88
+ dao,
89
+ iotSubDao,
90
+ mobileSubDao,
91
+ systemProgram: SystemProgram.programId,
92
+ })
93
+ .instruction(),
94
+ ], [[Buffer.from("helium", "utf-8"), bumpBuffer]]);
95
+ ixs.push(await tuktukProgram.methods
96
+ .queueTaskV0({
97
+ id: argv.index,
98
+ trigger: { now: {} },
99
+ crankReward: null,
100
+ freeTasks: 2,
101
+ transaction: {
102
+ compiledV0: [transaction],
103
+ },
104
+ description: `queue end epoch ${epochTrackerAcc.epoch}`,
105
+ })
106
+ .accountsPartial({
107
+ task,
108
+ taskQueue,
109
+ })
110
+ .remainingAccounts(remainingAccounts)
111
+ .instruction());
112
+ await sendInstructionsWithPriorityFee(provider, ixs);
113
+ }
114
+ //# sourceMappingURL=start-cron.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"start-cron.js","sourceRoot":"","sources":["../../../src/start-cron.ts"],"names":[],"mappings":"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"}