@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.
Files changed (290) hide show
  1. package/lib/cjs/approve-carrier.js +120 -0
  2. package/lib/cjs/approve-carrier.js.map +1 -0
  3. package/lib/cjs/approve-program.js +122 -0
  4. package/lib/cjs/approve-program.js.map +1 -0
  5. package/lib/cjs/claim-rewards.js +109 -0
  6. package/lib/cjs/claim-rewards.js.map +1 -0
  7. package/lib/cjs/close-buffers.js +132 -0
  8. package/lib/cjs/close-buffers.js.map +1 -0
  9. package/lib/cjs/close-canopy.js +108 -0
  10. package/lib/cjs/close-canopy.js.map +1 -0
  11. package/lib/cjs/close-lazy-transaction-markers.js +108 -0
  12. package/lib/cjs/close-lazy-transaction-markers.js.map +1 -0
  13. package/lib/cjs/correct-router-dc.js +149 -0
  14. package/lib/cjs/correct-router-dc.js.map +1 -0
  15. package/lib/cjs/create-active-device-aggregator.js +112 -0
  16. package/lib/cjs/create-active-device-aggregator.js.map +1 -0
  17. package/lib/cjs/create-carrier.js +202 -0
  18. package/lib/cjs/create-carrier.js.map +1 -0
  19. package/lib/cjs/create-dao.js +458 -0
  20. package/lib/cjs/create-dao.js.map +1 -0
  21. package/lib/cjs/create-data-only-config.js +175 -0
  22. package/lib/cjs/create-data-only-config.js.map +1 -0
  23. package/lib/cjs/create-maker.js +323 -0
  24. package/lib/cjs/create-maker.js.map +1 -0
  25. package/lib/cjs/create-price-oracle.js +133 -0
  26. package/lib/cjs/create-price-oracle.js.map +1 -0
  27. package/lib/cjs/create-subdao.js +531 -0
  28. package/lib/cjs/create-subdao.js.map +1 -0
  29. package/lib/cjs/distribute-hst.js +94 -0
  30. package/lib/cjs/distribute-hst.js.map +1 -0
  31. package/lib/cjs/distribute-iot-operations-fund.js +120 -0
  32. package/lib/cjs/distribute-iot-operations-fund.js.map +1 -0
  33. package/lib/cjs/ecc-gen.js +17 -0
  34. package/lib/cjs/ecc-gen.js.map +1 -0
  35. package/lib/cjs/end-epoch.js +144 -0
  36. package/lib/cjs/end-epoch.js.map +1 -0
  37. package/lib/cjs/issue-iot-operations-fund.js +123 -0
  38. package/lib/cjs/issue-iot-operations-fund.js.map +1 -0
  39. package/lib/cjs/issue-test-hotspot.js +111 -0
  40. package/lib/cjs/issue-test-hotspot.js.map +1 -0
  41. package/lib/cjs/log-coingecko-price.js +32 -0
  42. package/lib/cjs/log-coingecko-price.js.map +1 -0
  43. package/lib/cjs/log-hotspot.js +103 -0
  44. package/lib/cjs/log-hotspot.js.map +1 -0
  45. package/lib/cjs/log-router-balance.js +89 -0
  46. package/lib/cjs/log-router-balance.js.map +1 -0
  47. package/lib/cjs/log-treasury-price.js +105 -0
  48. package/lib/cjs/log-treasury-price.js.map +1 -0
  49. package/lib/cjs/mint-dc.js +111 -0
  50. package/lib/cjs/mint-dc.js.map +1 -0
  51. package/lib/cjs/repair-iot-operations-fund.js +114 -0
  52. package/lib/cjs/repair-iot-operations-fund.js.map +1 -0
  53. package/lib/cjs/reset-clockwork.js +144 -0
  54. package/lib/cjs/reset-clockwork.js.map +1 -0
  55. package/lib/cjs/reset-vsr-max-voter-record.js +145 -0
  56. package/lib/cjs/reset-vsr-max-voter-record.js.map +1 -0
  57. package/lib/cjs/reset-vsr-voting-mint.js +182 -0
  58. package/lib/cjs/reset-vsr-voting-mint.js.map +1 -0
  59. package/lib/cjs/setup-hst.js +261 -0
  60. package/lib/cjs/setup-hst.js.map +1 -0
  61. package/lib/cjs/submit-price.js +159 -0
  62. package/lib/cjs/submit-price.js.map +1 -0
  63. package/lib/cjs/sum-tokens.js +84 -0
  64. package/lib/cjs/sum-tokens.js.map +1 -0
  65. package/lib/cjs/take-snapshot.js +70 -0
  66. package/lib/cjs/take-snapshot.js.map +1 -0
  67. package/lib/cjs/update-account-circuit-breaker.js +132 -0
  68. package/lib/cjs/update-account-circuit-breaker.js.map +1 -0
  69. package/lib/cjs/update-aggregator.js +116 -0
  70. package/lib/cjs/update-aggregator.js.map +1 -0
  71. package/lib/cjs/update-dao.js +169 -0
  72. package/lib/cjs/update-dao.js.map +1 -0
  73. package/lib/cjs/update-data-credits.js +128 -0
  74. package/lib/cjs/update-data-credits.js.map +1 -0
  75. package/lib/cjs/update-delegated-dc-subdao.js +136 -0
  76. package/lib/cjs/update-delegated-dc-subdao.js.map +1 -0
  77. package/lib/cjs/update-iot-operations-fund-metadata.js +124 -0
  78. package/lib/cjs/update-iot-operations-fund-metadata.js.map +1 -0
  79. package/lib/cjs/update-lazy-distributor.js +138 -0
  80. package/lib/cjs/update-lazy-distributor.js.map +1 -0
  81. package/lib/cjs/update-lazy-transactions.js +117 -0
  82. package/lib/cjs/update-lazy-transactions.js.map +1 -0
  83. package/lib/cjs/update-mint-circuit-breaker.js +132 -0
  84. package/lib/cjs/update-mint-circuit-breaker.js.map +1 -0
  85. package/lib/cjs/update-registrar-authorities.js +96 -0
  86. package/lib/cjs/update-registrar-authorities.js.map +1 -0
  87. package/lib/cjs/update-rewardable-entity-config.js +155 -0
  88. package/lib/cjs/update-rewardable-entity-config.js.map +1 -0
  89. package/lib/cjs/update-subdao-vehnt.js +295 -0
  90. package/lib/cjs/update-subdao-vehnt.js.map +1 -0
  91. package/lib/cjs/update-subdao.js +261 -0
  92. package/lib/cjs/update-subdao.js.map +1 -0
  93. package/lib/cjs/upgrade-idl.js +109 -0
  94. package/lib/cjs/upgrade-idl.js.map +1 -0
  95. package/lib/cjs/utils.js +457 -0
  96. package/lib/cjs/utils.js.map +1 -0
  97. package/lib/esm/src/approve-carrier.js +79 -0
  98. package/lib/esm/src/approve-carrier.js.map +1 -0
  99. package/lib/esm/src/approve-program.js +81 -0
  100. package/lib/esm/src/approve-program.js.map +1 -0
  101. package/lib/esm/src/claim-rewards.js +68 -0
  102. package/lib/esm/src/claim-rewards.js.map +1 -0
  103. package/lib/esm/src/close-buffers.js +91 -0
  104. package/lib/esm/src/close-buffers.js.map +1 -0
  105. package/lib/esm/src/close-canopy.js +67 -0
  106. package/lib/esm/src/close-canopy.js.map +1 -0
  107. package/lib/esm/src/close-lazy-transaction-markers.js +67 -0
  108. package/lib/esm/src/close-lazy-transaction-markers.js.map +1 -0
  109. package/lib/esm/src/correct-router-dc.js +108 -0
  110. package/lib/esm/src/correct-router-dc.js.map +1 -0
  111. package/lib/esm/src/create-active-device-aggregator.js +71 -0
  112. package/lib/esm/src/create-active-device-aggregator.js.map +1 -0
  113. package/lib/esm/src/create-carrier.js +161 -0
  114. package/lib/esm/src/create-carrier.js.map +1 -0
  115. package/lib/esm/src/create-dao.js +415 -0
  116. package/lib/esm/src/create-dao.js.map +1 -0
  117. package/lib/esm/src/create-data-only-config.js +132 -0
  118. package/lib/esm/src/create-data-only-config.js.map +1 -0
  119. package/lib/esm/src/create-maker.js +282 -0
  120. package/lib/esm/src/create-maker.js.map +1 -0
  121. package/lib/esm/src/create-price-oracle.js +92 -0
  122. package/lib/esm/src/create-price-oracle.js.map +1 -0
  123. package/lib/esm/src/create-subdao.js +490 -0
  124. package/lib/esm/src/create-subdao.js.map +1 -0
  125. package/lib/esm/src/distribute-hst.js +53 -0
  126. package/lib/esm/src/distribute-hst.js.map +1 -0
  127. package/lib/esm/src/distribute-iot-operations-fund.js +79 -0
  128. package/lib/esm/src/distribute-iot-operations-fund.js.map +1 -0
  129. package/lib/esm/src/ecc-gen.js +6 -0
  130. package/lib/esm/src/ecc-gen.js.map +1 -0
  131. package/lib/esm/src/end-epoch.js +103 -0
  132. package/lib/esm/src/end-epoch.js.map +1 -0
  133. package/lib/esm/src/issue-iot-operations-fund.js +82 -0
  134. package/lib/esm/src/issue-iot-operations-fund.js.map +1 -0
  135. package/lib/esm/src/issue-test-hotspot.js +70 -0
  136. package/lib/esm/src/issue-test-hotspot.js.map +1 -0
  137. package/lib/esm/src/log-coingecko-price.js +14 -0
  138. package/lib/esm/src/log-coingecko-price.js.map +1 -0
  139. package/lib/esm/src/log-hotspot.js +62 -0
  140. package/lib/esm/src/log-hotspot.js.map +1 -0
  141. package/lib/esm/src/log-router-balance.js +48 -0
  142. package/lib/esm/src/log-router-balance.js.map +1 -0
  143. package/lib/esm/src/log-treasury-price.js +64 -0
  144. package/lib/esm/src/log-treasury-price.js.map +1 -0
  145. package/lib/esm/src/mint-dc.js +70 -0
  146. package/lib/esm/src/mint-dc.js.map +1 -0
  147. package/lib/esm/src/repair-iot-operations-fund.js +73 -0
  148. package/lib/esm/src/repair-iot-operations-fund.js.map +1 -0
  149. package/lib/esm/src/reset-clockwork.js +103 -0
  150. package/lib/esm/src/reset-clockwork.js.map +1 -0
  151. package/lib/esm/src/reset-vsr-max-voter-record.js +104 -0
  152. package/lib/esm/src/reset-vsr-max-voter-record.js.map +1 -0
  153. package/lib/esm/src/reset-vsr-voting-mint.js +141 -0
  154. package/lib/esm/src/reset-vsr-voting-mint.js.map +1 -0
  155. package/lib/esm/src/setup-hst.js +218 -0
  156. package/lib/esm/src/setup-hst.js.map +1 -0
  157. package/lib/esm/src/submit-price.js +113 -0
  158. package/lib/esm/src/submit-price.js.map +1 -0
  159. package/lib/esm/src/sum-tokens.js +43 -0
  160. package/lib/esm/src/sum-tokens.js.map +1 -0
  161. package/lib/esm/src/take-snapshot.js +29 -0
  162. package/lib/esm/src/take-snapshot.js.map +1 -0
  163. package/lib/esm/src/update-account-circuit-breaker.js +91 -0
  164. package/lib/esm/src/update-account-circuit-breaker.js.map +1 -0
  165. package/lib/esm/src/update-aggregator.js +75 -0
  166. package/lib/esm/src/update-aggregator.js.map +1 -0
  167. package/lib/esm/src/update-dao.js +128 -0
  168. package/lib/esm/src/update-dao.js.map +1 -0
  169. package/lib/esm/src/update-data-credits.js +87 -0
  170. package/lib/esm/src/update-data-credits.js.map +1 -0
  171. package/lib/esm/src/update-delegated-dc-subdao.js +95 -0
  172. package/lib/esm/src/update-delegated-dc-subdao.js.map +1 -0
  173. package/lib/esm/src/update-iot-operations-fund-metadata.js +83 -0
  174. package/lib/esm/src/update-iot-operations-fund-metadata.js.map +1 -0
  175. package/lib/esm/src/update-lazy-distributor.js +97 -0
  176. package/lib/esm/src/update-lazy-distributor.js.map +1 -0
  177. package/lib/esm/src/update-lazy-transactions.js +76 -0
  178. package/lib/esm/src/update-lazy-transactions.js.map +1 -0
  179. package/lib/esm/src/update-mint-circuit-breaker.js +91 -0
  180. package/lib/esm/src/update-mint-circuit-breaker.js.map +1 -0
  181. package/lib/esm/src/update-registrar-authorities.js +55 -0
  182. package/lib/esm/src/update-registrar-authorities.js.map +1 -0
  183. package/lib/esm/src/update-rewardable-entity-config.js +114 -0
  184. package/lib/esm/src/update-rewardable-entity-config.js.map +1 -0
  185. package/lib/esm/src/update-subdao-vehnt.js +254 -0
  186. package/lib/esm/src/update-subdao-vehnt.js.map +1 -0
  187. package/lib/esm/src/update-subdao.js +220 -0
  188. package/lib/esm/src/update-subdao.js.map +1 -0
  189. package/lib/esm/src/upgrade-idl.js +68 -0
  190. package/lib/esm/src/upgrade-idl.js.map +1 -0
  191. package/lib/esm/src/utils.js +392 -0
  192. package/lib/esm/src/utils.js.map +1 -0
  193. package/lib/esm/tsconfig.esm.tsbuildinfo +1 -0
  194. package/lib/types/src/approve-carrier.d.ts +2 -0
  195. package/lib/types/src/approve-carrier.d.ts.map +1 -0
  196. package/lib/types/src/approve-program.d.ts +2 -0
  197. package/lib/types/src/approve-program.d.ts.map +1 -0
  198. package/lib/types/src/claim-rewards.d.ts +2 -0
  199. package/lib/types/src/claim-rewards.d.ts.map +1 -0
  200. package/lib/types/src/close-buffers.d.ts +2 -0
  201. package/lib/types/src/close-buffers.d.ts.map +1 -0
  202. package/lib/types/src/close-canopy.d.ts +2 -0
  203. package/lib/types/src/close-canopy.d.ts.map +1 -0
  204. package/lib/types/src/close-lazy-transaction-markers.d.ts +2 -0
  205. package/lib/types/src/close-lazy-transaction-markers.d.ts.map +1 -0
  206. package/lib/types/src/correct-router-dc.d.ts +2 -0
  207. package/lib/types/src/correct-router-dc.d.ts.map +1 -0
  208. package/lib/types/src/create-active-device-aggregator.d.ts +2 -0
  209. package/lib/types/src/create-active-device-aggregator.d.ts.map +1 -0
  210. package/lib/types/src/create-carrier.d.ts +2 -0
  211. package/lib/types/src/create-carrier.d.ts.map +1 -0
  212. package/lib/types/src/create-dao.d.ts +2 -0
  213. package/lib/types/src/create-dao.d.ts.map +1 -0
  214. package/lib/types/src/create-data-only-config.d.ts +2 -0
  215. package/lib/types/src/create-data-only-config.d.ts.map +1 -0
  216. package/lib/types/src/create-maker.d.ts +2 -0
  217. package/lib/types/src/create-maker.d.ts.map +1 -0
  218. package/lib/types/src/create-price-oracle.d.ts +2 -0
  219. package/lib/types/src/create-price-oracle.d.ts.map +1 -0
  220. package/lib/types/src/create-subdao.d.ts +2 -0
  221. package/lib/types/src/create-subdao.d.ts.map +1 -0
  222. package/lib/types/src/distribute-hst.d.ts +2 -0
  223. package/lib/types/src/distribute-hst.d.ts.map +1 -0
  224. package/lib/types/src/distribute-iot-operations-fund.d.ts +2 -0
  225. package/lib/types/src/distribute-iot-operations-fund.d.ts.map +1 -0
  226. package/lib/types/src/ecc-gen.d.ts +2 -0
  227. package/lib/types/src/ecc-gen.d.ts.map +1 -0
  228. package/lib/types/src/end-epoch.d.ts +2 -0
  229. package/lib/types/src/end-epoch.d.ts.map +1 -0
  230. package/lib/types/src/issue-iot-operations-fund.d.ts +2 -0
  231. package/lib/types/src/issue-iot-operations-fund.d.ts.map +1 -0
  232. package/lib/types/src/issue-test-hotspot.d.ts +2 -0
  233. package/lib/types/src/issue-test-hotspot.d.ts.map +1 -0
  234. package/lib/types/src/log-coingecko-price.d.ts +2 -0
  235. package/lib/types/src/log-coingecko-price.d.ts.map +1 -0
  236. package/lib/types/src/log-hotspot.d.ts +2 -0
  237. package/lib/types/src/log-hotspot.d.ts.map +1 -0
  238. package/lib/types/src/log-router-balance.d.ts +2 -0
  239. package/lib/types/src/log-router-balance.d.ts.map +1 -0
  240. package/lib/types/src/log-treasury-price.d.ts +2 -0
  241. package/lib/types/src/log-treasury-price.d.ts.map +1 -0
  242. package/lib/types/src/mint-dc.d.ts +2 -0
  243. package/lib/types/src/mint-dc.d.ts.map +1 -0
  244. package/lib/types/src/repair-iot-operations-fund.d.ts +2 -0
  245. package/lib/types/src/repair-iot-operations-fund.d.ts.map +1 -0
  246. package/lib/types/src/reset-clockwork.d.ts +2 -0
  247. package/lib/types/src/reset-clockwork.d.ts.map +1 -0
  248. package/lib/types/src/reset-vsr-max-voter-record.d.ts +2 -0
  249. package/lib/types/src/reset-vsr-max-voter-record.d.ts.map +1 -0
  250. package/lib/types/src/reset-vsr-voting-mint.d.ts +2 -0
  251. package/lib/types/src/reset-vsr-voting-mint.d.ts.map +1 -0
  252. package/lib/types/src/setup-hst.d.ts +4 -0
  253. package/lib/types/src/setup-hst.d.ts.map +1 -0
  254. package/lib/types/src/submit-price.d.ts +3 -0
  255. package/lib/types/src/submit-price.d.ts.map +1 -0
  256. package/lib/types/src/sum-tokens.d.ts +2 -0
  257. package/lib/types/src/sum-tokens.d.ts.map +1 -0
  258. package/lib/types/src/take-snapshot.d.ts +2 -0
  259. package/lib/types/src/take-snapshot.d.ts.map +1 -0
  260. package/lib/types/src/update-account-circuit-breaker.d.ts +2 -0
  261. package/lib/types/src/update-account-circuit-breaker.d.ts.map +1 -0
  262. package/lib/types/src/update-aggregator.d.ts +2 -0
  263. package/lib/types/src/update-aggregator.d.ts.map +1 -0
  264. package/lib/types/src/update-dao.d.ts +2 -0
  265. package/lib/types/src/update-dao.d.ts.map +1 -0
  266. package/lib/types/src/update-data-credits.d.ts +2 -0
  267. package/lib/types/src/update-data-credits.d.ts.map +1 -0
  268. package/lib/types/src/update-delegated-dc-subdao.d.ts +2 -0
  269. package/lib/types/src/update-delegated-dc-subdao.d.ts.map +1 -0
  270. package/lib/types/src/update-iot-operations-fund-metadata.d.ts +2 -0
  271. package/lib/types/src/update-iot-operations-fund-metadata.d.ts.map +1 -0
  272. package/lib/types/src/update-lazy-distributor.d.ts +2 -0
  273. package/lib/types/src/update-lazy-distributor.d.ts.map +1 -0
  274. package/lib/types/src/update-lazy-transactions.d.ts +2 -0
  275. package/lib/types/src/update-lazy-transactions.d.ts.map +1 -0
  276. package/lib/types/src/update-mint-circuit-breaker.d.ts +2 -0
  277. package/lib/types/src/update-mint-circuit-breaker.d.ts.map +1 -0
  278. package/lib/types/src/update-registrar-authorities.d.ts +2 -0
  279. package/lib/types/src/update-registrar-authorities.d.ts.map +1 -0
  280. package/lib/types/src/update-rewardable-entity-config.d.ts +2 -0
  281. package/lib/types/src/update-rewardable-entity-config.d.ts.map +1 -0
  282. package/lib/types/src/update-subdao-vehnt.d.ts +2 -0
  283. package/lib/types/src/update-subdao-vehnt.d.ts.map +1 -0
  284. package/lib/types/src/update-subdao.d.ts +2 -0
  285. package/lib/types/src/update-subdao.d.ts.map +1 -0
  286. package/lib/types/src/upgrade-idl.d.ts +2 -0
  287. package/lib/types/src/upgrade-idl.d.ts.map +1 -0
  288. package/lib/types/src/utils.d.ts +59 -0
  289. package/lib/types/src/utils.d.ts.map +1 -0
  290. package/package.json +13 -13
