@centrifuge/sdk 1.8.6 → 1.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/dist/Centrifuge.d.ts.map +1 -1
  2. package/dist/Centrifuge.js +19 -13
  3. package/dist/Centrifuge.js.map +1 -1
  4. package/dist/entities/MerkleProofManager.d.ts.map +1 -1
  5. package/dist/entities/MerkleProofManager.js +3 -0
  6. package/dist/entities/MerkleProofManager.js.map +1 -1
  7. package/dist/entities/OnOffRampManager.d.ts.map +1 -1
  8. package/dist/entities/OnOffRampManager.js +10 -2
  9. package/dist/entities/OnOffRampManager.js.map +1 -1
  10. package/dist/entities/Pool.d.ts.map +1 -1
  11. package/dist/entities/Pool.js +21 -16
  12. package/dist/entities/Pool.js.map +1 -1
  13. package/dist/entities/PoolNetwork.d.ts.map +1 -1
  14. package/dist/entities/PoolNetwork.js +4 -0
  15. package/dist/entities/PoolNetwork.js.map +1 -1
  16. package/dist/entities/Reports/PoolReports.d.ts +2 -0
  17. package/dist/entities/Reports/PoolReports.d.ts.map +1 -1
  18. package/dist/entities/Reports/PoolReports.js +4 -0
  19. package/dist/entities/Reports/PoolReports.js.map +1 -1
  20. package/dist/entities/Reports/PoolShareYieldsReport.d.ts +73 -0
  21. package/dist/entities/Reports/PoolShareYieldsReport.d.ts.map +1 -0
  22. package/dist/entities/Reports/PoolShareYieldsReport.js +111 -0
  23. package/dist/entities/Reports/PoolShareYieldsReport.js.map +1 -0
  24. package/dist/entities/Reports/PoolShareYieldsReport.test.d.ts +2 -0
  25. package/dist/entities/Reports/PoolShareYieldsReport.test.d.ts.map +1 -0
  26. package/dist/entities/Reports/PoolShareYieldsReport.test.js +129 -0
  27. package/dist/entities/Reports/PoolShareYieldsReport.test.js.map +1 -0
  28. package/dist/entities/ShareClass.d.ts.map +1 -1
  29. package/dist/entities/ShareClass.js +57 -37
  30. package/dist/entities/ShareClass.js.map +1 -1
  31. package/dist/entities/Vault.d.ts.map +1 -1
  32. package/dist/entities/Vault.js +21 -4
  33. package/dist/entities/Vault.js.map +1 -1
  34. package/dist/index.d.ts +1 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +1 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/utils/crosschainHotfix.d.ts +13 -0
  39. package/dist/utils/crosschainHotfix.d.ts.map +1 -0
  40. package/dist/utils/crosschainHotfix.js +33 -0
  41. package/dist/utils/crosschainHotfix.js.map +1 -0
  42. package/dist/utils/crosschainHotfix.test.d.ts +2 -0
  43. package/dist/utils/crosschainHotfix.test.d.ts.map +1 -0
  44. package/dist/utils/crosschainHotfix.test.js +25 -0
  45. package/dist/utils/crosschainHotfix.test.js.map +1 -0
  46. package/dist/utils/transaction.d.ts.map +1 -1
  47. package/dist/utils/transaction.js +4 -0
  48. package/dist/utils/transaction.js.map +1 -1
  49. package/package.json +1 -1
