File and FilesRepo
Last updated
Last updated
FilesRepo is a component smart contract, by inheriting which Investment Agreement and Shareholders Agreement can obtain their members, attributes and methods. The file object is a data object that tracks and records the contract address, legal effect status, and performance schedule in the contractual smart contracts, such as investment agreement and the shareholders agreement, and is also the core data object of the files repo. Its main function is to ensure the relevant smart contracts can be circulated through the system strictly as per the corporate governance rules and processes stipulated in the shareholders agreement, and to ensure that the shareholders' rights to review motions, voting rights, as well as the lock-up period, anti-dilution rights, rights of first refusal, drag-along and tag-along rights, compulsory buy and sell rights, and other contractual rights, can be strictly implemented during the process of the signing, review, and execution of the agreements.
From the time of formation, the files repo tracks the contract address and legal effect status of each shareholders agreement and investment agreement.
When finalizing the drafted contract, the bookkeeper will analyze the timetable subject contract for legal procedures such as signing, proposal, exercise of special shareholder rights (in the case of an investment agreement), and voting at the general meeting of shareholders, based on the valid rules of the shareholders agreement at the time and include the timetable in file contract.
Subsequently, the bookkeepers will check the timetable at each step and control the legal behavior timing of contractual parties, such as signing, voting, and performance, and will update the status of the legal effects of subject contract recorded in the file contracts when complete each step.
For example, when the shareholders submit the investment agreement to the general meeting of shareholders for review and vote, the bookkeeper will:
(1) Call the investment agreement folder to query the performance schedule of the subject contract, and calculate and review whether the subject contract is within the exercise period of special shareholder rights such as "right of first refusal" and "tag-along rights" according to the current block timestamp;
(2) Create a new general meeting of shareholders motion to submit the subject contract to the general meeting of shareholders for review if there is no such special shareholders' rights arrangement, or the exercise period has expired;
(3) At the same time, the legal status of the subject contract shall be amended from "formed" to "submitted";
(4) If within the exercise period, terminate the submission process of subject contract.
The members of a files repo include a file object mapping with the structure of "contract address-> file object" and a list of contract addresses with enumerable set structure, which facilitates the system to quickly retrieve and obtain file objects based on the contract addresses during operation.
Attribute List of File Objects
circulateDate
The time when the file is circulated.
signingDays
Number of days in file signing period.
closingDays
Number of closing days for the file.
seqOfVR
The number of the voting rules applicable to the file.
frExecDays
Number of days for the exercise period of the right of first refusal.
dtExecDays
Number of days for the exercise period of the drag-along and tag-along rights.
dtConfirmDays
Number of days for the buyer's confirmation period for the drag-along and tag-along rights.
proposeDate
The time when the motion is submitted to the general meeting of shareholders for review.
invExitDays
Number of days during which the proposing shareholder withdraws from the investment
votePrepareDays
Number of days of voting preparation period.
votingDays
Number of days in the voting period.
execDaysForPutOpt
Number of days of the exercise period for requesting the opposing shareholders to purchase the underlying shares on equal terms (after denying).
seqOfMotion
Number of the motion whose content is the file reviewing.
state
file status (legal validity).
docUrl
Storage address online of the contract in natural language ( Recommend IPFS storage, in which docUrl will be file's CID).
docHash
The hash value of contract in natural language.
snOfDoc
A bit-32 array of the Head attribute.
Legal Status of File
Created
The file has been created.
Circulated
The file has been circulated for signature.
Proposed
The file has been proposed.
Approved
The file has been approved.
Rejected
The file has been rejected.
Closed
The file has been closed.
Revoked
The file has been revoked.
Files Repo
The Files Repo consists of a file object mapping with the structure of "contract address->file object" and a list of contract addresses with enumerable set structure. On the one hand, the address list of all smart contracts tracked by the files repo can be conveniently obtained, and on the other hand, the file objects also can be quickly retrieved by contract addresses.
The query API well describes the function and usage of the Files Repo in the whole system, as shown in the table below.
signingDeadline
Query the signing deadline of the file with specific address.
closingDeadline
Query the closing deadline of the file with specific address.
frExecDeadline
Query the deadline of the exercise period of right of first refusal with a specific address.
dtExecDeadline
Query the deadline of the exercise period of the tag-along right with a specific address.
terminateStartpoint
Query the start point of the termination period of the file with specific address.
votingDeadline
Query the voting deadline of the file with a specific address.
isRegistered
Query whether the file with specific address is registered in the files repo (i.e. whether it is an object can be tracked).
qtyOfFiles
Query to get the total number of files with tracking records in the files repo.
getFilesList
Query to get the list of all file addresses in the files repo.
getFile
Query the file object with a specific address.
getHeadOfFile
Query the Head attribute of the file object with specific address.