@helium/helium-admin-cli 0.9.23 → 0.9.24

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 (66) hide show
  1. package/lib/cjs/backfill-mobile-deployment-infos.js +223 -0
  2. package/lib/cjs/backfill-mobile-deployment-infos.js.map +1 -0
  3. package/lib/cjs/create-boost-config.js +4 -2
  4. package/lib/cjs/create-boost-config.js.map +1 -1
  5. package/lib/cjs/end-epoch.js +237 -68
  6. package/lib/cjs/end-epoch.js.map +1 -1
  7. package/lib/cjs/log-hotspot.js +17 -3
  8. package/lib/cjs/log-hotspot.js.map +1 -1
  9. package/lib/cjs/remove-authorities.js +134 -0
  10. package/lib/cjs/remove-authorities.js.map +1 -0
  11. package/lib/cjs/swap-carrier-stake.js +143 -0
  12. package/lib/cjs/swap-carrier-stake.js.map +1 -0
  13. package/lib/cjs/{fix-claimed-epochs.js → swap-maker-stake.js} +59 -22
  14. package/lib/cjs/swap-maker-stake.js.map +1 -0
  15. package/lib/cjs/unrug-hotspots.js +167 -0
  16. package/lib/cjs/unrug-hotspots.js.map +1 -0
  17. package/lib/cjs/update-boost-config.js +1 -0
  18. package/lib/cjs/update-boost-config.js.map +1 -1
  19. package/lib/cjs/update-matching-destinations.js +116 -0
  20. package/lib/cjs/update-matching-destinations.js.map +1 -0
  21. package/lib/esm/src/backfill-mobile-deployment-infos.js +198 -0
  22. package/lib/esm/src/backfill-mobile-deployment-infos.js.map +1 -0
  23. package/lib/esm/src/create-boost-config.js +4 -2
  24. package/lib/esm/src/create-boost-config.js.map +1 -1
  25. package/lib/esm/src/end-epoch.js +234 -69
  26. package/lib/esm/src/end-epoch.js.map +1 -1
  27. package/lib/esm/src/log-hotspot.js +18 -4
  28. package/lib/esm/src/log-hotspot.js.map +1 -1
  29. package/lib/esm/src/remove-authorities.js +93 -0
  30. package/lib/esm/src/remove-authorities.js.map +1 -0
  31. package/lib/esm/src/swap-carrier-stake.js +102 -0
  32. package/lib/esm/src/swap-carrier-stake.js.map +1 -0
  33. package/lib/esm/src/swap-maker-stake.js +87 -0
  34. package/lib/esm/src/swap-maker-stake.js.map +1 -0
  35. package/lib/esm/src/unrug-hotspots.js +126 -0
  36. package/lib/esm/src/unrug-hotspots.js.map +1 -0
  37. package/lib/esm/src/update-boost-config.js +1 -0
  38. package/lib/esm/src/update-boost-config.js.map +1 -1
  39. package/lib/esm/src/update-matching-destinations.js +75 -0
  40. package/lib/esm/src/update-matching-destinations.js.map +1 -0
  41. package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
  42. package/lib/types/src/backfill-mobile-deployment-infos.d.ts +4 -0
  43. package/lib/types/src/backfill-mobile-deployment-infos.d.ts.map +1 -0
  44. package/lib/types/src/create-boost-config.d.ts.map +1 -1
  45. package/lib/types/src/end-epoch.d.ts.map +1 -1
  46. package/lib/types/src/log-hotspot.d.ts.map +1 -1
  47. package/lib/types/src/{fix-claimed-epochs.d.ts → remove-authorities.d.ts} +1 -1
  48. package/lib/types/src/remove-authorities.d.ts.map +1 -0
  49. package/lib/types/src/{migrate-to-hip-138.d.ts → swap-carrier-stake.d.ts} +1 -1
  50. package/lib/types/src/swap-carrier-stake.d.ts.map +1 -0
  51. package/lib/types/src/swap-maker-stake.d.ts +2 -0
  52. package/lib/types/src/swap-maker-stake.d.ts.map +1 -0
  53. package/lib/types/src/unrug-hotspots.d.ts +2 -0
  54. package/lib/types/src/unrug-hotspots.d.ts.map +1 -0
  55. package/lib/types/src/update-matching-destinations.d.ts +2 -0
  56. package/lib/types/src/update-matching-destinations.d.ts.map +1 -0
  57. package/package.json +15 -13
  58. package/lib/cjs/fix-claimed-epochs.js.map +0 -1
  59. package/lib/cjs/migrate-to-hip-138.js +0 -221
  60. package/lib/cjs/migrate-to-hip-138.js.map +0 -1
  61. package/lib/esm/src/fix-claimed-epochs.js +0 -50
  62. package/lib/esm/src/fix-claimed-epochs.js.map +0 -1
  63. package/lib/esm/src/migrate-to-hip-138.js +0 -180
  64. package/lib/esm/src/migrate-to-hip-138.js.map +0 -1
  65. package/lib/types/src/fix-claimed-epochs.d.ts.map +0 -1
  66. package/lib/types/src/migrate-to-hip-138.d.ts.map +0 -1
