Safe, simple, flexible building-blocks for smart-contract systems.
ds-auth
ds-guard
ds-roles
ds-token
ds-vault
ds-cache
ds-value
ds-exec
ds-math
ds-note
ds-proxy
ds-stop
ds-thing
ds-multisig
Set and get a value
Authorized users can set and unset a value. Anyone can read the value.
peek
return the stored value along with boolean true
if the value is set and false
if not
read
return either the stored value or an exception if not set
poke
set the value (requires auth)
void
unset the value (requires auth)
/// value.sol - a value is a simple thing, it can be get and set
// Copyright (C) 2017 DappHub, LLC
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
pragma solidity ^0.4.13;
import 'ds-thing/thing.sol';
contract DSValue is DSThing {
bool has;
bytes32 val;
function peek() public view returns (bytes32, bool) {
return (val,has);
}
function read() public view returns (bytes32) {
var (wut, haz) = peek();
assert(haz);
return wut;
}
function poke(bytes32 wut) public note auth {
val = wut;
has = true;
}
function void() public note auth { // unset the value
has = false;
}
}
We believe that the free software movement is the most important cultural predecessor to the modern-day renaissance in decentralized technologies.
To catalyze the growth of this ecosystem, and to empower hackers to participate, we’re building a comprehensive suite of blockchain-oriented developer tools in the spirit of the Unix philosophy.
Dapp is all you need to start developing for Ethereum. It creates new dapps, runs Solidity unit tests, debugs, deploys, launches testnets, and more.
Seth is a handy tool for slicing and dicing transactions, querying the blockchain, converting between data formats, performing remote calls, and other everyday tasks.
Hevm is our own EVM
implementation with a nimble terminal-based Solidity debugger.
It’s used for dapp test
and dapp debug
.
We also maintain Dappsys, an audited collection of smart contract building blocks designed to complement each other. They include;
ds-token
—
a generic EIP-20 coin;
ds-group
—
a multisig;
ds-guard
—
a flexible authority rule;
ds-proxy
—
a transaction proxy; and
ds-cache
—
a store of expiring values.
Using these proven parts lets us focus on the novel features of the systems we develop. We share Dappsys to benefit the smart contract ecosystem.