@helium/helium-entity-manager-sdk 0.0.13 → 0.0.15

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 (55) hide show
  1. package/lib/cjs/functions/onboardIotHotspot.js +59 -0
  2. package/lib/cjs/functions/onboardIotHotspot.js.map +1 -0
  3. package/lib/cjs/functions/onboardMobileHotspot.js +58 -0
  4. package/lib/cjs/functions/onboardMobileHotspot.js.map +1 -0
  5. package/lib/cjs/functions/updateIotMetadata.js +56 -0
  6. package/lib/cjs/functions/updateIotMetadata.js.map +1 -0
  7. package/lib/cjs/functions/updateMetadata.js +4 -4
  8. package/lib/cjs/functions/updateMetadata.js.map +1 -1
  9. package/lib/cjs/functions/updateMobileMetadata.js +53 -0
  10. package/lib/cjs/functions/updateMobileMetadata.js.map +1 -0
  11. package/lib/cjs/index.js +9 -3
  12. package/lib/cjs/index.js.map +1 -1
  13. package/lib/cjs/pdas.js +39 -16
  14. package/lib/cjs/pdas.js.map +1 -1
  15. package/lib/cjs/resolvers.js +31 -15
  16. package/lib/cjs/resolvers.js.map +1 -1
  17. package/lib/cjs/utils.js +25 -0
  18. package/lib/cjs/utils.js.map +1 -0
  19. package/lib/esm/src/functions/onboardIotHotspot.js +44 -0
  20. package/lib/esm/src/functions/onboardIotHotspot.js.map +1 -0
  21. package/lib/esm/src/functions/onboardMobileHotspot.js +43 -0
  22. package/lib/esm/src/functions/onboardMobileHotspot.js.map +1 -0
  23. package/lib/esm/src/functions/updateIotMetadata.js +41 -0
  24. package/lib/esm/src/functions/updateIotMetadata.js.map +1 -0
  25. package/lib/esm/src/functions/updateMetadata.js +4 -4
  26. package/lib/esm/src/functions/updateMetadata.js.map +1 -1
  27. package/lib/esm/src/functions/updateMobileMetadata.js +38 -0
  28. package/lib/esm/src/functions/updateMobileMetadata.js.map +1 -0
  29. package/lib/esm/src/index.js +4 -1
  30. package/lib/esm/src/index.js.map +1 -1
  31. package/lib/esm/src/pdas.js +25 -13
  32. package/lib/esm/src/pdas.js.map +1 -1
  33. package/lib/esm/src/resolvers.js +30 -15
  34. package/lib/esm/src/resolvers.js.map +1 -1
  35. package/lib/esm/src/utils.js +21 -0
  36. package/lib/esm/src/utils.js.map +1 -0
  37. package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
  38. package/lib/types/src/functions/onboardIotHotspot.d.ts +147 -0
  39. package/lib/types/src/functions/onboardIotHotspot.d.ts.map +1 -0
  40. package/lib/types/src/functions/onboardMobileHotspot.d.ts +147 -0
  41. package/lib/types/src/functions/onboardMobileHotspot.d.ts.map +1 -0
  42. package/lib/types/src/functions/updateIotMetadata.d.ts +133 -0
  43. package/lib/types/src/functions/updateIotMetadata.d.ts.map +1 -0
  44. package/lib/types/src/functions/updateMetadata.d.ts +14 -6
  45. package/lib/types/src/functions/updateMetadata.d.ts.map +1 -1
  46. package/lib/types/src/functions/updateMobileMetadata.d.ts +131 -0
  47. package/lib/types/src/functions/updateMobileMetadata.d.ts.map +1 -0
  48. package/lib/types/src/index.d.ts +4 -1
  49. package/lib/types/src/index.d.ts.map +1 -1
  50. package/lib/types/src/pdas.d.ts +6 -4
  51. package/lib/types/src/pdas.d.ts.map +1 -1
  52. package/lib/types/src/resolvers.d.ts.map +1 -1
  53. package/lib/types/src/utils.d.ts +7 -0
  54. package/lib/types/src/utils.d.ts.map +1 -0
  55. package/package.json +5 -5
