@blockimmo/contracts

The smart contracts powering blockimmo

Stats

stars 🌟issues ⚠️updated 🛠created 🐣size 🏋️‍♀️
@blockimmo/contracts
Minified + gzip package size for @blockimmo/contracts in KB

Readme

blockimmo

NPM Package

blockimmo-contracts

The smart contracts powering blockimmo

Built on the Ethereum blockchain, Solidity, and OpenZeppelin:

NOTE: New to smart contract development? Check OpenZeppelin's introductory guide.

Getting Started

blockimmo integrates with Truffle.

Installing blockimmo-contracts

After installing Truffle, to install the blockimmo platform smart contracts, run the following in your Solidity project root directory:

cd blockimmo-contracts
npm i
sh scripts/test.sh

Smart contracts

Contract Version Description
LandRegistry v1.0.0 A minimal, simple database mapping properties to their on-chain representation (TokenizedProperty).
LandRegistryProxy v1.0.0 Points to LandRegistry, enabling it to be upgraded if absolutely necessary.
Whitelist v1.0.0 A minimal, simple database mapping public addresses (ie users) to their permissions.
WhitelistProxy v1.0.0 Points to Whitelist, enabling it to be upgraded if absolutely necessary.
TokenizedProperty v1.0.0 An asset-backed token (a property as identified by its E-GRID (a UUID) in the (Swiss) land registry).
DividendDistributingToken v1.0.0 An ERC20-compliant token that distributes any Ether it receives to its token holders proportionate to their share.
ShareholderDAO v1.0.0 A simple DAO attached to a TokenizedProperty (ownership of the property is transferred to this).
TokenSale v1.0.0 Distribute tokens to investors in exchange for Ether.

Tests

Unit test are critical to the blockimmo platform. They help ensure code quality and mitigate against security vulnerabilities. The directory structure within the /tests directory corresponds to the /contracts directory. blockimmo uses Mocha’s JavaScript testing framework and Chai’s assertion library. To learn more about how to tests are structured, please reference OpenZeppelin’s Testing Guide.

Testing notes

Some of our contracts rely on the addresses of the deployed LandRegistryProxy, Medianizer, and WhitelistProxy smart contracts. These addresses differ between testing, Ropsten, and Main net. Comments in our smart contracts indicate which addresses must be used for each kind of deployment.

Security

blockimmo is meant to provide a secure, tested, and audited platform for real-estate.

We follow the core development principles and strategies that OpenZeppelin is based on including: security in depth, simple and modular code, clarity-driven naming conventions, comprehensive unit testing, pre-and-post-condition sanity checks, code consistency, and regular audits.

If you find a security issue, please make an issue at our HackerOne page.

Other docs

License

Copyright (c) 2018 blockimmo AG license@blockimmo.ch

If you find any bugs or have a feature request, please open an issue on github!

The npm package download data comes from npm's download counts api and package details come from npms.io.