@helium/helium-admin-cli 0.0.49-price.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 (136) hide show
  1. package/README.md +91 -0
  2. package/bin/helium-admin.js +13 -0
  3. package/lib/cjs/cli-distribute-rewards.js +96 -0
  4. package/lib/cjs/cli-distribute-rewards.js.map +1 -0
  5. package/lib/cjs/create-active-device-aggregator.js +112 -0
  6. package/lib/cjs/create-active-device-aggregator.js.map +1 -0
  7. package/lib/cjs/create-dao.js +384 -0
  8. package/lib/cjs/create-dao.js.map +1 -0
  9. package/lib/cjs/create-maker.js +323 -0
  10. package/lib/cjs/create-maker.js.map +1 -0
  11. package/lib/cjs/create-price-oracle.js +121 -0
  12. package/lib/cjs/create-price-oracle.js.map +1 -0
  13. package/lib/cjs/create-subdao.js +496 -0
  14. package/lib/cjs/create-subdao.js.map +1 -0
  15. package/lib/cjs/distribute-hst.js +94 -0
  16. package/lib/cjs/distribute-hst.js.map +1 -0
  17. package/lib/cjs/ecc-gen.js +17 -0
  18. package/lib/cjs/ecc-gen.js.map +1 -0
  19. package/lib/cjs/end-epoch.js +144 -0
  20. package/lib/cjs/end-epoch.js.map +1 -0
  21. package/lib/cjs/log-hotspot.js +80 -0
  22. package/lib/cjs/log-hotspot.js.map +1 -0
  23. package/lib/cjs/mint-dc.js +112 -0
  24. package/lib/cjs/mint-dc.js.map +1 -0
  25. package/lib/cjs/reset-clockwork.js +141 -0
  26. package/lib/cjs/reset-clockwork.js.map +1 -0
  27. package/lib/cjs/reset-vsr-max-voter-record.js +142 -0
  28. package/lib/cjs/reset-vsr-max-voter-record.js.map +1 -0
  29. package/lib/cjs/reset-vsr-voting-mint.js +179 -0
  30. package/lib/cjs/reset-vsr-voting-mint.js.map +1 -0
  31. package/lib/cjs/setup-hst.js +243 -0
  32. package/lib/cjs/setup-hst.js.map +1 -0
  33. package/lib/cjs/submit-price.js +158 -0
  34. package/lib/cjs/submit-price.js.map +1 -0
  35. package/lib/cjs/update-account-circuit-breaker.js +127 -0
  36. package/lib/cjs/update-account-circuit-breaker.js.map +1 -0
  37. package/lib/cjs/update-dao.js +146 -0
  38. package/lib/cjs/update-dao.js.map +1 -0
  39. package/lib/cjs/update-mint-circuit-breaker.js +129 -0
  40. package/lib/cjs/update-mint-circuit-breaker.js.map +1 -0
  41. package/lib/cjs/update-rewardable-entity-config.js +143 -0
  42. package/lib/cjs/update-rewardable-entity-config.js.map +1 -0
  43. package/lib/cjs/update-subdao.js +228 -0
  44. package/lib/cjs/update-subdao.js.map +1 -0
  45. package/lib/cjs/utils.js +366 -0
  46. package/lib/cjs/utils.js.map +1 -0
  47. package/lib/esm/src/cli-distribute-rewards.js +55 -0
  48. package/lib/esm/src/cli-distribute-rewards.js.map +1 -0
  49. package/lib/esm/src/create-active-device-aggregator.js +71 -0
  50. package/lib/esm/src/create-active-device-aggregator.js.map +1 -0
  51. package/lib/esm/src/create-dao.js +341 -0
  52. package/lib/esm/src/create-dao.js.map +1 -0
  53. package/lib/esm/src/create-maker.js +282 -0
  54. package/lib/esm/src/create-maker.js.map +1 -0
  55. package/lib/esm/src/create-price-oracle.js +80 -0
  56. package/lib/esm/src/create-price-oracle.js.map +1 -0
  57. package/lib/esm/src/create-subdao.js +455 -0
  58. package/lib/esm/src/create-subdao.js.map +1 -0
  59. package/lib/esm/src/distribute-hst.js +53 -0
  60. package/lib/esm/src/distribute-hst.js.map +1 -0
  61. package/lib/esm/src/ecc-gen.js +6 -0
  62. package/lib/esm/src/ecc-gen.js.map +1 -0
  63. package/lib/esm/src/end-epoch.js +103 -0
  64. package/lib/esm/src/end-epoch.js.map +1 -0
  65. package/lib/esm/src/log-hotspot.js +39 -0
  66. package/lib/esm/src/log-hotspot.js.map +1 -0
  67. package/lib/esm/src/mint-dc.js +71 -0
  68. package/lib/esm/src/mint-dc.js.map +1 -0
  69. package/lib/esm/src/reset-clockwork.js +100 -0
  70. package/lib/esm/src/reset-clockwork.js.map +1 -0
  71. package/lib/esm/src/reset-vsr-max-voter-record.js +101 -0
  72. package/lib/esm/src/reset-vsr-max-voter-record.js.map +1 -0
  73. package/lib/esm/src/reset-vsr-voting-mint.js +138 -0
  74. package/lib/esm/src/reset-vsr-voting-mint.js.map +1 -0
  75. package/lib/esm/src/setup-hst.js +201 -0
  76. package/lib/esm/src/setup-hst.js.map +1 -0
  77. package/lib/esm/src/submit-price.js +113 -0
  78. package/lib/esm/src/submit-price.js.map +1 -0
  79. package/lib/esm/src/update-account-circuit-breaker.js +86 -0
  80. package/lib/esm/src/update-account-circuit-breaker.js.map +1 -0
  81. package/lib/esm/src/update-dao.js +105 -0
  82. package/lib/esm/src/update-dao.js.map +1 -0
  83. package/lib/esm/src/update-mint-circuit-breaker.js +88 -0
  84. package/lib/esm/src/update-mint-circuit-breaker.js.map +1 -0
  85. package/lib/esm/src/update-rewardable-entity-config.js +102 -0
  86. package/lib/esm/src/update-rewardable-entity-config.js.map +1 -0
  87. package/lib/esm/src/update-subdao.js +187 -0
  88. package/lib/esm/src/update-subdao.js.map +1 -0
  89. package/lib/esm/src/utils.js +309 -0
  90. package/lib/esm/src/utils.js.map +1 -0
  91. package/lib/esm/tsconfig.esm.tsbuildinfo +1 -0
  92. package/lib/types/src/cli-distribute-rewards.d.ts +2 -0
  93. package/lib/types/src/cli-distribute-rewards.d.ts.map +1 -0
  94. package/lib/types/src/create-active-device-aggregator.d.ts +2 -0
  95. package/lib/types/src/create-active-device-aggregator.d.ts.map +1 -0
  96. package/lib/types/src/create-dao.d.ts +2 -0
  97. package/lib/types/src/create-dao.d.ts.map +1 -0
  98. package/lib/types/src/create-maker.d.ts +2 -0
  99. package/lib/types/src/create-maker.d.ts.map +1 -0
  100. package/lib/types/src/create-price-oracle.d.ts +2 -0
  101. package/lib/types/src/create-price-oracle.d.ts.map +1 -0
  102. package/lib/types/src/create-subdao.d.ts +2 -0
  103. package/lib/types/src/create-subdao.d.ts.map +1 -0
  104. package/lib/types/src/distribute-hst.d.ts +2 -0
  105. package/lib/types/src/distribute-hst.d.ts.map +1 -0
  106. package/lib/types/src/ecc-gen.d.ts +2 -0
  107. package/lib/types/src/ecc-gen.d.ts.map +1 -0
  108. package/lib/types/src/end-epoch.d.ts +2 -0
  109. package/lib/types/src/end-epoch.d.ts.map +1 -0
  110. package/lib/types/src/log-hotspot.d.ts +2 -0
  111. package/lib/types/src/log-hotspot.d.ts.map +1 -0
  112. package/lib/types/src/mint-dc.d.ts +2 -0
  113. package/lib/types/src/mint-dc.d.ts.map +1 -0
  114. package/lib/types/src/reset-clockwork.d.ts +2 -0
  115. package/lib/types/src/reset-clockwork.d.ts.map +1 -0
  116. package/lib/types/src/reset-vsr-max-voter-record.d.ts +2 -0
  117. package/lib/types/src/reset-vsr-max-voter-record.d.ts.map +1 -0
  118. package/lib/types/src/reset-vsr-voting-mint.d.ts +2 -0
  119. package/lib/types/src/reset-vsr-voting-mint.d.ts.map +1 -0
  120. package/lib/types/src/setup-hst.d.ts +4 -0
  121. package/lib/types/src/setup-hst.d.ts.map +1 -0
  122. package/lib/types/src/submit-price.d.ts +2 -0
  123. package/lib/types/src/submit-price.d.ts.map +1 -0
  124. package/lib/types/src/update-account-circuit-breaker.d.ts +2 -0
  125. package/lib/types/src/update-account-circuit-breaker.d.ts.map +1 -0
  126. package/lib/types/src/update-dao.d.ts +2 -0
  127. package/lib/types/src/update-dao.d.ts.map +1 -0
  128. package/lib/types/src/update-mint-circuit-breaker.d.ts +2 -0
  129. package/lib/types/src/update-mint-circuit-breaker.d.ts.map +1 -0
  130. package/lib/types/src/update-rewardable-entity-config.d.ts +2 -0
  131. package/lib/types/src/update-rewardable-entity-config.d.ts.map +1 -0
  132. package/lib/types/src/update-subdao.d.ts +2 -0
  133. package/lib/types/src/update-subdao.d.ts.map +1 -0
  134. package/lib/types/src/utils.d.ts +55 -0
  135. package/lib/types/src/utils.d.ts.map +1 -0
  136. package/package.json +77 -0
