@helium/helium-entity-manager-sdk 0.0.12 → 0.0.14

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 +59 -0
  4. package/lib/cjs/functions/onboardMobileHotspot.js.map +1 -0
  5. package/lib/cjs/functions/updateIotMetadata.js +57 -0
  6. package/lib/cjs/functions/updateIotMetadata.js.map +1 -0
  7. package/lib/cjs/functions/updateMetadata.js +5 -5
  8. package/lib/cjs/functions/updateMetadata.js.map +1 -1
  9. package/lib/cjs/functions/updateMobileMetadata.js +54 -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 +21 -12
  14. package/lib/cjs/pdas.js.map +1 -1
  15. package/lib/cjs/resolvers.js +21 -14
  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 +44 -0
  22. package/lib/esm/src/functions/onboardMobileHotspot.js.map +1 -0
  23. package/lib/esm/src/functions/updateIotMetadata.js +42 -0
  24. package/lib/esm/src/functions/updateIotMetadata.js.map +1 -0
  25. package/lib/esm/src/functions/updateMetadata.js +5 -5
  26. package/lib/esm/src/functions/updateMetadata.js.map +1 -1
  27. package/lib/esm/src/functions/updateMobileMetadata.js +39 -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 +17 -9
  32. package/lib/esm/src/pdas.js.map +1 -1
  33. package/lib/esm/src/resolvers.js +21 -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 +141 -0
  39. package/lib/types/src/functions/onboardIotHotspot.d.ts.map +1 -0
  40. package/lib/types/src/functions/onboardMobileHotspot.d.ts +141 -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 +5 -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
