Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/nine-bushes-act.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@hashgraph/asset-tokenization-contracts": minor
---

Bond and Equity sotrage layout updated to avoid breaking change and inconsistency with previous versions
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,12 @@ abstract contract BondStorageWrapper is IBondStorageWrapper, ERC20PermitStorageW
using EnumerableSet for EnumerableSet.Bytes32Set;

struct BondDataStorage {
IBondRead.BondDetailsData bondDetail;
bytes3 currency;
uint256 nominalValue;
uint256 startingDate;
uint256 maturityDate;
bool initialized;
uint8 nominalValueDecimals;
}

/**
Expand All @@ -32,7 +36,11 @@ abstract contract BondStorageWrapper is IBondStorageWrapper, ERC20PermitStorageW
}

function _storeBondDetails(IBondRead.BondDetailsData memory _bondDetails) internal {
_bondStorage().bondDetail = _bondDetails;
_bondStorage().currency = _bondDetails.currency;
_bondStorage().nominalValue = _bondDetails.nominalValue;
_bondStorage().nominalValueDecimals = _bondDetails.nominalValueDecimals;
_bondStorage().startingDate = _bondDetails.startingDate;
_bondStorage().maturityDate = _bondDetails.maturityDate;
}

function _setCoupon(
Expand Down Expand Up @@ -62,16 +70,22 @@ abstract contract BondStorageWrapper is IBondStorageWrapper, ERC20PermitStorageW
* @return success_ True if the maturity date was set successfully.
*/
function _setMaturityDate(uint256 _maturityDate) internal returns (bool success_) {
_bondStorage().bondDetail.maturityDate = _maturityDate;
_bondStorage().maturityDate = _maturityDate;
return true;
}

function _getBondDetails() internal view returns (IBondRead.BondDetailsData memory bondDetails_) {
bondDetails_ = _bondStorage().bondDetail;
bondDetails_ = IBondRead.BondDetailsData({
currency: _bondStorage().currency,
nominalValue: _bondStorage().nominalValue,
nominalValueDecimals: _bondStorage().nominalValueDecimals,
startingDate: _bondStorage().startingDate,
maturityDate: _bondStorage().maturityDate
});
}

function _getMaturityDate() internal view returns (uint256 maturityDate_) {
return _bondStorage().bondDetail.maturityDate;
return _bondStorage().maturityDate;
}

function _getCoupon(uint256 _couponID) internal view returns (IBondRead.RegisteredCoupon memory registeredCoupon_) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,32 @@ abstract contract EquityStorageWrapper is IEquityStorageWrapper, BondStorageWrap
using EnumerableSet for EnumerableSet.Bytes32Set;

struct EquityDataStorage {
IEquity.EquityDetailsData equityDetailsData;
bool votingRight;
bool informationRight;
bool liquidationRight;
bool subscriptionRight;
bool conversionRight;
bool redemptionRight;
bool putRight;
IEquity.DividendType dividendRight;
bytes3 currency;
uint256 nominalValue;
bool initialized;
uint8 nominalValueDecimals;
}

function _storeEquityDetails(IEquity.EquityDetailsData memory _equityDetailsData) internal {
_equityStorage().equityDetailsData = _equityDetailsData;
_equityStorage().votingRight = _equityDetailsData.votingRight;
_equityStorage().informationRight = _equityDetailsData.informationRight;
_equityStorage().liquidationRight = _equityDetailsData.liquidationRight;
_equityStorage().subscriptionRight = _equityDetailsData.subscriptionRight;
_equityStorage().conversionRight = _equityDetailsData.conversionRight;
_equityStorage().redemptionRight = _equityDetailsData.redemptionRight;
_equityStorage().putRight = _equityDetailsData.putRight;
_equityStorage().dividendRight = _equityDetailsData.dividendRight;
_equityStorage().currency = _equityDetailsData.currency;
_equityStorage().nominalValue = _equityDetailsData.nominalValue;
_equityStorage().nominalValueDecimals = _equityDetailsData.nominalValueDecimals;
}

function _setDividends(
Expand Down Expand Up @@ -97,7 +117,19 @@ abstract contract EquityStorageWrapper is IEquityStorageWrapper, BondStorageWrap
}

function _getEquityDetails() internal view returns (IEquity.EquityDetailsData memory equityDetails_) {
equityDetails_ = _equityStorage().equityDetailsData;
equityDetails_ = IEquity.EquityDetailsData({
votingRight: _equityStorage().votingRight,
informationRight: _equityStorage().informationRight,
liquidationRight: _equityStorage().liquidationRight,
subscriptionRight: _equityStorage().subscriptionRight,
conversionRight: _equityStorage().conversionRight,
redemptionRight: _equityStorage().redemptionRight,
putRight: _equityStorage().putRight,
dividendRight: _equityStorage().dividendRight,
currency: _equityStorage().currency,
nominalValue: _equityStorage().nominalValue,
nominalValueDecimals: _equityStorage().nominalValueDecimals
});
}

/**
Expand Down