@helium/helium-admin-cli 0.9.23 → 0.9.24
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/backfill-mobile-deployment-infos.js +223 -0
- package/lib/cjs/backfill-mobile-deployment-infos.js.map +1 -0
- package/lib/cjs/create-boost-config.js +4 -2
- package/lib/cjs/create-boost-config.js.map +1 -1
- package/lib/cjs/end-epoch.js +237 -68
- package/lib/cjs/end-epoch.js.map +1 -1
- package/lib/cjs/log-hotspot.js +17 -3
- package/lib/cjs/log-hotspot.js.map +1 -1
- package/lib/cjs/remove-authorities.js +134 -0
- package/lib/cjs/remove-authorities.js.map +1 -0
- package/lib/cjs/swap-carrier-stake.js +143 -0
- package/lib/cjs/swap-carrier-stake.js.map +1 -0
- package/lib/cjs/{fix-claimed-epochs.js → swap-maker-stake.js} +59 -22
- package/lib/cjs/swap-maker-stake.js.map +1 -0
- package/lib/cjs/unrug-hotspots.js +167 -0
- package/lib/cjs/unrug-hotspots.js.map +1 -0
- package/lib/cjs/update-boost-config.js +1 -0
- package/lib/cjs/update-boost-config.js.map +1 -1
- package/lib/cjs/update-matching-destinations.js +116 -0
- package/lib/cjs/update-matching-destinations.js.map +1 -0
- package/lib/esm/src/backfill-mobile-deployment-infos.js +198 -0
- package/lib/esm/src/backfill-mobile-deployment-infos.js.map +1 -0
- package/lib/esm/src/create-boost-config.js +4 -2
- package/lib/esm/src/create-boost-config.js.map +1 -1
- package/lib/esm/src/end-epoch.js +234 -69
- package/lib/esm/src/end-epoch.js.map +1 -1
- package/lib/esm/src/log-hotspot.js +18 -4
- package/lib/esm/src/log-hotspot.js.map +1 -1
- package/lib/esm/src/remove-authorities.js +93 -0
- package/lib/esm/src/remove-authorities.js.map +1 -0
- package/lib/esm/src/swap-carrier-stake.js +102 -0
- package/lib/esm/src/swap-carrier-stake.js.map +1 -0
- package/lib/esm/src/swap-maker-stake.js +87 -0
- package/lib/esm/src/swap-maker-stake.js.map +1 -0
- package/lib/esm/src/unrug-hotspots.js +126 -0
- package/lib/esm/src/unrug-hotspots.js.map +1 -0
- package/lib/esm/src/update-boost-config.js +1 -0
- package/lib/esm/src/update-boost-config.js.map +1 -1
- package/lib/esm/src/update-matching-destinations.js +75 -0
- package/lib/esm/src/update-matching-destinations.js.map +1 -0
- package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/lib/types/src/backfill-mobile-deployment-infos.d.ts +4 -0
- package/lib/types/src/backfill-mobile-deployment-infos.d.ts.map +1 -0
- package/lib/types/src/create-boost-config.d.ts.map +1 -1
- package/lib/types/src/end-epoch.d.ts.map +1 -1
- package/lib/types/src/log-hotspot.d.ts.map +1 -1
- package/lib/types/src/{fix-claimed-epochs.d.ts → remove-authorities.d.ts} +1 -1
- package/lib/types/src/remove-authorities.d.ts.map +1 -0
- package/lib/types/src/{migrate-to-hip-138.d.ts → swap-carrier-stake.d.ts} +1 -1
- package/lib/types/src/swap-carrier-stake.d.ts.map +1 -0
- package/lib/types/src/swap-maker-stake.d.ts +2 -0
- package/lib/types/src/swap-maker-stake.d.ts.map +1 -0
- package/lib/types/src/unrug-hotspots.d.ts +2 -0
- package/lib/types/src/unrug-hotspots.d.ts.map +1 -0
- package/lib/types/src/update-matching-destinations.d.ts +2 -0
- package/lib/types/src/update-matching-destinations.d.ts.map +1 -0
- package/package.json +15 -13
- package/lib/cjs/fix-claimed-epochs.js.map +0 -1
- package/lib/cjs/migrate-to-hip-138.js +0 -221
- package/lib/cjs/migrate-to-hip-138.js.map +0 -1
- package/lib/esm/src/fix-claimed-epochs.js +0 -50
- package/lib/esm/src/fix-claimed-epochs.js.map +0 -1
- package/lib/esm/src/migrate-to-hip-138.js +0 -180
- package/lib/esm/src/migrate-to-hip-138.js.map +0 -1
- package/lib/types/src/fix-claimed-epochs.d.ts.map +0 -1
- package/lib/types/src/migrate-to-hip-138.d.ts.map +0 -1
package/lib/cjs/log-hotspot.js
CHANGED
|
@@ -38,6 +38,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
38
38
|
exports.run = void 0;
|
|
39
39
|
const anchor = __importStar(require("@coral-xyz/anchor"));
|
|
40
40
|
const helium_entity_manager_sdk_1 = require("@helium/helium-entity-manager-sdk");
|
|
41
|
+
const lazy_distributor_sdk_1 = require("@helium/lazy-distributor-sdk");
|
|
41
42
|
const helium_sub_daos_sdk_1 = require("@helium/helium-sub-daos-sdk");
|
|
42
43
|
const spl_utils_1 = require("@helium/spl-utils");
|
|
43
44
|
const web3_js_1 = require("@solana/web3.js");
|
|
@@ -64,8 +65,8 @@ function run(args = process.argv) {
|
|
|
64
65
|
},
|
|
65
66
|
keySerialization: {
|
|
66
67
|
type: "string",
|
|
67
|
-
default: "b58"
|
|
68
|
-
}
|
|
68
|
+
default: "b58",
|
|
69
|
+
},
|
|
69
70
|
});
|
|
70
71
|
const argv = yield yarg.argv;
|
|
71
72
|
process.env.ANCHOR_WALLET = argv.wallet;
|
|
@@ -73,8 +74,10 @@ function run(args = process.argv) {
|
|
|
73
74
|
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
74
75
|
const provider = anchor.getProvider();
|
|
75
76
|
const hemProgram = yield (0, helium_entity_manager_sdk_1.init)(provider);
|
|
77
|
+
const lazyProgram = yield (0, lazy_distributor_sdk_1.init)(provider);
|
|
78
|
+
const [keyToAssetK] = (0, helium_entity_manager_sdk_1.keyToAssetKey)((0, helium_sub_daos_sdk_1.daoKey)(spl_utils_1.HNT_MINT)[0], argv.entityKey,
|
|
76
79
|
// @ts-ignore
|
|
77
|
-
|
|
80
|
+
argv.keySerialization);
|
|
78
81
|
const keyToAsset = yield hemProgram.account.keyToAssetV0.fetchNullable(keyToAssetK);
|
|
79
82
|
console.log("keyToAsset", keyToAssetK.toBase58());
|
|
80
83
|
web3_js_1.PublicKey.prototype.toString = web3_js_1.PublicKey.prototype.toBase58;
|
|
@@ -97,6 +100,17 @@ function run(args = process.argv) {
|
|
|
97
100
|
else {
|
|
98
101
|
console.log("No mobile info");
|
|
99
102
|
}
|
|
103
|
+
if (keyToAsset) {
|
|
104
|
+
const iotLazy = (0, lazy_distributor_sdk_1.lazyDistributorKey)(spl_utils_1.IOT_MINT)[0];
|
|
105
|
+
const mobileLazy = (0, lazy_distributor_sdk_1.lazyDistributorKey)(spl_utils_1.MOBILE_MINT)[0];
|
|
106
|
+
const hntLazy = (0, lazy_distributor_sdk_1.lazyDistributorKey)(spl_utils_1.HNT_MINT)[0];
|
|
107
|
+
const iotRecipient = (0, lazy_distributor_sdk_1.recipientKey)(iotLazy, keyToAsset.asset);
|
|
108
|
+
const mobileRecipient = (0, lazy_distributor_sdk_1.recipientKey)(mobileLazy, keyToAsset.asset);
|
|
109
|
+
const hntRecipient = (0, lazy_distributor_sdk_1.recipientKey)(hntLazy, keyToAsset.asset);
|
|
110
|
+
console.log("Iot Recipient", iotRecipient, yield lazyProgram.account.recipientV0.fetchNullable(iotRecipient[0]));
|
|
111
|
+
console.log("Mobile Recipient", mobileRecipient, yield lazyProgram.account.recipientV0.fetchNullable(mobileRecipient[0]));
|
|
112
|
+
console.log("Hnt Recipient", hntRecipient, yield lazyProgram.account.recipientV0.fetchNullable(hntRecipient[0]));
|
|
113
|
+
}
|
|
100
114
|
});
|
|
101
115
|
}
|
|
102
116
|
exports.run = run;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-hotspot.js","sourceRoot":"","sources":["../../src/log-hotspot.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4C;AAC5C,iFAM2C;AAC3C,qEAAgE;AAChE,
|
|
1
|
+
{"version":3,"file":"log-hotspot.js","sourceRoot":"","sources":["../../src/log-hotspot.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.run = void 0;
|
|
39
|
+
const anchor = __importStar(require("@coral-xyz/anchor"));
|
|
40
|
+
const helium_sub_daos_sdk_1 = require("@helium/helium-sub-daos-sdk");
|
|
41
|
+
const circuit_breaker_sdk_1 = require("@helium/circuit-breaker-sdk");
|
|
42
|
+
const spl_utils_1 = require("@helium/spl-utils");
|
|
43
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
44
|
+
const sdk_1 = __importDefault(require("@sqds/sdk"));
|
|
45
|
+
const os_1 = __importDefault(require("os"));
|
|
46
|
+
const yargs_1 = __importDefault(require("yargs/yargs"));
|
|
47
|
+
const utils_1 = require("./utils");
|
|
48
|
+
function run(args = process.argv) {
|
|
49
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
const yarg = (0, yargs_1.default)(args).options({
|
|
51
|
+
wallet: {
|
|
52
|
+
alias: "k",
|
|
53
|
+
describe: "Anchor wallet keypair",
|
|
54
|
+
default: `${os_1.default.homedir()}/.config/solana/id.json`,
|
|
55
|
+
},
|
|
56
|
+
url: {
|
|
57
|
+
alias: "u",
|
|
58
|
+
default: "http://127.0.0.1:8899",
|
|
59
|
+
describe: "The solana url",
|
|
60
|
+
},
|
|
61
|
+
executeTransaction: {
|
|
62
|
+
type: "boolean",
|
|
63
|
+
},
|
|
64
|
+
multisig: {
|
|
65
|
+
type: "string",
|
|
66
|
+
describe: "Address of the squads multisig to be authority. If not provided, your wallet will be the authority",
|
|
67
|
+
},
|
|
68
|
+
authorityIndex: {
|
|
69
|
+
type: "number",
|
|
70
|
+
describe: "Authority index for squads. Defaults to 1",
|
|
71
|
+
default: 1,
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
const argv = yield yarg.argv;
|
|
75
|
+
process.env.ANCHOR_WALLET = argv.wallet;
|
|
76
|
+
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
77
|
+
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
78
|
+
const provider = anchor.getProvider();
|
|
79
|
+
const wallet = new anchor.Wallet((0, utils_1.loadKeypair)(argv.wallet));
|
|
80
|
+
const program = yield (0, helium_sub_daos_sdk_1.init)(provider);
|
|
81
|
+
const cbProgram = yield (0, circuit_breaker_sdk_1.init)(provider);
|
|
82
|
+
const instructions = [];
|
|
83
|
+
const dao = (0, helium_sub_daos_sdk_1.daoKey)(spl_utils_1.HNT_MINT)[0];
|
|
84
|
+
const daoAcc = yield program.account.daoV0.fetch(dao);
|
|
85
|
+
instructions.push(yield program.methods
|
|
86
|
+
.tempRemoveMintAndFreezeAuthorities()
|
|
87
|
+
.accounts({
|
|
88
|
+
authority: daoAcc.authority,
|
|
89
|
+
dao,
|
|
90
|
+
mobileMint: spl_utils_1.MOBILE_MINT,
|
|
91
|
+
iotMint: spl_utils_1.IOT_MINT,
|
|
92
|
+
hntMint: spl_utils_1.HNT_MINT,
|
|
93
|
+
iotSubDao: (0, helium_sub_daos_sdk_1.subDaoKey)(spl_utils_1.IOT_MINT)[0],
|
|
94
|
+
mobileSubDao: (0, helium_sub_daos_sdk_1.subDaoKey)(spl_utils_1.MOBILE_MINT)[0],
|
|
95
|
+
})
|
|
96
|
+
.instruction());
|
|
97
|
+
const mobileCB = (0, circuit_breaker_sdk_1.mintWindowedBreakerKey)(spl_utils_1.MOBILE_MINT)[0];
|
|
98
|
+
const mobileCBAcc = yield cbProgram.account.mintWindowedCircuitBreakerV0.fetch(mobileCB);
|
|
99
|
+
instructions.push(yield cbProgram.methods
|
|
100
|
+
.removeMintAuthorityV0()
|
|
101
|
+
.accounts({
|
|
102
|
+
mint: spl_utils_1.MOBILE_MINT,
|
|
103
|
+
circuitBreaker: mobileCB,
|
|
104
|
+
rentRefund: mobileCBAcc.authority,
|
|
105
|
+
authority: mobileCBAcc.authority,
|
|
106
|
+
})
|
|
107
|
+
.instruction());
|
|
108
|
+
const iotCB = (0, circuit_breaker_sdk_1.mintWindowedBreakerKey)(spl_utils_1.IOT_MINT)[0];
|
|
109
|
+
const iotCBAcc = yield cbProgram.account.mintWindowedCircuitBreakerV0.fetch(iotCB);
|
|
110
|
+
instructions.push(yield cbProgram.methods
|
|
111
|
+
.removeMintAuthorityV0()
|
|
112
|
+
.accounts({
|
|
113
|
+
mint: spl_utils_1.IOT_MINT,
|
|
114
|
+
circuitBreaker: iotCB,
|
|
115
|
+
rentRefund: iotCBAcc.authority,
|
|
116
|
+
authority: iotCBAcc.authority,
|
|
117
|
+
})
|
|
118
|
+
.instruction());
|
|
119
|
+
const squads = sdk_1.default.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
|
|
120
|
+
commitmentOrConfig: "finalized",
|
|
121
|
+
});
|
|
122
|
+
yield (0, utils_1.sendInstructionsOrSquads)({
|
|
123
|
+
provider,
|
|
124
|
+
instructions,
|
|
125
|
+
executeTransaction: argv.executeTransaction,
|
|
126
|
+
squads,
|
|
127
|
+
multisig: argv.multisig ? new web3_js_1.PublicKey(argv.multisig) : undefined,
|
|
128
|
+
authorityIndex: argv.authorityIndex,
|
|
129
|
+
signers: [],
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
exports.run = run;
|
|
134
|
+
//# sourceMappingURL=remove-authorities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-authorities.js","sourceRoot":"","sources":["../../src/remove-authorities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.run = void 0;
|
|
39
|
+
const anchor = __importStar(require("@coral-xyz/anchor"));
|
|
40
|
+
const mobile_entity_manager_sdk_1 = require("@helium/mobile-entity-manager-sdk");
|
|
41
|
+
const helium_sub_daos_sdk_1 = require("@helium/helium-sub-daos-sdk");
|
|
42
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
43
|
+
const sdk_1 = __importDefault(require("@sqds/sdk"));
|
|
44
|
+
const os_1 = __importDefault(require("os"));
|
|
45
|
+
const yargs_1 = __importDefault(require("yargs/yargs"));
|
|
46
|
+
const utils_1 = require("./utils");
|
|
47
|
+
const spl_utils_1 = require("@helium/spl-utils");
|
|
48
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
49
|
+
function run(args = process.argv) {
|
|
50
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
const yarg = (0, yargs_1.default)(args).options({
|
|
52
|
+
wallet: {
|
|
53
|
+
alias: "k",
|
|
54
|
+
describe: "Anchor wallet keypair",
|
|
55
|
+
default: `${os_1.default.homedir()}/.config/solana/id.json`,
|
|
56
|
+
},
|
|
57
|
+
url: {
|
|
58
|
+
alias: "u",
|
|
59
|
+
default: "http://127.0.0.1:8899",
|
|
60
|
+
describe: "The solana url",
|
|
61
|
+
},
|
|
62
|
+
name: {
|
|
63
|
+
alias: "n",
|
|
64
|
+
type: "string",
|
|
65
|
+
required: true,
|
|
66
|
+
describe: "Name of the carrier, case sensitive",
|
|
67
|
+
},
|
|
68
|
+
executeTransaction: {
|
|
69
|
+
type: "boolean",
|
|
70
|
+
},
|
|
71
|
+
multisig: {
|
|
72
|
+
type: "string",
|
|
73
|
+
describe: "Address of the squads multisig to be authority. If not provided, your wallet will be the authority",
|
|
74
|
+
},
|
|
75
|
+
authorityIndex: {
|
|
76
|
+
type: "number",
|
|
77
|
+
describe: "Authority index for squads. Defaults to 1",
|
|
78
|
+
default: 1,
|
|
79
|
+
},
|
|
80
|
+
updateAuthority: {
|
|
81
|
+
type: "string",
|
|
82
|
+
describe: "The new update authority to set",
|
|
83
|
+
},
|
|
84
|
+
issuingAuthority: {
|
|
85
|
+
type: "string",
|
|
86
|
+
describe: "The new issuing authority to set",
|
|
87
|
+
},
|
|
88
|
+
hexboostAuthority: {
|
|
89
|
+
type: "string",
|
|
90
|
+
describe: "The new hexboost authority to set",
|
|
91
|
+
},
|
|
92
|
+
dntMint: {
|
|
93
|
+
type: "string",
|
|
94
|
+
describe: "DNT mint of the subdao to approve on",
|
|
95
|
+
default: spl_utils_1.MOBILE_MINT.toBase58(),
|
|
96
|
+
},
|
|
97
|
+
incentiveEscrowFundBps: {
|
|
98
|
+
type: "number",
|
|
99
|
+
describe: "The new incentive escrow fund bps to set",
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
const argv = yield yarg.argv;
|
|
103
|
+
process.env.ANCHOR_WALLET = argv.wallet;
|
|
104
|
+
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
105
|
+
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
106
|
+
const provider = anchor.getProvider();
|
|
107
|
+
const wallet = new anchor.Wallet((0, utils_1.loadKeypair)(argv.wallet));
|
|
108
|
+
const program = yield (0, mobile_entity_manager_sdk_1.init)(provider);
|
|
109
|
+
const instructions = [];
|
|
110
|
+
const dntMint = new web3_js_1.PublicKey(argv.dntMint);
|
|
111
|
+
const subDao = (0, helium_sub_daos_sdk_1.subDaoKey)(dntMint)[0];
|
|
112
|
+
const carrier = (0, mobile_entity_manager_sdk_1.carrierKey)(subDao, argv.name)[0];
|
|
113
|
+
const carrierAcc = yield program.account.carrierV0.fetch(carrier);
|
|
114
|
+
const authority = carrierAcc.updateAuthority;
|
|
115
|
+
instructions.push(yield program.methods
|
|
116
|
+
.swapCarrierStake()
|
|
117
|
+
.accounts({
|
|
118
|
+
carrier,
|
|
119
|
+
updateAuthority: carrierAcc.updateAuthority,
|
|
120
|
+
newStakeSource: (0, spl_token_1.getAssociatedTokenAddressSync)(spl_utils_1.HNT_MINT, authority),
|
|
121
|
+
originalStakeDestination: (0, spl_token_1.getAssociatedTokenAddressSync)(spl_utils_1.MOBILE_MINT, authority),
|
|
122
|
+
originalStake: (0, spl_token_1.getAssociatedTokenAddressSync)(spl_utils_1.MOBILE_MINT, carrier),
|
|
123
|
+
newEscrow: (0, spl_token_1.getAssociatedTokenAddressSync)(spl_utils_1.HNT_MINT, carrier),
|
|
124
|
+
dntMint: spl_utils_1.MOBILE_MINT,
|
|
125
|
+
hntMint: spl_utils_1.HNT_MINT,
|
|
126
|
+
})
|
|
127
|
+
.instruction());
|
|
128
|
+
const squads = sdk_1.default.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
|
|
129
|
+
commitmentOrConfig: "finalized",
|
|
130
|
+
});
|
|
131
|
+
yield (0, utils_1.sendInstructionsOrSquads)({
|
|
132
|
+
provider,
|
|
133
|
+
instructions,
|
|
134
|
+
executeTransaction: argv.executeTransaction,
|
|
135
|
+
squads,
|
|
136
|
+
multisig: argv.multisig ? new web3_js_1.PublicKey(argv.multisig) : undefined,
|
|
137
|
+
authorityIndex: argv.authorityIndex,
|
|
138
|
+
signers: [],
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
exports.run = run;
|
|
143
|
+
//# sourceMappingURL=swap-carrier-stake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swap-carrier-stake.js","sourceRoot":"","sources":["../../src/swap-carrier-stake.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,13 +37,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
38
|
exports.run = void 0;
|
|
39
39
|
const anchor = __importStar(require("@coral-xyz/anchor"));
|
|
40
|
-
const
|
|
41
|
-
const spl_utils_1 = require("@helium/spl-utils");
|
|
40
|
+
const helium_entity_manager_sdk_1 = require("@helium/helium-entity-manager-sdk");
|
|
42
41
|
const web3_js_1 = require("@solana/web3.js");
|
|
43
|
-
const
|
|
42
|
+
const sdk_1 = __importDefault(require("@sqds/sdk"));
|
|
44
43
|
const os_1 = __importDefault(require("os"));
|
|
45
44
|
const yargs_1 = __importDefault(require("yargs/yargs"));
|
|
46
45
|
const utils_1 = require("./utils");
|
|
46
|
+
const spl_utils_1 = require("@helium/spl-utils");
|
|
47
|
+
const helium_sub_daos_sdk_1 = require("@helium/helium-sub-daos-sdk");
|
|
48
|
+
const spl_token_1 = require("@solana/spl-token");
|
|
47
49
|
function run(args = process.argv) {
|
|
48
50
|
return __awaiter(this, void 0, void 0, function* () {
|
|
49
51
|
const yarg = (0, yargs_1.default)(args).options({
|
|
@@ -57,10 +59,31 @@ function run(args = process.argv) {
|
|
|
57
59
|
default: "http://127.0.0.1:8899",
|
|
58
60
|
describe: "The solana url",
|
|
59
61
|
},
|
|
60
|
-
|
|
62
|
+
name: {
|
|
63
|
+
alias: "n",
|
|
64
|
+
type: "string",
|
|
65
|
+
required: true,
|
|
66
|
+
describe: "Name of the maker, case sensitive",
|
|
67
|
+
},
|
|
68
|
+
executeTransaction: {
|
|
69
|
+
type: "boolean",
|
|
70
|
+
},
|
|
71
|
+
multisig: {
|
|
61
72
|
type: "string",
|
|
62
|
-
describe: "
|
|
63
|
-
|
|
73
|
+
describe: "Address of the squads multisig to be authority. If not provided, your wallet will be the authority",
|
|
74
|
+
},
|
|
75
|
+
authorityIndex: {
|
|
76
|
+
type: "number",
|
|
77
|
+
describe: "Authority index for squads. Defaults to 1",
|
|
78
|
+
default: 1,
|
|
79
|
+
},
|
|
80
|
+
updateAuthority: {
|
|
81
|
+
type: "string",
|
|
82
|
+
describe: "The new update authority to set",
|
|
83
|
+
},
|
|
84
|
+
issuingAuthority: {
|
|
85
|
+
type: "string",
|
|
86
|
+
describe: "The new issuing authority to set",
|
|
64
87
|
},
|
|
65
88
|
});
|
|
66
89
|
const argv = yield yarg.argv;
|
|
@@ -69,23 +92,37 @@ function run(args = process.argv) {
|
|
|
69
92
|
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
70
93
|
const provider = anchor.getProvider();
|
|
71
94
|
const wallet = new anchor.Wallet((0, utils_1.loadKeypair)(argv.wallet));
|
|
72
|
-
const
|
|
73
|
-
const delegatedPositions = fs_1.default.readFileSync(argv.delegatedPositions, "utf-8")
|
|
74
|
-
.split("\n")
|
|
75
|
-
.filter(line => line.trim() !== ""); // Remove empty lines
|
|
95
|
+
const program = yield (0, helium_entity_manager_sdk_1.init)(provider);
|
|
76
96
|
const instructions = [];
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
97
|
+
const maker = (0, helium_entity_manager_sdk_1.makerKey)((0, helium_sub_daos_sdk_1.daoKey)(spl_utils_1.HNT_MINT)[0], argv.name)[0];
|
|
98
|
+
const makerAcc = yield program.account.makerV0.fetch(maker);
|
|
99
|
+
const authority = makerAcc.updateAuthority;
|
|
100
|
+
instructions.push(yield program.methods
|
|
101
|
+
.swapMakerStake()
|
|
102
|
+
.accounts({
|
|
103
|
+
maker,
|
|
104
|
+
updateAuthority: authority,
|
|
105
|
+
newStakeSource: (0, spl_token_1.getAssociatedTokenAddressSync)(spl_utils_1.HNT_MINT, authority),
|
|
106
|
+
originalStakeDestination: (0, spl_token_1.getAssociatedTokenAddressSync)(spl_utils_1.MOBILE_MINT, authority),
|
|
107
|
+
originalStake: (0, spl_token_1.getAssociatedTokenAddressSync)(spl_utils_1.MOBILE_MINT, maker),
|
|
108
|
+
newEscrow: (0, spl_token_1.getAssociatedTokenAddressSync)(spl_utils_1.HNT_MINT, maker),
|
|
109
|
+
dntMint: spl_utils_1.MOBILE_MINT,
|
|
110
|
+
hntMint: spl_utils_1.HNT_MINT,
|
|
111
|
+
})
|
|
112
|
+
.instruction());
|
|
113
|
+
const squads = sdk_1.default.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
|
|
114
|
+
commitmentOrConfig: "finalized",
|
|
115
|
+
});
|
|
116
|
+
yield (0, utils_1.sendInstructionsOrSquads)({
|
|
117
|
+
provider,
|
|
118
|
+
instructions,
|
|
119
|
+
executeTransaction: argv.executeTransaction,
|
|
120
|
+
squads,
|
|
121
|
+
multisig: argv.multisig ? new web3_js_1.PublicKey(argv.multisig) : undefined,
|
|
122
|
+
authorityIndex: argv.authorityIndex,
|
|
123
|
+
signers: [],
|
|
124
|
+
});
|
|
88
125
|
});
|
|
89
126
|
}
|
|
90
127
|
exports.run = run;
|
|
91
|
-
//# sourceMappingURL=
|
|
128
|
+
//# sourceMappingURL=swap-maker-stake.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swap-maker-stake.js","sourceRoot":"","sources":["../../src/swap-maker-stake.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.run = void 0;
|
|
39
|
+
const anchor = __importStar(require("@coral-xyz/anchor"));
|
|
40
|
+
const helium_entity_manager_sdk_1 = require("@helium/helium-entity-manager-sdk");
|
|
41
|
+
const helium_sub_daos_sdk_1 = require("@helium/helium-sub-daos-sdk");
|
|
42
|
+
const spl_utils_1 = require("@helium/spl-utils");
|
|
43
|
+
const mpl_bubblegum_1 = require("@metaplex-foundation/mpl-bubblegum");
|
|
44
|
+
const spl_account_compression_1 = require("@solana/spl-account-compression");
|
|
45
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
46
|
+
const bs58_1 = __importDefault(require("bs58"));
|
|
47
|
+
const os_1 = __importDefault(require("os"));
|
|
48
|
+
const yargs_1 = __importDefault(require("yargs/yargs"));
|
|
49
|
+
const utils_1 = require("./utils");
|
|
50
|
+
function run(args = process.argv) {
|
|
51
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
+
const yarg = (0, yargs_1.default)(args).options({
|
|
53
|
+
ruggedWallet: {
|
|
54
|
+
describe: "Anchor wallet keypair",
|
|
55
|
+
required: true,
|
|
56
|
+
type: "string",
|
|
57
|
+
},
|
|
58
|
+
recipient: {
|
|
59
|
+
describe: "Recipient of the hotspots",
|
|
60
|
+
type: "string",
|
|
61
|
+
required: true,
|
|
62
|
+
},
|
|
63
|
+
wallet: {
|
|
64
|
+
alias: "k",
|
|
65
|
+
describe: "Anchor wallet keypair",
|
|
66
|
+
default: `${os_1.default.homedir()}/.config/solana/id.json`,
|
|
67
|
+
},
|
|
68
|
+
url: {
|
|
69
|
+
alias: "u",
|
|
70
|
+
default: "http://127.0.0.1:8899",
|
|
71
|
+
describe: "The solana url",
|
|
72
|
+
},
|
|
73
|
+
hntMint: {
|
|
74
|
+
type: "string",
|
|
75
|
+
describe: "HNT mint of the dao to be updated",
|
|
76
|
+
default: spl_utils_1.HNT_MINT.toBase58(),
|
|
77
|
+
},
|
|
78
|
+
});
|
|
79
|
+
const argv = yield yarg.argv;
|
|
80
|
+
process.env.ANCHOR_WALLET = argv.wallet;
|
|
81
|
+
process.env.ANCHOR_PROVIDER_URL = argv.url;
|
|
82
|
+
anchor.setProvider(anchor.AnchorProvider.local(argv.url));
|
|
83
|
+
const provider = anchor.getProvider();
|
|
84
|
+
const ruggedWallet = new anchor.Wallet((0, utils_1.loadKeypair)(argv.ruggedWallet));
|
|
85
|
+
const ruggedWalletKeypair = (0, utils_1.loadKeypair)(argv.ruggedWallet);
|
|
86
|
+
const myKeypair = (0, utils_1.loadKeypair)(argv.wallet);
|
|
87
|
+
const cNFTs = yield (0, spl_utils_1.searchAssets)(provider.connection.rpcEndpoint, {
|
|
88
|
+
ownerAddress: ruggedWallet.publicKey.toBase58(),
|
|
89
|
+
limit: 1000,
|
|
90
|
+
creatorVerified: true,
|
|
91
|
+
burnt: false,
|
|
92
|
+
creatorAddress: (0, helium_entity_manager_sdk_1.entityCreatorKey)((0, helium_sub_daos_sdk_1.daoKey)(spl_utils_1.HNT_MINT)[0])[0].toBase58(),
|
|
93
|
+
});
|
|
94
|
+
const drafts = [];
|
|
95
|
+
for (const cNFT of cNFTs) {
|
|
96
|
+
const draft = yield transferCompressedCollectable(provider.connection, provider.wallet.publicKey, cNFT, new web3_js_1.PublicKey(argv.recipient));
|
|
97
|
+
drafts.push(draft);
|
|
98
|
+
}
|
|
99
|
+
for (const draft of drafts) {
|
|
100
|
+
const tx = yield (0, spl_utils_1.toVersionedTx)(yield (0, spl_utils_1.populateMissingDraftInfo)(provider.connection, draft));
|
|
101
|
+
yield tx.sign([ruggedWalletKeypair, myKeypair]);
|
|
102
|
+
yield (0, spl_utils_1.bulkSendRawTransactions)(provider.connection, [Buffer.from(tx.serialize())], console.log);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
exports.run = run;
|
|
107
|
+
function getBubblegumAuthorityPDA(merkleRollPubKey) {
|
|
108
|
+
const [bubblegumAuthorityPDAKey] = web3_js_1.PublicKey.findProgramAddressSync([merkleRollPubKey.toBuffer()], new web3_js_1.PublicKey("BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY"));
|
|
109
|
+
return bubblegumAuthorityPDAKey;
|
|
110
|
+
}
|
|
111
|
+
function bufferToArray(buffer) {
|
|
112
|
+
const nums = [];
|
|
113
|
+
for (let i = 0; i < buffer.length; i += 1) {
|
|
114
|
+
nums.push(buffer[i]);
|
|
115
|
+
}
|
|
116
|
+
return nums;
|
|
117
|
+
}
|
|
118
|
+
const mapProof = (assetProof) => {
|
|
119
|
+
if (!assetProof.proof || assetProof.proof.length === 0) {
|
|
120
|
+
throw new Error("Proof is empty");
|
|
121
|
+
}
|
|
122
|
+
return assetProof.proof.map((node) => ({
|
|
123
|
+
pubkey: new web3_js_1.PublicKey(node),
|
|
124
|
+
isSigner: false,
|
|
125
|
+
isWritable: false,
|
|
126
|
+
}));
|
|
127
|
+
};
|
|
128
|
+
const transferCompressedCollectable = (conn, payer, collectable, recipientPubKey) => __awaiter(void 0, void 0, void 0, function* () {
|
|
129
|
+
const instructions = [];
|
|
130
|
+
const assetProof = (yield (0, spl_utils_1.getAssetProof)(conn.rpcEndpoint, collectable.id));
|
|
131
|
+
const treeAuthority = getBubblegumAuthorityPDA(new web3_js_1.PublicKey(assetProof.treeId));
|
|
132
|
+
const leafDelegate = collectable.ownership.delegate
|
|
133
|
+
? new web3_js_1.PublicKey(collectable.ownership.delegate)
|
|
134
|
+
: new web3_js_1.PublicKey(collectable.ownership.owner);
|
|
135
|
+
const merkleTree = new web3_js_1.PublicKey(assetProof.treeId);
|
|
136
|
+
const tree = yield spl_account_compression_1.ConcurrentMerkleTreeAccount.fromAccountAddress(conn, merkleTree, "confirmed");
|
|
137
|
+
const canopyHeight = tree.getCanopyDepth();
|
|
138
|
+
const proofPath = mapProof(assetProof);
|
|
139
|
+
const anchorRemainingAccounts = proofPath.slice(0, proofPath.length - (canopyHeight || 0));
|
|
140
|
+
const ix = (0, mpl_bubblegum_1.createTransferInstruction)({
|
|
141
|
+
treeAuthority,
|
|
142
|
+
leafOwner: new web3_js_1.PublicKey(collectable.ownership.owner),
|
|
143
|
+
leafDelegate,
|
|
144
|
+
newLeafOwner: recipientPubKey,
|
|
145
|
+
merkleTree,
|
|
146
|
+
logWrapper: spl_account_compression_1.SPL_NOOP_PROGRAM_ID,
|
|
147
|
+
compressionProgram: spl_account_compression_1.SPL_ACCOUNT_COMPRESSION_PROGRAM_ID,
|
|
148
|
+
anchorRemainingAccounts,
|
|
149
|
+
}, {
|
|
150
|
+
root: bufferToArray(assetProof.root.toBuffer()),
|
|
151
|
+
dataHash: bufferToArray(Buffer.from(bs58_1.default.decode(collectable.compression.data_hash.trim()))),
|
|
152
|
+
creatorHash: bufferToArray(Buffer.from(bs58_1.default.decode(collectable.compression.creator_hash.trim()))),
|
|
153
|
+
nonce: collectable.compression.leaf_id,
|
|
154
|
+
index: collectable.compression.leaf_id,
|
|
155
|
+
});
|
|
156
|
+
ix.keys[1].isSigner = true;
|
|
157
|
+
instructions.push(ix);
|
|
158
|
+
return {
|
|
159
|
+
instructions: yield (0, spl_utils_1.withPriorityFees)({
|
|
160
|
+
connection: conn,
|
|
161
|
+
instructions,
|
|
162
|
+
feePayer: payer,
|
|
163
|
+
}),
|
|
164
|
+
feePayer: payer,
|
|
165
|
+
};
|
|
166
|
+
});
|
|
167
|
+
//# sourceMappingURL=unrug-hotspots.js.map
|