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

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 (26) hide show
  1. package/lib/cjs/functions/onboardIotHotspot.js +7 -3
  2. package/lib/cjs/functions/onboardIotHotspot.js.map +1 -1
  3. package/lib/cjs/functions/onboardMobileHotspot.js +7 -3
  4. package/lib/cjs/functions/onboardMobileHotspot.js.map +1 -1
  5. package/lib/cjs/functions/updateIotMetadata.js +6 -2
  6. package/lib/cjs/functions/updateIotMetadata.js.map +1 -1
  7. package/lib/cjs/functions/updateMobileMetadata.js +6 -2
  8. package/lib/cjs/functions/updateMobileMetadata.js.map +1 -1
  9. package/lib/esm/src/functions/onboardIotHotspot.js +7 -3
  10. package/lib/esm/src/functions/onboardIotHotspot.js.map +1 -1
  11. package/lib/esm/src/functions/onboardMobileHotspot.js +7 -3
  12. package/lib/esm/src/functions/onboardMobileHotspot.js.map +1 -1
  13. package/lib/esm/src/functions/updateIotMetadata.js +6 -2
  14. package/lib/esm/src/functions/updateIotMetadata.js.map +1 -1
  15. package/lib/esm/src/functions/updateMobileMetadata.js +6 -2
  16. package/lib/esm/src/functions/updateMobileMetadata.js.map +1 -1
  17. package/lib/esm/tsconfig.esm.tsbuildinfo +1 -1
  18. package/lib/types/src/functions/onboardIotHotspot.d.ts +3 -1
  19. package/lib/types/src/functions/onboardIotHotspot.d.ts.map +1 -1
  20. package/lib/types/src/functions/onboardMobileHotspot.d.ts +3 -1
  21. package/lib/types/src/functions/onboardMobileHotspot.d.ts.map +1 -1
  22. package/lib/types/src/functions/updateIotMetadata.d.ts +3 -1
  23. package/lib/types/src/functions/updateIotMetadata.d.ts.map +1 -1
  24. package/lib/types/src/functions/updateMobileMetadata.d.ts +3 -1
  25. package/lib/types/src/functions/updateMobileMetadata.d.ts.map +1 -1
  26. package/package.json +7 -5
@@ -11,8 +11,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.onboardIotHotspot = void 0;
13
13
  const spl_utils_1 = require("@helium/spl-utils");
14
+ const spl_account_compression_1 = require("@solana/spl-account-compression");
14
15
  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