@@ -0,0 +1,129 @@
1
+ import { expect } from 'chai';
2
+ import { context } from '../../tests/setup.js';
3
+ import { PoolId, ShareClassId } from '../../utils/types.js';
4
+ import { Pool } from '../Pool.js';
5
+ import { PoolReports } from './PoolReports.js';
6
+ import { PoolShareYieldsReport } from './PoolShareYieldsReport.js';
7
+ const centId = 1;
8
+ const poolId = PoolId.from(centId, 1);
9
+ const scId = ShareClassId.from(poolId, 1);
10
+ describe('PoolShareYieldsReport', () => {
11
+ let poolShareYieldsReport;
12
+ before(() => {
13
+ const { centrifuge } = context;
14
+ const pool = new Pool(centrifuge, poolId);
15
+ const poolReports = new PoolReports(centrifuge, pool);
16
+ poolShareYieldsReport = new PoolShareYieldsReport(centrifuge, poolReports);
17
+ });
18
+ it('converts Ray-encoded yields to Decimal percentages keyed by (date, shareClassId)', () => {
19
+ const tokenId = scId.raw;
20
+ // Ray-encoded yields: 5.5% -> 0.055 * 1e27 = 5.5e25
21
+ const data = {
22
+ tokenSnapshots: {
23
+ items: [
24
+ {
25
+ id: tokenId,
26
+ timestamp: '1777939200000',
27
+ yieldYtd: '55000000000000000000000000',
28
+ yield30d365: '120000000000000000000000000',
29
+ yield1d: null,
30
+ yield1d360: null,
31
+ yield1d365: null,
32
+ yield7d: null,
33
+ yield7d360: null,
34
+ yield7d365: null,
35
+ yield15d: null,
36
+ yield15d360: null,
37
+ yield15d365: null,
38
+ yield30d: null,
39
+ yield30d360: null,
40
+ yield90d: null,
41
+ yield90d360: null,
42
+ yield90d365: null,
43
+ yield180d: null,
44
+ yield180d360: null,
45
+ yield180d365: null,
46
+ yield30dComp360: null,
47
+ yield30dComp365: null,
48
+ yieldTtm: null,
49
+ yieldSinceInception: null,
50
+ },
51
+ ],
52
+ },
53
+ };
54
+ const report = poolShareYieldsReport._process(data, {});
55
+ const entry = report[0].shareClasses[tokenId];
56
+ expect(entry.yieldYtd.toNumber()).to.equal(5.5);
57
+ expect(entry.yield30d365.toNumber()).to.equal(12);
58
+ expect(entry.yield1d).to.equal(undefined);
59
+ });
60
+ it('keeps the latest snapshot per (date, shareClassId)', () => {
61
+ const tokenId = scId.raw;
62
+ const data = {
63
+ tokenSnapshots: {
64
+ items: [
65
+ // Order returned by indexer: timestamp DESC, so the first row is the latest.
66
+ {
67
+ id: tokenId,
68
+ timestamp: '1777982400000',
69
+ yieldYtd: '70000000000000000000000000',
70
+ yield30d365: null,
71
+ yield1d: null,
72
+ yield1d360: null,
73
+ yield1d365: null,
74
+ yield7d: null,
75
+ yield7d360: null,
76
+ yield7d365: null,
77
+ yield15d: null,
78
+ yield15d360: null,
79
+ yield15d365: null,
80
+ yield30d: null,
81
+ yield30d360: null,
82
+ yield90d: null,
83
+ yield90d360: null,
84
+ yield90d365: null,
85
+ yield180d: null,
86
+ yield180d360: null,
87
+ yield180d365: null,
88
+ yield30dComp360: null,
89
+ yield30dComp365: null,
90
+ yieldTtm: null,
91
+ yieldSinceInception: null,
92
+ },
93
+ {
94
+ id: tokenId,
95
+ timestamp: '1777939200000',
96
+ yieldYtd: '55000000000000000000000000',
97
+ yield30d365: null,
98
+ yield1d: null,
99
+ yield1d360: null,
100
+ yield1d365: null,
101
+ yield7d: null,
102
+ yield7d360: null,
103
+ yield7d365: null,
104
+ yield15d: null,
105
+ yield15d360: null,
106
+ yield15d365: null,
107
+ yield30d: null,
108
+ yield30d360: null,
109
+ yield90d: null,
110
+ yield90d360: null,
111
+ yield90d365: null,
112
+ yield180d: null,
113
+ yield180d360: null,
114
+ yield180d365: null,
115
+ yield30dComp360: null,
116
+ yield30dComp365: null,
117
+ yieldTtm: null,
118
+ yieldSinceInception: null,
119
+ },
120
+ ],
121
+ },
122
+ };
123
+ const report = poolShareYieldsReport._process(data, {});
124
+ // Both rows share the same UTC date; the first (latest) one wins.
125
+ expect(report).to.have.length(1);
126
+ expect(report[0].shareClasses[tokenId].yieldYtd.toNumber()).to.equal(7);
127
+ });
128
+ });
129
+ //# sourceMappingURL=PoolShareYieldsReport.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PoolShareYieldsReport.test.js","sourceRoot":"","sources":["../../../src/entities/Reports/PoolShareYieldsReport.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ShareClass.d.ts","sourceRoot":"","sources":["../../src/entities/ShareClass.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShareClass.d.ts","sourceRoot":"","sources":["../../src/entities/ShareClass.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import { MessageType } from '../types/transaction.js';
6
6
  import { convertToEvmAddress } from '../utils/addresses.js';
