@helium/helium-admin-cli 0.2.22-next.33 → 0.2.22-next.35
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 +120 -0
- package/lib/cjs/approve-carrier.js.map +1 -0
- package/lib/cjs/approve-program.js +122 -0
- package/lib/cjs/approve-program.js.map +1 -0
- package/lib/cjs/claim-rewards.js +109 -0
- package/lib/cjs/claim-rewards.js.map +1 -0
- package/lib/cjs/close-buffers.js +132 -0
- package/lib/cjs/close-buffers.js.map +1 -0
- package/lib/cjs/close-canopy.js +108 -0
- package/lib/cjs/close-canopy.js.map +1 -0
- package/lib/cjs/close-lazy-transaction-markers.js +108 -0
- package/lib/cjs/close-lazy-transaction-markers.js.map +1 -0
- package/lib/cjs/correct-router-dc.js +149 -0
- package/lib/cjs/correct-router-dc.js.map +1 -0
- package/lib/cjs/create-active-device-aggregator.js +112 -0
- package/lib/cjs/create-active-device-aggregator.js.map +1 -0
- package/lib/cjs/create-carrier.js +202 -0
- package/lib/cjs/create-carrier.js.map +1 -0
- package/lib/cjs/create-dao.js +458 -0
- package/lib/cjs/create-dao.js.map +1 -0
- package/lib/cjs/create-data-only-config.js +175 -0
- package/lib/cjs/create-data-only-config.js.map +1 -0
- package/lib/cjs/create-maker.js +323 -0
- package/lib/cjs/create-maker.js.map +1 -0
- package/lib/cjs/create-price-oracle.js +133 -0
- package/lib/cjs/create-price-oracle.js.map +1 -0
- package/lib/cjs/create-subdao.js +531 -0
- package/lib/cjs/create-subdao.js.map +1 -0
- package/lib/cjs/distribute-hst.js +94 -0
- package/lib/cjs/distribute-hst.js.map +1 -0
- package/lib/cjs/distribute-iot-operations-fund.js +120 -0
- package/lib/cjs/distribute-iot-operations-fund.js.map +1 -0
- package/lib/cjs/ecc-gen.js +17 -0
- package/lib/cjs/ecc-gen.js.map +1 -0
- package/lib/cjs/end-epoch.js +144 -0
- package/lib/cjs/end-epoch.js.map +1 -0
- package/lib/cjs/issue-iot-operations-fund.js +123 -0
- package/lib/cjs/issue-iot-operations-fund.js.map +1 -0
- package/lib/cjs/issue-test-hotspot.js +111 -0
- package/lib/cjs/issue-test-hotspot.js.map +1 -0
- package/lib/cjs/log-coingecko-price.js +32 -0
- package/lib/cjs/log-coingecko-price.js.map +1 -0
- package/lib/cjs/log-hotspot.js +103 -0
- package/lib/cjs/log-hotspot.js.map +1 -0
- package/lib/cjs/log-router-balance.js +89 -0
- package/lib/cjs/log-router-balance.js.map +1 -0
- package/lib/cjs/log-treasury-price.js +105 -0
- package/lib/cjs/log-treasury-price.js.map +1 -0
- package/lib/cjs/mint-dc.js +111 -0
- package/lib/cjs/mint-dc.js.map +1 -0
- package/lib/cjs/repair-iot-operations-fund.js +114 -0
- package/lib/cjs/repair-iot-operations-fund.js.map +1 -0
- package/lib/cjs/reset-clockwork.js +144 -0
- package/lib/cjs/reset-clockwork.js.map +1 -0
- package/lib/cjs/reset-vsr-max-voter-record.js +145 -0
- package/lib/cjs/reset-vsr-max-voter-record.js.map +1 -0
- package/lib/cjs/reset-vsr-voting-mint.js +182 -0
- package/lib/cjs/reset-vsr-voting-mint.js.map +1 -0
- package/lib/cjs/setup-hst.js +261 -0
- package/lib/cjs/setup-hst.js.map +1 -0
- package/lib/cjs/submit-price.js +159 -0
- package/lib/cjs/submit-price.js.map +1 -0
- package/lib/cjs/sum-tokens.js +84 -0
- package/lib/cjs/sum-tokens.js.map +1 -0
- package/lib/cjs/take-snapshot.js +70 -0
- package/lib/cjs/take-snapshot.js.map +1 -0
- package/lib/cjs/update-account-circuit-breaker.js +132 -0
- package/lib/cjs/update-account-circuit-breaker.js.map +1 -0
- package/lib/cjs/update-aggregator.js +116 -0
- package/lib/cjs/update-aggregator.js.map +1 -0
- package/lib/cjs/update-dao.js +169 -0
- package/lib/cjs/update-dao.js.map +1 -0
- package/lib/cjs/update-data-credits.js +128 -0
- package/lib/cjs/update-data-credits.js.map +1 -0
- package/lib/cjs/update-delegated-dc-subdao.js +136 -0
- package/lib/cjs/update-delegated-dc-subdao.js.map +1 -0
- package/lib/cjs/update-iot-operations-fund-metadata.js +124 -0
- package/lib/cjs/update-iot-operations-fund-metadata.js.map +1 -0
- package/lib/cjs/update-lazy-distributor.js +138 -0
- package/lib/cjs/update-lazy-distributor.js.map +1 -0
- package/lib/cjs/update-lazy-transactions.js +117 -0
- package/lib/cjs/update-lazy-transactions.js.map +1 -0
- package/lib/cjs/update-mint-circuit-breaker.js +132 -0
- package/lib/cjs/update-mint-circuit-breaker.js.map +1 -0
- package/lib/cjs/update-registrar-authorities.js +96 -0
- package/lib/cjs/update-registrar-authorities.js.map +1 -0
- package/lib/cjs/update-rewardable-entity-config.js +155 -0
- package/lib/cjs/update-rewardable-entity-config.js.map +1 -0
- package/lib/cjs/update-subdao-vehnt.js +295 -0
- package/lib/cjs/update-subdao-vehnt.js.map +1 -0
- package/lib/cjs/update-subdao.js +261 -0
- package/lib/cjs/update-subdao.js.map +1 -0
- package/lib/cjs/upgrade-idl.js +109 -0
- package/lib/cjs/upgrade-idl.js.map +1 -0
- package/lib/cjs/utils.js +457 -0
- package/lib/cjs/utils.js.map +1 -0
- package/lib/esm/src/approve-carrier.js +79 -0
- package/lib/esm/src/approve-carrier.js.map +1 -0
- package/lib/esm/src/approve-program.js +81 -0
- package/lib/esm/src/approve-program.js.map +1 -0
- package/lib/esm/src/claim-rewards.js +68 -0
- package/lib/esm/src/claim-rewards.js.map +1 -0
- package/lib/esm/src/close-buffers.js +91 -0
- package/lib/esm/src/close-buffers.js.map +1 -0
- package/lib/esm/src/close-canopy.js +67 -0
- package/lib/esm/src/close-canopy.js.map +1 -0
- 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/correct-router-dc.js +108 -0
- package/lib/esm/src/correct-router-dc.js.map +1 -0
- package/lib/esm/src/create-active-device-aggregator.js +71 -0
- package/lib/esm/src/create-active-device-aggregator.js.map +1 -0
- package/lib/esm/src/create-carrier.js +161 -0
- package/lib/esm/src/create-carrier.js.map +1 -0
- package/lib/esm/src/create-dao.js +415 -0
- package/lib/esm/src/create-dao.js.map +1 -0
- package/lib/esm/src/create-data-only-config.js +132 -0
- package/lib/esm/src/create-data-only-config.js.map +1 -0
- package/lib/esm/src/create-maker.js +282 -0
- package/lib/esm/src/create-maker.js.map +1 -0
- package/lib/esm/src/create-price-oracle.js +92 -0
- package/lib/esm/src/create-price-oracle.js.map +1 -0
- package/lib/esm/src/create-subdao.js +490 -0
- package/lib/esm/src/create-subdao.js.map +1 -0
- package/lib/esm/src/distribute-hst.js +53 -0
- package/lib/esm/src/distribute-hst.js.map +1 -0
- package/lib/esm/src/distribute-iot-operations-fund.js +79 -0
- package/lib/esm/src/distribute-iot-operations-fund.js.map +1 -0
- package/lib/esm/src/ecc-gen.js +6 -0
- package/lib/esm/src/ecc-gen.js.map +1 -0
- package/lib/esm/src/end-epoch.js +103 -0
- package/lib/esm/src/end-epoch.js.map +1 -0
- package/lib/esm/src/issue-iot-operations-fund.js +82 -0
- package/lib/esm/src/issue-iot-operations-fund.js.map +1 -0
- package/lib/esm/src/issue-test-hotspot.js +70 -0
- package/lib/esm/src/issue-test-hotspot.js.map +1 -0
- package/lib/esm/src/log-coingecko-price.js +14 -0
- package/lib/esm/src/log-coingecko-price.js.map +1 -0
- package/lib/esm/src/log-hotspot.js +62 -0
- package/lib/esm/src/log-hotspot.js.map +1 -0
- package/lib/esm/src/log-router-balance.js +48 -0
- package/lib/esm/src/log-router-balance.js.map +1 -0
- package/lib/esm/src/log-treasury-price.js +64 -0
- package/lib/esm/src/log-treasury-price.js.map +1 -0
- package/lib/esm/src/mint-dc.js +70 -0
- package/lib/esm/src/mint-dc.js.map +1 -0
- package/lib/esm/src/repair-iot-operations-fund.js +73 -0
- package/lib/esm/src/repair-iot-operations-fund.js.map +1 -0
- package/lib/esm/src/reset-clockwork.js +103 -0
- package/lib/esm/src/reset-clockwork.js.map +1 -0
- package/lib/esm/src/reset-vsr-max-voter-record.js +104 -0
- package/lib/esm/src/reset-vsr-max-voter-record.js.map +1 -0
- package/lib/esm/src/reset-vsr-voting-mint.js +141 -0
- package/lib/esm/src/reset-vsr-voting-mint.js.map +1 -0
- package/lib/esm/src/setup-hst.js +218 -0
- package/lib/esm/src/setup-hst.js.map +1 -0
- package/lib/esm/src/submit-price.js +113 -0
- package/lib/esm/src/submit-price.js.map +1 -0
- package/lib/esm/src/sum-tokens.js +43 -0
- package/lib/esm/src/sum-tokens.js.map +1 -0
- package/lib/esm/src/take-snapshot.js +29 -0
- package/lib/esm/src/take-snapshot.js.map +1 -0
- package/lib/esm/src/update-account-circuit-breaker.js +91 -0
- package/lib/esm/src/update-account-circuit-breaker.js.map +1 -0
- package/lib/esm/src/update-aggregator.js +75 -0
- package/lib/esm/src/update-aggregator.js.map +1 -0
- package/lib/esm/src/update-dao.js +128 -0
- package/lib/esm/src/update-dao.js.map +1 -0
- package/lib/esm/src/update-data-credits.js +87 -0
- package/lib/esm/src/update-data-credits.js.map +1 -0
- package/lib/esm/src/update-delegated-dc-subdao.js +95 -0
- package/lib/esm/src/update-delegated-dc-subdao.js.map +1 -0
- package/lib/esm/src/update-iot-operations-fund-metadata.js +83 -0
- package/lib/esm/src/update-iot-operations-fund-metadata.js.map +1 -0
- package/lib/esm/src/update-lazy-distributor.js +97 -0
- package/lib/esm/src/update-lazy-distributor.js.map +1 -0
- package/lib/esm/src/update-lazy-transactions.js +76 -0
- package/lib/esm/src/update-lazy-transactions.js.map +1 -0
- package/lib/esm/src/update-mint-circuit-breaker.js +91 -0
- package/lib/esm/src/update-mint-circuit-breaker.js.map +1 -0
- package/lib/esm/src/update-registrar-authorities.js +55 -0
- package/lib/esm/src/update-registrar-authorities.js.map +1 -0
- package/lib/esm/src/update-rewardable-entity-config.js +114 -0
- package/lib/esm/src/update-rewardable-entity-config.js.map +1 -0
- package/lib/esm/src/update-subdao-vehnt.js +254 -0
- package/lib/esm/src/update-subdao-vehnt.js.map +1 -0
- package/lib/esm/src/update-subdao.js +220 -0
- package/lib/esm/src/update-subdao.js.map +1 -0
- package/lib/esm/src/upgrade-idl.js +68 -0
- package/lib/esm/src/upgrade-idl.js.map +1 -0
- package/lib/esm/src/utils.js +392 -0
- package/lib/esm/src/utils.js.map +1 -0
- package/lib/esm/tsconfig.esm.tsbuildinfo +1 -0
- package/lib/types/src/approve-carrier.d.ts +2 -0
- package/lib/types/src/approve-carrier.d.ts.map +1 -0
- package/lib/types/src/approve-program.d.ts +2 -0
- package/lib/types/src/approve-program.d.ts.map +1 -0
- package/lib/types/src/claim-rewards.d.ts +2 -0
- package/lib/types/src/claim-rewards.d.ts.map +1 -0
- package/lib/types/src/close-buffers.d.ts +2 -0
- package/lib/types/src/close-buffers.d.ts.map +1 -0
- package/lib/types/src/close-canopy.d.ts +2 -0
- package/lib/types/src/close-canopy.d.ts.map +1 -0
- 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/correct-router-dc.d.ts +2 -0
- package/lib/types/src/correct-router-dc.d.ts.map +1 -0
- package/lib/types/src/create-active-device-aggregator.d.ts +2 -0
- package/lib/types/src/create-active-device-aggregator.d.ts.map +1 -0
- package/lib/types/src/create-carrier.d.ts +2 -0
- package/lib/types/src/create-carrier.d.ts.map +1 -0
- package/lib/types/src/create-dao.d.ts +2 -0
- package/lib/types/src/create-dao.d.ts.map +1 -0
- package/lib/types/src/create-data-only-config.d.ts +2 -0
- package/lib/types/src/create-data-only-config.d.ts.map +1 -0
- package/lib/types/src/create-maker.d.ts +2 -0
- package/lib/types/src/create-maker.d.ts.map +1 -0
- package/lib/types/src/create-price-oracle.d.ts +2 -0
- package/lib/types/src/create-price-oracle.d.ts.map +1 -0
- package/lib/types/src/create-subdao.d.ts +2 -0
- package/lib/types/src/create-subdao.d.ts.map +1 -0
- package/lib/types/src/distribute-hst.d.ts +2 -0
- package/lib/types/src/distribute-hst.d.ts.map +1 -0
- package/lib/types/src/distribute-iot-operations-fund.d.ts +2 -0
- package/lib/types/src/distribute-iot-operations-fund.d.ts.map +1 -0
- package/lib/types/src/ecc-gen.d.ts +2 -0
- package/lib/types/src/ecc-gen.d.ts.map +1 -0
- package/lib/types/src/end-epoch.d.ts +2 -0
- package/lib/types/src/end-epoch.d.ts.map +1 -0
- package/lib/types/src/issue-iot-operations-fund.d.ts +2 -0
- package/lib/types/src/issue-iot-operations-fund.d.ts.map +1 -0
- package/lib/types/src/issue-test-hotspot.d.ts +2 -0
- package/lib/types/src/issue-test-hotspot.d.ts.map +1 -0
- package/lib/types/src/log-coingecko-price.d.ts +2 -0
- package/lib/types/src/log-coingecko-price.d.ts.map +1 -0
- package/lib/types/src/log-hotspot.d.ts +2 -0
- package/lib/types/src/log-hotspot.d.ts.map +1 -0
- package/lib/types/src/log-router-balance.d.ts +2 -0
- package/lib/types/src/log-router-balance.d.ts.map +1 -0
- package/lib/types/src/log-treasury-price.d.ts +2 -0
- package/lib/types/src/log-treasury-price.d.ts.map +1 -0
- package/lib/types/src/mint-dc.d.ts +2 -0
- package/lib/types/src/mint-dc.d.ts.map +1 -0
- package/lib/types/src/repair-iot-operations-fund.d.ts +2 -0
- package/lib/types/src/repair-iot-operations-fund.d.ts.map +1 -0
- package/lib/types/src/reset-clockwork.d.ts +2 -0
- package/lib/types/src/reset-clockwork.d.ts.map +1 -0
- package/lib/types/src/reset-vsr-max-voter-record.d.ts +2 -0
- package/lib/types/src/reset-vsr-max-voter-record.d.ts.map +1 -0
- package/lib/types/src/reset-vsr-voting-mint.d.ts +2 -0
- package/lib/types/src/reset-vsr-voting-mint.d.ts.map +1 -0
- package/lib/types/src/setup-hst.d.ts +4 -0
- package/lib/types/src/setup-hst.d.ts.map +1 -0
- package/lib/types/src/submit-price.d.ts +3 -0
- package/lib/types/src/submit-price.d.ts.map +1 -0
- package/lib/types/src/sum-tokens.d.ts +2 -0
- package/lib/types/src/sum-tokens.d.ts.map +1 -0
- package/lib/types/src/take-snapshot.d.ts +2 -0
- package/lib/types/src/take-snapshot.d.ts.map +1 -0
- package/lib/types/src/update-account-circuit-breaker.d.ts +2 -0
- package/lib/types/src/update-account-circuit-breaker.d.ts.map +1 -0
- package/lib/types/src/update-aggregator.d.ts +2 -0
- package/lib/types/src/update-aggregator.d.ts.map +1 -0
- package/lib/types/src/update-dao.d.ts +2 -0
- package/lib/types/src/update-dao.d.ts.map +1 -0
- package/lib/types/src/update-data-credits.d.ts +2 -0
- package/lib/types/src/update-data-credits.d.ts.map +1 -0
- package/lib/types/src/update-delegated-dc-subdao.d.ts +2 -0
- package/lib/types/src/update-delegated-dc-subdao.d.ts.map +1 -0
- package/lib/types/src/update-iot-operations-fund-metadata.d.ts +2 -0
- package/lib/types/src/update-iot-operations-fund-metadata.d.ts.map +1 -0
- package/lib/types/src/update-lazy-distributor.d.ts +2 -0
- package/lib/types/src/update-lazy-distributor.d.ts.map +1 -0
- package/lib/types/src/update-lazy-transactions.d.ts +2 -0
- package/lib/types/src/update-lazy-transactions.d.ts.map +1 -0
- package/lib/types/src/update-mint-circuit-breaker.d.ts +2 -0
- package/lib/types/src/update-mint-circuit-breaker.d.ts.map +1 -0
- package/lib/types/src/update-registrar-authorities.d.ts +2 -0
- package/lib/types/src/update-registrar-authorities.d.ts.map +1 -0
- package/lib/types/src/update-rewardable-entity-config.d.ts +2 -0
- package/lib/types/src/update-rewardable-entity-config.d.ts.map +1 -0
- package/lib/types/src/update-subdao-vehnt.d.ts +2 -0
- package/lib/types/src/update-subdao-vehnt.d.ts.map +1 -0
- package/lib/types/src/update-subdao.d.ts +2 -0
- package/lib/types/src/update-subdao.d.ts.map +1 -0
- package/lib/types/src/upgrade-idl.d.ts +2 -0
- package/lib/types/src/upgrade-idl.d.ts.map +1 -0
- package/lib/types/src/utils.d.ts +59 -0
- package/lib/types/src/utils.d.ts.map +1 -0
- package/package.json +13 -13
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import * as anchor from '@coral-xyz/anchor';
|
|
2
|
+
import { carrierKey, init as initMem } from '@helium/mobile-entity-manager-sdk';
|
|
3
|
+
import { subDaoKey, 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, sendInstructionsOrSquads } from './utils';
|
|
9
|
+
import { MOBILE_MINT } from '@helium/spl-utils';
|
|
10
|
+
export async function run(args = process.argv) {
|
|
11
|
+
const yarg = yargs(args).options({
|
|
12
|
+
wallet: {
|
|
13
|
+
alias: 'k',
|
|
14
|
+
describe: 'Anchor wallet keypair',
|
|
15
|
+
default: `${os.homedir()}/.config/solana/id.json`,
|
|
16
|
+
},
|
|
17
|
+
url: {
|
|
18
|
+
alias: 'u',
|
|
19
|
+
default: 'http://127.0.0.1:8899',
|
|
20
|
+
describe: 'The solana url',
|
|
21
|
+
},
|
|
22
|
+
dntMint: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
describe: 'DNT mint of the subdao to approve on',
|
|
25
|
+
default: MOBILE_MINT.toBase58(),
|
|
26
|
+
},
|
|
27
|
+
name: {
|
|
28
|
+
alias: 'n',
|
|
29
|
+
type: 'string',
|
|
30
|
+
required: true,
|
|
31
|
+
describe: 'Name of the carrier to approve, case sensitive',
|
|
32
|
+
},
|
|
33
|
+
executeTransaction: {
|
|
34
|
+
type: 'boolean',
|
|
35
|
+
},
|
|
36
|
+
multisig: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
describe: 'Address of the squads multisig to be authority. If not provided, your wallet will be the authority',
|
|
39
|
+
},
|
|
40
|
+
authorityIndex: {
|
|
41
|
+
type: 'number',
|
|
42
|
+
describe: 'Authority index for squads. Defaults to 1',
|
|
43
|
+
default: 1,
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
const argv = await yarg.argv;
|
|
47
|
+
process.env.ANCHOR_WALLET = argv.wallet;
|
|
48
|
+
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
49
|
+
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
50
|
+
const provider = anchor.getProvider();
|
|
51
|
+
const wallet = new anchor.Wallet(loadKeypair(argv.wallet));
|
|
52
|
+
const program = await initMem(provider);
|
|
53
|
+
const hsdProgram = await initHsd(provider);
|
|
54
|
+
const instructions = [];
|
|
55
|
+
const dntMint = new PublicKey(argv.dntMint);
|
|
56
|
+
const subDao = subDaoKey(dntMint)[0];
|
|
57
|
+
const authority = (await hsdProgram.account.subDaoV0.fetch(subDao)).authority;
|
|
58
|
+
const carrier = carrierKey(subDao, argv.name)[0];
|
|
59
|
+
instructions.push(await program.methods
|
|
60
|
+
.approveCarrierV0()
|
|
61
|
+
.accounts({
|
|
62
|
+
carrier,
|
|
63
|
+
authority,
|
|
64
|
+
})
|
|
65
|
+
.instruction());
|
|
66
|
+
const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
|
|
67
|
+
commitmentOrConfig: 'finalized',
|
|
68
|
+
});
|
|
69
|
+
await sendInstructionsOrSquads({
|
|
70
|
+
provider,
|
|
71
|
+
instructions,
|
|
72
|
+
executeTransaction: argv.executeTransaction,
|
|
73
|
+
squads,
|
|
74
|
+
multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
|
|
75
|
+
authorityIndex: argv.authorityIndex,
|
|
76
|
+
signers: [],
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=approve-carrier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approve-carrier.js","sourceRoot":"","sources":["../../../src/approve-carrier.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import * as anchor from '@coral-xyz/anchor';
|
|
2
|
+
import { init as initHem } from '@helium/helium-entity-manager-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, sendInstructionsOrSquads } from './utils';
|
|
9
|
+
import { HNT_MINT } from '@helium/spl-utils';
|
|
10
|
+
export async function run(args = process.argv) {
|
|
11
|
+
const yarg = yargs(args).options({
|
|
12
|
+
wallet: {
|
|
13
|
+
alias: 'k',
|
|
14
|
+
describe: 'Anchor wallet keypair',
|
|
15
|
+
default: `${os.homedir()}/.config/solana/id.json`,
|
|
16
|
+
},
|
|
17
|
+
url: {
|
|
18
|
+
alias: 'u',
|
|
19
|
+
default: 'http://127.0.0.1:8899',
|
|
20
|
+
describe: 'The solana url',
|
|
21
|
+
},
|
|
22
|
+
hntMint: {
|
|
23
|
+
type: 'string',
|
|
24
|
+
describe: 'HNT mint of the dao to be updated',
|
|
25
|
+
default: HNT_MINT.toBase58(),
|
|
26
|
+
},
|
|
27
|
+
programId: {
|
|
28
|
+
type: 'string',
|
|
29
|
+
describe: 'Program ID to allow',
|
|
30
|
+
required: true,
|
|
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
|
+
authorityIndex: {
|
|
40
|
+
type: 'number',
|
|
41
|
+
describe: 'Authority index for squads. Defaults to 1',
|
|
42
|
+
default: 1,
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
const argv = await yarg.argv;
|
|
46
|
+
process.env.ANCHOR_WALLET = argv.wallet;
|
|
47
|
+
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
48
|
+
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
49
|
+
const provider = anchor.getProvider();
|
|
50
|
+
const wallet = new anchor.Wallet(loadKeypair(argv.wallet));
|
|
51
|
+
const program = await initHem(provider);
|
|
52
|
+
const hsdProgram = await initHsd(provider);
|
|
53
|
+
const programId = new PublicKey(argv.programId);
|
|
54
|
+
const instructions = [];
|
|
55
|
+
const hntMint = new PublicKey(argv.hntMint);
|
|
56
|
+
const dao = daoKey(hntMint)[0];
|
|
57
|
+
const authority = (await hsdProgram.account.daoV0.fetch(dao)).authority;
|
|
58
|
+
instructions.push(await program.methods
|
|
59
|
+
.approveProgramV0({
|
|
60
|
+
programId,
|
|
61
|
+
})
|
|
62
|
+
.accounts({
|
|
63
|
+
dao,
|
|
64
|
+
authority,
|
|
65
|
+
payer: authority,
|
|
66
|
+
})
|
|
67
|
+
.instruction());
|
|
68
|
+
const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
|
|
69
|
+
commitmentOrConfig: 'finalized',
|
|
70
|
+
});
|
|
71
|
+
await sendInstructionsOrSquads({
|
|
72
|
+
provider,
|
|
73
|
+
instructions,
|
|
74
|
+
executeTransaction: argv.executeTransaction,
|
|
75
|
+
squads,
|
|
76
|
+
multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
|
|
77
|
+
authorityIndex: argv.authorityIndex,
|
|
78
|
+
signers: [],
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=approve-program.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approve-program.js","sourceRoot":"","sources":["../../../src/approve-program.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import * as anchor from "@coral-xyz/anchor";
|
|
2
|
+
import * as client from "@helium/distributor-oracle";
|
|
3
|
+
import { init as initHem, keyToAssetKey } from "@helium/helium-entity-manager-sdk";
|
|
4
|
+
import { daoKey } from "@helium/helium-sub-daos-sdk";
|
|
5
|
+
import { init as initLazy, lazyDistributorKey } from "@helium/lazy-distributor-sdk";
|
|
6
|
+
import { init as initRewards, } from "@helium/rewards-oracle-sdk";
|
|
7
|
+
import { HNT_MINT, sendAndConfirmWithRetry } from "@helium/spl-utils";
|
|
8
|
+
import { PublicKey } from "@solana/web3.js";
|
|
9
|
+
import os from "os";
|
|
10
|
+
import yargs from "yargs/yargs";
|
|
11
|
+
export async function run(args = process.argv) {
|
|
12
|
+
const argv = await yargs(args).options({
|
|
13
|
+
wallet: {
|
|
14
|
+
alias: "k",
|
|
15
|
+
describe: "Anchor wallet keypair",
|
|
16
|
+
default: `${os.homedir()}/.config/solana/id.json`,
|
|
17
|
+
},
|
|
18
|
+
url: {
|
|
19
|
+
alias: "u",
|
|
20
|
+
default: "http://127.0.0.1:8899",
|
|
21
|
+
describe: "The solana url",
|
|
22
|
+
},
|
|
23
|
+
mint: {
|
|
24
|
+
type: "string",
|
|
25
|
+
describe: "Pubkey of the rewards mint",
|
|
26
|
+
},
|
|
27
|
+
assetId: {
|
|
28
|
+
type: "string",
|
|
29
|
+
describe: "The asset id to claim rewards for",
|
|
30
|
+
},
|
|
31
|
+
entityKey: {
|
|
32
|
+
type: "string",
|
|
33
|
+
describe: "The entity key to claim rewards for",
|
|
34
|
+
},
|
|
35
|
+
hntMint: {
|
|
36
|
+
type: "string",
|
|
37
|
+
default: HNT_MINT,
|
|
38
|
+
},
|
|
39
|
+
}).argv;
|
|
40
|
+
process.env.ANCHOR_WALLET = argv.wallet;
|
|
41
|
+
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
42
|
+
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
43
|
+
const provider = anchor.getProvider();
|
|
44
|
+
const lazyProgram = await initLazy(provider);
|
|
45
|
+
const hemProgram = await initHem(provider);
|
|
46
|
+
const rewardsOracleProgram = await initRewards(provider);
|
|
47
|
+
const mint = new PublicKey(argv.mint);
|
|
48
|
+
const dao = daoKey(new PublicKey(argv.hntMint))[0];
|
|
49
|
+
const lazyDistributor = lazyDistributorKey(mint)[0];
|
|
50
|
+
let assetId = argv.assetId ? new PublicKey(argv.assetId) : undefined;
|
|
51
|
+
if (!assetId) {
|
|
52
|
+
const entityKey = argv.entityKey;
|
|
53
|
+
const keyToAsset = keyToAssetKey(dao, entityKey)[0];
|
|
54
|
+
assetId = (await hemProgram.account.keyToAssetV0.fetch(keyToAsset)).asset;
|
|
55
|
+
}
|
|
56
|
+
const rewards = await client.getCurrentRewards(lazyProgram, lazyDistributor, assetId);
|
|
57
|
+
const tx = await client.formTransaction({
|
|
58
|
+
program: lazyProgram,
|
|
59
|
+
rewardsOracleProgram: rewardsOracleProgram,
|
|
60
|
+
provider,
|
|
61
|
+
rewards,
|
|
62
|
+
asset: assetId,
|
|
63
|
+
lazyDistributor,
|
|
64
|
+
});
|
|
65
|
+
const signed = await provider.wallet.signTransaction(tx);
|
|
66
|
+
await sendAndConfirmWithRetry(provider.connection, signed.serialize(), { skipPreflight: true }, "confirmed");
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=claim-rewards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"claim-rewards.js","sourceRoot":"","sources":["../../../src/claim-rewards.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import * as anchor from '@coral-xyz/anchor';
|
|
2
|
+
import { PublicKey } from '@solana/web3.js';
|
|
3
|
+
import Squads from '@sqds/sdk';
|
|
4
|
+
import os from 'os';
|
|
5
|
+
import yargs from 'yargs/yargs';
|
|
6
|
+
import { createCloseBufferInstruction, loadKeypair, sendInstructionsOrSquads, } from './utils';
|
|
7
|
+
import { BPF_UPGRADE_LOADER_ID } from '@solana/spl-governance';
|
|
8
|
+
import bs58 from 'bs58';
|
|
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
|
+
executeTransaction: {
|
|
22
|
+
type: 'boolean',
|
|
23
|
+
},
|
|
24
|
+
multisig: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
describe: 'Address of the squads multisig to be authority. If not provided, your wallet will be the authority',
|
|
27
|
+
},
|
|
28
|
+
authorityIndex: {
|
|
29
|
+
type: 'number',
|
|
30
|
+
describe: 'Authority index for squads. Defaults to 1',
|
|
31
|
+
default: 1,
|
|
32
|
+
},
|
|
33
|
+
programId: {
|
|
34
|
+
type: 'string',
|
|
35
|
+
required: true,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
const argv = await yarg.argv;
|
|
39
|
+
process.env.ANCHOR_WALLET = argv.wallet;
|
|
40
|
+
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
41
|
+
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
42
|
+
const provider = anchor.getProvider();
|
|
43
|
+
const wallet = new anchor.Wallet(loadKeypair(argv.wallet));
|
|
44
|
+
const connection = provider.connection;
|
|
45
|
+
const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
|
|
46
|
+
commitmentOrConfig: 'finalized',
|
|
47
|
+
});
|
|
48
|
+
let authority = provider.wallet.publicKey;
|
|
49
|
+
let multisig = argv.multisig ? new PublicKey(argv.multisig) : null;
|
|
50
|
+
if (multisig) {
|
|
51
|
+
authority = squads.getAuthorityPDA(multisig, argv.authorityIndex);
|
|
52
|
+
}
|
|
53
|
+
console.log(authority.toBase58());
|
|
54
|
+
const buffers = (await connection.getProgramAccounts(BPF_UPGRADE_LOADER_ID, {
|
|
55
|
+
dataSlice: {
|
|
56
|
+
length: 0,
|
|
57
|
+
offset: 0,
|
|
58
|
+
},
|
|
59
|
+
filters: [
|
|
60
|
+
{
|
|
61
|
+
memcmp: {
|
|
62
|
+
offset: 0,
|
|
63
|
+
bytes: bs58.encode(Buffer.from(new Uint8Array([1, 0, 0, 0]))),
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
memcmp: {
|
|
68
|
+
offset: 4,
|
|
69
|
+
bytes: bs58.encode(Buffer.from(new Uint8Array([1]))),
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
memcmp: {
|
|
74
|
+
offset: 5,
|
|
75
|
+
bytes: bs58.encode(new PublicKey(authority).toBuffer()),
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
],
|
|
79
|
+
})).map((b) => b.pubkey);
|
|
80
|
+
const instructions = await Promise.all(buffers.map((b) => createCloseBufferInstruction(new PublicKey(argv.programId), b, authority, provider.wallet.publicKey)));
|
|
81
|
+
await sendInstructionsOrSquads({
|
|
82
|
+
provider,
|
|
83
|
+
instructions,
|
|
84
|
+
executeTransaction: argv.executeTransaction,
|
|
85
|
+
squads,
|
|
86
|
+
multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
|
|
87
|
+
authorityIndex: argv.authorityIndex,
|
|
88
|
+
signers: [],
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=close-buffers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"close-buffers.js","sourceRoot":"","sources":["../../../src/close-buffers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import * as anchor from '@coral-xyz/anchor';
|
|
2
|
+
import { PublicKey } from '@solana/web3.js';
|
|
3
|
+
import Squads from '@sqds/sdk';
|
|
4
|
+
import os from 'os';
|
|
5
|
+
import yargs from 'yargs/yargs';
|
|
6
|
+
import { loadKeypair, sendInstructionsOrSquads, } from './utils';
|
|
7
|
+
import { init, lazyTransactionsKey } from '@helium/lazy-transactions-sdk';
|
|
8
|
+
export async function run(args = process.argv) {
|
|
9
|
+
const yarg = yargs(args).options({
|
|
10
|
+
wallet: {
|
|
11
|
+
alias: 'k',
|
|
12
|
+
describe: 'Anchor wallet keypair',
|
|
13
|
+
default: `${os.homedir()}/.config/solana/id.json`,
|
|
14
|
+
},
|
|
15
|
+
url: {
|
|
16
|
+
alias: 'u',
|
|
17
|
+
default: 'http://127.0.0.1:8899',
|
|
18
|
+
describe: 'The solana url',
|
|
19
|
+
},
|
|
20
|
+
name: {
|
|
21
|
+
required: true,
|
|
22
|
+
type: 'string',
|
|
23
|
+
describe: 'Lazy dist name',
|
|
24
|
+
},
|
|
25
|
+
executeTransaction: {
|
|
26
|
+
type: 'boolean',
|
|
27
|
+
},
|
|
28
|
+
multisig: {
|
|
29
|
+
type: 'string',
|
|
30
|
+
describe: 'Address of the squads multisig to be authority. If not provided, your wallet will be the authority',
|
|
31
|
+
},
|
|
32
|
+
authorityIndex: {
|
|
33
|
+
type: 'number',
|
|
34
|
+
describe: 'Authority index for squads. Defaults to 1',
|
|
35
|
+
default: 1,
|
|
36
|
+
},
|
|
37
|
+
});
|
|
38
|
+
const argv = await yarg.argv;
|
|
39
|
+
process.env.ANCHOR_WALLET = argv.wallet;
|
|
40
|
+
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
41
|
+
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
42
|
+
const provider = anchor.getProvider();
|
|
43
|
+
const wallet = new anchor.Wallet(loadKeypair(argv.wallet));
|
|
44
|
+
const program = await init(provider);
|
|
45
|
+
const instructions = [];
|
|
46
|
+
const lazyTransactions = lazyTransactionsKey(argv.name)[0];
|
|
47
|
+
instructions.push(await program.methods
|
|
48
|
+
.closeCanopyV0()
|
|
49
|
+
.accounts({
|
|
50
|
+
lazyTransactions,
|
|
51
|
+
refund: provider.wallet.publicKey,
|
|
52
|
+
})
|
|
53
|
+
.instruction());
|
|
54
|
+
const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
|
|
55
|
+
commitmentOrConfig: 'finalized',
|
|
56
|
+
});
|
|
57
|
+
await sendInstructionsOrSquads({
|
|
58
|
+
provider,
|
|
59
|
+
instructions,
|
|
60
|
+
executeTransaction: argv.executeTransaction,
|
|
61
|
+
squads,
|
|
62
|
+
multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
|
|
63
|
+
authorityIndex: argv.authorityIndex,
|
|
64
|
+
signers: [],
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=close-canopy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"close-canopy.js","sourceRoot":"","sources":["../../../src/close-canopy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,SAAS,EAA0B,MAAM,iBAAiB,CAAC;AACpE,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EACL,WAAW,EAEX,wBAAwB,GACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAY,OAAO,CAAC,IAAI;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAC/B,MAAM,EAAE;YACN,KAAK,EAAE,GAAG;YACV,QAAQ,EAAE,uBAAuB;YACjC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,yBAAyB;SAClD;QACD,GAAG,EAAE;YACH,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,uBAAuB;YAChC,QAAQ,EAAE,gBAAgB;SAC3B;QACD,IAAI,EAAE;YACJ,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,gBAAgB;SAC3B;QACD,kBAAkB,EAAE;YAClB,IAAI,EAAE,SAAS;SAChB;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EACN,oGAAoG;SACvG;QACD,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,2CAA2C;YACrD,OAAO,EAAE,CAAC;SACX;KACF,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC;IAC3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAA2B,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IAErC,MAAM,YAAY,GAA6B,EAAE,CAAC;IAElD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,CAAC,IAAI,CACf,MAAM,OAAO,CAAC,OAAO;SAClB,aAAa,EAAE;SACf,QAAQ,CAAC;QACR,gBAAgB;QAChB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;KAClC,CAAC;SACD,WAAW,EAAE,CACjB,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,EAAE;QACtE,kBAAkB,EAAE,WAAW;KAChC,CAAC,CAAC;IACH,MAAM,wBAAwB,CAAC;QAC7B,QAAQ;QACR,YAAY;QACZ,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,MAAM;QACN,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QAClE,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import * as anchor from "@coral-xyz/anchor";
|
|
2
|
+
import { blockKey, init as initLazy, lazyTransactionsKey } from "@helium/lazy-transactions-sdk";
|
|
3
|
+
import os from "os";
|
|
4
|
+
import yargs from "yargs/yargs";
|
|
5
|
+
import { bulkSendTransactions, chunks } from "@helium/spl-utils";
|
|
6
|
+
import { Transaction } from "@solana/web3.js";
|
|
7
|
+
export async function run(args = process.argv) {
|
|
8
|
+
const yarg = yargs(args).options({
|
|
9
|
+
wallet: {
|
|
10
|
+
alias: "k",
|
|
11
|
+
describe: "Anchor wallet keypair",
|
|
12
|
+
default: `${os.homedir()}/.config/solana/id.json`,
|
|
13
|
+
},
|
|
14
|
+
url: {
|
|
15
|
+
alias: "u",
|
|
16
|
+
default: "http://127.0.0.1:8899",
|
|
17
|
+
describe: "The solana url",
|
|
18
|
+
},
|
|
19
|
+
name: {
|
|
20
|
+
default: "nJWGUMOK",
|
|
21
|
+
describe: "The lazy transactions instance name"
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
const argv = await yarg.argv;
|
|
25
|
+
process.env.ANCHOR_WALLET = argv.wallet;
|
|
26
|
+
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
27
|
+
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
28
|
+
const provider = anchor.getProvider();
|
|
29
|
+
const lazyProgram = await initLazy(provider);
|
|
30
|
+
const ltKey = lazyTransactionsKey(argv.name)[0];
|
|
31
|
+
const lt = await lazyProgram.account.lazyTransactionsV0.fetch(ltKey);
|
|
32
|
+
const blocks = await lazyProgram.account.block.all();
|
|
33
|
+
const blocksByKey = new Set(blocks.map((b) => b.publicKey.toString()));
|
|
34
|
+
const allIndices = new Array(1 << lt.maxDepth).fill(0).map((_, i) => i);
|
|
35
|
+
const blockIndices = allIndices.filter((bi) => blocksByKey.has(blockKey(ltKey, bi)[0].toBase58()));
|
|
36
|
+
if (lt.executed.length !== 1 << lt.maxDepth) {
|
|
37
|
+
await lazyProgram.methods
|
|
38
|
+
.reinitializeExecutedTransactionsV0()
|
|
39
|
+
.accounts({
|
|
40
|
+
lazyTransactions: ltKey,
|
|
41
|
+
})
|
|
42
|
+
.rpc({ skipPreflight: true });
|
|
43
|
+
}
|
|
44
|
+
const instructions = await Promise.all(blockIndices.map((bi) => lazyProgram.methods
|
|
45
|
+
.closeMarkerV0({
|
|
46
|
+
index: bi,
|
|
47
|
+
})
|
|
48
|
+
.accounts({
|
|
49
|
+
refund: provider.wallet.publicKey,
|
|
50
|
+
lazyTransactions: ltKey,
|
|
51
|
+
authority: provider.wallet.publicKey,
|
|
52
|
+
})
|
|
53
|
+
.instruction()));
|
|
54
|
+
console.log(`${blocks.length} blocks to close`);
|
|
55
|
+
const txns = chunks(instructions, 10).map(chunk => {
|
|
56
|
+
const tx = new Transaction({
|
|
57
|
+
feePayer: provider.wallet.publicKey,
|
|
58
|
+
});
|
|
59
|
+
tx.add(...chunk);
|
|
60
|
+
return tx;
|
|
61
|
+
});
|
|
62
|
+
await bulkSendTransactions(provider, txns, (status) => {
|
|
63
|
+
console.log(`Sending ${status.currentBatchProgress} / ${status.currentBatchSize} batch. ${status.totalProgress} / ${txns.length}`);
|
|
64
|
+
});
|
|
65
|
+
console.log("Done");
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=close-lazy-transaction-markers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"close-lazy-transaction-markers.js","sourceRoot":"","sources":["../../../src/close-lazy-transaction-markers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import * as anchor from "@coral-xyz/anchor";
|
|
2
|
+
import Address from "@helium/address";
|
|
3
|
+
import { ED25519_KEY_TYPE } from "@helium/address/build/KeyTypes";
|
|
4
|
+
import { delegatedDataCreditsKey, escrowAccountKey, init as initDataCredits, } from "@helium/data-credits-sdk";
|
|
5
|
+
import { subDaoKey } from "@helium/helium-sub-daos-sdk";
|
|
6
|
+
import { DC_MINT, IOT_MINT } from "@helium/spl-utils";
|
|
7
|
+
import { getAccount, } from "@solana/spl-token";
|
|
8
|
+
import { PublicKey } from "@solana/web3.js";
|
|
9
|
+
import fs from "fs";
|
|
10
|
+
import os from "os";
|
|
11
|
+
import yargs from "yargs/yargs";
|
|
12
|
+
export async function run(args = process.argv) {
|
|
13
|
+
const yarg = yargs(args).options({
|
|
14
|
+
wallet: {
|
|
15
|
+
alias: "k",
|
|
16
|
+
describe: "Anchor wallet keypair",
|
|
17
|
+
default: `${os.homedir()}/.config/solana/id.json`,
|
|
18
|
+
},
|
|
19
|
+
url: {
|
|
20
|
+
alias: "u",
|
|
21
|
+
default: "http://127.0.0.1:8899",
|
|
22
|
+
describe: "The solana url",
|
|
23
|
+
},
|
|
24
|
+
state: {
|
|
25
|
+
type: "string",
|
|
26
|
+
alias: "s",
|
|
27
|
+
default: "./export.json",
|
|
28
|
+
},
|
|
29
|
+
});
|
|
30
|
+
const argv = await yarg.argv;
|
|
31
|
+
process.env.ANCHOR_WALLET = argv.wallet;
|
|
32
|
+
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
33
|
+
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
34
|
+
const provider = anchor.getProvider();
|
|
35
|
+
const program = await initDataCredits(provider);
|
|
36
|
+
let state = JSON.parse(fs.readFileSync(argv.state).toString());
|
|
37
|
+
const routers = Object.entries(state.routers);
|
|
38
|
+
const [subdao] = subDaoKey(IOT_MINT);
|
|
39
|
+
for (const [routerKey, { owner }] of routers) {
|
|
40
|
+
const [delegatedDataCreditsK] = delegatedDataCreditsKey(subdao, routerKey);
|
|
41
|
+
const [escrowKey] = escrowAccountKey(delegatedDataCreditsK);
|
|
42
|
+
let amount = BigInt(0);
|
|
43
|
+
try {
|
|
44
|
+
amount = (await getAccount(provider.connection, escrowKey)).amount;
|
|
45
|
+
}
|
|
46
|
+
catch (e) {
|
|
47
|
+
if (!e.toString().includes("TokenAccountNotFoundError")) {
|
|
48
|
+
throw e;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
const ownerBalance = new anchor.BN(amount.toString());
|
|
52
|
+
const ownerIsRouter = owner === routerKey;
|
|
53
|
+
if (!ownerIsRouter) {
|
|
54
|
+
console.log(`Router: ${routerKey}`);
|
|
55
|
+
const account = state.accounts[routerKey];
|
|
56
|
+
if (account) {
|
|
57
|
+
const actualRouterBalance = new anchor.BN(account.dc);
|
|
58
|
+
const toSend = actualRouterBalance.sub(ownerBalance);
|
|
59
|
+
console.log(` Balance is ${ownerBalance}, balance should be ${actualRouterBalance}, difference is ${toSend}`);
|
|
60
|
+
if (actualRouterBalance.gt(ownerBalance)) {
|
|
61
|
+
console.log(` Delegating ${toSend}`);
|
|
62
|
+
const sig = await program.methods
|
|
63
|
+
.delegateDataCreditsV0({
|
|
64
|
+
amount: toSend,
|
|
65
|
+
routerKey,
|
|
66
|
+
})
|
|
67
|
+
.accounts({
|
|
68
|
+
subDao: subdao,
|
|
69
|
+
dcMint: DC_MINT,
|
|
70
|
+
})
|
|
71
|
+
.rpc({ skipPreflight: true });
|
|
72
|
+
console.log(sig);
|
|
73
|
+
}
|
|
74
|
+
// If the router has more than it should have gotten,
|
|
75
|
+
// deduct that from the users data credit balance.
|
|
76
|
+
let negativeBalance = new anchor.BN(0);
|
|
77
|
+
if (toSend.lt(new anchor.BN(0))) {
|
|
78
|
+
negativeBalance = toSend.mul(new anchor.BN(-1));
|
|
79
|
+
}
|
|
80
|
+
const toRefund = ownerBalance.sub(negativeBalance);
|
|
81
|
+
const ownerSolAddr = toSolana(owner);
|
|
82
|
+
if (ownerSolAddr) {
|
|
83
|
+
console.log(` Refunding ${toRefund}`);
|
|
84
|
+
const sig = await program.methods
|
|
85
|
+
.issueDataCreditsV0({
|
|
86
|
+
amount: toRefund,
|
|
87
|
+
})
|
|
88
|
+
.accounts({
|
|
89
|
+
dcMint: DC_MINT,
|
|
90
|
+
to: ownerSolAddr,
|
|
91
|
+
});
|
|
92
|
+
console.log(sig);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
function toSolana(address) {
|
|
99
|
+
try {
|
|
100
|
+
const addr = Address.fromB58(address);
|
|
101
|
+
if (addr.keyType === ED25519_KEY_TYPE)
|
|
102
|
+
return new PublicKey(addr.publicKey);
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
return undefined;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=correct-router-dc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"correct-router-dc.js","sourceRoot":"","sources":["../../../src/correct-router-dc.ts"],"names":[],"mappings":"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"}
|