+ const utils_1 = require("../utils");
16
+ function onboardIotHotspot({ program, rewardableEntityConfig, assetId, maker, assetEndpoint, getAssetFn = spl_utils_1.getAsset, getAssetProofFn = spl_utils_1.getAssetProof, }) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ // @ts-ignore
19
+ const endpoint = assetEndpoint || program.provider.connection._rpcEndpoint;
20
+ const asset = yield getAssetFn(endpoint, assetId);
21
+ if (!asset) {
22
+ throw new Error("No asset with ID " + assetId.toBase58());
23
+ }
24
+ const assetProof = yield getAssetProofFn(endpoint, assetId);
25
+ if (!assetProof) {
26
+ throw new Error("No asset proof with ID " + assetId.toBase58());
27
+ }
28
+ const { root, proof, leaf, treeId, nodeIndex } = assetProof;
29
+ const { ownership: { owner }, content: { json_uri: uri }, } = asset;
30
+ const eccCompact = uri.split("/").slice(-1)[0];
31
+ const [info] = (0, pdas_1.iotInfoKey)(rewardableEntityConfig, eccCompact);
32
+ const makerAcc = yield program.account.makerV0.fetchNullable(maker);
33
+ const anchorMetadata = (0, utils_1.assetToMetadataArgs)(asset);
34
+ return program.methods
35
+ .onboardIotHotspotV0({
36
+ metadata: anchorMetadata,
37
+ root: root.toBuffer().toJSON().data,
38
+ index: nodeIndex,
39
+ })
40
+ .accounts({
41
+ // hotspot: assetId,
42
+ rewardableEntityConfig,
43
+ hotspotOwner: owner,
44
+ iotInfo: info,
45
+ merkleTree: treeId,
46
+ maker,
47
+ issuingAuthority: makerAcc === null || makerAcc === void 0 ? void 0 : makerAcc.issuingAuthority
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;AAI/E,kCAAqC;AACrC,oCAA+C;AAE/C,SAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,KAAK,EACL,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,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,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEpE,MAAM,cAAc,GAAG,IAAA,2BAAmB,EAAC,KAAK,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,OAAO;aACnB,mBAAmB,CAAC;YACnB,QAAQ,EAAE,cAAc;YACxB,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,gBAAgB,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,gBAAgB;SAC7C,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"}
@@ -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.onboardMobileHotspot = void 0;
13
+ const spl_utils_1 = require("@helium/spl-utils");
14
+ const pdas_1 = require("../pdas");
15
+ const utils_1 = require("../utils");
16
+ function onboardMobileHotspot({ program, rewardableEntityConfig, assetId, maker, assetEndpoint, getAssetFn = spl_utils_1.getAsset, getAssetProofFn = spl_utils_1.getAssetProof, }) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ // @ts-ignore
19
+ const endpoint = assetEndpoint || program.provider.connection._rpcEndpoint;
20
+ const asset = yield getAssetFn(endpoint, assetId);
21
+ if (!asset) {
22
+ throw new Error("No asset with ID " + assetId.toBase58());
23
+ }
24
+ const assetProof = yield getAssetProofFn(endpoint, assetId);
25
+ if (!assetProof) {
26
+ throw new Error("No asset proof with ID " + assetId.toBase58());
27
+ }
28
+ const { root, proof, treeId, nodeIndex } = assetProof;
29
+ const { ownership: { owner }, content: { json_uri: uri }, } = asset;
30
+ const eccCompact = uri.split("/").slice(-1)[0];
31
+ const [info] = (0, pdas_1.mobileInfoKey)(rewardableEntityConfig, eccCompact);
32
+ const makerAcc = yield program.account.makerV0.fetchNullable(maker);
33
+ const anchorMetadata = (0, utils_1.assetToMetadataArgs)(asset);
34
+ return program.methods
35
+ .onboardMobileHotspotV0({
36
+ metadata: anchorMetadata,
37
+ root: root.toBuffer().toJSON().data,
38
+ index: nodeIndex,
39
+ })
40
+ .accounts({
41
+ // hotspot: assetId,
42
+ rewardableEntityConfig,
43
+ hotspotOwner: owner,
44
+ mobileInfo: info,
45
+ merkleTree: treeId,
46
+ maker,
47
+ issuingAuthority: makerAcc === null || makerAcc === void 0 ? void 0 : makerAcc.issuingAuthority,
48
+ })
49
+ .remainingAccounts(proof.map((p) => {
50
+ return {
51
+ pubkey: p,
52
+ isWritable: false,
53
+ isSigner: false,
54
+ };
55
+ }));
56
+ });
57
+ }
58
+ exports.onboardMobileHotspot = onboardMobileHotspot;
59
+ //# 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,kCAAwC;AACxC,oCAA+C;AAE/C,SAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,KAAK,EACL,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,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;QACtD,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,oBAAa,EAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;QAEjE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAEpE,MAAM,cAAc,GAAG,IAAA,2BAAmB,EAAC,KAAK,CAAC,CAAC;QAClD,OAAO,OAAO,CAAC,OAAO;aACnB,sBAAsB,CAAC;YACtB,QAAQ,EAAE,cAAc;YACxB,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,gBAAgB,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,gBAAgB;SAC7C,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,oDAkEC"}
@@ -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.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 }, content: { json_uri: uri }, } = asset;
29
+ const eccCompact = uri.split("/").slice(-1)[0];
30
+ const [info] = (0, pdas_1.iotInfoKey)(rewardableEntityConfig, eccCompact);
31
+ return program.methods
32
+ .updateIotInfoV0({
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
+ rewardableEntityConfig,
43
+ hotspotOwner: owner,
44
+ iotInfo: info,
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.updateIotMetadata = updateIotMetadata;
57
+ //# 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,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,8CAoEC"}
@@ -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;
@@ -25,9 +25,9 @@ function updateMetadata({ program, hotspotConfig, assetId, location, elevation,
25
25
  throw new Error("No asset proof with ID " + assetId.toBase58());
26
26
  }
27
27
  const { root, proof, leaf, treeId, nodeIndex } = assetProof;
28
- const { ownership: { owner }, content: { uri }, } = asset;
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,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,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,54 @@
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 }, content: { json_uri: uri }, } = asset;
29
+ const eccCompact = uri.split("/").slice(-1)[0];
30
+ const [info] = (0, pdas_1.mobileInfoKey)(rewardableEntityConfig, eccCompact);
31
+ return program.methods
32
+ .updateMobileInfoV0({
33
+ location,
34
+ hash: leaf.toBuffer().toJSON().data,
35
+ root: root.toBuffer().toJSON().data,
36
+ index: nodeIndex,
37
+ })
38
+ .accounts({
39
+ rewardableEntityConfig,
40
+ hotspotOwner: owner,
41
+ mobileInfo: info,
42
+ merkleTree: treeId,
43
+ })
44
+ .remainingAccounts(proof.map((p) => {
45
+ return {
46
+ pubkey: p,
47
+ isWritable: false,
48
+ isSigner: false,
49
+ };
50
+ }));
51
+ });
52
+ }
53
+ exports.updateMobileMetadata = updateMobileMetadata;
54
+ //# 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,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,oBAAa,EAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;QAEjE,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;AA7DD,oDA6DC"}
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
@@ -3,32 +3,41 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.collectionMetadataKey = exports.iotInfoKey = exports.hotspotIssuerKey = exports.hotspotCollectionKey = exports.hotspotConfigKey = void 0;
6
+ exports.collectionMetadataKey = exports.mobileInfoKey = exports.iotInfoKey = exports.makerKey = exports.hotspotCollectionKey = exports.rewardableEntityConfigKey = void 0;
7
7
  const web3_js_1 = require("@solana/web3.js");
