@helium/helium-entity-manager-sdk 0.0.5 → 0.0.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.
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.changeMetadata = void 0;
13
+ const spl_utils_1 = require("@helium/spl-utils");
14
+ const pdas_1 = require("../pdas");
15
+ function changeMetadata({ program, hotspotConfig, assetId, location, elevation, gain, getAssetFn = spl_utils_1.getAsset, getAssetProofFn = spl_utils_1.getAssetProof, }) {
16
+ return __awaiter(this, void 0, void 0, function* () {
17
+ // @ts-ignore
18
+ const endpoint = program.provider.connection._rpcEndpoint;
19
+ const asset = yield getAssetFn(endpoint, assetId);
20
+ if (!asset) {
21
+ throw new Error("No asset with ID " + assetId.toBase58());
22
+ }
23
+ const assetProof = yield getAssetProofFn(endpoint, assetId);
24
+ if (!assetProof) {
25
+ throw new Error("No asset proof with ID " + assetId.toBase58());
26
+ }
27
+ const { root, proof, leaf, treeId, nodeIndex } = assetProof;
28
+ const { ownership: { owner }, content: { uri }, } = asset;
29
+ const eccCompact = uri.split("/").slice(-1)[0];
30
+ const [storage] = (0, pdas_1.hotspotStorageKey)(hotspotConfig, eccCompact);
31
+ return program.methods
32
+ .changeMetadataV0({
33
+ location,
34
+ elevation,
35
+ gain,
36
+ hash: leaf.toBuffer().toJSON().data,
37
+ root: root.toBuffer().toJSON().data,
38
+ index: nodeIndex,
39
+ })
40
+ .accounts({
41
+ hotspot: assetId,
42
+ hotspotConfig,
43
+ hotspotOwner: owner,
44
+ storage,
45
+ merkleTree: treeId,
46
+ })
47
+ .remainingAccounts(proof.map((p) => {
48
+ return {
49
+ pubkey: p,
50
+ isWritable: false,
51
+ isSigner: false,
52
+ };
53
+ }));
54
+ });
55
+ }
56
+ exports.changeMetadata = changeMetadata;
57
+ //# sourceMappingURL=changeMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeMetadata.js","sourceRoot":"","sources":["../../../src/functions/changeMetadata.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iDAA+E;AAI/E,kCAA4C;AAE5C,SAAsB,cAAc,CAAC,EACnC,OAAO,EACP,aAAa,EACb,OAAO,EACP,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,UAAU,GAAG,oBAAQ,EACrB,eAAe,GAAG,yBAAa,GAahC;;QACC,aAAa;QACb,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QAC1D,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SAC3D;QACD,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;SACjE;QACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;QAC5D,MAAM,EACJ,SAAS,EAAE,EAAE,KAAK,EAAE,EACpB,OAAO,EAAE,EAAE,GAAG,EAAE,GACjB,GAAG,KAAK,CAAC;QACV,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE/C,MAAM,CAAC,OAAO,CAAC,GAAG,IAAA,wBAAiB,EAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAE/D,OAAO,OAAO,CAAC,OAAO;aACnB,gBAAgB,CAAC;YAChB,QAAQ;YACR,SAAS;YACT,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;YACnC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;YACnC,KAAK,EAAE,SAAS;SACjB,CAAC;aACD,QAAQ,CAAC;YACR,OAAO,EAAE,OAAO;YAChB,aAAa;YACb,YAAY,EAAE,KAAK;YACnB,OAAO;YACP,UAAU,EAAE,MAAM;SACnB,CAAC;aACD,iBAAiB,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACd,OAAO;gBACL,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,KAAK;aAChB,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACN,CAAC;CAAA;AAlED,wCAkEC"}
package/lib/cjs/index.js CHANGED
@@ -23,19 +23,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
23
23
  });
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.init = void 0;
26
+ exports.init = exports.changeMetadata = void 0;
27
27
  const anchor_1 = require("@project-serum/anchor");
28
28
  const constants_1 = require("./constants");
29
29
  const resolvers_1 = require("./resolvers");
30
30
  __exportStar(require("./pdas"), exports);
31
31
  __exportStar(require("./resolvers"), exports);
32
32
  __exportStar(require("./constants"), exports);
33
+ var changeMetadata_1 = require("./functions/changeMetadata");
34
+ Object.defineProperty(exports, "changeMetadata", { enumerable: true, get: function () { return changeMetadata_1.changeMetadata; } });
33
35
  const init = (provider, programId = constants_1.PROGRAM_ID, idl) => __awaiter(void 0, void 0, void 0, function* () {
34
36
  if (!idl) {
35
37
  idl = yield anchor_1.Program.fetchIdl(programId, provider);
36
38
  }
37
- const hotspotIssuance = new anchor_1.Program(idl, programId, provider, undefined, () => resolvers_1.hotspotIssuanceResolvers);
38
- return hotspotIssuance;
39
+ const heliumEntityManager = new anchor_1.Program(idl, programId, provider, undefined, () => resolvers_1.heliumEntityManagerResolvers);
40
+ return heliumEntityManager;
39
41
  });
