@helium/helium-admin-cli 0.11.5 → 0.11.7

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 (294) hide show
  1. package/lib/cjs/add-squads-proposer.js +107 -0
  2. package/lib/cjs/add-squads-proposer.js.map +1 -0
  3. package/lib/cjs/approve-carrier.js +1 -16
  4. package/lib/cjs/approve-carrier.js.map +1 -1
  5. package/lib/cjs/approve-maker.js +1 -16
  6. package/lib/cjs/approve-maker.js.map +1 -1
  7. package/lib/cjs/approve-program.js +1 -16
  8. package/lib/cjs/approve-program.js.map +1 -1
  9. package/lib/cjs/claim-and-close-subscriber-key-to-assets.js +664 -0
  10. package/lib/cjs/claim-and-close-subscriber-key-to-assets.js.map +1 -0
  11. package/lib/cjs/close-all-subscriber-recipients.js +329 -0
  12. package/lib/cjs/close-all-subscriber-recipients.js.map +1 -0
  13. package/lib/cjs/close-buffers.js +10 -20
  14. package/lib/cjs/close-buffers.js.map +1 -1
  15. package/lib/cjs/close-canopy.js +1 -16
  16. package/lib/cjs/close-canopy.js.map +1 -1
  17. package/lib/cjs/close-legacy-auto-topoff.js +129 -0
  18. package/lib/cjs/close-legacy-auto-topoff.js.map +1 -0
  19. package/lib/cjs/create-and-approve-makers.js +11 -21
  20. package/lib/cjs/create-and-approve-makers.js.map +1 -1
  21. package/lib/cjs/create-boost-config.js +1 -13
  22. package/lib/cjs/create-boost-config.js.map +1 -1
  23. package/lib/cjs/create-common-lut.js +10 -17
  24. package/lib/cjs/create-common-lut.js.map +1 -1
  25. package/lib/cjs/create-dao.js +12 -22
  26. package/lib/cjs/create-dao.js.map +1 -1
  27. package/lib/cjs/create-data-only-config.js +10 -17
  28. package/lib/cjs/create-data-only-config.js.map +1 -1
  29. package/lib/cjs/create-price-oracle.js +8 -7
  30. package/lib/cjs/create-price-oracle.js.map +1 -1
  31. package/lib/cjs/create-subdao.js +14 -22
  32. package/lib/cjs/create-subdao.js.map +1 -1
  33. package/lib/cjs/create-tuktuk-dca-lut.js +128 -0
  34. package/lib/cjs/create-tuktuk-dca-lut.js.map +1 -0
  35. package/lib/cjs/execute-vault-transaction.js +91 -0
  36. package/lib/cjs/execute-vault-transaction.js.map +1 -0
  37. package/lib/cjs/extend-common-lut.js +21 -24
  38. package/lib/cjs/extend-common-lut.js.map +1 -1
  39. package/lib/cjs/initialize-tuktuk-dca.js +237 -0
  40. package/lib/cjs/initialize-tuktuk-dca.js.map +1 -0
  41. package/lib/cjs/issue-iot-operations-fund.js +1 -16
  42. package/lib/cjs/issue-iot-operations-fund.js.map +1 -1
  43. package/lib/cjs/issue-service-rewards-nft.js +112 -0
  44. package/lib/cjs/issue-service-rewards-nft.js.map +1 -0
  45. package/lib/cjs/reschedule-all-mini-fanouts.js +3 -5
  46. package/lib/cjs/reschedule-all-mini-fanouts.js.map +1 -1
  47. package/lib/cjs/reset-vsr-voting-mint.js +1 -16
  48. package/lib/cjs/reset-vsr-voting-mint.js.map +1 -1
  49. package/lib/cjs/revoke-maker.js +1 -16
  50. package/lib/cjs/revoke-maker.js.map +1 -1
  51. package/lib/cjs/set-dc-onboarding-fees-paid-epoch-info.js +1 -16
  52. package/lib/cjs/set-dc-onboarding-fees-paid-epoch-info.js.map +1 -1
  53. package/lib/cjs/set-dc-onboarding-fees-paid.js +1 -16
  54. package/lib/cjs/set-dc-onboarding-fees-paid.js.map +1 -1
  55. package/lib/cjs/set-proxy-config.js +10 -17
  56. package/lib/cjs/set-proxy-config.js.map +1 -1
  57. package/lib/cjs/setup-dc-auto-topoff.js +255 -47
  58. package/lib/cjs/setup-dc-auto-topoff.js.map +1 -1
  59. package/lib/cjs/setup-hst.js +8 -7
  60. package/lib/cjs/setup-hst.js.map +1 -1
  61. package/lib/cjs/squads-batch-optimizer.js +156 -0
  62. package/lib/cjs/squads-batch-optimizer.js.map +1 -0
  63. package/lib/cjs/swap-carrier-stake.js +1 -16
  64. package/lib/cjs/swap-carrier-stake.js.map +1 -1
  65. package/lib/cjs/swap-maker-stake.js +1 -16
  66. package/lib/cjs/swap-maker-stake.js.map +1 -1
  67. package/lib/cjs/switch-mobile-ops-fund.js +1 -13
  68. package/lib/cjs/switch-mobile-ops-fund.js.map +1 -1
  69. package/lib/cjs/transfer-program-authorities.js +98 -0
  70. package/lib/cjs/transfer-program-authorities.js.map +1 -0
  71. package/lib/cjs/update-account-circuit-breaker.js +1 -16
  72. package/lib/cjs/update-account-circuit-breaker.js.map +1 -1
  73. package/lib/cjs/update-boost-config.js +1 -16
  74. package/lib/cjs/update-boost-config.js.map +1 -1
  75. package/lib/cjs/update-carrier.js +1 -16
  76. package/lib/cjs/update-carrier.js.map +1 -1
  77. package/lib/cjs/update-dao.js +1 -16
  78. package/lib/cjs/update-dao.js.map +1 -1
  79. package/lib/cjs/update-data-credits.js +1 -16
  80. package/lib/cjs/update-data-credits.js.map +1 -1
  81. package/lib/cjs/update-delegated-dc-subdao.js +1 -16
  82. package/lib/cjs/update-delegated-dc-subdao.js.map +1 -1
  83. package/lib/cjs/update-lazy-distributor.js +1 -16
  84. package/lib/cjs/update-lazy-distributor.js.map +1 -1
  85. package/lib/cjs/update-lazy-transactions.js +1 -16
  86. package/lib/cjs/update-lazy-transactions.js.map +1 -1
  87. package/lib/cjs/update-maker.js +1 -16
  88. package/lib/cjs/update-maker.js.map +1 -1
  89. package/lib/cjs/update-mint-circuit-breaker.js +1 -16
  90. package/lib/cjs/update-mint-circuit-breaker.js.map +1 -1
  91. package/lib/cjs/update-organization.js +101 -0
  92. package/lib/cjs/update-organization.js.map +1 -0
  93. package/lib/cjs/update-price-oracle.js +1 -16
  94. package/lib/cjs/update-price-oracle.js.map +1 -1
  95. package/lib/cjs/update-proxy-config.js +1 -16
  96. package/lib/cjs/update-proxy-config.js.map +1 -1
  97. package/lib/cjs/update-registrar-authorities.js +6 -8
  98. package/lib/cjs/update-registrar-authorities.js.map +1 -1
  99. package/lib/cjs/update-rewardable-entity-config.js +5 -17
  100. package/lib/cjs/update-rewardable-entity-config.js.map +1 -1
  101. package/lib/cjs/update-subdao-vehnt.js +1 -16
  102. package/lib/cjs/update-subdao-vehnt.js.map +1 -1
  103. package/lib/cjs/update-subdao.js +2 -42
  104. package/lib/cjs/update-subdao.js.map +1 -1
  105. package/lib/cjs/update-token-metadata.js +17 -24
  106. package/lib/cjs/update-token-metadata.js.map +1 -1
  107. package/lib/cjs/upgrade-idl.js +10 -20
  108. package/lib/cjs/upgrade-idl.js.map +1 -1
  109. package/lib/cjs/upsert-incentive-program.js +1 -8
  110. package/lib/cjs/upsert-incentive-program.js.map +1 -1
  111. package/lib/cjs/utils.js +157 -3
  112. package/lib/cjs/utils.js.map +1 -1
  113. package/lib/esm/src/add-squads-proposer.js +66 -0
  114. package/lib/esm/src/add-squads-proposer.js.map +1 -0
  115. package/lib/esm/src/approve-carrier.js +2 -17
  116. package/lib/esm/src/approve-carrier.js.map +1 -1
  117. package/lib/esm/src/approve-maker.js +2 -17
  118. package/lib/esm/src/approve-maker.js.map +1 -1
  119. package/lib/esm/src/approve-program.js +2 -17
  120. package/lib/esm/src/approve-program.js.map +1 -1
  121. package/lib/esm/src/claim-and-close-subscriber-key-to-assets.js +616 -0
  122. package/lib/esm/src/claim-and-close-subscriber-key-to-assets.js.map +1 -0
  123. package/lib/esm/src/close-all-subscriber-recipients.js +287 -0
  124. package/lib/esm/src/close-all-subscriber-recipients.js.map +1 -0
  125. package/lib/esm/src/close-buffers.js +11 -21
  126. package/lib/esm/src/close-buffers.js.map +1 -1
  127. package/lib/esm/src/close-canopy.js +2 -17
  128. package/lib/esm/src/close-canopy.js.map +1 -1
  129. package/lib/esm/src/close-legacy-auto-topoff.js +88 -0
  130. package/lib/esm/src/close-legacy-auto-topoff.js.map +1 -0
  131. package/lib/esm/src/create-and-approve-makers.js +12 -22
  132. package/lib/esm/src/create-and-approve-makers.js.map +1 -1
  133. package/lib/esm/src/create-boost-config.js +2 -14
  134. package/lib/esm/src/create-boost-config.js.map +1 -1
  135. package/lib/esm/src/create-common-lut.js +11 -18
  136. package/lib/esm/src/create-common-lut.js.map +1 -1
  137. package/lib/esm/src/create-dao.js +13 -23
  138. package/lib/esm/src/create-dao.js.map +1 -1
  139. package/lib/esm/src/create-data-only-config.js +11 -18
  140. package/lib/esm/src/create-data-only-config.js.map +1 -1
  141. package/lib/esm/src/create-price-oracle.js +8 -7
  142. package/lib/esm/src/create-price-oracle.js.map +1 -1
  143. package/lib/esm/src/create-subdao.js +15 -23
  144. package/lib/esm/src/create-subdao.js.map +1 -1
  145. package/lib/esm/src/create-tuktuk-dca-lut.js +87 -0
  146. package/lib/esm/src/create-tuktuk-dca-lut.js.map +1 -0
  147. package/lib/esm/src/execute-vault-transaction.js +50 -0
  148. package/lib/esm/src/execute-vault-transaction.js.map +1 -0
  149. package/lib/esm/src/extend-common-lut.js +22 -25
  150. package/lib/esm/src/extend-common-lut.js.map +1 -1
  151. package/lib/esm/src/initialize-tuktuk-dca.js +196 -0
  152. package/lib/esm/src/initialize-tuktuk-dca.js.map +1 -0
  153. package/lib/esm/src/issue-iot-operations-fund.js +2 -17
  154. package/lib/esm/src/issue-iot-operations-fund.js.map +1 -1
  155. package/lib/esm/src/issue-service-rewards-nft.js +71 -0
  156. package/lib/esm/src/issue-service-rewards-nft.js.map +1 -0
  157. package/lib/esm/src/reschedule-all-mini-fanouts.js +3 -5
  158. package/lib/esm/src/reschedule-all-mini-fanouts.js.map +1 -1
  159. package/lib/esm/src/reset-vsr-voting-mint.js +2 -17
  160. package/lib/esm/src/reset-vsr-voting-mint.js.map +1 -1
  161. package/lib/esm/src/revoke-maker.js +2 -17
  162. package/lib/esm/src/revoke-maker.js.map +1 -1
  163. package/lib/esm/src/set-dc-onboarding-fees-paid-epoch-info.js +2 -17
  164. package/lib/esm/src/set-dc-onboarding-fees-paid-epoch-info.js.map +1 -1
  165. package/lib/esm/src/set-dc-onboarding-fees-paid.js +2 -17
  166. package/lib/esm/src/set-dc-onboarding-fees-paid.js.map +1 -1
  167. package/lib/esm/src/set-proxy-config.js +11 -18
  168. package/lib/esm/src/set-proxy-config.js.map +1 -1
  169. package/lib/esm/src/setup-dc-auto-topoff.js +262 -54
  170. package/lib/esm/src/setup-dc-auto-topoff.js.map +1 -1
  171. package/lib/esm/src/setup-hst.js +8 -7
  172. package/lib/esm/src/setup-hst.js.map +1 -1
  173. package/lib/esm/src/squads-batch-optimizer.js +128 -0
  174. package/lib/esm/src/squads-batch-optimizer.js.map +1 -0
  175. package/lib/esm/src/swap-carrier-stake.js +2 -17
  176. package/lib/esm/src/swap-carrier-stake.js.map +1 -1
  177. package/lib/esm/src/swap-maker-stake.js +2 -17
  178. package/lib/esm/src/swap-maker-stake.js.map +1 -1
  179. package/lib/esm/src/switch-mobile-ops-fund.js +2 -14
  180. package/lib/esm/src/switch-mobile-ops-fund.js.map +1 -1
  181. package/lib/esm/src/transfer-program-authorities.js +57 -0
  182. package/lib/esm/src/transfer-program-authorities.js.map +1 -0
  183. package/lib/esm/src/update-account-circuit-breaker.js +2 -17
  184. package/lib/esm/src/update-account-circuit-breaker.js.map +1 -1
  185. package/lib/esm/src/update-boost-config.js +2 -17
  186. package/lib/esm/src/update-boost-config.js.map +1 -1
  187. package/lib/esm/src/update-carrier.js +2 -17
  188. package/lib/esm/src/update-carrier.js.map +1 -1
  189. package/lib/esm/src/update-dao.js +2 -17
  190. package/lib/esm/src/update-dao.js.map +1 -1
  191. package/lib/esm/src/update-data-credits.js +2 -17
  192. package/lib/esm/src/update-data-credits.js.map +1 -1
  193. package/lib/esm/src/update-delegated-dc-subdao.js +2 -17
  194. package/lib/esm/src/update-delegated-dc-subdao.js.map +1 -1
  195. package/lib/esm/src/update-lazy-distributor.js +2 -17
  196. package/lib/esm/src/update-lazy-distributor.js.map +1 -1
  197. package/lib/esm/src/update-lazy-transactions.js +2 -17
  198. package/lib/esm/src/update-lazy-transactions.js.map +1 -1
  199. package/lib/esm/src/update-maker.js +2 -17
  200. package/lib/esm/src/update-maker.js.map +1 -1
  201. package/lib/esm/src/update-mint-circuit-breaker.js +2 -17
  202. package/lib/esm/src/update-mint-circuit-breaker.js.map +1 -1
  203. package/lib/esm/src/update-organization.js +60 -0
  204. package/lib/esm/src/update-organization.js.map +1 -0
  205. package/lib/esm/src/update-price-oracle.js +2 -17
  206. package/lib/esm/src/update-price-oracle.js.map +1 -1
  207. package/lib/esm/src/update-proxy-config.js +2 -17
  208. package/lib/esm/src/update-proxy-config.js.map +1 -1
  209. package/lib/esm/src/update-registrar-authorities.js +7 -9
  210. package/lib/esm/src/update-registrar-authorities.js.map +1 -1
  211. package/lib/esm/src/update-rewardable-entity-config.js +6 -18
  212. package/lib/esm/src/update-rewardable-entity-config.js.map +1 -1
  213. package/lib/esm/src/update-subdao-vehnt.js +2 -17
  214. package/lib/esm/src/update-subdao-vehnt.js.map +1 -1
  215. package/lib/esm/src/update-subdao.js +4 -44
  216. package/lib/esm/src/update-subdao.js.map +1 -1
  217. package/lib/esm/src/update-token-metadata.js +18 -25
  218. package/lib/esm/src/update-token-metadata.js.map +1 -1
  219. package/lib/esm/src/upgrade-idl.js +11 -21
  220. package/lib/esm/src/upgrade-idl.js.map +1 -1
  221. package/lib/esm/src/upsert-incentive-program.js +2 -9
  222. package/lib/esm/src/upsert-incentive-program.js.map +1 -1
  223. package/lib/esm/src/utils.js +148 -3
  224. package/lib/esm/src/utils.js.map +1 -1
  225. package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
  226. package/lib/types/src/add-squads-proposer.d.ts +2 -0
  227. package/lib/types/src/add-squads-proposer.d.ts.map +1 -0
  228. package/lib/types/src/approve-carrier.d.ts.map +1 -1
  229. package/lib/types/src/approve-maker.d.ts.map +1 -1
  230. package/lib/types/src/approve-program.d.ts.map +1 -1
  231. package/lib/types/src/claim-and-close-subscriber-key-to-assets.d.ts +2 -0
  232. package/lib/types/src/claim-and-close-subscriber-key-to-assets.d.ts.map +1 -0
  233. package/lib/types/src/close-all-subscriber-recipients.d.ts +2 -0
  234. package/lib/types/src/close-all-subscriber-recipients.d.ts.map +1 -0
  235. package/lib/types/src/close-buffers.d.ts.map +1 -1
  236. package/lib/types/src/close-canopy.d.ts.map +1 -1
  237. package/lib/types/src/close-legacy-auto-topoff.d.ts +2 -0
  238. package/lib/types/src/close-legacy-auto-topoff.d.ts.map +1 -0
  239. package/lib/types/src/create-and-approve-makers.d.ts.map +1 -1
  240. package/lib/types/src/create-boost-config.d.ts.map +1 -1
  241. package/lib/types/src/create-common-lut.d.ts.map +1 -1
  242. package/lib/types/src/create-dao.d.ts.map +1 -1
  243. package/lib/types/src/create-data-only-config.d.ts.map +1 -1
  244. package/lib/types/src/create-price-oracle.d.ts.map +1 -1
  245. package/lib/types/src/create-subdao.d.ts.map +1 -1
  246. package/lib/types/src/create-tuktuk-dca-lut.d.ts +2 -0
  247. package/lib/types/src/create-tuktuk-dca-lut.d.ts.map +1 -0
  248. package/lib/types/src/execute-vault-transaction.d.ts +2 -0
  249. package/lib/types/src/execute-vault-transaction.d.ts.map +1 -0
  250. package/lib/types/src/extend-common-lut.d.ts.map +1 -1
  251. package/lib/types/src/initialize-tuktuk-dca.d.ts +2 -0
  252. package/lib/types/src/initialize-tuktuk-dca.d.ts.map +1 -0
  253. package/lib/types/src/issue-iot-operations-fund.d.ts.map +1 -1
  254. package/lib/types/src/issue-service-rewards-nft.d.ts +2 -0
  255. package/lib/types/src/issue-service-rewards-nft.d.ts.map +1 -0
  256. package/lib/types/src/reschedule-all-mini-fanouts.d.ts.map +1 -1
  257. package/lib/types/src/reset-vsr-voting-mint.d.ts.map +1 -1
  258. package/lib/types/src/revoke-maker.d.ts.map +1 -1
  259. package/lib/types/src/set-dc-onboarding-fees-paid-epoch-info.d.ts.map +1 -1
  260. package/lib/types/src/set-dc-onboarding-fees-paid.d.ts.map +1 -1
  261. package/lib/types/src/set-proxy-config.d.ts.map +1 -1
  262. package/lib/types/src/setup-dc-auto-topoff.d.ts.map +1 -1
  263. package/lib/types/src/setup-hst.d.ts.map +1 -1
  264. package/lib/types/src/squads-batch-optimizer.d.ts +23 -0
  265. package/lib/types/src/squads-batch-optimizer.d.ts.map +1 -0
  266. package/lib/types/src/swap-carrier-stake.d.ts.map +1 -1
  267. package/lib/types/src/swap-maker-stake.d.ts.map +1 -1
  268. package/lib/types/src/switch-mobile-ops-fund.d.ts.map +1 -1
  269. package/lib/types/src/transfer-program-authorities.d.ts +2 -0
  270. package/lib/types/src/transfer-program-authorities.d.ts.map +1 -0
  271. package/lib/types/src/update-account-circuit-breaker.d.ts.map +1 -1
  272. package/lib/types/src/update-boost-config.d.ts.map +1 -1
  273. package/lib/types/src/update-carrier.d.ts.map +1 -1
  274. package/lib/types/src/update-dao.d.ts.map +1 -1
  275. package/lib/types/src/update-data-credits.d.ts.map +1 -1
  276. package/lib/types/src/update-delegated-dc-subdao.d.ts.map +1 -1
  277. package/lib/types/src/update-lazy-distributor.d.ts.map +1 -1
  278. package/lib/types/src/update-lazy-transactions.d.ts.map +1 -1
  279. package/lib/types/src/update-maker.d.ts.map +1 -1
  280. package/lib/types/src/update-mint-circuit-breaker.d.ts.map +1 -1
  281. package/lib/types/src/update-organization.d.ts +2 -0
  282. package/lib/types/src/update-organization.d.ts.map +1 -0
  283. package/lib/types/src/update-price-oracle.d.ts.map +1 -1
  284. package/lib/types/src/update-proxy-config.d.ts.map +1 -1
  285. package/lib/types/src/update-registrar-authorities.d.ts.map +1 -1
  286. package/lib/types/src/update-rewardable-entity-config.d.ts.map +1 -1
  287. package/lib/types/src/update-subdao-vehnt.d.ts.map +1 -1
  288. package/lib/types/src/update-subdao.d.ts.map +1 -1
  289. package/lib/types/src/update-token-metadata.d.ts.map +1 -1
  290. package/lib/types/src/upgrade-idl.d.ts.map +1 -1
  291. package/lib/types/src/upsert-incentive-program.d.ts.map +1 -1
  292. package/lib/types/src/utils.d.ts +12 -0
  293. package/lib/types/src/utils.d.ts.map +1 -1
  294. package/package.json +16 -15