8
8
  const constants_1 = require("./constants");
9
9
  const mpl_token_metadata_1 = require("@metaplex-foundation/mpl-token-metadata");
10
10
  const sha256_1 = __importDefault(require("crypto-js/sha256"));
11
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"),
12
+ const rewardableEntityConfigKey = (subDao, symbol, programId = constants_1.PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddressSync([
13
+ Buffer.from("rewardable_entity_config", "utf-8"),
14
14
  subDao.toBuffer(),
15
15
  Buffer.from(symbol, "utf-8"),
16
16
  ], 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);
17
+ exports.rewardableEntityConfigKey = rewardableEntityConfigKey;
18
+ const hotspotCollectionKey = (maker, programId = constants_1.PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("collection", "utf-8"), maker.toBuffer()], programId);
19
19
  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(),
20
+ const makerKey = (name, programId = constants_1.PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddressSync([
21
+ Buffer.from("maker", "utf-8"),
22
+ Buffer.from(name, "utf-8"),
24
23
  ], programId);
25
- exports.hotspotIssuerKey = hotspotIssuerKey;
26
- const iotInfoKey = (hotspotConfig, hotspotKey, programId = constants_1.PROGRAM_ID) => {
24
+ exports.makerKey = makerKey;
25
+ const iotInfoKey = (rewardableEntityConfig, hotspotKey, programId = constants_1.PROGRAM_ID) => {
27
26
  let hexString = (0, sha256_1.default)(hotspotKey).toString(enc_hex_1.default);
28
27
  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);
28
+ return web3_js_1.PublicKey.findProgramAddressSync([Buffer.from("iot_info", "utf-8"), rewardableEntityConfig.toBuffer(), seed], programId);
30
29
  };
31
30
  exports.iotInfoKey = iotInfoKey;
31
+ const mobileInfoKey = (rewardableEntityConfig, hotspotKey, programId = constants_1.PROGRAM_ID) => {
32
+ let hexString = (0, sha256_1.default)(hotspotKey).toString(enc_hex_1.default);
33
+ let seed = Uint8Array.from(Buffer.from(hexString, "hex"));
34
+ return web3_js_1.PublicKey.findProgramAddressSync([
35
+ Buffer.from("mobile_info", "utf-8"),
36
+ rewardableEntityConfig.toBuffer(),
37
+ seed,
38
+ ], programId);
39
+ };
40
+ exports.mobileInfoKey = mobileInfoKey;
32
41
  const collectionMetadataKey = (collection, programId = mpl_token_metadata_1.PROGRAM_ID) => web3_js_1.PublicKey.findProgramAddressSync([
33
42
  Buffer.from("metadata", "utf-8"),
34
43
  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":";;;;;;AAAA,6CAA4C;AAC5C,2CAAyC;AACzC,gFAAkG;AAClG,8DAAsC;AACtC,gEAAoC;AAE7B,MAAM,yBAAyB,GAAG,CACvC,MAAiB,EACjB,MAAc,EACd,YAAuB,sBAAU,EACjC,EAAE,CACF,mBAAS,CAAC,sBAAsB,CAC9B;IACE,MAAM,CAAC,IAAI,CAAC,0BAA0B,EAAE,OAAO,CAAC;IAChD,MAAM,CAAC,QAAQ,EAAE;IACjB,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC;CAC7B,EACD,SAAS,CACV,CAAC;AAZS,QAAA,yBAAyB,6BAYlC;AAEG,MAAM,oBAAoB,GAAG,CAClC,KAAgB,EAChB,YAAuB,sBAAU,EACjC,EAAE,CACF,mBAAS,CAAC,sBAAsB,CAC9B,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,EACtD,SAAS,CACV,CAAC;AAPS,QAAA,oBAAoB,wBAO7B;AAEG,MAAM,QAAQ,GAAG,CACtB,IAAY,EACZ,YAAuB,sBAAU,EACjC,EAAE,CACF,mBAAS,CAAC,sBAAsB,CAC9B;IACE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;CAC3B,EACD,SAAS,CACV,CAAC;AAVS,QAAA,QAAQ,YAUjB;AAEG,MAAM,UAAU,GAAG,CACxB,sBAAiC,EACjC,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,sBAAsB,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,EAC3E,SAAS,CACV,CAAC;AACJ,CAAC,CAAC;AAZW,QAAA,UAAU,cAYrB;AAEK,MAAM,aAAa,GAAG,CAC3B,sBAAiC,EACjC,UAAkB,EAClB,YAAuB,sBAAU,EACjC,EAAE;IACF,IAAI,SAAS,GAAG,IAAA,gBAAM,EAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,iBAAG,CAAC,CAAC;IACjD,IAAI,IAAI,GAAG,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAE1D,OAAO,mBAAS,CAAC,sBAAsB,CACrC;QACE,MAAM,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC;QACnC,sBAAsB,CAAC,QAAQ,EAAE;QACjC,IAAI;KACL,EACD,SAAS,CACV,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,aAAa,iBAgBxB;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"}
@@ -15,39 +15,46 @@ 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
17
  exports.heliumEntityManagerResolvers = (0, spl_utils_1.combineResolvers)(spl_utils_1.heliumCommonResolver, (0, spl_utils_1.ataResolver)({
18
- instruction: "initializeHotspotConfigV0",
18
+ instruction: "initializeMakerV0",
19
19
  account: "tokenAccount",
20
20
  mint: "collection",
21
- owner: "hotspotConfig",
21
+ owner: "maker",
22
22
  }), (0, spl_utils_1.resolveIndividual)(({ path, args, provider, accounts }) => __awaiter(void 0, void 0, void 0, function* () {
23
23
  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];
24
+ if (path[path.length - 1] === "iotInfo" &&
25
+ args[args.length - 1].metadata &&
26
+ accounts.rewardableEntityConfig) {
27
+ return (0, pdas_1.iotInfoKey)(accounts.rewardableEntityConfig, args[args.length - 1].metadata.uri.split("/").slice(-1)[0])[0];
28
28
  }
29
29
  else if (path[path.length - 1] === "recipient") {
30
30
  // @ts-ignore
31
31
  return (_a = provider.wallet) === null || _a === void 0 ? void 0 : _a.publicKey;
32
32
  }
33
+ })), (0, spl_utils_1.resolveIndividual)(({ path, args, provider, accounts }) => __awaiter(void 0, void 0, void 0, function* () {
34
+ var _b;
35
+ if (path[path.length - 1] === "mobileInfo" &&
36
+ args[args.length - 1].metadata &&
37
+ accounts.rewardableEntityConfig) {
38
+ return (0, pdas_1.mobileInfoKey)(accounts.rewardableEntityConfig, args[args.length - 1].metadata.uri.split("/").slice(-1)[0])[0];
39
+ }
40
+ else if (path[path.length - 1] === "recipient") {
41
+ // @ts-ignore
42
+ return (_b = provider.wallet) === null || _b === void 0 ? void 0 : _b.publicKey;
43
+ }
33
44
  })), (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) {
45
+ if (path[path.length - 1] === "ownerHotspotAta" &&
46
+ (accounts.owner || accounts.hotspotOwner) &&
47
+ accounts.hotspot) {
35
48
  return (0, spl_token_1.getAssociatedTokenAddress)(accounts.hotspot, (accounts.owner || accounts.hotspotOwner));
36
49
  }
37
50
  })), (0, spl_utils_1.ataResolver)({
38
- instruction: "issueIotHotspotV0",
51
+ instruction: "issueEntityV0",
39
52
  account: "recipientTokenAccount",
40
53
  mint: "hotspot",
41
54
  owner: "hotspotOwner",
42
55
  }), (0, spl_utils_1.ataResolver)({
43
- instruction: "issueIotHotspotV0",
44
56
  account: "dcBurner",
45
57
  mint: "dcMint",
46
58
  owner: "dcFeePayer",
47
- }), (0, spl_utils_1.ataResolver)({
48
- instruction: "updateIotInfoV0",
49
- account: "ownerDcAta",
50
- mint: "dcMint",
51
- owner: "hotspotOwner",
52
59
  }), helium_sub_daos_sdk_1.subDaoEpochInfoResolver);
