@@ -314,13 +314,13 @@ <h1>BKX : CTF</h1>
314314 < span style ="color: #a6e22e "> string</ span > < span style ="color: #66d9ef "> public</ span > < span style ="color: #a6e22e "> bankName</ span > < span style ="color: #f8f8f2 "> ;</ span >
315315 < span style ="color: #a6e22e "> address</ span > < span style ="color: #66d9ef "> public</ span > < span style ="color: #a6e22e "> bankOwner</ span > < span style ="color: #f8f8f2 "> ;</ span >
316316
317- < span style ="color: #a6e22e "> modifier</ span > < span style ="color: #a6e22e "> onlyBankOwner </ span > < span style ="color: #f8f8f2 "> ()</ span > < span style ="color: #f8f8f2 "> {</ span >
318- < span style ="color: #a6e22e "> require</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> tx</ span > < span style ="color: #f8f8f2 "> .</ span > < span style ="color: #a6e22e "> origin</ span > < span style ="color: #f92672 "> ==</ span > < span style ="color: #a6e22e "> bankOwner</ span > < span style ="color: #f8f8f2 "> );</ span >
317+ < span style ="color: #a6e22e "> modifier</ span > < span style ="color: #a6e22e "> onlyBankOwnerOrBankAccount </ span > < span style ="color: #f8f8f2 "> ()</ span > < span style ="color: #f8f8f2 "> {</ span >
318+ < span style ="color: #a6e22e "> require</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> tx</ span > < span style ="color: #f8f8f2 "> .</ span > < span style ="color: #a6e22e "> origin</ span > < span style ="color: #f92672 "> ==</ span > < span style ="color: #a6e22e "> bankOwner</ span > < span style ="color: #f92672 " > || </ span > < span style =" color: #a6e22e " > accounts </ span > < span style =" color: # f8f8f2 "> [ </ span > < span style =" color: #a6e22e " > tx </ span > < span style =" color: #f8f8f2 " > . </ span > < span style =" color: #a6e22e " > origin </ span > < span style =" color: #f8f8f2 " > ] </ span > < span style =" color: #f92672 " > != </ span > < span style =" color: #a6e22e " > address </ span > < span style =" color: #f8f8f2 " > ( </ span > < span style =" color: #ae81ff " > 0 </ span > < span style =" color: #f8f8f2 " > ) );</ span >
319319 < span style ="color: #a6e22e "> _</ span > < span style ="color: #f8f8f2 "> ;</ span >
320320 < span style ="color: #f8f8f2 "> }</ span >
321321
322322 < span style ="color: #66d9ef "> function</ span > < span style ="color: #a6e22e "> getCoins</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> address</ span > < span style ="color: #a6e22e "> _to</ span > < span style ="color: #f8f8f2 "> ,</ span > < span style ="color: #a6e22e "> uint256</ span > < span style ="color: #a6e22e "> _value</ span > < span style ="color: #f8f8f2 "> )</ span > < span style ="color: #66d9ef "> public</ span > < span style ="color: #a6e22e "> returns</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> bool</ span > < span style ="color: #f8f8f2 "> );</ span >
323- < span style ="color: #66d9ef "> function</ span > < span style ="color: #a6e22e "> addNewBankAccount</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> BankAccount</ span > < span style ="color: #a6e22e "> _address</ span > < span style ="color: #f8f8f2 "> ,</ span > < span style ="color: #a6e22e "> address</ span > < span style ="color: #a6e22e "> _accountOwner</ span > < span style ="color: #f8f8f2 "> )</ span > < span style ="color: #a6e22e "> external</ span > < span style ="color: #a6e22e "> onlyBankOwner </ span > < span style ="color: #a6e22e "> returns</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> bool</ span > < span style ="color: #f8f8f2 "> );</ span >
323+ < span style ="color: #66d9ef "> function</ span > < span style ="color: #a6e22e "> addNewBankAccount</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> BankAccount</ span > < span style ="color: #a6e22e "> _address</ span > < span style ="color: #f8f8f2 "> ,</ span > < span style ="color: #a6e22e "> address</ span > < span style ="color: #a6e22e "> _accountOwner</ span > < span style ="color: #f8f8f2 "> )</ span > < span style ="color: #a6e22e "> external</ span > < span style ="color: #a6e22e "> onlyBankOwnerOrBankAccount </ span > < span style ="color: #a6e22e "> returns</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> bool</ span > < span style ="color: #f8f8f2 "> );</ span >
324324< span style ="color: #f8f8f2 "> }</ span >
325325
326326< span style ="color: #a6e22e "> contract</ span > < span style ="color: #a6e22e "> Bank</ span > < span style ="color: #a6e22e "> is</ span > < span style ="color: #a6e22e "> IBank</ span > < span style ="color: #f8f8f2 "> {</ span >
@@ -337,7 +337,7 @@ <h1>BKX : CTF</h1>
337337 < span style ="color: #66d9ef "> return</ span > < span style ="color: #a6e22e "> IERC20</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> ERC20Token</ span > < span style ="color: #f8f8f2 "> ).</ span > < span style ="color: #a6e22e "> transfer</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> _to</ span > < span style ="color: #f8f8f2 "> ,</ span > < span style ="color: #a6e22e "> _value</ span > < span style ="color: #f8f8f2 "> );</ span >
338338 < span style ="color: #f8f8f2 "> }</ span >
339339
340- < span style ="color: #66d9ef "> function</ span > < span style ="color: #a6e22e "> addNewBankAccount</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> BankAccount</ span > < span style ="color: #a6e22e "> _address</ span > < span style ="color: #f8f8f2 "> ,</ span > < span style ="color: #a6e22e "> address</ span > < span style ="color: #a6e22e "> _accountOwner</ span > < span style ="color: #f8f8f2 "> )</ span > < span style ="color: #a6e22e "> external</ span > < span style ="color: #a6e22e "> onlyBankOwner </ span > < span style ="color: #a6e22e "> returns</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> bool</ span > < span style ="color: #f8f8f2 "> )</ span > < span style ="color: #f8f8f2 "> {</ span >
340+ < span style ="color: #66d9ef "> function</ span > < span style ="color: #a6e22e "> addNewBankAccount</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> BankAccount</ span > < span style ="color: #a6e22e "> _address</ span > < span style ="color: #f8f8f2 "> ,</ span > < span style ="color: #a6e22e "> address</ span > < span style ="color: #a6e22e "> _accountOwner</ span > < span style ="color: #f8f8f2 "> )</ span > < span style ="color: #a6e22e "> external</ span > < span style ="color: #a6e22e "> onlyBankOwnerOrBankAccount </ span > < span style ="color: #a6e22e "> returns</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> bool</ span > < span style ="color: #f8f8f2 "> )</ span > < span style ="color: #f8f8f2 "> {</ span >
341341 < span style ="color: #66d9ef "> return</ span > < span style ="color: #a6e22e "> addNewBankAccount_</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> _address</ span > < span style ="color: #f8f8f2 "> ,</ span > < span style ="color: #a6e22e "> _accountOwner</ span > < span style ="color: #f8f8f2 "> );</ span >
342342 < span style ="color: #f8f8f2 "> }</ span >
343343
@@ -356,19 +356,19 @@ <h1>BKX : CTF</h1>
356356 < span style ="color: #a6e22e "> uint</ span > < span style ="color: #a6e22e "> constant</ span > < span style ="color: #a6e22e "> CLIENT_SHARE</ span > < span style ="color: #f92672 "> =</ span > < span style ="color: #a6e22e "> DECIMAL_MULTIPLIER</ span > < span style ="color: #f8f8f2 "> .</ span > < span style ="color: #a6e22e "> sub</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> BANK_FEE</ span > < span style ="color: #f8f8f2 "> );</ span >
357357
358358 < span style ="color: #a6e22e "> address</ span > < span style ="color: #66d9ef "> public</ span > < span style ="color: #a6e22e "> bank</ span > < span style ="color: #f8f8f2 "> ;</ span >
359- < span style ="color: #a6e22e "> address</ span > < span style ="color: #66d9ef "> public</ span > < span style ="color: #a6e22e "> owner </ span > < span style ="color: #f8f8f2 "> ;</ span >
359+ < span style ="color: #a6e22e "> mapping </ span > < span style =" color: #f8f8f2 " > ( </ span > < span style =" color: #a6e22e " > address</ span > < span style ="color: #f92672 " > => </ span > < span style =" color: #a6e22e " > bool </ span > < span style =" color: #f8f8f2 " > ) </ span > < span style =" color: # 66d9ef "> public</ span > < span style ="color: #a6e22e "> owners </ span > < span style ="color: #f8f8f2 "> ;</ span >
360360
361361 < span style ="color: #a6e22e "> uint256</ span > < span style ="color: #a6e22e "> internal</ span > < span style ="color: #a6e22e "> frozenBalance</ span > < span style ="color: #f8f8f2 "> ;</ span >
362362 < span style ="color: #a6e22e "> uint256</ span > < span style ="color: #a6e22e "> internal</ span > < span style ="color: #a6e22e "> releasedETH</ span > < span style ="color: #f8f8f2 "> ;</ span >
363363
364364 < span style ="color: #a6e22e "> modifier</ span > < span style ="color: #a6e22e "> onlyBankOrAccountOwner</ span > < span style ="color: #f8f8f2 "> ()</ span > < span style ="color: #f8f8f2 "> {</ span >
365365 < span style ="color: #a6e22e "> address</ span > < span style ="color: #a6e22e "> bankOwner</ span > < span style ="color: #f92672 "> =</ span > < span style ="color: #a6e22e "> IBank</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> bank</ span > < span style ="color: #f8f8f2 "> ).</ span > < span style ="color: #a6e22e "> bankOwner</ span > < span style ="color: #f8f8f2 "> ();</ span >
366- < span style ="color: #a6e22e "> require</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> tx</ span > < span style ="color: #f8f8f2 "> .</ span > < span style ="color: #a6e22e "> origin</ span > < span style ="color: #f92672 "> == </ span > < span style ="color: #a6e22e "> bankOwner </ span > < span style ="color: #f92672 " > || </ span > < span style ="color: #a6e22e "> tx</ span > < span style ="color: #f8f8f2 "> .</ span > < span style ="color: #a6e22e "> origin</ span > < span style ="color: #f92672 "> ==</ span > < span style ="color: #a6e22e " > owner </ span > < span style ="color: #f8f8f2 "> );</ span >
366+ < span style ="color: #a6e22e "> require</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> bankOwner </ span > < span style =" color: #f92672 " > == </ span > < span style =" color: #a6e22e " > tx</ span > < span style ="color: #f8f8f2 "> .</ span > < span style ="color: #a6e22e "> origin</ span > < span style ="color: #f92672 "> || </ span > < span style ="color: #a6e22e "> owners </ span > < span style ="color: #f8f8f2 " > [ </ span > < span style ="color: #a6e22e "> tx</ span > < span style ="color: #f8f8f2 "> .</ span > < span style ="color: #a6e22e "> origin</ span > < span style =" color: #f8f8f2 " > ] </ span > < span style ="color: #f92672 "> ==</ span > < span style ="color: #66d9ef " > true </ span > < span style ="color: #f8f8f2 "> );</ span >
367367 < span style ="color: #a6e22e "> _</ span > < span style ="color: #f8f8f2 "> ;</ span >
368368 < span style ="color: #f8f8f2 "> }</ span >
369369
370370 < span style ="color: #a6e22e "> modifier</ span > < span style ="color: #a6e22e "> onlyOwner</ span > < span style ="color: #f8f8f2 "> ()</ span > < span style ="color: #f8f8f2 "> {</ span >
371- < span style ="color: #a6e22e "> require</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> tx</ span > < span style ="color: #f8f8f2 "> .</ span > < span style ="color: #a6e22e "> origin</ span > < span style ="color: #f92672 "> ==</ span > < span style ="color: #a6e22e " > owner </ span > < span style ="color: #f8f8f2 "> );</ span >
371+ < span style ="color: #a6e22e "> require</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> owners </ span > < span style =" color: #f8f8f2 " > [ </ span > < span style =" color: #a6e22e " > tx</ span > < span style ="color: #f8f8f2 "> .</ span > < span style ="color: #a6e22e "> origin</ span > < span style =" color: #f8f8f2 " > ] </ span > < span style ="color: #f92672 "> ==</ span > < span style ="color: #66d9ef " > true </ span > < span style ="color: #f8f8f2 "> );</ span >
372372 < span style ="color: #a6e22e "> _</ span > < span style ="color: #f8f8f2 "> ;</ span >
373373 < span style ="color: #f8f8f2 "> }</ span >
374374
@@ -390,10 +390,19 @@ <h1>BKX : CTF</h1>
390390
391391 < span style ="color: #a6e22e "> constructor</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> address</ span > < span style ="color: #a6e22e "> _bank</ span > < span style ="color: #f8f8f2 "> ,</ span > < span style ="color: #a6e22e "> address</ span > < span style ="color: #a6e22e "> _owner</ span > < span style ="color: #f8f8f2 "> )</ span > < span style ="color: #f8f8f2 "> {</ span >
392392 < span style ="color: #a6e22e "> bank</ span > < span style ="color: #f92672 "> =</ span > < span style ="color: #a6e22e "> _bank</ span > < span style ="color: #f8f8f2 "> ;</ span >
393- < span style ="color: #a6e22e "> owner </ span > < span style ="color: #f92672 "> =</ span > < span style ="color: #a6e22e " > _owner </ span > < span style ="color: #f8f8f2 "> ;</ span >
393+ < span style ="color: #a6e22e "> owners </ span > < span style =" color: #f8f8f2 " > [ </ span > < span style ="color: #a6e22e " > _owner </ span > < span style =" color: #f8f8f2 " > ] </ span > < span style =" color: # f92672 "> =</ span > < span style ="color: #66d9ef " > true </ span > < span style ="color: #f8f8f2 "> ;</ span >
394394 < span style ="color: #a6e22e "> frozenBalance</ span > < span style ="color: #f92672 "> =</ span > < span style ="color: #ae81ff "> 1</ span > < span style ="color: #a6e22e "> e3</ span > < span style ="color: #f8f8f2 "> ;</ span >
395395 < span style ="color: #f8f8f2 "> }</ span >
396396
397+ < span style ="color: #75715e "> /**</ span >
398+ < span style ="color: #75715e "> * If you want to add new teammates to resolve this task - use this function</ span >
399+ < span style ="color: #75715e "> */</ span >
400+ < span style ="color: #66d9ef "> function</ span > < span style ="color: #a6e22e "> addBankAccountOwners</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> address</ span > < span style ="color: #a6e22e "> _newOwner</ span > < span style ="color: #f8f8f2 "> )</ span > < span style ="color: #a6e22e "> onlyOwner</ span > < span style ="color: #a6e22e "> returns</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> bool</ span > < span style ="color: #f8f8f2 "> )</ span > < span style ="color: #f8f8f2 "> {</ span >
401+ < span style ="color: #a6e22e "> owners</ span > < span style ="color: #f8f8f2 "> [</ span > < span style ="color: #a6e22e "> _newOwner</ span > < span style ="color: #f8f8f2 "> ]</ span > < span style ="color: #f92672 "> =</ span > < span style ="color: #66d9ef "> true</ span > < span style ="color: #f8f8f2 "> ;</ span >
402+ < span style ="color: #a6e22e "> IBank</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> bank</ span > < span style ="color: #f8f8f2 "> ).</ span > < span style ="color: #a6e22e "> addNewBankAccount</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #a6e22e "> BankAccount</ span > < span style ="color: #a6e22e "> address</ span > < span style ="color: #f8f8f2 "> (</ span > < span style ="color: #66d9ef "> this</ span > < span style ="color: #f8f8f2 "> ),</ span > < span style ="color: #a6e22e "> _newOwner</ span > < span style ="color: #f8f8f2 "> );</ span >
403+ < span style ="color: #66d9ef "> return</ span > < span style ="color: #66d9ef "> true</ span > < span style ="color: #f8f8f2 "> ;</ span >
404+ < span style ="color: #f8f8f2 "> }</ span >
405+
397406 < span style ="color: #66d9ef "> function</ span > < span style ="color: #f8f8f2 "> ()</ span > < span style ="color: #a6e22e "> payable</ span > < span style ="color: #a6e22e "> onlyBankOwner</ span > < span style ="color: #f8f8f2 "> {</ span >
398407
399408 < span style ="color: #f8f8f2 "> }</ span >
@@ -435,6 +444,8 @@ <h1>BKX : CTF</h1>
435444< span style ="color: #f8f8f2 "> }</ span >
436445</ pre > </ div >
437446
447+
448+
438449 </ div >
439450
440451 </ p >
0 commit comments