Info

Download ZIP (2.6 MB)

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

MultiSig wallet smart contract. Version #7 of multisignature smart contract see here -http://ton-smc.com/multisig-wallet/new-wallet.zip
To save storage space, signatories in each order are stored in the form of a bit mask, where each bit corresponds to the ID of the signatory. A bit equal to 1 implies that the trusted signer has signed this order. The size of the bitmask is set during the initialization of the smart contract and is equal to the number of signatories, i.e. if the number of signers was 7, then the size of the bitmask will be 7 bits only.
About bug in TVM: TVM behaves differently when you include and exclude the line with call ~dump(). The function works as expected if you have a line 59 signature~dump(); in file MultiSigWallet_v3.fc , and if you comment this line, it will successfully compiled, but an error occurs in runtime.
UPD: Looks like problem is in Func - it's not correct compiling nested loops (do -> until)
How to reproduct this bug mentioned above?
1. Build func and fift into folder ~/liteclient-build as described here - https://test.ton.org/README.txt
2. Create folder ~/liteclient-build/test
3. Copy file test12.fc (from folder /test in the file draft.zip) into this folder
4. Open terminal and type follow commands:
5. cd ~/liteclient-build/test
6. ~/liteclient-build/crypto/func -P ~/lite-client/crypto/smartcont/stdlib.fc test12.fc -otest12.fc.fif
7. It will build file test12.fc.fif
8. At the end of file test12.fc.fif replace code "}END>c" to "}END>s runvmdict"
---- see next comment ----
9. Type follow command in terminal:
10. ~/liteclient-build/fift -I ~/lite-client/crypto/fift/lib -L Asm.fif -s test12.fc.fif
11. You will see output with line "exception handler, terminating vm with exit code 97" at bottom. It's mean function works well.
12. Next part:
13. In file test12.fc comment line #51 -> ";; signature~dump();"
14. Repeat steps 6-10
15. You will see error "handling exception code 7: not an integer"
You have not added any comments yet...
by time

Issues

As I see accept_message() is called after ALL signatures are checked. It is very likely than it won't be enough gas_credit to handle orders with multiple signatures
1
Shiny Shrimp Oct 31, 2019 at 14:28
No, gas of smc will not to spend before accept_message is called.
Magic Python Oct 23, 2019 at 15:48
There is no README.
How do I create a wallet with n=16 and k=10?
Shiny Shrimp Oct 29, 2019 at 04:50
Please use script upload-wallet.fif http://ton-smc.com/multisig-wallet/new-wallet.zip Details in README.txt
Magic Python Oct 29, 2019 at 18:05
But there is no such script in submission, right?
Also, there is no script to create an order.
10
Nobody added any issues yet...