1
1
pragma solidity 0.4.21 ;
2
+ pragma experimental ABIEncoderV2;
2
3
3
4
4
5
import "zeppelin-solidity/contracts/token/ERC20/StandardToken.sol " ;
@@ -122,7 +123,7 @@ contract SetToken is StandardToken, DetailedERC20("", "", 18), Set {
122
123
// Increment the total token supply
123
124
totalSupply = totalSupply.add (quantity);
124
125
125
- LogIssuance (msg .sender , quantity);
126
+ emit LogIssuance (msg .sender , quantity);
126
127
127
128
return true ;
128
129
}
@@ -150,7 +151,7 @@ contract SetToken is StandardToken, DetailedERC20("", "", 18), Set {
150
151
assert (ERC20 (currentComponent).transfer (msg .sender , transferValue));
151
152
}
152
153
153
- LogRedemption (msg .sender , quantity);
154
+ emit LogRedemption (msg .sender , quantity);
154
155
155
156
return true ;
156
157
}
@@ -216,21 +217,31 @@ contract SetToken is StandardToken, DetailedERC20("", "", 18), Set {
216
217
unredeemedComponents[currentExcludedToUnredeem][msg .sender ].isRedeemed = false ;
217
218
}
218
219
219
- LogPartialRedemption (msg .sender , quantity, excludedComponents);
220
+ emit LogPartialRedemption (msg .sender , quantity, excludedComponents);
220
221
221
222
return true ;
222
223
}
223
224
224
- function redeemExcluded (uint [] quantities , address [] excludedComponents )
225
+ /**
226
+ * @dev Function to withdraw tokens that have previously been excluded when calling
227
+ * the redeemExcluded method
228
+ *
229
+ * This function should be used to retrieve tokens that have previously excluded
230
+ * when calling the redeemExcluded function.
231
+ *
232
+ * @param componentsToRedeem address[] The list of tokens to redeem
233
+ * @param quantities uint[] The quantity of Sets desired to redeem in Wei
234
+ */
235
+ function redeemExcluded (address [] componentsToRedeem , uint [] quantities )
225
236
public
226
237
returns (bool success )
227
238
{
228
239
require (quantities.length > 0 );
229
- require (excludedComponents .length > 0 );
230
- require (quantities.length == excludedComponents .length );
240
+ require (componentsToRedeem .length > 0 );
241
+ require (quantities.length == componentsToRedeem .length );
231
242
232
243
for (uint i = 0 ; i < quantities.length ; i++ ) {
233
- address currentComponent = excludedComponents [i];
244
+ address currentComponent = componentsToRedeem [i];
234
245
uint currentQuantity = quantities[i];
235
246
236
247
// Check there is enough balance
@@ -243,7 +254,7 @@ contract SetToken is StandardToken, DetailedERC20("", "", 18), Set {
243
254
assert (ERC20 (currentComponent).transfer (msg .sender , currentQuantity));
244
255
}
245
256
246
- LogRedeemExcluded (msg .sender , excludedComponents );
257
+ emit LogRedeemExcluded (msg .sender , componentsToRedeem );
247
258
248
259
return true ;
249
260
}
0 commit comments