@helium/helium-admin-cli 0.8.6 → 0.9.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,21 +1,22 @@
1
- import * as anchor from '@coral-xyz/anchor';
2
- import { ThresholdType } from '@helium/circuit-breaker-sdk';
3
- import { PROGRAM_ID, accountPayerKey, dataCreditsKey, init as initDc, } from '@helium/data-credits-sdk';
4
- import { fanoutKey } from '@helium/fanout-sdk';
5
- import { dataOnlyConfigKey, init as initHem, } from '@helium/helium-entity-manager-sdk';
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { ThresholdType } from "@helium/circuit-breaker-sdk";
3
+ import { PROGRAM_ID, accountPayerKey, dataCreditsKey, init as initDc, } from "@helium/data-credits-sdk";
4
+ import { fanoutKey } from "@helium/fanout-sdk";
5
+ import { dataOnlyConfigKey, init as initHem, } from "@helium/helium-entity-manager-sdk";
6
6
  import { daoKey, init as initDao } from "@helium/helium-sub-daos-sdk";
7
- import { sendInstructions, toBN } from '@helium/spl-utils';
8
- import { init as initVsr, registrarKey, } from '@helium/voter-stake-registry-sdk';
9
- import { SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, getConcurrentMerkleTreeAccountSize, } from '@solana/spl-account-compression';
10
- import { GoverningTokenConfigAccountArgs, GoverningTokenType, MintMaxVoteWeightSource, SetRealmAuthorityAction, getGovernanceProgramVersion, withCreateRealm, withSetRealmAuthority, } from '@solana/spl-governance';
11
- import { createAssociatedTokenAccountIdempotentInstruction, getAssociatedTokenAddressSync, } from '@solana/spl-token';
12
- import { ComputeBudgetProgram, Keypair, LAMPORTS_PER_SOL, PublicKey, SystemProgram, Transaction, } from '@solana/web3.js';
13
- import Squads from '@sqds/sdk';
14
- import { BN } from 'bn.js';
15
- import fs from 'fs';
16
- import os from 'os';
17
- import yargs from 'yargs/yargs';
18
- import { createAndMint, isLocalhost, loadKeypair, parseEmissionsSchedule, sendInstructionsOrSquads, } from './utils';
7
+ import { sendInstructions, toBN } from "@helium/spl-utils";
8
+ import { init as initVsr, registrarKey, } from "@helium/voter-stake-registry-sdk";
9
+ import { SPL_ACCOUNT_COMPRESSION_PROGRAM_ID, getConcurrentMerkleTreeAccountSize, } from "@solana/spl-account-compression";
10
+ import { GoverningTokenConfigAccountArgs, GoverningTokenType, MintMaxVoteWeightSource, SetRealmAuthorityAction, getGovernanceProgramVersion, withCreateRealm, withSetRealmAuthority, } from "@solana/spl-governance";
11
+ import { createAssociatedTokenAccountIdempotentInstruction, getAssociatedTokenAddressSync, } from "@solana/spl-token";
12
+ import { ComputeBudgetProgram, Keypair, LAMPORTS_PER_SOL, PublicKey, SystemProgram, Transaction, } from "@solana/web3.js";
13
+ import Squads from "@sqds/sdk";
14
+ import { BN } from "bn.js";
15
+ import fs from "fs";
16
+ import os from "os";
17
+ import yargs from "yargs/yargs";
18
+ import { createAndMint, isLocalhost, loadKeypair, parseEmissionsSchedule, sendInstructionsOrSquads, } from "./utils";
19
+ import { init } from "@helium/nft-proxy-sdk";
19
20
  const SECS_PER_DAY = 86400;
20
21
  const SECS_PER_YEAR = 365 * SECS_PER_DAY;
21
22
  const MAX_LOCKUP = 4 * SECS_PER_YEAR;