+ function onboardIotHotspot({ program, rewardableEntityConfig, assetId, maker, dao, assetEndpoint, dcFeePayer, payer, getAssetFn = spl_utils_1.getAsset, getAssetProofFn = spl_utils_1.getAssetProof, }) {
16
17
  return __awaiter(this, void 0, void 0, function* () {
17
18
  // @ts-ignore
18
19
  const endpoint = assetEndpoint || program.provider.connection._rpcEndpoint;
@@ -25,9 +26,10 @@ function onboardIotHotspot({ program, rewardableEntityConfig, assetId, maker, da
25
26
  throw new Error("No asset proof with ID " + assetId.toBase58());
26
27
  }
27
28
  const { root, proof, leaf, treeId, nodeIndex } = assetProof;
28
- const { ownership: { owner }, content: { json_uri } } = asset;
29
+ const { ownership: { owner }, content: { json_uri }, } = asset;
29
30
  const [info] = (0, pdas_1.iotInfoKey)(rewardableEntityConfig, assetId);
30
31
  const makerAcc = yield program.account.makerV0.fetchNullable(maker);
32
+ const canopy = yield (yield spl_account_compression_1.ConcurrentMerkleTreeAccount.fromAccountAddress(program.provider.connection, treeId)).getCanopyDepth();
31
33
  const keyToAsset = (yield (0, pdas_1.keyToAssetKey)(dao, json_uri.split("/").slice(-1)[0]))[0];
32
34
  return program.methods
33
35
  .onboardIotHotspotV0({
@@ -37,6 +39,8 @@ function onboardIotHotspot({ program, rewardableEntityConfig, assetId, maker, da
37
39
  })
38
40
  .accounts({
39
41
  // hotspot: assetId,
42
+ payer,
43
+ dcFeePayer,
40
44
  rewardableEntityConfig,
41
45
  hotspotOwner: owner,
42
46
  iotInfo: info,
@@ -46,7 +50,7 @@ function onboardIotHotspot({ program, rewardableEntityConfig, assetId, maker, da
46
50
  issuingAuthority: makerAcc === null || makerAcc === void 0 ? void 0 : makerAcc.issuingAuthority,
47
51
  keyToAsset,
48
52
  })
49
- .remainingAccounts(proof.map((p) => {
53
+ .remainingAccounts(proof.slice(0, proof.length - canopy).map((p) => {
50
54
  return {
51
55
  pubkey: p,
52
56
  isWritable: false,
@@ -1 +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"}
1
+ {"version":3,"file":"onboardIotHotspot.js","sourceRoot":"","sources":["../../../src/functions/onboardIotHotspot.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iDAA+E;AAE/E,6EAA8E;AAE9E,kCAAoD;AAGpD,SAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,KAAK,EACL,GAAG,EACH,aAAa,EACb,UAAU,EACV,KAAK,EACL,UAAU,GAAG,oBAAQ,EACrB,eAAe,GAAG,yBAAa,GAehC;;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,GACtB,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,MAAM,GAAG,MAAM,CACnB,MAAM,qDAA2B,CAAC,kBAAkB,CAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,EAC3B,MAAM,CACP,CACF,CAAC,cAAc,EAAE,CAAC;QACnB,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,KAAK;YACL,UAAU;YACV,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,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9C,OAAO;gBACL,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,KAAK;aAChB,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACN,CAAC;CAAA;AAlFD,8CAkFC"}
@@ -11,8 +11,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.onboardMobileHotspot = void 0;
13
13
  const spl_utils_1 = require("@helium/spl-utils");
14
+ const spl_account_compression_1 = require("@solana/spl-account-compression");
14
15
  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
+ function onboardMobileHotspot({ program, rewardableEntityConfig, assetId, maker, dao, payer, dcFeePayer, assetEndpoint, getAssetFn = spl_utils_1.getAsset, getAssetProofFn = spl_utils_1.getAssetProof, }) {
16
17
  return __awaiter(this, void 0, void 0, function* () {
17
18
  // @ts-ignore
18
19
  const endpoint = assetEndpoint || program.provider.connection._rpcEndpoint;
@@ -25,8 +26,9 @@ function onboardMobileHotspot({ program, rewardableEntityConfig, assetId, maker,
25
26
  throw new Error("No asset proof with ID " + assetId.toBase58());
26
27
  }
27
28
  const { root, proof, treeId, nodeIndex, leaf } = assetProof;
28
- const { ownership: { owner }, content: { json_uri } } = asset;
29
+ const { ownership: { owner }, content: { json_uri }, } = asset;
29
30
  const [info] = (0, pdas_1.mobileInfoKey)(rewardableEntityConfig, assetId);
31
+ const canopy = yield (yield spl_account_compression_1.ConcurrentMerkleTreeAccount.fromAccountAddress(program.provider.connection, treeId)).getCanopyDepth();
30
32
  const makerAcc = yield program.account.makerV0.fetchNullable(maker);
31
33
  return program.methods
32
34
  .onboardMobileHotspotV0({
@@ -36,6 +38,8 @@ function onboardMobileHotspot({ program, rewardableEntityConfig, assetId, maker,
36
38
  })
37
39
  .accounts({
38
40
  // hotspot: assetId,
41
+ dcFeePayer,
42
+ payer,
39
43
  rewardableEntityConfig,
40
44
  hotspotOwner: owner,
41
45
  mobileInfo: info,
@@ -45,7 +49,7 @@ function onboardMobileHotspot({ program, rewardableEntityConfig, assetId, maker,
45
49
  issuingAuthority: makerAcc === null || makerAcc === void 0 ? void 0 : makerAcc.issuingAuthority,
46
50
  keyToAsset: (yield (0, pdas_1.keyToAssetKey)(dao, json_uri.split("/").slice(-1)[0]))[0],
47
51
  })
48
- .remainingAccounts(proof.map((p) => {
52
+ .remainingAccounts(proof.slice(0, proof.length - canopy).map((p) => {
49
53
  return {
50
54
  pubkey: p,
51
55
  isWritable: false,
@@ -1 +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"}
1
+ {"version":3,"file":"onboardMobileHotspot.js","sourceRoot":"","sources":["../../../src/functions/onboardMobileHotspot.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iDAA+E;AAE/E,6EAA8E;AAE9E,kCAAuD;AAEvD,SAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,KAAK,EACL,GAAG,EACH,KAAK,EACL,UAAU,EACV,aAAa,EACb,UAAU,GAAG,oBAAQ,EACrB,eAAe,GAAG,yBAAa,GAehC;;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,GACtB,GAAG,KAAK,CAAC;QAEV,MAAM,CAAC,IAAI,CAAC,GAAG,IAAA,oBAAa,EAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,qDAA2B,CAAC,kBAAkB,CAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,EAC3B,MAAM,CACP,CACF,CAAC,cAAc,EAAE,CAAC;QACnB,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,UAAU;YACV,KAAK;YACL,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,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9C,OAAO;gBACL,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,KAAK;aAChB,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACN,CAAC;CAAA;AAjFD,oDAiFC"}
@@ -11,8 +11,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.updateIotMetadata = void 0;
13
13
  const spl_utils_1 = require("@helium/spl-utils");
14
+ const spl_account_compression_1 = require("@solana/spl-account-compression");
14
15
  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
+ function updateIotMetadata({ program, rewardableEntityConfig, assetId, location, elevation, gain, assetEndpoint, payer, dcFeePayer, getAssetFn = spl_utils_1.getAsset, getAssetProofFn = spl_utils_1.getAssetProof, }) {
16
17
  return __awaiter(this, void 0, void 0, function* () {
17
18
  // @ts-ignore
18
19
  const endpoint = assetEndpoint || program.provider.connection._rpcEndpoint;
@@ -27,6 +28,7 @@ function updateIotMetadata({ program, rewardableEntityConfig, assetId, location,
27
28
  const { root, proof, leaf, treeId, nodeIndex } = assetProof;
28
29
  const { ownership: { owner }, } = asset;
29
30
  const [info] = (0, pdas_1.iotInfoKey)(rewardableEntityConfig, assetId);
31
+ const canopy = yield (yield spl_account_compression_1.ConcurrentMerkleTreeAccount.fromAccountAddress(program.provider.connection, treeId)).getCanopyDepth();
30
32
  return program.methods
31
33
  .updateIotInfoV0({
32
34
  location,
@@ -38,12 +40,14 @@ function updateIotMetadata({ program, rewardableEntityConfig, assetId, location,
38
40
  })
39
41
  .accounts({
40
42
  // hotspot: assetId,
43
+ payer,
44
+ dcFeePayer,
41
45
  rewardableEntityConfig,
42
46
  hotspotOwner: owner,
43
47
  iotInfo: info,
44
48
  merkleTree: treeId,
45
49
  })
46
- .remainingAccounts(proof.map((p) => {
50
+ .remainingAccounts(proof.slice(0, proof.length - canopy).map((p) => {
47
51
  return {
48
52
  pubkey: p,
49
53
  isWritable: false,
@@ -1 +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"}
1
+ {"version":3,"file":"updateIotMetadata.js","sourceRoot":"","sources":["../../../src/functions/updateIotMetadata.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iDAA+E;AAE/E,6EAA8E;AAE9E,kCAAqC;AAErC,SAAsB,iBAAiB,CAAC,EACtC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,aAAa,EACb,KAAK,EACL,UAAU,EACV,UAAU,GAAG,oBAAQ,EACrB,eAAe,GAAG,yBAAa,GAgBhC;;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;QAC3D,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,qDAA2B,CAAC,kBAAkB,CAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,EAC3B,MAAM,CACP,CACF,CAAC,cAAc,EAAE,CAAC;QACnB,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,KAAK;YACL,UAAU;YACV,sBAAsB;YACtB,YAAY,EAAE,KAAK;YACnB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,MAAM;SACnB,CAAC;aACD,iBAAiB,CAChB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9C,OAAO;gBACL,MAAM,EAAE,CAAC;gBACT,UAAU,EAAE,KAAK;gBACjB,QAAQ,EAAE,KAAK;aAChB,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;IACN,CAAC;CAAA;AA7ED,8CA6EC"}
@@ -11,8 +11,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.updateMobileMetadata = void 0;
13
13
  const spl_utils_1 = require("@helium/spl-utils");
14
+ const spl_account_compression_1 = require("@solana/spl-account-compression");
14
15
  const pdas_1 = require("../pdas");
15
- function updateMobileMetadata({ program, rewardableEntityConfig, assetId, location, assetEndpoint, getAssetFn = spl_utils_1.getAsset, getAssetProofFn = spl_utils_1.getAssetProof, }) {
16
+ function updateMobileMetadata({ program, rewardableEntityConfig, assetId, location, assetEndpoint, getAssetFn = spl_utils_1.getAsset, getAssetProofFn = spl_utils_1.getAssetProof, dcFeePayer, payer, }) {
16
17
  return __awaiter(this, void 0, void 0, function* () {
17
18
  // @ts-ignore
18
19
  const endpoint = assetEndpoint || program.provider.connection._rpcEndpoint;
@@ -26,6 +27,7 @@ function updateMobileMetadata({ program, rewardableEntityConfig, assetId, locati
26
27
  }
27
28
  const { root, proof, leaf, treeId, nodeIndex } = assetProof;
28
29
  const { ownership: { owner }, } = asset;
30
+ const canopy = yield (yield spl_account_compression_1.ConcurrentMerkleTreeAccount.fromAccountAddress(program.provider.connection, treeId)).getCanopyDepth();
29
31
  const [info] = (0, pdas_1.mobileInfoKey)(rewardableEntityConfig, assetId);
30
32
  return program.methods
31
33
  .updateMobileInfoV0({
@@ -35,12 +37,14 @@ function updateMobileMetadata({ program, rewardableEntityConfig, assetId, locati
35
37
  index: nodeIndex,
36
38
  })
37
39
  .accounts({
40
+ dcFeePayer,
41
+ payer,
38
42
  rewardableEntityConfig,
39
43
  hotspotOwner: owner,
40
44
  mobileInfo: info,
41
45
  merkleTree: treeId,
42
46
  })
43
- .remainingAccounts(proof.map((p) => {
47
+ .remainingAccounts(proof.slice(0, proof.length - canopy).map((p) => {
44
48
  return {
45
49
  pubkey: p,
46
50
  isWritable: false,
@@ -1 +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"}
1
+ {"version":3,"file":"updateMobileMetadata.js","sourceRoot":"","sources":["../../../src/functions/updateMobileMetadata.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,iDAA+E;AAE/E,6EAA8E;AAE9E,kCAAoD;AAEpD,SAAsB,oBAAoB,CAAC,EACzC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,QAAQ,EACR,aAAa,EACb,UAAU,GAAG,oBAAQ,EACrB,eAAe,GAAG,yBAAa,EAC/B,UAAU,EACV,KAAK,GAcN;;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;QACV,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,qDAA2B,CAAC,kBAAkB,CAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,EAC3B,MAAM,CACP,CACF,CAAC,cAAc,EAAE,CAAC;QACnB,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,UAAU;YACV,KAAK;YACL,sBAAsB;YACtB,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,IAAI;YAChB,UAAU,EAAE,MAAM;SACnB,CAAC;aACD,iBAAiB,CAChB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YAC9C,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"}
@@ -1,6 +1,7 @@
1
1
  import { getAsset, getAssetProof } from "@helium/spl-utils";
2
+ import { ConcurrentMerkleTreeAccount } from "@solana/spl-account-compression";
2
3
  import { iotInfoKey, keyToAssetKey } from "../pdas";
3
- export async function onboardIotHotspot({ program, rewardableEntityConfig, assetId, maker, dao, assetEndpoint, getAssetFn = getAsset, getAssetProofFn = getAssetProof, }) {
4
+ export async function onboardIotHotspot({ program, rewardableEntityConfig, assetId, maker, dao, assetEndpoint, dcFeePayer, payer, getAssetFn = getAsset, getAssetProofFn = getAssetProof, }) {
4
5
  // @ts-ignore
5
6
  const endpoint = assetEndpoint || program.provider.connection._rpcEndpoint;
6
7
  const asset = await getAssetFn(endpoint, assetId);
@@ -12,9 +13,10 @@ export async function onboardIotHotspot({ program, rewardableEntityConfig, asset
12
13
  throw new Error("No asset proof with ID " + assetId.toBase58());
13
14
  }
14
15
  const { root, proof, leaf, treeId, nodeIndex } = assetProof;
15
- const { ownership: { owner }, content: { json_uri } } = asset;
16
+ const { ownership: { owner }, content: { json_uri }, } = asset;
16
17
  const [info] = iotInfoKey(rewardableEntityConfig, assetId);
17
18
  const makerAcc = await program.account.makerV0.fetchNullable(maker);
19
+ const canopy = await (await ConcurrentMerkleTreeAccount.fromAccountAddress(program.provider.connection, treeId)).getCanopyDepth();
18
20
  const keyToAsset = (await keyToAssetKey(dao, json_uri.split("/").slice(-1)[0]))[0];
19
21
  return program.methods
20
22
  .onboardIotHotspotV0({
@@ -24,6 +26,8 @@ export async function onboardIotHotspot({ program, rewardableEntityConfig, asset
24
26
  })
25
27
  .accounts({
26
28
  // hotspot: assetId,
29
+ payer,
30
+ dcFeePayer,
27
31
  rewardableEntityConfig,
28
32
  hotspotOwner: owner,
29
33
  iotInfo: info,
@@ -33,7 +37,7 @@ export async function onboardIotHotspot({ program, rewardableEntityConfig, asset
33
37
  issuingAuthority: makerAcc?.issuingAuthority,
34
38
  keyToAsset,
35
39
  })
36
- .remainingAccounts(proof.map((p) => {
40
+ .remainingAccounts(proof.slice(0, proof.length - canopy).map((p) => {
37
41
  return {
38
42
  pubkey: p,
39
43
  isWritable: false,
@@ -1 +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"}
1
+ {"version":3,"file":"onboardIotHotspot.js","sourceRoot":"","sources":["../../../../src/functions/onboardIotHotspot.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAE9E,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,EACV,KAAK,EACL,UAAU,GAAG,QAAQ,EACrB,eAAe,GAAG,aAAa,GAehC;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,GACtB,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,MAAM,GAAG,MAAM,CACnB,MAAM,2BAA2B,CAAC,kBAAkB,CAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,EAC3B,MAAM,CACP,CACF,CAAC,cAAc,EAAE,CAAC;IACnB,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,KAAK;QACL,UAAU;QACV,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,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9C,OAAO;YACL,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { getAsset, getAssetProof } from "@helium/spl-utils";
2
+ import { ConcurrentMerkleTreeAccount } from "@solana/spl-account-compression";
2
3
  import { keyToAssetKey, mobileInfoKey } from "../pdas";
3
- export async function onboardMobileHotspot({ program, rewardableEntityConfig, assetId, maker, dao, assetEndpoint, getAssetFn = getAsset, getAssetProofFn = getAssetProof, }) {
4
+ export async function onboardMobileHotspot({ program, rewardableEntityConfig, assetId, maker, dao, payer, dcFeePayer, assetEndpoint, getAssetFn = getAsset, getAssetProofFn = getAssetProof, }) {
4
5
  // @ts-ignore
5
6
  const endpoint = assetEndpoint || program.provider.connection._rpcEndpoint;
6
7
  const asset = await getAssetFn(endpoint, assetId);
@@ -12,8 +13,9 @@ export async function onboardMobileHotspot({ program, rewardableEntityConfig, as
12
13
  throw new Error("No asset proof with ID " + assetId.toBase58());
13
14
  }
14
15
  const { root, proof, treeId, nodeIndex, leaf } = assetProof;
15
- const { ownership: { owner }, content: { json_uri } } = asset;
16
+ const { ownership: { owner }, content: { json_uri }, } = asset;
16
17
  const [info] = mobileInfoKey(rewardableEntityConfig, assetId);
18
+ const canopy = await (await ConcurrentMerkleTreeAccount.fromAccountAddress(program.provider.connection, treeId)).getCanopyDepth();
17
19
  const makerAcc = await program.account.makerV0.fetchNullable(maker);
18
20
  return program.methods
19
21
  .onboardMobileHotspotV0({
@@ -23,6 +25,8 @@ export async function onboardMobileHotspot({ program, rewardableEntityConfig, as
23
25
  })
24
26
  .accounts({
25
27
  // hotspot: assetId,
28
+ dcFeePayer,
29
+ payer,
26
30
  rewardableEntityConfig,
27
31
  hotspotOwner: owner,
28
32
  mobileInfo: info,
@@ -32,7 +36,7 @@ export async function onboardMobileHotspot({ program, rewardableEntityConfig, as
32
36
  issuingAuthority: makerAcc?.issuingAuthority,
33
37
  keyToAsset: (await keyToAssetKey(dao, json_uri.split("/").slice(-1)[0]))[0],
34
38
  })
35
- .remainingAccounts(proof.map((p) => {
39
+ .remainingAccounts(proof.slice(0, proof.length - canopy).map((p) => {
36
40
  return {
37
41
  pubkey: p,
38
42
  isWritable: false,
@@ -1 +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,aAAa,EAAE,MAAM,SAAS,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,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,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC;IAC5D,MAAM,EACJ,SAAS,EAAE,EAAE,KAAK,EAAE,EACpB,OAAO,EAAE,EAAE,QAAQ,EAAE,EACtB,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAEpE,OAAO,OAAO,CAAC,OAAO;SACnB,sBAAsB,CAAC;QACtB,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,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,MAAM;QAClB,KAAK;QACL,GAAG;QACH,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB;QAC5C,UAAU,EAAE,CACV,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;KACL,CAAC;SACD,iBAAiB,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACd,OAAO;YACL,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"onboardMobileHotspot.js","sourceRoot":"","sources":["../../../../src/functions/onboardMobileHotspot.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEvD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,KAAK,EACL,GAAG,EACH,KAAK,EACL,UAAU,EACV,aAAa,EACb,UAAU,GAAG,QAAQ,EACrB,eAAe,GAAG,aAAa,GAehC;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,IAAI,EAAE,GAAG,UAAU,CAAC;IAC5D,MAAM,EACJ,SAAS,EAAE,EAAE,KAAK,EAAE,EACpB,OAAO,EAAE,EAAE,QAAQ,EAAE,GACtB,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,2BAA2B,CAAC,kBAAkB,CAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,EAC3B,MAAM,CACP,CACF,CAAC,cAAc,EAAE,CAAC;IACnB,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAEpE,OAAO,OAAO,CAAC,OAAO;SACnB,sBAAsB,CAAC;QACtB,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,UAAU;QACV,KAAK;QACL,sBAAsB;QACtB,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,MAAM;QAClB,KAAK;QACL,GAAG;QACH,gBAAgB,EAAE,QAAQ,EAAE,gBAAgB;QAC5C,UAAU,EAAE,CACV,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;KACL,CAAC;SACD,iBAAiB,CAChB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9C,OAAO;YACL,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { getAsset, getAssetProof } from "@helium/spl-utils";
2
+ import { ConcurrentMerkleTreeAccount } from "@solana/spl-account-compression";
2
3
  import { iotInfoKey } from "../pdas";
3
- export async function updateIotMetadata({ program, rewardableEntityConfig, assetId, location, elevation, gain, assetEndpoint, getAssetFn = getAsset, getAssetProofFn = getAssetProof, }) {
4
+ export async function updateIotMetadata({ program, rewardableEntityConfig, assetId, location, elevation, gain, assetEndpoint, payer, dcFeePayer, getAssetFn = getAsset, getAssetProofFn = getAssetProof, }) {
4
5
  // @ts-ignore
5
6
  const endpoint = assetEndpoint || program.provider.connection._rpcEndpoint;
6
7
  const asset = await getAssetFn(endpoint, assetId);
@@ -14,6 +15,7 @@ export async function updateIotMetadata({ program, rewardableEntityConfig, asset
14
15
  const { root, proof, leaf, treeId, nodeIndex } = assetProof;
15
16
  const { ownership: { owner }, } = asset;
16
17
  const [info] = iotInfoKey(rewardableEntityConfig, assetId);
18
+ const canopy = await (await ConcurrentMerkleTreeAccount.fromAccountAddress(program.provider.connection, treeId)).getCanopyDepth();
17
19
  return program.methods
18
20
  .updateIotInfoV0({
19
21
  location,
@@ -25,12 +27,14 @@ export async function updateIotMetadata({ program, rewardableEntityConfig, asset
25
27
  })
26
28
  .accounts({
27
29
  // hotspot: assetId,
30
+ payer,
31
+ dcFeePayer,
28
32
  rewardableEntityConfig,
29
33
  hotspotOwner: owner,
30
34
  iotInfo: info,
31
35
  merkleTree: treeId,
32
36
  })
33
- .remainingAccounts(proof.map((p) => {
37
+ .remainingAccounts(proof.slice(0, proof.length - canopy).map((p) => {
34
38
  return {
35
39
  pubkey: p,
36
40
  isWritable: false,
@@ -1 +1 @@
1
- {"version":3,"file":"updateIotMetadata.js","sourceRoot":"","sources":["../../../../src/functions/updateIotMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG/E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACtC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,aAAa,EACb,UAAU,GAAG,QAAQ,EACrB,eAAe,GAAG,aAAa,GAchC;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,GACrB,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAE3D,OAAO,OAAO,CAAC,OAAO;SACnB,eAAe,CAAC;QACf,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;QACnC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;QACnC,KAAK,EAAE,SAAS;KACjB,CAAC;SACD,QAAQ,CAAC;QACR,oBAAoB;QACpB,sBAAsB;QACtB,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,MAAM;KACnB,CAAC;SACD,iBAAiB,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACd,OAAO;YACL,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"updateIotMetadata.js","sourceRoot":"","sources":["../../../../src/functions/updateIotMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,EACtC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,QAAQ,EACR,SAAS,EACT,IAAI,EACJ,aAAa,EACb,KAAK,EACL,UAAU,EACV,UAAU,GAAG,QAAQ,EACrB,eAAe,GAAG,aAAa,GAgBhC;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,GACrB,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,2BAA2B,CAAC,kBAAkB,CAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,EAC3B,MAAM,CACP,CACF,CAAC,cAAc,EAAE,CAAC;IACnB,OAAO,OAAO,CAAC,OAAO;SACnB,eAAe,CAAC;QACf,QAAQ;QACR,SAAS;QACT,IAAI;QACJ,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;QACnC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI;QACnC,KAAK,EAAE,SAAS;KACjB,CAAC;SACD,QAAQ,CAAC;QACR,oBAAoB;QACpB,KAAK;QACL,UAAU;QACV,sBAAsB;QACtB,YAAY,EAAE,KAAK;QACnB,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,MAAM;KACnB,CAAC;SACD,iBAAiB,CAChB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9C,OAAO;YACL,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { getAsset, getAssetProof } from "@helium/spl-utils";
2
+ import { ConcurrentMerkleTreeAccount } from "@solana/spl-account-compression";
2
3
  import { mobileInfoKey } from "../pdas";
3
- export async function updateMobileMetadata({ program, rewardableEntityConfig, assetId, location, assetEndpoint, getAssetFn = getAsset, getAssetProofFn = getAssetProof, }) {
4
+ export async function updateMobileMetadata({ program, rewardableEntityConfig, assetId, location, assetEndpoint, getAssetFn = getAsset, getAssetProofFn = getAssetProof, dcFeePayer, payer, }) {
4
5
  // @ts-ignore
5
6
  const endpoint = assetEndpoint || program.provider.connection._rpcEndpoint;
6
7
  const asset = await getAssetFn(endpoint, assetId);
@@ -13,6 +14,7 @@ export async function updateMobileMetadata({ program, rewardableEntityConfig, as
13
14
  }
14
15
  const { root, proof, leaf, treeId, nodeIndex } = assetProof;
15
16
  const { ownership: { owner }, } = asset;
17
+ const canopy = await (await ConcurrentMerkleTreeAccount.fromAccountAddress(program.provider.connection, treeId)).getCanopyDepth();
16
18
  const [info] = mobileInfoKey(rewardableEntityConfig, assetId);
17
19
  return program.methods
18
20
  .updateMobileInfoV0({
@@ -22,12 +24,14 @@ export async function updateMobileMetadata({ program, rewardableEntityConfig, as
22
24
  index: nodeIndex,
23
25
  })
24
26
  .accounts({
27
+ dcFeePayer,
28
+ payer,
25
29
  rewardableEntityConfig,
26
30
  hotspotOwner: owner,
27
31
  mobileInfo: info,
28
32
  merkleTree: treeId,
29
33
  })
30
- .remainingAccounts(proof.map((p) => {
34
+ .remainingAccounts(proof.slice(0, proof.length - canopy).map((p) => {
31
35
  return {
32
36
  pubkey: p,
33
37
  isWritable: false,
@@ -1 +1 @@
1
- {"version":3,"file":"updateMobileMetadata.js","sourceRoot":"","sources":["../../../../src/functions/updateMobileMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAG/E,OAAO,EAAc,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,QAAQ,EACR,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,GACrB,GAAG,KAAK,CAAC;IAEV,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAE9D,OAAO,OAAO,CAAC,OAAO;SACnB,kBAAkB,CAAC;QAClB,QAAQ;QACR,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,sBAAsB;QACtB,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,MAAM;KACnB,CAAC;SACD,iBAAiB,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACd,OAAO;YACL,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"updateMobileMetadata.js","sourceRoot":"","sources":["../../../../src/functions/updateMobileMetadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAqB,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE/E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,EAAc,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,EACzC,OAAO,EACP,sBAAsB,EACtB,OAAO,EACP,QAAQ,EACR,aAAa,EACb,UAAU,GAAG,QAAQ,EACrB,eAAe,GAAG,aAAa,EAC/B,UAAU,EACV,KAAK,GAcN;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,GACrB,GAAG,KAAK,CAAC;IACV,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,2BAA2B,CAAC,kBAAkB,CAClD,OAAO,CAAC,QAAQ,CAAC,UAAU,EAC3B,MAAM,CACP,CACF,CAAC,cAAc,EAAE,CAAC;IACnB,MAAM,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAE9D,OAAO,OAAO,CAAC,OAAO;SACnB,kBAAkB,CAAC;QAClB,QAAQ;QACR,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,UAAU;QACV,KAAK;QACL,sBAAsB;QACtB,YAAY,EAAE,KAAK;QACnB,UAAU,EAAE,IAAI;QAChB,UAAU,EAAE,MAAM;KACnB,CAAC;SACD,iBAAiB,CAChB,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QAC9C,OAAO;YACL,MAAM,EAAE,CAAC;YACT,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;SAChB,CAAC;IACJ,CAAC,CAAC,CACH,CAAC;AACN,CAAC"}