@helium/helium-admin-cli 0.2.21 → 0.2.22-next.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (284) hide show
  1. package/package.json +25 -25
  2. package/lib/cjs/approve-carrier.js +0 -119
  3. package/lib/cjs/approve-carrier.js.map +0 -1
  4. package/lib/cjs/approve-program.js +0 -121
  5. package/lib/cjs/approve-program.js.map +0 -1
  6. package/lib/cjs/claim-rewards.js +0 -109
  7. package/lib/cjs/claim-rewards.js.map +0 -1
  8. package/lib/cjs/close-buffers.js +0 -131
  9. package/lib/cjs/close-buffers.js.map +0 -1
  10. package/lib/cjs/close-canopy.js +0 -104
  11. package/lib/cjs/close-canopy.js.map +0 -1
  12. package/lib/cjs/correct-router-dc.js +0 -149
  13. package/lib/cjs/correct-router-dc.js.map +0 -1
  14. package/lib/cjs/create-active-device-aggregator.js +0 -112
  15. package/lib/cjs/create-active-device-aggregator.js.map +0 -1
  16. package/lib/cjs/create-carrier.js +0 -202
  17. package/lib/cjs/create-carrier.js.map +0 -1
  18. package/lib/cjs/create-dao.js +0 -457
  19. package/lib/cjs/create-dao.js.map +0 -1
  20. package/lib/cjs/create-data-only-config.js +0 -174
  21. package/lib/cjs/create-data-only-config.js.map +0 -1
  22. package/lib/cjs/create-maker.js +0 -321
  23. package/lib/cjs/create-maker.js.map +0 -1
  24. package/lib/cjs/create-price-oracle.js +0 -127
  25. package/lib/cjs/create-price-oracle.js.map +0 -1
  26. package/lib/cjs/create-subdao.js +0 -527
  27. package/lib/cjs/create-subdao.js.map +0 -1
  28. package/lib/cjs/distribute-hst.js +0 -94
  29. package/lib/cjs/distribute-hst.js.map +0 -1
  30. package/lib/cjs/distribute-iot-operations-fund.js +0 -120
  31. package/lib/cjs/distribute-iot-operations-fund.js.map +0 -1
  32. package/lib/cjs/ecc-gen.js +0 -17
  33. package/lib/cjs/ecc-gen.js.map +0 -1
  34. package/lib/cjs/end-epoch.js +0 -144
  35. package/lib/cjs/end-epoch.js.map +0 -1
  36. package/lib/cjs/issue-iot-operations-fund.js +0 -122
  37. package/lib/cjs/issue-iot-operations-fund.js.map +0 -1
  38. package/lib/cjs/issue-test-hotspot.js +0 -111
  39. package/lib/cjs/issue-test-hotspot.js.map +0 -1
  40. package/lib/cjs/log-coingecko-price.js +0 -32
  41. package/lib/cjs/log-coingecko-price.js.map +0 -1
  42. package/lib/cjs/log-hotspot.js +0 -103
  43. package/lib/cjs/log-hotspot.js.map +0 -1
  44. package/lib/cjs/log-router-balance.js +0 -89
  45. package/lib/cjs/log-router-balance.js.map +0 -1
  46. package/lib/cjs/log-treasury-price.js +0 -105
  47. package/lib/cjs/log-treasury-price.js.map +0 -1
  48. package/lib/cjs/mint-dc.js +0 -111
  49. package/lib/cjs/mint-dc.js.map +0 -1
  50. package/lib/cjs/repair-iot-operations-fund.js +0 -113
  51. package/lib/cjs/repair-iot-operations-fund.js.map +0 -1
  52. package/lib/cjs/reset-clockwork.js +0 -143
  53. package/lib/cjs/reset-clockwork.js.map +0 -1
  54. package/lib/cjs/reset-vsr-max-voter-record.js +0 -144
  55. package/lib/cjs/reset-vsr-max-voter-record.js.map +0 -1
  56. package/lib/cjs/reset-vsr-voting-mint.js +0 -181
  57. package/lib/cjs/reset-vsr-voting-mint.js.map +0 -1
  58. package/lib/cjs/setup-hst.js +0 -260
  59. package/lib/cjs/setup-hst.js.map +0 -1
  60. package/lib/cjs/submit-price.js +0 -159
  61. package/lib/cjs/submit-price.js.map +0 -1
  62. package/lib/cjs/sum-tokens.js +0 -84
  63. package/lib/cjs/sum-tokens.js.map +0 -1
  64. package/lib/cjs/take-snapshot.js +0 -70
  65. package/lib/cjs/take-snapshot.js.map +0 -1
  66. package/lib/cjs/update-account-circuit-breaker.js +0 -129
  67. package/lib/cjs/update-account-circuit-breaker.js.map +0 -1
  68. package/lib/cjs/update-aggregator.js +0 -115
  69. package/lib/cjs/update-aggregator.js.map +0 -1
  70. package/lib/cjs/update-dao.js +0 -156
  71. package/lib/cjs/update-dao.js.map +0 -1
  72. package/lib/cjs/update-data-credits.js +0 -127
  73. package/lib/cjs/update-data-credits.js.map +0 -1
  74. package/lib/cjs/update-delegated-dc-subdao.js +0 -135
  75. package/lib/cjs/update-delegated-dc-subdao.js.map +0 -1
  76. package/lib/cjs/update-iot-operations-fund-metadata.js +0 -123
  77. package/lib/cjs/update-iot-operations-fund-metadata.js.map +0 -1
  78. package/lib/cjs/update-lazy-distributor.js +0 -137
  79. package/lib/cjs/update-lazy-distributor.js.map +0 -1
  80. package/lib/cjs/update-lazy-transactions.js +0 -116
  81. package/lib/cjs/update-lazy-transactions.js.map +0 -1
  82. package/lib/cjs/update-mint-circuit-breaker.js +0 -131
  83. package/lib/cjs/update-mint-circuit-breaker.js.map +0 -1
  84. package/lib/cjs/update-registrar-authorities.js +0 -92
  85. package/lib/cjs/update-registrar-authorities.js.map +0 -1
  86. package/lib/cjs/update-rewardable-entity-config.js +0 -154
  87. package/lib/cjs/update-rewardable-entity-config.js.map +0 -1
  88. package/lib/cjs/update-subdao-vehnt.js +0 -294
  89. package/lib/cjs/update-subdao-vehnt.js.map +0 -1
  90. package/lib/cjs/update-subdao.js +0 -251
  91. package/lib/cjs/update-subdao.js.map +0 -1
  92. package/lib/cjs/upgrade-idl.js +0 -108
  93. package/lib/cjs/upgrade-idl.js.map +0 -1
  94. package/lib/cjs/utils.js +0 -457
  95. package/lib/cjs/utils.js.map +0 -1
  96. package/lib/esm/src/approve-carrier.js +0 -78
  97. package/lib/esm/src/approve-carrier.js.map +0 -1
  98. package/lib/esm/src/approve-program.js +0 -80
  99. package/lib/esm/src/approve-program.js.map +0 -1
  100. package/lib/esm/src/claim-rewards.js +0 -68
  101. package/lib/esm/src/claim-rewards.js.map +0 -1
  102. package/lib/esm/src/close-buffers.js +0 -90
  103. package/lib/esm/src/close-buffers.js.map +0 -1
  104. package/lib/esm/src/close-canopy.js +0 -63
  105. package/lib/esm/src/close-canopy.js.map +0 -1
  106. package/lib/esm/src/correct-router-dc.js +0 -108
  107. package/lib/esm/src/correct-router-dc.js.map +0 -1
  108. package/lib/esm/src/create-active-device-aggregator.js +0 -71
  109. package/lib/esm/src/create-active-device-aggregator.js.map +0 -1
  110. package/lib/esm/src/create-carrier.js +0 -161
  111. package/lib/esm/src/create-carrier.js.map +0 -1
  112. package/lib/esm/src/create-dao.js +0 -414
  113. package/lib/esm/src/create-dao.js.map +0 -1
  114. package/lib/esm/src/create-data-only-config.js +0 -131
  115. package/lib/esm/src/create-data-only-config.js.map +0 -1
  116. package/lib/esm/src/create-maker.js +0 -280
  117. package/lib/esm/src/create-maker.js.map +0 -1
  118. package/lib/esm/src/create-price-oracle.js +0 -86
  119. package/lib/esm/src/create-price-oracle.js.map +0 -1
  120. package/lib/esm/src/create-subdao.js +0 -486
  121. package/lib/esm/src/create-subdao.js.map +0 -1
  122. package/lib/esm/src/distribute-hst.js +0 -53
  123. package/lib/esm/src/distribute-hst.js.map +0 -1
  124. package/lib/esm/src/distribute-iot-operations-fund.js +0 -79
  125. package/lib/esm/src/distribute-iot-operations-fund.js.map +0 -1
  126. package/lib/esm/src/ecc-gen.js +0 -6
  127. package/lib/esm/src/ecc-gen.js.map +0 -1
  128. package/lib/esm/src/end-epoch.js +0 -103
  129. package/lib/esm/src/end-epoch.js.map +0 -1
  130. package/lib/esm/src/issue-iot-operations-fund.js +0 -81
  131. package/lib/esm/src/issue-iot-operations-fund.js.map +0 -1
  132. package/lib/esm/src/issue-test-hotspot.js +0 -70
  133. package/lib/esm/src/issue-test-hotspot.js.map +0 -1
  134. package/lib/esm/src/log-coingecko-price.js +0 -14
  135. package/lib/esm/src/log-coingecko-price.js.map +0 -1
  136. package/lib/esm/src/log-hotspot.js +0 -62
  137. package/lib/esm/src/log-hotspot.js.map +0 -1
  138. package/lib/esm/src/log-router-balance.js +0 -48
  139. package/lib/esm/src/log-router-balance.js.map +0 -1
  140. package/lib/esm/src/log-treasury-price.js +0 -64
  141. package/lib/esm/src/log-treasury-price.js.map +0 -1
  142. package/lib/esm/src/mint-dc.js +0 -70
  143. package/lib/esm/src/mint-dc.js.map +0 -1
  144. package/lib/esm/src/repair-iot-operations-fund.js +0 -72
  145. package/lib/esm/src/repair-iot-operations-fund.js.map +0 -1
  146. package/lib/esm/src/reset-clockwork.js +0 -102
  147. package/lib/esm/src/reset-clockwork.js.map +0 -1
  148. package/lib/esm/src/reset-vsr-max-voter-record.js +0 -103
  149. package/lib/esm/src/reset-vsr-max-voter-record.js.map +0 -1
  150. package/lib/esm/src/reset-vsr-voting-mint.js +0 -140
  151. package/lib/esm/src/reset-vsr-voting-mint.js.map +0 -1
  152. package/lib/esm/src/setup-hst.js +0 -217
  153. package/lib/esm/src/setup-hst.js.map +0 -1
  154. package/lib/esm/src/submit-price.js +0 -113
  155. package/lib/esm/src/submit-price.js.map +0 -1
  156. package/lib/esm/src/sum-tokens.js +0 -43
  157. package/lib/esm/src/sum-tokens.js.map +0 -1
  158. package/lib/esm/src/take-snapshot.js +0 -29
  159. package/lib/esm/src/take-snapshot.js.map +0 -1
  160. package/lib/esm/src/update-account-circuit-breaker.js +0 -88
  161. package/lib/esm/src/update-account-circuit-breaker.js.map +0 -1
  162. package/lib/esm/src/update-aggregator.js +0 -74
  163. package/lib/esm/src/update-aggregator.js.map +0 -1
  164. package/lib/esm/src/update-dao.js +0 -115
  165. package/lib/esm/src/update-dao.js.map +0 -1
  166. package/lib/esm/src/update-data-credits.js +0 -86
  167. package/lib/esm/src/update-data-credits.js.map +0 -1
  168. package/lib/esm/src/update-delegated-dc-subdao.js +0 -94
  169. package/lib/esm/src/update-delegated-dc-subdao.js.map +0 -1
  170. package/lib/esm/src/update-iot-operations-fund-metadata.js +0 -82
  171. package/lib/esm/src/update-iot-operations-fund-metadata.js.map +0 -1
  172. package/lib/esm/src/update-lazy-distributor.js +0 -96
  173. package/lib/esm/src/update-lazy-distributor.js.map +0 -1
  174. package/lib/esm/src/update-lazy-transactions.js +0 -75
  175. package/lib/esm/src/update-lazy-transactions.js.map +0 -1
  176. package/lib/esm/src/update-mint-circuit-breaker.js +0 -90
  177. package/lib/esm/src/update-mint-circuit-breaker.js.map +0 -1
  178. package/lib/esm/src/update-registrar-authorities.js +0 -51
  179. package/lib/esm/src/update-registrar-authorities.js.map +0 -1
  180. package/lib/esm/src/update-rewardable-entity-config.js +0 -113
  181. package/lib/esm/src/update-rewardable-entity-config.js.map +0 -1
  182. package/lib/esm/src/update-subdao-vehnt.js +0 -253
  183. package/lib/esm/src/update-subdao-vehnt.js.map +0 -1
  184. package/lib/esm/src/update-subdao.js +0 -210
  185. package/lib/esm/src/update-subdao.js.map +0 -1
  186. package/lib/esm/src/upgrade-idl.js +0 -67
  187. package/lib/esm/src/upgrade-idl.js.map +0 -1
  188. package/lib/esm/src/utils.js +0 -392
  189. package/lib/esm/src/utils.js.map +0 -1
  190. package/lib/esm/tsconfig.esm.tsbuildinfo +0 -1
  191. package/lib/types/src/approve-carrier.d.ts +0 -2
  192. package/lib/types/src/approve-carrier.d.ts.map +0 -1
  193. package/lib/types/src/approve-program.d.ts +0 -2
  194. package/lib/types/src/approve-program.d.ts.map +0 -1
  195. package/lib/types/src/claim-rewards.d.ts +0 -2
  196. package/lib/types/src/claim-rewards.d.ts.map +0 -1
  197. package/lib/types/src/close-buffers.d.ts +0 -2
  198. package/lib/types/src/close-buffers.d.ts.map +0 -1
  199. package/lib/types/src/close-canopy.d.ts +0 -2
  200. package/lib/types/src/close-canopy.d.ts.map +0 -1
  201. package/lib/types/src/correct-router-dc.d.ts +0 -2
  202. package/lib/types/src/correct-router-dc.d.ts.map +0 -1
  203. package/lib/types/src/create-active-device-aggregator.d.ts +0 -2
  204. package/lib/types/src/create-active-device-aggregator.d.ts.map +0 -1
  205. package/lib/types/src/create-carrier.d.ts +0 -2
  206. package/lib/types/src/create-carrier.d.ts.map +0 -1
  207. package/lib/types/src/create-dao.d.ts +0 -2
  208. package/lib/types/src/create-dao.d.ts.map +0 -1
  209. package/lib/types/src/create-data-only-config.d.ts +0 -2
  210. package/lib/types/src/create-data-only-config.d.ts.map +0 -1
  211. package/lib/types/src/create-maker.d.ts +0 -2
  212. package/lib/types/src/create-maker.d.ts.map +0 -1
  213. package/lib/types/src/create-price-oracle.d.ts +0 -2
  214. package/lib/types/src/create-price-oracle.d.ts.map +0 -1
  215. package/lib/types/src/create-subdao.d.ts +0 -2
  216. package/lib/types/src/create-subdao.d.ts.map +0 -1
  217. package/lib/types/src/distribute-hst.d.ts +0 -2
  218. package/lib/types/src/distribute-hst.d.ts.map +0 -1
  219. package/lib/types/src/distribute-iot-operations-fund.d.ts +0 -2
  220. package/lib/types/src/distribute-iot-operations-fund.d.ts.map +0 -1
  221. package/lib/types/src/ecc-gen.d.ts +0 -2
  222. package/lib/types/src/ecc-gen.d.ts.map +0 -1
  223. package/lib/types/src/end-epoch.d.ts +0 -2
  224. package/lib/types/src/end-epoch.d.ts.map +0 -1
  225. package/lib/types/src/issue-iot-operations-fund.d.ts +0 -2
  226. package/lib/types/src/issue-iot-operations-fund.d.ts.map +0 -1
  227. package/lib/types/src/issue-test-hotspot.d.ts +0 -2
  228. package/lib/types/src/issue-test-hotspot.d.ts.map +0 -1
  229. package/lib/types/src/log-coingecko-price.d.ts +0 -2
  230. package/lib/types/src/log-coingecko-price.d.ts.map +0 -1
  231. package/lib/types/src/log-hotspot.d.ts +0 -2
  232. package/lib/types/src/log-hotspot.d.ts.map +0 -1
  233. package/lib/types/src/log-router-balance.d.ts +0 -2
  234. package/lib/types/src/log-router-balance.d.ts.map +0 -1
  235. package/lib/types/src/log-treasury-price.d.ts +0 -2
  236. package/lib/types/src/log-treasury-price.d.ts.map +0 -1
  237. package/lib/types/src/mint-dc.d.ts +0 -2
  238. package/lib/types/src/mint-dc.d.ts.map +0 -1
  239. package/lib/types/src/repair-iot-operations-fund.d.ts +0 -2
  240. package/lib/types/src/repair-iot-operations-fund.d.ts.map +0 -1
  241. package/lib/types/src/reset-clockwork.d.ts +0 -2
  242. package/lib/types/src/reset-clockwork.d.ts.map +0 -1
  243. package/lib/types/src/reset-vsr-max-voter-record.d.ts +0 -2
  244. package/lib/types/src/reset-vsr-max-voter-record.d.ts.map +0 -1
  245. package/lib/types/src/reset-vsr-voting-mint.d.ts +0 -2
  246. package/lib/types/src/reset-vsr-voting-mint.d.ts.map +0 -1
  247. package/lib/types/src/setup-hst.d.ts +0 -4
  248. package/lib/types/src/setup-hst.d.ts.map +0 -1
  249. package/lib/types/src/submit-price.d.ts +0 -3
  250. package/lib/types/src/submit-price.d.ts.map +0 -1
  251. package/lib/types/src/sum-tokens.d.ts +0 -2
  252. package/lib/types/src/sum-tokens.d.ts.map +0 -1
  253. package/lib/types/src/take-snapshot.d.ts +0 -2
  254. package/lib/types/src/take-snapshot.d.ts.map +0 -1
  255. package/lib/types/src/update-account-circuit-breaker.d.ts +0 -2
  256. package/lib/types/src/update-account-circuit-breaker.d.ts.map +0 -1
  257. package/lib/types/src/update-aggregator.d.ts +0 -2
  258. package/lib/types/src/update-aggregator.d.ts.map +0 -1
  259. package/lib/types/src/update-dao.d.ts +0 -2
  260. package/lib/types/src/update-dao.d.ts.map +0 -1
  261. package/lib/types/src/update-data-credits.d.ts +0 -2
  262. package/lib/types/src/update-data-credits.d.ts.map +0 -1
  263. package/lib/types/src/update-delegated-dc-subdao.d.ts +0 -2
  264. package/lib/types/src/update-delegated-dc-subdao.d.ts.map +0 -1
  265. package/lib/types/src/update-iot-operations-fund-metadata.d.ts +0 -2
  266. package/lib/types/src/update-iot-operations-fund-metadata.d.ts.map +0 -1
  267. package/lib/types/src/update-lazy-distributor.d.ts +0 -2
  268. package/lib/types/src/update-lazy-distributor.d.ts.map +0 -1
  269. package/lib/types/src/update-lazy-transactions.d.ts +0 -2
  270. package/lib/types/src/update-lazy-transactions.d.ts.map +0 -1
  271. package/lib/types/src/update-mint-circuit-breaker.d.ts +0 -2
  272. package/lib/types/src/update-mint-circuit-breaker.d.ts.map +0 -1
  273. package/lib/types/src/update-registrar-authorities.d.ts +0 -2
  274. package/lib/types/src/update-registrar-authorities.d.ts.map +0 -1
  275. package/lib/types/src/update-rewardable-entity-config.d.ts +0 -2
  276. package/lib/types/src/update-rewardable-entity-config.d.ts.map +0 -1
  277. package/lib/types/src/update-subdao-vehnt.d.ts +0 -2
  278. package/lib/types/src/update-subdao-vehnt.d.ts.map +0 -1
  279. package/lib/types/src/update-subdao.d.ts +0 -2
  280. package/lib/types/src/update-subdao.d.ts.map +0 -1
  281. package/lib/types/src/upgrade-idl.d.ts +0 -2
  282. package/lib/types/src/upgrade-idl.d.ts.map +0 -1
  283. package/lib/types/src/utils.d.ts +0 -59
  284. package/lib/types/src/utils.d.ts.map +0 -1
