@helium/helium-admin-cli 0.0.49-price.1

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 (136) hide show
  1. package/README.md +91 -0
  2. package/bin/helium-admin.js +13 -0
  3. package/lib/cjs/cli-distribute-rewards.js +96 -0
  4. package/lib/cjs/cli-distribute-rewards.js.map +1 -0
  5. package/lib/cjs/create-active-device-aggregator.js +112 -0
  6. package/lib/cjs/create-active-device-aggregator.js.map +1 -0
  7. package/lib/cjs/create-dao.js +384 -0
  8. package/lib/cjs/create-dao.js.map +1 -0
  9. package/lib/cjs/create-maker.js +323 -0
  10. package/lib/cjs/create-maker.js.map +1 -0
  11. package/lib/cjs/create-price-oracle.js +121 -0
  12. package/lib/cjs/create-price-oracle.js.map +1 -0
  13. package/lib/cjs/create-subdao.js +496 -0
  14. package/lib/cjs/create-subdao.js.map +1 -0
  15. package/lib/cjs/distribute-hst.js +94 -0
  16. package/lib/cjs/distribute-hst.js.map +1 -0
  17. package/lib/cjs/ecc-gen.js +17 -0
  18. package/lib/cjs/ecc-gen.js.map +1 -0
  19. package/lib/cjs/end-epoch.js +144 -0
  20. package/lib/cjs/end-epoch.js.map +1 -0
  21. package/lib/cjs/log-hotspot.js +80 -0
  22. package/lib/cjs/log-hotspot.js.map +1 -0
  23. package/lib/cjs/mint-dc.js +112 -0
  24. package/lib/cjs/mint-dc.js.map +1 -0
  25. package/lib/cjs/reset-clockwork.js +141 -0
  26. package/lib/cjs/reset-clockwork.js.map +1 -0
  27. package/lib/cjs/reset-vsr-max-voter-record.js +142 -0
  28. package/lib/cjs/reset-vsr-max-voter-record.js.map +1 -0
  29. package/lib/cjs/reset-vsr-voting-mint.js +179 -0
  30. package/lib/cjs/reset-vsr-voting-mint.js.map +1 -0
  31. package/lib/cjs/setup-hst.js +243 -0
  32. package/lib/cjs/setup-hst.js.map +1 -0
  33. package/lib/cjs/submit-price.js +158 -0
  34. package/lib/cjs/submit-price.js.map +1 -0
  35. package/lib/cjs/update-account-circuit-breaker.js +127 -0
  36. package/lib/cjs/update-account-circuit-breaker.js.map +1 -0
  37. package/lib/cjs/update-dao.js +146 -0
  38. package/lib/cjs/update-dao.js.map +1 -0
  39. package/lib/cjs/update-mint-circuit-breaker.js +129 -0
  40. package/lib/cjs/update-mint-circuit-breaker.js.map +1 -0
  41. package/lib/cjs/update-rewardable-entity-config.js +143 -0
  42. package/lib/cjs/update-rewardable-entity-config.js.map +1 -0
  43. package/lib/cjs/update-subdao.js +228 -0
  44. package/lib/cjs/update-subdao.js.map +1 -0
  45. package/lib/cjs/utils.js +366 -0
  46. package/lib/cjs/utils.js.map +1 -0
  47. package/lib/esm/src/cli-distribute-rewards.js +55 -0
  48. package/lib/esm/src/cli-distribute-rewards.js.map +1 -0
  49. package/lib/esm/src/create-active-device-aggregator.js +71 -0
  50. package/lib/esm/src/create-active-device-aggregator.js.map +1 -0
  51. package/lib/esm/src/create-dao.js +341 -0
  52. package/lib/esm/src/create-dao.js.map +1 -0
  53. package/lib/esm/src/create-maker.js +282 -0
  54. package/lib/esm/src/create-maker.js.map +1 -0
  55. package/lib/esm/src/create-price-oracle.js +80 -0
  56. package/lib/esm/src/create-price-oracle.js.map +1 -0
  57. package/lib/esm/src/create-subdao.js +455 -0
  58. package/lib/esm/src/create-subdao.js.map +1 -0
  59. package/lib/esm/src/distribute-hst.js +53 -0
  60. package/lib/esm/src/distribute-hst.js.map +1 -0
  61. package/lib/esm/src/ecc-gen.js +6 -0
  62. package/lib/esm/src/ecc-gen.js.map +1 -0
  63. package/lib/esm/src/end-epoch.js +103 -0
  64. package/lib/esm/src/end-epoch.js.map +1 -0
  65. package/lib/esm/src/log-hotspot.js +39 -0
  66. package/lib/esm/src/log-hotspot.js.map +1 -0
  67. package/lib/esm/src/mint-dc.js +71 -0
  68. package/lib/esm/src/mint-dc.js.map +1 -0
  69. package/lib/esm/src/reset-clockwork.js +100 -0
  70. package/lib/esm/src/reset-clockwork.js.map +1 -0
  71. package/lib/esm/src/reset-vsr-max-voter-record.js +101 -0
  72. package/lib/esm/src/reset-vsr-max-voter-record.js.map +1 -0
  73. package/lib/esm/src/reset-vsr-voting-mint.js +138 -0
  74. package/lib/esm/src/reset-vsr-voting-mint.js.map +1 -0
  75. package/lib/esm/src/setup-hst.js +201 -0
  76. package/lib/esm/src/setup-hst.js.map +1 -0
  77. package/lib/esm/src/submit-price.js +113 -0
  78. package/lib/esm/src/submit-price.js.map +1 -0
  79. package/lib/esm/src/update-account-circuit-breaker.js +86 -0
  80. package/lib/esm/src/update-account-circuit-breaker.js.map +1 -0
  81. package/lib/esm/src/update-dao.js +105 -0
  82. package/lib/esm/src/update-dao.js.map +1 -0
  83. package/lib/esm/src/update-mint-circuit-breaker.js +88 -0
  84. package/lib/esm/src/update-mint-circuit-breaker.js.map +1 -0
  85. package/lib/esm/src/update-rewardable-entity-config.js +102 -0
  86. package/lib/esm/src/update-rewardable-entity-config.js.map +1 -0
  87. package/lib/esm/src/update-subdao.js +187 -0
  88. package/lib/esm/src/update-subdao.js.map +1 -0
  89. package/lib/esm/src/utils.js +309 -0
  90. package/lib/esm/src/utils.js.map +1 -0
  91. package/lib/esm/tsconfig.esm.tsbuildinfo +1 -0
  92. package/lib/types/src/cli-distribute-rewards.d.ts +2 -0
  93. package/lib/types/src/cli-distribute-rewards.d.ts.map +1 -0
  94. package/lib/types/src/create-active-device-aggregator.d.ts +2 -0
  95. package/lib/types/src/create-active-device-aggregator.d.ts.map +1 -0
  96. package/lib/types/src/create-dao.d.ts +2 -0
  97. package/lib/types/src/create-dao.d.ts.map +1 -0
  98. package/lib/types/src/create-maker.d.ts +2 -0
  99. package/lib/types/src/create-maker.d.ts.map +1 -0
  100. package/lib/types/src/create-price-oracle.d.ts +2 -0
  101. package/lib/types/src/create-price-oracle.d.ts.map +1 -0
  102. package/lib/types/src/create-subdao.d.ts +2 -0
  103. package/lib/types/src/create-subdao.d.ts.map +1 -0
  104. package/lib/types/src/distribute-hst.d.ts +2 -0
  105. package/lib/types/src/distribute-hst.d.ts.map +1 -0
  106. package/lib/types/src/ecc-gen.d.ts +2 -0
  107. package/lib/types/src/ecc-gen.d.ts.map +1 -0
  108. package/lib/types/src/end-epoch.d.ts +2 -0
  109. package/lib/types/src/end-epoch.d.ts.map +1 -0
  110. package/lib/types/src/log-hotspot.d.ts +2 -0
  111. package/lib/types/src/log-hotspot.d.ts.map +1 -0
  112. package/lib/types/src/mint-dc.d.ts +2 -0
  113. package/lib/types/src/mint-dc.d.ts.map +1 -0
  114. package/lib/types/src/reset-clockwork.d.ts +2 -0
  115. package/lib/types/src/reset-clockwork.d.ts.map +1 -0
  116. package/lib/types/src/reset-vsr-max-voter-record.d.ts +2 -0
  117. package/lib/types/src/reset-vsr-max-voter-record.d.ts.map +1 -0
  118. package/lib/types/src/reset-vsr-voting-mint.d.ts +2 -0
  119. package/lib/types/src/reset-vsr-voting-mint.d.ts.map +1 -0
  120. package/lib/types/src/setup-hst.d.ts +4 -0
  121. package/lib/types/src/setup-hst.d.ts.map +1 -0
  122. package/lib/types/src/submit-price.d.ts +2 -0
  123. package/lib/types/src/submit-price.d.ts.map +1 -0
  124. package/lib/types/src/update-account-circuit-breaker.d.ts +2 -0
  125. package/lib/types/src/update-account-circuit-breaker.d.ts.map +1 -0
  126. package/lib/types/src/update-dao.d.ts +2 -0
  127. package/lib/types/src/update-dao.d.ts.map +1 -0
  128. package/lib/types/src/update-mint-circuit-breaker.d.ts +2 -0
  129. package/lib/types/src/update-mint-circuit-breaker.d.ts.map +1 -0
  130. package/lib/types/src/update-rewardable-entity-config.d.ts +2 -0
  131. package/lib/types/src/update-rewardable-entity-config.d.ts.map +1 -0
  132. package/lib/types/src/update-subdao.d.ts +2 -0
  133. package/lib/types/src/update-subdao.d.ts.map +1 -0
  134. package/lib/types/src/utils.d.ts +55 -0
  135. package/lib/types/src/utils.d.ts.map +1 -0
  136. package/package.json +77 -0
