mirror of
https://github.com/danog/toncontest.git
synced 2024-11-29 20:19:11 +01:00
Start debugging
This commit is contained in:
parent
39e4d04231
commit
8fc45f8935
@ -3,12 +3,13 @@
|
||||
' constant : const
|
||||
{ file>B B>boc } : load-boc
|
||||
{
|
||||
."usage: " @' $0 type ." <message> <init-message>" cr
|
||||
."Runs the TON VM, using code and storage data from <init-message>.boc and <message>.boc as message." cr 1 halt
|
||||
."usage: " @' $0 type ." <message> <init-message> <func>" cr
|
||||
."Runs the function with ID <func> in the TON VM, using code and storage data from <init-message>.boc and <message>.boc as message." cr 1 halt
|
||||
} : usage
|
||||
$# 2 < ' usage if
|
||||
$1 +".boc" load-boc const message
|
||||
$1 +".boc" load-boc const message-boc
|
||||
$2 +".boc" load-boc const init-boc
|
||||
$3 parse-int const function
|
||||
|
||||
// message$_ {X:Type} info:CommonMsgInfo
|
||||
// init:(Maybe (Either StateInit ^StateInit))
|
||||
@ -43,15 +44,15 @@ init-boc <s
|
||||
|
||||
1 u@+ swap
|
||||
1- abort"No code!"
|
||||
ref@+ constant code // Load code
|
||||
ref@+ <s constant code // Load code
|
||||
|
||||
1 u@+ swap
|
||||
1- abort"No data!"
|
||||
ref@+ <s constant storage // Load storage
|
||||
ref@+ constant storage // Load storage
|
||||
|
||||
drop
|
||||
|
||||
message <s
|
||||
message-boc <s
|
||||
// External message
|
||||
7 u@+ swap 68 <> { ."There seems to be an invalid header" cr } if // 1000100 => 68
|
||||
|
||||
@ -65,7 +66,13 @@ message <s
|
||||
abort"This seems to be an init message"
|
||||
|
||||
constant message
|
||||
// message
|
||||
// code
|
||||
// storage
|
||||
message code storage .s runvmcode .s
|
||||
|
||||
// c7
|
||||
// [ magic:0x076ef1ea actions:Integer msgs_sent:Integer
|
||||
// unixtime:Integer block_lt:Integer trans_lt:Integer
|
||||
// rand_seed:Integer balance_remaining:[Integer (Maybe Cell)]
|
||||
// myself:MsgAddressInt global_config:(Maybe Cell)
|
||||
// ] = SmartContractInfo;
|
||||
0x076ef1ea 0 0 now <b 1234 32 u, b> hash 5 tuple 1 tuple constant ctx
|
||||
|
||||
message function code storage ctx .s runvmctx
|
@ -121,7 +121,7 @@ builder store_keys(builder b, int length, var keys) {
|
||||
;; multiSigWrapper$0 keys_signatures:(HashmapE 4 Signature) message:(WrappedMessage X) = MultiSigWrapper X;
|
||||
() recv_external(slice in_msg) impure {
|
||||
;; Check if multiSigWrapper$0 or future unsupported protocol
|
||||
throw_unless(32, in_msg~load_uint(1));
|
||||
throw_if(32, in_msg~load_uint(1));
|
||||
|
||||
;; Check if is hme_empty$0 or hme_root$1
|
||||
;; Throw if empty signature list
|
||||
|
@ -15,6 +15,7 @@ PROGRAM{
|
||||
124239 DECLMETHOD getPartials
|
||||
87848 DECLMETHOD getPartialsById
|
||||
110845 DECLMETHOD getPartialsByKey
|
||||
73634 DECLMETHOD getPartialsByHash
|
||||
~collect_garbage PROC:<{
|
||||
-1 PUSHINT
|
||||
UNTIL:<{
|
||||
@ -193,7 +194,7 @@ PROGRAM{
|
||||
recv_external PROC:<{
|
||||
1 LDU
|
||||
SWAP
|
||||
32 THROWIFNOT
|
||||
32 THROWIF
|
||||
DUP
|
||||
1 PLDU
|
||||
33 THROWIFNOT
|
||||
@ -455,4 +456,14 @@ PROGRAM{
|
||||
}>
|
||||
getPartialsById CALLDICT
|
||||
}>
|
||||
getPartialsByHash PROC:<{
|
||||
c4 PUSH
|
||||
CTOS
|
||||
36 PUSHINT
|
||||
SDSKIPFIRST
|
||||
skip_keys CALLDICT
|
||||
PLDDICT
|
||||
8 PUSHPOW2
|
||||
DICTUGETOPTREF
|
||||
}>
|
||||
}END>c
|
||||
|
@ -149,6 +149,12 @@ dup hash wc swap 2dup 2constant wallet_addr
|
||||
<b 0 32 u, -1 32 i, b>
|
||||
dup ."signing message: " <s csr. cr
|
||||
dup hash privkey ed25519_sign_uint rot
|
||||
|
||||
|
||||
// message$_ {X:Type} info:CommonMsgInfo
|
||||
// init:(Maybe (Either StateInit ^StateInit))
|
||||
// body:(Either X ^X) = Message X;
|
||||
|
||||
<b b{1000100} s, wallet_addr addr, b{000010} s, swap <s s, b{0} s, swap B, swap <s s, b>
|
||||
dup ."External message for initialization is " <s csr. cr
|
||||
2 boc+>B dup Bx. cr
|
||||
|
Loading…
Reference in New Issue
Block a user