@@ -0,0 +1,455 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { thresholdPercent, ThresholdType } from "@helium/circuit-breaker-sdk";
3
+ import { init as initHem, rewardableEntityConfigKey, } from "@helium/helium-entity-manager-sdk";
4
+ import { daoKey, init as initDao, subDaoKey, threadKey, delegatorRewardsPercent, } from "@helium/helium-sub-daos-sdk";
5
+ import { init as initLazy, lazyDistributorKey, } from "@helium/lazy-distributor-sdk";
6
+ import { sendInstructions, toBN } from "@helium/spl-utils";
7
+ import { toU128 } from "@helium/treasury-management-sdk";
8
+ import { init as initVsr, registrarKey, } from "@helium/voter-stake-registry-sdk";
9
+ import { getGovernanceProgramVersion, GoverningTokenConfigAccountArgs, GoverningTokenType, MintMaxVoteWeightSource, SetRealmAuthorityAction, withCreateRealm, withSetRealmAuthority, } from "@solana/spl-governance";
10
+ import { getAssociatedTokenAddress } from "@solana/spl-token";
11
+ import { ComputeBudgetProgram, PublicKey, } from "@solana/web3.js";
12
+ import Squads from "@sqds/sdk";
13
+ import os from "os";
14
+ import yargs from "yargs/yargs";
15
+ import { createAndMint, createSwitchboardAggregator, exists, getUnixTimestamp, isLocalhost, loadKeypair, parseEmissionsSchedule, sendInstructionsOrSquads, } from "./utils";
16
+ const SECS_PER_DAY = 86400;
17
+ const SECS_PER_YEAR = 365 * SECS_PER_DAY;
18
+ const MAX_LOCKUP = 4 * SECS_PER_YEAR;
19
+ const BASELINE = 0;
20
+ const SCALE = 100;
21
+ export async function run(args = process.argv) {
22
+ const yarg = yargs(args).options({
23
+ wallet: {
24
+ alias: "k",
25
+ describe: "Anchor wallet keypair",
26
+ default: `${os.homedir()}/.config/solana/id.json`,
27
+ },
28
+ noHotspots: {
29
+ type: "boolean",
30
+ default: false,
31
+ },
32
+ url: {
33
+ alias: "u",
34
+ default: "http://127.0.0.1:8899",
35
+ describe: "The solana url",
36
+ },
37
+ hntPubkey: {
38
+ type: "string",
39
+ describe: "Pubkey of the HNT token",
40
+ default: loadKeypair(`${__dirname}/../keypairs/hnt.json`).publicKey,
41
+ },
42
+ dcPubkey: {
43
+ type: "string",
44
+ describe: "Pubkey of the DC token",
45
+ default: loadKeypair(`${__dirname}/../keypairs/dc.json`).publicKey,
46
+ },
47
+ name: {
48
+ alias: "n",
49
+ describe: "The name of the subdao",
50
+ type: "string",
51
+ required: true,
52
+ },
53
+ realmName: {
54
+ describe: "The name of the realm",
55
+ type: "string",
56
+ required: true,
57
+ },
58
+ subdaoKeypair: {
59
+ type: "string",
60
+ describe: "Keypair of the subdao token",
61
+ required: true,
62
+ },
63
+ executeTransaction: {
64
+ type: "boolean",
65
+ },
66
+ numTokens: {
67
+ type: "number",
68
+ describe: "Number of subdao tokens to pre mint before assigning authority to lazy distributor",
69
+ default: 0,
70
+ },
71
+ bucket: {
72
+ type: "string",
73
+ describe: "Bucket URL prefix holding all of the metadata jsons",
74
+ default: "https://shdw-drive.genesysgo.net/CsDkETHRRR1EcueeN346MJoqzymkkr7RFjMqGpZMzAib",
75
+ },
76
+ rewardsOracleUrl: {
77
+ alias: "ro",
78
+ type: "string",
79
+ describe: "The rewards oracle URL",
80
+ default: "http://localhost:8080",
81
+ },
82
+ oracleKeypair: {
83
+ type: "string",
84
+ describe: "Keypair of the oracle",
85
+ default: `${__dirname}/../keypairs/oracle.json`,
86
+ },
87
+ aggregatorKeypair: {
88
+ type: "string",
89
+ describe: "Keypair of the aggregtor",
90
+ },
91
+ merkleKeypair: {
92
+ type: "string",
93
+ describe: "Keypair of the merkle tree",
94
+ default: `${__dirname}/../keypairs/merkle.json`,
95
+ },
96
+ dcBurnAuthority: {
97
+ type: "string",
98
+ describe: "The authority to burn DC tokens",
99
+ required: true,
100
+ },
101
+ activeDeviceOracleUrl: {
102
+ alias: "ao",
103
+ type: "string",
104
+ describe: "The active device oracle URL",
105
+ default: "http://localhost:8081",
106
+ },
107
+ queue: {
108
+ type: "string",
109
+ describe: "Switchbaord oracle queue",
110
+ default: "F8ce7MsckeZAbAGmxjJNetxYXQa9mKr9nnrC3qKubyYy",
111
+ },
112
+ crank: {
113
+ type: "string",
114
+ describe: "Switchboard crank",
115
+ default: "GN9jjCy2THzZxhYqZETmPM3my8vg4R5JyNkgULddUMa5",
116
+ },
117
+ switchboardNetwork: {
118
+ type: "string",
119
+ describe: "The switchboard network",
120
+ default: "devnet",
121
+ },
122
+ decimals: {
123
+ type: "number",
124
+ default: 6,
125
+ },
126
+ startEpochRewards: {
127
+ type: "number",
128
+ describe: "The starting epoch rewards (yearly)",
129
+ required: true,
130
+ },
131
+ govProgramId: {
132
+ type: "string",
133
+ describe: "Pubkey of the GOV program",
134
+ default: "hgovkRU6Ghe1Qoyb54HdSLdqN7VtxaifBzRmh9jtd3S",
135
+ },
136
+ councilKeypair: {
137
+ type: "string",
138
+ describe: "Keypair of gov council token",
139
+ default: `${__dirname}/../keypairs/council.json`,
140
+ },
141
+ multisig: {
142
+ type: "string",
143
+ describe: "Address of the squads multisig for subdao authority. If not provided, your wallet will be the authority",
144
+ },
145
+ authorityIndex: {
146
+ type: "number",
147
+ describe: "Authority index for squads. Defaults to 1",
148
+ default: 1,
149
+ },
150
+ delegatorRewardsPercent: {
151
+ type: "number",
152
+ required: true,
153
+ describe: "Percentage of rewards allocated to delegators. Must be between 0-100 and can have 8 decimal places.",
154
+ },
155
+ emissionSchedulePath: {
156
+ required: true,
157
+ describe: "Path to file that contains the dnt emissions schedule",
158
+ type: "string",
159
+ },
160
+ });
161
+ const argv = await yarg.argv;
162
+ console.log(argv.url);
163
+ process.env.ANCHOR_WALLET = argv.wallet;
164
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
165
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
166
+ const name = argv.name;
167
+ const provider = anchor.getProvider();
168
+ const lazyDistributorProgram = await initLazy(provider);
169
+ const heliumSubDaosProgram = await initDao(provider);
170
+ const hemProgram = await initHem(provider);
171
+ const heliumVsrProgram = await initVsr(provider);
172
+ const wallet = loadKeypair(argv.wallet);
173
+ const aggKeypair = await loadKeypair(argv.aggregatorKeypair || `${__dirname}/../keypairs/aggregator-${name}.json`);
174
+ const subdaoKeypair = await loadKeypair(argv.subdaoKeypair);
175
+ const oracleKeypair = await loadKeypair(argv.oracleKeypair);
176
+ const oracleKey = oracleKeypair.publicKey;
177
+ const rewardsOracleUrl = argv.rewardsOracleUrl;
178
+ const govProgramId = new PublicKey(argv.govProgramId);
179
+ const councilKeypair = await loadKeypair(argv.councilKeypair);
180
+ const me = provider.wallet.publicKey;
181
+ console.log("Subdao mint", subdaoKeypair.publicKey.toBase58());
182
+ console.log("GOV PID", govProgramId.toBase58());
183
+ console.log("COUNCIL", councilKeypair.publicKey.toBase58());
184
+ const conn = provider.connection;
185
+ const dao = (await daoKey(new PublicKey(argv.hntPubkey)))[0];
186
+ const subdao = (await subDaoKey(subdaoKeypair.publicKey))[0];
187
+ console.log("DAO", dao.toString());
188
+ console.log("SUBDAO", subdao.toString());
189
+ const daoAcc = await heliumSubDaosProgram.account.daoV0.fetch(dao);
190
+ const calculateThread = threadKey(subdao, "calculate")[0];
191
+ const issueThread = threadKey(subdao, "issue")[0];
192
+ const emissionSchedule = await parseEmissionsSchedule(argv.emissionSchedulePath);
193
+ const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, provider.wallet);
194
+ let authority = provider.wallet.publicKey;
195
+ const multisig = argv.multisig ? new PublicKey(argv.multisig) : null;
196
+ if (multisig) {
197
+ authority = squads.getAuthorityPDA(multisig, argv.authorityIndex);
198
+ }
199
+ if (await exists(conn, subdao)) {
200
+ const subDao = await heliumSubDaosProgram.account.subDaoV0.fetch(subdao);
201
+ console.log(`Subdao exists. Key: ${subdao.toBase58()}. Agg: ${subDao.activeDeviceAggregator.toBase58()}}`);
202
+ console.log("Calculate thread", calculateThread.toString());
203
+ console.log("Issue thread", issueThread.toString());
204
+ return;
205
+ }
206
+ const [lazyDist] = await lazyDistributorKey(subdaoKeypair.publicKey);
207
+ const rewardsEscrow = await getAssociatedTokenAddress(subdaoKeypair.publicKey, lazyDist, true);
208
+ let payer = provider.wallet.publicKey;
209
+ const auth = await provider.connection.getAccountInfo(daoAcc.authority);
210
+ if (auth.owner.equals(govProgramId)) {
211
+ const daoPayer = PublicKey.findProgramAddressSync([Buffer.from("native-treasury", "utf-8"), daoAcc.authority.toBuffer()], govProgramId)[0];
212
+ payer = daoPayer;
213
+ }
214
+ await createAndMint({
215
+ provider,
216
+ mintKeypair: subdaoKeypair,
217
+ amount: argv.numTokens,
218
+ decimals: argv.decimals,
219
+ metadataUrl: `${argv.bucket}/${name.toLowerCase()}.json`,
220
+ mintAuthority: daoAcc.authority,
221
+ freezeAuthority: daoAcc.authority,
222
+ });
223
+ let instructions = [];
224
+ const govProgramVersion = await getGovernanceProgramVersion(conn, govProgramId);
225
+ const realmName = argv.realmName;
226
+ const realm = await PublicKey.findProgramAddressSync([Buffer.from("governance", "utf-8"), Buffer.from(realmName, "utf-8")], govProgramId)[0];
227
+ console.log("Realm, ", realm.toBase58());
228
+ if (!(await exists(conn, realm))) {
229
+ console.log("Initializing Realm");
230
+ await withCreateRealm(instructions, govProgramId, govProgramVersion, realmName, provider.wallet.publicKey, // realmAuthorityPk
231
+ subdaoKeypair.publicKey, // communityMintPk
232
+ provider.wallet.publicKey, // payer
233
+ councilKeypair.publicKey, // councilMintPk
234
+ MintMaxVoteWeightSource.FULL_SUPPLY_FRACTION, new anchor.BN(100000000000000), // TODO: 1mm vehnt to create governance
235
+ new GoverningTokenConfigAccountArgs({
236
+ // community token config
237
+ voterWeightAddin: heliumVsrProgram.programId,
238
+ maxVoterWeightAddin: heliumVsrProgram.programId,
239
+ tokenType: GoverningTokenType.Liquid,
240
+ }), new GoverningTokenConfigAccountArgs({
241
+ // council token config
242
+ voterWeightAddin: undefined,
243
+ maxVoterWeightAddin: undefined,
244
+ tokenType: GoverningTokenType.Liquid,
245
+ }));
246
+ await sendInstructions(provider, instructions, []);
247
+ instructions = [];
248
+ }
249
+ const registrar = (await registrarKey(realm, subdaoKeypair.publicKey))[0];
250
+ if (!(await exists(conn, registrar))) {
251
+ console.log("Initializing VSR Registrar");
252
+ instructions.push(await heliumVsrProgram.methods
253
+ .initializeRegistrarV0({
254
+ positionUpdateAuthority: null,
255
+ })
256
+ .preInstructions([
257
+ ComputeBudgetProgram.setComputeUnitLimit({ units: 500000 }),
258
+ ])
259
+ .accounts({
260
+ realm,
261
+ realmGoverningTokenMint: subdaoKeypair.publicKey,
262
+ })
263
+ .instruction());
264
+ console.log("Configuring VSR voting mint at [0]");
265
+ instructions.push(await heliumVsrProgram.methods
266
+ .configureVotingMintV0({
267
+ idx: 0,
268
+ digitShift: -1,
269
+ baselineVoteWeightScaledFactor: new anchor.BN(BASELINE * 1e9),
270
+ maxExtraLockupVoteWeightScaledFactor: new anchor.BN(SCALE * 1e9),
271
+ genesisVotePowerMultiplier: 0,
272
+ genesisVotePowerMultiplierExpirationTs: new anchor.BN(Number(await getUnixTimestamp(provider))),
273
+ lockupSaturationSecs: new anchor.BN(MAX_LOCKUP),
274
+ })
275
+ .accounts({
276
+ registrar,
277
+ mint: subdaoKeypair.publicKey,
278
+ })
279
+ .remainingAccounts([
280
+ {
281
+ pubkey: subdaoKeypair.publicKey,
282
+ isSigner: false,
283
+ isWritable: false,
284
+ },
285
+ ])
286
+ .instruction());
287
+ await sendInstructions(provider, instructions, []);
288
+ instructions = [];
289
+ console.log("Creating max voter record");
290
+ instructions.push(await heliumVsrProgram.methods
291
+ .updateMaxVoterWeightV0()
292
+ .accounts({
293
+ registrar,
294
+ realmGoverningTokenMint: subdaoKeypair.publicKey,
295
+ })
296
+ .instruction());
297
+ }
298
+ await sendInstructions(provider, instructions, []);
299
+ instructions = [];
300
+ if (!authority.equals(me)) {
301
+ withSetRealmAuthority(instructions, govProgramId, govProgramVersion, realm, provider.wallet.publicKey, daoAcc.authority, SetRealmAuthorityAction.SetUnchecked);
302
+ }
303
+ await sendInstructions(provider, instructions, []);
304
+ if (!(await exists(conn, lazyDist))) {
305
+ console.log(`Initializing ${name} lazy distributor`);
306
+ await lazyDistributorProgram.methods
307
+ .initializeLazyDistributorV0({
308
+ authority: daoAcc.authority,
309
+ oracles: [
310
+ {
311
+ oracle: oracleKey,
312
+ url: rewardsOracleUrl,
313
+ },
314
+ ],
315
+ // 5 x epoch rewards in a 24 hour period
316
+ windowConfig: {
317
+ windowSizeSeconds: new anchor.BN(24 * 60 * 60),
318
+ thresholdType: ThresholdType.Absolute,
319
+ threshold: new anchor.BN(emissionSchedule[0].emissionsPerEpoch).mul(new anchor.BN(5)),
320
+ },
321
+ })
322
+ .accounts({
323
+ rewardsMint: subdaoKeypair.publicKey,
324
+ rewardsEscrow,
325
+ })
326
+ .rpc({ skipPreflight: true });
327
+ }
328
+ if (!(await exists(conn, subdao))) {
329
+ let aggregatorKey = new PublicKey("GvDMxPzN1sCj7L26YDK2HnMRXEQmQ2aemov8YBtPS7vR"); // value cloned from mainnet to localnet
330
+ if (!isLocalhost(provider)) {
331
+ console.log("Initializing switchboard oracle");
332
+ aggregatorKey = await createSwitchboardAggregator({
333
+ crank: new PublicKey(argv.crank),
334
+ queue: new PublicKey(argv.queue),
335
+ wallet,
336
+ provider,
337
+ aggKeypair,
338
+ url: argv.activeDeviceOracleUrl,
339
+ switchboardNetwork: argv.switchboardNetwork,
340
+ authority,
341
+ });
342
+ }
343
+ console.log(`Initializing ${name} SubDAO`);
344
+ const currentHntEmission = emissionSchedule[0];
345
+ const initSubdaoMethod = await heliumSubDaosProgram.methods
346
+ .initializeSubDaoV0({
347
+ registrar: registrar,
348
+ dcBurnAuthority: new PublicKey(argv.dcBurnAuthority),
349
+ authority,
350
+ // Tx to large to do here, do it with update
351
+ emissionSchedule: [currentHntEmission],
352
+ // Linear curve
353
+ treasuryCurve: {
354
+ exponentialCurveV0: {
355
+ k: toU128(0),
356
+ },
357
+ },
358
+ // 20% in a day
359
+ treasuryWindowConfig: {
360
+ windowSizeSeconds: new anchor.BN(24 * 60 * 60),
361
+ thresholdType: ThresholdType.Percent,
362
+ threshold: thresholdPercent(20),
363
+ },
364
+ onboardingDcFee: toBN(4000000, 0),
365
+ delegatorRewardsPercent: delegatorRewardsPercent(argv.delegatorRewardsPercent),
366
+ })
367
+ .accounts({
368
+ dao,
369
+ dntMint: subdaoKeypair.publicKey,
370
+ rewardsEscrow,
371
+ hntMint: new PublicKey(argv.hntPubkey),
372
+ activeDeviceAggregator: aggregatorKey,
373
+ payer,
374
+ dntMintAuthority: daoAcc.authority,
375
+ subDaoFreezeAuthority: daoAcc.authority,
376
+ authority: daoAcc.authority,
377
+ })
378
+ .preInstructions([
379
+ ComputeBudgetProgram.setComputeUnitLimit({ units: 500000 }),
380
+ ]);
381
+ await initSubdaoMethod.rpc({ skipPreflight: true });
382
+ const { subDao } = await initSubdaoMethod.pubkeys();
383
+ await sendInstructionsOrSquads({
384
+ provider,
385
+ instructions: [
386
+ await heliumSubDaosProgram.methods
387
+ .updateSubDaoV0({
388
+ authority,
389
+ emissionSchedule,
390
+ dcBurnAuthority: null,
391
+ onboardingDcFee: null,
392
+ activeDeviceAggregator: null,
393
+ registrar: null,
394
+ delegatorRewardsPercent: null,
395
+ })
396
+ .accounts({
397
+ subDao,
398
+ authority,
399
+ payer: authority,
400
+ })
401
+ .instruction(),
402
+ ],
403
+ executeTransaction: true,
404
+ squads,
405
+ multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
406
+ authorityIndex: argv.authorityIndex,
407
+ signers: [],
408
+ });
409
+ }
410
+ const hsConfigKey = (await rewardableEntityConfigKey(subdao, name.toUpperCase()))[0];
411
+ if (!(await provider.connection.getAccountInfo(hsConfigKey)) &&
412
+ !argv.noHotspots) {
413
+ const instructions = [];
414
+ console.log(`Initalizing ${name} RewardableEntityConfig`);
415
+ let settings;
416
+ if (name.toUpperCase() == "IOT") {
417
+ settings = {
418
+ iotConfig: {
419
+ minGain: 10,
420
+ maxGain: 150,
421
+ fullLocationStakingFee: toBN(500000, 0),
422
+ dataonlyLocationStakingFee: toBN(500000, 0),
423
+ },
424
+ };
425
+ }
426
+ else {
427
+ settings = {
428
+ mobileConfig: {
429
+ fullLocationStakingFee: toBN(500000, 0),
430
+ dataonlyLocationStakingFee: toBN(500000, 0),
431
+ },
432
+ };
433
+ }
434
+ instructions.push(await hemProgram.methods
435
+ .initializeRewardableEntityConfigV0({
436
+ symbol: name.toUpperCase(),
437
+ settings,
438
+ })
439
+ .accounts({
440
+ subDao: subdao,
441
+ payer: me,
442
+ authority,
443
+ })
444
+ .instruction());
445
+ await sendInstructionsOrSquads({
446
+ provider,
447
+ instructions,
448
+ squads,
449
+ executeTransaction: true,
450
+ multisig,
451
+ authorityIndex: argv.authorityIndex,
452
+ });
453
+ }
454
+ }
455
+ //# sourceMappingURL=create-subdao.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-subdao.js","sourceRoot":"","sources":["../../../src/create-subdao.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { fanoutKey, init } from "@helium/fanout-sdk";
3
+ import { getAccount } from "@solana/spl-token";
4
+ import os from "os";
5
+ import yargs from "yargs/yargs";
6
+ export async function run(args = process.argv) {
7
+ const yarg = yargs(args).options({
8
+ wallet: {
9
+ alias: "k",
10
+ describe: "Anchor wallet keypair",
11
+ default: `${os.homedir()}/.config/solana/id.json`,
12
+ },
13
+ url: {
14
+ alias: "u",
15
+ default: "http://127.0.0.1:8899",
16
+ describe: "The solana url",
17
+ },
18
+ name: {
19
+ type: "string",
20
+ describe: "Name of the fanout",
21
+ required: true,
22
+ },
23
+ mint: {
24
+ type: "string",
25
+ describe: "Mint to dist",
26
+ required: true,
27
+ },
28
+ });
29
+ const argv = await yarg.argv;
30
+ process.env.ANCHOR_WALLET = argv.wallet;
31
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
32
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
33
+ const provider = anchor.getProvider();
34
+ const hydraProgram = await init(provider);
35
+ const fanoutK = fanoutKey(argv.name)[0];
36
+ const members = (await hydraProgram.account.fanoutVoucherV0.all()).filter((m) => m.account.fanout.equals(fanoutK));
37
+ for (const member of members) {
38
+ const mint = member.account.mint;
39
+ const owners = await provider.connection.getTokenLargestAccounts(mint);
40
+ const owner = (await getAccount(provider.connection, owners.value[0].address)).owner;
41
+ console.log("Distributing for mint", mint.toBase58());
42
+ await hydraProgram.methods
43
+ .distributeV0()
44
+ .accounts({
45
+ payer: provider.wallet.publicKey,
46
+ fanout: fanoutK,
47
+ owner,
48
+ mint,
49
+ })
50
+ .rpc({ skipPreflight: true });
51
+ }
52
+ }
53
+ //# sourceMappingURL=distribute-hst.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distribute-hst.js","sourceRoot":"","sources":["../../../src/distribute-hst.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAiC,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,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,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,oBAAoB;YAC9B,QAAQ,EAAE,IAAI;SACf;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,cAAc;YACxB,QAAQ,EAAE,IAAI;SACf;KACF,CAAC,CAAC;IAEH,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;IAE/D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CACvE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CACxC,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,CACZ,MAAM,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAC/D,CAAC,KAAK,CAAC;QAER,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAErD,MAAM,YAAY,CAAC,OAAO;aACvB,YAAY,EAAE;aACd,QAAQ,CAAC;YACR,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;YAChC,MAAM,EAAE,OAAO;YACf,KAAK;YACL,IAAI;SACL,CAAC;aACD,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;KACjC;AACH,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Keypair as HeliumKeypair } from "@helium/crypto";
2
+ const run = async () => {
3
+ const ecc = await (await HeliumKeypair.makeRandom()).address.publicKey;
4
+ console.log(ecc);
5
+ };
6
+ //# sourceMappingURL=ecc-gen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ecc-gen.js","sourceRoot":"","sources":["../../../src/ecc-gen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAG1D,MAAM,GAAG,GAAG,KAAK,IAAI,EAAE;IACrB,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnB,CAAC,CAAC"}
@@ -0,0 +1,103 @@
1
+ import { currentEpoch, daoEpochInfoKey, daoKey, EPOCH_LENGTH, init as initDao } from "@helium/helium-sub-daos-sdk";
2
+ import * as anchor from "@coral-xyz/anchor";
3
+ import { ComputeBudgetProgram, PublicKey } from "@solana/web3.js";
4
+ import { BN } from "bn.js";
5
+ import b58 from "bs58";
6
+ import os from "os";
7
+ import yargs from "yargs/yargs";
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
+ hntMint: {
21
+ type: "string",
22
+ describe: "Mint of the HNT token",
23
+ },
24
+ from: {
25
+ type: "number",
26
+ describe: "The timestamp to start ending epochs from",
27
+ },
28
+ });
29
+ const argv = await yarg.argv;
30
+ process.env.ANCHOR_WALLET = argv.wallet;
31
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
32
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
33
+ const provider = anchor.getProvider();
34
+ const heliumSubDaosProgram = await initDao(provider);
35
+ const hntMint = new PublicKey(argv.hntMint);
36
+ const dao = await daoKey(hntMint)[0];
37
+ const subdaos = await heliumSubDaosProgram.account.subDaoV0.all([{
38
+ memcmp: {
39
+ offset: 8,
40
+ bytes: b58.encode(dao.toBuffer()),
41
+ }
42
+ }]);
43
+ let targetTs = argv.from ? new BN(argv.from) : subdaos[0].account.vehntLastCalculatedTs;
44
+ while (targetTs.toNumber() < new Date().valueOf() / 1000) {
45
+ const epoch = currentEpoch(targetTs);
46
+ console.log(epoch.toNumber(), targetTs.toNumber());
47
+ const daoEpochInfo = await heliumSubDaosProgram.account.daoEpochInfoV0.fetchNullable(daoEpochInfoKey(dao, targetTs)[0]);
48
+ if (!daoEpochInfo?.doneCalculatingScores) {
49
+ for (const subDao of subdaos) {
50
+ try {
51
+ await heliumSubDaosProgram.methods
52
+ .calculateUtilityScoreV0({
53
+ epoch,
54
+ })
55
+ .preInstructions([
56
+ ComputeBudgetProgram.setComputeUnitLimit({ units: 350000 }),
57
+ ])
58
+ .accounts({
59
+ subDao: subDao.publicKey,
60
+ })
61
+ .rpc({ skipPreflight: true });
62
+ }
63
+ catch (e) {
64
+ console.log(`Failed to calculate utility score for ${subDao.account.dntMint.toBase58()}: ${e.message}`);
65
+ }
66
+ }
67
+ }
68
+ if (!daoEpochInfo?.doneIssuingRewards) {
69
+ for (const subDao of subdaos) {
70
+ try {
71
+ await heliumSubDaosProgram.methods
72
+ .issueRewardsV0({
73
+ epoch,
74
+ })
75
+ .accounts({
76
+ subDao: subDao.publicKey,
77
+ })
78
+ .rpc({ skipPreflight: true });
79
+ }
80
+ catch (e) {
81
+ console.log(`Failed to issue rewards for ${subDao.account.dntMint.toBase58()}: ${e.message}`);
82
+ }
83
+ }
84
+ }
85
+ try {
86
+ if (!daoEpochInfo?.doneIssuingHstPool) {
87
+ await heliumSubDaosProgram.methods
88
+ .issueHstPoolV0({
89
+ epoch,
90
+ })
91
+ .accounts({
92
+ dao,
93
+ })
94
+ .rpc({ skipPreflight: true });
95
+ }
96
+ }
97
+ catch (e) {
98
+ console.log(`Failed to issue hst pool: ${e.message}`);
99
+ }
100
+ targetTs = targetTs.add(new BN(EPOCH_LENGTH));
101
+ }
102
+ }
103
+ //# sourceMappingURL=end-epoch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"end-epoch.js","sourceRoot":"","sources":["../../../src/end-epoch.ts"],"names":[],"mappings":"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"}