@@ -0,0 +1,59 @@
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.onboardIotHotspot = void 0;
13
+ const spl_utils_1 = require("@helium/spl-utils");
14
+ const pdas_1 = require("../pdas");
15
+ function onboardIotHotspot({ program, rewardableEntityConfig, assetId, maker, dao, assetEndpoint, 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 = assetEndpoint || 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: { json_uri } } = asset;
29
+ const [info] = (0, pdas_1.iotInfoKey)(rewardableEntityConfig, assetId);
30
+ const makerAcc = yield program.account.makerV0.fetchNullable(maker);
31
+ const keyToAsset = (yield (0, pdas_1.keyToAssetKey)(dao, json_uri.split("/").slice(-1)[0]))[0];
32
+ return program.methods
33
+ .onboardIotHotspotV0({
34
+ hash: leaf.toBuffer().toJSON().data,
35
+ root: root.toBuffer().toJSON().data,
36
+ index: nodeIndex,
37
+ })
38
+ .accounts({
39
+ // hotspot: assetId,
40
+ rewardableEntityConfig,
41
+ hotspotOwner: owner,
42
+ iotInfo: info,
43
+ merkleTree: treeId,
44
+ maker,
45
+ dao,
46
+ issuingAuthority: makerAcc === null || makerAcc === void 0 ? void 0 : makerAcc.issuingAuthority,
47
+ keyToAsset,
48
+ })
49
+ .remainingAccounts(proof.map((p) => {
50
+ return {
51
+ pubkey: p,
52
+ isWritable: false,
53
+ isSigner: false,
54
+ };
55
+ }));
56
+ });
57
+ }
58
+ exports.onboardIotHotspot = onboardIotHotspot;
59
+ //# sourceMappingURL=onboardIotHotspot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboardIotHotspot.js","sourceRoot":"","sources":["../../../src/functions/onboardIotHotspot.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iDAA+E;AAG/E,kCAAoD;AAGpD,SAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,KAAK,EACL,GAAG,EACH,aAAa,EACb,UAAU,GAAG,oBAAQ,EACrB,eAAe,GAAG,yBAAa,GAahC;;QACC,aAAa;QACb,MAAM,QAAQ,GAAG,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QAC3E,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,QAAQ,EAAE,EACtB,GAAG,KAAK,CAAC;QACV,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,iBAAU,EAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;QAE3D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEpE,MAAM,UAAU,GAAG,CACjB,MAAM,IAAA,oBAAa,EAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3D,CAAC,CAAC,CAAC,CAAC;QACL,OAAO,OAAO,CAAC,OAAO;aACnB,mBAAmB,CAAC;YACnB,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,oBAAoB;YACpB,sBAAsB;YACtB,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,MAAM;YAClB,KAAK;YACL,GAAG;YACH,gBAAgB,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,gBAAgB;YAC5C,UAAU;SACX,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;AAtED,8CAsEC"}
@@ -0,0 +1,58 @@
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.onboardMobileHotspot = void 0;
13
+ const spl_utils_1 = require("@helium/spl-utils");
14
+ const pdas_1 = require("../pdas");
15
+ function onboardMobileHotspot({ program, rewardableEntityConfig, assetId, maker, dao, assetEndpoint, 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 = assetEndpoint || 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, treeId, nodeIndex, leaf } = assetProof;
28
+ const { ownership: { owner }, content: { json_uri } } = asset;
29
+ const [info] = (0, pdas_1.mobileInfoKey)(rewardableEntityConfig, assetId);
30
+ const makerAcc = yield program.account.makerV0.fetchNullable(maker);
31
+ return program.methods
32
+ .onboardMobileHotspotV0({
33
+ hash: leaf.toBuffer().toJSON().data,
34
+ root: root.toBuffer().toJSON().data,
35
+ index: nodeIndex,
36
+ })
37
+ .accounts({
38
+ // hotspot: assetId,
39
+ rewardableEntityConfig,
40
+ hotspotOwner: owner,
41
+ mobileInfo: info,
42
+ merkleTree: treeId,
43
+ maker,
44
+ dao,
45
+ issuingAuthority: makerAcc === null || makerAcc === void 0 ? void 0 : makerAcc.issuingAuthority,
46
+ keyToAsset: (yield (0, pdas_1.keyToAssetKey)(dao, json_uri.split("/").slice(-1)[0]))[0],
47
+ })
48
+ .remainingAccounts(proof.map((p) => {
49
+ return {
50
+ pubkey: p,
51
+ isWritable: false,
52
+ isSigner: false,
53
+ };
54
+ }));
55
+ });
56
+ }
57
+ exports.onboardMobileHotspot = onboardMobileHotspot;
58
+ //# sourceMappingURL=onboardMobileHotspot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboardMobileHotspot.js","sourceRoot":"","sources":["../../../src/functions/onboardMobileHotspot.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iDAA+E;AAG/E,kCAAuD;AAEvD,SAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,KAAK,EACL,GAAG,EACH,aAAa,EACb,UAAU,GAAG,oBAAQ,EACrB,eAAe,GAAG,yBAAa,GAahC;;QACC,aAAa;QACb,MAAM,QAAQ,GAAG,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QAC3E,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,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;QAC5D,MAAM,EACJ,SAAS,EAAE,EAAE,KAAK,EAAE,EACpB,OAAO,EAAE,EAAE,QAAQ,EAAE,EACtB,GAAG,KAAK,CAAC;QAEV,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,oBAAa,EAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;QAE9D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEpE,OAAO,OAAO,CAAC,OAAO;aACnB,sBAAsB,CAAC;YACtB,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,oBAAoB;YACpB,sBAAsB;YACtB,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;YAClB,KAAK;YACL,GAAG;YACH,gBAAgB,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,gBAAgB;YAC5C,UAAU,EAAE,CACV,MAAM,IAAA,oBAAa,EAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3D,CAAC,CAAC,CAAC;SACL,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;AAtED,oDAsEC"}
@@ -0,0 +1,56 @@
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.updateIotMetadata = void 0;
13
+ const spl_utils_1 = require("@helium/spl-utils");
14
+ const pdas_1 = require("../pdas");
15
+ function updateIotMetadata({ program, rewardableEntityConfig, assetId, location, elevation, gain, assetEndpoint, 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 = assetEndpoint || 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 }, } = asset;
29
+ const [info] = (0, pdas_1.iotInfoKey)(rewardableEntityConfig, assetId);
30
+ return program.methods
31
+ .updateIotInfoV0({
32
+ location,
33
+ elevation,
34
+ gain,
35
+ hash: leaf.toBuffer().toJSON().data,
36
+ root: root.toBuffer().toJSON().data,
37
+ index: nodeIndex,
38
+ })
39
+ .accounts({
40
+ // hotspot: assetId,
41
+ rewardableEntityConfig,
42
+ hotspotOwner: owner,
43
+ iotInfo: info,
44
+ merkleTree: treeId,
45
+ })
46
+ .remainingAccounts(proof.map((p) => {
47
+ return {
48
+ pubkey: p,
49
+ isWritable: false,
50
+ isSigner: false,
51
+ };
52
+ }));
53
+ });
54
+ }
55
+ exports.updateIotMetadata = updateIotMetadata;
56
+ //# sourceMappingURL=updateIotMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateIotMetadata.js","sourceRoot":"","sources":["../../../src/functions/updateIotMetadata.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iDAA+E;AAG/E,kCAAqC;AAErC,SAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,aAAa,EACb,UAAU,GAAG,oBAAQ,EACrB,eAAe,GAAG,yBAAa,GAchC;;QACC,aAAa;QACb,MAAM,QAAQ,GAAG,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QAC3E,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,GACrB,GAAG,KAAK,CAAC;QAEV,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,iBAAU,EAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;QAE3D,OAAO,OAAO,CAAC,OAAO;aACnB,eAAe,CAAC;YACf,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,oBAAoB;YACpB,sBAAsB;YACtB,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,IAAI;YACb,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,8CAkEC"}
@@ -12,7 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.updateMetadata = void 0;
13
13
  const spl_utils_1 = require("@helium/spl-utils");
