on master help sign in
Merge branch 'master' into hosting-rc
commit1edc9ff88ae35d2ac25daae10847f488c201166e authorLiam Fitzgerald <liam@urizen.co> dateThu 26 Mar 2020, 09:35 (7 years ago) parent96a4b4524942f5
8 files changed+379−40
DEVELOPMENT.md+4 contracts/Migrations.sol+18 migrations/1_migration.js+136 package-lock.json+181−35 package.json+4−3 src/lib/contracts.js+1−1 src/lib/txn.js+1−1 truffle-config.js+34
DEVELOPMENT.md+4
@@ -74,6 +74,10 @@ of having to re-authenticate whenever you make a change or refresh the page):
7474 your initial state. You can provide a specific wallet,
7575 network type, and so on.
7676
77+- `npm run pilot` will check the `WITH_TEST_STATE` environment variable to setup
78+ the initial chain state. Possible values are `STAR_RELEASE` or `INVITES`.
79+ The state setup can be found in `migrations/1_migration.js`
80+
7781## HTTPS
7882
7983For development, you can enable HTTPS on localhost without a certificate for
contracts/Migrations.solnew file+18
@@ -0,0 +1,18 @@
1+pragma solidity >=0.4.21 <0.7.0;
2+
3+contract Migrations {
4+ address public owner;
5+ uint public last_completed_migration;
6+
7+ constructor() public {
8+ owner = msg.sender;
9+ }
10+
11+ modifier restricted() {
12+ if (msg.sender == owner) _;
13+ }
14+
15+ function setCompleted(uint completed) public restricted {
16+ last_completed_migration = completed;
17+ }
18+}
migrations/1_migration.jsnew file+136
@@ -0,0 +1,136 @@
1+var Azimuth = artifacts.require('azimuth-solidity/contracts/Azimuth.sol');
2+var Polls = artifacts.require('azimuth-solidity/contracts/Polls.sol');
3+var Claims = artifacts.require('azimuth-solidity/contracts/Claims.sol');
4+var Censures = artifacts.require('azimuth-solidity/contracts/Censures.sol');
5+var Ecliptic = artifacts.require('azimuth-solidity/contracts/Ecliptic.sol');
6+var DelegatedSending = artifacts.require(
7+ 'azimuth-solidity/contracts/DelegatedSending.sol'
8+);
9+var LinearStarRelease = artifacts.require(
10+ 'azimuth-solidity/contracts/LinearStarRelease.sol'
11+);
12+var CSR = artifacts.require(
13+ 'azimuth-solidity/contracts/ConditionalStarRelease.sol'
14+);
15+
16+const user1 = '0xD53208cf45fC9bd7938B200BFf8814A26146688f';
17+const rateUnit = 50;
18+
19+const conditions = [
20+ '0x00000000000000000000000000000000000000000000000000000000000000a0',
21+ '0x00000000000000000000000000000000000000000000000000000000000001e0',
22+ '0x0000000000000000000000000000000000000000000000000000000000000260',
23+ '0x00000000000000000000000000000000000000000000000000000000621f23c4',
24+ '0x0000000000000000000000000000000000000000000000000000000000000003',
25+ '0x0000000000000000000000000000000000000000000000000000000000000060',
26+ '0x00000000000000000000000000000000000000000000000000000000000000a0',
27+];
28+const minute = 60;
29+const getLivelines = start => [
30+ start - 5 * minute,
31+ start + 10 * minute,
32+ start + 15 * minute,
33+ start + 20 * minute,
34+ start + 25 * minute,
35+ start + 30 * minute,
36+ start + 35 * minute,
37+];
38+
39+const getDeadlines = start => [
40+ start + 10 * minute,
41+ start + 15 * minute,
42+ start + 20 * minute,
43+ start + 25 * minute,
44+ start + 30 * minute,
45+ start + 35 * minute,
46+ start + 40 * minute,
47+];
48+
49+async function getChainTime() {
50+ const block = await web3.eth.getBlock('latest');
51+
52+ return web3.utils.toDecimal(block.timestamp);
53+}
54+
55+module.exports = async function(deployer) {
56+ await deployer;
57+
58+ // setup contracts
59+ const azimuth = await deployer.deploy(Azimuth);
60+ const polls = await deployer.deploy(Polls, 1209600, 604800);
61+ const claims = await deployer.deploy(Claims, azimuth.address);
62+ const censures = await deployer.deploy(Censures, azimuth.address);
63+
64+ //NOTE for real deployment, use a real ENS registry
65+ const ecliptic = await deployer.deploy(
66+ Ecliptic,
67+ '0x0000000000000000000000000000000000000000',
68+ azimuth.address,
69+ polls.address,
70+ claims.address
71+ );
72+
73+ // configure contract ownership
74+ await azimuth.transferOwnership(ecliptic.address);
75+ await polls.transferOwnership(ecliptic.address);
76+
77+ // deploy secondary contracts
78+ const sending = await deployer.deploy(DelegatedSending, azimuth.address);
79+ const time = await getChainTime();
80+ const livelines = getLivelines(time);
81+ const deadlines = getDeadlines(time);
82+
83+ const escapeHatchDate = time + 200 * minute;
84+
85+ const csr = await deployer.deploy(
86+ CSR,
87+ azimuth.address,
88+ conditions,
89+ livelines,
90+ deadlines,
91+ escapeHatchDate
92+ );
93+
94+ const lsr = await deployer.deploy(LinearStarRelease, azimuth.address);
95+
96+ const own = await ecliptic.owner();
97+ switch (process.env.WITH_TEST_STATE) {
98+ case 'STAR_RELEASE':
99+ await ecliptic.createGalaxy(0, own);
100+ await ecliptic.createGalaxy(1, own);
101+
102+ await ecliptic.configureKeys(0, '0x123', '0x456', 1, false);
103+ await ecliptic.configureKeys(1, '0x123', '0x456', 1, false);
104+ await ecliptic.spawn(256, own);
105+
106+ lsr.startReleasing();
107+ await ecliptic.setSpawnProxy(0, lsr.address);
108+ await ecliptic.setSpawnProxy(1, csr.address);
109+ await ecliptic.setTransferProxy(256, lsr.address);
110+ // Release 2 stars every 5 minutes, starting 2 minutes from now
111+ // for a maximum of 8 stars
112+ await lsr.register(user1, 2 * minute, 21, 2, 5 * minute);
113+ // Release 1 star per minute for each completed batch
114+ // 3 in each batch
115+ await csr.register(user1, [3, 3, 3, 3, 3, 3, 3], 1, rateUnit);
116+
117+ for (let i = 2; i < 23; i++) {
118+ const offset = 256 * i;
119+ await lsr.deposit(user1, offset);
120+ await csr.deposit(user1, offset + 1);
121+ }
122+ case 'INVITES':
123+ await ecliptic.createGalaxy(0, own);
124+ await ecliptic.configureKeys(0, '0x123', '0x456', 1, false);
125+ await ecliptic.spawn(256, own);
126+ await ecliptic.configureKeys(256, '0x456', '0x789', 1, false);
127+ // set transfer proxy to delegated sending, very brittle
128+ await ecliptic.setSpawnProxy(256, sending.address);
129+ await ecliptic.spawn(65792, own);
130+ await ecliptic.spawn(131328, own);
131+ await ecliptic.spawn(512, own);
132+ await sending.setPoolSize(256, 65792, 1000);
133+ default:
134+ return;
135+ }
136+};
package-lock.json+181−35
@@ -2243,6 +2243,12 @@
22432243 "normalize-path": "^2.1.1"
22442244 }
22452245 },
2246+ "app-module-path": {
2247+ "version": "2.2.0",
2248+ "resolved": "https://registry.npmjs.org/app-module-path/-/app-module-path-2.2.0.tgz",
2249+ "integrity": "sha1-ZBqlXft9am8KgUHEucCqULbCTdU=",
2250+ "dev": true
2251+ },
22462252 "append-buffer": {
22472253 "version": "1.0.2",
22482254 "resolved": "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz",
@@ -2678,13 +2684,76 @@
26782684 "bundled": true
26792685 }
26802686 }
2687+ },
2688+ "browser-stdout": {
2689+ "version": "1.3.0",
2690+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
2691+ "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8="
2692+ },
2693+ "debug": {
2694+ "version": "3.1.0",
2695+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
2696+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
2697+ "requires": {
2698+ "ms": "2.0.0"
2699+ }
2700+ },
2701+ "diff": {
2702+ "version": "3.3.1",
2703+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
2704+ "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww=="
2705+ },
2706+ "growl": {
2707+ "version": "1.10.3",
2708+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
2709+ "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q=="
2710+ },
2711+ "has-flag": {
2712+ "version": "2.0.0",
2713+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
2714+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
2715+ },
2716+ "mocha": {
2717+ "version": "4.1.0",
2718+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz",
2719+ "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==",
2720+ "requires": {
2721+ "browser-stdout": "1.3.0",
2722+ "commander": "2.11.0",
2723+ "debug": "3.1.0",
2724+ "diff": "3.3.1",
2725+ "escape-string-regexp": "1.0.5",
2726+ "glob": "7.1.2",
2727+ "growl": "1.10.3",
2728+ "he": "1.1.1",
2729+ "mkdirp": "0.5.1",
2730+ "supports-color": "4.4.0"
2731+ }
2732+ },
2733+ "supports-color": {
2734+ "version": "4.4.0",
2735+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
2736+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
2737+ "requires": {
2738+ "has-flag": "^2.0.0"
2739+ }
2740+ },
2741+ "truffle": {
2742+ "version": "4.1.11",
2743+ "resolved": "https://registry.npmjs.org/truffle/-/truffle-4.1.11.tgz",
2744+ "integrity": "sha512-VNhc6jexZeM92sNJJr4U8ln3uJ/mJEQO/0y9ZLYc4pccyIskPtl+3r4mzymgGM/Mq5v6MpoQVD6NZgHUVKX+Dw==",
2745+ "requires": {
2746+ "mocha": "^4.1.0",
2747+ "original-require": "^1.0.1",
2748+ "solc": "0.4.24"
2749+ }
26812750 }
26822751 }
26832752 },
26842753 "azimuth-solidity": {
2685− "version": "1.2.0",
2686− "resolved": "https://registry.npmjs.org/azimuth-solidity/-/azimuth-solidity-1.2.0.tgz",
2687− "integrity": "sha512-5k50PJtJAXqZFFb0BWH6CxYGfodLNnG9VVJtjAnTxrLl8tO4qQSYWSb1nf39Q0MLT4e+rrUf5JIubZXKckmA3g==",
2754+ "version": "1.2.1",
2755+ "resolved": "https://registry.npmjs.org/azimuth-solidity/-/azimuth-solidity-1.2.1.tgz",
2756+ "integrity": "sha512-T2tnvxKQ2tbmnCt0qSH2tjCiTee+A1XdHCFimU48CqdUimuYR8Mmj2mRe9GHqY0x6C8TX0ifwJL5pnR996sJLw==",
26882757 "requires": {
26892758 "babel-polyfill": "^6.26.0",
26902759 "babel-register": "^6.26.0",
@@ -2692,10 +2761,72 @@
26922761 "truffle": "4.1.11"
26932762 },
26942763 "dependencies": {
2764+ "browser-stdout": {
2765+ "version": "1.3.0",
2766+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
2767+ "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8="
2768+ },
2769+ "debug": {
2770+ "version": "3.1.0",
2771+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
2772+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
2773+ "requires": {
2774+ "ms": "2.0.0"
2775+ }
2776+ },
2777+ "diff": {
2778+ "version": "3.3.1",
2779+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
2780+ "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww=="
2781+ },
2782+ "growl": {
2783+ "version": "1.10.3",
2784+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
2785+ "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q=="
2786+ },
2787+ "has-flag": {
2788+ "version": "2.0.0",
2789+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
2790+ "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
2791+ },
2792+ "mocha": {
2793+ "version": "4.1.0",
2794+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz",
2795+ "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==",
2796+ "requires": {
2797+ "browser-stdout": "1.3.0",
2798+ "commander": "2.11.0",
2799+ "debug": "3.1.0",
2800+ "diff": "3.3.1",
2801+ "escape-string-regexp": "1.0.5",
2802+ "glob": "7.1.2",
2803+ "growl": "1.10.3",
2804+ "he": "1.1.1",
2805+ "mkdirp": "0.5.1",
2806+ "supports-color": "4.4.0"
2807+ }
2808+ },
26952809 "openzeppelin-solidity": {
26962810 "version": "1.12.0",
2697− "resolved": "https://registry.npmjs.org/openzeppelin-solidity/-/openzeppelin-solidity-1.12.0.tgz",
2698− "integrity": "sha512-WlorzMXIIurugiSdw121RVD5qA3EfSI7GybTn+/Du0mPNgairjt29NpVTAaH8eLjAeAwlw46y7uQKy0NYem/gA=="
2811+ "bundled": true
2812+ },
2813+ "supports-color": {
2814+ "version": "4.4.0",
2815+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
2816+ "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
2817+ "requires": {
2818+ "has-flag": "^2.0.0"
2819+ }
2820+ },
2821+ "truffle": {
2822+ "version": "4.1.11",
2823+ "resolved": "https://registry.npmjs.org/truffle/-/truffle-4.1.11.tgz",
2824+ "integrity": "sha512-VNhc6jexZeM92sNJJr4U8ln3uJ/mJEQO/0y9ZLYc4pccyIskPtl+3r4mzymgGM/Mq5v6MpoQVD6NZgHUVKX+Dw==",
2825+ "requires": {
2826+ "mocha": "^4.1.0",
2827+ "original-require": "^1.0.1",
2828+ "solc": "0.4.24"
2829+ }
26992830 }
27002831 }
27012832 },
@@ -3562,9 +3693,10 @@
35623693 }
35633694 },
35643695 "browser-stdout": {
3565− "version": "1.3.0",
3566− "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
3567− "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8="
3696+ "version": "1.3.1",
3697+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
3698+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
3699+ "dev": true
35683700 },
35693701 "browserify-aes": {
35703702 "version": "1.2.0",
@@ -5187,9 +5319,10 @@
51875319 }
51885320 },
51895321 "diff": {
5190− "version": "3.3.1",
5191− "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
5192− "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww=="
5322+ "version": "3.5.0",
5323+ "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
5324+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
5325+ "dev": true
51935326 },
51945327 "diff-sequences": {
51955328 "version": "24.9.0",
@@ -8456,9 +8589,10 @@
84568589 "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
84578590 },
84588591 "growl": {
8459− "version": "1.10.3",
8460− "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
8461− "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q=="
8592+ "version": "1.10.5",
8593+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
8594+ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
8595+ "dev": true
84628596 },
84638597 "growly": {
84648598 "version": "1.3.0",
@@ -8622,9 +8756,10 @@
86228756 }
86238757 },
86248758 "has-flag": {
8625− "version": "2.0.0",
8626− "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
8627− "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
8759+ "version": "3.0.0",
8760+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
8761+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
8762+ "dev": true
86288763 },
86298764 "has-symbol-support-x": {
86308765 "version": "1.4.2",
@@ -12027,36 +12162,46 @@
1202712162 }
1202812163 },
1202912164 "mocha": {
12030− "version": "4.1.0",
12031− "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz",
12032− "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==",
12165+ "version": "5.2.0",
12166+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz",
12167+ "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==",
12168+ "dev": true,
1203312169 "requires": {
12034− "browser-stdout": "1.3.0",
12035− "commander": "2.11.0",
12170+ "browser-stdout": "1.3.1",
12171+ "commander": "2.15.1",
1203612172 "debug": "3.1.0",
12037− "diff": "3.3.1",
12173+ "diff": "3.5.0",
1203812174 "escape-string-regexp": "1.0.5",
1203912175 "glob": "7.1.2",
12040− "growl": "1.10.3",
12176+ "growl": "1.10.5",
1204112177 "he": "1.1.1",
12178+ "minimatch": "3.0.4",
1204212179 "mkdirp": "0.5.1",
12043− "supports-color": "4.4.0"
12180+ "supports-color": "5.4.0"
1204412181 },
1204512182 "dependencies": {
12183+ "commander": {
12184+ "version": "2.15.1",
12185+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
12186+ "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
12187+ "dev": true
12188+ },
1204612189 "debug": {
1204712190 "version": "3.1.0",
1204812191 "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
1204912192 "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
12193+ "dev": true,
1205012194 "requires": {
1205112195 "ms": "2.0.0"
1205212196 }
1205312197 },
1205412198 "supports-color": {
12055− "version": "4.4.0",
12056− "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
12057− "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
12199+ "version": "5.4.0",
12200+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
12201+ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
12202+ "dev": true,
1205812203 "requires": {
12059− "has-flag": "^2.0.0"
12204+ "has-flag": "^3.0.0"
1206012205 }
1206112206 }
1206212207 }
@@ -17621,13 +17766,14 @@
1762117766 }
1762217767 },
1762317768 "truffle": {
17624− "version": "4.1.11",
17625− "resolved": "https://registry.npmjs.org/truffle/-/truffle-4.1.11.tgz",
17626− "integrity": "sha512-VNhc6jexZeM92sNJJr4U8ln3uJ/mJEQO/0y9ZLYc4pccyIskPtl+3r4mzymgGM/Mq5v6MpoQVD6NZgHUVKX+Dw==",
17769+ "version": "5.1.16",
17770+ "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.1.16.tgz",
17771+ "integrity": "sha512-McY2AKicKIdIclpclIXluWtCf1yj2cTJGS0ghStHkklw7XYk3ZL4MoftNyfqiYCjIjGs24qoEF9o/JlRp5qnmQ==",
17772+ "dev": true,
1762717773 "requires": {
17628− "mocha": "^4.1.0",
17629− "original-require": "^1.0.1",
17630− "solc": "0.4.24"
17774+ "app-module-path": "^2.2.0",
17775+ "mocha": "5.2.0",
17776+ "original-require": "1.0.1"
1763117777 }
1763217778 },
1763317779 "ts-essentials": {
package.json+4−3
@@ -72,7 +72,7 @@
7272 "react-app-rewired": "^2.1.3",
7373 "serve": "^11.0.1",
7474 "source-map-explorer": "^2.0.0",
75− "truffle": "4.1.11"
75+ "truffle": "5.1.16"
7676 },
7777 "scripts": {
7878 "start": "react-app-rewired start",
@@ -83,9 +83,10 @@
8383 "zip": "zip -ur bridge-$npm_package_version.zip README.md bridge-https.py checksums.txt && cd build && zip -ur ../bridge-$npm_package_version.zip ./* && cd ..",
8484 "release": "npm install && npm run build && npm run checksum && npm run zip",
8585 "pilot:ganache": "ganache-cli --blockTime 1 --networkId 1 --host '0.0.0.0' -m 'benefit crew supreme gesture quantum web media hazard theory mercy wing kitten' > /dev/null &",
86− "pilot:deploy": "cd node_modules/azimuth-solidity && truffle deploy",
87− "pilot:setup": "npm run pilot:ganache && npm run pilot:deploy",
86+ "pilot:setup": "npm run pilot:ganache && truffle deploy",
8887 "pilot": "HTTPS=true npm-run-all pilot:setup start pilot:cleanup --continue-on-error",
88+ "pilot-invites": "WITH_TEST_STATE=INVITES npm run pilot",
89+ "pilot-release": "WITH_TEST_STATE=STAR_RELEASE npm run pilot",
8990 "pilot:cleanup": "pkill -f ganache-cli",
9091 "lint:check": "eslint 'src/**/*.js'",
9192 "lint:fix": "eslint --fix 'src/**/*.js'",
src/lib/contracts.js+1−1
@@ -4,7 +4,7 @@ const CONTRACT_ADDRESSES = {
44 azimuth: '0x863d9c2e5c4c133596cfac29d55255f0d0f86381',
55 polls: '0x935452c45eda2958976a429c9733c40302995efd',
66 delegatedSending: '0xb71c0b6cee1bcae56dfe95cd9d3e41ddd7eafc43',
7− linearSR: '0xa32c3019b256880A8c5458379188eea6F3934e2F',
7+ linearSR: '0x03C3dC12BE658158D1d7F9e66E08ec4099c568e4',
88 conditionalSR: '0x35EB3B102d9C1B69Ac1469C1B1FE1799850CD3EB',
99 },
1010 ROPSTEN: {
src/lib/txn.js+1−1
@@ -127,7 +127,7 @@ const sendSignedTransaction = (web3, stx, doubtNonceError) => {
127127 // if there's a nonce error, but we used the gas tank, it's likely
128128 // that it's because the tank already submitted our transaction.
129129 // we just wait for first confirmation here.
130− const message = err.message || '';
130+ const message = typeof err === 'string' ? err : err.message || '';
131131 const isKnownError = message.includes('known transaction: ');
132132 const isNonceError =
133133 message.includes("the tx doesn't have the correct nonce.") ||
truffle-config.jsnew file+34
@@ -0,0 +1,34 @@
1+require('babel-register');
2+require('babel-polyfill');
3+
4+module.exports = {
5+ networks: {
6+ development: {
7+ host: 'localhost',
8+ port: 8545,
9+ network_id: '*', // Any network (default: none)
10+ gas: 6000000,
11+ skipDryRun: true,
12+ },
13+ },
14+
15+ // Set default mocha options here, use special reporters etc.
16+ mocha: {},
17+
18+ // Configure your compilers
19+ compilers: {
20+ solc: {
21+ version: '0.4.24',
22+ optimizer: {
23+ enabled: true,
24+ runs: 200,
25+ },
26+ },
27+ },
28+ solc: {
29+ optimizer: {
30+ enabled: true,
31+ runs: 200,
32+ },
33+ },
34+};