@@ -40,7 +40,7 @@ contract("Colony Arbitrary Transactions", (accounts) => {
40
40
const action = await encodeTxData ( token , "mint" , [ WAD ] ) ;
41
41
const balancePre = await token . balanceOf ( colony . address ) ;
42
42
43
- const tx = await colony . makeArbitraryTransaction ( token . address , action ) ;
43
+ const tx = await colony . makeArbitraryTransaction ( token . address , action , false ) ;
44
44
45
45
await expectEvent ( tx , "ArbitraryTransaction(address,bytes,bool)" , [ token . address , action , true ] ) ;
46
46
@@ -53,8 +53,8 @@ contract("Colony Arbitrary Transactions", (accounts) => {
53
53
const action2 = await encodeTxData ( token , "mint" , [ WAD . muln ( 2 ) ] ) ;
54
54
const balancePre = await token . balanceOf ( colony . address ) ;
55
55
56
- const arbitraryAction = await encodeTxData ( colony , "makeArbitraryTransaction" , [ token . address , action ] ) ;
57
- const arbitraryAction2 = await encodeTxData ( colony , "makeArbitraryTransaction" , [ token . address , action2 ] ) ;
56
+ const arbitraryAction = await encodeTxData ( colony , "makeArbitraryTransaction" , [ token . address , action , false ] ) ;
57
+ const arbitraryAction2 = await encodeTxData ( colony , "makeArbitraryTransaction" , [ token . address , action2 , false ] ) ;
58
58
59
59
const tx = await colony . multicall ( [ arbitraryAction , arbitraryAction2 ] ) ;
60
60
@@ -68,15 +68,15 @@ contract("Colony Arbitrary Transactions", (accounts) => {
68
68
it ( "should not be able to make arbitrary transactions if not root" , async ( ) => {
69
69
const action = await encodeTxData ( token , "mint" , [ WAD ] ) ;
70
70
71
- await checkErrorRevert ( colony . makeArbitraryTransaction ( token . address , action , { from : USER1 } ) , "ds-auth-unauthorized" ) ;
71
+ await checkErrorRevert ( colony . makeArbitraryTransaction ( token . address , action , false , { from : USER1 } ) , "ds-auth-unauthorized" ) ;
72
72
} ) ;
73
73
74
74
it ( "should not be able to make arbitrary transactions to a colony itself" , async ( ) => {
75
- await checkErrorRevert ( colony . makeArbitraryTransaction ( colony . address , " 0x0" ) , "colony-cannot-target-self" ) ;
75
+ await checkErrorRevert ( colony . makeArbitraryTransaction ( colony . address , 0x0 , false ) , "colony-cannot-target-self" ) ;
76
76
} ) ;
77
77
78
78
it ( "should not be able to make arbitrary transactions to a user address" , async ( ) => {
79
- await checkErrorRevert ( colony . makeArbitraryTransaction ( accounts [ 0 ] , " 0x0" ) , "colony-to-must-be-contract" ) ;
79
+ await checkErrorRevert ( colony . makeArbitraryTransaction ( accounts [ 0 ] , 0x0 , false ) , "colony-to-must-be-contract" ) ;
80
80
} ) ;
81
81
82
82
it ( "should not be able to make arbitrary transactions to network or token locking" , async ( ) => {
@@ -86,14 +86,14 @@ contract("Colony Arbitrary Transactions", (accounts) => {
86
86
const action1 = await encodeTxData ( colonyNetwork , "addSkill" , [ 0 ] ) ;
87
87
const action2 = await encodeTxData ( tokenLocking , "lockToken" , [ token . address ] ) ;
88
88
89
- await checkErrorRevert ( colony . makeArbitraryTransaction ( colonyNetwork . address , action1 ) , "colony-cannot-target-network" ) ;
90
- await checkErrorRevert ( colony . makeArbitraryTransaction ( tokenLocking . address , action2 ) , "colony-cannot-target-token-locking" ) ;
89
+ await checkErrorRevert ( colony . makeArbitraryTransaction ( colonyNetwork . address , action1 , false ) , "colony-cannot-target-network" ) ;
90
+ await checkErrorRevert ( colony . makeArbitraryTransaction ( tokenLocking . address , action2 , false ) , "colony-cannot-target-token-locking" ) ;
91
91
} ) ;
92
92
93
93
it ( "if an arbitrary transaction is made to approve tokens, then tokens needed for approval cannot be moved out of the main pot" , async ( ) => {
94
94
await fundColonyWithTokens ( colony , token , 100 ) ;
95
95
const action1 = await encodeTxData ( token , "approve" , [ USER0 , 50 ] ) ;
96
- await colony . makeArbitraryTransaction ( token . address , action1 ) ;
96
+ await colony . makeArbitraryTransaction ( token . address , action1 , false ) ;
97
97
await colony . moveFundsBetweenPots ( 1 , UINT256_MAX , 1 , UINT256_MAX , UINT256_MAX , 1 , 0 , 50 , token . address ) ;
98
98
await checkErrorRevert (
99
99
colony . moveFundsBetweenPots ( 1 , UINT256_MAX , 1 , UINT256_MAX , UINT256_MAX , 1 , 0 , 50 , token . address ) ,
@@ -109,7 +109,7 @@ contract("Colony Arbitrary Transactions", (accounts) => {
109
109
tokens can only be moved from main pot that weren't part of the allowance` , async ( ) => {
110
110
await fundColonyWithTokens ( colony , token , 100 ) ;
111
111
const action1 = await encodeTxData ( token , "approve" , [ USER0 , 20 ] ) ;
112
- await colony . makeArbitraryTransaction ( token . address , action1 ) ;
112
+ await colony . makeArbitraryTransaction ( token . address , action1 , false ) ;
113
113
// Use allowance
114
114
await token . transferFrom ( colony . address , USER0 , 20 , { from : USER0 } ) ;
115
115
// Approval tracking still thinks it has to reserve 20
@@ -141,9 +141,9 @@ contract("Colony Arbitrary Transactions", (accounts) => {
141
141
await fundColonyWithTokens ( colony , token , 100 ) ;
142
142
const action1 = await encodeTxData ( token , "approve" , [ USER0 , 300 ] ) ;
143
143
// Not enough tokens at all
144
- await checkErrorRevert ( colony . makeArbitraryTransaction ( token . address , action1 ) , "colony-approval-exceeds-balance" ) ;
144
+ await checkErrorRevert ( colony . makeArbitraryTransaction ( token . address , action1 , false ) , "colony-approval-exceeds-balance" ) ;
145
145
await fundColonyWithTokens ( colony , token , 1000 ) ;
146
- await colony . makeArbitraryTransaction ( token . address , action1 ) ;
146
+ await colony . makeArbitraryTransaction ( token . address , action1 , false ) ;
147
147
// They are now approved for 300.
148
148
let approval = await colony . getTokenApproval ( token . address , USER0 ) ;
149
149
expect ( approval ) . to . be . eq . BN ( 300 ) ;
@@ -152,25 +152,25 @@ contract("Colony Arbitrary Transactions", (accounts) => {
152
152
153
153
const action2 = await encodeTxData ( token , "approve" , [ USER0 , 900 ] ) ;
154
154
// User was approved for 300, we now approve them for 900. There are enough tokens to cover this, even though 900 + 300 > 1100, the balance of the pot
155
- await colony . makeArbitraryTransaction ( token . address , action2 ) ;
155
+ await colony . makeArbitraryTransaction ( token . address , action2 , false ) ;
156
156
approval = await colony . getTokenApproval ( token . address , USER0 ) ;
157
157
expect ( approval ) . to . be . eq . BN ( 900 ) ;
158
158
allApprovals = await colony . getTotalTokenApproval ( token . address ) ;
159
159
expect ( allApprovals ) . to . be . eq . BN ( 900 ) ;
160
160
161
161
// Set them back to 300
162
- await colony . makeArbitraryTransaction ( token . address , action1 ) ;
162
+ await colony . makeArbitraryTransaction ( token . address , action1 , false ) ;
163
163
approval = await colony . getTokenApproval ( token . address , USER0 ) ;
164
164
expect ( approval ) . to . be . eq . BN ( 300 ) ;
165
165
allApprovals = await colony . getTotalTokenApproval ( token . address ) ;
166
166
expect ( allApprovals ) . to . be . eq . BN ( 300 ) ;
167
167
168
168
// Cannot approve someone else for 900
169
169
const action3 = await encodeTxData ( token , "approve" , [ USER1 , 900 ] ) ;
170
- await checkErrorRevert ( colony . makeArbitraryTransaction ( token . address , action3 ) , "colony-approval-exceeds-balance" ) ;
170
+ await checkErrorRevert ( colony . makeArbitraryTransaction ( token . address , action3 , false ) , "colony-approval-exceeds-balance" ) ;
171
171
// But can for 800
172
172
const action4 = await encodeTxData ( token , "approve" , [ USER1 , 800 ] ) ;
173
- await colony . makeArbitraryTransaction ( token . address , action4 ) ;
173
+ await colony . makeArbitraryTransaction ( token . address , action4 , false ) ;
174
174
approval = await colony . getTokenApproval ( token . address , USER1 ) ;
175
175
expect ( approval ) . to . be . eq . BN ( 800 ) ;
176
176
allApprovals = await colony . getTotalTokenApproval ( token . address ) ;
@@ -212,47 +212,47 @@ contract("Colony Arbitrary Transactions", (accounts) => {
212
212
0 ,
213
213
] ) ;
214
214
215
- await checkErrorRevert ( colony . makeArbitraryTransaction ( oneTxPayment . address , action ) , "colony-cannot-target-extensions" ) ;
215
+ await checkErrorRevert ( colony . makeArbitraryTransaction ( oneTxPayment . address , action , false ) , "colony-cannot-target-extensions" ) ;
216
216
217
217
// But other colonies can
218
218
const { colony : otherColony } = await setupRandomColony ( colonyNetwork ) ;
219
219
await colony . setUserRoles ( 1 , UINT256_MAX , otherColony . address , 1 , ROLES ) ;
220
220
221
- await otherColony . makeArbitraryTransaction ( oneTxPayment . address , action ) ;
221
+ await otherColony . makeArbitraryTransaction ( oneTxPayment . address , action , false ) ;
222
222
} ) ;
223
223
224
224
it ( "when burning tokens, can burn own tokens with burn(amount) up to the amount unspoken for in root pot" , async ( ) => {
225
225
await fundColonyWithTokens ( colony , token , 100 ) ;
226
226
const action1 = await encodeTxData ( token , "approve" , [ USER0 , 60 ] ) ;
227
- await colony . makeArbitraryTransaction ( token . address , action1 ) ;
227
+ await colony . makeArbitraryTransaction ( token . address , action1 , false ) ;
228
228
let potBalance = await colony . getFundingPotBalance ( 1 , token . address ) ;
229
229
expect ( potBalance ) . to . be . eq . BN ( 100 ) ;
230
230
231
231
const action2 = await encodeTxData ( token , "burn" , [ 100 ] ) ;
232
232
// Can't burn 100 as 60 are reserved
233
- await checkErrorRevert ( colony . makeArbitraryTransaction ( token . address , action2 ) , "colony-not-enough-tokens" ) ;
233
+ await checkErrorRevert ( colony . makeArbitraryTransaction ( token . address , action2 , false ) , "colony-not-enough-tokens" ) ;
234
234
235
235
// Can burn 40
236
236
const action3 = await encodeTxData ( token , "burn" , [ 40 ] ) ;
237
- await colony . makeArbitraryTransaction ( token . address , action3 ) ;
237
+ await colony . makeArbitraryTransaction ( token . address , action3 , false ) ;
238
238
potBalance = await colony . getFundingPotBalance ( 1 , token . address ) ;
239
239
expect ( potBalance ) . to . be . eq . BN ( 60 ) ;
240
240
} ) ;
241
241
242
242
it ( "when transferring tokens, can transfer own tokens with transfer(dst, amount) up to the amount unspoken for in root pot" , async ( ) => {
243
243
await fundColonyWithTokens ( colony , token , 100 ) ;
244
244
const action1 = await encodeTxData ( token , "approve" , [ USER0 , 60 ] ) ;
245
- await colony . makeArbitraryTransaction ( token . address , action1 ) ;
245
+ await colony . makeArbitraryTransaction ( token . address , action1 , false ) ;
246
246
let potBalance = await colony . getFundingPotBalance ( 1 , token . address ) ;
247
247
expect ( potBalance ) . to . be . eq . BN ( 100 ) ;
248
248
249
249
const action2 = await encodeTxData ( token , "transfer" , [ USER0 , 100 ] ) ;
250
250
// Can't transfer 100 as 60 are reserved
251
- await checkErrorRevert ( colony . makeArbitraryTransaction ( token . address , action2 ) , "colony-not-enough-tokens" ) ;
251
+ await checkErrorRevert ( colony . makeArbitraryTransaction ( token . address , action2 , false ) , "colony-not-enough-tokens" ) ;
252
252
253
253
// Can transfer 40
254
254
const action3 = await encodeTxData ( token , "transfer" , [ USER0 , 40 ] ) ;
255
- await colony . makeArbitraryTransaction ( token . address , action3 ) ;
255
+ await colony . makeArbitraryTransaction ( token . address , action3 , false ) ;
256
256
potBalance = await colony . getFundingPotBalance ( 1 , token . address ) ;
257
257
expect ( potBalance ) . to . be . eq . BN ( 60 ) ;
258
258
const userBalance = await token . balanceOf ( USER0 ) ;
@@ -263,7 +263,7 @@ contract("Colony Arbitrary Transactions", (accounts) => {
263
263
await token . mint ( 100 ) ;
264
264
await token . approve ( colony . address , 100 ) ;
265
265
const action1 = await encodeTxData ( token , "burn" , [ USER0 , 60 ] ) ;
266
- await colony . makeArbitraryTransaction ( token . address , action1 ) ;
266
+ await colony . makeArbitraryTransaction ( token . address , action1 , false ) ;
267
267
268
268
const userBalance = await token . balanceOf ( USER0 ) ;
269
269
expect ( userBalance ) . to . be . eq . BN ( 40 ) ;
@@ -273,7 +273,7 @@ contract("Colony Arbitrary Transactions", (accounts) => {
273
273
await token . mint ( 100 ) ;
274
274
await token . approve ( colony . address , 100 ) ;
275
275
const action1 = await encodeTxData ( token , "transferFrom" , [ USER0 , colony . address , 60 ] ) ;
276
- await colony . makeArbitraryTransaction ( token . address , action1 ) ;
276
+ await colony . makeArbitraryTransaction ( token . address , action1 , false ) ;
277
277
278
278
const userBalance = await token . balanceOf ( USER0 ) ;
279
279
expect ( userBalance ) . to . be . eq . BN ( 40 ) ;
@@ -283,11 +283,11 @@ contract("Colony Arbitrary Transactions", (accounts) => {
283
283
284
284
it ( "cannot burn own tokens with burn(guy, amount)" , async ( ) => {
285
285
const action = await encodeTxData ( token , "burn" , [ colony . address , 60 ] ) ;
286
- await checkErrorRevert ( colony . makeArbitraryTransaction ( token . address , action ) , "colony-cannot-spend-own-allowance" ) ;
286
+ await checkErrorRevert ( colony . makeArbitraryTransaction ( token . address , action , false ) , "colony-cannot-spend-own-allowance" ) ;
287
287
} ) ;
288
288
289
289
it ( "cannot transfer own tokens with transferFrom(from, to, amount)" , async ( ) => {
290
290
const action = await encodeTxData ( token , "transferFrom" , [ colony . address , USER0 , 60 ] ) ;
291
- await checkErrorRevert ( colony . makeArbitraryTransaction ( token . address , action ) , "colony-cannot-spend-own-allowance" ) ;
291
+ await checkErrorRevert ( colony . makeArbitraryTransaction ( token . address , action , false ) , "colony-cannot-spend-own-allowance" ) ;
292
292
} ) ;
293
293
} ) ;
0 commit comments