@helium/helium-admin-cli 0.7.11 → 0.7.13

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.
@@ -36,88 +36,60 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
36
36
  };
37
37
  Object.defineProperty(exports, "__esModule", { value: true });
38
38
  exports.run = void 0;
39
- const address_1 = __importDefault(require("@helium/address"));
40
- const KeyTypes_1 = require("@helium/address/build/KeyTypes");
39
+ const anchor = __importStar(require("@coral-xyz/anchor"));
41
40
  const helium_entity_manager_sdk_1 = require("@helium/helium-entity-manager-sdk");
42
41
  const helium_sub_daos_sdk_1 = require("@helium/helium-sub-daos-sdk");
43
- const voter_stake_registry_sdk_1 = require("@helium/voter-stake-registry-sdk");
44
42
  const spl_utils_1 = require("@helium/spl-utils");
45
- const anchor = __importStar(require("@coral-xyz/anchor"));
46
43
  const spl_account_compression_1 = require("@solana/spl-account-compression");
47
44
  const web3_js_1 = require("@solana/web3.js");
48
45
  const fs_1 = __importDefault(require("fs"));
49
46
  const os_1 = __importDefault(require("os"));
50
47
  const yargs_1 = __importDefault(require("yargs/yargs"));
51
48
  const utils_1 = require("./utils");
