@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,201 @@
1
+ import { ClockworkProvider } from "@clockwork-xyz/sdk";
2
+ import * as anchor from "@coral-xyz/anchor";
3
+ import Address from "@helium/address";
4
+ import { ED25519_KEY_TYPE } from "@helium/address/build/KeyTypes";
5
+ import { fanoutKey, init, membershipVoucherKey } from "@helium/fanout-sdk";
6
+ import { createMintInstructions, sendInstructions } from "@helium/spl-utils";
7
+ import { createAssociatedTokenAccountIdempotentInstruction, getAssociatedTokenAddressSync } from "@solana/spl-token";
8
+ import { ComputeBudgetProgram, Keypair, PublicKey } from "@solana/web3.js";
9
+ import Squads from "@sqds/sdk";
10
+ import { loadKeypair } from "@switchboard-xyz/solana.js";
11
+ import fs from "fs";
12
+ import os from "os";
13
+ import yargs from "yargs/yargs";
14
+ import { createAndMint, exists } from "./utils";
15
+ export async function run(args = process.argv) {
16
+ const yarg = yargs(args).options({
17
+ wallet: {
18
+ alias: "k",
19
+ describe: "Anchor wallet keypair",
20
+ default: `${os.homedir()}/.config/solana/id.json`,
21
+ },
22
+ url: {
23
+ alias: "u",
24
+ default: "http://127.0.0.1:8899",
25
+ describe: "The solana url",
26
+ },
27
+ hnt: {
28
+ type: "string",
29
+ describe: "Pubkey of hnt",
30
+ required: true,
31
+ },
32
+ state: {
33
+ type: "string",
34
+ alias: "s",
35
+ default: `${__dirname}/../../migration-service/export.json`,
36
+ },
37
+ name: {
38
+ type: "string",
39
+ },
40
+ multisig: {
41
+ type: "string",
42
+ describe: "Address of the squads multisig to control the dao. If not provided, your wallet will be the authority",
43
+ },
44
+ authorityIndex: {
45
+ type: "number",
46
+ describe: "Authority index for squads. Defaults to 1",
47
+ default: 1,
48
+ },
49
+ hstKeypair: {
50
+ type: "string",
51
+ describe: "Keypair of the HST token",
52
+ default: `${__dirname}/../keypairs/hst.json`,
53
+ },
54
+ bucket: {
55
+ type: "string",
56
+ describe: "Bucket URL prefix holding all of the metadata jsons",
57
+ default: "https://shdw-drive.genesysgo.net/CsDkETHRRR1EcueeN346MJoqzymkkr7RFjMqGpZMzAib",
58
+ },
59
+ });
60
+ const argv = await yarg.argv;
61
+ process.env.ANCHOR_WALLET = argv.wallet;
62
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
63
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
64
+ const provider = anchor.getProvider();
65
+ const hstKeypair = loadKeypair(argv.hstKeypair);
66
+ let authority = provider.wallet.publicKey;
67
+ let multisig = argv.multisig ? new PublicKey(argv.multisig) : null;
68
+ const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, provider.wallet);
69
+ if (multisig) {
70
+ authority = squads.getAuthorityPDA(multisig, argv.authorityIndex);
71
+ }
72
+ const state = JSON.parse(fs.readFileSync(argv.state).toString());
73
+ const accounts = state.accounts;
74
+ const hnt = new PublicKey(argv.hnt);
75
+ const hst = hstKeypair.publicKey;
76
+ const fanoutProgram = await init(provider);
77
+ const totalHst = Object.values(accounts).reduce((acc, v) => {
78
+ if (v.hst) {
79
+ return acc.add(new anchor.BN(v.hst));
80
+ }
81
+ return acc;
82
+ }, new anchor.BN(0));
83
+ await createAndMint({
84
+ provider,
85
+ mintKeypair: hstKeypair,
86
+ amount: totalHst.toNumber() / 10 ** 8,
87
+ decimals: 8,
88
+ metadataUrl: `${argv.bucket}/hst.json`,
89
+ });
90
+ const fanout = fanoutKey(argv.name)[0];
91
+ const hntAccount = await getAssociatedTokenAddressSync(hnt, fanout, true);
92
+ console.log("Outputting hnt to", hntAccount.toBase58());
93
+ if (!(await exists(provider.connection, fanout))) {
94
+ await fanoutProgram.methods
95
+ .initializeFanoutV0({
96
+ name: argv.name,
97
+ })
98
+ .preInstructions([
99
+ ComputeBudgetProgram.setComputeUnitLimit({ units: 500000 }),
100
+ ])
101
+ .accounts({
102
+ authority,
103
+ membershipMint: hst,
104
+ fanoutMint: hnt,
105
+ })
106
+ .rpc({ skipPreflight: true });
107
+ }
108
+ const clockworkProvider = new ClockworkProvider(provider.wallet, provider.connection);
109
+ for (const [address, account] of Object.entries(accounts)) {
110
+ if (!account.hst || account.hst === 0 || account.hst === "0") {
111
+ continue;
112
+ }
113
+ const solAddress = toSolana(address);
114
+ if (!solAddress) {
115
+ throw new Error("HST Owner that doesn't have a sol address " + address);
116
+ }
117
+ const hstAmount = new anchor.BN(account.hst);
118
+ let mint;
119
+ const mintPath = `${__dirname}/../keypairs/hst-receipt-${address}.json`;
120
+ if (fs.existsSync(mintPath)) {
121
+ mint = loadKeypair(mintPath);
122
+ }
123
+ else {
124
+ mint = Keypair.generate();
125
+ fs.writeFileSync(mintPath, JSON.stringify(Array.from(mint.secretKey)));
126
+ }
127
+ const [voucher] = membershipVoucherKey(mint.publicKey);
128
+ if (!(await exists(provider.connection, voucher))) {
129
+ await fanoutProgram.methods
130
+ .stakeV0({
131
+ amount: hstAmount,
132
+ })
133
+ .preInstructions(await createMintInstructions(provider, 0, voucher, voucher, mint))
134
+ .accounts({
135
+ recipient: solAddress,
136
+ fanout,
137
+ mint: mint.publicKey
138
+ })
139
+ .signers([mint])
140
+ .rpc({ skipPreflight: true });
141
+ }
142
+ // 2️⃣ Define a trigger condition.
143
+ const trigger = {
144
+ cron: {
145
+ schedule: "0 30 0 * * * *",
146
+ skippable: true,
147
+ },
148
+ };
149
+ // 3️⃣ Create the thread.
150
+ const threadId = `${argv.name}-${mint.publicKey.toBase58().slice(0, 8)}`;
151
+ const [thread] = threadKey(provider.wallet.publicKey, threadId);
152
+ console.log("Thread ID", threadId, thread.toBase58());
153
+ const memberHntAccount = await getAssociatedTokenAddressSync(hnt, solAddress, true);
154
+ if (!(await exists(provider.connection, memberHntAccount))) {
155
+ await sendInstructions(provider, [
156
+ createAssociatedTokenAccountIdempotentInstruction(provider.wallet.publicKey, memberHntAccount, solAddress, hnt),
157
+ ]);
158
+ }
159
+ const distributeIx = await fanoutProgram.methods
160
+ .distributeV0()
161
+ .accounts({
162
+ payer: new PublicKey("C1ockworkPayer11111111111111111111111111111"),
163
+ fanout,
164
+ owner: solAddress,
165
+ mint: mint.publicKey
166
+ })
167
+ .instruction();
168
+ if (!(await exists(provider.connection, thread))) {
169
+ const tx = await clockworkProvider.threadCreate(provider.wallet.publicKey, // authority
170
+ threadId, // id
171
+ [distributeIx], // instructions
172
+ trigger, // trigger
173
+ anchor.web3.LAMPORTS_PER_SOL // amount
174
+ );
175
+ }
176
+ else {
177
+ await clockworkProvider.threadUpdate(provider.wallet.publicKey, thread, {
178
+ trigger,
179
+ });
180
+ }
181
+ }
182
+ }
183
+ function toSolana(address) {
184
+ try {
185
+ const addr = Address.fromB58(address);
186
+ if (addr.keyType === ED25519_KEY_TYPE)
187
+ return new PublicKey(addr.publicKey);
188
+ }
189
+ catch (e) {
190
+ return undefined;
191
+ }
192
+ }
193
+ const CLOCKWORK_PID = new PublicKey("CLoCKyJ6DXBJqqu2VWx9RLbgnwwR6BMHHuyasVmfMzBh");
194
+ export function threadKey(authority, threadId, programId = CLOCKWORK_PID) {
195
+ return PublicKey.findProgramAddressSync([
196
+ Buffer.from("thread", "utf8"),
197
+ authority.toBuffer(),
198
+ Buffer.from(threadId, "utf8"),
199
+ ], programId);
200
+ }
201
+ //# sourceMappingURL=setup-hst.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-hst.js","sourceRoot":"","sources":["../../../src/setup-hst.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ import { init } from "@helium/price-oracle-sdk";
2
+ import * as anchor from "@coral-xyz/anchor";
3
+ import { PublicKey } from "@solana/web3.js";
4
+ import os from "os";
5
+ import yargs from "yargs/yargs";
6
+ import { BN } from "bn.js";
7
+ import axios from "axios";
8
+ async function findBinancePrice(symbol) {
9
+ try {
10
+ const response = await axios.get(`https://api.binance.com/api/v3/ticker/price?symbol=${symbol}`);
11
+ const data = response.data;
12
+ return parseFloat(data.price);
13
+ }
14
+ catch (error) {
15
+ console.error(`Error fetching ticker price for ${symbol}: ${error.message}`);
16
+ throw error;
17
+ }
18
+ }
19
+ async function findCoingeckoPrice(token) {
20
+ try {
21
+ const response = await axios.get(`https://api.coingecko.com/api/v3/simple/price?ids=${token}&vs_currencies=usd`);
22
+ const data = response.data;
23
+ return parseFloat(data[token]["usd"]);
24
+ }
25
+ catch (error) {
26
+ console.error(`Error fetching price for ${token}: ${error.message}`);
27
+ throw error;
28
+ }
29
+ }
30
+ export async function run(args = process.argv) {
31
+ const yarg = yargs(args).options({
32
+ wallet: {
33
+ alias: "k",
34
+ describe: "Anchor wallet keypair",
35
+ default: `${os.homedir()}/.config/solana/id.json`,
36
+ },
37
+ url: {
38
+ alias: "u",
39
+ default: "http://127.0.0.1:8899",
40
+ describe: "The solana url",
41
+ },
42
+ price: {
43
+ alias: "p",
44
+ type: "number",
45
+ required: false,
46
+ describe: "The price to submit. Required if not using default pricing",
47
+ },
48
+ priceOracle: {
49
+ type: "string",
50
+ required: true,
51
+ alias: "o",
52
+ describe: "Name or Address of the price oracle to submit a price to. Example: hnt, iot, mobile, horUtvuHQFWxPFrZ35YZUmXUZ2TSQdSXhcD4kkCVNKi",
53
+ },
54
+ useBinancePrice: {
55
+ type: "string",
56
+ required: false,
57
+ describe: "If supplied, will try and find the binance price for this pair. E.g. 'HNTUSDT' will submit the binance HNT-USDT price",
58
+ default: null,
59
+ },
60
+ useCoingeckoPrice: {
61
+ type: "string",
62
+ required: false,
63
+ describe: "If supplied, will try and find the coingecko price for this coin. E.g. 'helium' will submit the coingecko HNT price",
64
+ default: null,
65
+ },
66
+ });
67
+ const argv = await yarg.argv;
68
+ process.env.ANCHOR_WALLET = argv.wallet;
69
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
70
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
71
+ const provider = anchor.getProvider();
72
+ const program = await init(provider);
73
+ if (!argv.useBinancePrice && !argv.price && !argv.useCoingeckoPrice) {
74
+ throw new Error("Need to supply a price");
75
+ }
76
+ const price = argv.price
77
+ ? argv.price
78
+ : argv.useCoingeckoPrice
79
+ ? await findCoingeckoPrice(argv.useCoingeckoPrice)
80
+ : argv.useBinancePrice
81
+ ? await findBinancePrice(argv.useBinancePrice)
82
+ : null;
83
+ switch (argv.priceOracle) {
84
+ case "hnt":
85
+ argv.priceOracle = "horUtvuHQFWxPFrZ35YZUmXUZ2TSQdSXhcD4kkCVNKi";
86
+ break;
87
+ case "iot":
88
+ argv.priceOracle = "iortGU2NMgWc256XDBz2mQnmjPfKUMezJ4BWfayEZY3";
89
+ break;
90
+ case "mobile":
91
+ argv.priceOracle = "moraMdsjyPFz8Lp1RJGoW4bQriSF5mHE7Evxt7hytSF";
92
+ break;
93
+ }
94
+ const priceOracle = new PublicKey(argv.priceOracle);
95
+ const priceOracleAcc = await program.account.priceOracleV0.fetch(priceOracle);
96
+ const oracleIndex = priceOracleAcc.oracles.findIndex((x) => x.authority.equals(provider.wallet.publicKey));
97
+ if (oracleIndex == -1) {
98
+ throw new Error("Couldn't find your wallet as an oracle authority on this price oracle");
99
+ }
100
+ const decimalShiftedPrice = new BN(price * 10 ** priceOracleAcc.decimals);
101
+ await program.methods
102
+ .submitPriceV0({
103
+ oracleIndex,
104
+ price: decimalShiftedPrice,
105
+ })
106
+ .accounts({
107
+ priceOracle,
108
+ oracle: provider.wallet.publicKey,
109
+ })
110
+ .rpc({ skipPreflight: true });
111
+ console.log(`Submitted price: ${price}`);
112
+ }
113
+ //# sourceMappingURL=submit-price.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submit-price.js","sourceRoot":"","sources":["../../../src/submit-price.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { init } from "@helium/circuit-breaker-sdk";
3
+ import { PublicKey } from "@solana/web3.js";
4
+ import Squads from "@sqds/sdk";
5
+ import { BN } from "bn.js";
6
+ import os from "os";
7
+ import yargs from "yargs/yargs";
8
+ import { sendInstructionsOrSquads } from "./utils";
9
+ export async function run(args = process.argv) {
10
+ const yarg = yargs(args).options({
11
+ wallet: {
12
+ alias: "k",
13
+ describe: "Anchor wallet keypair",
14
+ default: `${os.homedir()}/.config/solana/id.json`,
15
+ },
16
+ url: {
17
+ alias: "u",
18
+ default: "http://127.0.0.1:8899",
19
+ describe: "The solana url",
20
+ },
21
+ circuitBreaker: {
22
+ type: "string",
23
+ required: true,
24
+ describe: "Circuit breaker account",
25
+ },
26
+ windowSizeSeconds: {
27
+ type: "number",
28
+ },
29
+ threshold: {
30
+ type: "number",
31
+ },
32
+ executeTransaction: {
33
+ type: "boolean",
34
+ },
35
+ multisig: {
36
+ type: "string",
37
+ describe: "Address of the squads multisig to be authority. If not provided, your wallet will be the authority",
38
+ },
39
+ newAuthority: {
40
+ type: "string",
41
+ },
42
+ authorityIndex: {
43
+ type: "number",
44
+ describe: "Authority index for squads. Defaults to 1",
45
+ default: 1,
46
+ },
47
+ });
48
+ const argv = await yarg.argv;
49
+ process.env.ANCHOR_WALLET = argv.wallet;
50
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
51
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
52
+ const circuitBreakerKey = new PublicKey(argv.circuitBreaker);
53
+ const provider = anchor.getProvider();
54
+ const circuitBreakerProgram = await init(provider);
55
+ const instructions = [];
56
+ const circuitBreaker = await circuitBreakerProgram.account.accountWindowedCircuitBreakerV0.fetch(circuitBreakerKey);
57
+ instructions.push(await circuitBreakerProgram.methods
58
+ .updateAccountWindowedBreakerV0({
59
+ newAuthority: argv.newAuthority ? new PublicKey(argv.newAuthority) : circuitBreaker.authority,
60
+ config: {
61
+ windowSizeSeconds: argv.windowSizeSeconds
62
+ ? new BN(argv.windowSizeSeconds)
63
+ : circuitBreaker.config.windowSizeSeconds,
64
+ thresholdType: circuitBreaker.config.thresholdType,
65
+ threshold: argv.threshold
66
+ ? new BN(argv.threshold)
67
+ : circuitBreaker.config.threshold,
68
+ },
69
+ })
70
+ .accounts({
71
+ circuitBreaker: circuitBreakerKey,
72
+ authority: circuitBreaker.authority,
73
+ })
74
+ .instruction());
75
+ const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, provider.wallet);
76
+ await sendInstructionsOrSquads({
77
+ provider,
78
+ instructions,
79
+ executeTransaction: argv.executeTransaction,
80
+ squads,
81
+ multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
82
+ authorityIndex: argv.authorityIndex,
83
+ signers: [],
84
+ });
85
+ }
86
+ //# sourceMappingURL=update-account-circuit-breaker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-account-circuit-breaker.js","sourceRoot":"","sources":["../../../src/update-account-circuit-breaker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { init as initCb, mintWindowedBreakerKey } from "@helium/circuit-breaker-sdk";
3
+ import { daoKey, init as initHsd } 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 { parseEmissionsSchedule, sendInstructionsOrSquads } from "./utils";
9
+ export async function run(args = process.argv) {
10
+ const yarg = yargs(args).options({
11
+ wallet: {
12
+ alias: "k",
13
+ describe: "Anchor wallet keypair",
14
+ default: `${os.homedir()}/.config/solana/id.json`,
15
+ },
16
+ url: {
17
+ alias: "u",
18
+ default: "http://127.0.0.1:8899",
19
+ describe: "The solana url",
20
+ },
21
+ hntMint: {
22
+ required: true,
23
+ type: "string",
24
+ describe: "HNT mint of the dao to be updated",
25
+ },
26
+ newAuthority: {
27
+ required: false,
28
+ describe: "New DAO authority",
29
+ type: "string",
30
+ default: null,
31
+ },
32
+ newEmissionsSchedulePath: {
33
+ required: false,
34
+ describe: "Path to file that contains the new emissions schedule",
35
+ type: "string",
36
+ default: null,
37
+ },
38
+ newHstEmissionsSchedulePath: {
39
+ required: false,
40
+ describe: "Path to file that contains the new HST emissions schedule",
41
+ type: "string",
42
+ default: null,
43
+ },
44
+ newHstPool: {
45
+ required: false,
46
+ describe: "New HST Pool",
47
+ type: "string",
48
+ default: null,
49
+ },
50
+ executeTransaction: {
51
+ type: "boolean",
52
+ },
53
+ multisig: {
54
+ type: "string",
55
+ describe: "Address of the squads multisig to be authority. If not provided, your wallet will be the authority",
56
+ },
57
+ authorityIndex: {
58
+ type: "number",
59
+ describe: "Authority index for squads. Defaults to 1",
60
+ default: 1,
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 program = await initHsd(provider);
69
+ const cbProgram = await initCb(provider);
70
+ const instructions = [];
71
+ const hntMint = new PublicKey(argv.hntMint);
72
+ const dao = daoKey(hntMint)[0];
73
+ const daoAcc = await program.account.daoV0.fetch(dao);
74
+ if (argv.newAuthority) {
75
+ const hntCircuitBreaker = mintWindowedBreakerKey(hntMint)[0];
76
+ const hntCbAcc = await cbProgram.account.mintWindowedCircuitBreakerV0.fetch(hntCircuitBreaker);
77
+ instructions.push(await cbProgram.methods.updateMintWindowedBreakerV0({
78
+ newAuthority: new PublicKey(argv.newAuthority),
79
+ config: null,
80
+ }).accounts({
81
+ circuitBreaker: hntCircuitBreaker,
82
+ authority: hntCbAcc.authority,
83
+ }).instruction());
84
+ }
85
+ instructions.push(await program.methods.updateDaoV0({
86
+ authority: argv.newAuthority ? new PublicKey(argv.newAuthority) : null,
87
+ emissionSchedule: argv.knewEmissionsSchedulePath ? await parseEmissionsSchedule(argv.newEmissionsSchedulePath) : null,
88
+ hstEmissionSchedule: argv.newHstEmissionsSchedulePath ? await parseEmissionsSchedule(argv.newHstEmissionsSchedulePath) : null,
89
+ hstPool: argv.newHstPool ? new PublicKey(argv.newHstPool) : null,
90
+ }).accounts({
91
+ dao,
92
+ authority: daoAcc.authority,
93
+ }).instruction());
94
+ const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, provider.wallet);
95
+ await sendInstructionsOrSquads({
96
+ provider,
97
+ instructions,
98
+ executeTransaction: argv.executeTransaction,
99
+ squads,
100
+ multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
101
+ authorityIndex: argv.authorityIndex,
102
+ signers: [],
103
+ });
104
+ }
105
+ //# sourceMappingURL=update-dao.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-dao.js","sourceRoot":"","sources":["../../../src/update-dao.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { init } from "@helium/circuit-breaker-sdk";
3
+ import { PublicKey } from "@solana/web3.js";
4
+ import Squads from "@sqds/sdk";
5
+ import { BN } from "bn.js";
6
+ import os from "os";
7
+ import yargs from "yargs/yargs";
8
+ import { sendInstructionsOrSquads } from "./utils";
9
+ export async function run(args = process.argv) {
10
+ const yarg = yargs(args).options({
11
+ wallet: {
12
+ alias: "k",
13
+ describe: "Anchor wallet keypair",
14
+ default: `${os.homedir()}/.config/solana/id.json`,
15
+ },
16
+ url: {
17
+ alias: "u",
18
+ default: "http://127.0.0.1:8899",
19
+ describe: "The solana url",
20
+ },
21
+ circuitBreaker: {
22
+ type: "string",
23
+ required: true,
24
+ describe: "Circuit breaker account",
25
+ },
26
+ windowSizeSeconds: {
27
+ type: "number",
28
+ },
29
+ threshold: {
30
+ type: "number",
31
+ },
32
+ executeTransaction: {
33
+ type: "boolean",
34
+ },
35
+ multisig: {
36
+ type: "string",
37
+ describe: "Address of the squads multisig to be authority. If not provided, your wallet will be the authority",
38
+ },
39
+ newAuthority: {
40
+ type: "string",
41
+ },
42
+ authorityIndex: {
43
+ type: "number",
44
+ describe: "Authority index for squads. Defaults to 1",
45
+ default: 1,
46
+ },
47
+ });
48
+ const argv = await yarg.argv;
49
+ process.env.ANCHOR_WALLET = argv.wallet;
50
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
51
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
52
+ const circuitBreakerKey = new PublicKey(argv.circuitBreaker);
53
+ const provider = anchor.getProvider();
54
+ const circuitBreakerProgram = await init(provider);
55
+ const instructions = [];
56
+ const circuitBreaker = await circuitBreakerProgram.account.mintWindowedCircuitBreakerV0.fetch(circuitBreakerKey);
57
+ instructions.push(await circuitBreakerProgram.methods
58
+ .updateMintWindowedBreakerV0({
59
+ newAuthority: argv.newAuthority
60
+ ? new PublicKey(argv.newAuthority)
61
+ : circuitBreaker.authority,
62
+ config: {
63
+ windowSizeSeconds: argv.windowSizeSeconds
64
+ ? new BN(argv.windowSizeSeconds)
65
+ : circuitBreaker.config.windowSizeSeconds,
66
+ thresholdType: circuitBreaker.config.thresholdType,
67
+ threshold: argv.threshold
68
+ ? new BN(argv.threshold)
69
+ : circuitBreaker.config.threshold,
70
+ },
71
+ })
72
+ .accounts({
73
+ circuitBreaker: circuitBreakerKey,
74
+ authority: circuitBreaker.authority,
75
+ })
76
+ .instruction());
77
+ const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, provider.wallet);
78
+ await sendInstructionsOrSquads({
79
+ provider,
80
+ instructions,
81
+ executeTransaction: argv.executeTransaction,
82
+ squads,
83
+ multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
84
+ authorityIndex: argv.authorityIndex,
85
+ signers: [],
86
+ });
87
+ }
88
+ //# sourceMappingURL=update-mint-circuit-breaker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-mint-circuit-breaker.js","sourceRoot":"","sources":["../../../src/update-mint-circuit-breaker.ts"],"names":[],"mappings":"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"}