@@ -1,457 +0,0 @@
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 circuit_breaker_sdk_1 = require("@helium/circuit-breaker-sdk");
41
- const data_credits_sdk_1 = require("@helium/data-credits-sdk");
42
- const helium_entity_manager_sdk_1 = require("@helium/helium-entity-manager-sdk");
43
- const fanout_sdk_1 = require("@helium/fanout-sdk");
44
- const helium_sub_daos_sdk_1 = require("@helium/helium-sub-daos-sdk");
45
- const spl_utils_1 = require("@helium/spl-utils");
46
- const voter_stake_registry_sdk_1 = require("@helium/voter-stake-registry-sdk");
47
- const spl_governance_1 = require("@solana/spl-governance");
48
- const spl_token_1 = require("@solana/spl-token");
49
- const web3_js_1 = require("@solana/web3.js");
50
- const sdk_1 = __importDefault(require("@sqds/sdk"));
51
- const os_1 = __importDefault(require("os"));
52
- const yargs_1 = __importDefault(require("yargs/yargs"));
53
- const utils_1 = require("./utils");
54
- const fs_1 = __importDefault(require("fs"));
55
- const bn_js_1 = require("bn.js");
56
- const spl_account_compression_1 = require("@solana/spl-account-compression");
57
- const { hideBin } = require("yargs/helpers");
58
- const HNT_EPOCH_REWARDS = 10000000000;
59
- const SECS_PER_DAY = 86400;
60
- const SECS_PER_YEAR = 365 * SECS_PER_DAY;
61
- const MAX_LOCKUP = 4 * SECS_PER_YEAR;
62
- const BASELINE = 0;
63
- const SCALE = 100;
64
- const GENESIS_MULTIPLIER = 3;
65
- function exists(connection, account) {
66
- return __awaiter(this, void 0, void 0, function* () {
67
- return Boolean(yield connection.getAccountInfo(account));
68
- });
69
- }
70
- function run(args = process.argv) {
71
- return __awaiter(this, void 0, void 0, function* () {
72
- const yarg = (0, yargs_1.default)(args).options({
73
- wallet: {
74
- alias: "k",
75
- describe: "Anchor wallet keypair",
76
- default: `${os_1.default.homedir()}/.config/solana/id.json`,
77
- },
78
- url: {
79
- alias: "u",
80
- default: "http://127.0.0.1:8899",
81
- describe: "The solana url",
82
- },
83
- hntKeypair: {
84
- type: "string",
85
- describe: "Keypair of the HNT token",
86
- default: `${__dirname}/../../keypairs/hnt.json`,
87
- },
88
- dcKeypair: {
89
- type: "string",
90
- describe: "Keypair of the Data Credit token",
91
- default: `${__dirname}/../../keypairs/dc.json`,
92
- },
93
- numHnt: {
94
- type: "number",
95
- describe: "Number of HNT tokens to pre mint before assigning authority to lazy distributor",
96
- default: 0,
97
- },
98
- numDc: {
99
- type: "number",
100
- describe: "Number of DC tokens to pre mint before assigning authority to lazy distributor",
101
- default: 1000,
102
- },
103
- bucket: {
104
- type: "string",
105
- describe: "Bucket URL prefix holding all of the metadata jsons",
106
- default: "https://shdw-drive.genesysgo.net/6tcnBSybPG7piEDShBcrVtYJDPSvGrDbVvXmXKpzBvWP",
107
- },
108
- emissionSchedulePath: {
109
- required: true,
110
- describe: "Path to file that contains the hnt emissions schedule",
111
- type: "string",
112
- default: `${__dirname}/../../emissions/hnt.json`,
113
- },
114
- hstEmissionSchedulePath: {
115
- required: true,
116
- describe: "Path to file that contains the hst emissions schedule",
117
- type: "string",
118
- default: `${__dirname}/../../emissions/hst.json`,
119
- },
120
- govProgramId: {
121
- type: "string",
122
- describe: "Pubkey of the GOV program",
123
- default: "hgovkRU6Ghe1Qoyb54HdSLdqN7VtxaifBzRmh9jtd3S",
124
- },
125
- realmName: {
126
- type: "string",
127
- describe: "Name of the realm to be generated",
128
- default: "Helium",
129
- },
130
- councilKeypair: {
131
- type: "string",
132
- describe: "Keypair of gov council token",
133
- default: `${__dirname}/../../keypairs/council.json`,
134
- },
135
- councilWallet: {
136
- type: "string",
137
- describe: "Pubkey for holding/distributing council tokens",
138
- default: yield (0, utils_1.loadKeypair)(`${os_1.default.homedir()}/.config/solana/id.json`).publicKey.toBase58(),
139
- },
140
- numCouncil: {
141
- type: "number",
142
- describe: "Number of Gov Council tokens to pre mint before assigning authority to dao",
143
- default: 10,
144
- },
145
- multisig: {
146
- type: "string",
147
- describe: "Address of the squads multisig to control the dao. If not provided, your wallet will be the authority",
148
- },
149
- authorityIndex: {
150
- type: "number",
151
- describe: "Authority index for squads. Defaults to 1",
152
- default: 1,
153
- },
154
- hntPriceOracle: {
155
- type: "string",
156
- required: true
157
- },
158
- numHst: {
159
- type: "number",
160
- describe: "Number of HST tokens to pre mint before assigning authority to lazy distributor",
161
- default: 0,
162
- },
163
- merklePath: {
164
- type: "string",
165
- describe: "Path to the merkle keypair",
166
- default: `${__dirname}/../../keypairs/data-only-merkle.json`,
167
- }
168
- });
169
- const argv = yield yarg.argv;
170
- process.env.ANCHOR_WALLET = argv.wallet;
171
- process.env.ANCHOR_PROVIDER_URL = argv.url;
172
- anchor.setProvider(anchor.AnchorProvider.local(argv.url));
173
- const provider = anchor.getProvider();
174
- const dataCreditsProgram = yield (0, data_credits_sdk_1.init)(provider);
175
- const heliumSubDaosProgram = yield (0, helium_sub_daos_sdk_1.init)(provider);
176
- const heliumVsrProgram = yield (0, voter_stake_registry_sdk_1.init)(provider);
177
- const hemProgram = yield (0, helium_entity_manager_sdk_1.init)(provider);
178
- const govProgramId = new web3_js_1.PublicKey(argv.govProgramId);
179
- const councilKeypair = yield (0, utils_1.loadKeypair)(argv.councilKeypair);
180
- const councilWallet = new web3_js_1.PublicKey(argv.councilWallet);
181
- const hntKeypair = (0, utils_1.loadKeypair)(argv.hntKeypair);
182
- const dcKeypair = (0, utils_1.loadKeypair)(argv.dcKeypair);
183
- const me = provider.wallet.publicKey;
184
- const dao = (0, helium_sub_daos_sdk_1.daoKey)(hntKeypair.publicKey)[0];
185
- console.log("HNT", hntKeypair.publicKey.toBase58());
186
- console.log("DC", dcKeypair.publicKey.toBase58());
187
- console.log("GOV PID", govProgramId.toBase58());
188
- console.log("COUNCIL", councilKeypair.publicKey.toBase58());
189
- console.log("COUNCIL WALLET", councilWallet.toBase58());
190
- const thread = (0, helium_sub_daos_sdk_1.threadKey)(dao, "issue_hst")[0];
191
- console.log("DAO", dao.toString());
192
- console.log("THREAD", thread.toString());
193
- const conn = provider.connection;
194
- const squads = sdk_1.default.endpoint(process.env.ANCHOR_PROVIDER_URL, provider.wallet, {
195
- commitmentOrConfig: "finalized"
196
- });
197
- let authority = provider.wallet.publicKey;
198
- let multisig = argv.multisig ? new web3_js_1.PublicKey(argv.multisig) : null;
199
- if (multisig) {
200
- authority = squads.getAuthorityPDA(multisig, argv.authorityIndex);
201
- // Fund authority
202
- const authAcc = yield provider.connection.getAccountInfo(authority);
203
- if (!authAcc || authAcc.lamports < web3_js_1.LAMPORTS_PER_SOL) {
204
- console.log("Funding multisig...");
205
- yield (0, spl_utils_1.sendInstructions)(provider, [
206
- yield web3_js_1.SystemProgram.transfer({
207
- fromPubkey: me,
208
- toPubkey: authority,
209
- lamports: web3_js_1.LAMPORTS_PER_SOL,
210
- }),
211
- ]);
212
- }
213
- }
214
- yield (0, utils_1.createAndMint)({
215
- provider,
216
- mintKeypair: hntKeypair,
217
- amount: argv.numHnt,
218
- metadataUrl: `${argv.bucket}/hnt.json`,
219
- updateAuthority: authority
220
- });
221
- yield (0, utils_1.createAndMint)({
222
- provider,
223
- mintKeypair: dcKeypair,
224
- amount: argv.numDc,
225
- decimals: 0,
226
- metadataUrl: `${argv.bucket}/dc.json`,
227
- updateAuthority: authority,
228
- });
229
- yield (0, utils_1.createAndMint)({
230
- provider,
231
- mintKeypair: councilKeypair,
232
- amount: argv.numCouncil,
233
- decimals: 0,
234
- metadataUrl: `${argv.bucket}/council.json`,
235
- to: councilWallet,
236
- updateAuthority: authority,
237
- });
238
- let instructions = [];
239
- const govProgramVersion = yield (0, spl_governance_1.getGovernanceProgramVersion)(conn, govProgramId, (0, utils_1.isLocalhost)(provider) ? "localnet" : undefined);
240
- const realmName = argv.realmName;
241
- const realm = yield web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("governance", "utf-8"), Buffer.from(realmName, "utf-8")], govProgramId)[0];
242
- console.log("Realm, ", realm.toBase58());
243
- const needRealmCreate = !(yield exists(conn, realm));
244
- if (needRealmCreate) {
245
- console.log("Initializing Realm");
246
- yield (0, spl_governance_1.withCreateRealm)(instructions, govProgramId, govProgramVersion, realmName, provider.wallet.publicKey, // realmAuthorityPk
247
- hntKeypair.publicKey, // communityMintPk
248
- provider.wallet.publicKey, // payer
249
- councilKeypair.publicKey, // councilMintPk
250
- spl_governance_1.MintMaxVoteWeightSource.FULL_SUPPLY_FRACTION, new anchor.BN(1000000000000000), // 10mm vehnt to create governance. Council should be the only one doing this
251
- new spl_governance_1.GoverningTokenConfigAccountArgs({
252
- // community token config
253
- voterWeightAddin: heliumVsrProgram.programId,
254
- maxVoterWeightAddin: heliumVsrProgram.programId,
255
- tokenType: spl_governance_1.GoverningTokenType.Liquid,
256
- }), new spl_governance_1.GoverningTokenConfigAccountArgs({
257
- // council token config
258
- voterWeightAddin: undefined,
259
- maxVoterWeightAddin: undefined,
260
- tokenType: spl_governance_1.GoverningTokenType.Liquid,
261
- }));
262
- yield (0, spl_utils_1.sendInstructions)(provider, instructions, []);
263
- instructions = [];
264
- }
265
- const registrar = (yield (0, voter_stake_registry_sdk_1.registrarKey)(realm, hntKeypair.publicKey))[0];
266
- if (!(yield exists(conn, registrar))) {
267
- console.log("Initializing VSR Registrar");
268
- instructions.push(web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 800000 }));
269
- instructions.push(yield heliumVsrProgram.methods
270
- .initializeRegistrarV0({
271
- positionUpdateAuthority: (yield (0, helium_sub_daos_sdk_1.daoKey)(hntKeypair.publicKey))[0],
272
- })
273
- .accounts({
274
- realm,
275
- realmGoverningTokenMint: hntKeypair.publicKey,
276
- })
277
- .instruction());
278
- yield (0, spl_utils_1.sendInstructions)(provider, instructions, []);
279
- instructions = [];
280
- }
281
- console.log("Configuring VSR voting mint at [0]");
282
- instructions.push(yield heliumVsrProgram.methods
283
- .configureVotingMintV0({
284
- idx: 0,
285
- digitShift: 0,
286
- baselineVoteWeightScaledFactor: new anchor.BN(BASELINE * 1e9),
287
- maxExtraLockupVoteWeightScaledFactor: new anchor.BN(SCALE * 1e9),
288
- genesisVotePowerMultiplier: GENESIS_MULTIPLIER,
289
- // April 28th, 23:59:59 UTC
290
- genesisVotePowerMultiplierExpirationTs: new anchor.BN("1682726399"),
291
- lockupSaturationSecs: new anchor.BN(MAX_LOCKUP),
292
- })
293
- .accounts({
294
- registrar,
295
- mint: hntKeypair.publicKey,
296
- })
297
- .remainingAccounts([
298
- {
299
- pubkey: hntKeypair.publicKey,
300
- isSigner: false,
301
- isWritable: false,
302
- },
303
- ])
304
- .instruction());
305
- yield (0, spl_utils_1.sendInstructions)(provider, instructions, []);
306
- instructions = [];
307
- console.log("Creating max voter record");
308
- instructions.push(yield heliumVsrProgram.methods
309
- .updateMaxVoterWeightV0()
310
- .accounts({
311
- registrar,
312
- realmGoverningTokenMint: hntKeypair.publicKey,
313
- })
314
- .instruction());
315
- console.log(registrar.toString());
316
- yield (0, spl_utils_1.sendInstructions)(provider, instructions, []);
317
- instructions = [];
318
- if (needRealmCreate && !authority.equals(me)) {
319
- (0, spl_governance_1.withSetRealmAuthority)(instructions, govProgramId, govProgramVersion, realm, provider.wallet.publicKey, authority, spl_governance_1.SetRealmAuthorityAction.SetUnchecked);
320
- }
321
- yield (0, spl_utils_1.sendInstructions)(provider, instructions, []);
322
- instructions = [];
323
- const dcKey = (yield (0, data_credits_sdk_1.dataCreditsKey)(dcKeypair.publicKey))[0];
324
- console.log("dcpid", data_credits_sdk_1.PROGRAM_ID.toBase58());
325
- if (!(yield exists(conn, dcKey))) {
326
- yield dataCreditsProgram.methods
327
- .initializeDataCreditsV0({
328
- authority,
329
- config: {
330
- windowSizeSeconds: new anchor.BN(60 * 60),
331
- thresholdType: circuit_breaker_sdk_1.ThresholdType.Absolute,
332
- threshold: new anchor.BN("1000000000000"),
333
- },
334
- })
335
- .accounts({
336
- hntMint: hntKeypair.publicKey,
337
- dcMint: dcKeypair.publicKey,
338
- hntPriceOracle: new web3_js_1.PublicKey(argv.hntPriceOracle),
339
- })
340
- .rpc({ skipPreflight: true });
341
- let tx = new web3_js_1.Transaction();
342
- tx.add(web3_js_1.SystemProgram.transfer({
343
- fromPubkey: provider.wallet.publicKey,
344
- toPubkey: (0, data_credits_sdk_1.accountPayerKey)()[0],
345
- lamports: 5 * web3_js_1.LAMPORTS_PER_SOL,
346
- }));
347
- tx.recentBlockhash = (yield provider.connection.getLatestBlockhash()).blockhash;
348
- tx.feePayer = provider.wallet.publicKey;
349
- yield provider.sendAndConfirm(tx);
350
- }
351
- if (!(yield exists(conn, dao))) {
352
- console.log("Initializing DAO");
353
- const hstEmission = yield (0, utils_1.parseEmissionsSchedule)(argv.hstEmissionSchedulePath);
354
- const hntEmission = yield (0, utils_1.parseEmissionsSchedule)(argv.emissionSchedulePath);
355
- const currentHstEmission = hstEmission[0];
356
- const currentHntEmission = hntEmission[0];
357
- const fanout = (0, fanout_sdk_1.fanoutKey)("HST")[0];
358
- const hstPool = (0, spl_token_1.getAssociatedTokenAddressSync)(hntKeypair.publicKey, fanout, true);
359
- yield heliumSubDaosProgram.methods
360
- .initializeDaoV0({
361
- registrar: registrar,
362
- authority,
363
- netEmissionsCap: (0, spl_utils_1.toBN)(34.24, 8),
364
- // Tx too large to do in initialize dao, so do it with update
365
- hstEmissionSchedule: [currentHstEmission],
366
- emissionSchedule: [currentHntEmission],
367
- })
368
- .preInstructions([
369
- (0, spl_token_1.createAssociatedTokenAccountIdempotentInstruction)(provider.wallet.publicKey, hstPool, fanout, hntKeypair.publicKey),
370
- ])
371
- .accounts({
372
- dcMint: dcKeypair.publicKey,
373
- hntMint: hntKeypair.publicKey,
374
- thread,
375
- hstPool,
376
- })
377
- .rpc({ skipPreflight: true });
378
- yield (0, utils_1.sendInstructionsOrSquads)({
379
- provider,
380
- instructions: [
381
- yield heliumSubDaosProgram.methods
382
- .updateDaoV0({
383
- authority,
384
- emissionSchedule: hntEmission,
385
- hstEmissionSchedule: hstEmission,
386
- hstPool: null,
387
- netEmissionsCap: null,
388
- })
389
- .accounts({
390
- dao,
391
- authority: authority,
392
- })
393
- .instruction(),
394
- ],
395
- executeTransaction: true,
396
- squads,
397
- multisig: argv.multisig ? new web3_js_1.PublicKey(argv.multisig) : undefined,
398
- authorityIndex: argv.authorityIndex,
399
- signers: [],
400
- });
401
- }
402
- if (!(yield exists(conn, (0, helium_entity_manager_sdk_1.dataOnlyConfigKey)(dao)[0]))) {
403
- console.log(`Initializing DataOnly Config`);
404
- let merkle;
405
- if (fs_1.default.existsSync(argv.merklePath)) {
406
- merkle = (0, utils_1.loadKeypair)(argv.merklePath);
407
- }
408
- else {
409
- merkle = web3_js_1.Keypair.generate();
410
- fs_1.default.writeFileSync(argv.merklePath, JSON.stringify(Array.from(merkle.secretKey)));
411
- }
412
- const [size, buffer, canopy] = [14, 64, 11];
413
- const space = (0, spl_account_compression_1.getConcurrentMerkleTreeAccountSize)(size, buffer, canopy);
414
- const cost = yield provider.connection.getMinimumBalanceForRentExemption(space);
415
- if (!(yield exists(conn, merkle.publicKey))) {
416
- yield (0, spl_utils_1.sendInstructions)(provider, [
417
- web3_js_1.SystemProgram.createAccount({
418
- fromPubkey: provider.wallet.publicKey,
419
- newAccountPubkey: merkle.publicKey,
420
- lamports: cost,
421
- space: space,
422
- programId: spl_account_compression_1.SPL_ACCOUNT_COMPRESSION_PROGRAM_ID,
423
- }),
424
- ], [merkle]);
425
- }
426
- yield (0, utils_1.sendInstructionsOrSquads)({
427
- provider,
428
- instructions: [
429
- web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 400000 }),
430
- yield hemProgram.methods
431
- .initializeDataOnlyV0({
432
- authority,
433
- newTreeDepth: size,
434
- newTreeBufferSize: buffer,
435
- newTreeSpace: new bn_js_1.BN((0, spl_account_compression_1.getConcurrentMerkleTreeAccountSize)(size, buffer, canopy)),
436
- newTreeFeeLamports: new bn_js_1.BN(cost / 2 ** size),
437
- name: "DATAONLY",
438
- metadataUrl: "https://shdw-drive.genesysgo.net/H8b1gZmA2aBqDYxicxawGpznCaNbFSEJ3YnJuawGQ2EQ/data-only.json",
439
- })
440
- .accounts({
441
- dao,
442
- authority,
443
- merkleTree: merkle.publicKey,
444
- })
445
- .instruction()
446
- ],
447
- executeTransaction: false,
448
- squads,
449
- multisig: argv.multisig ? new web3_js_1.PublicKey(argv.multisig) : undefined,
450
- authorityIndex: argv.authorityIndex,
451
- signers: [],
452
- });
453
- }
454
- });
455
- }
456
- exports.run = run;
457
- //# sourceMappingURL=create-dao.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-dao.js","sourceRoot":"","sources":["../../src/create-dao.ts"],"names":[],"mappings":"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"}
@@ -1,174 +0,0 @@
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 spl_utils_1 = require("@helium/spl-utils");
42
- const helium_sub_daos_sdk_1 = require("@helium/helium-sub-daos-sdk");
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
- const fs_1 = __importDefault(require("fs"));
49
- const bn_js_1 = require("bn.js");
50
- const spl_account_compression_1 = require("@solana/spl-account-compression");
51
- function exists(connection, account) {
52
- return __awaiter(this, void 0, void 0, function* () {
53
- return Boolean(yield connection.getAccountInfo(account));
54
- });
55
- }
56
- function run(args = process.argv) {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- const yarg = (0, yargs_1.default)(args).options({
59
- wallet: {
60
- alias: "k",
61
- describe: "Anchor wallet keypair",
62
- default: `${os_1.default.homedir()}/.config/solana/id.json`,
63
- },
64
- url: {
65
- alias: "u",
66
- default: "http://127.0.0.1:8899",
67
- describe: "The solana url",
68
- },
69
- hntMint: {
70
- type: "string",
71
- describe: "HNT token mint",
72
- default: spl_utils_1.HNT_MINT.toString(),
73
- },
74
- multisig: {
75
- type: "string",
76
- describe: "Address of the squads multisig to control the dao. If not provided, your wallet will be the authority",
77
- },
78
- authorityIndex: {
79
- type: "number",
80
- describe: "Authority index for squads. Defaults to 1",
81
- default: 1,
82
- },
83
- merklePath: {
84
- type: "string",
85
- describe: "Path to the merkle keypair",
86
- default: `${__dirname}/../../keypairs/data-only-merkle.json`,
87
- }
88
- });
89
- const argv = yield yarg.argv;
90
- process.env.ANCHOR_WALLET = argv.wallet;
91
- process.env.ANCHOR_PROVIDER_URL = argv.url;
92
- anchor.setProvider(anchor.AnchorProvider.local(argv.url));
93
- const provider = anchor.getProvider();
94
- const hemProgram = yield (0, helium_entity_manager_sdk_1.init)(provider);
95
- const hntMint = new web3_js_1.PublicKey(argv.hntMint);
96
- const dao = (0, helium_sub_daos_sdk_1.daoKey)(hntMint)[0];
97
- const squads = sdk_1.default.endpoint(process.env.ANCHOR_PROVIDER_URL, provider.wallet, {
98
- commitmentOrConfig: "finalized"
99
- });
100
- let authority = provider.wallet.publicKey;
101
- let multisig = argv.multisig ? new web3_js_1.PublicKey(argv.multisig) : null;
102
- if (multisig) {
103
- authority = squads.getAuthorityPDA(multisig, argv.authorityIndex);
104
- // Fund authority
105
- const authAcc = yield provider.connection.getAccountInfo(authority);
106
- if (!authAcc || authAcc.lamports < web3_js_1.LAMPORTS_PER_SOL) {
107
- console.log("Funding multisig...");
108
- yield (0, spl_utils_1.sendInstructions)(provider, [
109
- web3_js_1.SystemProgram.transfer({
110
- fromPubkey: provider.wallet.publicKey,
111
- toPubkey: authority,
112
- lamports: web3_js_1.LAMPORTS_PER_SOL,
113
- }),
114
- ]);
115
- }
116
- }
117
- if (yield exists(provider.connection, (0, helium_entity_manager_sdk_1.dataOnlyConfigKey)(dao)[0])) {
118
- console.log("DataOnly Config already exists");
119
- return;
120
- }
121
- console.log(`Initializing DataOnly Config`);
122
- let merkle;
123
- if (fs_1.default.existsSync(argv.merklePath)) {
124
- merkle = (0, utils_1.loadKeypair)(argv.merklePath);
125
- }
126
- else {
127
- merkle = web3_js_1.Keypair.generate();
128
- fs_1.default.writeFileSync(argv.merklePath, JSON.stringify(Array.from(merkle.secretKey)));
129
- }
130
- const [size, buffer, canopy] = [14, 64, 11];
131
- const space = (0, spl_account_compression_1.getConcurrentMerkleTreeAccountSize)(size, buffer, canopy);
132
- const cost = yield provider.connection.getMinimumBalanceForRentExemption(space);
133
- if (!(yield exists(provider.connection, merkle.publicKey))) {
134
- yield (0, spl_utils_1.sendInstructions)(provider, [
135
- web3_js_1.SystemProgram.createAccount({
136
- fromPubkey: provider.wallet.publicKey,
137
- newAccountPubkey: merkle.publicKey,
138
- lamports: cost,
139
- space: space,
140
- programId: spl_account_compression_1.SPL_ACCOUNT_COMPRESSION_PROGRAM_ID,
141
- }),
142
- ], [merkle]);
143
- }
144
- yield (0, utils_1.sendInstructionsOrSquads)({
145
- provider,
146
- instructions: [
147
- web3_js_1.ComputeBudgetProgram.setComputeUnitLimit({ units: 400000 }),
148
- yield hemProgram.methods
149
- .initializeDataOnlyV0({
150
- authority,
151
- newTreeDepth: size,
152
- newTreeBufferSize: buffer,
153
- newTreeSpace: new bn_js_1.BN((0, spl_account_compression_1.getConcurrentMerkleTreeAccountSize)(size, buffer, canopy)),
154
- newTreeFeeLamports: new bn_js_1.BN(cost / 2 ** size),
155
- name: "DATAONLY",
156
- metadataUrl: "https://shdw-drive.genesysgo.net/H8b1gZmA2aBqDYxicxawGpznCaNbFSEJ3YnJuawGQ2EQ/data-only.json",
157
- })
158
- .accounts({
159
- dao,
160
- authority,
161
- merkleTree: merkle.publicKey,
162
- })
163
- .instruction()
164
- ],
165
- executeTransaction: false,
166
- squads,
167
- multisig: argv.multisig ? new web3_js_1.PublicKey(argv.multisig) : undefined,
168
- authorityIndex: argv.authorityIndex,
169
- signers: [],
170
- });
171
- });
172
- }
173
- exports.run = run;
174
- //# sourceMappingURL=create-data-only-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-data-only-config.js","sourceRoot":"","sources":["../../src/create-data-only-config.ts"],"names":[],"mappings":"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"}