40
42
  exports.init = init;
41
43
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAqE;AAGrE,2CAAyC;AACzC,2CAAuD;AACvD,yCAAuB;AACvB,8CAA4B;AAC5B,8CAA4B;AAErB,MAAM,IAAI,GAAG,CAClB,QAAwB,EACxB,YAAuB,sBAAU,EACjC,GAAgB,EACuB,EAAE;IACzC,IAAI,CAAC,GAAG,EAAE;QACR,GAAG,GAAG,MAAM,gBAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KACnD;IAED,MAAM,eAAe,GAAG,IAAI,gBAAO,CACjC,GAA0B,EAC1B,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,EAAE,CAAC,oCAAwB,CACC,CAAC;IAElC,OAAO,eAAe,CAAC;AACzB,CAAC,CAAA,CAAC;AAlBW,QAAA,IAAI,QAkBf"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAAqE;AAGrE,2CAAyC;AACzC,2CAA2D;AAC3D,yCAAuB;AACvB,8CAA4B;AAC5B,8CAA4B;AAC5B,6DAA4D;AAAnD,gHAAA,cAAc,OAAA;AAEhB,MAAM,IAAI,GAAG,CAClB,QAAwB,EACxB,YAAuB,sBAAU,EACjC,GAAgB,EACuB,EAAE;IACzC,IAAI,CAAC,GAAG,EAAE;QACR,GAAG,GAAG,MAAM,gBAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KACnD;IAED,MAAM,mBAAmB,GAAG,IAAI,gBAAO,CACrC,GAA0B,EAC1B,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,EAAE,CAAC,wCAA4B,CACH,CAAC;IAElC,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAA,CAAC;AAlBW,QAAA,IAAI,QAkBf"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.initHotspotConfigInstructions = void 0;
4
+ function initHotspotConfigInstructions() {
5
+ }
6
+ exports.initHotspotConfigInstructions = initHotspotConfigInstructions;
7
+ //# sourceMappingURL=instructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../src/instructions.ts"],"names":[],"mappings":";;;AAAA,SAAgB,6BAA6B;AAI7C,CAAC;AAJD,sEAIC"}
package/lib/cjs/pdas.js CHANGED
@@ -1,9 +1,13 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.collectionMetadataKey = exports.hotspotStorageKey = exports.hotspotKey = exports.hotspotIssuerKey = exports.hotspotCollectionKey = exports.hotspotConfigKey = void 0;
6
+ exports.collectionMetadataKey = exports.hotspotStorageKey = exports.hotspotIssuerKey = exports.hotspotCollectionKey = exports.hotspotConfigKey = void 0;
4
7
  const web3_js_1 = require("@solana/web3.js");
5
8
  const constants_1 = require("./constants");
6
9
  const mpl_token_metadata_1 = require("@metaplex-foundation/mpl-token-metadata");
10
+ const crypto_1 = __importDefault(require("crypto"));
7
11
  const hotspotConfigKey = (subDao, symbol, programId = constants_1.PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddressSync([
8
12
  Buffer.from("hotspot_config", "utf-8"),
9
13
  subDao.toBuffer(),
@@ -18,14 +22,19 @@ const hotspotIssuerKey = (hotspotConfig, maker, programId = constants_1.PROGRAM_
18
22
  maker.toBuffer(),
19
23
  ], programId);
20
24
  exports.hotspotIssuerKey = hotspotIssuerKey;
21
- const hotspotKey = (collection, eccCompact, programId = constants_1.PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("hotspot", "utf-8"), collection.toBuffer(), eccCompact], programId);
22
- exports.hotspotKey = hotspotKey;
23
- const hotspotStorageKey = (hotspot, programId = constants_1.PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("storage", "utf-8"), hotspot.toBuffer()], programId);
25
+ const hotspotStorageKey = (hotspotConfig, hotspotKey, programId = constants_1.PROGRAM_ID) => {
26
+ let hexString = crypto_1.default
27
+ .createHash("sha256")
28
+ .update(hotspotKey, "utf-8")
29
+ .digest("hex");
30
+ let seed = Uint8Array.from(Buffer.from(hexString, "hex"));
31
+ return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("storage", "utf-8"), hotspotConfig.toBuffer(), seed], programId);
32
+ };
24
33
  exports.hotspotStorageKey = hotspotStorageKey;
