ValuationRegistry
Inherits: Ownable
Manages and stores 409A valuations for private companies. Public companies are excluded as they don't require 409A valuations.
State Variables
valuations
mapping(address => Valuation[]) public valuations;
authorizedProviders
mapping(address => bool) public authorizedProviders;
Functions
constructor
constructor() Ownable(msg.sender);
addValuation
Adds a new 409A valuation for a company.
function addValuation(address company, uint256 valuation, string calldata notes) external;
Parameters
Name
Type
Description
company
address
The address representing the private company.
valuation
uint256
The FMV determined by the valuation provider.
notes
string
Optional notes or details about the valuation.
getValuations
Retrieves all valuations for a given company.
function getValuations(address company) external view returns (Valuation[] memory);
Parameters
Name
Type
Description
company
address
The address representing the private company.
Returns
Name
Type
Description
<none>
Valuation[]
An array of Valuation structs.
authorizeProvider
Authorizes a new valuation provider.
function authorizeProvider(address provider) external onlyOwner;
Parameters
Name
Type
Description
provider
address
The address to authorize.
revokeProvider
Revokes authorization from a valuation provider.
function revokeProvider(address provider) external onlyOwner;
Parameters
Name
Type
Description
provider
address
The address to revoke.
Events
ValuationAdded
event ValuationAdded(address indexed company, uint256 valuation, string notes, uint256 timestamp);
ProviderAuthorized
event ProviderAuthorized(address indexed provider);
ProviderRevoked
event ProviderRevoked(address indexed provider);
Structs
Valuation
struct Valuation {
uint256 timestamp;
uint256 valuation;
string notes;
}
Last updated
Was this helpful?