Skip to content

Commit b8e9868

Browse files
use buildler.dev . remove truffle (#731)
* truffle 5.1.20 * add .gitattreibutes * use buildler.dev . remove truffle * travis fix * Add mocha vscode support Co-authored-by: benk10 <[email protected]>
1 parent f04d0d6 commit b8e9868

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+4032
-2568
lines changed

.eslintignore

Whitespace-only changes.

.eslintrc.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,6 @@
1313
"no-undef": "off",
1414
"eol-last": 2,
1515
"eqeqeq": "error"
16-
}
16+
},
17+
"ignorePatterns": ["cache/", "node_modules/"]
1718
}

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
*.sol linguist-language=Solidity

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ node_modules/
66
.node-xmlhttprequest-sync*
77
*.tgz
88
.vscode/
9+
cache/
10+
artifacts/
911
site/
1012
yarn*
1113
.DS_Store
14+
report*

.mocharc.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"require": ["@nomiclabs/buidler/register"],
3+
"timeout": 20000,
4+
"recursive": "test"
5+
}

.travis.yml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,25 +3,26 @@ dist: trusty
33
language: node_js
44

55
node_js:
6-
- "10.16.3"
6+
- "12.16.1"
77

88
before_install:
99

1010
install:
1111
- npm ci
1212
- rm -rf build/ # remove any remaining artifacts from a previous build
13-
- truffle version
13+
- npx buidler --version
14+
- npx buidler clean
1415

1516
jobs:
1617
include:
1718
- stage: tests
1819
name: "Unit tests"
19-
script: npm run test
20+
script: npx buidler test
2021

2122
- stage: tests
2223
name: "Solidity Lint"
23-
script: npm run solhint
24+
script: npx buidler check
2425

2526
- stage: tests
2627
name: "JS Lint"
27-
script: npm run lint
28+
script: npx eslint .

README.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,7 @@ We take no responsibility for your implementation decisions and any security pro
3333

3434
## Getting Started
3535

