@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,486 +0,0 @@
1
- import * as anchor from "@coral-xyz/anchor";
2
- import { ThresholdType } from "@helium/circuit-breaker-sdk";
3
- import { init as initHem, rewardableEntityConfigKey, } from "@helium/helium-entity-manager-sdk";
4
- import { daoKey, init as initDao, subDaoKey, threadKey, delegatorRewardsPercent, } from "@helium/helium-sub-daos-sdk";
5
- import { init as initLazy, lazyDistributorKey, } from "@helium/lazy-distributor-sdk";
6
- import { oracleSignerKey } from "@helium/rewards-oracle-sdk";
7
- import { sendInstructions, toBN } from "@helium/spl-utils";
8
- import { toU128 } from "@helium/treasury-management-sdk";
9
- import { init as initVsr, registrarKey, } from "@helium/voter-stake-registry-sdk";
10
- import { getGovernanceProgramVersion, GoverningTokenConfigAccountArgs, GoverningTokenType, MintMaxVoteWeightSource, SetRealmAuthorityAction, withCreateRealm, withSetRealmAuthority, } from "@solana/spl-governance";
11
- import { getAssociatedTokenAddress } from "@solana/spl-token";
12
- import { ComputeBudgetProgram, LAMPORTS_PER_SOL, PublicKey, SystemProgram, } from "@solana/web3.js";
13
- import Squads from "@sqds/sdk";
14
- import os from "os";
15
- import yargs from "yargs/yargs";
16
- import { createAndMint, createSwitchboardAggregator, exists, getUnixTimestamp, isLocalhost, loadKeypair, parseEmissionsSchedule, sendInstructionsOrSquads, } from "./utils";
17
- const SECS_PER_DAY = 86400;
18
- const SECS_PER_YEAR = 365 * SECS_PER_DAY;
19
- const MAX_LOCKUP = 4 * SECS_PER_YEAR;
20
- const BASELINE = 0;
21
- const SCALE = 100;
22
- export async function run(args = process.argv) {
23
- const yarg = yargs(args).options({
24
- wallet: {
25
- alias: "k",
26
- describe: "Anchor wallet keypair",
27
- default: `${os.homedir()}/.config/solana/id.json`,
28
- },
29
- noHotspots: {
30
- type: "boolean",
31
- default: false,
32
- },
33
- url: {
34
- alias: "u",
35
- default: "http://127.0.0.1:8899",
36
- describe: "The solana url",
37
- },
38
- hntPubkey: {
39
- type: "string",
40
- describe: "Pubkey of the HNT token",
41
- },
42
- dcPubkey: {
43
- type: "string",
44
- describe: "Pubkey of the DC token",
45
- },
46
- name: {
47
- alias: "n",
48
- describe: "The name of the subdao",
49
- type: "string",
50
- required: true,
51
- },
52
- realmName: {
53
- describe: "The name of the realm",
54
- type: "string",
55
- required: true,
56
- },
57
- subdaoKeypair: {
58
- type: "string",
59
- describe: "Keypair of the subdao token",
60
- required: true,
61
- },
62
- executeTransaction: {
63
- type: "boolean",
64
- },
65
- numTokens: {
66
- type: "number",
67
- describe: "Number of subdao tokens to pre mint before assigning authority to lazy distributor",
68
- default: 0,
69
- },
70
- bucket: {
71
- type: "string",
72
- describe: "Bucket URL prefix holding all of the metadata jsons",
73
- default: "https://shdw-drive.genesysgo.net/6tcnBSybPG7piEDShBcrVtYJDPSvGrDbVvXmXKpzBvWP",
74
- },
75
- rewardsOracleUrl: {
76
- alias: "ro",
77
- type: "string",
78
- describe: "The rewards oracle URL",
79
- default: "http://localhost:8080",
80
- },
81
- oracleKeypair: {
82
- type: "string",
83
- describe: "Keypair of the oracle",
84
- default: `${__dirname}/../../keypairs/oracle.json`,
85
- },
86
- aggregatorKeypair: {
87
- type: "string",
88
- describe: "Keypair of the aggregtor",
89
- },
90
- dcBurnAuthority: {
91
- type: "string",
92
- describe: "The authority to burn DC tokens",
93
- required: true,
94
- },
95
- activeDeviceOracleUrl: {
96
- alias: "ao",
97
- type: "string",
98
- describe: "The active device oracle URL",
99
- default: "http://localhost:8081",
100
- },
101
- queue: {
102
- type: "string",
103
- describe: "Switchbaord oracle queue",
104
- default: "uPeRMdfPmrPqgRWSrjAnAkH78RqAhe5kXoW6vBYRqFX",
105
- },
106
- crank: {
107
- type: "string",
108
- describe: "Switchboard crank",
109
- default: "UcrnK4w2HXCEjY8z6TcQ9tysYr3c9VcFLdYAU9YQP5e",
110
- },
111
- switchboardNetwork: {
112
- type: "string",
113
- describe: "The switchboard network",
114
- default: "mainnet-beta",
115
- },
116
- decimals: {
117
- type: "number",
118
- default: 6,
119
- },
120
- govProgramId: {
121
- type: "string",
122
- describe: "Pubkey of the GOV program",
123
- default: "hgovkRU6Ghe1Qoyb54HdSLdqN7VtxaifBzRmh9jtd3S",
124
- },
125
- councilKeypair: {
126
- type: "string",
127
- describe: "Keypair of gov council token",
128
- default: `${__dirname}/../../keypairs/council.json`,
129
- },
130
- multisig: {
131
- type: "string",
132
- describe: "Address of the squads multisig for subdao authority. If not provided, your wallet will be the authority",
133
- },
134
- authorityIndex: {
135
- type: "number",
136
- describe: "Authority index for squads. Defaults to 1",
137
- default: 1,
138
- },
139
- delegatorRewardsPercent: {
140
- type: "number",
141
- required: true,
142
- describe: "Percentage of rewards allocated to delegators. Must be between 0-100 and can have 8 decimal places.",
143
- },
144
- emissionSchedulePath: {
145
- required: true,
146
- describe: "Path to file that contains the dnt emissions schedule",
147
- type: "string",
148
- },
149
- activeDeviceAuthority: {
150
- type: "string",
151
- describe: "The authority that can set hotspot active status",
152
- }
153
- });
154
- const argv = await yarg.argv;
155
- console.log(argv.url);
156
- process.env.ANCHOR_WALLET = argv.wallet;
157
- process.env.ANCHOR_PROVIDER_URL = argv.url;
158
- anchor.setProvider(anchor.AnchorProvider.local(argv.url));
159
- const name = argv.name;
160
- const provider = anchor.getProvider();
161
- const lazyDistributorProgram = await initLazy(provider);
162
- const heliumSubDaosProgram = await initDao(provider);
163
- const hemProgram = await initHem(provider);
164
- const heliumVsrProgram = await initVsr(provider);
165
- const wallet = loadKeypair(argv.wallet);
166
- const aggKeypair = await loadKeypair(argv.aggregatorKeypair || `${__dirname}/../../keypairs/aggregator-${name}.json`);
167
- const subdaoKeypair = await loadKeypair(argv.subdaoKeypair);
168
- const oracleKeypair = await loadKeypair(argv.oracleKeypair);
169
- const oracleKey = oracleKeypair.publicKey;
170
- const rewardsOracleUrl = argv.rewardsOracleUrl;
171
- const govProgramId = new PublicKey(argv.govProgramId);
172
- const councilKeypair = await loadKeypair(argv.councilKeypair);
173
- const me = provider.wallet.publicKey;
174
- console.log("Subdao mint", subdaoKeypair.publicKey.toBase58());
175
- console.log("GOV PID", govProgramId.toBase58());
176
- console.log("COUNCIL", councilKeypair.publicKey.toBase58());
177
- const conn = provider.connection;
178
- const dao = (await daoKey(new PublicKey(argv.hntPubkey)))[0];
179
- const subdao = (await subDaoKey(subdaoKeypair.publicKey))[0];
180
- console.log("DAO", dao.toString());
181
- console.log("SUBDAO", subdao.toString());
182
- const daoAcc = await heliumSubDaosProgram.account.daoV0.fetch(dao);
183
- const calculateThread = threadKey(subdao, "calculate")[0];
184
- const issueThread = threadKey(subdao, "issue")[0];
185
- const emissionSchedule = await parseEmissionsSchedule(argv.emissionSchedulePath);
186
- const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, provider.wallet, {
187
- commitmentOrConfig: "finalized"
188
- });
189
- let authority = provider.wallet.publicKey;
190
- const multisig = argv.multisig ? new PublicKey(argv.multisig) : null;
191
- if (multisig) {
192
- authority = squads.getAuthorityPDA(multisig, argv.authorityIndex);
193
- }
194
- if (await exists(conn, subdao)) {
195
- const subDao = await heliumSubDaosProgram.account.subDaoV0.fetch(subdao);
196
- console.log(`Subdao exists. Key: ${subdao.toBase58()}. Agg: ${subDao.activeDeviceAggregator.toBase58()}}`);
197
- console.log("Calculate thread", calculateThread.toString());
198
- console.log("Issue thread", issueThread.toString());
199
- return;
200
- }
201
- const [lazyDist] = await lazyDistributorKey(subdaoKeypair.publicKey);
202
- const rewardsEscrow = await getAssociatedTokenAddress(subdaoKeypair.publicKey, lazyDist, true);
203
- let payer = provider.wallet.publicKey;
204
- const auth = await provider.connection.getAccountInfo(daoAcc.authority);
205
- if (auth.owner.equals(govProgramId)) {
206
- const daoPayer = PublicKey.findProgramAddressSync([Buffer.from("native-treasury", "utf-8"), daoAcc.authority.toBuffer()], govProgramId)[0];
207
- payer = daoPayer;
208
- }
209
- await createAndMint({
210
- provider,
211
- mintKeypair: subdaoKeypair,
212
- amount: argv.numTokens,
213
- decimals: argv.decimals,
214
- metadataUrl: `${argv.bucket}/${name.toLowerCase()}.json`,
215
- mintAuthority: daoAcc.authority,
216
- freezeAuthority: daoAcc.authority,
217
- updateAuthority: authority,
218
- });
219
- let instructions = [];
220
- const govProgramVersion = await getGovernanceProgramVersion(conn, govProgramId, isLocalhost(provider) ? "localnet" : undefined);
221
- const realmName = argv.realmName;
222
- const realm = await PublicKey.findProgramAddressSync([Buffer.from("governance", "utf-8"), Buffer.from(realmName, "utf-8")], govProgramId)[0];
223
- console.log("Realm, ", realm.toBase58());
224
- const isFreshRealm = !(await exists(conn, realm));
225
- if (isFreshRealm) {
226
- console.log("Initializing Realm");
227
- await withCreateRealm(instructions, govProgramId, govProgramVersion, realmName, provider.wallet.publicKey, // realmAuthorityPk
228
- subdaoKeypair.publicKey, // communityMintPk
229
- provider.wallet.publicKey, // payer
230
- councilKeypair.publicKey, // councilMintPk
231
- MintMaxVoteWeightSource.FULL_SUPPLY_FRACTION, new anchor.BN(1000000000000000), // 10mm vehnt to create governance. Council should be the only one doing this
232
- new GoverningTokenConfigAccountArgs({
233
- // community token config
234
- voterWeightAddin: heliumVsrProgram.programId,
235
- maxVoterWeightAddin: heliumVsrProgram.programId,
236
- tokenType: GoverningTokenType.Liquid,
237
- }), new GoverningTokenConfigAccountArgs({
238
- // council token config
239
- voterWeightAddin: undefined,
240
- maxVoterWeightAddin: undefined,
241
- tokenType: GoverningTokenType.Liquid,
242
- }));
243
- await sendInstructions(provider, instructions, []);
244
- instructions = [];
245
- }
246
- const registrar = (await registrarKey(realm, subdaoKeypair.publicKey))[0];
247
- if (!(await exists(conn, registrar))) {
248
- console.log("Initializing VSR Registrar");
249
- instructions.push(await heliumVsrProgram.methods
250
- .initializeRegistrarV0({
251
- positionUpdateAuthority: null,
252
- })
253
- .preInstructions([
254
- ComputeBudgetProgram.setComputeUnitLimit({ units: 500000 }),
255
- ])
256
- .accounts({
257
- realm,
258
- realmGoverningTokenMint: subdaoKeypair.publicKey,
259
- })
260
- .instruction());
261
- console.log("Configuring VSR voting mint at [0]");
262
- instructions.push(await heliumVsrProgram.methods
263
- .configureVotingMintV0({
264
- idx: 0,
265
- digitShift: -1,
266
- baselineVoteWeightScaledFactor: new anchor.BN(BASELINE * 1e9),
267
- maxExtraLockupVoteWeightScaledFactor: new anchor.BN(SCALE * 1e9),
268
- genesisVotePowerMultiplier: 0,
269
- genesisVotePowerMultiplierExpirationTs: new anchor.BN(Number(await getUnixTimestamp(provider))),
270
- lockupSaturationSecs: new anchor.BN(MAX_LOCKUP),
271
- })
272
- .accounts({
273
- registrar,
274
- mint: subdaoKeypair.publicKey,
275
- })
276
- .remainingAccounts([
277
- {
278
- pubkey: subdaoKeypair.publicKey,
279
- isSigner: false,
280
- isWritable: false,
281
- },
282
- ])
283
- .instruction());
284
- await sendInstructions(provider, instructions, []);
285
- instructions = [];
286
- console.log("Creating max voter record");
287
- instructions.push(await heliumVsrProgram.methods
288
- .updateMaxVoterWeightV0()
289
- .accounts({
290
- registrar,
291
- realmGoverningTokenMint: subdaoKeypair.publicKey,
292
- })
293
- .instruction());
294
- }
295
- await sendInstructions(provider, instructions, []);
296
- instructions = [];
297
- if (isFreshRealm && !authority.equals(me)) {
298
- withSetRealmAuthority(instructions, govProgramId, govProgramVersion, realm, provider.wallet.publicKey, daoAcc.authority, SetRealmAuthorityAction.SetUnchecked);
299
- }
300
- await sendInstructions(provider, instructions, []);
301
- if (!(await exists(conn, lazyDist))) {
302
- console.log(`Initializing ${name} lazy distributor`);
303
- await lazyDistributorProgram.methods
304
- .initializeLazyDistributorV0({
305
- authority: daoAcc.authority,
306
- oracles: [
307
- {
308
- oracle: oracleKey,
309
- url: rewardsOracleUrl,
310
- },
311
- ],
312
- // 5 x epoch rewards in a 24 hour period
313
- windowConfig: {
314
- windowSizeSeconds: new anchor.BN(24 * 60 * 60),
315
- thresholdType: ThresholdType.Absolute,
316
- threshold: new anchor.BN(emissionSchedule[0].emissionsPerEpoch).mul(new anchor.BN(5)),
317
- },
318
- approver: oracleSignerKey()[0]
319
- })
320
- .accounts({
321
- rewardsMint: subdaoKeypair.publicKey,
322
- rewardsEscrow,
323
- })
324
- .rpc({ skipPreflight: true });
325
- }
326
- if (!(await exists(conn, subdao))) {
327
- let aggregatorKey = new PublicKey("GvDMxPzN1sCj7L26YDK2HnMRXEQmQ2aemov8YBtPS7vR");
328
- if (!isLocalhost(provider)) {
329
- console.log("Initializing switchboard oracle");
330
- aggregatorKey = await createSwitchboardAggregator({
331
- crank: new PublicKey(argv.crank),
332
- queue: new PublicKey(argv.queue),
333
- wallet,
334
- provider,
335
- aggKeypair,
336
- url: argv.activeDeviceOracleUrl,
337
- switchboardNetwork: argv.switchboardNetwork,
338
- authority,
339
- });
340
- }
341
- console.log(`Initializing ${name} SubDAO`);
342
- const currentDntEmission = emissionSchedule[0];
343
- const initSubdaoMethod = await heliumSubDaosProgram.methods
344
- .initializeSubDaoV0({
345
- registrar: registrar,
346
- dcBurnAuthority: new PublicKey(argv.dcBurnAuthority),
347
- authority,
348
- // Tx to large to do here, do it with update
349
- emissionSchedule: [currentDntEmission],
350
- // Linear curve
351
- treasuryCurve: {
352
- exponentialCurveV0: {
353
- k: toU128(0),
354
- },
355
- },
356
- // $40 for iot, $0 for mobile
357
- onboardingDcFee: name.toUpperCase() == "IOT" ? toBN(4000000, 0) : toBN(0, 0),
358
- onboardingDataOnlyDcFee: name.toUpperCase() == "IOT" ? toBN(1000000, 0) : toBN(0, 0),
359
- delegatorRewardsPercent: delegatorRewardsPercent(argv.delegatorRewardsPercent),
360
- activeDeviceAuthority: argv.activeDeviceAuthority ? new PublicKey(argv.activeDeviceAuthority) : authority,
361
- })
362
- .accounts({
363
- dao,
364
- dntMint: subdaoKeypair.publicKey,
365
- rewardsEscrow,
366
- hntMint: new PublicKey(argv.hntPubkey),
367
- activeDeviceAggregator: aggregatorKey,
368
- payer,
369
- dntMintAuthority: daoAcc.authority,
370
- subDaoFreezeAuthority: daoAcc.authority,
371
- authority: daoAcc.authority,
372
- });
373
- await sendInstructionsOrSquads({
374
- provider,
375
- instructions: [
376
- ComputeBudgetProgram.setComputeUnitLimit({ units: 500000 }),
377
- await initSubdaoMethod.instruction(),
378
- ],
379
- executeTransaction: true,
380
- squads,
381
- multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
382
- authorityIndex: argv.authorityIndex,
383
- signers: [],
384
- });
385
- await sendInstructions(provider, [
386
- SystemProgram.transfer({
387
- fromPubkey: me,
388
- toPubkey: authority,
389
- lamports: LAMPORTS_PER_SOL * 2,
390
- }),
391
- ]);
392
- // Reset thread
393
- await sendInstructionsOrSquads({
394
- provider,
395
- instructions: [
396
- await heliumSubDaosProgram.methods
397
- .resetSubDaoThreadV0()
398
- .accounts({
399
- subDao: subDaoKey(subdaoKeypair.publicKey)[0],
400
- authority,
401
- threadPayer: authority,
402
- })
403
- .instruction(),
404
- ],
405
- executeTransaction: true,
406
- squads,
407
- multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
408
- authorityIndex: argv.authorityIndex,
409
- signers: [],
410
- });
411
- const { subDao } = await initSubdaoMethod.pubkeys();
412
- await sendInstructionsOrSquads({
413
- provider,
414
- instructions: [
415
- await heliumSubDaosProgram.methods
416
- .updateSubDaoV0({
417
- authority,
418
- emissionSchedule,
419
- dcBurnAuthority: null,
420
- onboardingDcFee: null,
421
- onboardingDataOnlyDcFee: null,
422
- activeDeviceAggregator: null,
423
- registrar: null,
424
- delegatorRewardsPercent: null,
425
- activeDeviceAuthority: null,
426
- })
427
- .accounts({
428
- subDao,
429
- authority,
430
- payer: authority,
431
- })
432
- .instruction(),
433
- ],
434
- executeTransaction: true,
435
- squads,
436
- multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
437
- authorityIndex: argv.authorityIndex,
438
- signers: [],
439
- });
440
- }
441
- const hsConfigKey = (await rewardableEntityConfigKey(subdao, name.toUpperCase()))[0];
442
- if (!(await provider.connection.getAccountInfo(hsConfigKey)) &&
443
- !argv.noHotspots) {
444
- const instructions = [];
445
- console.log(`Initalizing ${name} RewardableEntityConfig`);
446
- let settings;
447
- if (name.toUpperCase() == "IOT") {
448
- settings = {
449
- iotConfig: {
450
- minGain: 10,
451
- maxGain: 150,
452
- fullLocationStakingFee: toBN(500000, 0),
453
- dataonlyLocationStakingFee: toBN(500000, 0),
454
- },
455
- };
456
- }
457
- else {
458
- settings = {
459
- mobileConfig: {
460
- fullLocationStakingFee: toBN(500000, 0),
461
- dataonlyLocationStakingFee: toBN(500000, 0),
462
- },
463
- };
464
- }
465
- instructions.push(await hemProgram.methods
466
- .initializeRewardableEntityConfigV0({
467
- symbol: name.toUpperCase(),
468
- settings,
469
- })
470
- .accounts({
471
- subDao: subdao,
472
- payer: me,
473
- authority,
474
- })
475
- .instruction());
476
- await sendInstructionsOrSquads({
477
- provider,
478
- instructions,
479
- squads,
480
- executeTransaction: true,
481
- multisig: multisig,
482
- authorityIndex: argv.authorityIndex,
483
- });
484
- }
485
- }
486
- //# sourceMappingURL=create-subdao.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-subdao.js","sourceRoot":"","sources":["../../../src/create-subdao.ts"],"names":[],"mappings":"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"}
@@ -1,53 +0,0 @@
1
- import * as anchor from "@coral-xyz/anchor";
2
- import { fanoutKey, init } from "@helium/fanout-sdk";
3
- import { getAccount } from "@solana/spl-token";
4
- import os from "os";
5
- import yargs from "yargs/yargs";
6
- export async function run(args = process.argv) {
7
- const yarg = yargs(args).options({
8
- wallet: {
9
- alias: "k",
10
- describe: "Anchor wallet keypair",
11
- default: `${os.homedir()}/.config/solana/id.json`,
12
- },
13
- url: {
14
- alias: "u",
15
- default: "http://127.0.0.1:8899",
16
- describe: "The solana url",
17
- },
18
- name: {
19
- type: "string",
20
- describe: "Name of the fanout",
21
- required: true,
22
- },
23
- mint: {
24
- type: "string",
25
- describe: "Mint to dist",
26
- required: true,
27
- },
28
- });
29
- const argv = await yarg.argv;
30
- process.env.ANCHOR_WALLET = argv.wallet;
31
- process.env.ANCHOR_PROVIDER_URL = argv.url;
32
- anchor.setProvider(anchor.AnchorProvider.local(argv.url));
33
- const provider = anchor.getProvider();
34
- const hydraProgram = await init(provider);
35
- const fanoutK = fanoutKey(argv.name)[0];
36
- const members = (await hydraProgram.account.fanoutVoucherV0.all()).filter((m) => m.account.fanout.equals(fanoutK));
37
- for (const member of members) {
38
- const mint = member.account.mint;
39
- const owners = await provider.connection.getTokenLargestAccounts(mint);
40
- const owner = (await getAccount(provider.connection, owners.value[0].address)).owner;
41
- console.log("Distributing for mint", mint.toBase58());
42
- await hydraProgram.methods
43
- .distributeV0()
44
- .accounts({
45
- payer: provider.wallet.publicKey,
46
- fanout: fanoutK,
47
- owner,
48
- mint,
49
- })
50
- .rpc({ skipPreflight: true });
51
- }
52
- }
53
- //# sourceMappingURL=distribute-hst.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"distribute-hst.js","sourceRoot":"","sources":["../../../src/distribute-hst.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAiC,MAAM,mBAAmB,CAAC;AAE9E,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAY,OAAO,CAAC,IAAI;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAC/B,MAAM,EAAE;YACN,KAAK,EAAE,GAAG;YACV,QAAQ,EAAE,uBAAuB;YACjC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,yBAAyB;SAClD;QACD,GAAG,EAAE;YACH,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,uBAAuB;YAChC,QAAQ,EAAE,gBAAgB;SAC3B;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,oBAAoB;YAC9B,QAAQ,EAAE,IAAI;SACf;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,cAAc;YACxB,QAAQ,EAAE,IAAI;SACf;KACF,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC;IAC3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAA2B,CAAC;IAE/D,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,CAAC,MAAM,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CACvE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CACxC,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,CACZ,MAAM,UAAU,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAC/D,CAAC,KAAK,CAAC;QAER,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAErD,MAAM,YAAY,CAAC,OAAO;aACvB,YAAY,EAAE;aACd,QAAQ,CAAC;YACR,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;YAChC,MAAM,EAAE,OAAO;YACf,KAAK;YACL,IAAI;SACL,CAAC;aACD,GAAG,CAAC,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;KACjC;AACH,CAAC"}
@@ -1,79 +0,0 @@
1
- import * as anchor from '@coral-xyz/anchor';
2
- import * as client from '@helium/distributor-oracle';
3
- import { init as initHem, keyToAssetKey, } from '@helium/helium-entity-manager-sdk';
4
- import { init as initLazy, lazyDistributorKey, recipientKey, } from '@helium/lazy-distributor-sdk';
5
- import { init as initRewards } from '@helium/rewards-oracle-sdk';
6
- import { daoKey } from '@helium/helium-sub-daos-sdk';
7
- import { HNT_MINT, IOT_MINT, sendAndConfirmWithRetry } from '@helium/spl-utils';
8
- import { PublicKey } from '@solana/web3.js';
9
- import os from 'os';
10
- import yargs from 'yargs/yargs';
11
- import BN from 'bn.js';
12
- const IOT_OPERATIONS_FUND = 'iot_operations_fund';
13
- const MAX_CLAIM_AMOUNT = new BN('207020547945205');
14
- export async function run(args = process.argv) {
15
- const yarg = yargs(args).options({
16
- wallet: {
17
- alias: 'k',
18
- describe: 'Anchor wallet keypair',
19
- default: `${os.homedir()}/.config/solana/id.json`,
20
- },
21
- url: {
22
- alias: 'u',
23
- default: 'http://127.0.0.1:8899',
24
- describe: 'The solana url',
25
- },
26
- mint: {
27
- type: 'string',
28
- describe: 'Pubkey of the rewards mint',
29
- default: IOT_MINT.toBase58(),
30
- },
31
- hntMint: {
32
- type: 'string',
33
- describe: 'Mint address of hnt',
34
- default: HNT_MINT.toBase58(),
35
- },
36
- });
37
- const argv = await yarg.argv;
38
- process.env.ANCHOR_WALLET = argv.wallet;
39
- process.env.ANCHOR_PROVIDER_URL = argv.url;
40
- anchor.setProvider(anchor.AnchorProvider.local(argv.url));
41
- const provider = anchor.getProvider();
42
- const hemProgram = await initHem(provider);
43
- const lazyProgram = await initLazy(provider);
44
- const rewardsOracleProgram = await initRewards(provider);
45
- const mint = new PublicKey(argv.mint);
46
- const [dao] = daoKey(new PublicKey(argv.hntMint));
47
- const [lazyDistributor] = lazyDistributorKey(mint);
48
- const [keyToAsset] = keyToAssetKey(dao, IOT_OPERATIONS_FUND, 'utf8');
49
- const assetId = (await hemProgram.account.keyToAssetV0.fetch(keyToAsset))
50
- .asset;
51
- const [recipient] = recipientKey(lazyDistributor, assetId);
52
- if (!(await provider.connection.getAccountInfo(recipient))) {
53
- const method = lazyProgram.methods.initializeRecipientV0().accounts({
54
- lazyDistributor,
55
- mint: assetId,
56
- });
57
- await method.rpc({ skipPreflight: true });
58
- }
59
- const rewards = await client.getCurrentRewards(lazyProgram, lazyDistributor, assetId);
60
- const pending = await client.getPendingRewards(lazyProgram, lazyDistributor, daoKey(HNT_MINT)[0], [IOT_OPERATIONS_FUND], 'utf8');
61
- // Avoid claiming too much and tripping the breaker
62
- if (new BN(pending[IOT_OPERATIONS_FUND]).gt(MAX_CLAIM_AMOUNT)) {
63
- rewards[0].currentRewards = new BN(rewards[0].currentRewards)
64
- .sub(new BN(pending[IOT_OPERATIONS_FUND]))
65
- .add(MAX_CLAIM_AMOUNT)
66
- .toString();
67
- }
68
- const tx = await client.formTransaction({
69
- program: lazyProgram,
70
- rewardsOracleProgram: rewardsOracleProgram,
71
- provider,
72
- rewards,
73
- asset: assetId,
74
- lazyDistributor,
75
- });
76
- const signed = await provider.wallet.signTransaction(tx);
77
- await sendAndConfirmWithRetry(provider.connection, signed.serialize(), { skipPreflight: true }, 'confirmed');
78
- }
79
- //# sourceMappingURL=distribute-iot-operations-fund.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"distribute-iot-operations-fund.js","sourceRoot":"","sources":["../../../src/distribute-iot-operations-fund.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { Keypair as HeliumKeypair } from "@helium/crypto";
2
- const run = async () => {
3
- const ecc = await (await HeliumKeypair.makeRandom()).address.publicKey;
4
- console.log(ecc);
5
- };
6
- //# sourceMappingURL=ecc-gen.js.map