package/README.md ADDED
@@ -0,0 +1,91 @@
1
+ First, brick the genesis transactions. This keeps someone from front-running the genesis transaction lazy signer.
2
+
3
+ Now, setup HST **using the migration service wallet**:
4
+
5
+ ```
6
+ helium-admin setup-hst -u https://api.devnet.solana.com --multisig BBhoCZSUJH8iiXHT5aP6GVbhnX2iY2vWR1BAsuYm7ZUm --hnt $(solana address -k keypairs/hnt.json) --name "HST"
7
+ ```
8
+
9
+ Next, make sure startUnixTime in the emissions schedules is equal to the current time.
10
+
11
+
12
+ Setup the price oracles:
13
+
14
+ ```
15
+ helium-admin create-price-oracle -u https://api.devnet.solana.com --multisig BBhoCZSUJH8iiXHT5aP6GVbhnX2iY2vWR1BAsuYm7ZUm --priceOracleKeypair keypairs/hnt-price-oracle.json --oracles price-oracle-authorities.json --decimals 8
16
+
17
+ helium-admin create-price-oracle -u https://api.devnet.solana.com --multisig BBhoCZSUJH8iiXHT5aP6GVbhnX2iY2vWR1BAsuYm7ZUm --priceOracleKeypair keypairs/mobile-price-oracle.json --oracles price-oracle-authorities.json --decimals 6
18
+
19
+ helium-admin create-price-oracle -u https://api.devnet.solana.com --multisig BBhoCZSUJH8iiXHT5aP6GVbhnX2iY2vWR1BAsuYm7ZUm --priceOracleKeypair keypairs/iot-price-oracle.json --oracles price-oracle-authorities.json --decimals 6
20
+ ```
21
+
22
+ ```
23
+ helium-admin create-dao -u https://api.devnet.solana.com --numHnt 200136852 --numHst 200000000 --numDc 2000000000000 --realmName "Helium" --emissionSchedulePath emissions/hnt.json --hstEmissionSchedulePath emissions/hst.json
24
+
25
+ helium-admin create-subdao -u https://api.devnet.solana.com --rewardsOracleUrl https://iot-oracle.oracle.helium.io --activeDeviceOracleUrl https://iot-rewards.oracle.helium.io/active-devices -n IOT --subdaoKeypair keypairs/iot.json --numTokens 100302580998 --emissionSchedulePath emissions/iot.json --realmName "Helium IOT" --dcBurnAuthority $(solana address) --executeProposal --switchboardNetwork devnet
26
+
27
+ helium-admin create-subdao -u https://api.devnet.solana.com --rewardsOracleUrl https://mobile-oracle.oracle.helium.io --activeDeviceOracleUrl https://mobile-rewards.oracle.helium.io/active-devices -n Mobile --subdaoKeypair keypairs/mobile.json --numTokens 100302580998 --emissionSchedulePath emissions/iot.json --realmName "Helium Mobile" --dcBurnAuthority $(solana address) --executeProposal --switchboardNetwork devnet
28
+ ```
29
+ Now, go approve and run all commands in realms.
30
+
31
+ Now create iot makers:
32
+
33
+ ```
34
+
35
+ helium-admin create-maker -u https://api.devnet.solana.com --symbol IOT --subdaoMint $(solana address -k keypairs/iot.json) --fromFile makers.json --executeProposal
36
+
37
+ ```
38
+
39
+ Next, create mobile makers:
40
+
41
+ ```
42
+ helium-admin create-maker -u https://api.devnet.solana.com --symbol MOBILE --subdaoMint $(solana address -k keypairs/mobile.json) --fromFile makers-mobile.json --executeProposal
43
+ ```
44
+
45
+ Now, fund any maker wallets
46
+
47
+ ```
48
+ helium-admin mint-dc -u https://api.devnet.solana.com --destination maker_address --numHnt 10000 --dcKey $(solana address -k keypairs/dc.json)
49
+
50
+ # If needed, fund the maker wallet
51
+ solana transfer -u devnet maker_address 1 --allow-unfunded-recipient
52
+ ```
53
+
54
+ Now, go approve and run maker create in realms
55
+
56
+ Now,migrate to a `-n` that nobody knows you're using. This will ensure nobody can frontrun
57
+
58
+ ```
59
+ cd ../migration-service
60
+
61
+ node --max_old_space_size=16000 lib/cjs/gen-transactions.js --mobile $(solana address -k ../helium-admin-cli/keypairs/mobile.json) --hnt $(solana address -k ../helium-admin-cli/keypairs/hnt.json) --dc $(solana address -k ../helium-admin-cli/keypairs/dc.json) --iot $(solana address -k ../helium-admin-cli/keypairs/iot.json) --hst $(solana address -k ../helium-admin-cli/keypairs/hst.json) -n devnethelium -u http://127.0.0.1:8899 --payer $(solana address) --pgPort 5432 --pgDatabase migration --makers ../helium-admin-cli/makers.json -p
62
+ ```
63
+
64
+ At this point, go and update all lazy signers with the value from -n (ie devnethelium), and unbrick the genesis endpoints.
65
+
66
+ Must also then go update all state in the cluster
67
+
68
+ Now, dump the local migration db and port it to the prod db:
69
+
70
+ ```
71
+ ssh -i ~/bastion -L localhost:5433:oracle-rds.cf49lv1xslmw.us-east-1.rds.amazonaws.com:5432 ubuntu@52.5.106.80
72
+ ```
73
+
74
+ ```
75
+ docker run -e PGPASSWORD=postgres postgres:latest pg_dump -h host.docker.internal -U postgres migration > ~/devnet-dump.sql
76
+ ```
77
+
78
+ ```
79
+ psql -U web_admin -p 5433 -h localhost -d migration -f ~/devnet-dump.sql -W
80
+ ```
81
+
82
+ You must also populate the iot and mobile metadata databases. Switch the port forward to the oracle db. Then:
83
+
84
+ ```
85
+ $: cd ../helius-service
86
+ $: env ANCHOR_WALLET=/path/to/.config/solana/id.json yarn run seed-db -f ../migration-service/export.json
87
+ ```
88
+
89
+
90
+ Make sure to mint an epoch of IOT/MOBILE and put in rewards pool
91
+
@@ -0,0 +1,13 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { hideBin } = require("yargs/helpers");
4
+
5
+ const args = hideBin(process.argv);
6
+ const script = args[0];
7
+ require(__dirname + `/../lib/cjs/${script}`)
8
+ .run(args.filter((arg) => arg !== script))
9
+ .catch((err) => {
10
+ console.error(err);
11
+ process.exit(1);
12
+ })
13
+ .then(() => process.exit());
@@ -0,0 +1,96 @@
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 client = __importStar(require("@helium/distributor-oracle"));
40
+ const distributor_oracle_1 = require("@helium/distributor-oracle");
41
+ const helium_sub_daos_sdk_1 = require("@helium/helium-sub-daos-sdk");
42
+ const helium_entity_manager_sdk_1 = require("@helium/helium-entity-manager-sdk");
43
+ const lazy_distributor_sdk_1 = require("@helium/lazy-distributor-sdk");
44
+ const spl_utils_1 = require("@helium/spl-utils");
45
+ const address_1 = __importDefault(require("@helium/address"));
46
+ const anchor = __importStar(require("@coral-xyz/anchor"));
47
+ const web3_js_1 = require("@solana/web3.js");
48
+ const os_1 = __importDefault(require("os"));
49
+ const yargs_1 = __importDefault(require("yargs/yargs"));
50
+ const utils_1 = require("./utils");
51
+ function run(args = process.argv) {
52
+ return __awaiter(this, void 0, void 0, function* () {
53
+ const argv = yield (0, yargs_1.default)(args).options({
54
+ wallet: {
55
+ alias: "k",
56
+ describe: "Anchor wallet keypair",
57
+ default: `${os_1.default.homedir()}/.config/solana/id.json`,
58
+ },
59
+ url: {
60
+ alias: "u",
61
+ default: "http://127.0.0.1:8899",
62
+ describe: "The solana url",
63
+ },
64
+ mobileKeypair: {
65
+ type: "string",
66
+ describe: "Keypair of the Mobile token",
67
+ default: "./keypairs/mobile.json",
68
+ },
69
+ }).argv;
70
+ process.env.ANCHOR_WALLET = argv.wallet;
71
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
72
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
73
+ const provider = anchor.getProvider();
74
+ const heliumSubDaosProgram = yield (0, helium_sub_daos_sdk_1.init)(provider);
75
+ const lazyDistributorProgram = yield (0, lazy_distributor_sdk_1.init)(provider);
76
+ const mobileKeypair = yield (0, utils_1.loadKeypair)(argv.mobileKeypair);
77
+ const mobileSubdao = (yield (0, helium_sub_daos_sdk_1.subDaoKey)(mobileKeypair.publicKey))[0];
78
+ const hotspotEcc = "11wsqKcoXGesnSbEwKTY8QkoqdFsG7oafcyPn8jBnzRK4sfCSw8";
79
+ const eccCompact = address_1.default.fromB58(hotspotEcc).publicKey;
80
+ const mobileSubdaoAcc = yield heliumSubDaosProgram.account.subDaoV0.fetch(mobileSubdao);
81
+ const [lazyDistributor] = yield (0, lazy_distributor_sdk_1.lazyDistributorKey)(mobileSubdaoAcc.dntMint);
82
+ const [hotspot] = yield web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("hotspot", "utf-8"), eccCompact], helium_entity_manager_sdk_1.PROGRAM_ID);
83
+ const rewards = yield (0, distributor_oracle_1.getCurrentRewards)(lazyDistributorProgram, lazyDistributor, hotspot);
84
+ const tx = yield client.formTransaction({
85
+ program: lazyDistributorProgram,
86
+ provider,
87
+ rewards,
88
+ hotspot,
89
+ lazyDistributor,
90
+ });
91
+ const signed = yield provider.wallet.signTransaction(tx);
92
+ yield (0, spl_utils_1.sendAndConfirmWithRetry)(provider.connection, signed.serialize(), { skipPreflight: true }, "confirmed");
93
+ });
94
+ }
95
+ exports.run = run;
96
+ //# sourceMappingURL=cli-distribute-rewards.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-distribute-rewards.js","sourceRoot":"","sources":["../../src/cli-distribute-rewards.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAAqD;AACrD,mEAA+D;AAC/D,qEAGqC;AACrC,iFAE2C;AAC3C,uEAGsC;AACtC,iDAA4D;AAC5D,8DAAsC;AACtC,0DAA4C;AAC5C,6CAA4C;AAC5C,4CAAoB;AACpB,wDAAgC;AAChC,mCAAsC;AAEtC,SAAsB,GAAG,CAAC,OAAY,OAAO,CAAC,IAAI;;QAChD,MAAM,IAAI,GAAG,MAAM,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YACrC,MAAM,EAAE;gBACN,KAAK,EAAE,GAAG;gBACV,QAAQ,EAAE,uBAAuB;gBACjC,OAAO,EAAE,GAAG,YAAE,CAAC,OAAO,EAAE,yBAAyB;aAClD;YACD,GAAG,EAAE;gBACH,KAAK,EAAE,GAAG;gBACV,OAAO,EAAE,uBAAuB;gBAChC,QAAQ,EAAE,gBAAgB;aAC3B;YACD,aAAa,EAAE;gBACb,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,6BAA6B;gBACvC,OAAO,EAAE,wBAAwB;aAClC;SACF,CAAC,CAAC,IAAI,CAAC;QAER,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC;QAC3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAA2B,CAAC;QAC/D,MAAM,oBAAoB,GAAG,MAAM,IAAA,0BAAO,EAAC,QAAQ,CAAC,CAAC;QACrD,MAAM,sBAAsB,GAAG,MAAM,IAAA,2BAAQ,EAAC,QAAQ,CAAC,CAAC;QAExD,MAAM,aAAa,GAAG,MAAM,IAAA,mBAAW,EAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,CAAC,MAAM,IAAA,+BAAS,EAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnE,MAAM,UAAU,GAAG,qDAAqD,CAAC;QACzE,MAAM,UAAU,GAAG,iBAAO,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC;QAEzD,MAAM,eAAe,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CACvE,YAAY,CACb,CAAC;QACF,MAAM,CAAC,eAAe,CAAC,GAAG,MAAM,IAAA,yCAAkB,EAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC5E,MAAM,CAAC,OAAO,CAAC,GAAG,MAAM,mBAAS,CAAC,sBAAsB,CACtD,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,EAC7C,sCAAU,CACX,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,IAAA,sCAAiB,EACrC,sBAAsB,EACtB,eAAe,EACf,OAAO,CACR,CAAC;QAEF,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC;YACtC,OAAO,EAAE,sBAAsB;YAC/B,QAAQ;YACR,OAAO;YACP,OAAO;YACP,eAAe;SAChB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QACzD,MAAM,IAAA,mCAAuB,EAC3B,QAAQ,CAAC,UAAU,EACnB,MAAM,CAAC,SAAS,EAAE,EAClB,EAAE,aAAa,EAAE,IAAI,EAAE,EACvB,WAAW,CACZ,CAAC;IACJ,CAAC;CAAA;AA9DD,kBA8DC"}
@@ -0,0 +1,112 @@
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 web3_js_1 = require("@solana/web3.js");
41
+ const os_1 = __importDefault(require("os"));
42
+ const yargs_1 = __importDefault(require("yargs/yargs"));
43
+ const utils_1 = require("./utils");
44
+ const utils_2 = require("./utils");
45
+ function run(args = process.argv) {
46
+ return __awaiter(this, void 0, void 0, function* () {
47
+ const yarg = (0, yargs_1.default)(args).options({
48
+ wallet: {
49
+ alias: "k",
50
+ describe: "Anchor wallet keypair",
51
+ default: `${os_1.default.homedir()}/.config/solana/id.json`,
52
+ },
53
+ url: {
54
+ alias: "u",
55
+ default: "http://127.0.0.1:8899",
56
+ describe: "The solana url",
57
+ },
58
+ executeTransaction: {
59
+ type: "boolean",
60
+ },
61
+ aggregatorKeypair: {
62
+ type: "string",
63
+ describe: "Keypair of the aggregtor",
64
+ },
65
+ activeDeviceOracleUrl: {
66
+ alias: "ao",
67
+ type: "string",
68
+ describe: "The active device oracle URL",
69
+ default: "http://localhost:8081",
70
+ },
71
+ queue: {
72
+ type: "string",
73
+ describe: "Switchbaord oracle queue",
74
+ default: "F8ce7MsckeZAbAGmxjJNetxYXQa9mKr9nnrC3qKubyYy",
75
+ },
76
+ crank: {
77
+ type: "string",
78
+ describe: "Switchboard crank",
79
+ default: "GN9jjCy2THzZxhYqZETmPM3my8vg4R5JyNkgULddUMa5",
80
+ },
81
+ switchboardNetwork: {
82
+ type: "string",
83
+ describe: "The switchboard network",
84
+ default: "devnet",
85
+ },
86
+ authority: {
87
+ type: "string",
88
+ },
89
+ });
90
+ const argv = yield yarg.argv;
91
+ console.log(argv.url);
92
+ process.env.ANCHOR_WALLET = argv.wallet;
93
+ process.env.ANCHOR_PROVIDER_URL = argv.url;
94
+ anchor.setProvider(anchor.AnchorProvider.local(argv.url));
95
+ const provider = anchor.getProvider();
96
+ const wallet = (0, utils_2.loadKeypair)(argv.wallet);
97
+ const aggKeypair = yield (0, utils_2.loadKeypair)(argv.aggregatorKeypair);
98
+ console.log("Initializing switchboard oracle");
99
+ yield (0, utils_1.createSwitchboardAggregator)({
100
+ crank: new web3_js_1.PublicKey(argv.crank),
101
+ queue: new web3_js_1.PublicKey(argv.queue),
102
+ wallet,
103
+ provider,
104
+ aggKeypair,
105
+ url: argv.activeDeviceOracleUrl,
106
+ switchboardNetwork: argv.switchboardNetwork,
107
+ authority: argv.authority ? new web3_js_1.PublicKey(argv.authority) : wallet.publicKey,
108
+ });
109
+ });
110
+ }
111
+ exports.run = run;
112
+ //# sourceMappingURL=create-active-device-aggregator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-active-device-aggregator.js","sourceRoot":"","sources":["../../src/create-active-device-aggregator.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAA4C;AAC5C,6CAA4C;AAC5C,4CAAoB;AACpB,wDAAgC;AAChC,mCAAsD;AACtD,mCAAsC;AAEtC,SAAsB,GAAG,CAAC,OAAY,OAAO,CAAC,IAAI;;QAChD,MAAM,IAAI,GAAG,IAAA,eAAK,EAAC,IAAI,CAAC,CAAC,OAAO,CAAC;YAC/B,MAAM,EAAE;gBACN,KAAK,EAAE,GAAG;gBACV,QAAQ,EAAE,uBAAuB;gBACjC,OAAO,EAAE,GAAG,YAAE,CAAC,OAAO,EAAE,yBAAyB;aAClD;YACD,GAAG,EAAE;gBACH,KAAK,EAAE,GAAG;gBACV,OAAO,EAAE,uBAAuB;gBAChC,QAAQ,EAAE,gBAAgB;aAC3B;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE,SAAS;aAChB;YACD,iBAAiB,EAAE;gBACjB,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,0BAA0B;aACrC;YACD,qBAAqB,EAAE;gBACrB,KAAK,EAAE,IAAI;gBACX,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,8BAA8B;gBACxC,OAAO,EAAE,uBAAuB;aACjC;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,0BAA0B;gBACpC,OAAO,EAAE,8CAA8C;aACxD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,mBAAmB;gBAC7B,OAAO,EAAE,8CAA8C;aACxD;YACD,kBAAkB,EAAE;gBAClB,IAAI,EAAE,QAAQ;gBACd,QAAQ,EAAE,yBAAyB;gBACnC,OAAO,EAAE,QAAQ;aAClB;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;aACf;SACF,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC;QAC7B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,IAAI,CAAC,GAAG,CAAC;QAC3C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAE1D,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,EAA2B,CAAC;QAE/D,MAAM,MAAM,GAAG,IAAA,mBAAW,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxC,MAAM,UAAU,GAAG,MAAM,IAAA,mBAAW,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAE7D,OAAO,CAAC,GAAG,CAAC,iCAAiC,CAAC,CAAC;QAC/C,MAAM,IAAA,mCAA2B,EAAC;YAChC,KAAK,EAAE,IAAI,mBAAS,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC,KAAK,EAAE,IAAI,mBAAS,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC,MAAM;YACN,QAAQ;YACR,UAAU;YACV,GAAG,EAAE,IAAI,CAAC,qBAAqB;YAC/B,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;YAC3C,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,mBAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS;SAC7E,CAAC,CAAC;IACL,CAAC;CAAA;AAlED,kBAkEC"}