53
60
  //# 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":";;;;;;;;;;;;AAAA,qEAAsE;AACtE,iDAK2B;AAC3B,iCAAmD;AACnD,iDAA8D;AAGjD,QAAA,4BAA4B,GAAG,IAAA,4BAAgB,EAC1D,gCAAoB,EACpB,IAAA,uBAAW,EAAC;IACV,WAAW,EAAE,mBAAmB;IAChC,OAAO,EAAE,cAAc;IACvB,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,OAAO;CACf,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,QAAQ;QAC9B,QAAQ,CAAC,sBAAsB,EAC/B;QACA,OAAO,IAAA,iBAAU,EACf,QAAQ,CAAC,sBAAmC,EAC5C,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3D,CAAC,CAAC,CAAC,CAAC;KACN;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,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE;;IAC7D,IACE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,YAAY;QACtC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ;QAC9B,QAAQ,CAAC,sBAAsB,EAC/B;QACA,OAAO,IAAA,oBAAa,EAClB,QAAQ,CAAC,sBAAmC,EAC5C,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC3D,CAAC,CAAC,CAAC,CAAC;KACN;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,IACE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,iBAAiB;QAC3C,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,YAAY,CAAC;QACzC,QAAQ,CAAC,OAAO,EAChB;QACA,OAAO,IAAA,qCAAyB,EAC9B,QAAQ,CAAC,OAAoB,EAC7B,CAAC,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,YAAY,CAAc,CACvD,CAAC;KACH;AACH,CAAC,CAAA,CAAC,EACF,IAAA,uBAAW,EAAC;IACV,WAAW,EAAE,eAAe;IAC5B,OAAO,EAAE,uBAAuB;IAChC,IAAI,EAAE,SAAS;IACf,KAAK,EAAE,cAAc;CACtB,CAAC,EACF,IAAA,uBAAW,EAAC;IACV,OAAO,EAAE,UAAU;IACnB,IAAI,EAAE,QAAQ;IACd,KAAK,EAAE,YAAY;CACpB,CAAC,EACF,6CAAuB,CACxB,CAAC"}