25
- const collectionMetadataKey = (collection, programId = constants_1.PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddressSync([
34
+ const collectionMetadataKey = (collection, programId = mpl_token_metadata_1.PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddressSync([
26
35
  Buffer.from("metadata", "utf-8"),
27
- mpl_token_metadata_1.PROGRAM_ID.toBuffer(),
36
+ programId.toBuffer(),
28
37
  collection.toBuffer(),
29
- ], mpl_token_metadata_1.PROGRAM_ID);
38
+ ], programId);
30
39
  exports.collectionMetadataKey = collectionMetadataKey;
31
40
  //# sourceMappingURL=pdas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pdas.js","sourceRoot":"","sources":["../../src/pdas.ts"],"names":[],"mappings":";;;AAAA,6CAA4C;AAC5C,2CAAyC;AACzC,gFAAkG;AAE3F,MAAM,gBAAgB,GAAG,CAC9B,MAAiB,EACjB,MAAc,EACd,YAAuB,sBAAU,EACjC,EAAE,CACF,mBAAS,CAAC,sBAAsB,CAC9B;IACE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACtC,MAAM,CAAC,QAAQ,EAAE;IACjB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;CAC7B,EACD,SAAS,CACV,CAAC;AAZS,QAAA,gBAAgB,oBAYzB;AAEG,MAAM,oBAAoB,GAAG,CAClC,MAAiB,EACjB,MAAc,EACd,YAAuB,sBAAU,EACjC,EAAE,CACF,mBAAS,CAAC,sBAAsB,CAC9B,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACrF,SAAS,CACV,CAAC;AARS,QAAA,oBAAoB,wBAQ7B;AAEG,MAAM,gBAAgB,GAAG,CAC9B,aAAwB,EACxB,KAAgB,EAChB,YAAuB,sBAAU,EACjC,EAAE,CACF,mBAAS,CAAC,sBAAsB,CAC9B;IACE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACtC,aAAa,CAAC,QAAQ,EAAE;IACxB,KAAK,CAAC,QAAQ,EAAE;CACjB,EACD,SAAS,CACV,CAAC;AAZS,QAAA,gBAAgB,oBAYzB;AAEG,MAAM,UAAU,GAAG,CACxB,UAAqB,EACrB,UAAkB,EAClB,YAAuB,sBAAU,EACjC,EAAE,CACF,mBAAS,CAAC,sBAAsB,CAC9B,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,EACpE,SAAS,CACV,CAAC;AARS,QAAA,UAAU,cAQnB;AAEG,MAAM,iBAAiB,GAAG,CAC/B,OAAkB,EAClB,YAAuB,sBAAU,EACjC,EAAE,CACF,mBAAS,CAAC,sBAAsB,CAC9B,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,EACrD,SAAS,CACV,CAAC;AAPS,QAAA,iBAAiB,qBAO1B;AAEG,MAAM,qBAAqB,GAAG,CACnC,UAAqB,EACrB,YAAuB,sBAAU,EACjC,EAAE,CACF,mBAAS,CAAC,sBAAsB,CAC9B;IACE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;IAChC,+BAAyB,CAAC,QAAQ,EAAE;IACpC,UAAU,CAAC,QAAQ,EAAE;CACtB,EACD,+BAAyB,CAC1B,CAAC;AAXS,QAAA,qBAAqB,yBAW9B"}
1
+ {"version":3,"file":"pdas.js","sourceRoot":"","sources":["../../src/pdas.ts"],"names":[],"mappings":";;;;;;AAAA,6CAA4C;AAC5C,2CAAyC;AACzC,gFAAkG;AAClG,oDAA4B;AAErB,MAAM,gBAAgB,GAAG,CAC9B,MAAiB,EACjB,MAAc,EACd,YAAuB,sBAAU,EACjC,EAAE,CACF,mBAAS,CAAC,sBAAsB,CAC9B;IACE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACtC,MAAM,CAAC,QAAQ,EAAE;IACjB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;CAC7B,EACD,SAAS,CACV,CAAC;AAZS,QAAA,gBAAgB,oBAYzB;AAEG,MAAM,oBAAoB,GAAG,CAClC,MAAiB,EACjB,MAAc,EACd,YAAuB,sBAAU,EACjC,EAAE,CACF,mBAAS,CAAC,sBAAsB,CAC9B,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACrF,SAAS,CACV,CAAC;AARS,QAAA,oBAAoB,wBAQ7B;AAEG,MAAM,gBAAgB,GAAG,CAC9B,aAAwB,EACxB,KAAgB,EAChB,YAAuB,sBAAU,EACjC,EAAE,CACF,mBAAS,CAAC,sBAAsB,CAC9B;IACE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACtC,aAAa,CAAC,QAAQ,EAAE;IACxB,KAAK,CAAC,QAAQ,EAAE;CACjB,EACD,SAAS,CACV,CAAC;AAZS,QAAA,gBAAgB,oBAYzB;AAEG,MAAM,iBAAiB,GAAG,CAC/B,aAAwB,EACxB,UAAkB,EAClB,YAAuB,sBAAU,EACjC,EAAE;IACF,IAAI,SAAS,GAAG,gBAAM;SACnB,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC;SAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;IACjB,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1D,OAAO,mBAAS,CAAC,sBAAsB,CACrC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,EACjE,SAAS,CACV,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,iBAAiB,qBAe5B;AAEK,MAAM,qBAAqB,GAAG,CACnC,UAAqB,EACrB,YAAuB,+BAAyB,EAChD,EAAE,CACF,mBAAS,CAAC,sBAAsB,CAC9B;IACE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;IAChC,SAAS,CAAC,QAAQ,EAAE;IACpB,UAAU,CAAC,QAAQ,EAAE;CACtB,EACD,SAAS,CACV,CAAC;AAXS,QAAA,qBAAqB,yBAW9B"}
@@ -9,30 +9,30 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.hotspotIssuanceResolvers = void 0;
13
- const web3_js_1 = require("@solana/web3.js");
14
- const spl_utils_1 = require("@helium/spl-utils");
12
+ exports.heliumEntityManagerResolvers = void 0;
15
13
  const helium_sub_daos_sdk_1 = require("@helium/helium-sub-daos-sdk");
14
+ const spl_utils_1 = require("@helium/spl-utils");
16
15
  const pdas_1 = require("./pdas");
17
- exports.hotspotIssuanceResolvers = (0, spl_utils_1.combineResolvers)((0, spl_utils_1.resolveIndividual)(({ path }) => __awaiter(void 0, void 0, void 0, function* () {
18
- switch (path[path.length - 1]) {
19
- case "dataCreditsProgram":
20
- return new web3_js_1.PublicKey("credacwrBVewZAgCwNgowCSMbCiepuesprUWPBeLTSg");
21
- case "tokenMetadataProgram":
22
- return new web3_js_1.PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s");
23
- case "heliumSubDaosProgram":
24
- return new web3_js_1.PublicKey("hdaojPkgSD8bciDc1w2Z4kXFFibCXngJiw2GRpEL7Wf");
25
- default:
26
- return;
27
- }
28
- })), (0, spl_utils_1.ataResolver)({
16
+ const spl_token_1 = require("@solana/spl-token");
17
+ exports.heliumEntityManagerResolvers = (0, spl_utils_1.combineResolvers)(spl_utils_1.heliumCommonResolver, (0, spl_utils_1.ataResolver)({
29
18
  instruction: "initializeHotspotConfigV0",
30
19
  account: "tokenAccount",
31
20
  mint: "collection",
32
21
  owner: "hotspotConfig",
33
- }), (0, spl_utils_1.resolveIndividual)(({ path, args, accounts }) => __awaiter(void 0, void 0, void 0, function* () {
34
- if (path[path.length - 1] === "hotspot" && accounts.collection) {
35
- return ((0, pdas_1.hotspotKey)(accounts.collection, args[args.length - 1].eccCompact))[0];
22
+ }), (0, spl_utils_1.resolveIndividual)(({ path, args, provider, accounts }) => __awaiter(void 0, void 0, void 0, function* () {
23
+ var _a;
24
+ if (path[path.length - 1] === "storage" &&
25
+ args[args.length - 1].hotspotKey &&
26
+ accounts.hotspotConfig) {
27
+ return (0, pdas_1.hotspotStorageKey)(accounts.hotspotConfig, args[args.length - 1].hotspotKey)[0];
28
+ }
29
+ else if (path[path.length - 1] === "recipient") {
30
+ // @ts-ignore
31
+ return (_a = provider.wallet) === null || _a === void 0 ? void 0 : _a.publicKey;
32
+ }
33
+ })), (0, spl_utils_1.resolveIndividual)(({ path, accounts }) => __awaiter(void 0, void 0, void 0, function* () {
34
+ if (path[path.length - 1] === "ownerHotspotAta" && (accounts.owner || accounts.hotspotOwner) && accounts.hotspot) {
35
+ return (0, spl_token_1.getAssociatedTokenAddress)(accounts.hotspot, (accounts.owner || accounts.hotspotOwner));
36
36
  }
37
37
  })), (0, spl_utils_1.ataResolver)({
38
38
  instruction: "issueHotspotV0",
@@ -44,5 +44,10 @@ exports.hotspotIssuanceResolvers = (0, spl_utils_1.combineResolvers)((0, spl_uti
44
44
  account: "dcBurner",
45
45
  mint: "dcMint",
46
46
  owner: "dcFeePayer",
47
+ }), (0, spl_utils_1.ataResolver)({
48
+ instruction: "changeMetadataV0",
49
+ account: "ownerDcAta",
50
+ mint: "dcMint",
51
+ owner: "hotspotOwner",
47
52
  }), helium_sub_daos_sdk_1.subDaoEpochInfoResolver);
48
53
  //# sourceMappingURL=resolvers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../src/resolvers.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA4C;AAC5C,iDAI2B;AAE3B,qEAAsE;AACtE,iCAAoC;AAEvB,QAAA,wBAAwB,GAAG,IAAA,4BAAgB,EACtD,IAAA,6BAAiB,EAAC,CAAO,EAAE,IAAI,EAAE,EAAE,EAAE;IACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;QAC7B,KAAK,oBAAoB;YACvB,OAAO,IAAI,mBAAS,CAAC,6CAA6C,CAAC,CAAC;QACtE,KAAK,sBAAsB;YACzB,OAAO,IAAI,mBAAS,CAAC,6CAA6C,CAAC,CAAC;QACtE,KAAK,sBAAsB;YACzB,OAAO,IAAI,mBAAS,CAAC,6CAA6C,CAAC,CAAC;QACtE;YACE,OAAO;KACV;AACH,CAAC,CAAA,CAAC,EACF,IAAA,uBAAW,EAAC;IACV,WAAW,EAAE,2BAA2B;IACxC,OAAO,EAAE,cAAc;IACvB,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,eAAe;CACvB,CAAC,EACF,IAAA,6BAAiB,EAAC,CAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,EAAE;QAC9D,OAAO,CACL,IAAA,iBAAU,EAAC,QAAQ,CAAC,UAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAC/E,CAAC,CAAC,CAAC,CAAC;KACN;AACH,CAAC,CAAA,CAAC,EACF,IAAA,uBAAW,EAAC;IACV,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,uBAAuB;IAChC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,cAAc;CACtB,CAAC,EACF,IAAA,uBAAW,EAAC;IACV,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,YAAY;CACpB,CAAC,EACF,6CAAuB,CACxB,CAAC"}
1
+ {"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../src/resolvers.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qEAAsE;AACtE,iDAK2B;AAC3B,iCAA2C;AAC3C,iDAA8D;AAGjD,QAAA,4BAA4B,GAAG,IAAA,4BAAgB,EAC1D,gCAAoB,EACpB,IAAA,uBAAW,EAAC;IACV,WAAW,EAAE,2BAA2B;IACxC,OAAO,EAAE,cAAc;IACvB,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,eAAe;CACvB,CAAC,EACF,IAAA,6BAAiB,EAAC,CAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;;IAC7D,IACE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,SAAS;QACnC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU;QAChC,QAAQ,CAAC,aAAa,EACtB;QACA,OAAO,IAAA,wBAAiB,EAAC,QAAQ,CAAC,aAA0B,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KACpG;SAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,WAAW,EAAE;QAChD,aAAa;QACb,OAAO,MAAA,QAAQ,CAAC,MAAM,0CAAE,SAAS,CAAC;KACnC;AACH,CAAC,CAAA,CAAC,EACF,IAAA,6BAAiB,EAAC,CAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC7C,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,iBAAiB,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE;QAChH,OAAO,IAAA,qCAAyB,EAAC,QAAQ,CAAC,OAAoB,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,YAAY,CAAc,CAAC,CAAA;KACxH;AACH,CAAC,CAAA,CAAC,EACF,IAAA,uBAAW,EAAC;IACV,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,uBAAuB;IAChC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,cAAc;CACtB,CAAC,EACF,IAAA,uBAAW,EAAC;IACV,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,YAAY;CACpB,CAAC,EACF,IAAA,uBAAW,EAAC;IACV,WAAW,EAAE,kBAAkB;IAC/B,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,cAAc;CACtB,CAAC,EACF,6CAAuB,CACxB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { getAsset, getAssetProof } from "@helium/spl-utils";
2
+ import { hotspotStorageKey } from "../pdas";
3
+ export async function changeMetadata({ program, hotspotConfig, assetId, location, elevation, gain, getAssetFn = getAsset, getAssetProofFn = getAssetProof, }) {
4
+ // @ts-ignore
5
+ const endpoint = program.provider.connection._rpcEndpoint;
6
+ const asset = await getAssetFn(endpoint, assetId);
7
+ if (!asset) {
8
+ throw new Error("No asset with ID " + assetId.toBase58());
9
+ }
10
+ const assetProof = await getAssetProofFn(endpoint, assetId);
11
+ if (!assetProof) {
12
+ throw new Error("No asset proof with ID " + assetId.toBase58());
13
+ }
14
+ const { root, proof, leaf, treeId, nodeIndex } = assetProof;
15
+ const { ownership: { owner }, content: { uri }, } = asset;
16
+ const eccCompact = uri.split("/").slice(-1)[0];
17
+ const [storage] = hotspotStorageKey(hotspotConfig, eccCompact);
18
+ return program.methods
19
+ .changeMetadataV0({
20
+ location,
21
+ elevation,
22
+ gain,
23
+ hash: leaf.toBuffer().toJSON().data,
24
+ root: root.toBuffer().toJSON().data,
25
+ index: nodeIndex,
26
+ })
27
+ .accounts({
28
+ hotspot: assetId,
29
+ hotspotConfig,
30
+ hotspotOwner: owner,
31
+ storage,
32
+ merkleTree: treeId,
33
+ })
34
+ .remainingAccounts(proof.map((p) => {
35
+ return {
36
+ pubkey: p,
37
+ isWritable: false,
38
+ isSigner: false,
39
+ };
40
+ }));
41
+ }
42
+ //# sourceMappingURL=changeMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeMetadata.js","sourceRoot":"","sources":["../../../../src/functions/changeMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,QAAQ,EAAE,aAAa,EAAc,MAAM,mBAAmB,CAAC;AAI/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,EACnC,OAAO,EACP,aAAa,EACb,OAAO,EACP,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,UAAU,GAAG,QAAQ,EACrB,eAAe,GAAG,aAAa,GAahC;IACC,aAAa;IACb,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;IAC1D,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;KAC3D;IACD,MAAM,UAAU,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;KACjE;IACD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;IAC5D,MAAM,EACJ,SAAS,EAAE,EAAE,KAAK,EAAE,EACpB,OAAO,EAAE,EAAE,GAAG,EAAE,GACjB,GAAG,KAAK,CAAC;IACV,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/C,MAAM,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;IAE/D,OAAO,OAAO,CAAC,OAAO;SACnB,gBAAgB,CAAC;QAChB,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;QACnC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;QACnC,KAAK,EAAE,SAAS;KACjB,CAAC;SACD,QAAQ,CAAC;QACR,OAAO,EAAE,OAAO;QAChB,aAAa;QACb,YAAY,EAAE,KAAK;QACnB,OAAO;QACP,UAAU,EAAE,MAAM;KACnB,CAAC;SACD,iBAAiB,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACd,OAAO;YACL,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
@@ -1,14 +1,15 @@
1
1
  import { Program } from "@project-serum/anchor";
2
2
  import { PROGRAM_ID } from "./constants";
3
- import { hotspotIssuanceResolvers } from "./resolvers";
3
+ import { heliumEntityManagerResolvers } from "./resolvers";
4
4
  export * from "./pdas";
5
5
  export * from "./resolvers";
6
6
  export * from "./constants";
7
+ export { changeMetadata } from "./functions/changeMetadata";
7
8
  export const init = async (provider, programId = PROGRAM_ID, idl) => {
8
9
  if (!idl) {
9
10
  idl = await Program.fetchIdl(programId, provider);
10
11
  }
11
- const hotspotIssuance = new Program(idl, programId, provider, undefined, () => hotspotIssuanceResolvers);
12
- return hotspotIssuance;
12
+ const heliumEntityManager = new Program(idl, programId, provider, undefined, () => heliumEntityManagerResolvers);
13
+ return heliumEntityManager;
13
14
  };
14
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAE5B,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EACvB,QAAwB,EACxB,YAAuB,UAAU,EACjC,GAAgB,EACuB,EAAE;IACzC,IAAI,CAAC,GAAG,EAAE;QACR,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KACnD;IAED,MAAM,eAAe,GAAG,IAAI,OAAO,CACjC,GAA0B,EAC1B,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,EAAE,CAAC,wBAAwB,CACC,CAAC;IAElC,OAAO,eAAe,CAAC;AACzB,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AAC3D,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE5D,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EACvB,QAAwB,EACxB,YAAuB,UAAU,EACjC,GAAgB,EACuB,EAAE;IACzC,IAAI,CAAC,GAAG,EAAE;QACR,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;KACnD;IAED,MAAM,mBAAmB,GAAG,IAAI,OAAO,CACrC,GAA0B,EAC1B,SAAS,EACT,QAAQ,EACR,SAAS,EACT,GAAG,EAAE,CAAC,4BAA4B,CACH,CAAC;IAElC,OAAO,mBAAmB,CAAC;AAC7B,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export function initHotspotConfigInstructions() {
2
+ }
3
+ //# sourceMappingURL=instructions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../../../src/instructions.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,6BAA6B;AAI7C,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { PublicKey } from "@solana/web3.js";
2
2
  import { PROGRAM_ID } from "./constants";
3
3
  import { PROGRAM_ID as TOKEN_METADATA_PROGRAM_ID } from "@metaplex-foundation/mpl-token-metadata";
4
+ import crypto from "crypto";
4
5
  export const hotspotConfigKey = (subDao, symbol, programId = PROGRAM_ID) => PublicKey.findProgramAddressSync([
5
6
  Buffer.from("hotspot_config", "utf-8"),
6
7
  subDao.toBuffer(),
@@ -12,11 +13,17 @@ export const hotspotIssuerKey = (hotspotConfig, maker, programId = PROGRAM_ID) =
12
13
  hotspotConfig.toBuffer(),
13
14
  maker.toBuffer(),
14
15
  ], programId);
15
- export const hotspotKey = (collection, eccCompact, programId = PROGRAM_ID) => PublicKey.findProgramAddressSync([Buffer.from("hotspot", "utf-8"), collection.toBuffer(), eccCompact], programId);
16
- export const hotspotStorageKey = (hotspot, programId = PROGRAM_ID) => PublicKey.findProgramAddressSync([Buffer.from("storage", "utf-8"), hotspot.toBuffer()], programId);
17
- export const collectionMetadataKey = (collection, programId = PROGRAM_ID) => PublicKey.findProgramAddressSync([
16
+ export const hotspotStorageKey = (hotspotConfig, hotspotKey, programId = PROGRAM_ID) => {
17
+ let hexString = crypto
18
+ .createHash("sha256")
19
+ .update(hotspotKey, "utf-8")
20
+ .digest("hex");
21
+ let seed = Uint8Array.from(Buffer.from(hexString, "hex"));
22
+ return PublicKey.findProgramAddressSync([Buffer.from("storage", "utf-8"), hotspotConfig.toBuffer(), seed], programId);
23
+ };
24
+ export const collectionMetadataKey = (collection, programId = TOKEN_METADATA_PROGRAM_ID) => PublicKey.findProgramAddressSync([
18
25
  Buffer.from("metadata", "utf-8"),
19
- TOKEN_METADATA_PROGRAM_ID.toBuffer(),
26
+ programId.toBuffer(),
20
27
  collection.toBuffer(),
21
- ], TOKEN_METADATA_PROGRAM_ID);
28
+ ], programId);
22
29
  //# sourceMappingURL=pdas.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pdas.js","sourceRoot":"","sources":["../../../src/pdas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,IAAI,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAElG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAAiB,EACjB,MAAc,EACd,YAAuB,UAAU,EACjC,EAAE,CACF,SAAS,CAAC,sBAAsB,CAC9B;IACE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACtC,MAAM,CAAC,QAAQ,EAAE;IACjB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;CAC7B,EACD,SAAS,CACV,CAAC;AAEJ,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAAiB,EACjB,MAAc,EACd,YAAuB,UAAU,EACjC,EAAE,CACF,SAAS,CAAC,sBAAsB,CAC9B,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACrF,SAAS,CACV,CAAC;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,aAAwB,EACxB,KAAgB,EAChB,YAAuB,UAAU,EACjC,EAAE,CACF,SAAS,CAAC,sBAAsB,CAC9B;IACE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACtC,aAAa,CAAC,QAAQ,EAAE;IACxB,KAAK,CAAC,QAAQ,EAAE;CACjB,EACD,SAAS,CACV,CAAC;AAEJ,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,UAAqB,EACrB,UAAkB,EAClB,YAAuB,UAAU,EACjC,EAAE,CACF,SAAS,CAAC,sBAAsB,CAC9B,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,UAAU,CAAC,QAAQ,EAAE,EAAE,UAAU,CAAC,EACpE,SAAS,CACV,CAAC;AAEJ,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,OAAkB,EAClB,YAAuB,UAAU,EACjC,EAAE,CACF,SAAS,CAAC,sBAAsB,CAC9B,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,EACrD,SAAS,CACV,CAAC;AAEJ,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,UAAqB,EACrB,YAAuB,UAAU,EACjC,EAAE,CACF,SAAS,CAAC,sBAAsB,CAC9B;IACE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;IAChC,yBAAyB,CAAC,QAAQ,EAAE;IACpC,UAAU,CAAC,QAAQ,EAAE;CACtB,EACD,yBAAyB,CAC1B,CAAC"}
1
+ {"version":3,"file":"pdas.js","sourceRoot":"","sources":["../../../src/pdas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,IAAI,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;AAClG,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,MAAiB,EACjB,MAAc,EACd,YAAuB,UAAU,EACjC,EAAE,CACF,SAAS,CAAC,sBAAsB,CAC9B;IACE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACtC,MAAM,CAAC,QAAQ,EAAE;IACjB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;CAC7B,EACD,SAAS,CACV,CAAC;AAEJ,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,MAAiB,EACjB,MAAc,EACd,YAAuB,UAAU,EACjC,EAAE,CACF,SAAS,CAAC,sBAAsB,CAC9B,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EACrF,SAAS,CACV,CAAC;AAEJ,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,aAAwB,EACxB,KAAgB,EAChB,YAAuB,UAAU,EACjC,EAAE,CACF,SAAS,CAAC,sBAAsB,CAC9B;IACE,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,OAAO,CAAC;IACtC,aAAa,CAAC,QAAQ,EAAE;IACxB,KAAK,CAAC,QAAQ,EAAE;CACjB,EACD,SAAS,CACV,CAAC;AAEJ,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,aAAwB,EACxB,UAAkB,EAClB,YAAuB,UAAU,EACjC,EAAE;IACF,IAAI,SAAS,GAAG,MAAM;SACnB,UAAU,CAAC,QAAQ,CAAC;SACpB,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC;SAC3B,MAAM,CAAC,KAAK,CAAC,CAAC;IACjB,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1D,OAAO,SAAS,CAAC,sBAAsB,CACrC,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,EACjE,SAAS,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,UAAqB,EACrB,YAAuB,yBAAyB,EAChD,EAAE,CACF,SAAS,CAAC,sBAAsB,CAC9B;IACE,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;IAChC,SAAS,CAAC,QAAQ,EAAE;IACpB,UAAU,CAAC,QAAQ,EAAE;CACtB,EACD,SAAS,CACV,CAAC"}
@@ -1,26 +1,25 @@
1
- import { PublicKey } from "@solana/web3.js";
2
- import { ataResolver, combineResolvers, resolveIndividual, } from "@helium/spl-utils";
3
1
  import { subDaoEpochInfoResolver } from "@helium/helium-sub-daos-sdk";
4
- import { hotspotKey } from "./pdas";
5
- export const hotspotIssuanceResolvers = combineResolvers(resolveIndividual(async ({ path }) => {
6
- switch (path[path.length - 1]) {
7
- case "dataCreditsProgram":
8
- return new PublicKey("credacwrBVewZAgCwNgowCSMbCiepuesprUWPBeLTSg");
9
- case "tokenMetadataProgram":
10
- return new PublicKey("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s");
11
- case "heliumSubDaosProgram":
12
- return new PublicKey("hdaojPkgSD8bciDc1w2Z4kXFFibCXngJiw2GRpEL7Wf");
13
- default:
14
- return;
15
- }
16
- }), ataResolver({
2
+ import { ataResolver, combineResolvers, heliumCommonResolver, resolveIndividual, } from "@helium/spl-utils";
3
+ import { hotspotStorageKey } from "./pdas";
4
+ import { getAssociatedTokenAddress } from "@solana/spl-token";
5
+ export const heliumEntityManagerResolvers = combineResolvers(heliumCommonResolver, ataResolver({
17
6
  instruction: "initializeHotspotConfigV0",
18
7
  account: "tokenAccount",
19
8
  mint: "collection",
20
9
  owner: "hotspotConfig",
21
- }), resolveIndividual(async ({ path, args, accounts }) => {
22
- if (path[path.length - 1] === "hotspot" && accounts.collection) {
23
- return (hotspotKey(accounts.collection, args[args.length - 1].eccCompact))[0];
10
+ }), resolveIndividual(async ({ path, args, provider, accounts }) => {
11
+ if (path[path.length - 1] === "storage" &&
12
+ args[args.length - 1].hotspotKey &&
13
+ accounts.hotspotConfig) {
14
+ return hotspotStorageKey(accounts.hotspotConfig, args[args.length - 1].hotspotKey)[0];
15
+ }
16
+ else if (path[path.length - 1] === "recipient") {
17
+ // @ts-ignore
18
+ return provider.wallet?.publicKey;
19
+ }
20
+ }), resolveIndividual(async ({ path, accounts }) => {
21
+ if (path[path.length - 1] === "ownerHotspotAta" && (accounts.owner || accounts.hotspotOwner) && accounts.hotspot) {
22
+ return getAssociatedTokenAddress(accounts.hotspot, (accounts.owner || accounts.hotspotOwner));
24
23
  }
25
24
  }), ataResolver({
26
25
  instruction: "issueHotspotV0",
@@ -32,5 +31,10 @@ export const hotspotIssuanceResolvers = combineResolvers(resolveIndividual(async
32
31
  account: "dcBurner",
33
32
  mint: "dcMint",
34
33
  owner: "dcFeePayer",
34
+ }), ataResolver({
35
+ instruction: "changeMetadataV0",
36
+ account: "ownerDcAta",
37
+ mint: "dcMint",
38
+ owner: "hotspotOwner",
35
39
  }), subDaoEpochInfoResolver);
36
40
  //# sourceMappingURL=resolvers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../../src/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,CAAC,MAAM,wBAAwB,GAAG,gBAAgB,CACtD,iBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE;IACnC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE;QAC7B,KAAK,oBAAoB;YACvB,OAAO,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;QACtE,KAAK,sBAAsB;YACzB,OAAO,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;QACtE,KAAK,sBAAsB;YACzB,OAAO,IAAI,SAAS,CAAC,6CAA6C,CAAC,CAAC;QACtE;YACE,OAAO;KACV;AACH,CAAC,CAAC,EACF,WAAW,CAAC;IACV,WAAW,EAAE,2BAA2B;IACxC,OAAO,EAAE,cAAc;IACvB,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,eAAe;CACvB,CAAC,EACF,iBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IACnD,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,SAAS,IAAI,QAAQ,CAAC,UAAU,EAAE;QAC9D,OAAO,CACL,UAAU,CAAC,QAAQ,CAAC,UAAuB,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAC/E,CAAC,CAAC,CAAC,CAAC;KACN;AACH,CAAC,CAAC,EACF,WAAW,CAAC;IACV,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,uBAAuB;IAChC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,cAAc;CACtB,CAAC,EACF,WAAW,CAAC;IACV,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,YAAY;CACpB,CAAC,EACF,uBAAuB,CACxB,CAAC"}
1
+ {"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../../src/resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AACtE,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC3C,OAAO,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AAG9D,MAAM,CAAC,MAAM,4BAA4B,GAAG,gBAAgB,CAC1D,oBAAoB,EACpB,WAAW,CAAC;IACV,WAAW,EAAE,2BAA2B;IACxC,OAAO,EAAE,cAAc;IACvB,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,eAAe;CACvB,CAAC,EACF,iBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC7D,IACE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,SAAS;QACnC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU;QAChC,QAAQ,CAAC,aAAa,EACtB;QACA,OAAO,iBAAiB,CAAC,QAAQ,CAAC,aAA0B,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KACpG;SAAM,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,WAAW,EAAE;QAChD,aAAa;QACb,OAAO,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;KACnC;AACH,CAAC,CAAC,EACF,iBAAiB,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;IAC7C,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,iBAAiB,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,OAAO,EAAE;QAChH,OAAO,yBAAyB,CAAC,QAAQ,CAAC,OAAoB,EAAE,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,YAAY,CAAc,CAAC,CAAA;KACxH;AACH,CAAC,CAAC,EACF,WAAW,CAAC;IACV,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,uBAAuB;IAChC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,cAAc;CACtB,CAAC,EACF,WAAW,CAAC;IACV,WAAW,EAAE,gBAAgB;IAC7B,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,YAAY;CACpB,CAAC,EACF,WAAW,CAAC;IACV,WAAW,EAAE,kBAAkB;IAC/B,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,cAAc;CACtB,CAAC,EACF,uBAAuB,CACxB,CAAC"}