14
14
  const pdas_1 = require("../pdas");
15
- function updateMetadata({ program, hotspotConfig, assetId, location, elevation, gain, assetEndpoint, getAssetFn = spl_utils_1.getAsset, getAssetProofFn = spl_utils_1.getAssetProof, }) {
15
+ function updateMetadata({ program, rewardableEntityConfig, assetId, location, elevation, gain, assetEndpoint, getAssetFn = spl_utils_1.getAsset, getAssetProofFn = spl_utils_1.getAssetProof, }) {
16
16
  return __awaiter(this, void 0, void 0, function* () {
17
17
  // @ts-ignore
18
18
  const endpoint = assetEndpoint || program.provider.connection._rpcEndpoint;
@@ -27,7 +27,7 @@ function updateMetadata({ program, hotspotConfig, assetId, location, elevation,
27
27
  const { root, proof, leaf, treeId, nodeIndex } = assetProof;
28
28
  const { ownership: { owner }, content: { json_uri: uri }, } = asset;
29
29
  const eccCompact = uri.split("/").slice(-1)[0];
30
- const [info] = (0, pdas_1.iotInfoKey)(hotspotConfig, eccCompact);
30
+ const [info] = (0, pdas_1.iotInfoKey)(rewardableEntityConfig, eccCompact);
31
31
  return program.methods
32
32
  .updateIotInfoV0({
33
33
  location,
@@ -39,9 +39,9 @@ function updateMetadata({ program, hotspotConfig, assetId, location, elevation,
39
39
  })
40
40
  .accounts({
41
41
  // hotspot: assetId,
42
- hotspotConfig,
42
+ rewardableEntityConfig,
43
43
  hotspotOwner: owner,
44
- info,
44
+ iotInfo: info,
45
45
  merkleTree: treeId,
46
46
  })
47
47
  .remainingAccounts(proof.map((p) => {
@@ -1 +1 @@
1
- {"version":3,"file":"updateMetadata.js","sourceRoot":"","sources":["../../../src/functions/updateMetadata.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iDAA+E;AAI/E,kCAAqC;AAErC,SAAsB,cAAc,CAAC,EACnC,OAAO,EACP,aAAa,EACb,OAAO,EACP,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,aAAa,EACb,UAAU,GAAG,oBAAQ,EACrB,eAAe,GAAG,yBAAa,GAchC;;QACC,aAAa;QACb,MAAM,QAAQ,GAAG,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QAC3E,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,QAAQ,EAAE,GAAG,EAAE,GAC3B,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,IAAI,CAAC,GAAG,IAAA,iBAAU,EAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAErD,OAAO,OAAO,CAAC,OAAO;aACnB,eAAe,CAAC;YACf,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,oBAAoB;YACpB,aAAa;YACb,YAAY,EAAE,KAAK;YACnB,IAAI;YACJ,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;AApED,wCAoEC"}
1
+ {"version":3,"file":"updateMetadata.js","sourceRoot":"","sources":["../../../src/functions/updateMetadata.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iDAA+E;AAG/E,kCAAqC;AAErC,SAAsB,cAAc,CAAC,EACnC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,aAAa,EACb,UAAU,GAAG,oBAAQ,EACrB,eAAe,GAAG,yBAAa,GAchC;;QACC,aAAa;QACb,MAAM,QAAQ,GAAG,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QAC3E,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,QAAQ,EAAE,GAAG,EAAE,GAC3B,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,IAAI,CAAC,GAAG,IAAA,iBAAU,EAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;QAE9D,OAAO,OAAO,CAAC,OAAO;aACnB,eAAe,CAAC;YACf,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,oBAAoB;YACpB,sBAAsB;YACtB,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,IAAI;YACb,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;AApED,wCAoEC"}
@@ -0,0 +1,53 @@
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.updateMobileMetadata = void 0;
13
+ const spl_utils_1 = require("@helium/spl-utils");
14
+ const pdas_1 = require("../pdas");
15
+ function updateMobileMetadata({ program, rewardableEntityConfig, assetId, location, assetEndpoint, 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 = assetEndpoint || 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 }, } = asset;
29
+ const [info] = (0, pdas_1.mobileInfoKey)(rewardableEntityConfig, assetId);
30
+ return program.methods
31
+ .updateMobileInfoV0({
32
+ location,
33
+ hash: leaf.toBuffer().toJSON().data,
34
+ root: root.toBuffer().toJSON().data,
35
+ index: nodeIndex,
36
+ })
37
+ .accounts({
38
+ rewardableEntityConfig,
39
+ hotspotOwner: owner,
40
+ mobileInfo: info,
41
+ merkleTree: treeId,
42
+ })
43
+ .remainingAccounts(proof.map((p) => {
44
+ return {
45
+ pubkey: p,
46
+ isWritable: false,
47
+ isSigner: false,
48
+ };
49
+ }));
50
+ });
51
+ }
52
+ exports.updateMobileMetadata = updateMobileMetadata;
53
+ //# sourceMappingURL=updateMobileMetadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateMobileMetadata.js","sourceRoot":"","sources":["../../../src/functions/updateMobileMetadata.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iDAA+E;AAG/E,kCAAoD;AAEpD,SAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,QAAQ,EACR,aAAa,EACb,UAAU,GAAG,oBAAQ,EACrB,eAAe,GAAG,yBAAa,GAYhC;;QACC,aAAa;QACb,MAAM,QAAQ,GAAG,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;QAC3E,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,GACrB,GAAG,KAAK,CAAC;QAEV,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,oBAAa,EAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;QAE9D,OAAO,OAAO,CAAC,OAAO;aACnB,kBAAkB,CAAC;YAClB,QAAQ;YACR,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,sBAAsB;YACtB,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,IAAI;YAChB,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;AA3DD,oDA2DC"}
package/lib/cjs/index.js CHANGED
@@ -23,15 +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 = exports.updateMetadata = void 0;
26
+ exports.init = exports.onboardMobileHotspot = exports.onboardIotHotspot = exports.updateMobileMetadata = exports.updateIotMetadata = 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 updateMetadata_1 = require("./functions/updateMetadata");
34
- Object.defineProperty(exports, "updateMetadata", { enumerable: true, get: function () { return updateMetadata_1.updateMetadata; } });
33
+ var updateIotMetadata_1 = require("./functions/updateIotMetadata");
34
+ Object.defineProperty(exports, "updateIotMetadata", { enumerable: true, get: function () { return updateIotMetadata_1.updateIotMetadata; } });
35
+ var updateMobileMetadata_1 = require("./functions/updateMobileMetadata");
36
+ Object.defineProperty(exports, "updateMobileMetadata", { enumerable: true, get: function () { return updateMobileMetadata_1.updateMobileMetadata; } });
37
+ var onboardIotHotspot_1 = require("./functions/onboardIotHotspot");
38
+ Object.defineProperty(exports, "onboardIotHotspot", { enumerable: true, get: function () { return onboardIotHotspot_1.onboardIotHotspot; } });
39
+ var onboardMobileHotspot_1 = require("./functions/onboardMobileHotspot");
40
+ Object.defineProperty(exports, "onboardMobileHotspot", { enumerable: true, get: function () { return onboardMobileHotspot_1.onboardMobileHotspot; } });
35
41
  const init = (provider, programId = constants_1.PROGRAM_ID, idl) => __awaiter(void 0, void 0, void 0, function* () {
36
42
  if (!idl) {
37
43
  idl = yield anchor_1.Program.fetchIdl(programId, provider);
@@ -1 +1 @@
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"}
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,mEAAkE;AAAzD,sHAAA,iBAAiB,OAAA;AAC1B,yEAAwE;AAA/D,4HAAA,oBAAoB,OAAA;AAC7B,mEAAkE;AAAzD,sHAAA,iBAAiB,OAAA;AAC1B,yEAAwE;AAA/D,4HAAA,oBAAoB,OAAA;AAEtB,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"}
package/lib/cjs/pdas.js CHANGED
@@ -1,34 +1,57 @@
1
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
+ };
2
11
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
12
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
13
  };
5
14
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.collectionMetadataKey = exports.iotInfoKey = exports.hotspotIssuerKey = exports.hotspotCollectionKey = exports.hotspotConfigKey = void 0;
15
+ exports.collectionMetadataKey = exports.mobileInfoKey = exports.iotInfoKey = exports.keyToAssetKey = exports.makerKey = exports.hotspotCollectionKey = exports.rewardableEntityConfigKey = void 0;
7
16
  const web3_js_1 = require("@solana/web3.js");
8
17
  const constants_1 = require("./constants");
9
18
  const mpl_token_metadata_1 = require("@metaplex-foundation/mpl-token-metadata");
10
- const sha256_1 = __importDefault(require("crypto-js/sha256"));
11
- const enc_hex_1 = __importDefault(require("crypto-js/enc-hex"));
12
- const hotspotConfigKey = (subDao, symbol, programId = constants_1.PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddressSync([
13
- Buffer.from("hotspot_config", "utf-8"),
19
+ const crypto_1 = __importDefault(require("crypto"));
20
+ // @ts-ignore
21
+ const bs58_1 = __importDefault(require("bs58"));
22
+ const rewardableEntityConfigKey = (subDao, symbol, programId = constants_1.PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddressSync([
23
+ Buffer.from("rewardable_entity_config", "utf-8"),
14
24
  subDao.toBuffer(),
15
25
  Buffer.from(symbol, "utf-8"),
16
26
  ], programId);
17
- exports.hotspotConfigKey = hotspotConfigKey;
18
- const hotspotCollectionKey = (subDao, symbol, programId = constants_1.PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("collection", "utf-8"), subDao.toBuffer(), Buffer.from(symbol, "utf-8")], programId);
27
+ exports.rewardableEntityConfigKey = rewardableEntityConfigKey;
28
+ const hotspotCollectionKey = (maker, programId = constants_1.PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("collection", "utf-8"), maker.toBuffer()], programId);
19
29
  exports.hotspotCollectionKey = hotspotCollectionKey;
20
- const hotspotIssuerKey = (hotspotConfig, maker, programId = constants_1.PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddressSync([
21
- Buffer.from("hotspot_issuer", "utf-8"),
22
- hotspotConfig.toBuffer(),
23
- maker.toBuffer(),
30
+ const makerKey = (name, programId = constants_1.PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddressSync([
31
+ Buffer.from("maker", "utf-8"),
32
+ Buffer.from(name, "utf-8"),
24
33
  ], programId);
25
- exports.hotspotIssuerKey = hotspotIssuerKey;
26
- const iotInfoKey = (hotspotConfig, hotspotKey, programId = constants_1.PROGRAM_ID) => {
27
- let hexString = (0, sha256_1.default)(hotspotKey).toString(enc_hex_1.default);
28
- let seed = Uint8Array.from(Buffer.from(hexString, "hex"));
29
- return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("iot_info", "utf-8"), hotspotConfig.toBuffer(), seed], programId);
34
+ exports.makerKey = makerKey;
35
+ const keyToAssetKey = (dao, entityKey, programId = constants_1.PROGRAM_ID) => __awaiter(void 0, void 0, void 0, function* () {
36
+ if (typeof entityKey === "string") {
37
+ entityKey = Buffer.from(bs58_1.default.decode(entityKey));
38
+ }
39
+ const hash = yield crypto_1.default.subtle.digest("SHA-256", entityKey);
40
+ return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("key_to_asset", "utf-8"), dao.toBuffer(), Buffer.from(hash)], programId);
41
+ });
42
+ exports.keyToAssetKey = keyToAssetKey;
43
+ const iotInfoKey = (rewardableEntityConfig, assetId, programId = constants_1.PROGRAM_ID) => {
44
+ return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("iot_info", "utf-8"), rewardableEntityConfig.toBuffer(), assetId.toBuffer()], programId);
30
45
  };
31
46
  exports.iotInfoKey = iotInfoKey;
47
+ const mobileInfoKey = (rewardableEntityConfig, assetId, programId = constants_1.PROGRAM_ID) => {
48
+ return web3_js_1.PublicKey.findProgramAddressSync([
49
+ Buffer.from("mobile_info", "utf-8"),
50
+ rewardableEntityConfig.toBuffer(),
51
+ assetId.toBuffer(),
52
+ ], programId);
53
+ };
54
+ exports.mobileInfoKey = mobileInfoKey;
32
55
  const collectionMetadataKey = (collection, programId = mpl_token_metadata_1.PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddressSync([
33
56
  Buffer.from("metadata", "utf-8"),
34
57
  programId.toBuffer(),
@@ -1 +1 @@
1
- {"version":3,"file":"pdas.js","sourceRoot":"","sources":["../../src/pdas.ts"],"names":[],"mappings":";;;;;;AAAA,6CAA4C;AAC5C,2CAAyC;AACzC,gFAAkG;AAClG,8DAAsC;AACtC,gEAAoC;AAE7B,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,aAAwB,EACxB,UAAkB,EAClB,YAAuB,sBAAU,EACjC,EAAE;IACF,IAAI,SAAS,GAAG,IAAA,gBAAM,EAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,iBAAG,CAAC,CAAA;IAChD,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,UAAU,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,EAClE,SAAS,CACV,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,UAAU,cAYrB;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"}
1
+ {"version":3,"file":"pdas.js","sourceRoot":"","sources":["../../src/pdas.ts"],"names":[],"mappings":"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"}
@@ -14,40 +14,56 @@ const helium_sub_daos_sdk_1 = require("@helium/helium-sub-daos-sdk");
14
14
  const spl_utils_1 = require("@helium/spl-utils");
15
15
  const pdas_1 = require("./pdas");
16
16
  const spl_token_1 = require("@solana/spl-token");
17
+ const mpl_bubblegum_1 = require("@metaplex-foundation/mpl-bubblegum");
17
18
  exports.heliumEntityManagerResolvers = (0, spl_utils_1.combineResolvers)(spl_utils_1.heliumCommonResolver, (0, spl_utils_1.ataResolver)({
18
- instruction: "initializeHotspotConfigV0",
19
+ instruction: "initializeMakerV0",
19
20
  account: "tokenAccount",
20
21
  mint: "collection",
21
- owner: "hotspotConfig",
22
- }), (0, spl_utils_1.resolveIndividual)(({ path, args, provider, accounts }) => __awaiter(void 0, void 0, void 0, function* () {
22
+ owner: "maker",
23
+ }), (0, spl_utils_1.resolveIndividual)(({ path, args, accounts }) => __awaiter(void 0, void 0, void 0, function* () {
24
+ if (path[path.length - 1] === "keyToAsset" &&
25
+ args[args.length - 1].entityKey &&
26
+ accounts.dao) {
27
+ return (yield (0, pdas_1.keyToAssetKey)(accounts.dao, args[args.length - 1].entityKey))[0];
28
+ }
29
+ })), (0, spl_utils_1.resolveIndividual)(({ path, args, provider, accounts }) => __awaiter(void 0, void 0, void 0, function* () {
23
30
  var _a;
24
- if (path[path.length - 1] === "info" &&
25
- args[args.length - 1].hotspotKey &&
26
- accounts.hotspotConfig) {
27
- return (0, pdas_1.iotInfoKey)(accounts.hotspotConfig, args[args.length - 1].hotspotKey)[0];
31
+ if (path[path.length - 1] === "iotInfo" &&
32
+ args[args.length - 1].index &&
33
+ accounts.merkleTree &&
34
+ accounts.rewardableEntityConfig) {
35
+ return (0, pdas_1.iotInfoKey)(accounts.rewardableEntityConfig, yield (0, mpl_bubblegum_1.getLeafAssetId)(accounts.merkleTree, args[args.length - 1].index))[0];
28
36
  }
29
37
  else if (path[path.length - 1] === "recipient") {
30
38
  // @ts-ignore
31
39
  return (_a = provider.wallet) === null || _a === void 0 ? void 0 : _a.publicKey;
32
40
  }
41
+ })), (0, spl_utils_1.resolveIndividual)(({ path, args, provider, accounts }) => __awaiter(void 0, void 0, void 0, function* () {
42
+ var _b;
43
+ if (path[path.length - 1] === "mobileInfo" &&
44
+ args[args.length - 1].index &&
45
+ accounts.merkleTree &&
46
+ accounts.rewardableEntityConfig) {
47
+ return (0, pdas_1.mobileInfoKey)(accounts.rewardableEntityConfig, yield (0, mpl_bubblegum_1.getLeafAssetId)(accounts.merkleTree, args[args.length - 1].index))[0];
48
+ }
49
+ else if (path[path.length - 1] === "recipient") {
50
+ // @ts-ignore
51
+ return (_b = provider.wallet) === null || _b === void 0 ? void 0 : _b.publicKey;
52
+ }
33
53
  })), (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) {
54
+ if (path[path.length - 1] === "ownerHotspotAta" &&
55
+ (accounts.owner || accounts.hotspotOwner) &&
56
+ accounts.hotspot) {
35
57
  return (0, spl_token_1.getAssociatedTokenAddress)(accounts.hotspot, (accounts.owner || accounts.hotspotOwner));
36
58
  }
37
59
  })), (0, spl_utils_1.ataResolver)({
38
- instruction: "issueIotHotspotV0",
60
+ instruction: "issueEntityV0",
39
61
  account: "recipientTokenAccount",
40
62
  mint: "hotspot",
41
63
  owner: "hotspotOwner",
42
64
  }), (0, spl_utils_1.ataResolver)({
43
- instruction: "issueIotHotspotV0",
44
65
  account: "dcBurner",
45
66
  mint: "dcMint",
46
67
  owner: "dcFeePayer",
47
- }), (0, spl_utils_1.ataResolver)({
48
- instruction: "updateIotInfoV0",
49
- account: "ownerDcAta",
50
- mint: "dcMint",
51
- owner: "hotspotOwner",
52
68
  }), helium_sub_daos_sdk_1.subDaoEpochInfoResolver);
53
69
  //# sourceMappingURL=resolvers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../src/resolvers.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qEAAsE;AACtE,iDAK2B;AAC3B,iCAAoC;AACpC,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,MAAM;QAChC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU;QAChC,QAAQ,CAAC,aAAa,EACtB;QACA,OAAO,IAAA,iBAAU,EAAC,QAAQ,CAAC,aAA0B,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KAC7F;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,mBAAmB;IAChC,OAAO,EAAE,uBAAuB;IAChC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,cAAc;CACtB,CAAC,EACF,IAAA,uBAAW,EAAC;IACV,WAAW,EAAE,mBAAmB;IAChC,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,YAAY;CACpB,CAAC,EACF,IAAA,uBAAW,EAAC;IACV,WAAW,EAAE,iBAAiB;IAC9B,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,cAAc;CACtB,CAAC,EACF,6CAAuB,CACxB,CAAC"}
1
+ {"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../src/resolvers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assetToMetadataArgs = void 0;
4
+ function assetToMetadataArgs(asset) {
5
+ const metadata = {
6
+ name: asset.content.metadata.name,
7
+ symbol: asset.content.metadata.symbol,
8
+ uri: asset.content.json_uri,
9
+ sellerFeeBasisPoints: asset.royalty.basis_points,
10
+ primarySaleHappened: asset.royalty.primary_sale_happened,
11
+ isMutable: asset.mutable,
12
+ editionNonce: asset.supply.edition_nonce,
13
+ tokenStandard: { nonFungible: {} },
14
+ collection: asset.grouping ? {
15
+ key: asset.grouping,
16
+ verified: true
17
+ } : null,
18
+ uses: null,
19
+ tokenProgramVersion: { original: {} },
20
+ creators: asset.creators,
21
+ };
22
+ return metadata;
23
+ }
24
+ exports.assetToMetadataArgs = assetToMetadataArgs;
25
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAMA,SAAgB,mBAAmB,CAAC,KAAY;IAC9C,MAAM,QAAQ,GAAiB;QAC7B,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI;QACjC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM;QACrC,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;QAC3B,oBAAoB,EAAE,KAAK,CAAC,OAAO,CAAC,YAAY;QAChD,mBAAmB,EAAE,KAAK,CAAC,OAAO,CAAC,qBAAqB;QACxD,SAAS,EAAE,KAAK,CAAC,OAAO;QACxB,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,aAAa;QACxC,aAAa,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;QAClC,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC3B,GAAG,EAAE,KAAK,CAAC,QAAQ;YACnB,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC,CAAC,IAAI;QACR,IAAI,EAAE,IAAI;QACV,mBAAmB,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QACrC,QAAQ,EAAE,KAAK,CAAC,QAAQ;KACzB,CAAC;IAEF,OAAO,QAAQ,CAAA;AACjB,CAAC;AApBD,kDAoBC"}
@@ -0,0 +1,44 @@
1
+ import { getAsset, getAssetProof } from "@helium/spl-utils";
2
+ import { iotInfoKey, keyToAssetKey } from "../pdas";
3
+ export async function onboardIotHotspot({ program, rewardableEntityConfig, assetId, maker, dao, assetEndpoint, getAssetFn = getAsset, getAssetProofFn = getAssetProof, }) {
4
+ // @ts-ignore
5
+ const endpoint = assetEndpoint || 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: { json_uri } } = asset;
16
+ const [info] = iotInfoKey(rewardableEntityConfig, assetId);
17
+ const makerAcc = await program.account.makerV0.fetchNullable(maker);
18
+ const keyToAsset = (await keyToAssetKey(dao, json_uri.split("/").slice(-1)[0]))[0];
19
+ return program.methods
20
+ .onboardIotHotspotV0({
21
+ hash: leaf.toBuffer().toJSON().data,
22
+ root: root.toBuffer().toJSON().data,
23
+ index: nodeIndex,
24
+ })
25
+ .accounts({
26
+ // hotspot: assetId,
27
+ rewardableEntityConfig,
28
+ hotspotOwner: owner,
29
+ iotInfo: info,
30
+ merkleTree: treeId,
31
+ maker,
32
+ dao,
33
+ issuingAuthority: makerAcc?.issuingAuthority,
34
+ keyToAsset,
35
+ })
36
+ .remainingAccounts(proof.map((p) => {
37
+ return {
38
+ pubkey: p,
39
+ isWritable: false,
40
+ isSigner: false,
41
+ };
42
+ }));
43
+ }
44
+ //# sourceMappingURL=onboardIotHotspot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboardIotHotspot.js","sourceRoot":"","sources":["../../../../src/functions/onboardIotHotspot.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG/E,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAGpD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACtC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,KAAK,EACL,GAAG,EACH,aAAa,EACb,UAAU,GAAG,QAAQ,EACrB,eAAe,GAAG,aAAa,GAahC;IACC,aAAa;IACb,MAAM,QAAQ,GAAG,aAAa,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC;IAC3E,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,QAAQ,EAAE,EACtB,GAAG,KAAK,CAAC;IACV,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAE3D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAEpE,MAAM,UAAU,GAAG,CACjB,MAAM,aAAa,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3D,CAAC,CAAC,CAAC,CAAC;IACL,OAAO,OAAO,CAAC,OAAO;SACnB,mBAAmB,CAAC;QACnB,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,oBAAoB;QACpB,sBAAsB;QACtB,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,MAAM;QAClB,KAAK;QACL,GAAG;QACH,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB;QAC5C,UAAU;KACX,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"}