36-
1. Please install [Truffle](https://github.com/ConsenSys/truffle) and initialize your project with `truffle init`.
37-
```sh
38-
npm install -g truffle
39-
mkdir myproject && cd myproject
40-
truffle init
41-
```
36+
1. Install [buidler](https://buidler.dev/getting-started/#quick-start) and initialize your project
4237
2. Install the `@daostack/arc` package: `npm install @daostack/arc`.
4338
- `.sol` Source code is found under `node_modules/@daostack/arc/contracts`
4439
- `.json` Compiled contracts are found under `node_modules/@daostack/arc/build/contracts`

buidler.config.js

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,131 @@
1+
usePlugin("@nomiclabs/buidler-truffle5");
2+
usePlugin("@nomiclabs/buidler-solhint");
3+
4+
// This is a sample Buidler task. To learn how to create your own go to
5+
// https://buidler.dev/guides/create-task.html
6+
task("accounts", "Prints the list of accounts", async () => {
7+
const accounts = await web3.eth.getAccounts();
8+
9+
for (const account of accounts) {
10+
console.log(account);
11+
}
12+
});
13+
14+
module.exports = {
15+
paths: {
16+
artifacts: './build/contracts'
17+
},
18+
networks: {
19+
buidlerevm: {
20+
accounts: [
21+
{
22+
privateKey:
23+
"0xc5e8f61d1ab959b397eecc0a37a6517b8e67a0e7cf1f4bce5591f3ed80199122",
24+
balance: "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"
25+
},
26+
{
27+
privateKey:
28+
"0xd49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb",
29+
balance: "10000000000000000000000"
30+
},
31+
{
32+
privateKey:
33+
"0x23c601ae397441f3ef6f1075dcb0031ff17fb079837beadaf3c84d96c6f3e569",
34+
balance: "10000000000000000000000"
35+
},
36+
{
37+
privateKey:
38+
"0xee9d129c1997549ee09c0757af5939b2483d80ad649a0eda68e8b0357ad11131",
39+
balance: "10000000000000000000000"
40+
},
41+
{
42+
privateKey:
43+
"0x87630b2d1de0fbd5044eb6891b3d9d98c34c8d310c852f98550ba774480e47cc",
44+
balance: "10000000000000000000000"
45+
},
46+
{
47+
privateKey:
48+
"0x275cc4a2bfd4f612625204a20a2280ab53a6da2d14860c47a9f5affe58ad86d4",
49+
balance: "10000000000000000000000"
50+
},
51+
{
52+
privateKey:
53+
"0x7f307c41137d1ed409f0a7b028f6c7596f12734b1d289b58099b99d60a96efff",
54+
balance: "10000000000000000000000"
55+
},
56+
{
57+
privateKey:
58+
"0x2a8aede924268f84156a00761de73998dac7bf703408754b776ff3f873bcec60",
59+
balance: "10000000000000000000000"
60+
},
61+
{
62+
privateKey:
63+
"0x8b24fd94f1ce869d81a34b95351e7f97b2cd88a891d5c00abc33d0ec9501902e",
64+
balance: "10000000000000000000000"
65+
},
66+
{
67+
privateKey:
68+
"0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29085",
69+
balance: "10000000000000000000000"
70+
},
71+
{
72+
privateKey:
73+
"0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29086",
74+
balance: "10000000000000000000000"
75+
},
76+
{
77+
privateKey:
78+
"0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29087",
79+
balance: "10000000000000000000000"
80+
},
81+
{
82+
privateKey:
83+
"0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29088",
84+
balance: "10000000000000000000000"
85+
},
86+
{
87+
privateKey:
88+
"0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29089",
89+
balance: "10000000000000000000000"
90+
},
91+
{
92+
privateKey:
93+
"0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b2908a",
94+
balance: "10000000000000000000000"
95+
},
96+
{
97+
privateKey:
98+
"0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b2908b",
99+
balance: "10000000000000000000000"
100+
},
101+
{
102+
privateKey:
103+
"0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b2908c",
104+
balance: "10000000000000000000000"
105+
},
106+
{
107+
privateKey:
108+
"0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b2908d",
109+
balance: "10000000000000000000000"
110+
},
111+
{
112+
privateKey:
113+
"0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b2908e",
114+
balance: "10000000000000000000000"
115+
},
116+
{
117+
privateKey:
118+
"0x28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b2908f",
119+
balance: "10000000000000000000000"
120+
}
121+
]
122+
}
123+
},
124+
solc: {
125+
version: "0.5.16", // Fetch exact version from solc-bin (default: truffle's version)
126+
optimizer: {
127+
enabled: true,
128+
runs: 200
129+
}
130+
}
131+
};

contracts/controller/Avatar.sol

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
pragma solidity ^0.5.13;
1+
pragma solidity ^0.5.16;
22

33
import "@daostack/infra-experimental/contracts/Reputation.sol";
44
import "./DAOToken.sol";
55
import "@openzeppelin/contracts-ethereum-package/contracts/ownership/Ownable.sol";
66
import "@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/IERC20.sol";
7-
import "../libs/SafeERC20.sol";
7+
import "@openzeppelin/contracts-ethereum-package/contracts/token/ERC20/SafeERC20.sol";
88
import "@openzeppelin/upgrades/contracts/Initializable.sol";
99

1010

@@ -32,7 +32,7 @@ contract Vault is Ownable {
3232
* @title An Avatar holds tokens, reputation and ether for a controller
3333
*/
3434
contract Avatar is Initializable, Ownable {
35-
using SafeERC20 for address;
35+
using SafeERC20 for IERC20;
3636

3737
string public orgName;
3838
DAOToken public nativeToken;
@@ -118,7 +118,7 @@ contract Avatar is Initializable, Ownable {
118118
function externalTokenTransfer(IERC20 _externalToken, address _to, uint256 _value)
119119
external onlyOwner returns(bool)
120120
{
121-
address(_externalToken).safeTransfer(_to, _value);
121+
_externalToken.safeTransfer(_to, _value);
122122
emit ExternalTokenTransfer(address(_externalToken), _to, _value);
123123
return true;
124124
}
@@ -139,7 +139,7 @@ contract Avatar is Initializable, Ownable {
139139
)
140140
external onlyOwner returns(bool)
141141
{
142-
address(_externalToken).safeTransferFrom(_from, _to, _value);
142+
_externalToken.safeTransferFrom(_from, _to, _value);
143143
emit ExternalTokenTransferFrom(address(_externalToken), _from, _to, _value);
144144
return true;
145145
}
@@ -155,7 +155,7 @@ contract Avatar is Initializable, Ownable {
155155
function externalTokenApproval(IERC20 _externalToken, address _spender, uint256 _value)
156156
external onlyOwner returns(bool)
157157
{
158-
address(_externalToken).safeApprove(_spender, _value);
158+
_externalToken.safeApprove(_spender, _value);
159159
emit ExternalTokenApproval(address(_externalToken), _spender, _value);
160160
return true;
161161
}

contracts/controller/Controller.sol

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -65,32 +65,38 @@ contract Controller is Initializable {
6565

6666
// Modifiers:
6767
modifier onlyRegisteredScheme() {
68-
require(schemesPermissions[msg.sender]&bytes4(0x00000001) == bytes4(0x00000001));
68+
require(schemesPermissions[msg.sender]&bytes4(0x00000001) == bytes4(0x00000001),
69+
"sender is not registered scheme");
6970
_;
7071
}
7172

7273
modifier onlyRegisteringSchemes() {
73-
require(schemesPermissions[msg.sender]&bytes4(0x00000002) == bytes4(0x00000002));
74+
require(schemesPermissions[msg.sender]&bytes4(0x00000002) == bytes4(0x00000002),
75+
"sender unautorized to register scheme");
7476
_;
7577
}
7678

7779
modifier onlyGlobalConstraintsScheme() {
78-
require(schemesPermissions[msg.sender]&bytes4(0x00000004) == bytes4(0x00000004));
80+
require(schemesPermissions[msg.sender]&bytes4(0x00000004) == bytes4(0x00000004),
81+
"sender is not globalConstraint scheme");
7982
_;
8083
}
8184

8285
modifier onlyUpgradingScheme() {
83-
require(schemesPermissions[msg.sender]&bytes4(0x00000008) == bytes4(0x00000008));
86+
require(schemesPermissions[msg.sender]&bytes4(0x00000008) == bytes4(0x00000008),
87+
"sender is not UpgradingScheme");
8488
_;
8589
}
8690

8791
modifier onlyGenericCallScheme() {
88-
require(schemesPermissions[msg.sender]&bytes4(0x00000010) == bytes4(0x00000010));
92+
require(schemesPermissions[msg.sender]&bytes4(0x00000010) == bytes4(0x00000010),
93+
"sender is not a Generic Scheme");
8994
_;
9095
}
9196

9297
modifier onlyMetaDataScheme() {
93-
require(schemesPermissions[msg.sender]&bytes4(0x00000010) == bytes4(0x00000010));
98+
require(schemesPermissions[msg.sender]&bytes4(0x00000010) == bytes4(0x00000010),
99+
"sender is not a MetaData Scheme");
94100
_;
95101
}
96102

@@ -176,10 +182,12 @@ contract Controller is Initializable {
176182
// Implementation is a bit messy. One must recall logic-circuits ^^
177183

178184
// produces non-zero if sender does not have all of the perms that are changing between old and new
179-
require(bytes4(0x0000001f)&(_permissions^permissions)&(~schemesPermissions[msg.sender]) == bytes4(0));
185+
require(bytes4(0x0000001f)&(_permissions^permissions)&(~schemesPermissions[msg.sender]) == bytes4(0),
186+
"sender unautorize to register scheme");
180187

181188
// produces non-zero if sender does not have all of the perms in the old scheme
182-
require(bytes4(0x0000001f)&(permissions&(~schemesPermissions[msg.sender])) == bytes4(0));
189+
require(bytes4(0x0000001f)&(permissions&(~schemesPermissions[msg.sender])) == bytes4(0),
190+
"sender unautorize to register scheme");
183191

184192
// Add or change the scheme:
185193
schemesPermissions[_scheme] = _permissions|bytes4(0x00000001);
@@ -203,7 +211,8 @@ contract Controller is Initializable {
203211
return false;
204212
}
205213
// Check the unregistering scheme has enough permissions:
206-
require(bytes4(0x0000001f)&(schemesPermissions[_scheme]&(~schemesPermissions[msg.sender])) == bytes4(0));
214+
require(bytes4(0x0000001f)&(schemesPermissions[_scheme]&(~schemesPermissions[msg.sender])) == bytes4(0),
215+
"sender unautorized to unregister scheme");
207216

208217
// Unregister:
209218
emit UnregisterScheme(msg.sender, _scheme);

0 commit comments

Comments
 (0)