@helium/helium-admin-cli 0.2.21 → 0.2.22-next.34
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.
- package/lib/cjs/approve-carrier.js +18 -17
- package/lib/cjs/approve-carrier.js.map +1 -1
- package/lib/cjs/approve-program.js +21 -20
- package/lib/cjs/approve-program.js.map +1 -1
- package/lib/cjs/close-buffers.js +15 -14
- package/lib/cjs/close-buffers.js.map +1 -1
- package/lib/cjs/close-canopy.js +21 -17
- package/lib/cjs/close-canopy.js.map +1 -1
- package/lib/cjs/close-lazy-transaction-markers.js +108 -0
- package/lib/cjs/close-lazy-transaction-markers.js.map +1 -0
- package/lib/cjs/create-dao.js +72 -71
- package/lib/cjs/create-dao.js.map +1 -1
- package/lib/cjs/create-data-only-config.js +22 -21
- package/lib/cjs/create-data-only-config.js.map +1 -1
- package/lib/cjs/create-maker.js +44 -42
- package/lib/cjs/create-maker.js.map +1 -1
- package/lib/cjs/create-price-oracle.js +28 -22
- package/lib/cjs/create-price-oracle.js.map +1 -1
- package/lib/cjs/create-subdao.js +96 -92
- package/lib/cjs/create-subdao.js.map +1 -1
- package/lib/cjs/issue-iot-operations-fund.js +17 -16
- package/lib/cjs/issue-iot-operations-fund.js.map +1 -1
- package/lib/cjs/repair-iot-operations-fund.js +16 -15
- package/lib/cjs/repair-iot-operations-fund.js.map +1 -1
- package/lib/cjs/reset-clockwork.js +24 -23
- package/lib/cjs/reset-clockwork.js.map +1 -1
- package/lib/cjs/reset-vsr-max-voter-record.js +24 -23
- package/lib/cjs/reset-vsr-max-voter-record.js.map +1 -1
- package/lib/cjs/reset-vsr-voting-mint.js +24 -23
- package/lib/cjs/reset-vsr-voting-mint.js.map +1 -1
- package/lib/cjs/setup-hst.js +36 -35
- package/lib/cjs/setup-hst.js.map +1 -1
- package/lib/cjs/update-account-circuit-breaker.js +21 -18
- package/lib/cjs/update-account-circuit-breaker.js.map +1 -1
- package/lib/cjs/update-aggregator.js +21 -20
- package/lib/cjs/update-aggregator.js.map +1 -1
- package/lib/cjs/update-dao.js +47 -34
- package/lib/cjs/update-dao.js.map +1 -1
- package/lib/cjs/update-data-credits.js +19 -18
- package/lib/cjs/update-data-credits.js.map +1 -1
- package/lib/cjs/update-delegated-dc-subdao.js +18 -17
- package/lib/cjs/update-delegated-dc-subdao.js.map +1 -1
- package/lib/cjs/update-iot-operations-fund-metadata.js +2 -1
- package/lib/cjs/update-iot-operations-fund-metadata.js.map +1 -1
- package/lib/cjs/update-lazy-distributor.js +25 -24
- package/lib/cjs/update-lazy-distributor.js.map +1 -1
- package/lib/cjs/update-lazy-transactions.js +15 -14
- package/lib/cjs/update-lazy-transactions.js.map +1 -1
- package/lib/cjs/update-mint-circuit-breaker.js +18 -17
- package/lib/cjs/update-mint-circuit-breaker.js.map +1 -1
- package/lib/cjs/update-registrar-authorities.js +15 -11
- package/lib/cjs/update-registrar-authorities.js.map +1 -1
- package/lib/cjs/update-rewardable-entity-config.js +25 -24
- package/lib/cjs/update-rewardable-entity-config.js.map +1 -1
- package/lib/cjs/update-subdao-vehnt.js +35 -34
- package/lib/cjs/update-subdao-vehnt.js.map +1 -1
- package/lib/cjs/update-subdao.js +56 -46
- package/lib/cjs/update-subdao.js.map +1 -1
- package/lib/cjs/upgrade-idl.js +18 -17
- package/lib/cjs/upgrade-idl.js.map +1 -1
- package/lib/esm/src/approve-carrier.js +27 -26
- package/lib/esm/src/approve-carrier.js.map +1 -1
- package/lib/esm/src/approve-program.js +30 -29
- package/lib/esm/src/approve-program.js.map +1 -1
- package/lib/esm/src/close-buffers.js +23 -22
- package/lib/esm/src/close-buffers.js.map +1 -1
- package/lib/esm/src/close-canopy.js +28 -24
- package/lib/esm/src/close-canopy.js.map +1 -1
- package/lib/esm/src/close-lazy-transaction-markers.js +67 -0
- package/lib/esm/src/close-lazy-transaction-markers.js.map +1 -0
- package/lib/esm/src/create-dao.js +90 -89
- package/lib/esm/src/create-dao.js.map +1 -1
- package/lib/esm/src/create-data-only-config.js +34 -33
- package/lib/esm/src/create-data-only-config.js.map +1 -1
- package/lib/esm/src/create-maker.js +58 -56
- package/lib/esm/src/create-maker.js.map +1 -1
- package/lib/esm/src/create-price-oracle.js +37 -31
- package/lib/esm/src/create-price-oracle.js.map +1 -1
- package/lib/esm/src/create-subdao.js +112 -108
- package/lib/esm/src/create-subdao.js.map +1 -1
- package/lib/esm/src/issue-iot-operations-fund.js +27 -26
- package/lib/esm/src/issue-iot-operations-fund.js.map +1 -1
- package/lib/esm/src/repair-iot-operations-fund.js +24 -23
- package/lib/esm/src/repair-iot-operations-fund.js.map +1 -1
- package/lib/esm/src/reset-clockwork.js +31 -30
- package/lib/esm/src/reset-clockwork.js.map +1 -1
- package/lib/esm/src/reset-vsr-max-voter-record.js +32 -31
- package/lib/esm/src/reset-vsr-max-voter-record.js.map +1 -1
- package/lib/esm/src/reset-vsr-voting-mint.js +32 -31
- package/lib/esm/src/reset-vsr-voting-mint.js.map +1 -1
- package/lib/esm/src/setup-hst.js +50 -49
- package/lib/esm/src/setup-hst.js.map +1 -1
- package/lib/esm/src/update-account-circuit-breaker.js +29 -26
- package/lib/esm/src/update-account-circuit-breaker.js.map +1 -1
- package/lib/esm/src/update-aggregator.js +28 -27
- package/lib/esm/src/update-aggregator.js.map +1 -1
- package/lib/esm/src/update-dao.js +55 -42
- package/lib/esm/src/update-dao.js.map +1 -1
- package/lib/esm/src/update-data-credits.js +26 -25
- package/lib/esm/src/update-data-credits.js.map +1 -1
- package/lib/esm/src/update-delegated-dc-subdao.js +27 -26
- package/lib/esm/src/update-delegated-dc-subdao.js.map +1 -1
- package/lib/esm/src/update-iot-operations-fund-metadata.js +3 -2
- package/lib/esm/src/update-iot-operations-fund-metadata.js.map +1 -1
- package/lib/esm/src/update-lazy-distributor.js +32 -31
- package/lib/esm/src/update-lazy-distributor.js.map +1 -1
- package/lib/esm/src/update-lazy-transactions.js +22 -21
- package/lib/esm/src/update-lazy-transactions.js.map +1 -1
- package/lib/esm/src/update-mint-circuit-breaker.js +26 -25
- package/lib/esm/src/update-mint-circuit-breaker.js.map +1 -1
- package/lib/esm/src/update-registrar-authorities.js +22 -18
- package/lib/esm/src/update-registrar-authorities.js.map +1 -1
- package/lib/esm/src/update-rewardable-entity-config.js +34 -33
- package/lib/esm/src/update-rewardable-entity-config.js.map +1 -1
- package/lib/esm/src/update-subdao-vehnt.js +45 -44
- package/lib/esm/src/update-subdao-vehnt.js.map +1 -1
- package/lib/esm/src/update-subdao.js +67 -57
- package/lib/esm/src/update-subdao.js.map +1 -1
- package/lib/esm/src/upgrade-idl.js +24 -23
- package/lib/esm/src/upgrade-idl.js.map +1 -1
- package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/src/approve-carrier.d.ts.map +1 -1
- package/lib/types/src/approve-program.d.ts.map +1 -1
- package/lib/types/src/close-buffers.d.ts.map +1 -1
- package/lib/types/src/close-canopy.d.ts.map +1 -1
- package/lib/types/src/close-lazy-transaction-markers.d.ts +2 -0
- package/lib/types/src/close-lazy-transaction-markers.d.ts.map +1 -0
- package/lib/types/src/create-dao.d.ts.map +1 -1
- package/lib/types/src/create-data-only-config.d.ts.map +1 -1
- package/lib/types/src/create-maker.d.ts.map +1 -1
- package/lib/types/src/create-price-oracle.d.ts.map +1 -1
- package/lib/types/src/create-subdao.d.ts.map +1 -1
- package/lib/types/src/issue-iot-operations-fund.d.ts.map +1 -1
- package/lib/types/src/repair-iot-operations-fund.d.ts.map +1 -1
- package/lib/types/src/reset-clockwork.d.ts.map +1 -1
- package/lib/types/src/reset-vsr-max-voter-record.d.ts.map +1 -1
- package/lib/types/src/reset-vsr-voting-mint.d.ts.map +1 -1
- package/lib/types/src/setup-hst.d.ts +1 -1
- package/lib/types/src/setup-hst.d.ts.map +1 -1
- package/lib/types/src/update-aggregator.d.ts.map +1 -1
- package/lib/types/src/update-dao.d.ts.map +1 -1
- package/lib/types/src/update-data-credits.d.ts.map +1 -1
- package/lib/types/src/update-delegated-dc-subdao.d.ts.map +1 -1
- package/lib/types/src/update-iot-operations-fund-metadata.d.ts.map +1 -1
- package/lib/types/src/update-lazy-distributor.d.ts.map +1 -1
- package/lib/types/src/update-lazy-transactions.d.ts.map +1 -1
- package/lib/types/src/update-mint-circuit-breaker.d.ts.map +1 -1
- package/lib/types/src/update-rewardable-entity-config.d.ts.map +1 -1
- package/lib/types/src/update-subdao-vehnt.d.ts.map +1 -1
- package/lib/types/src/update-subdao.d.ts.map +1 -1
- package/lib/types/src/upgrade-idl.d.ts.map +1 -1
- package/package.json +25 -25
package/lib/esm/src/setup-hst.js
CHANGED
|
@@ -1,65 +1,65 @@
|
|
|
1
|
-
import { ClockworkProvider, parseTransactionInstructions } from
|
|
2
|
-
import * as anchor from
|
|
3
|
-
import Address from
|
|
4
|
-
import { ED25519_KEY_TYPE } from
|
|
5
|
-
import { fanoutKey, init, membershipVoucherKey } from
|
|
6
|
-
import { createMintInstructions, sendInstructions } from
|
|
7
|
-
import { createAssociatedTokenAccountIdempotentInstruction, getAccount, getAssociatedTokenAddressSync } from
|
|
8
|
-
import { ComputeBudgetProgram, Keypair, PublicKey } from
|
|
9
|
-
import Squads from
|
|
10
|
-
import { loadKeypair } from
|
|
11
|
-
import fs from
|
|
12
|
-
import os from
|
|
13
|
-
import yargs from
|
|
14
|
-
import { createAndMint, exists } from
|
|
1
|
+
import { ClockworkProvider, parseTransactionInstructions, } 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, getAccount, 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
15
|
export async function run(args = process.argv) {
|
|
16
16
|
const yarg = yargs(args).options({
|
|
17
17
|
wallet: {
|
|
18
|
-
alias:
|
|
19
|
-
describe:
|
|
18
|
+
alias: 'k',
|
|
19
|
+
describe: 'Anchor wallet keypair',
|
|
20
20
|
default: `${os.homedir()}/.config/solana/id.json`,
|
|
21
21
|
},
|
|
22
22
|
url: {
|
|
23
|
-
alias:
|
|
24
|
-
default:
|
|
25
|
-
describe:
|
|
23
|
+
alias: 'u',
|
|
24
|
+
default: 'http://127.0.0.1:8899',
|
|
25
|
+
describe: 'The solana url',
|
|
26
26
|
},
|
|
27
27
|
hnt: {
|
|
28
|
-
type:
|
|
29
|
-
describe:
|
|
28
|
+
type: 'string',
|
|
29
|
+
describe: 'Pubkey of hnt',
|
|
30
30
|
required: true,
|
|
31
31
|
},
|
|
32
32
|
state: {
|
|
33
|
-
type:
|
|
34
|
-
alias:
|
|
33
|
+
type: 'string',
|
|
34
|
+
alias: 's',
|
|
35
35
|
default: `${__dirname}/../../migration-service/export.json`,
|
|
36
36
|
},
|
|
37
37
|
name: {
|
|
38
|
-
type:
|
|
38
|
+
type: 'string',
|
|
39
39
|
},
|
|
40
40
|
multisig: {
|
|
41
|
-
type:
|
|
42
|
-
describe:
|
|
41
|
+
type: 'string',
|
|
42
|
+
describe: 'Address of the squads multisig to control the dao. If not provided, your wallet will be the authority',
|
|
43
43
|
},
|
|
44
44
|
authorityIndex: {
|
|
45
|
-
type:
|
|
46
|
-
describe:
|
|
45
|
+
type: 'number',
|
|
46
|
+
describe: 'Authority index for squads. Defaults to 1',
|
|
47
47
|
default: 1,
|
|
48
48
|
},
|
|
49
49
|
hstKeypair: {
|
|
50
|
-
type:
|
|
51
|
-
describe:
|
|
50
|
+
type: 'string',
|
|
51
|
+
describe: 'Keypair of the HST token',
|
|
52
52
|
default: `${__dirname}/../keypairs/hst.json`,
|
|
53
53
|
},
|
|
54
54
|
hstReceiptBasePath: {
|
|
55
|
-
type:
|
|
56
|
-
describe:
|
|
57
|
-
default: `${__dirname}/../keypairs
|
|
55
|
+
type: 'string',
|
|
56
|
+
describe: 'Keypair of the HST receipt token',
|
|
57
|
+
default: `${__dirname}/../keypairs`,
|
|
58
58
|
},
|
|
59
59
|
bucket: {
|
|
60
|
-
type:
|
|
61
|
-
describe:
|
|
62
|
-
default:
|
|
60
|
+
type: 'string',
|
|
61
|
+
describe: 'Bucket URL prefix holding all of the metadata jsons',
|
|
62
|
+
default: 'https://shdw-drive.genesysgo.net/6tcnBSybPG7piEDShBcrVtYJDPSvGrDbVvXmXKpzBvWP',
|
|
63
63
|
},
|
|
64
64
|
});
|
|
65
65
|
const argv = await yarg.argv;
|
|
@@ -67,11 +67,12 @@ export async function run(args = process.argv) {
|
|
|
67
67
|
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
68
68
|
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
69
69
|
const provider = anchor.getProvider();
|
|
70
|
+
const wallet = new anchor.Wallet(loadKeypair(argv.wallet));
|
|
70
71
|
const hstKeypair = loadKeypair(argv.hstKeypair);
|
|
71
72
|
let authority = provider.wallet.publicKey;
|
|
72
73
|
let multisig = argv.multisig ? new PublicKey(argv.multisig) : null;
|
|
73
|
-
const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL,
|
|
74
|
-
commitmentOrConfig:
|
|
74
|
+
const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
|
|
75
|
+
commitmentOrConfig: 'finalized',
|
|
75
76
|
});
|
|
76
77
|
if (multisig) {
|
|
77
78
|
authority = squads.getAuthorityPDA(multisig, argv.authorityIndex);
|
|
@@ -97,7 +98,7 @@ export async function run(args = process.argv) {
|
|
|
97
98
|
});
|
|
98
99
|
const fanout = fanoutKey(argv.name)[0];
|
|
99
100
|
const hntAccount = await getAssociatedTokenAddressSync(hnt, fanout, true);
|
|
100
|
-
console.log(
|
|
101
|
+
console.log('Outputting hnt to', hntAccount.toBase58());
|
|
101
102
|
if (!(await exists(provider.connection, fanout))) {
|
|
102
103
|
await fanoutProgram.methods
|
|
103
104
|
.initializeFanoutV0({
|
|
@@ -115,7 +116,7 @@ export async function run(args = process.argv) {
|
|
|
115
116
|
}
|
|
116
117
|
const clockworkProvider = new ClockworkProvider(provider.wallet, provider.connection);
|
|
117
118
|
for (const [address, account] of Object.entries(accounts)) {
|
|
118
|
-
if (!account.hst || account.hst === 0 || account.hst ===
|
|
119
|
+
if (!account.hst || account.hst === 0 || account.hst === '0') {
|
|
119
120
|
continue;
|
|
120
121
|
}
|
|
121
122
|
let solAddress = toSolana(address);
|
|
@@ -135,7 +136,7 @@ export async function run(args = process.argv) {
|
|
|
135
136
|
const ownerActual = (await provider.connection.getTokenLargestAccounts(mint.publicKey)).value[0]?.address;
|
|
136
137
|
if (ownerActual && ownerActual.toBase58() !== solAddress.toBase58()) {
|
|
137
138
|
const acc = await getAccount(provider.connection, ownerActual);
|
|
138
|
-
console.log(
|
|
139
|
+
console.log('Found diff address', solAddress.toBase58(), acc.owner.toBase58());
|
|
139
140
|
solAddress = acc.owner;
|
|
140
141
|
}
|
|
141
142
|
const [voucher] = membershipVoucherKey(mint.publicKey);
|
|
@@ -148,7 +149,7 @@ export async function run(args = process.argv) {
|
|
|
148
149
|
.accounts({
|
|
149
150
|
recipient: solAddress,
|
|
150
151
|
fanout,
|
|
151
|
-
mint: mint.publicKey
|
|
152
|
+
mint: mint.publicKey,
|
|
152
153
|
})
|
|
153
154
|
.signers([mint])
|
|
154
155
|
.rpc({ skipPreflight: true });
|
|
@@ -156,14 +157,14 @@ export async function run(args = process.argv) {
|
|
|
156
157
|
// 2️⃣ Define a trigger condition.
|
|
157
158
|
const trigger = {
|
|
158
159
|
cron: {
|
|
159
|
-
schedule:
|
|
160
|
+
schedule: '0 30 0 * * * *',
|
|
160
161
|
skippable: true,
|
|
161
162
|
},
|
|
162
163
|
};
|
|
163
164
|
// 3️⃣ Create the thread.
|
|
164
165
|
const threadId = `${argv.name}-${mint.publicKey.toBase58().slice(0, 8)}`;
|
|
165
166
|
const [thread] = threadKey(provider.wallet.publicKey, threadId);
|
|
166
|
-
console.log(
|
|
167
|
+
console.log('Thread ID', threadId, thread.toBase58());
|
|
167
168
|
const memberHntAccount = await getAssociatedTokenAddressSync(hnt, solAddress, true);
|
|
168
169
|
if (!(await exists(provider.connection, memberHntAccount))) {
|
|
169
170
|
await sendInstructions(provider, [
|
|
@@ -173,10 +174,10 @@ export async function run(args = process.argv) {
|
|
|
173
174
|
const distributeIx = await fanoutProgram.methods
|
|
174
175
|
.distributeV0()
|
|
175
176
|
.accounts({
|
|
176
|
-
payer: new PublicKey(
|
|
177
|
+
payer: new PublicKey('C1ockworkPayer11111111111111111111111111111'),
|
|
177
178
|
fanout,
|
|
178
179
|
owner: solAddress,
|
|
179
|
-
mint: mint.publicKey
|
|
180
|
+
mint: mint.publicKey,
|
|
180
181
|
})
|
|
181
182
|
.instruction();
|
|
182
183
|
if (!(await exists(provider.connection, thread))) {
|
|
@@ -206,12 +207,12 @@ function toSolana(address) {
|
|
|
206
207
|
return undefined;
|
|
207
208
|
}
|
|
208
209
|
}
|
|
209
|
-
const CLOCKWORK_PID = new PublicKey(
|
|
210
|
+
const CLOCKWORK_PID = new PublicKey('CLoCKyJ6DXBJqqu2VWx9RLbgnwwR6BMHHuyasVmfMzBh');
|
|
210
211
|
export function threadKey(authority, threadId, programId = CLOCKWORK_PID) {
|
|
211
212
|
return PublicKey.findProgramAddressSync([
|
|
212
|
-
Buffer.from(
|
|
213
|
+
Buffer.from('thread', 'utf8'),
|
|
213
214
|
authority.toBuffer(),
|
|
214
|
-
Buffer.from(threadId,
|
|
215
|
+
Buffer.from(threadId, 'utf8'),
|
|
215
216
|
], programId);
|
|
216
217
|
}
|
|
217
218
|
//# sourceMappingURL=setup-hst.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup-hst.js","sourceRoot":"","sources":["../../../src/setup-hst.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"setup-hst.js","sourceRoot":"","sources":["../../../src/setup-hst.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import * as anchor from
|
|
2
|
-
import { init } from
|
|
3
|
-
import { PublicKey } from
|
|
4
|
-
import Squads from
|
|
5
|
-
import { BN } from
|
|
6
|
-
import os from
|
|
7
|
-
import yargs from
|
|
8
|
-
import { sendInstructionsOrSquads } from
|
|
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 { loadKeypair, sendInstructionsOrSquads } from './utils';
|
|
9
9
|
export async function run(args = process.argv) {
|
|
10
10
|
const yarg = yargs(args).options({
|
|
11
11
|
wallet: {
|
|
12
|
-
alias:
|
|
13
|
-
describe:
|
|
12
|
+
alias: 'k',
|
|
13
|
+
describe: 'Anchor wallet keypair',
|
|
14
14
|
default: `${os.homedir()}/.config/solana/id.json`,
|
|
15
15
|
},
|
|
16
16
|
url: {
|
|
17
|
-
alias:
|
|
18
|
-
default:
|
|
19
|
-
describe:
|
|
17
|
+
alias: 'u',
|
|
18
|
+
default: 'http://127.0.0.1:8899',
|
|
19
|
+
describe: 'The solana url',
|
|
20
20
|
},
|
|
21
21
|
circuitBreaker: {
|
|
22
|
-
type:
|
|
22
|
+
type: 'string',
|
|
23
23
|
required: true,
|
|
24
|
-
describe:
|
|
24
|
+
describe: 'Circuit breaker account',
|
|
25
25
|
},
|
|
26
26
|
windowSizeSeconds: {
|
|
27
|
-
type:
|
|
27
|
+
type: 'number',
|
|
28
28
|
},
|
|
29
29
|
threshold: {
|
|
30
|
-
type:
|
|
30
|
+
type: 'number',
|
|
31
31
|
},
|
|
32
32
|
executeTransaction: {
|
|
33
|
-
type:
|
|
33
|
+
type: 'boolean',
|
|
34
34
|
},
|
|
35
35
|
multisig: {
|
|
36
|
-
type:
|
|
37
|
-
describe:
|
|
36
|
+
type: 'string',
|
|
37
|
+
describe: 'Address of the squads multisig to be authority. If not provided, your wallet will be the authority',
|
|
38
38
|
},
|
|
39
39
|
newAuthority: {
|
|
40
|
-
type:
|
|
40
|
+
type: 'string',
|
|
41
41
|
},
|
|
42
42
|
authorityIndex: {
|
|
43
|
-
type:
|
|
44
|
-
describe:
|
|
43
|
+
type: 'number',
|
|
44
|
+
describe: 'Authority index for squads. Defaults to 1',
|
|
45
45
|
default: 1,
|
|
46
46
|
},
|
|
47
47
|
});
|
|
@@ -51,12 +51,15 @@ export async function run(args = process.argv) {
|
|
|
51
51
|
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
52
52
|
const circuitBreakerKey = new PublicKey(argv.circuitBreaker);
|
|
53
53
|
const provider = anchor.getProvider();
|
|
54
|
+
const wallet = new anchor.Wallet(loadKeypair(argv.wallet));
|
|
54
55
|
const circuitBreakerProgram = await init(provider);
|
|
55
56
|
const instructions = [];
|
|
56
57
|
const circuitBreaker = await circuitBreakerProgram.account.accountWindowedCircuitBreakerV0.fetch(circuitBreakerKey);
|
|
57
58
|
instructions.push(await circuitBreakerProgram.methods
|
|
58
59
|
.updateAccountWindowedBreakerV0({
|
|
59
|
-
newAuthority: argv.newAuthority
|
|
60
|
+
newAuthority: argv.newAuthority
|
|
61
|
+
? new PublicKey(argv.newAuthority)
|
|
62
|
+
: circuitBreaker.authority,
|
|
60
63
|
config: {
|
|
61
64
|
windowSizeSeconds: argv.windowSizeSeconds
|
|
62
65
|
? new BN(argv.windowSizeSeconds)
|
|
@@ -72,8 +75,8 @@ export async function run(args = process.argv) {
|
|
|
72
75
|
authority: circuitBreaker.authority,
|
|
73
76
|
})
|
|
74
77
|
.instruction());
|
|
75
|
-
const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL,
|
|
76
|
-
commitmentOrConfig:
|
|
78
|
+
const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
|
|
79
|
+
commitmentOrConfig: 'finalized',
|
|
77
80
|
});
|
|
78
81
|
await sendInstructionsOrSquads({
|
|
79
82
|
provider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-account-circuit-breaker.js","sourceRoot":"","sources":["../../../src/update-account-circuit-breaker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,6BAA6B,CAAC;AACnD,OAAO,EAAE,SAAS,EAA0B,MAAM,iBAAiB,CAAC;AACpE,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAC3B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"update-account-circuit-breaker.js","sourceRoot":"","sources":["../../../src/update-account-circuit-breaker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
import * as anchor from
|
|
2
|
-
import { PublicKey } from
|
|
3
|
-
import Squads from
|
|
4
|
-
import { AggregatorAccount, SwitchboardProgram } from
|
|
5
|
-
import os from
|
|
6
|
-
import yargs from
|
|
7
|
-
import { loadKeypair, sendInstructionsOrSquads } from
|
|
1
|
+
import * as anchor from '@coral-xyz/anchor';
|
|
2
|
+
import { PublicKey } from '@solana/web3.js';
|
|
3
|
+
import Squads from '@sqds/sdk';
|
|
4
|
+
import { AggregatorAccount, SwitchboardProgram, } from '@switchboard-xyz/solana.js';
|
|
5
|
+
import os from 'os';
|
|
6
|
+
import yargs from 'yargs/yargs';
|
|
7
|
+
import { loadKeypair, sendInstructionsOrSquads } from './utils';
|
|
8
8
|
export async function run(args = process.argv) {
|
|
9
9
|
const yarg = yargs(args).options({
|
|
10
10
|
wallet: {
|
|
11
|
-
alias:
|
|
12
|
-
describe:
|
|
11
|
+
alias: 'k',
|
|
12
|
+
describe: 'Anchor wallet keypair',
|
|
13
13
|
default: `${os.homedir()}/.config/solana/id.json`,
|
|
14
14
|
},
|
|
15
15
|
url: {
|
|
16
|
-
alias:
|
|
17
|
-
default:
|
|
18
|
-
describe:
|
|
16
|
+
alias: 'u',
|
|
17
|
+
default: 'http://127.0.0.1:8899',
|
|
18
|
+
describe: 'The solana url',
|
|
19
19
|
},
|
|
20
20
|
executeTransaction: {
|
|
21
|
-
type:
|
|
21
|
+
type: 'boolean',
|
|
22
22
|
},
|
|
23
23
|
aggregatorKeypair: {
|
|
24
|
-
type:
|
|
25
|
-
describe:
|
|
24
|
+
type: 'string',
|
|
25
|
+
describe: 'Keypair of the aggregtor',
|
|
26
26
|
},
|
|
27
27
|
switchboardNetwork: {
|
|
28
|
-
type:
|
|
29
|
-
describe:
|
|
30
|
-
default:
|
|
28
|
+
type: 'string',
|
|
29
|
+
describe: 'The switchboard network',
|
|
30
|
+
default: 'mainnet-beta',
|
|
31
31
|
},
|
|
32
32
|
multisig: {
|
|
33
|
-
type:
|
|
34
|
-
describe:
|
|
33
|
+
type: 'string',
|
|
34
|
+
describe: 'Address of the squads multisig to be authority. If not provided, your wallet will be the authority',
|
|
35
35
|
},
|
|
36
36
|
authorityIndex: {
|
|
37
|
-
type:
|
|
38
|
-
describe:
|
|
37
|
+
type: 'number',
|
|
38
|
+
describe: 'Authority index for squads. Defaults to 1',
|
|
39
39
|
default: 1,
|
|
40
40
|
},
|
|
41
41
|
});
|
|
@@ -45,11 +45,12 @@ export async function run(args = process.argv) {
|
|
|
45
45
|
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
46
46
|
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
47
47
|
const provider = anchor.getProvider();
|
|
48
|
-
const
|
|
48
|
+
const walletKP = loadKeypair(argv.wallet);
|
|
49
|
+
const wallet = new anchor.Wallet(walletKP);
|
|
49
50
|
const aggKeypair = await loadKeypair(argv.aggregatorKeypair);
|
|
50
|
-
const switchboard = await SwitchboardProgram.load(
|
|
51
|
-
const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL,
|
|
52
|
-
commitmentOrConfig:
|
|
51
|
+
const switchboard = await SwitchboardProgram.load('mainnet-beta', provider.connection, walletKP);
|
|
52
|
+
const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
|
|
53
|
+
commitmentOrConfig: 'finalized',
|
|
53
54
|
});
|
|
54
55
|
let authority = provider.wallet.publicKey;
|
|
55
56
|
let multisig = argv.multisig ? new PublicKey(argv.multisig) : null;
|
|
@@ -59,7 +60,7 @@ export async function run(args = process.argv) {
|
|
|
59
60
|
const [aggregator] = await AggregatorAccount.load(switchboard, aggKeypair.publicKey);
|
|
60
61
|
const ix = await aggregator.setConfigInstruction(authority, {
|
|
61
62
|
batchSize: 6,
|
|
62
|
-
minOracleResults: 5
|
|
63
|
+
minOracleResults: 5,
|
|
63
64
|
});
|
|
64
65
|
await sendInstructionsOrSquads({
|
|
65
66
|
provider,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-aggregator.js","sourceRoot":"","sources":["../../../src/update-aggregator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,
|
|
1
|
+
{"version":3,"file":"update-aggregator.js","sourceRoot":"","sources":["../../../src/update-aggregator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,68 +1,68 @@
|
|
|
1
|
-
import * as anchor from
|
|
2
|
-
import { init as initCb, mintWindowedBreakerKey } from
|
|
3
|
-
import { daoKey, init as initHsd } from
|
|
4
|
-
import { PublicKey } from
|
|
5
|
-
import Squads from
|
|
6
|
-
import os from
|
|
7
|
-
import yargs from
|
|
8
|
-
import { parseEmissionsSchedule, sendInstructionsOrSquads } from
|
|
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 { loadKeypair, parseEmissionsSchedule, sendInstructionsOrSquads, } from './utils';
|
|
9
9
|
export async function run(args = process.argv) {
|
|
10
10
|
const yarg = yargs(args).options({
|
|
11
11
|
wallet: {
|
|
12
|
-
alias:
|
|
13
|
-
describe:
|
|
12
|
+
alias: 'k',
|
|
13
|
+
describe: 'Anchor wallet keypair',
|
|
14
14
|
default: `${os.homedir()}/.config/solana/id.json`,
|
|
15
15
|
},
|
|
16
16
|
url: {
|
|
17
|
-
alias:
|
|
18
|
-
default:
|
|
19
|
-
describe:
|
|
17
|
+
alias: 'u',
|
|
18
|
+
default: 'http://127.0.0.1:8899',
|
|
19
|
+
describe: 'The solana url',
|
|
20
20
|
},
|
|
21
21
|
hntMint: {
|
|
22
22
|
required: true,
|
|
23
|
-
type:
|
|
24
|
-
describe:
|
|
23
|
+
type: 'string',
|
|
24
|
+
describe: 'HNT mint of the dao to be updated',
|
|
25
25
|
},
|
|
26
26
|
newAuthority: {
|
|
27
27
|
required: false,
|
|
28
|
-
describe:
|
|
29
|
-
type:
|
|
28
|
+
describe: 'New DAO authority',
|
|
29
|
+
type: 'string',
|
|
30
30
|
default: null,
|
|
31
31
|
},
|
|
32
32
|
newEmissionsSchedulePath: {
|
|
33
33
|
required: false,
|
|
34
|
-
describe:
|
|
35
|
-
type:
|
|
34
|
+
describe: 'Path to file that contains the new emissions schedule',
|
|
35
|
+
type: 'string',
|
|
36
36
|
default: null,
|
|
37
37
|
},
|
|
38
38
|
newHstEmissionsSchedulePath: {
|
|
39
39
|
required: false,
|
|
40
|
-
describe:
|
|
41
|
-
type:
|
|
40
|
+
describe: 'Path to file that contains the new HST emissions schedule',
|
|
41
|
+
type: 'string',
|
|
42
42
|
default: null,
|
|
43
43
|
},
|
|
44
44
|
newNetEmissionsCap: {
|
|
45
45
|
required: false,
|
|
46
|
-
describe:
|
|
47
|
-
type:
|
|
48
|
-
default: null
|
|
46
|
+
describe: 'New net emissions cap, without decimals',
|
|
47
|
+
type: 'string',
|
|
48
|
+
default: null,
|
|
49
49
|
},
|
|
50
50
|
newHstPool: {
|
|
51
51
|
required: false,
|
|
52
|
-
describe:
|
|
53
|
-
type:
|
|
52
|
+
describe: 'New HST Pool',
|
|
53
|
+
type: 'string',
|
|
54
54
|
default: null,
|
|
55
55
|
},
|
|
56
56
|
executeTransaction: {
|
|
57
|
-
type:
|
|
57
|
+
type: 'boolean',
|
|
58
58
|
},
|
|
59
59
|
multisig: {
|
|
60
|
-
type:
|
|
61
|
-
describe:
|
|
60
|
+
type: 'string',
|
|
61
|
+
describe: 'Address of the squads multisig to be authority. If not provided, your wallet will be the authority',
|
|
62
62
|
},
|
|
63
63
|
authorityIndex: {
|
|
64
|
-
type:
|
|
65
|
-
describe:
|
|
64
|
+
type: 'number',
|
|
65
|
+
describe: 'Authority index for squads. Defaults to 1',
|
|
66
66
|
default: 1,
|
|
67
67
|
},
|
|
68
68
|
});
|
|
@@ -71,6 +71,7 @@ export async function run(args = process.argv) {
|
|
|
71
71
|
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
72
72
|
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
73
73
|
const provider = anchor.getProvider();
|
|
74
|
+
const wallet = new anchor.Wallet(loadKeypair(argv.wallet));
|
|
74
75
|
const program = await initHsd(provider);
|
|
75
76
|
const cbProgram = await initCb(provider);
|
|
76
77
|
const instructions = [];
|
|
@@ -80,27 +81,39 @@ export async function run(args = process.argv) {
|
|
|
80
81
|
if (argv.newAuthority) {
|
|
81
82
|
const hntCircuitBreaker = mintWindowedBreakerKey(hntMint)[0];
|
|
82
83
|
const hntCbAcc = await cbProgram.account.mintWindowedCircuitBreakerV0.fetch(hntCircuitBreaker);
|
|
83
|
-
instructions.push(await cbProgram.methods
|
|
84
|
+
instructions.push(await cbProgram.methods
|
|
85
|
+
.updateMintWindowedBreakerV0({
|
|
84
86
|
newAuthority: new PublicKey(argv.newAuthority),
|
|
85
87
|
config: null,
|
|
86
|
-
})
|
|
88
|
+
})
|
|
89
|
+
.accounts({
|
|
87
90
|
circuitBreaker: hntCircuitBreaker,
|
|
88
91
|
authority: hntCbAcc.authority,
|
|
89
|
-
})
|
|
92
|
+
})
|
|
93
|
+
.instruction());
|
|
90
94
|
}
|
|
91
|
-
instructions.push(await program.methods
|
|
95
|
+
instructions.push(await program.methods
|
|
96
|
+
.updateDaoV0({
|
|
92
97
|
authority: argv.newAuthority ? new PublicKey(argv.newAuthority) : null,
|
|
93
|
-
emissionSchedule: argv.newEmissionsSchedulePath
|
|
94
|
-
|
|
95
|
-
|
|
98
|
+
emissionSchedule: argv.newEmissionsSchedulePath
|
|
99
|
+
? await parseEmissionsSchedule(argv.newEmissionsSchedulePath)
|
|
100
|
+
: null,
|
|
101
|
+
hstEmissionSchedule: argv.newHstEmissionsSchedulePath
|
|
102
|
+
? await parseEmissionsSchedule(argv.newHstEmissionsSchedulePath)
|
|
103
|
+
: null,
|
|
104
|
+
netEmissionsCap: argv.newNetEmissionsCap
|
|
105
|
+
? new anchor.BN(argv.newNetEmissionsCap)
|
|
106
|
+
: null,
|
|
96
107
|
hstPool: argv.newHstPool ? new PublicKey(argv.newHstPool) : null,
|
|
97
|
-
})
|
|
108
|
+
})
|
|
109
|
+
.accounts({
|
|
98
110
|
dao,
|
|
99
111
|
authority: daoAcc.authority,
|
|
100
112
|
payer: daoAcc.authority,
|
|
101
|
-
})
|
|
102
|
-
|
|
103
|
-
|
|
113
|
+
})
|
|
114
|
+
.instruction());
|
|
115
|
+
const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
|
|
116
|
+
commitmentOrConfig: 'finalized',
|
|
104
117
|
});
|
|
105
118
|
await sendInstructionsOrSquads({
|
|
106
119
|
provider,
|