BeaconDiamond
Summary
BeaconDimaond
is a facade contract for ongoing land market operations. There is a separate instance of the contract for each Geo Web land parcel.
It delegatecall
s to the CFABasePCOFacet
, CFAPenaltyBidFacet
, and CFAReclaimerFacets
based on the mapping provided in the DiamondCut
.
This hybrid Diamonds-Beacon Proxy architecture maintains extensibility by allowing a single update transaction to the PCOLicenseBeacon
to propagate to all land parcels.
Separate instances of this contract for each land parcel (along with Superfluid Access Control List functionality in the downstream facets) is required to maintain distinct network fee payment streams per parcel.
Code
Contract Functions
BeaconDiamond
BeaconDiamond__NoFacetForSignature
error BeaconDiamond__NoFacetForSignature()
constructor
constructor(address _contractOwner, contract IDiamondReadable _beacon) public payable
_getImplementation
function _getImplementation() internal view returns (address)
get logic implementation address
Return Values
Name | Type | Description |
---|---|---|
[0] | address | implementation address |
LibBeaconDiamond
STORAGE_POSITION
bytes32 STORAGE_POSITION
DiamondStorage
struct DiamondStorage {
contract IDiamondReadable beacon;
}
diamondStorage
function diamondStorage() internal pure returns (struct LibBeaconDiamond.DiamondStorage ds)
setBeacon
function setBeacon(contract IDiamondReadable beacon) internal