Info

Download ZIP (487.1 KB)

Testing and Issues

You can test this entry and submit issues during the testing period of the Blockchain Contest contest.

Entries with serious issues will not be able to win the contest, but even minor issues might be important for overall results.

Voting

33

Comments

Contents:

* wallet
Advanced upgradable multisignature wallet along with a TON collator emulator testing suite written in FIFT, and some scripts to test the wallet using the actual TON collator.

* toolchain Some automatic builder scripts and wrappers around the funC compiler and fift, along with a tweaked zerostate generator and testgiver scripts.

* test
A small bugreport about issues with fift exception traces

And more! Each directory has a README.md, explaining in detail the structure of  smart contract, fift scripts and testing platform.
Had loads of fun with this, enjoy!
Btw feel free to use the testing suite (both native fift and wrapped bash) script to test the other submissions, it really made my life easier.
You have not added any comments yet...
by time

Issues

Magic Python Oct 23, 2019 at 11:48
multisig initialization message is not protected from replay (with a seqno, for example). As a result, the wallet is completely drained after initialization message.

kQCBxQMDUNoxYwcoV4r70ebRAtHOMNwenNGOF6XO1ssxjJAM
Classy Bee Oct 23, 2019 at 14:28
Hmm, that's right, I should've included a stored_seqno == 0 check => increment before the accept for multiSigInit$10.
My bad! :)
Magic Python Nov 4, 2019 at 10:42
Very good and well-thought solution.
plus:
Good speed (0.055G for a transfer with n=16, k=10)
seqno is required only for new orders.
Code upgrade supported.
Great tests.
All required features are implemented.

minus:
Needed a minor bugfix (there was no replay protection in initialization).
10
Magic Python Nov 5, 2019 at 14:26
Sync channel:
from README: "This is an almost finished lightning payment smart contract."

The code is nice and easy to read.
But am I right that it won't work if one of the parties tries to cheat?

But it is a nice try for 24 hours, anyway.
Classy Bee Nov 12, 2019 at 20:13
Indeed I haven't implemented "punishment logic" like the one described in the whitepaper, where misbehavior is punished by transferring all funds to the other user.
Instead, simple exceptions are thrown, making the logic very similar to a two-party multisig wallet with simplified code.
Nobody added any issues yet...