Info

Download ZIP (16.9 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

Dreamy Snail Oct 17, 2019 at 00:22
A multisig wallet implemented in Func and command line interface in Fift.
1
Dreamy Snail Oct 17, 2019 at 02:34
Some addition:
- there is a bug in `list_orders_unsigned` get-method that I fixed after submission.
` orders.udict_get_next?(32, order_id);` starts with order_id equal to -1. But it MUST starts with 0 to skip the special value in order book.
Dreamy Snail Oct 17, 2019 at 02:40
- message layout of smc is described at `multisig-wallet-code.fc`. Read this short description to better understand what is happening.
Dreamy Snail Oct 17, 2019 at 02:59
- `order_id` is a last 4 bytes of hash of order:
order_id = hash(expiration, seed, order_transfer_msg) >> 224.

2^32 is a good entropy to avoid collisions, but if it isn't enough we can easy increase to 6 bytes/8 bytes.

`seed` guarantees that the orders with same amount and address can be created again separately.
You have not added any comments yet...
by rating

Issues

Magic Python Nov 4, 2019 at 10:24
plus:
All required features are implemented.
Good performance (0.074G for a transfer with n=16, k=10).
accept_message() is called only after one signature was verified.

minus:
seqno is not included in a hash. The same order could be easily executed multiple times.
10
Chic Dolphin Oct 22, 2019 at 18:10
You check signature over msg_body which does not include seqno. I can surely take any past message, replace seqno with new and feed it into contract. Am I right?
1
Dreamy Snail Oct 24, 2019 at 04:39
Yes, this is my mistake.
Nobody added any issues yet...