@@ -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
- .accounts({ 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
+ .accounts({ 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
+ .accounts({ 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
- .accounts({ 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().accounts({
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
+ .accounts({
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
+ .accounts({
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
+ .accounts({
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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"}
@@ -1,7 +1,8 @@
1
1
  import * as anchor from "@coral-xyz/anchor";
2
2
  import { init as initHem, iotInfoKey, keyToAssetKey, mobileInfoKey, rewardableEntityConfigKey, } from "@helium/helium-entity-manager-sdk";
3
+ import { lazyDistributorKey, recipientKey, init as initLazy } from "@helium/lazy-distributor-sdk";
3
4
  import { daoKey, subDaoKey } from "@helium/helium-sub-daos-sdk";
4
- import { getAsset, getAssetProof, HNT_MINT, IOT_MINT, MOBILE_MINT } from "@helium/spl-utils";
5
+ import { getAsset, getAssetProof, HNT_MINT, IOT_MINT, MOBILE_MINT, } from "@helium/spl-utils";
5
6
  import { PublicKey } from "@solana/web3.js";
6
7
  import os from "os";
7
8
  import yargs from "yargs/yargs";
@@ -25,8 +26,8 @@ export async function run(args = process.argv) {
25
26
  },
26
27
  keySerialization: {
27
28
  type: "string",
28
- default: "b58"
29
- }
29
+ default: "b58",
30
+ },
30
31
  });
31
32
  const argv = await yarg.argv;
32
33
  process.env.ANCHOR_WALLET = argv.wallet;
@@ -34,8 +35,10 @@ export async function run(args = process.argv) {
34
35
  anchor.setProvider(anchor.AnchorProvider.local(argv.url));
35
36
  const provider = anchor.getProvider();
36
37
  const hemProgram = await initHem(provider);
38
+ const lazyProgram = await initLazy(provider);
39
+ const [keyToAssetK] = keyToAssetKey(daoKey(HNT_MINT)[0], argv.entityKey,
37
40
  // @ts-ignore
38
- const [keyToAssetK] = keyToAssetKey(daoKey(HNT_MINT)[0], argv.entityKey, argv.keySerialization);
41
+ argv.keySerialization);
39
42
  const keyToAsset = await hemProgram.account.keyToAssetV0.fetchNullable(keyToAssetK);
40
43
  console.log("keyToAsset", keyToAssetK.toBase58());
41
44
  PublicKey.prototype.toString = PublicKey.prototype.toBase58;
@@ -58,5 +61,16 @@ export async function run(args = process.argv) {
58
61
  else {
59
62
  console.log("No mobile info");
60
63
  }
64
+ if (keyToAsset) {
65
+ const iotLazy = lazyDistributorKey(IOT_MINT)[0];
66
+ const mobileLazy = lazyDistributorKey(MOBILE_MINT)[0];
67
+ const hntLazy = lazyDistributorKey(HNT_MINT)[0];
68
+ const iotRecipient = recipientKey(iotLazy, keyToAsset.asset);
69
+ const mobileRecipient = recipientKey(mobileLazy, keyToAsset.asset);
70
+ const hntRecipient = recipientKey(hntLazy, keyToAsset.asset);
71
+ console.log("Iot Recipient", iotRecipient, await lazyProgram.account.recipientV0.fetchNullable(iotRecipient[0]));
72
+ console.log("Mobile Recipient", mobileRecipient, await lazyProgram.account.recipientV0.fetchNullable(mobileRecipient[0]));
73
+ console.log("Hnt Recipient", hntRecipient, await lazyProgram.account.recipientV0.fetchNullable(hntRecipient[0]));
74
+ }
61
75
  }
62
76
  //# sourceMappingURL=log-hotspot.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"log-hotspot.js","sourceRoot":"","sources":["../../../src/log-hotspot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"log-hotspot.js","sourceRoot":"","sources":["../../../src/log-hotspot.ts"],"names":[],"mappings":"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"}
@@ -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
+ .accounts({
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
+ .accounts({
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
+ .accounts({
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":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EACL,MAAM,EACN,IAAI,IAAI,OAAO,EACf,SAAS,EACV,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,IAAI,IAAI,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACjG,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpE,OAAO,EAAE,SAAS,EAA0B,MAAM,iBAAiB,CAAC;AACpE,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EACL,WAAW,EACX,wBAAwB,EACzB,MAAM,SAAS,CAAC;AAEjB,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAY,OAAO,CAAC,IAAI;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAC/B,MAAM,EAAE;YACN,KAAK,EAAE,GAAG;YACV,QAAQ,EAAE,uBAAuB;YACjC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,yBAAyB;SAClD;QACD,GAAG,EAAE;YACH,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,uBAAuB;YAChC,QAAQ,EAAE,gBAAgB;SAC3B;QACD,kBAAkB,EAAE;YAClB,IAAI,EAAE,SAAS;SAChB;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EACN,oGAAoG;SACvG;QACD,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,2CAA2C;YACrD,OAAO,EAAE,CAAC;SACX;KACF,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC;IAC3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAA2B,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAErD,MAAM,YAAY,GAA6B,EAAE,CAAC;IAElD,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACtD,YAAY,CAAC,IAAI,CACf,MAAM,OAAO,CAAC,OAAO;SAClB,kCAAkC,EAAE;SACpC,QAAQ,CAAC;QACR,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,GAAG;QACH,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,QAAQ;QACjB,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACjC,YAAY,EAAE,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;KACxC,CAAC;SACD,WAAW,EAAE,CACjB,CAAC;IACF,MAAM,QAAQ,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IACxD,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,4BAA4B,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzF,YAAY,CAAC,IAAI,CACf,MAAM,SAAS,CAAC,OAAO;SACpB,qBAAqB,EAAE;SACvB,QAAQ,CAAC;QACR,IAAI,EAAE,WAAW;QACjB,cAAc,EAAE,QAAQ;QACxB,UAAU,EAAE,WAAW,CAAC,SAAS;QACjC,SAAS,EAAE,WAAW,CAAC,SAAS;KACjC,CAAC;SACD,WAAW,EAAE,CACjB,CAAC;IACF,MAAM,KAAK,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAClD,MAAM,QAAQ,GACZ,MAAM,SAAS,CAAC,OAAO,CAAC,4BAA4B,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACpE,YAAY,CAAC,IAAI,CACf,MAAM,SAAS,CAAC,OAAO;SACpB,qBAAqB,EAAE;SACvB,QAAQ,CAAC;QACR,IAAI,EAAE,QAAQ;QACd,cAAc,EAAE,KAAK;QACrB,UAAU,EAAE,QAAQ,CAAC,SAAS;QAC9B,SAAS,EAAE,QAAQ,CAAC,SAAS;KAC9B,CAAC;SACD,WAAW,EAAE,CACjB,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,EAAE;QACtE,kBAAkB,EAAE,WAAW;KAChC,CAAC,CAAC;IACH,MAAM,wBAAwB,CAAC;QAC7B,QAAQ;QACR,YAAY;QACZ,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,MAAM;QACN,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QAClE,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,102 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { carrierKey, init as initMem } from "@helium/mobile-entity-manager-sdk";
3
+ import { subDaoKey } from "@helium/helium-sub-daos-sdk";
4
+ import { PublicKey } from "@solana/web3.js";
5
+ import Squads from "@sqds/sdk";
6
+ import os from "os";
7
+ import yargs from "yargs/yargs";
8
+ import { loadKeypair, sendInstructionsOrSquads } from "./utils";
9
+ import { HNT_MINT, MOBILE_MINT } from "@helium/spl-utils";
10
+ import { getAssociatedTokenAddressSync } from "@solana/spl-token";
11
+ export async function run(args = process.argv) {
12
+ const yarg = yargs(args).options({
13
+ wallet: {
14
+ alias: "k",
15
+ describe: "Anchor wallet keypair",
16
+ default: `${os.homedir()}/.config/solana/id.json`,
17
+ },
18
+ url: {
19
+ alias: "u",
20
+ default: "http://127.0.0.1:8899",
21
+ describe: "The solana url",
22
+ },
23
+ name: {
24
+ alias: "n",
25
+ type: "string",
26
+ required: true,
27
+ describe: "Name of the carrier, case sensitive",
28
+ },
29
+ executeTransaction: {
30
+ type: "boolean",
31
+ },
32
+ multisig: {
33
+ type: "string",
34
+ describe: "Address of the squads multisig to be authority. If not provided, your wallet will be the authority",
35
+ },
36
+ authorityIndex: {
37
+ type: "number",
38
+ describe: "Authority index for squads. Defaults to 1",
39
+ default: 1,
40
+ },
41
+ updateAuthority: {
42
+ type: "string",
43
+ describe: "The new update authority to set",
44
+ },
45
+ issuingAuthority: {
46
+ type: "string",
47
+ describe: "The new issuing authority to set",
48
+ },
49
+ hexboostAuthority: {
50
+ type: "string",
51
+ describe: "The new hexboost authority to set",
52
+ },
53
+ dntMint: {
54
+ type: "string",
55
+ describe: "DNT mint of the subdao to approve on",
56
+ default: MOBILE_MINT.toBase58(),
57
+ },
58
+ incentiveEscrowFundBps: {
59
+ type: "number",
60
+ describe: "The new incentive escrow fund bps to set",
61
+ },
62
+ });
63
+ const argv = await yarg.argv;
64
+ process.env.ANCHOR_WALLET = argv.wallet;
65
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
66
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
67
+ const provider = anchor.getProvider();
68
+ const wallet = new anchor.Wallet(loadKeypair(argv.wallet));
69
+ const program = await initMem(provider);
70
+ const instructions = [];
71
+ const dntMint = new PublicKey(argv.dntMint);
72
+ const subDao = subDaoKey(dntMint)[0];
73
+ const carrier = carrierKey(subDao, argv.name)[0];
74
+ const carrierAcc = await program.account.carrierV0.fetch(carrier);
75
+ const authority = carrierAcc.updateAuthority;
76
+ instructions.push(await program.methods
77
+ .swapCarrierStake()
78
+ .accounts({
79
+ carrier,
80
+ updateAuthority: carrierAcc.updateAuthority,
81
+ newStakeSource: getAssociatedTokenAddressSync(HNT_MINT, authority),
82
+ originalStakeDestination: getAssociatedTokenAddressSync(MOBILE_MINT, authority),
83
+ originalStake: getAssociatedTokenAddressSync(MOBILE_MINT, carrier),
84
+ newEscrow: getAssociatedTokenAddressSync(HNT_MINT, carrier),
85
+ dntMint: MOBILE_MINT,
86
+ hntMint: HNT_MINT,
87
+ })
88
+ .instruction());
89
+ const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
90
+ commitmentOrConfig: "finalized",
91
+ });
92
+ await sendInstructionsOrSquads({
93
+ provider,
94
+ instructions,
95
+ executeTransaction: argv.executeTransaction,
96
+ squads,
97
+ multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
98
+ authorityIndex: argv.authorityIndex,
99
+ signers: [],
100
+ });
101
+ }
102
+ //# sourceMappingURL=swap-carrier-stake.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swap-carrier-stake.js","sourceRoot":"","sources":["../../../src/swap-carrier-stake.ts"],"names":[],"mappings":"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"}