7
7
  import { AddressMap } from '../utils/AddressMap.js';
8
8
  import { Balance, Price } from '../utils/BigInt.js';
9
+ import { addMessageForEnabledTarget, assertCrosschainMessagingEnabled, filterCrosschainEnabledTargets, isCrosschainMessagingDisabled, } from '../utils/crosschainHotfix.js';
9
10
  import { addressToBytes32, encode, randomUint } from '../utils/index.js';
10
11
  import { repeatOnEvents } from '../utils/rx.js';
11
12
  import { wrapTransaction } from '../utils/transaction.js';
@@ -482,11 +483,6 @@ export class ShareClass extends Entity {
482
483
  ]);
483
484
  const batch = [];
484
485
  const messages = {};
485
- function addMessage(centId, message) {
486
- if (!messages[centId])
487
- messages[centId] = [];
488
- messages[centId].push(message);
489
- }
490
486
  batch.push(encodeFunctionData({
491
487
  abi: ABI.Hub,
492
488
  functionName: 'updateSharePrice',
@@ -498,8 +494,10 @@ export class ShareClass extends Entity {
498
494
  ],
499
495
  }));
500
496
  await Promise.all(activeNetworks.map(async (activeNetwork) => {
501
- const networkDetails = await activeNetwork.details();
502
497
  const id = activeNetwork.centrifugeId;
498
+ if (isCrosschainMessagingDisabled(id))
499
+ return;
500
+ const networkDetails = await activeNetwork.details();
503
501
  const isShareClassInNetwork = networkDetails.activeShareClasses.find((shareClass) => shareClass.id.equals(self.id));
504
502
  if (isShareClassInNetwork) {
505
503
  batch.push(encodeFunctionData({
@@ -507,7 +505,10 @@ export class ShareClass extends Entity {
507
505
  functionName: 'notifySharePrice',
508
506
  args: [self.pool.id.raw, self.id.raw, id, ctx.signingAddress],
509
507
  }));
510
- addMessage(id, { type: MessageType.NotifyPricePoolPerShare, poolId: self.pool.id });
508
+ addMessageForEnabledTarget(messages, id, {
509
+ type: MessageType.NotifyPricePoolPerShare,
510
+ poolId: self.pool.id,
511
+ });
511
512
  }
512
513
  }));
513
514
  yield* wrapTransaction('Update share price', ctx, {
@@ -520,6 +521,7 @@ export class ShareClass extends Entity {
520
521
  setMaxAssetPriceAge(assetId, maxPriceAge) {
521
522
  const self = this;
522
523
  return this._transact(async function* (ctx) {
524
+ assertCrosschainMessagingEnabled(assetId.centrifugeId);
523
525
  const { hub } = await self._root._protocolAddresses(self.pool.centrifugeId);
524
526
  yield* wrapTransaction('Set max asset price age', ctx, {
525
527
  contract: hub,
@@ -537,6 +539,7 @@ export class ShareClass extends Entity {
537
539
  setMaxSharePriceAge(centrifugeId, maxPriceAge) {
538
540
  const self = this;
539
541
  return this._transact(async function* (ctx) {
542
+ assertCrosschainMessagingEnabled(centrifugeId);
540
543
  const { hub } = await self._root._protocolAddresses(self.pool.centrifugeId);
541
544
  yield* wrapTransaction('Set max share price age', ctx, {
542
545
  contract: hub,
@@ -554,6 +557,7 @@ export class ShareClass extends Entity {
554
557
  notifyAssetPrice(assetId) {
555
558
  const self = this;
556
559
  return this._transact(async function* (ctx) {
560
+ assertCrosschainMessagingEnabled(assetId.centrifugeId);
557
561
  const { hub } = await self._root._protocolAddresses(self.pool.centrifugeId);
558
562
  yield* wrapTransaction('Notify asset price', ctx, {
559
563
  contract: hub,
@@ -571,6 +575,7 @@ export class ShareClass extends Entity {
571
575
  notifySharePrice(centrifugeId) {
572
576
  const self = this;
573
577
  return this._transact(async function* (ctx) {
578
+ assertCrosschainMessagingEnabled(centrifugeId);
574
579
  const { hub } = await self._root._protocolAddresses(self.pool.centrifugeId);
575
580
  yield* wrapTransaction('Notify share price', ctx, {
576
581
  contract: hub,
@@ -605,9 +610,6 @@ export class ShareClass extends Entity {
605
610
  }))),
606
611
  ]);
607
612
  const pendingAmounts = pendingAmountsData.byVault;
608
- const assetsWithApprove = assets.filter((a) => 'approveAssetAmount' in a).length;
609
- const assetsWithIssue = assets.filter((a) => 'issuePricePerShare' in a).length;
610
- const gasLimitPerAsset = assetsWithIssue ? GAS_LIMIT / BigInt(assetsWithIssue) : 0n;
611
613
  const estimatePerMessage = 700000n;
612
614
  const estimatePerMessageIfLocal = 360000n;
613
615
  const ordersByAssetId = {};
@@ -627,14 +629,13 @@ export class ShareClass extends Entity {
627
629
  if (uniqueAssets.size !== assets.length) {
628
630
  throw new Error('Assets array contains multiple entries for the same asset ID');
629
631
  }
632
+ const crosschainEnabledAssets = assets.filter((asset) => !isCrosschainMessagingDisabled(asset.assetId.centrifugeId));
633
+ const assetsWithApprove = crosschainEnabledAssets.filter((a) => 'approveAssetAmount' in a).length;
634
+ const assetsWithIssue = crosschainEnabledAssets.filter((a) => 'issuePricePerShare' in a).length;
635
+ const gasLimitPerAsset = assetsWithIssue ? GAS_LIMIT / BigInt(assetsWithIssue) : 0n;
630
636
  const batch = [];
631
637
  const messages = {};
632
- function addMessage(centId, message) {
633
- if (!messages[centId])
634
- messages[centId] = [];
635
- messages[centId].push(message);
636
- }
637
- for (const asset of assets) {
638
+ for (const asset of crosschainEnabledAssets) {
638
639
  const gasPerMessage = asset.assetId.centrifugeId === self.pool.centrifugeId ? estimatePerMessageIfLocal : estimatePerMessage;
639
640
  let gasLeft = gasLimitPerAsset;
640
641
  const pending = pendingAmounts.find((e) => e.assetId.equals(asset.assetId));
@@ -662,7 +663,10 @@ export class ShareClass extends Entity {
662
663
  ctx.signingAddress,
663
664
  ],
664
665
  }));
665
- addMessage(asset.assetId.centrifugeId, { type: MessageType.RequestCallback, poolId: self.pool.id });
666
+ addMessageForEnabledTarget(messages, asset.assetId.centrifugeId, {
667
+ type: MessageType.RequestCallback,
668
+ poolId: self.pool.id,
669
+ });
666
670
  gasLeft -= gasPerMessage;
667
671
  nowDepositEpoch++;
668
672
  }
@@ -693,7 +697,10 @@ export class ShareClass extends Entity {
693
697
  ctx.signingAddress,
694
698
  ],
695
699
  }));
696
- addMessage(asset.assetId.centrifugeId, { type: MessageType.RequestCallback, poolId: self.pool.id });
700
+ addMessageForEnabledTarget(messages, asset.assetId.centrifugeId, {
701
+ type: MessageType.RequestCallback,
702
+ poolId: self.pool.id,
703
+ });
697
704
  gasLeft -= gasPerMessage;
698
705
  }
699
706
  // If we've issued shares, also notify a number of invest orders
@@ -714,7 +721,10 @@ export class ShareClass extends Entity {
714
721
  ctx.signingAddress,
715
722
  ],
716
723
  }));
717
- addMessage(asset.assetId.centrifugeId, { type: MessageType.RequestCallback, poolId: self.pool.id });
724
+ addMessageForEnabledTarget(messages, asset.assetId.centrifugeId, {
725
+ type: MessageType.RequestCallback,
726
+ poolId: self.pool.id,
727
+ });
718
728
  }
719
729
  });
720
730
  }
@@ -757,9 +767,6 @@ export class ShareClass extends Entity {
757
767
  }))),
758
768
  ]);
759
769
  const pendingAmounts = pendingAmountsData.byVault;
760
- const assetsWithApprove = assets.filter((a) => 'approveShareAmount' in a).length;
761
- const assetsWithRevoke = assets.filter((a) => 'revokePricePerShare' in a).length;
762
- const gasLimitPerAsset = assetsWithRevoke ? GAS_LIMIT / BigInt(assetsWithRevoke) : 0n;
763
770
  const estimatePerMessage = 700000n;
764
771
  const estimatePerMessageIfLocal = 360000n;
765
772
  const ordersByAssetId = {};
@@ -779,14 +786,13 @@ export class ShareClass extends Entity {
779
786
  if (uniqueAssets.size !== assets.length) {
780
787
  throw new Error('Assets array contains multiple entries for the same asset ID');
781
788
  }
789
+ const crosschainEnabledAssets = assets.filter((asset) => !isCrosschainMessagingDisabled(asset.assetId.centrifugeId));
790
+ const assetsWithApprove = crosschainEnabledAssets.filter((a) => 'approveShareAmount' in a).length;
791
+ const assetsWithRevoke = crosschainEnabledAssets.filter((a) => 'revokePricePerShare' in a).length;
792
+ const gasLimitPerAsset = assetsWithRevoke ? GAS_LIMIT / BigInt(assetsWithRevoke) : 0n;
782
793
  const batch = [];
783
794
  const messages = {};
784
- function addMessage(centId, message) {
785
- if (!messages[centId])
786
- messages[centId] = [];
787
- messages[centId].push(message);
788
- }
789
- for (const asset of assets) {
795
+ for (const asset of crosschainEnabledAssets) {
790
796
  const gasPerMessage = asset.assetId.centrifugeId === self.pool.centrifugeId ? estimatePerMessageIfLocal : estimatePerMessage;
791
797
  let gasLeft = gasLimitPerAsset;
792
798
  const pending = pendingAmounts.find((e) => e.assetId.equals(asset.assetId));
@@ -842,7 +848,10 @@ export class ShareClass extends Entity {
842
848
  ctx.signingAddress,
843
849
  ],
844
850
  }));
845
- addMessage(asset.assetId.centrifugeId, { type: MessageType.RequestCallback, poolId: self.pool.id });
851
+ addMessageForEnabledTarget(messages, asset.assetId.centrifugeId, {
852
+ type: MessageType.RequestCallback,
853
+ poolId: self.pool.id,
854
+ });
846
855
  gasLeft -= gasPerMessage;
847
856
  }
848
857
  // If we've revoked shares, also notify a number of redeem orders
@@ -863,7 +872,10 @@ export class ShareClass extends Entity {
863
872
  ctx.signingAddress,
864
873
  ],
865
874
  }));
866
- addMessage(asset.assetId.centrifugeId, { type: MessageType.RequestCallback, poolId: self.pool.id });
875
+ addMessageForEnabledTarget(messages, asset.assetId.centrifugeId, {
876
+ type: MessageType.RequestCallback,
877
+ poolId: self.pool.id,
878
+ });
867
879
  }