52
- const sdk_1 = __importDefault(require("@sqds/sdk"));
53
49
  function run(args = process.argv) {
54
50
  return __awaiter(this, void 0, void 0, function* () {
55
51
  const yarg = (0, yargs_1.default)(args).options({
56
52
  wallet: {
57
- alias: 'k',
58
- describe: 'Anchor wallet keypair',
53
+ alias: "k",
54
+ describe: "Anchor wallet keypair",
59
55
  default: `${os_1.default.homedir()}/.config/solana/id.json`,
60
56
  },
61
- executeTransaction: {
62
- type: 'boolean',
63
- },
64
57
  url: {
65
- alias: 'u',
66
- default: 'http://127.0.0.1:8899',
67
- describe: 'The solana url',
58
+ alias: "u",
59
+ default: "http://127.0.0.1:8899",
60
+ describe: "The solana url",
68
61
  },
69
- subdaoMint: {
62
+ name: {
63
+ alias: "n",
64
+ type: "string",
70
65
  required: true,
71
- describe: 'Public Key of the subdao mint',
72
- type: 'string',
66
+ describe: "The name of the maker",
73
67
  },
74
- govProgramId: {
75
- type: 'string',
76
- describe: 'Pubkey of the GOV program',
77
- default: 'hgovkRU6Ghe1Qoyb54HdSLdqN7VtxaifBzRmh9jtd3S',
78
- },
79
- fromFile: {
80
- describe: 'Load makers from a json file and create in bulk',
81
- required: false,
82
- type: 'string',
68
+ issuingAuthority: {
69
+ type: "string",
70
+ describe: "Key that can issue hotspots on behalf of this maker",
71
+ required: true,
83
72
  },
84
- name: {
85
- alias: 'n',
86
- type: 'string',
87
- required: false,
88
- describe: 'The name of the maker',
73
+ updateAuthority: {
74
+ type: "string",
75
+ describe: "Key that can update the maker's issuing authority",
76
+ required: true,
89
77
  },
90
- makerKey: {
91
- alias: 'm',
92
- type: 'string',
93
- describe: '*Helium* Public Key of a maker',
94
- required: false,
78
+ metadataUrl: {
79
+ type: "string",
80
+ describe: "URL to metadata for this maker. Should be JSON with at least { name, image, description }",
81
+ required: true,
95
82
  },
96
83
  makerCount: {
97
- alias: 'c',
98
- type: 'number',
99
- describe: 'Estimated number of hotspots this maker will have',
100
- required: false,
101
- },
102
- merkleBasePath: {
103
- type: 'string',
104
- describe: 'Base path for merkle keypairs',
105
- default: `${__dirname}/../keypairs`,
106
- },
107
- symbol: {
108
- alias: 's',
109
- type: 'string',
84
+ alias: "c",
85
+ type: "number",
86
+ describe: "Estimated number of hotspots this maker will have",
110
87
  required: true,
111
- describe: 'The symbol of the entity config',
112
- },
113
- multisig: {
114
- type: 'string',
115
- describe: 'Address of the squads multisig to be authority. If not provided, your wallet will be the authority',
116
88
  },
117
- authorityIndex: {
118
- type: 'number',
119
- describe: 'Authority index for squads. Defaults to 1',
120
- default: 1,
89
+ merkleBasePath: {
90
+ type: "string",
91
+ describe: "Base path for merkle keypairs",
92
+ default: `${__dirname}`,
121
93
  },
122
94
  });
123
95
  const argv = yield yarg.argv;
@@ -125,96 +97,99 @@ function run(args = process.argv) {
125
97
  process.env.ANCHOR_PROVIDER_URL = argv.url;
126
98
  anchor.setProvider(anchor.AnchorProvider.local(argv.url));
127
99
  const provider = anchor.getProvider();
128
- const wallet = new anchor.Wallet((0, utils_1.loadKeypair)(argv.wallet));
129
100
  const name = argv.name;
130
- const symbol = argv.symbol;
131
- let makers = [
132
- {
133
- name,
134
- address: argv.makerKey,
135
- count: argv.makerCount || 300000,
136
- staked: true,
137
- },
138
- ];
139
- if (argv.fromFile) {
140
- makers = JSON.parse(fs_1.default.readFileSync(argv.fromFile, 'utf-8'));
141
- // Append a special fallthrough maker for hotspots that don't have a maker
142
- const solAddr = provider.wallet.publicKey;
143
- const helAddr = new address_1.default(0, 0, KeyTypes_1.ED25519_KEY_TYPE, solAddr.toBuffer());
144
- makers.push({
145
- name: 'Migrated Helium Hotspot',
146
- address: helAddr.b58,
147
- count: 50000,
148
- staked: true,
149
- });
150
- }
101
+ const count = argv.makerCount;
102
+ const issuingAuthority = new web3_js_1.PublicKey(argv.issuingAuthority);
103
+ const updateAuthority = new web3_js_1.PublicKey(argv.updateAuthority);
151
104
  const hemProgram = yield (0, helium_entity_manager_sdk_1.init)(provider);
152
- const hsdProgram = yield (0, helium_sub_daos_sdk_1.init)(provider);
153
- const vsrProgram = yield (0, voter_stake_registry_sdk_1.init)(provider);
154
105
  const conn = provider.connection;
155
- const subdaoMint = new web3_js_1.PublicKey(argv.subdaoMint);
156
- const subdao = (yield (0, helium_sub_daos_sdk_1.subDaoKey)(subdaoMint))[0];
157
- const entityConfigKey = (yield (0, helium_entity_manager_sdk_1.rewardableEntityConfigKey)(subdao, symbol.toUpperCase()))[0];
158
- const subdaoAcc = yield hsdProgram.account.subDaoV0.fetch(subdao);
159
- const dao = yield hsdProgram.account.daoV0.fetch(subdaoAcc.dao);
160
- let subdaoPayer = provider.wallet.publicKey;
106
+ const daoK = (0, helium_sub_daos_sdk_1.daoKey)(spl_utils_1.HNT_MINT)[0];
161
107
  let daoPayer = provider.wallet.publicKey;
162
- const squads = sdk_1.default.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
163
- commitmentOrConfig: 'finalized',
164
- });
165
- let authority = provider.wallet.publicKey;
166
- let multisig = argv.multisig ? new web3_js_1.PublicKey(argv.multisig) : null;
167
- if (multisig) {
168
- authority = squads.getAuthorityPDA(multisig, argv.authorityIndex);
169
- subdaoPayer = authority;
170
- daoPayer = authority;
171
- console.log('SQUAD AUTH', authority.toBase58());
172
- }
173
- const createInstructions = [];
174
- const approveInstructions = [];
175
- const updateAuthority = dao.authority;
176
108
  let totalSol = 0;
177
- for (const { name, address, count, staked } of makers) {
178
- const innerCreateInstrs = [];
179
- const makerAuthority = new web3_js_1.PublicKey(address_1.default.fromB58(address).publicKey);
180
- const [size, buffer, canopy] = utils_1.merkleSizes.find(([height]) => Math.pow(2, height) > count * 2);
181
- const space = (0, spl_account_compression_1.getConcurrentMerkleTreeAccountSize)(size, buffer, canopy);
182
- const maker = yield (0, helium_entity_manager_sdk_1.makerKey)(subdaoAcc.dao, name)[0];
183
- const rent = yield provider.connection.getMinimumBalanceForRentExemption(space);
184
- totalSol += rent;
185
- let merkle;
186
- const merklePath = `${argv.merkleBasePath}/merkle-${address}.json`;
187
- if (fs_1.default.existsSync(merklePath)) {
188
- merkle = (0, utils_1.loadKeypair)(merklePath);
189
- }
190
- else {
191
- merkle = web3_js_1.Keypair.generate();
192
- fs_1.default.writeFileSync(merklePath, JSON.stringify(Array.from(merkle.secretKey)));
193
- }
194
- if (!(yield (0, utils_1.exists)(conn, maker))) {
195
- console.log(`
196
- Creating maker with helium addr: ${address}.
197
- Solana addr: ${makerAuthority.toBase58()}.
198
- Size: ${size}, buffer: ${buffer}, canopy: ${canopy}.
109
+ const instructions = [];
110
+ const [size, buffer, canopy] = utils_1.merkleSizes.find(([height]) => Math.pow(2, height) > count * 2);
111
+ const space = (0, spl_account_compression_1.getConcurrentMerkleTreeAccountSize)(size, buffer, canopy);
112
+ const maker = yield (0, helium_entity_manager_sdk_1.makerKey)(daoK, name)[0];
113
+ const rent = yield provider.connection.getMinimumBalanceForRentExemption(space);
114
+ totalSol += rent;
115
+ let merkle;
116
+ const merklePath = `${argv.merkleBasePath}/merkle-${maker.toBase58()}.json`;
117
+ if (fs_1.default.existsSync(merklePath)) {
118
+ merkle = (0, utils_1.loadKeypair)(merklePath);
119
+ }
120
+ else {
121
+ merkle = web3_js_1.Keypair.generate();
122
+ fs_1.default.writeFileSync(merklePath, JSON.stringify(Array.from(merkle.secretKey)));
123
+ }
124
+ if (!(yield (0, utils_1.exists)(conn, maker))) {
125
+ console.log(`
126
+ Creating maker with address: ${maker.toBase58()}
127
+ Issuing Authority: ${issuingAuthority.toBase58()}.
128
+ Capacity: 2^${size}, buffer: ${buffer}, canopy: ${canopy}.
199
129
  Space: ${space} bytes
200
130
  Cost: ~${(0, spl_utils_1.humanReadable)(new anchor.BN(rent), 9)} Sol
201
131
  `);
202
- if (space > 10000000) {
203
- throw new Error(`Space ${space} more than 10mb for tree ${size}, ${buffer}, ${canopy}}`);
204
- }
205
- const create = yield hemProgram.methods
206
- .initializeMakerV0({
207
- name: name,
208
- metadataUrl: 'todo',
209
- issuingAuthority: makerAuthority,
132
+ if (space > 10000000) {
133
+ throw new Error(`Space ${space} more than 10mb for tree ${size}, ${buffer}, ${canopy}}`);
134
+ }
135
+ const create = yield hemProgram.methods
136
+ .initializeMakerV0({
137
+ name: name,
138
+ metadataUrl: argv.metadataUrl,
139
+ issuingAuthority,
140
+ // Temp, since we need to set maker tree
141
+ updateAuthority: provider.wallet.publicKey,
142
+ })
143
+ .accounts({
144
+ maker,
145
+ payer: daoPayer,
146
+ dao: daoK,
147
+ })
148
+ .instruction();
149
+ const setTree = yield hemProgram.methods
150
+ .setMakerTreeV0({
151
+ maxDepth: size,
152
+ maxBufferSize: buffer,
153
+ })
154
+ .accounts({
155
+ maker,
156
+ merkleTree: merkle.publicKey,
157
+ payer: daoPayer,
158
+ updateAuthority: provider.wallet.publicKey,
159
+ })
160
+ .instruction();
161
+ if (!(yield (0, utils_1.exists)(conn, merkle.publicKey))) {
162
+ yield (0, spl_utils_1.sendInstructions)(provider, [
163
+ web3_js_1.SystemProgram.createAccount({
164
+ fromPubkey: provider.wallet.publicKey,
165
+ newAccountPubkey: merkle.publicKey,
166
+ lamports: yield provider.connection.getMinimumBalanceForRentExemption(space),
167
+ space: space,
168
+ programId: spl_account_compression_1.SPL_ACCOUNT_COMPRESSION_PROGRAM_ID,
169
+ }),
170
+ ], [merkle]);
171
+ }
172
+ instructions.push(...[create, setTree].filter(spl_utils_1.truthy));
173
+ if (!updateAuthority.equals(provider.wallet.publicKey)) {
174
+ instructions.push(yield hemProgram.methods
175
+ .updateMakerV0({
176
+ issuingAuthority,
210
177
  updateAuthority,
211
178
  })
212
- .accounts({
213
- maker,
214
- payer: daoPayer,
215
- dao: subdaoAcc.dao,
216
- })
217
- .instruction();
179
+ .accounts({ maker, updateAuthority: provider.wallet.publicKey })
180
+ .instruction());
181
+ }
182
+ }
183
+ else {
184
+ const makerAcc = yield hemProgram.account.makerV0.fetch(maker);
185
+ instructions.push(yield hemProgram.methods
186
+ .updateMakerV0({
187
+ issuingAuthority,
188
+ updateAuthority,
189
+ })
190
+ .accounts({ maker, updateAuthority: makerAcc.updateAuthority })
191
+ .instruction());
192
+ if (makerAcc.merkleTree.equals(web3_js_1.SystemProgram.programId)) {
218
193
  const setTree = yield hemProgram.methods
219
194
  .setMakerTreeV0({
220
195
  maxDepth: size,
@@ -238,85 +213,19 @@ function run(args = process.argv) {
238
213
  }),
239
214
  ], [merkle]);
240
215
  }
241
- innerCreateInstrs.push(...[create, setTree].filter(spl_utils_1.truthy));
242
- }
243
- else {
244
- const makerAcc = yield hemProgram.account.makerV0.fetch(maker);
245
- innerCreateInstrs.push(yield hemProgram.methods
246
- .updateMakerV0({
247
- issuingAuthority: makerAuthority,
248
- updateAuthority,
249
- })
250
- .accounts({ maker, updateAuthority: makerAcc.updateAuthority })
251
- .instruction());
252
- if (makerAcc.merkleTree.equals(web3_js_1.SystemProgram.programId)) {
253
- const setTree = yield hemProgram.methods
254
- .setMakerTreeV0({
255
- maxDepth: size,
256
- maxBufferSize: buffer,
257
- })
258
- .accounts({
259
- maker,
260
- merkleTree: merkle.publicKey,
261
- payer: daoPayer,
262
- updateAuthority,
263
- })
264
- .instruction();
265
- if (!(yield (0, utils_1.exists)(conn, merkle.publicKey))) {
266
- yield (0, spl_utils_1.sendInstructions)(provider, [
267
- web3_js_1.SystemProgram.createAccount({
268
- fromPubkey: provider.wallet.publicKey,
269
- newAccountPubkey: merkle.publicKey,
270
- lamports: yield provider.connection.getMinimumBalanceForRentExemption(space),
271
- space: space,
272
- programId: spl_account_compression_1.SPL_ACCOUNT_COMPRESSION_PROGRAM_ID,
273
- }),
274
- ], [merkle]);
275
- }
276
- innerCreateInstrs.push(setTree);
277
- }
278
- }
279
- createInstructions.push(innerCreateInstrs);
280
- const innerApproveInstrs = [];
281
- let approve;
282
- if (staked &&
283
- !(yield (0, utils_1.exists)(conn, (0, helium_entity_manager_sdk_1.makerApprovalKey)(entityConfigKey, maker)[0]))) {
284
- const authority = (yield hemProgram.account.rewardableEntityConfigV0.fetch(entityConfigKey)).authority;
285
- approve = yield hemProgram.methods
286
- .approveMakerV0()
287
- .accounts({
288
- maker,
289
- rewardableEntityConfig: entityConfigKey,
290
- authority,
291
- payer: subdaoPayer,
292
- })
293
- .instruction();
294
- innerApproveInstrs.push(approve);
295
- }
296
- approveInstructions.push(innerApproveInstrs);
297
- }
298
- console.log('Total sol needed: ', (0, spl_utils_1.humanReadable)(new anchor.BN(totalSol), 9));
299
- if (multisig) {
300
- // Approve instructions must execute after ALL create instructions
301
- const instrs = createInstructions.flat().filter(spl_utils_1.truthy);
302
- const approveInstrs = approveInstructions.flat().filter(spl_utils_1.truthy);
303
- for (const chunk of (0, spl_utils_1.chunks)([...instrs, ...approveInstrs], 3)) {
304
- yield (0, utils_1.sendInstructionsOrSquads)({
305
- provider,
306
- instructions: chunk,
307
- signers: [],
308
- executeTransaction: argv.executeTransaction,
309
- squads,
310
- multisig,
311
- authorityIndex: argv.authorityIndex,
312
- });
216
+ instructions.push(setTree);
313
217
  }
314
218
  }
315
- else {
316
- for (const instrs of [...createInstructions, ...approveInstructions]) {
317
- yield (0, spl_utils_1.sendInstructions)(provider, instrs, []);
318
- }
219
+ console.log("Total sol needed: ", (0, spl_utils_1.humanReadable)(new anchor.BN(totalSol), 9));
220
+ const balance = yield provider.connection.getBalance(provider.wallet.publicKey);
221
+ if (balance < totalSol) {
222
+ throw new Error(`Insufficient balance: ${(0, spl_utils_1.humanReadable)(new anchor.BN(Math.floor(balance)), 9)} < ${(0, spl_utils_1.humanReadable)(new anchor.BN(totalSol), 9)}`);
319
223
  }
224
+ yield (0, spl_utils_1.sendInstructions)(provider, yield (0, spl_utils_1.withPriorityFees)({
225
+ connection: provider.connection,
226
+ instructions,
227
+ feePayer: provider.wallet.publicKey
228
+ }));
320
229
  });
321
230
  }
322
231
  exports.run = run;
@@ -1 +1 @@
1
- {"version":3,"file":"create-maker.js","sourceRoot":"","sources":["../../src/create-maker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create-maker.js","sourceRoot":"","sources":["../../src/create-maker.ts"],"names":[],"mappings":"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"}