@@ -28,100 +29,104 @@ async function exists(connection, account) {
28
29
  export async function run(args = process.argv) {
29
30
  const yarg = yargs(args).options({
30
31
  wallet: {
31
- alias: 'k',
32
- describe: 'Anchor wallet keypair',
32
+ alias: "k",
33
+ describe: "Anchor wallet keypair",
33
34
  default: `${os.homedir()}/.config/solana/id.json`,
34
35
  },
35
36
  url: {
36
- alias: 'u',
37
- default: 'http://127.0.0.1:8899',
38
- describe: 'The solana url',
37
+ alias: "u",
38
+ default: "http://127.0.0.1:8899",
39
+ describe: "The solana url",
39
40
  },
40
41
  hntKeypair: {
41
- type: 'string',
42
- describe: 'Keypair of the HNT token',
42
+ type: "string",
43
+ describe: "Keypair of the HNT token",
43
44
  default: `${__dirname}/../../keypairs/hnt.json`,
44
45
  },
45
46
  dcKeypair: {
46
- type: 'string',
47
- describe: 'Keypair of the Data Credit token',
47
+ type: "string",
48
+ describe: "Keypair of the Data Credit token",
48
49
  default: `${__dirname}/../../keypairs/dc.json`,
49
50
  },
50
51
  numHnt: {
51
- type: 'number',
52
- describe: 'Number of HNT tokens to pre mint before assigning authority to lazy distributor',
52
+ type: "number",
53
+ describe: "Number of HNT tokens to pre mint before assigning authority to lazy distributor",
53
54
  default: 0,
54
55
  },
55
56
  numDc: {
56
- type: 'number',
57
- describe: 'Number of DC tokens to pre mint before assigning authority to lazy distributor',
57
+ type: "number",
58
+ describe: "Number of DC tokens to pre mint before assigning authority to lazy distributor",
58
59
  default: 1000,
59
60
  },
60
61
  bucket: {
61
- type: 'string',
62
- describe: 'Bucket URL prefix holding all of the metadata jsons',
63
- default: 'https://shdw-drive.genesysgo.net/6tcnBSybPG7piEDShBcrVtYJDPSvGrDbVvXmXKpzBvWP',
62
+ type: "string",
63
+ describe: "Bucket URL prefix holding all of the metadata jsons",
64
+ default: "https://shdw-drive.genesysgo.net/6tcnBSybPG7piEDShBcrVtYJDPSvGrDbVvXmXKpzBvWP",
64
65
  },
65
66
  emissionSchedulePath: {
66
67
  required: true,
67
- describe: 'Path to file that contains the hnt emissions schedule',
68
- type: 'string',
68
+ describe: "Path to file that contains the hnt emissions schedule",
69
+ type: "string",
69
70
  default: `${__dirname}/../../emissions/hnt.json`,
70
71
  },
71
72
  hstEmissionSchedulePath: {
72
73
  required: true,
73
- describe: 'Path to file that contains the hst emissions schedule',
74
- type: 'string',
74
+ describe: "Path to file that contains the hst emissions schedule",
75
+ type: "string",
75
76
  default: `${__dirname}/../../emissions/hst.json`,
76
77
  },
77
78
  govProgramId: {
78
- type: 'string',
79
- describe: 'Pubkey of the GOV program',
80
- default: 'hgovkRU6Ghe1Qoyb54HdSLdqN7VtxaifBzRmh9jtd3S',
79
+ type: "string",
80
+ describe: "Pubkey of the GOV program",
81
+ default: "hgovkRU6Ghe1Qoyb54HdSLdqN7VtxaifBzRmh9jtd3S",
81
82
  },
82
83
  realmName: {
83
- type: 'string',
84
- describe: 'Name of the realm to be generated',
85
- default: 'Helium',
84
+ type: "string",
85
+ describe: "Name of the realm to be generated",
86
+ default: "Helium",
86
87
  },
87
88
  councilKeypair: {
88
- type: 'string',
89
- describe: 'Keypair of gov council token',
89
+ type: "string",
90
+ describe: "Keypair of gov council token",
90
91
  default: `${__dirname}/../../keypairs/council.json`,
91
92
  },
92
93
  councilWallet: {
93
- type: 'string',
94
- describe: 'Pubkey for holding/distributing council tokens',
94
+ type: "string",
95
+ describe: "Pubkey for holding/distributing council tokens",
95
96
  default: await loadKeypair(`${os.homedir()}/.config/solana/id.json`).publicKey.toBase58(),
96
97
  },
97
98
  numCouncil: {
98
- type: 'number',
99
- describe: 'Number of Gov Council tokens to pre mint before assigning authority to dao',
99
+ type: "number",
100
+ describe: "Number of Gov Council tokens to pre mint before assigning authority to dao",
100
101
  default: 10,
101
102
  },
102
103
  multisig: {
103
- type: 'string',
104
- describe: 'Address of the squads multisig to control the dao. If not provided, your wallet will be the authority',
104
+ type: "string",
105
+ describe: "Address of the squads multisig to control the dao. If not provided, your wallet will be the authority",
105
106
  },
106
107
  authorityIndex: {
107
- type: 'number',
108
- describe: 'Authority index for squads. Defaults to 1',
108
+ type: "number",
109
+ describe: "Authority index for squads. Defaults to 1",
109
110
  default: 1,
110
111
  },
111
112
  hntPriceOracle: {
112
- type: 'string',
113
+ type: "string",
113
114
  required: true,
114
115
  },
115
116
  numHst: {
116
- type: 'number',
117
- describe: 'Number of HST tokens to pre mint before assigning authority to lazy distributor',
117
+ type: "number",
118
+ describe: "Number of HST tokens to pre mint before assigning authority to lazy distributor",
118
119
  default: 0,
119
120
  },
120
121
  merklePath: {
121
- type: 'string',
122
- describe: 'Path to the merkle keypair',
122
+ type: "string",
123
+ describe: "Path to the merkle keypair",
123
124
  default: `${__dirname}/../../keypairs/data-only-merkle.json`,
124
125
  },
126
+ proxySeasonsFile: {
127
+ type: "string",
128
+ default: `${__dirname}/../../proxy-seasons.json`,
129
+ },
125
130
  });
126
131
  const argv = await yarg.argv;
127
132
  process.env.ANCHOR_WALLET = argv.wallet;
@@ -140,15 +145,20 @@ export async function run(args = process.argv) {
140
145
  const dcKeypair = loadKeypair(argv.dcKeypair);
141
146
  const me = provider.wallet.publicKey;
142
147
  const dao = daoKey(hntKeypair.publicKey)[0];
143
- console.log('HNT', hntKeypair.publicKey.toBase58());
144
- console.log('DC', dcKeypair.publicKey.toBase58());
145
- console.log('GOV PID', govProgramId.toBase58());
146
- console.log('COUNCIL', councilKeypair.publicKey.toBase58());
147
- console.log('COUNCIL WALLET', councilWallet.toBase58());
148
- console.log('DAO', dao.toString());
148
+ console.log("HNT", hntKeypair.publicKey.toBase58());
149
+ console.log("DC", dcKeypair.publicKey.toBase58());
150
+ console.log("GOV PID", govProgramId.toBase58());
151
+ console.log("COUNCIL", councilKeypair.publicKey.toBase58());
152
+ console.log("COUNCIL WALLET", councilWallet.toBase58());
153
+ console.log("DAO", dao.toString());
154
+ const proxySeasonsFile = fs.readFileSync(argv.proxySeasonsFile, "utf8");
155
+ const seasons = JSON.parse(proxySeasonsFile).map((s) => ({
156
+ start: new anchor.BN(Math.floor(Date.parse(s.start) / 1000)),
157
+ end: new anchor.BN(Math.floor(Date.parse(s.end) / 1000)),
158
+ }));
149
159
  const conn = provider.connection;
150
160
  const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
151
- commitmentOrConfig: 'finalized',
161
+ commitmentOrConfig: "finalized",
152
162
  });
153
163
  let authority = provider.wallet.publicKey;
154
164
  let multisig = argv.multisig ? new PublicKey(argv.multisig) : null;
@@ -157,7 +167,7 @@ export async function run(args = process.argv) {
157
167
  // Fund authority
158
168
  const authAcc = await provider.connection.getAccountInfo(authority);
159
169
  if (!authAcc || authAcc.lamports < LAMPORTS_PER_SOL) {
160
- console.log('Funding multisig...');
170
+ console.log("Funding multisig...");
161
171
  await sendInstructions(provider, [
162
172
  await SystemProgram.transfer({
163
173
  fromPubkey: me,
@@ -192,13 +202,29 @@ export async function run(args = process.argv) {
192
202
  updateAuthority: authority,
193
203
  });
194
204
  let instructions = [];
195
- const govProgramVersion = await getGovernanceProgramVersion(conn, govProgramId, isLocalhost(provider) ? 'localnet' : undefined);
205
+ const govProgramVersion = await getGovernanceProgramVersion(conn, govProgramId, isLocalhost(provider) ? "localnet" : undefined);
206
+ const delProgram = await init(provider);
207
+ const { pubkeys: { proxyConfig }, instruction, } = await delProgram.methods
208
+ .initializeProxyConfigV0({
209
+ // Set max time to 2 years, though seasons should take precedent
210
+ maxProxyTime: new anchor.BN(24 * 60 * 60 * 365 * 2),
211
+ seasons,
212
+ name: "Helium V1",
213
+ })
214
+ .accounts({
215
+ authority,
216
+ })
217
+ .prepare();
218
+ if (!(await exists(provider.connection, proxyConfig))) {
219
+ console.log("Creating delegation config");
220
+ await sendInstructions(provider, [instruction]);
221
+ }
196
222
  const realmName = argv.realmName;
197
- const realm = await PublicKey.findProgramAddressSync([Buffer.from('governance', 'utf-8'), Buffer.from(realmName, 'utf-8')], govProgramId)[0];
198
- console.log('Realm, ', realm.toBase58());
223
+ const realm = await PublicKey.findProgramAddressSync([Buffer.from("governance", "utf-8"), Buffer.from(realmName, "utf-8")], govProgramId)[0];
224
+ console.log("Realm, ", realm.toBase58());
199
225
  const needRealmCreate = !(await exists(conn, realm));
200
226
  if (needRealmCreate) {
201
- console.log('Initializing Realm');
227
+ console.log("Initializing Realm");
202
228
  await withCreateRealm(instructions, govProgramId, govProgramVersion, realmName, provider.wallet.publicKey, // realmAuthorityPk
203
229
  hntKeypair.publicKey, // communityMintPk
204
230
  provider.wallet.publicKey, // payer
@@ -220,7 +246,7 @@ export async function run(args = process.argv) {
220
246
  }
221
247
  const registrar = (await registrarKey(realm, hntKeypair.publicKey))[0];
222
248
  if (!(await exists(conn, registrar))) {
223
- console.log('Initializing VSR Registrar');
249
+ console.log("Initializing VSR Registrar");
224
250
  instructions.push(ComputeBudgetProgram.setComputeUnitLimit({ units: 800000 }));
225
251
  instructions.push(await heliumVsrProgram.methods
226
252
  .initializeRegistrarV0({
@@ -229,12 +255,13 @@ export async function run(args = process.argv) {
229
255
  .accounts({
230
256
  realm,
231
257
  realmGoverningTokenMint: hntKeypair.publicKey,
258
+ proxyConfig,
232
259
  })
233
260
  .instruction());
234
261
  await sendInstructions(provider, instructions, []);
235
262
  instructions = [];
236
263
  }
237
- console.log('Configuring VSR voting mint at [0]');
264
+ console.log("Configuring VSR voting mint at [0]");
238
265
  instructions.push(await heliumVsrProgram.methods
239
266
  .configureVotingMintV0({
240
267
  idx: 0,
@@ -242,7 +269,7 @@ export async function run(args = process.argv) {
242
269
  maxExtraLockupVoteWeightScaledFactor: new anchor.BN(SCALE * 1e9),
243
270
  genesisVotePowerMultiplier: GENESIS_MULTIPLIER,
244
271
  // April 28th, 23:59:59 UTC
245
- genesisVotePowerMultiplierExpirationTs: new anchor.BN('1682726399'),
272
+ genesisVotePowerMultiplierExpirationTs: new anchor.BN("1682726399"),
246
273
  lockupSaturationSecs: new anchor.BN(MAX_LOCKUP),
247
274
  })
248
275
  .accounts({
@@ -268,7 +295,7 @@ export async function run(args = process.argv) {
268
295
  await sendInstructions(provider, instructions, []);
269
296
  instructions = [];
270
297
  const dcKey = (await dataCreditsKey(dcKeypair.publicKey))[0];
271
- console.log('dcpid', PROGRAM_ID.toBase58());
298
+ console.log("dcpid", PROGRAM_ID.toBase58());
272
299
  if (!(await exists(conn, dcKey))) {
273
300
  await dataCreditsProgram.methods
274
301
  .initializeDataCreditsV0({
@@ -296,12 +323,12 @@ export async function run(args = process.argv) {
296
323
  await provider.sendAndConfirm(tx);
297
324
  }
298
325
  if (!(await exists(conn, dao))) {
299
- console.log('Initializing DAO');
326
+ console.log("Initializing DAO");
300
327
  const hstEmission = await parseEmissionsSchedule(argv.hstEmissionSchedulePath);
301
328
  const hntEmission = await parseEmissionsSchedule(argv.emissionSchedulePath);
302
329
  const currentHstEmission = hstEmission[0];
303
330
  const currentHntEmission = hntEmission[0];
304
- const fanout = fanoutKey('HST')[0];
331
+ const fanout = fanoutKey("HST")[0];
305
332
  const hstPool = getAssociatedTokenAddressSync(hntKeypair.publicKey, fanout, true);
306
333
  await heliumSubDaosProgram.methods
307
334
  .initializeDaoV0({
@@ -379,8 +406,8 @@ export async function run(args = process.argv) {
379
406
  newTreeBufferSize: buffer,
380
407
  newTreeSpace: new BN(getConcurrentMerkleTreeAccountSize(size, buffer, canopy)),
381
408
  newTreeFeeLamports: new BN(cost / 2 ** size),
382
- name: 'DATAONLY',
383
- metadataUrl: 'https://shdw-drive.genesysgo.net/H8b1gZmA2aBqDYxicxawGpznCaNbFSEJ3YnJuawGQ2EQ/data-only.json',
409
+ name: "DATAONLY",
410
+ metadataUrl: "https://shdw-drive.genesysgo.net/H8b1gZmA2aBqDYxicxawGpznCaNbFSEJ3YnJuawGQ2EQ/data-only.json",
384
411
  })
385
412
  .accounts({
386
413
  dao,
@@ -1 +1 @@
1
- {"version":3,"file":"create-dao.js","sourceRoot":"","sources":["../../../src/create-dao.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-dao.js","sourceRoot":"","sources":["../../../src/create-dao.ts"],"names":[],"mappings":"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"}