mirror of
https://github.com/embarklabs/embark.git
synced 2025-02-17 16:16:48 +00:00
[PR 1318][PR1318] introduces a monorepo member that's used as a DApp dependency, but the present arrangement whereby `test_dapps/` is an embedded monorepo makes it difficult to develop and test such packages in tandem with changes to `test_dapps/packages/*`. Reorganize `test_dapps/*` as members of the root monorepo and make various adjustments accordingly. This makes it easy to develop test dapps and any packages they depend on simultaneously, but we lose the CI/QA arrangement where test dapps are run with an embark installed from fresh tarballs. That arrangement, which is quite worthwhile as a means to detect problems arising from transitive dependencies as soon as possible, will be re-introduced in another PR, possibly involving an auxiliary repository such as embark-framework/dapp-bin. Since the `package.json` `"test"` scripts of `test_dapps/*` are now kicked off as part of `yarn test` in the root, and since port allocation isn't fully dynamic, it's important to run `yarn test` with `lerna run`'s `--concurrency=1` option. For the same reasons, the root `ci` and `qa` scripts are similarly restricted. In the future, this setup can be refactored and improved, along with use of `lerna run`'s `--since` option to increase testing efficiency in CI. [PR1318]: https://github.com/embark-framework/embark/pull/1318
43 lines
898 B
Solidity
43 lines
898 B
Solidity
pragma solidity ^0.4.24;
|
|
|
|
/**
|
|
* @title Ownable
|
|
* @dev The Ownable contract has an owner address, and provides basic authorization control
|
|
* functions, this simplifies the implementation of "user permissions".
|
|
*/
|
|
contract Ownable {
|
|
address public owner;
|
|
|
|
|
|
/**
|
|
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
|
|
* account.
|
|
*/
|
|
constructor() public {
|
|
owner = msg.sender;
|
|
}
|
|
|
|
|
|
/**
|
|
* @dev Throws if called by any account other than the owner.
|
|
*/
|
|
modifier onlyOwner() {
|
|
if (msg.sender != owner) {
|
|
revert();
|
|
}
|
|
_;
|
|
}
|
|
|
|
|
|
/**
|
|
* @dev Allows the current owner to transfer control of the contract to a newOwner.
|
|
* @param newOwner The address to transfer ownership to.
|
|
*/
|
|
function transferOwnership(address newOwner) public onlyOwner {
|
|
if (newOwner != address(0)) {
|
|
owner = newOwner;
|
|
}
|
|
}
|
|
|
|
}
|