Skip to main content

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 delegatecalls 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​

BeaconDiamond.sol

LibBeaconDiamond.sol

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

NameTypeDescription
[0]addressimplementation 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