868
880
  });
869
881
  }
@@ -893,6 +905,7 @@ export class ShareClass extends Entity {
893
905
  claimDeposit(assetId, investor) {
894
906
  const self = this;
895
907
  return this._transact(async function* (ctx) {
908
+ assertCrosschainMessagingEnabled(assetId.centrifugeId);
896
909
  const [{ batchRequestManager }, investorOrder] = await Promise.all([
897
910
  self._root._protocolAddresses(self.pool.centrifugeId),
898
911
  self._investorOrder(assetId, investor),
@@ -922,6 +935,7 @@ export class ShareClass extends Entity {
922
935
  claimRedeem(assetId, investor) {
923
936
  const self = this;
924
937
  return this._transact(async function* (ctx) {
938
+ assertCrosschainMessagingEnabled(assetId.centrifugeId);
925
939
  const [{ batchRequestManager }, investorOrder] = await Promise.all([
926
940
  self._root._protocolAddresses(self.pool.centrifugeId),
927
941
  self._investorOrder(assetId, investor),
@@ -966,12 +980,7 @@ export class ShareClass extends Entity {
966
980
  const { hub } = await self._root._protocolAddresses(self.pool.centrifugeId);
967
981
  const batch = [];
968
982
  const messages = {};
969
- function addMessage(centId, message) {
970
- if (!messages[centId])
971
- messages[centId] = [];
972
- messages[centId].push(message);
973
- }
974
- members.forEach((member) => {
983
+ filterCrosschainEnabledTargets(members).forEach((member) => {
975
984
  batch.push(encodeFunctionData({
976
985
  abi: ABI.Hub,
977
986
  functionName: 'updateRestriction',
@@ -984,7 +993,10 @@ export class ShareClass extends Entity {
984
993
  ctx.signingAddress,
985
994
  ],
986
995
  }));
987
- addMessage(member.centrifugeId, { type: MessageType.UpdateRestriction, poolId: self.pool.id });
996
+ addMessageForEnabledTarget(messages, member.centrifugeId, {
997
+ type: MessageType.UpdateRestriction,
998
+ poolId: self.pool.id,
999
+ });
988
1000
  });
989
1001
  if (batch.length === 0) {
990
1002
  throw new Error('No data to update members');
@@ -1195,6 +1207,7 @@ export class ShareClass extends Entity {
1195
1207
  freezeMember(address, centrifugeId) {
1196
1208
  const self = this;
1197
1209
  return this._transact(async function* (ctx) {
1210
+ assertCrosschainMessagingEnabled(centrifugeId);
1198
1211
  const { hub } = await self._root._protocolAddresses(self.pool.centrifugeId);
1199
1212
  const payload = encodePacked(['uint8', 'bytes32'], [/* UpdateRestrictionType.Freeze */ 2, addressToBytes32(address)]);
1200
1213
  yield* wrapTransaction('Freeze member', ctx, {
@@ -1216,6 +1229,7 @@ export class ShareClass extends Entity {
1216
1229
  unfreezeMember(address, centrifugeId) {
1217
1230
  const self = this;
1218
1231
  return this._transact(async function* (ctx) {
1232
+ assertCrosschainMessagingEnabled(centrifugeId);
1219
1233
  const { hub } = await self._root._protocolAddresses(self.pool.centrifugeId);
1220
1234
  const payload = encodePacked(['uint8', 'bytes32'], [/* UpdateRestrictionType.Unfreeze */ 3, addressToBytes32(address)]);
1221
1235
  yield* wrapTransaction('Unfreeze member', ctx, {
@@ -1802,6 +1816,7 @@ export class ShareClass extends Entity {
1802
1816
  updateValuation(centrifugeId, valuation) {
1803
1817
  const self = this;
1804
1818
  return this._transact(async function* (ctx) {
1819
+ assertCrosschainMessagingEnabled(centrifugeId);
1805
1820
  const [{ hub }, spokeAddresses] = await Promise.all([
1806
1821
  self._root._protocolAddresses(self.pool.centrifugeId),
1807
1822
  self._root._protocolAddresses(centrifugeId),
@@ -1833,6 +1848,7 @@ export class ShareClass extends Entity {
1833
1848
  updateHook(centrifugeId, hook) {
1834
1849
  const self = this;
1835
1850
  return this._transact(async function* (ctx) {
1851
+ assertCrosschainMessagingEnabled(centrifugeId);
1836
1852
  const { hub } = await self._root._protocolAddresses(self.pool.centrifugeId);
1837
1853
  yield* wrapTransaction('Update hook', ctx, {
1838
1854
  contract: hub,
@@ -1857,6 +1873,7 @@ export class ShareClass extends Entity {
1857
1873
  }
1858
1874
  const self = this;
1859
1875
  return this._transact(async function* (ctx) {
1876
+ assertCrosschainMessagingEnabled(centrifugeId);
1860
1877
  const [{ hub }, spokeAddresses] = await Promise.all([
1861
1878
  self._root._protocolAddresses(self.pool.centrifugeId),
1862
1879
  self._root._protocolAddresses(centrifugeId),
@@ -1998,6 +2015,8 @@ export class ShareClass extends Entity {
1998
2015
  crosschainTransferShares(sourceCentrifugeId, destinationCentrifugeId, receiver, amount) {
1999
2016
  const self = this;
2000
2017
  return this._transact(async function* (ctx) {
2018
+ assertCrosschainMessagingEnabled(sourceCentrifugeId);
2019
+ assertCrosschainMessagingEnabled(destinationCentrifugeId);
2001
2020
  const { spoke } = await self._root._protocolAddresses(sourceCentrifugeId);
2002
2021
  yield* wrapTransaction('Cross chain transfer shares', ctx, {
2003
2022
  contract: spoke,
@@ -2595,6 +2614,7 @@ export class ShareClass extends Entity {
2595
2614
  _updateContract(centrifugeId, target, payload) {
2596
2615
  const self = this;
2597
2616
  return this._transact(async function* (ctx) {
2617
+ assertCrosschainMessagingEnabled(centrifugeId);
2598
2618
  const { hub } = await self._root._protocolAddresses(self.pool.centrifugeId);
2599
2619
  yield* wrapTransaction('Update contract', ctx, {
2600
2620
  contract: hub,