@@ -0,0 +1,287 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { keyToAssetForAsset } from "@helium/helium-entity-manager-sdk";
3
+ import { daoKey } from "@helium/helium-sub-daos-sdk";
4
+ import { init as initLazy, lazyDistributorKey, } from "@helium/lazy-distributor-sdk";
5
+ import { init as initRewards } from "@helium/rewards-oracle-sdk";
6
+ import { init as initMem } from "@helium/mobile-entity-manager-sdk";
7
+ import { HNT_MINT, MOBILE_MINT, getAssetBatch, batchInstructionsToTxsWithPriorityFee, bulkSendTransactions, chunks, } from "@helium/spl-utils";
8
+ import { PublicKey } from "@solana/web3.js";
9
+ import bs58 from "bs58";
10
+ import os from "os";
11
+ import pLimit from "p-limit";
12
+ import yargs from "yargs/yargs";
13
+ import { loadKeypair } from "./utils";
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
+ authority: {
27
+ type: "string",
28
+ describe: "Path to the authority keypair. Defaults to wallet.",
29
+ },
30
+ approver: {
31
+ type: "string",
32
+ describe: "Path to the approver keypair (if lazy distributor has approver set)",
33
+ },
34
+ commit: {
35
+ type: "boolean",
36
+ describe: "Actually close accounts. Otherwise dry-run",
37
+ default: false,
38
+ },
39
+ });
40
+ const argv = await yarg.argv;
41
+ process.env.ANCHOR_WALLET = argv.wallet;
42
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
43
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
44
+ const provider = anchor.getProvider();
45
+ const lazyProgram = await initLazy(provider);
46
+ const rewardsOracleProgram = await initRewards(provider);
47
+ const memProgram = await initMem(provider);
48
+ const authority = argv.authority
49
+ ? loadKeypair(argv.authority)
50
+ : loadKeypair(argv.wallet);
51
+ const approver = argv.approver ? loadKeypair(argv.approver) : null;
52
+ const dao = daoKey(HNT_MINT)[0];
53
+ const lazyDistributor = lazyDistributorKey(MOBILE_MINT)[0];
54
+ // Fetch all subscriber collections
55
+ console.log("Fetching CarrierV0 accounts to identify subscriber collections...");
56
+ const carriers = await memProgram.account.carrierV0.all();
57
+ const subscriberCollections = new Set();
58
+ for (const carrier of carriers) {
59
+ subscriberCollections.add(carrier.account.collection.toBase58());
60
+ }
61
+ console.log(` Found ${subscriberCollections.size} subscriber collection(s) from ${carriers.length} carriers\n`);
62
+ console.log("Fetching RecipientV0 accounts for MOBILE lazy distributor using pagination...");
63
+ const PAGE_SIZE = 5000; // Helius supports up to 5k per page for getProgramAccountsV2
64
+ const BATCH_SIZE = 50000; // Process in 50k chunks to avoid memory issues
65
+ let paginationKey = null;
66
+ let page = 0;
67
+ let totalRecipientsFetched = 0;
68
+ let totalSkippedNonSubscriber = 0;
69
+ let currentBatch = [];
70
+ const subscriberRecipients = [];
71
+ async function fetchAssetBatchWithRetry(chunk, maxRetries = 5) {
72
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
73
+ try {
74
+ const result = await getAssetBatch(provider.connection.rpcEndpoint, chunk);
75
+ return result || [];
76
+ }
77
+ catch (err) {
78
+ const is429 = err.message?.includes("429") || err.status === 429;
79
+ if (attempt === maxRetries - 1 || !is429) {
80
+ console.error(`Failed to fetch asset batch after ${maxRetries} attempts: ${err.message}`);
81
+ return [];
82
+ }
83
+ // Exponential backoff for rate limits
84
+ const delay = Math.min(2000 * Math.pow(2, attempt), 30000);
85
+ console.log(` Rate limited, retrying in ${delay / 1000}s...`);
86
+ await new Promise((resolve) => setTimeout(resolve, delay));
87
+ }
88
+ }
89
+ return [];
90
+ }
91
+ async function processBatch(batch, batchLabel) {
92
+ console.log(`\n--- Processing ${batchLabel} ---`);
93
+ const assetIds = batch.map((r) => r.account.asset);
94
+ console.log(`Fetching ${assetIds.length.toLocaleString()} assets...`);
95
+ // Fetch assets with concurrency control
96
+ const assetChunks = chunks(assetIds, 1000);
97
+ const assetLimiter = pLimit(10);
98
+ let fetchedCount = 0;
99
+ let assetBatchIndex = 0;
100
+ const assetResults = await Promise.all(assetChunks.map((chunk) => assetLimiter(async () => {
101
+ const result = await fetchAssetBatchWithRetry(chunk);
102
+ fetchedCount += chunk.length;
103
+ assetBatchIndex++;
104
+ if (assetBatchIndex % 10 === 0 || fetchedCount >= assetIds.length) {
105
+ console.log(` ${assetBatchIndex} batches: ${fetchedCount.toLocaleString()} assets`);
106
+ }
107
+ return result;
108
+ })));
109
+ const assets = assetResults.flat();
110
+ // Filter for subscriber assets
111
+ console.log("Filtering for subscriber assets...");
112
+ let batchNonSubscribers = 0;
113
+ let batchSubscribers = 0;
114
+ batch.forEach((recipient, index) => {
115
+ const asset = assets[index];
116
+ if (!asset) {
117
+ batchNonSubscribers++;
118
+ return;
119
+ }
120
+ const assetCollection = asset.grouping?.find((g) => g.group_key === "collection")?.group_value;
121
+ if (assetCollection &&
122
+ subscriberCollections.has(assetCollection.toBase58())) {
123
+ subscriberRecipients.push({
124
+ address: recipient.publicKey,
125
+ asset,
126
+ recipientData: recipient.account,
127
+ });
128
+ batchSubscribers++;
129
+ }
130
+ else {
131
+ batchNonSubscribers++;
132
+ }
133
+ });
134
+ return {
135
+ subscribers: batchSubscribers,
136
+ nonSubscribers: batchNonSubscribers,
137
+ };
138
+ }
139
+ // Pagination and batch processing loop
140
+ console.log("Fetching recipients with pagination and processing in batches...\n");
141
+ do {
142
+ page++;
143
+ // Fetch next page
144
+ const response = await fetch(provider.connection.rpcEndpoint, {
145
+ method: "POST",
146
+ headers: { "Content-Type": "application/json" },
147
+ body: JSON.stringify({
148
+ jsonrpc: "2.0",
149
+ id: `page-${page}`,
150
+ method: "getProgramAccountsV2",
151
+ params: [
152
+ lazyProgram.programId.toBase58(),
153
+ {
154
+ encoding: "base64",
155
+ filters: [
156
+ {
157
+ memcmp: {
158
+ offset: 8,
159
+ bytes: lazyDistributor.toBase58(),
160
+ },
161
+ },
162
+ ],
163
+ limit: PAGE_SIZE,
164
+ ...(paginationKey && { paginationKey }),
165
+ },
166
+ ],
167
+ }),
168
+ });
169
+ const data = await response.json();
170
+ if (data.error) {
171
+ throw new Error(`RPC error: ${data.error.message}`);
172
+ }
173
+ const { result } = data;
174
+ // If no more results, set paginationKey to null to end pagination
175
+ if (!result || !result.accounts || result.accounts.length === 0) {
176
+ paginationKey = null;
177
+ }
178
+ else {
179
+ // Decode and add to current batch
180
+ const pageRecipients = result.accounts.map((item) => ({
181
+ publicKey: new PublicKey(item.pubkey),
182
+ account: lazyProgram.coder.accounts.decode("recipientV0", Buffer.from(item.account.data[0], "base64")),
183
+ }));
184
+ currentBatch.push(...pageRecipients);
185
+ totalRecipientsFetched += pageRecipients.length;
186
+ if (page % 10 === 0) {
187
+ console.log(` Fetched ${totalRecipientsFetched.toLocaleString()} recipients (batch size: ${currentBatch.length.toLocaleString()})...`);
188
+ }
189
+ paginationKey = result.paginationKey || null;
190
+ }
191
+ // Process batch when we hit BATCH_SIZE or finished pagination
192
+ const shouldProcessBatch = currentBatch.length >= BATCH_SIZE || !paginationKey;
193
+ if (shouldProcessBatch && currentBatch.length > 0) {
194
+ const { subscribers, nonSubscribers } = await processBatch(currentBatch, `batch of ${currentBatch.length.toLocaleString()} recipients`);
195
+ totalSkippedNonSubscriber += nonSubscribers;
196
+ console.log(`Found ${subscriberRecipients.length.toLocaleString()} subscriber recipients so far (${subscribers} subscribers, ${nonSubscribers} non-subscribers in this batch)\n`);
197
+ // Clear current batch to free memory
198
+ currentBatch = [];
199
+ }
200
+ } while (paginationKey);
201
+ console.log(`\n=== Summary ===`);
202
+ console.log(`Processed ${totalRecipientsFetched.toLocaleString()} total RecipientV0 accounts`);
203
+ console.log(`${subscriberRecipients.length.toLocaleString()} are for subscriber assets`);
204
+ console.log(`${totalSkippedNonSubscriber.toLocaleString()} skipped (non-subscriber assets)`);
205
+ if (!argv.commit) {
206
+ console.log(`\nDry run: would close ${subscriberRecipients.length} subscriber recipient accounts. Re-run with --commit to close recipients.`);
207
+ return;
208
+ }
209
+ if (subscriberRecipients.length === 0) {
210
+ console.log("\nNo subscriber recipient accounts to close.");
211
+ return;
212
+ }
213
+ console.log(`\nClosing ${subscriberRecipients.length.toLocaleString()} recipient accounts...`);
214
+ // Build close instructions
215
+ let failedCount = 0;
216
+ let processed = 0;
217
+ const recipientChunks = chunks(subscriberRecipients, 100);
218
+ const instructionLimiter = pLimit(50);
219
+ const allBatchResults = await Promise.all(recipientChunks.map((chunk) => instructionLimiter(async () => {
220
+ const batchResults = await Promise.all(chunk.map(async (recipient) => {
221
+ try {
222
+ const { address: recipientAddr, asset } = recipient;
223
+ // Compute the KeyToAssetV0 address
224
+ const keyToAsset = keyToAssetForAsset(asset, dao);
225
+ // Extract entity key from asset URI
226
+ const entityKeyStr = asset.content.json_uri.split("/").pop() || "";
227
+ const cleanEntityKeyStr = entityKeyStr.split(/[.?#]/)[0];
228
+ const entityKeyBytes = Buffer.from(bs58.decode(cleanEntityKeyStr));
229
+ // Get oracle_signer PDA
230
+ const [oracleSigner] = PublicKey.findProgramAddressSync([Buffer.from("oracle_signer", "utf-8")], rewardsOracleProgram.programId);
231
+ return await rewardsOracleProgram.methods
232
+ .tempCloseRecipientWrapperV0({
233
+ entityKey: entityKeyBytes,
234
+ asset: new PublicKey(asset.id),
235
+ })
236
+ .accountsPartial({
237
+ lazyDistributor,
238
+ recipient: recipientAddr,
239
+ keyToAsset,
240
+ dao,
241
+ authority: authority.publicKey,
242
+ approver: approver?.publicKey || null,
243
+ oracleSigner,
244
+ lazyDistributorProgram: lazyProgram.programId,
245
+ })
246
+ .instruction();
247
+ }
248
+ catch (err) {
249
+ console.error(`Error building instruction for recipient ${recipient.address.toBase58()}: ${err.message}`);
250
+ return null;
251
+ }
252
+ }));
253
+ processed += chunk.length;
254
+ const validResults = batchResults.filter((i) => i !== null);
255
+ failedCount += chunk.length - validResults.length;
256
+ // Show progress every 1000 recipients or at end
257
+ if (processed % 1000 === 0 ||
258
+ processed === subscriberRecipients.length) {
259
+ console.log(` Prepared ${processed - failedCount} / ${subscriberRecipients.length.toLocaleString()} instructions (${failedCount} failed)...`);
260
+ }
261
+ return batchResults;
262
+ })));
263
+ const instructions = allBatchResults
264
+ .flat()
265
+ .filter((i) => i !== null);
266
+ const instructionCount = instructions.length;
267
+ // Free memory
268
+ subscriberRecipients.length = 0;
269
+ console.log(`\nBatching ${instructionCount.toLocaleString()} instructions into transactions...`);
270
+ const txns = await batchInstructionsToTxsWithPriorityFee(provider, instructions, {
271
+ useFirstEstimateForAll: true,
272
+ computeUnitLimit: 600000,
273
+ });
274
+ // Free memory - instructions now in transactions
275
+ instructions.length = 0;
276
+ console.log(`\nSending ${txns.length} transactions...`);
277
+ // Sign with authority and approver (if present)
278
+ const extraSigners = [authority];
279
+ if (approver) {
280
+ extraSigners.push(approver);
281
+ }
282
+ await bulkSendTransactions(provider, txns, (status) => {
283
+ console.log(`Sending ${status.currentBatchProgress} / ${status.currentBatchSize} in batch. ${status.totalProgress} / ${txns.length}`);
284
+ }, 10, extraSigners);
285
+ console.log(`\n✓ Complete: Closed ${instructionCount} recipient accounts${failedCount > 0 ? ` (${failedCount} failed to build instructions)` : ""}`);
286
+ }
287
+ //# sourceMappingURL=close-all-subscriber-recipients.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close-all-subscriber-recipients.js","sourceRoot":"","sources":["../../../src/close-all-subscriber-recipients.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import * as anchor from '@coral-xyz/anchor';
2
2
  import { PublicKey } from '@solana/web3.js';
3
- import Squads from '@sqds/sdk';
3
+ import * as multisig from '@sqds/multisig';
4
4
  import os from 'os';
5
5
  import yargs from 'yargs/yargs';
6
- import { createCloseBufferInstruction, loadKeypair, sendInstructionsOrSquads, } from './utils';
6
+ import { createCloseBufferInstruction, loadKeypair, sendInstructionsOrSquadsV4, } from './utils';
7
7
  import { BPF_UPGRADE_LOADER_ID } from '@solana/spl-governance';
8
8
  import bs58 from 'bs58';
9
9
  export async function run(args = process.argv) {
@@ -18,18 +18,10 @@ export async function run(args = process.argv) {
18
18
  default: 'http://127.0.0.1:8899',
19
19
  describe: 'The solana url',
20
20
  },
21
- executeTransaction: {
22
- type: 'boolean',
23
- },
24
21
  multisig: {
25
22
  type: 'string',
26
23
  describe: 'Address of the squads multisig to be authority. If not provided, your wallet will be the authority',
27
24
  },
28
- authorityIndex: {
29
- type: 'number',
30
- describe: 'Authority index for squads. Defaults to 1',
31
- default: 1,
32
- },
33
25
  programId: {
34
26
  type: 'string',
35
27
  required: true,
@@ -42,13 +34,14 @@ export async function run(args = process.argv) {
42
34
  const provider = anchor.getProvider();
43
35
  const wallet = new anchor.Wallet(loadKeypair(argv.wallet));
44
36
  const connection = provider.connection;
45
- const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
46
- commitmentOrConfig: 'finalized',
47
- });
48
37
  let authority = provider.wallet.publicKey;
49
- let multisig = argv.multisig ? new PublicKey(argv.multisig) : null;
50
- if (multisig) {
51
- authority = squads.getAuthorityPDA(multisig, argv.authorityIndex);
38
+ let multisigPda = argv.multisig ? new PublicKey(argv.multisig) : null;
39
+ if (multisigPda) {
40
+ const [vaultPda] = multisig.getVaultPda({
41
+ multisigPda,
42
+ index: 0,
43
+ });
44
+ authority = vaultPda;
52
45
  }
53
46
  console.log(authority.toBase58());
54
47
  const buffers = (await connection.getProgramAccounts(BPF_UPGRADE_LOADER_ID, {
@@ -78,13 +71,10 @@ export async function run(args = process.argv) {
78
71
  ],
79
72
  })).map((b) => b.pubkey);
80
73
  const instructions = await Promise.all(buffers.map((b) => createCloseBufferInstruction(new PublicKey(argv.programId), b, authority, provider.wallet.publicKey)));
81
- await sendInstructionsOrSquads({
74
+ await sendInstructionsOrSquadsV4({
82
75
  provider,
83
76
  instructions,
84
- executeTransaction: argv.executeTransaction,
85
- squads,
86
- multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
87
- authorityIndex: argv.authorityIndex,
77
+ multisig: multisigPda,
88
78
  signers: [],
89
79
  });
90
80
  }
@@ -1 +1 @@
1
- {"version":3,"file":"close-buffers.js","sourceRoot":"","sources":["../../../src/close-buffers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"close-buffers.js","sourceRoot":"","sources":["../../../src/close-buffers.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,8 @@
1
1
  import * as anchor from '@coral-xyz/anchor';
2
2
  import { PublicKey } from '@solana/web3.js';
3
- import Squads from '@sqds/sdk';
4
3
  import os from 'os';
5
4
  import yargs from 'yargs/yargs';
6
- import { loadKeypair, sendInstructionsOrSquads, } from './utils';
5
+ import { loadKeypair, sendInstructionsOrSquadsV4, } from './utils';
7
6
  import { init, lazyTransactionsKey } from '@helium/lazy-transactions-sdk';
8
7
  export async function run(args = process.argv) {
9
8
  const yarg = yargs(args).options({
@@ -22,18 +21,10 @@ export async function run(args = process.argv) {
22
21
  type: 'string',
23
22
  describe: 'Lazy dist name',
24
23
  },
25
- executeTransaction: {
26
- type: 'boolean',
27
- },
28
24
  multisig: {
29
25
  type: 'string',
30
26
  describe: 'Address of the squads multisig to be authority. If not provided, your wallet will be the authority',
31
27
  },
32
- authorityIndex: {
33
- type: 'number',
34
- describe: 'Authority index for squads. Defaults to 1',
35
- default: 1,
36
- },
37
28
  });
38
29
  const argv = await yarg.argv;
39
30
  process.env.ANCHOR_WALLET = argv.wallet;
@@ -51,16 +42,10 @@ export async function run(args = process.argv) {
51
42
  refund: provider.wallet.publicKey,
52
43
  })
53
44
  .instruction());
54
- const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
55
- commitmentOrConfig: 'finalized',
56
- });
57
- await sendInstructionsOrSquads({
45
+ await sendInstructionsOrSquadsV4({
58
46
  provider,
59
47
  instructions,
60
- executeTransaction: argv.executeTransaction,
61
- squads,
62
48
  multisig: argv.multisig ? new PublicKey(argv.multisig) : undefined,
63
- authorityIndex: argv.authorityIndex,
64
49
  signers: [],
65
50
  });
66
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"close-canopy.js","sourceRoot":"","sources":["../../../src/close-canopy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,SAAS,EAA0B,MAAM,iBAAiB,CAAC;AACpE,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EACL,WAAW,EAEX,wBAAwB,GACzB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAY,OAAO,CAAC,IAAI;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAC/B,MAAM,EAAE;YACN,KAAK,EAAE,GAAG;YACV,QAAQ,EAAE,uBAAuB;YACjC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,yBAAyB;SAClD;QACD,GAAG,EAAE;YACH,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,uBAAuB;YAChC,QAAQ,EAAE,gBAAgB;SAC3B;QACD,IAAI,EAAE;YACJ,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,gBAAgB;SAC3B;QACD,kBAAkB,EAAE;YAClB,IAAI,EAAE,SAAS;SAChB;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EACN,oGAAoG;SACvG;QACD,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,2CAA2C;YACrD,OAAO,EAAE,CAAC;SACX;KACF,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC;IAC3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAA2B,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IAErC,MAAM,YAAY,GAA6B,EAAE,CAAC;IAElD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,CAAC,IAAI,CACf,MAAM,OAAO,CAAC,OAAO;SAClB,aAAa,EAAE;SACf,eAAe,CAAC;QACf,gBAAgB;QAChB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;KAClC,CAAC;SACD,WAAW,EAAE,CACjB,CAAC;IAEF,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,MAAM,EAAE;QACtE,kBAAkB,EAAE,WAAW;KAChC,CAAC,CAAC;IACH,MAAM,wBAAwB,CAAC;QAC7B,QAAQ;QACR,YAAY;QACZ,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;QAC3C,MAAM;QACN,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QAClE,cAAc,EAAE,IAAI,CAAC,cAAc;QACnC,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"close-canopy.js","sourceRoot":"","sources":["../../../src/close-canopy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAE5C,OAAO,EAAE,SAAS,EAA0B,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,MAAM,aAAa,CAAC;AAChC,OAAO,EACL,WAAW,EAEX,0BAA0B,GAC3B,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,IAAI,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAY,OAAO,CAAC,IAAI;IAChD,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAC/B,MAAM,EAAE;YACN,KAAK,EAAE,GAAG;YACV,QAAQ,EAAE,uBAAuB;YACjC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,yBAAyB;SAClD;QACD,GAAG,EAAE;YACH,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,uBAAuB;YAChC,QAAQ,EAAE,gBAAgB;SAC3B;QACD,IAAI,EAAE;YACJ,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,QAAQ;YACd,QAAQ,EAAE,gBAAgB;SAC3B;QACD,QAAQ,EAAE;YACR,IAAI,EAAE,QAAQ;YACd,QAAQ,EACN,oGAAoG;SACvG;KACF,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC;IAC3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAA2B,CAAC;IAC/D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IAErC,MAAM,YAAY,GAA6B,EAAE,CAAC;IAElD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3D,YAAY,CAAC,IAAI,CACf,MAAM,OAAO,CAAC,OAAO;SAClB,aAAa,EAAE;SACf,eAAe,CAAC;QACf,gBAAgB;QAChB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,SAAS;KAClC,CAAC;SACD,WAAW,EAAE,CACjB,CAAC;IAEF,MAAM,0BAA0B,CAAC;QAC/B,QAAQ;QACR,YAAY;QACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS;QAClE,OAAO,EAAE,EAAE;KACZ,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,88 @@
1
+ import * as anchor from "@coral-xyz/anchor";
2
+ import { delegatedDataCreditsKey } from "@helium/data-credits-sdk";
3
+ import { autoTopOffKey, init as initDcAutoTopoff, } from "@helium/dc-auto-top-sdk";
4
+ import { subDaoKey } from "@helium/helium-sub-daos-sdk";
5
+ import { DC_MINT, HNT_MINT, MOBILE_MINT } from "@helium/spl-utils";
6
+ import { createAssociatedTokenAccountIdempotentInstruction, getAssociatedTokenAddressSync, } from "@solana/spl-token";
7
+ import { PublicKey } from "@solana/web3.js";
8
+ import os from "os";
9
+ import yargs from "yargs/yargs";
10
+ import { sendInstructionsOrSquads, } from "./utils";
11
+ import Squads from "@sqds/sdk";
12
+ export async function run(args = process.argv) {
13
+ const yarg = yargs(args).options({
14
+ wallet: {
15
+ alias: "k",
16
+ describe: "Anchor wallet keypair",
17
+ default: `${os.homedir()}/.config/solana/id.json`,
18
+ },
19
+ url: {
20
+ alias: "u",
21
+ default: "http://127.0.0.1:8899",
22
+ describe: "The solana url",
23
+ },
24
+ hntMint: {
25
+ type: "string",
26
+ describe: "Pubkey of the HNT token",
27
+ default: HNT_MINT.toBase58(),
28
+ },
29
+ dcMint: {
30
+ type: "string",
31
+ describe: "Pubkey of the Data Credit token",
32
+ default: DC_MINT.toBase58(),
33
+ },
34
+ routerKey: {
35
+ type: "string",
36
+ describe: "The router key for the delegated data credits",
37
+ required: true,
38
+ },
39
+ subDaoMint: {
40
+ type: "string",
41
+ describe: "The sub dao mint for the delegated data credits",
42
+ default: MOBILE_MINT.toBase58(),
43
+ },
44
+ multisig: {
45
+ type: "string",
46
+ describe: "Address of the squads multisig to be authority. If not provided, your wallet will be the authority",
47
+ },
48
+ });
49
+ const argv = await yarg.argv;
50
+ process.env.ANCHOR_WALLET = argv.wallet;
51
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
52
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
53
+ const subDaoMint = new PublicKey(argv.subDaoMint);
54
+ const subDao = subDaoKey(subDaoMint)[0];
55
+ const dcMint = new PublicKey(argv.dcMint);
56
+ const provider = anchor.getProvider();
57
+ const dcAutoTopoffProgram = await initDcAutoTopoff(provider);
58
+ let authority = provider.wallet.publicKey;
59
+ const squads = new Squads({
60
+ connection: provider.connection,
61
+ wallet: provider.wallet,
62
+ });
63
+ let multisigPda = argv.multisig ? new PublicKey(argv.multisig) : null;
64
+ if (multisigPda) {
65
+ authority = squads.getAuthorityPDA(multisigPda, 1);
66
+ }
67
+ const routerKey = argv.routerKey;
68
+ const delegatedDc = delegatedDataCreditsKey(subDao, routerKey)[0];
69
+ const autoTopOff = autoTopOffKey(delegatedDc, authority)[0];
70
+ const createDcAtaIx = createAssociatedTokenAccountIdempotentInstruction(authority, getAssociatedTokenAddressSync(dcMint, authority, true), authority, dcMint);
71
+ const closeLegacyIx = await dcAutoTopoffProgram.methods
72
+ .closeLegacyAutoTopOff()
73
+ .accounts({
74
+ delegatedDataCredits: delegatedDc,
75
+ dcAccount: getAssociatedTokenAddressSync(dcMint, autoTopOff, true),
76
+ })
77
+ .instruction();
78
+ await sendInstructionsOrSquads({
79
+ provider,
80
+ instructions: [createDcAtaIx, closeLegacyIx],
81
+ multisig: multisigPda,
82
+ signers: [],
83
+ authorityIndex: 1,
84
+ executeTransaction: false,
85
+ squads,
86
+ });
87
+ }
88
+ //# sourceMappingURL=close-legacy-auto-topoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close-legacy-auto-topoff.js","sourceRoot":"","sources":["../../../src/close-legacy-auto-topoff.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,8 @@ import { Keypair, PublicKey, SystemProgram, } from '@solana/web3.js';
10
10
  import fs from 'fs';
11
11
  import os from 'os';
12
12
  import yargs from 'yargs/yargs';
13
- import { exists, loadKeypair, sendInstructionsOrSquads, merkleSizes, } from './utils';
14
- import Squads from '@sqds/sdk';
13
+ import { exists, loadKeypair, sendInstructionsOrSquadsV4, merkleSizes, } from './utils';
14
+ import * as multisig from '@sqds/multisig';
15
15
  export async function run(args = process.argv) {
16
16
  const yarg = yargs(args).options({
17
17
  wallet: {
@@ -19,9 +19,6 @@ export async function run(args = process.argv) {
19
19
  describe: 'Anchor wallet keypair',
20
20
  default: `${os.homedir()}/.config/solana/id.json`,
21
21
  },
22
- executeTransaction: {
23
- type: 'boolean',
24
- },
25
22
  url: {
26
23
  alias: 'u',
27
24
  default: 'http://127.0.0.1:8899',
@@ -75,11 +72,6 @@ export async function run(args = process.argv) {
75
72
  type: 'string',
76
73
  describe: 'Address of the squads multisig to be authority. If not provided, your wallet will be the authority',
77
74
  },
78
- authorityIndex: {
79
- type: 'number',
80
- describe: 'Authority index for squads. Defaults to 1',
81
- default: 1,
82
- },
83
75
  });
84
76
  const argv = await yarg.argv;
85
77
  process.env.ANCHOR_WALLET = argv.wallet;
@@ -120,13 +112,14 @@ export async function run(args = process.argv) {
120
112
  const dao = await hsdProgram.account.daoV0.fetch(subdaoAcc.dao);
121
113
  let subdaoPayer = provider.wallet.publicKey;
122
114
  let daoPayer = provider.wallet.publicKey;
123
- const squads = Squads.endpoint(process.env.ANCHOR_PROVIDER_URL, wallet, {
124
- commitmentOrConfig: 'finalized',
125
- });
126
115
  let authority = provider.wallet.publicKey;
127
- let multisig = argv.multisig ? new PublicKey(argv.multisig) : null;
128
- if (multisig) {
129
- authority = squads.getAuthorityPDA(multisig, argv.authorityIndex);
116
+ let multisigPda = argv.multisig ? new PublicKey(argv.multisig) : null;
117
+ if (multisigPda) {
118
+ const [vaultPda] = multisig.getVaultPda({
119
+ multisigPda,
120
+ index: 0,
121
+ });
122
+ authority = vaultPda;
130
123
  subdaoPayer = authority;
131
124
  daoPayer = authority;
132
125
  console.log('SQUAD AUTH', authority.toBase58());
@@ -257,19 +250,16 @@ export async function run(args = process.argv) {
257
250
  approveInstructions.push(innerApproveInstrs);
258
251
  }
259
252
  console.log('Total sol needed: ', humanReadable(new anchor.BN(totalSol), 9));
260
- if (multisig) {
253
+ if (multisigPda) {
261
254
  // Approve instructions must execute after ALL create instructions
262
255
  const instrs = createInstructions.flat().filter(truthy);
263
256
  const approveInstrs = approveInstructions.flat().filter(truthy);
264
257
  for (const chunk of chunks([...instrs, ...approveInstrs], 3)) {
265
- await sendInstructionsOrSquads({
258
+ await sendInstructionsOrSquadsV4({
266
259
  provider,
267
260
  instructions: chunk,
268
261
  signers: [],
269
- executeTransaction: argv.executeTransaction,
270
- squads,
271
- multisig,
272
- authorityIndex: argv.authorityIndex,
262
+ multisig: multisigPda,
273
263
  });
274
264
  }
275
265
  }