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