@@ -0,0 +1,295 @@
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 web3_js_1 = require("@solana/web3.js");
42
+ const sdk_1 = __importDefault(require("@sqds/sdk"));
43
+ const aws_sdk_1 = __importDefault(require("aws-sdk"));
44
+ const bn_js_1 = require("bn.js");
45
+ const os_1 = __importDefault(require("os"));
46
+ const pg_1 = require("pg");
47
+ const yargs_1 = __importDefault(require("yargs/yargs"));
48
+ const utils_1 = require("./utils");
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
+ dntMint: {
63
+ required: true,
64
+ type: 'string',
65
+ describe: 'DNT mint of the subdao to be updated',
66
+ },
67
+ name: {
68
+ alias: 'n',
69
+ type: 'string',
70
+ required: false,
71
+ describe: 'The name of the entity config',
72
+ },
73
+ executeTransaction: {
74
+ type: 'boolean',
75
+ },
76
+ multisig: {
77
+ type: 'string',
78
+ describe: 'Address of the squads multisig to be authority. If not provided, your wallet will be the authority',
79
+ },
80
+ authorityIndex: {
81
+ type: 'number',
82
+ describe: 'Authority index for squads. Defaults to 1',
83
+ default: 1,
84
+ },
85
+ pgUser: {
86
+ default: 'postgres',
87
+ },
88
+ pgPassword: {
89
+ type: 'string',
90
+ },
91
+ pgDatabase: {
92
+ type: 'string',
93
+ },
94
+ pgHost: {
95
+ default: 'localhost',
96
+ },
97
+ pgPort: {
98
+ default: '5432',
99
+ },
100
+ awsRegion: {
101
+ default: 'us-east-1',
102
+ },
103
+ noSsl: {
104
+ type: 'boolean',
105
+ default: false,
106
+ },
107
+ });
108
+ const argv = yield yarg.argv;
109
+ process.env.ANCHOR_WALLET = argv.wallet;
110
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
111
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
112
+ const provider = anchor.getProvider();
113
+ const wallet = new anchor.Wallet((0, utils_1.loadKeypair)(argv.wallet));
114
+ const program = yield (0, helium_sub_daos_sdk_1.init)(provider);
115
+ // configure pg connection
116
+ const isRds = argv.pgHost.includes('rds.amazonaws.com');
117
+ let password = argv.pgPassword;
118
+ if (isRds && !password) {
119
+ const signer = new aws_sdk_1.default.RDS.Signer({
120
+ region: argv.awsRegion,
121
+ hostname: argv.pgHost,
122
+ port: Number(argv.pgPort),
123
+ username: argv.pgUser,
124
+ });
125
+ password = yield new Promise((resolve, reject) => signer.getAuthToken({}, (err, token) => {
126
+ if (err) {
127
+ return reject(err);
128
+ }
129
+ resolve(token);
130
+ }));
131
+ }
132
+ const client = new pg_1.Client({
133
+ user: argv.pgUser,
134
+ password,
135
+ host: argv.pgHost,
136
+ database: argv.pgDatabase,
137
+ port: Number(argv.pgPort),
138
+ ssl: argv.noSsl
139
+ ? {
140
+ rejectUnauthorized: false,
141
+ }
142
+ : false,
143
+ });
144
+ yield client.connect();
145
+ const response = (yield client.query(`WITH
146
+ readable_positions AS (
147
+ SELECT p.*,
148
+ r.realm_governing_token_mint,
149
+ cast(r.voting_mints[p.voting_mint_config_idx + 1]->>'lockupSaturationSecs' as numeric) as lockup_saturation_seconds,
150
+ cast(r.voting_mints[p.voting_mint_config_idx + 1]->>'maxExtraLockupVoteWeightScaledFactor' as numeric) / 1000000000 as max_extra_lockup_vote_weight_scaled_factor,
151
+ CASE WHEN p.genesis_end > current_ts THEN cast(r.voting_mints[p.voting_mint_config_idx + 1]->>'genesisVotePowerMultiplier' as numeric) ELSE 1 END as genesis_multiplier,
152
+ GREATEST(
153
+ cast(
154
+ p.end_ts -
155
+ CASE WHEN lockup_kind = 'constant' THEN start_ts ELSE current_ts END
156
+ as numeric
157
+ ),
158
+ 0
159
+ )
160
+ as seconds_remaining
161
+ FROM (
162
+ SELECT *,
163
+ lockup->>'kind' as lockup_kind,
164
+ cast(lockup->>'endTs' as numeric) as end_ts,
165
+ cast(lockup->>'startTs' as numeric) as start_ts,
166
+ -- 1683727980 as current_ts
167
+ FLOOR(EXTRACT(EPOCH FROM CURRENT_TIMESTAMP)) as current_ts
168
+ FROM positions
169
+ ) p
170
+ JOIN registrars r on p.registrar = r.address
171
+ ),
172
+ positions_with_vehnt AS (
173
+ SELECT realm_governing_token_mint as mint,
174
+ address,
175
+ genesis_end,
176
+ num_active_votes,
177
+ lockup_kind,
178
+ registrar,
179
+ refreshed_at,
180
+ created_at,
181
+ amount_deposited_native,
182
+ ve_tokens,
183
+ initial_ve_tokens,
184
+ CASE WHEN lockup_kind = 'constant' THEN
185
+ 0
186
+ ELSE
187
+ CASE WHEN current_ts < genesis_end THEN
188
+ -- genesis
189
+ (ve_tokens - (
190
+ amount_deposited_native * (
191
+ LEAST(
192
+ (end_ts - genesis_end) / lockup_saturation_seconds,
193
+ 1
194
+ ) * (
195
+ max_extra_lockup_vote_weight_scaled_factor
196
+ ) * genesis_multiplier
197
+ )
198
+ )
199
+ ) / (genesis_end - current_ts)
200
+ ELSE
201
+ -- normal
202
+ ve_tokens / (end_ts - current_ts)
203
+ END
204
+ END as fall_rate,
205
+ start_ts,
206
+ end_ts,
207
+ current_ts,
208
+ seconds_remaining
209
+ FROM (
210
+ SELECT *,
211
+ amount_deposited_native * (
212
+ (
213
+ max_extra_lockup_vote_weight_scaled_factor
214
+ ) * genesis_multiplier * LEAST(
215
+ seconds_remaining / lockup_saturation_seconds,
216
+ 1
217
+ )
218
+ ) as ve_tokens,
219
+ amount_deposited_native * (
220
+ (
221
+ max_extra_lockup_vote_weight_scaled_factor
222
+ ) * genesis_multiplier * LEAST(
223
+ (end_ts - start_ts) / lockup_saturation_seconds,
224
+ 1
225
+ )
226
+ ) as initial_ve_tokens
227
+ FROM readable_positions
228
+ ) a
229
+ ),
230
+ subdao_delegations AS (
231
+ SELECT
232
+ count(*) as delegations,
233
+ min(current_ts) as current_ts,
234
+ sum(p.fall_rate) as real_fall_rate,
235
+ s.vehnt_fall_rate / 1000000000000 as approx_fall_rate,
236
+ s.dnt_mint as mint,
237
+ SUM(ve_tokens) as real_ve_tokens,
238
+ (
239
+ s.vehnt_delegated - (
240
+ (min(current_ts) - s.vehnt_last_calculated_ts)
241
+ * s.vehnt_fall_rate
242
+ )
243
+ ) / 1000000000000 as approx_ve_tokens,
244
+ s.vehnt_delegated as vehnt_delegated_snapshot,
245
+ s.vehnt_last_calculated_ts as vehnt_last_calculated_ts
246
+ FROM positions_with_vehnt p
247
+ JOIN delegated_positions d on d.position = p.address
248
+ JOIN sub_daos s on s.address = d.sub_dao
249
+ -- Remove positions getting purged this epoch
250
+ WHERE (lockup_kind = 'constant' or end_ts > (floor(current_ts / (60 * 60 * 24)) * (60 * 60 * 24)) + 60 * 60 * 24)
251
+ GROUP BY s.dnt_mint, s.vehnt_fall_rate, s.vehnt_delegated, s.vehnt_last_calculated_ts, s.vehnt_last_calculated_ts
252
+ )
253
+ SELECT
254
+ mint,
255
+ current_ts,
256
+ delegations,
257
+ real_ve_tokens * 1000000000000 as real_ve_tokens,
258
+ approx_ve_tokens * 1000000000000 as approx_ve_tokens,
259
+ real_fall_rate * 1000000000000 as real_fall_rate,
260
+ approx_fall_rate * 1000000000000 as approx_fall_rate,
261
+ approx_fall_rate - real_fall_rate as fall_rate_diff,
262
+ approx_ve_tokens - real_ve_tokens as ve_tokens_diff
263
+ FROM subdao_delegations`)).rows;
264
+ const row = response.find((x) => x.mint == argv.dntMint);
265
+ const instructions = [];
266
+ const subDao = (0, helium_sub_daos_sdk_1.subDaoKey)(new web3_js_1.PublicKey(argv.dntMint))[0];
267
+ const subDaoAcc = yield program.account.subDaoV0.fetch(subDao);
268
+ console.log('Subdao', subDao.toBase58());
269
+ instructions.push(yield program.methods
270
+ .updateSubDaoVehntV0({
271
+ vehntDelegated: new bn_js_1.BN(row.real_ve_tokens.split('.')[0]),
272
+ vehntLastCalculatedTs: new bn_js_1.BN(row.current_ts),
273
+ vehntFallRate: new bn_js_1.BN(row.real_fall_rate.split('.')[0]),
274
+ })
275
+ .accounts({
276
+ subDao,
277
+ authority: subDaoAcc.authority,
278
+ })
279
+ .instruction());
280
+ const squads = sdk_1.default.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
281
+ commitmentOrConfig: 'finalized',
282
+ });
283
+ yield (0, utils_1.sendInstructionsOrSquads)({
284
+ provider,
285
+ instructions,
286
+ executeTransaction: argv.executeTransaction,
287
+ squads,
288
+ multisig: argv.multisig ? new web3_js_1.PublicKey(argv.multisig) : undefined,
289
+ authorityIndex: argv.authorityIndex,
290
+ signers: [],
291
+ });
292
+ });
293
+ }
294
+ exports.run = run;
295
+ //# sourceMappingURL=update-subdao-vehnt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-subdao-vehnt.js","sourceRoot":"","sources":["../../src/update-subdao-vehnt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,261 @@
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 helium_entity_manager_sdk_1 = require("@helium/helium-entity-manager-sdk");
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 solana_js_1 = require("@switchboard-xyz/solana.js");
46
+ const bn_js_1 = require("bn.js");
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
+ wallet: {
54
+ alias: 'k',
55
+ describe: 'Anchor wallet keypair',
56
+ default: `${os_1.default.homedir()}/.config/solana/id.json`,
57
+ },
58
+ url: {
59
+ alias: 'u',
60
+ default: 'http://127.0.0.1:8899',
61
+ describe: 'The solana url',
62
+ },
63
+ dntMint: {
64
+ required: true,
65
+ type: 'string',
66
+ describe: 'DNT mint of the subdao to be updated',
67
+ },
68
+ name: {
69
+ alias: 'n',
70
+ type: 'string',
71
+ required: false,
72
+ describe: 'The name of the entity config',
73
+ },
74
+ newAuthority: {
75
+ required: false,
76
+ describe: 'New subdao authority',
77
+ type: 'string',
78
+ default: null,
79
+ },
80
+ newEmissionsSchedulePath: {
81
+ required: false,
82
+ describe: 'Path to file that contains the new emissions schedule',
83
+ type: 'string',
84
+ default: null,
85
+ },
86
+ newActiveDeviceAggregator: {
87
+ required: false,
88
+ default: null,
89
+ type: 'string',
90
+ },
91
+ newDcBurnAuthority: {
92
+ required: false,
93
+ default: null,
94
+ type: 'string',
95
+ },
96
+ executeTransaction: {
97
+ type: 'boolean',
98
+ },
99
+ multisig: {
100
+ type: 'string',
101
+ describe: 'Address of the squads multisig to be authority. If not provided, your wallet will be the authority',
102
+ },
103
+ authorityIndex: {
104
+ type: 'number',
105
+ describe: 'Authority index for squads. Defaults to 1',
106
+ default: 1,
107
+ },
108
+ switchboardNetwork: {
109
+ type: 'string',
110
+ describe: 'The switchboard network',
111
+ default: 'devnet',
112
+ },
113
+ registrar: {
114
+ type: 'string',
115
+ required: false,
116
+ describe: 'VSR Registrar of subdao',
117
+ default: null,
118
+ },
119
+ delegatorRewardsPercent: {
120
+ type: 'number',
121
+ required: false,
122
+ describe: 'Percentage of rewards allocated to delegators. Must be between 0-100 and can have 8 decimal places.',
123
+ default: null,
124
+ },
125
+ onboardingDcFee: {
126
+ type: 'number',
127
+ required: false,
128
+ describe: 'The data credits fee for onboarding hotspots',
129
+ default: null,
130
+ },
131
+ onboardingDataOnlyDcFee: {
132
+ type: 'number',
133
+ required: false,
134
+ describe: 'The data credits fee for onboarding data only hotspots',
135
+ default: null,
136
+ },
137
+ activeDeviceAuthority: {
138
+ type: 'string',
139
+ required: false,
140
+ describe: 'The authority that can set hotspot active status',
141
+ default: null,
142
+ },
143
+ });
144
+ const argv = yield yarg.argv;
145
+ process.env.ANCHOR_WALLET = argv.wallet;
146
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
147
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
148
+ const provider = anchor.getProvider();
149
+ const walletKP = (0, utils_1.loadKeypair)(argv.wallet);
150
+ const wallet = new anchor.Wallet(walletKP);
151
+ const program = yield (0, helium_sub_daos_sdk_1.init)(provider);
152
+ const hemProgram = yield (0, helium_entity_manager_sdk_1.init)(provider);
153
+ const cbProgram = yield (0, circuit_breaker_sdk_1.init)(provider);
154
+ const instructions = [];
155
+ const subDao = (0, helium_sub_daos_sdk_1.subDaoKey)(new web3_js_1.PublicKey(argv.dntMint))[0];
156
+ const subDaoAcc = yield program.account.subDaoV0.fetch(subDao);
157
+ if (argv.newAuthority) {
158
+ if (!argv.name) {
159
+ throw new Error('--name is required');
160
+ }
161
+ // update entity config auth
162
+ const config = (0, helium_entity_manager_sdk_1.rewardableEntityConfigKey)(subDao, argv.name.toUpperCase())[0];
163
+ const configAcc = yield hemProgram.account.rewardableEntityConfigV0.fetch(config);
164
+ instructions.push(yield hemProgram.methods
165
+ .updateRewardableEntityConfigV0({
166
+ newAuthority: new web3_js_1.PublicKey(argv.newAuthority),
167
+ settings: null,
168
+ })
169
+ .accounts({
170
+ rewardableEntityConfig: config,
171
+ authority: configAcc.authority,
172
+ })
173
+ .instruction());
174
+ // update dnt cb auth
175
+ const dntCircuitBreaker = (0, circuit_breaker_sdk_1.mintWindowedBreakerKey)(subDaoAcc.dntMint)[0];
176
+ const dntCbAcc = yield cbProgram.account.mintWindowedCircuitBreakerV0.fetch(dntCircuitBreaker);
177
+ instructions.push(yield cbProgram.methods
178
+ .updateMintWindowedBreakerV0({
179
+ newAuthority: new web3_js_1.PublicKey(argv.newAuthority),
180
+ config: null,
181
+ })
182
+ .accounts({
183
+ circuitBreaker: dntCircuitBreaker,
184
+ authority: dntCbAcc.authority,
185
+ })
186
+ .instruction());
187
+ // update treasury cb auth
188
+ const treasuryCircuitBreaker = (0, circuit_breaker_sdk_1.accountWindowedBreakerKey)(subDaoAcc.treasury)[0];
189
+ const treasuryCbAcc = yield cbProgram.account.accountWindowedCircuitBreakerV0.fetch(treasuryCircuitBreaker);
190
+ instructions.push(yield cbProgram.methods
191
+ .updateAccountWindowedBreakerV0({
192
+ newAuthority: new web3_js_1.PublicKey(argv.newAuthority),
193
+ config: null,
194
+ })
195
+ .accounts({
196
+ circuitBreaker: treasuryCircuitBreaker,
197
+ authority: treasuryCbAcc.authority,
198
+ })
199
+ .instruction());
200
+ // update agg auth
201
+ if (!(0, utils_1.isLocalhost)(provider)) {
202
+ const switchboard = yield solana_js_1.SwitchboardProgram.load(argv.switchboardNetwork, provider.connection, walletKP);
203
+ const [agg, aggData] = yield solana_js_1.AggregatorAccount.load(switchboard, subDaoAcc.activeDeviceAggregator);
204
+ if (!aggData.authority.equals(subDaoAcc.activeDeviceAggregator)) {
205
+ instructions.push(...agg.setAuthorityInstruction(aggData.authority, // payer needs to be the same as the old authority
206
+ { newAuthority: new web3_js_1.PublicKey(argv.newAuthority) }).ixns);
207
+ }
208
+ }
209
+ }
210
+ if (argv.delegatorRewardsPercent &&
211
+ (argv.delegatorRewardsPercent > 100 || argv.delegatorRewardsPercent < 0)) {
212
+ throw new Error('Delegator rewards percent must be between 0 and 100');
213
+ }
214
+ instructions.push(yield program.methods
215
+ .updateSubDaoV0({
216
+ authority: argv.newAuthority ? new web3_js_1.PublicKey(argv.newAuthority) : null,
217
+ emissionSchedule: argv.newEmissionsSchedulePath
218
+ ? yield (0, utils_1.parseEmissionsSchedule)(argv.newEmissionsSchedulePath)
219
+ : null,
220
+ dcBurnAuthority: argv.newDcBurnAuthority
221
+ ? new web3_js_1.PublicKey(argv.newDcBurnAuthority)
222
+ : null,
223
+ onboardingDcFee: argv.onboardingDcFee
224
+ ? new bn_js_1.BN(argv.onboardingDcFee)
225
+ : null,
226
+ onboardingDataOnlyDcFee: argv.onboardingDataOnlyDcFee
227
+ ? new bn_js_1.BN(argv.onboardingDataOnlyDcFee)
228
+ : null,
229
+ activeDeviceAggregator: argv.newActiveDeviceAggregator
230
+ ? new web3_js_1.PublicKey(argv.newActiveDeviceAggregator)
231
+ : null,
232
+ registrar: argv.registrar ? new web3_js_1.PublicKey(argv.registrar) : null,
233
+ delegatorRewardsPercent: argv.delegatorRewardsPercent
234
+ ? (0, helium_sub_daos_sdk_1.delegatorRewardsPercent)(argv.delegatorRewardsPercent)
235
+ : null,
236
+ activeDeviceAuthority: argv.activeDeviceAuthority
237
+ ? new web3_js_1.PublicKey(argv.activeDeviceAuthority)
238
+ : null,
239
+ })
240
+ .accounts({
241
+ subDao,
242
+ authority: subDaoAcc.authority,
243
+ payer: subDaoAcc.authority,
244
+ })
245
+ .instruction());
246
+ const squads = sdk_1.default.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
247
+ commitmentOrConfig: 'finalized',
248
+ });
249
+ yield (0, utils_1.sendInstructionsOrSquads)({
250
+ provider,
251
+ instructions,
252
+ executeTransaction: argv.executeTransaction,
253
+ squads,
254
+ multisig: argv.multisig ? new web3_js_1.PublicKey(argv.multisig) : undefined,
255
+ authorityIndex: argv.authorityIndex,
256
+ signers: [],
257
+ });
258
+ });
259
+ }
260
+ exports.run = run;
261
+ //# sourceMappingURL=update-subdao.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"update-subdao.js","sourceRoot":"","sources":["../../src/update-subdao.ts"],"names":[],"mappings":"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"}