@@ -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 } from "../pdas";
3
+ import { assetToMetadataArgs } from "../utils";
4
+ export async function onboardIotHotspot({ program, rewardableEntityConfig, assetId, maker, assetEndpoint, getAssetFn = getAsset, getAssetProofFn = getAssetProof, }) {
5
+ // @ts-ignore
6
+ const endpoint = assetEndpoint || program.provider.connection._rpcEndpoint;
7
+ const asset = await getAssetFn(endpoint, assetId);
8
+ if (!asset) {
9
+ throw new Error("No asset with ID " + assetId.toBase58());
10
+ }
11
+ const assetProof = await getAssetProofFn(endpoint, assetId);
12
+ if (!assetProof) {
13
+ throw new Error("No asset proof with ID " + assetId.toBase58());
14
+ }
15
+ const { root, proof, leaf, treeId, nodeIndex } = assetProof;
16
+ const { ownership: { owner }, content: { json_uri: uri }, } = asset;
17
+ const eccCompact = uri.split("/").slice(-1)[0];
18
+ const [info] = iotInfoKey(rewardableEntityConfig, eccCompact);
19
+ const makerAcc = await program.account.makerV0.fetchNullable(maker);
20
+ const anchorMetadata = assetToMetadataArgs(asset);
21
+ return program.methods
22
+ .onboardIotHotspotV0({
23
+ metadata: anchorMetadata,
24
+ root: root.toBuffer().toJSON().data,
25
+ index: nodeIndex,
26
+ })
27
+ .accounts({
28
+ // hotspot: assetId,
29
+ rewardableEntityConfig,
30
+ hotspotOwner: owner,
31
+ iotInfo: info,
32
+ merkleTree: treeId,
33
+ maker,
34
+ issuingAuthority: makerAcc?.issuingAuthority
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,EAAS,QAAQ,EAAE,aAAa,EAAc,MAAM,mBAAmB,CAAC;AAI/E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACtC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,KAAK,EACL,aAAa,EACb,UAAU,GAAG,QAAQ,EACrB,eAAe,GAAG,aAAa,GAYhC;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,GAAG,EAAE,GAC3B,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,IAAI,CAAC,GAAG,UAAU,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAEpE,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,OAAO,CAAC,OAAO;SACnB,mBAAmB,CAAC;QACnB,QAAQ,EAAE,cAAc;QACxB,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,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB;KAC7C,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"}
@@ -0,0 +1,44 @@
1
+ import { getAsset, getAssetProof } from "@helium/spl-utils";
2
+ import { mobileInfoKey } from "../pdas";
3
+ import { assetToMetadataArgs } from "../utils";
4
+ export async function onboardMobileHotspot({ program, rewardableEntityConfig, assetId, maker, assetEndpoint, getAssetFn = getAsset, getAssetProofFn = getAssetProof, }) {
5
+ // @ts-ignore
6
+ const endpoint = assetEndpoint || program.provider.connection._rpcEndpoint;
7
+ const asset = await getAssetFn(endpoint, assetId);
8
+ if (!asset) {
9
+ throw new Error("No asset with ID " + assetId.toBase58());
10
+ }
11
+ const assetProof = await getAssetProofFn(endpoint, assetId);
12
+ if (!assetProof) {
13
+ throw new Error("No asset proof with ID " + assetId.toBase58());
14
+ }
15
+ const { root, proof, treeId, nodeIndex } = assetProof;
16
+ const { ownership: { owner }, content: { json_uri: uri }, } = asset;
17
+ const eccCompact = uri.split("/").slice(-1)[0];
18
+ const [info] = mobileInfoKey(rewardableEntityConfig, eccCompact);
19
+ const makerAcc = await program.account.makerV0.fetchNullable(maker);
20
+ const anchorMetadata = assetToMetadataArgs(asset);
21
+ return program.methods
22
+ .onboardMobileHotspotV0({
23
+ metadata: anchorMetadata,
24
+ root: root.toBuffer().toJSON().data,
25
+ index: nodeIndex,
26
+ })
27
+ .accounts({
28
+ // hotspot: assetId,
29
+ rewardableEntityConfig,
30
+ hotspotOwner: owner,
31
+ mobileInfo: info,
32
+ merkleTree: treeId,
33
+ maker,
34
+ issuingAuthority: makerAcc?.issuingAuthority,
35
+ })
36
+ .remainingAccounts(proof.map((p) => {
37
+ return {
38
+ pubkey: p,
39
+ isWritable: false,
40
+ isSigner: false,
41
+ };
42
+ }));
43
+ }
44
+ //# sourceMappingURL=onboardMobileHotspot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onboardMobileHotspot.js","sourceRoot":"","sources":["../../../../src/functions/onboardMobileHotspot.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG/E,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,KAAK,EACL,aAAa,EACb,UAAU,GAAG,QAAQ,EACrB,eAAe,GAAG,aAAa,GAYhC;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,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;IACtD,MAAM,EACJ,SAAS,EAAE,EAAE,KAAK,EAAE,EACpB,OAAO,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,GAC3B,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,IAAI,CAAC,GAAG,aAAa,CAAC,sBAAsB,EAAE,UAAU,CAAC,CAAC;IAEjE,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAEpE,MAAM,cAAc,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAClD,OAAO,OAAO,CAAC,OAAO;SACnB,sBAAsB,CAAC;QACtB,QAAQ,EAAE,cAAc;QACxB,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,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,MAAM;QAClB,KAAK;QACL,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB;KAC7C,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"}