mirror of
https://github.com/ton-blockchain/ton
synced 2025-02-13 11:42:18 +00:00
7a78ea33b7
* Update provider->contract deploy_contract op-code * Switch to B{} representation of child contracts
341 lines
19 KiB
Text
341 lines
19 KiB
Text
"Asm.fif" include
|
|
// automatically generated from `../../../crypto/smartcont/stdlib.fc` `storage-provider.fc` incl:`constants.fc`
|
|
PROGRAM{
|
|
DECLPROC calculate_address_by_stateinit
|
|
DECLPROC build_storage_contract_stateinit
|
|
DECLPROC deploy_storage_contract
|
|
DECLPROC recv_internal
|
|
DECLPROC recv_external
|
|
85143 DECLMETHOD seqno
|
|
78748 DECLMETHOD get_public_key
|
|
130271 DECLMETHOD get_wallet_params
|
|
104346 DECLMETHOD get_storage_params
|
|
119729 DECLMETHOD get_storage_contract_address
|
|
calculate_address_by_stateinit PROC:<{
|
|
// state_init
|
|
HASHCU // _1
|
|
0 PUSHINT // _1 _2=0
|
|
4 PUSHINT // _1 _2=0 _3=4
|
|
NEWC // _1 _2=0 _3=4 _4
|
|
3 STU // _1 _2=0 _6
|
|
8 STI // _1 _8
|
|
256 STU // _10
|
|
ENDC // _11
|
|
CTOS // _12
|
|
}>
|
|
build_storage_contract_stateinit PROC:<{
|
|
// merkle_hash file_size rate_per_mb_day max_span client torrent_hash
|
|
NEWC
|
|
ROT // merkle_hash file_size rate_per_mb_day max_span torrent_hash _7 client
|
|
STSLICER // merkle_hash file_size rate_per_mb_day max_span torrent_hash _8
|
|
256 STU // merkle_hash file_size rate_per_mb_day max_span _10
|
|
ENDC // merkle_hash file_size rate_per_mb_day max_span _11
|
|
NOW // merkle_hash file_size rate_per_mb_day max_span _11 _12
|
|
0 PUSHINT // merkle_hash file_size rate_per_mb_day max_span _11 _12 _13=0
|
|
DUP // merkle_hash file_size rate_per_mb_day max_span _11 _12 _13=0 _14=0
|
|
NEWC // merkle_hash file_size rate_per_mb_day max_span _11 _12 _13=0 _14=0 _15
|
|
1 STI // merkle_hash file_size rate_per_mb_day max_span _11 _12 _13=0 _17
|
|
OVER // merkle_hash file_size rate_per_mb_day max_span _11 _12 _13=0 _17 _18=0
|
|
STGRAMS // merkle_hash file_size rate_per_mb_day max_span _11 _12 _13=0 _19
|
|
MYADDR // merkle_hash file_size rate_per_mb_day max_span _11 _12 _13=0 _19 _20
|
|
STSLICER // merkle_hash file_size rate_per_mb_day max_span _11 _12 _13=0 _21
|
|
s1 s7 XCHG // _13=0 file_size rate_per_mb_day max_span _11 _12 merkle_hash _21
|
|
256 STU // _13=0 file_size rate_per_mb_day max_span _11 _12 _23
|
|
s1 s5 XCHG // _13=0 _12 rate_per_mb_day max_span _11 file_size _23
|
|
64 STU // _13=0 _12 rate_per_mb_day max_span _11 _25
|
|
s1 s5 XCHG // _11 _12 rate_per_mb_day max_span _13=0 _25
|
|
64 STU // _11 _12 rate_per_mb_day max_span _27
|
|
ROT // _11 _12 max_span _27 rate_per_mb_day
|
|
STGRAMS // _11 _12 max_span _28
|
|
32 STU // _11 _12 _30
|
|
32 STU // _11 _32
|
|
STREF // _33
|
|
ENDC // data
|
|
0 PUSHINT // data _36=0
|
|
B{B5EE9C72010213010002FD000114FF00F4A413F4BCF2C80B0102016202030202CE04050201200D0E020120060700115D74CD0FA40D3FF30804E1007434C0C05C6C2497C0F83E900C0871C023A0D6F6CF380074C7C8700023A117C0F6CF3834CFC8A084391D237C6EA3AD4120829896802876CF3B51343C00E0842FDEF4305C20063232C1540133C5A0824C4B403E8084F2DA84B2C7D48832CFF2FFF25C3EC0244D388860841E8D85A22EA008080809006F35CE6CE4D7C11C3834C1C070C0E4D7C11C3834FFC12F64D7C0DC3800B50C1C25A010086B092E64693A0CC06AC140BD039BE84C645FF81C20002CED44D0D200FA0003A001C8CA0001FA0201CF16C9ED5403E68E4FED44D0D200FA00FA4003B3F2E3EF5350C705F2E1917FC8CA0058FA0201CF1621CF16C9ED54F003F8258210D4CAEDCD708018C8CB055005CF168209312D00FA0214CB6A13CB1F12CB3FCBFFC970FB00DE21821079F937EABAE30221821046ED2E94BA9130E30D8210419D5D4DBA915BE30D0A0B0C00EA10235F03ED44D0D200FA00FA40F0035352C7055162C70516B1F2E191F8258210B6236D63708018C8CB055004CF165005FA0212CB6A13CB1F12CB3F5230CBFFC902B39730318100A0FB00E0018040FB00F8258210B6236D63708018C8CB055004CF1623FA0213CB6A12CB1FCB3FCBFFC98100A0FB000092ED44D0D200FA00FA403002F2E3EB5341C705F2E19120C200998208989680A072FB029130E28210A91BAF56708018C8CB055003CF168209312D00FA0212CB6ACB1FCB3FC98100A0FB0000FA01D430ED44D0D200FA00FA40D3FFD33FD33FFA00D31FD31FD43009F2E3EB53A6C705F2E191544540525BF001F2E3EA22F811F8235003A128B6085331A8018102A3AA1AA984067007A116B609F8237FC8CA0058FA025005CF1613CBFFCB3FCB3F58FA0213CB1F12CB1FCCC9ED54708018C8CB0558CF16CB6EC98042FB000201200F100011BEE6576A2686B8500402012011120033B9241ED44D0D200FA00FA40D3FFD33FD33FFA00D31FD31FF00380017B6E4F0402A483DA87B0D9430001BB7CA50402A483DA87B0B664D8A70} B>boc PUSHREF // data _36=0 _37
|
|
OVER // data _36=0 _37 _38=0
|
|
NEWC // data _36=0 _37 _38=0 _39
|
|
2 STU // data _36=0 _37 _41
|
|
STOPTREF // data _36=0 _42
|
|
s1 s2 XCHG // _36=0 data _42
|
|
STOPTREF // _36=0 _43
|
|
1 STU // _45
|
|
ENDC // state_init
|
|
}>
|
|
deploy_storage_contract PROC:<{
|
|
// client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span
|
|
c4 PUSH // client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span _8
|
|
CTOS // client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span ds
|
|
320 PUSHINT // client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span ds _21
|
|
LDSLICEX // client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span _91 _90
|
|
NIP // client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span ds
|
|
1 LDI // client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span _23 ds
|
|
LDGRAMS // client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span _23 _26 ds
|
|
32 LDU // client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span _23 _26 _28 ds
|
|
64 LDU // client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span _23 _26 _28 _31 ds
|
|
64 LDU // client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span _23 _26 _28 _31 _101 _100
|
|
DROP // client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span accept_new_contracts? rate_per_mb_day max_span minimal_file_size maximal_file_size
|
|
s0 s4 XCHG // client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span maximal_file_size rate_per_mb_day max_span minimal_file_size accept_new_contracts?
|
|
1006 THROWIFNOT
|
|
s8 s(-1) PUXC // client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span maximal_file_size rate_per_mb_day max_span file_size minimal_file_size
|
|
GEQ // client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span maximal_file_size rate_per_mb_day max_span _40
|
|
1004 THROWIFNOT
|
|
s7 s2 PUXC // client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span max_span rate_per_mb_day file_size maximal_file_size
|
|
LEQ // client query_id file_size merkle_hash torrent_hash expected_rate expected_max_span max_span rate_per_mb_day _43
|
|
1005 THROWIFNOT
|
|
s3 s3 XCPU // client query_id file_size merkle_hash torrent_hash rate_per_mb_day expected_max_span max_span expected_rate rate_per_mb_day
|
|
EQUAL // client query_id file_size merkle_hash torrent_hash rate_per_mb_day expected_max_span max_span _46
|
|
1009 THROWIFNOT
|
|
TUCK // client query_id file_size merkle_hash torrent_hash rate_per_mb_day max_span expected_max_span max_span
|
|
EQUAL // client query_id file_size merkle_hash torrent_hash rate_per_mb_day max_span _49
|
|
1009 THROWIFNOT
|
|
2SWAP
|
|
s1 s5 XCHG
|
|
s1 s6 XCHG // query_id merkle_hash file_size rate_per_mb_day max_span client torrent_hash
|
|
build_storage_contract_stateinit CALLDICT // query_id state_init
|
|
3832843761 PUSHINT // query_id state_init _54=3832843761
|
|
6 PUSHINT // query_id state_init _54=3832843761 _57
|
|
24 PUSHINT // query_id state_init _54=3832843761 _57 _58=24
|
|
NEWC // query_id state_init _54=3832843761 _57 _58=24 _59
|
|
6 STU // query_id state_init _54=3832843761 _57 _61
|
|
s3 PUSH // query_id state_init _54=3832843761 _57 _61 state_init
|
|
calculate_address_by_stateinit CALLDICT // query_id state_init _54=3832843761 _57 _61 _62
|
|
STSLICER // query_id state_init _54=3832843761 _57 _63
|
|
0 PUSHINT // query_id state_init _54=3832843761 _57 _63 _64=0
|
|
STGRAMS // query_id state_init _54=3832843761 _57 _65
|
|
108 STU // query_id state_init _54=3832843761 _81
|
|
s1 s2 XCHG // query_id _54=3832843761 state_init _81
|
|
STREF // query_id _54=3832843761 _82
|
|
32 STU // query_id _84
|
|
64 STU // _86
|
|
ENDC // msg
|
|
64 PUSHINT // msg _88=64
|
|
SENDRAWMSG
|
|
}>
|
|
recv_internal PROC:<{
|
|
c2 SAVE
|
|
SAMEALTSAVE // msg_value in_msg_full in_msg_body
|
|
SWAP // msg_value in_msg_body in_msg_full
|
|
CTOS // msg_value in_msg_body cs
|
|
4 LDU // msg_value in_msg_body flags cs
|
|
SWAP
|
|
1 PUSHINT // msg_value in_msg_body cs flags _9=1
|
|
AND // msg_value in_msg_body cs _10
|
|
s2 PUSH // msg_value in_msg_body cs _10 in_msg_body
|
|
SEMPTY // msg_value in_msg_body cs _10 _11
|
|
OR // msg_value in_msg_body cs _12
|
|
IFJMP:<{ // msg_value in_msg_body cs
|
|
3 BLKDROP //
|
|
}> // msg_value in_msg_body cs
|
|
LDMSGADDR // msg_value in_msg_body _141 _140
|
|
DROP // msg_value in_msg_body sender_address
|
|
SWAP // msg_value sender_address in_msg_body
|
|
32 LDU // msg_value sender_address op in_msg_body
|
|
OVER // msg_value sender_address op in_msg_body op
|
|
0 EQINT // msg_value sender_address op in_msg_body _21
|
|
IFJMP:<{ // msg_value sender_address op in_msg_body
|
|
4 BLKDROP //
|
|
}> // msg_value sender_address op in_msg_body
|
|
64 LDU // msg_value sender_address op query_id in_msg_body
|
|
s2 PUSH
|
|
276580847 PUSHINT // msg_value sender_address op query_id in_msg_body op _26=276580847
|
|
EQUAL // msg_value sender_address op query_id in_msg_body _27
|
|
IFJMP:<{ // msg_value sender_address op query_id in_msg_body
|
|
s2 POP // msg_value sender_address in_msg_body query_id
|
|
s0 s3 XCHG
|
|
50000000 PUSHINT // query_id sender_address in_msg_body msg_value _29=50000000
|
|
GEQ // query_id sender_address in_msg_body _30
|
|
1001 THROWIFNOT
|
|
LDREF // query_id sender_address torrent_info in_msg_body
|
|
OVER // query_id sender_address torrent_info in_msg_body torrent_info
|
|
HASHCU // query_id sender_address torrent_info in_msg_body torrent_hash
|
|
s0 s2 XCHG // query_id sender_address torrent_hash in_msg_body torrent_info
|
|
CTOS // query_id sender_address torrent_hash in_msg_body info_cs
|
|
32 PUSHINT // query_id sender_address torrent_hash in_msg_body info_cs _40=32
|
|
SDSKIPFIRST // query_id sender_address torrent_hash in_msg_body info_cs
|
|
64 LDU // query_id sender_address torrent_hash in_msg_body _149 _148
|
|
DROP // query_id sender_address torrent_hash in_msg_body file_size
|
|
SWAP // query_id sender_address torrent_hash file_size in_msg_body
|
|
256 LDU // query_id sender_address torrent_hash file_size merkle_hash in_msg_body
|
|
LDGRAMS // query_id sender_address torrent_hash file_size merkle_hash expected_rate in_msg_body
|
|
32 LDU // query_id sender_address torrent_hash file_size merkle_hash expected_rate _155 _154
|
|
DROP // query_id sender_address torrent_hash file_size merkle_hash expected_rate expected_max_span
|
|
s5 s6 XCHG
|
|
s3 s4 XCHG
|
|
s2 s3 XCHG // sender_address query_id file_size merkle_hash torrent_hash expected_rate expected_max_span
|
|
deploy_storage_contract CALLDICT
|
|
}> // msg_value sender_address op query_id in_msg_body
|
|
NIP
|
|
s3 POP // in_msg_body sender_address op
|
|
DUP
|
|
3055775075 PUSHINT // in_msg_body sender_address op op _58=3055775075
|
|
EQUAL // in_msg_body sender_address op _59
|
|
IFJMP:<{ // in_msg_body sender_address op
|
|
3 BLKDROP //
|
|
}> // in_msg_body sender_address op
|
|
DUP
|
|
1408453846 PUSHINT // in_msg_body sender_address op op _60=1408453846
|
|
EQUAL // in_msg_body sender_address op _61
|
|
IF:<{ // in_msg_body sender_address op
|
|
MYADDR // in_msg_body sender_address op _62
|
|
s2 PUSH // in_msg_body sender_address op _62 sender_address
|
|
SDEQ // in_msg_body sender_address op _63
|
|
NOT // in_msg_body sender_address op _64
|
|
IFJMP:<{ // in_msg_body sender_address op
|
|
3 BLKDROP //
|
|
RETALT
|
|
}> // in_msg_body sender_address op
|
|
c4 PUSH // in_msg_body sender_address op _66
|
|
CTOS // in_msg_body sender_address op ds
|
|
64 LDSLICE // in_msg_body sender_address op _71 ds
|
|
256 LDU // in_msg_body sender_address op _71 _159 _158
|
|
NIP // in_msg_body sender_address op seqno_subwallet non_wallet_data
|
|
s0 s4 XCHG // non_wallet_data sender_address op seqno_subwallet in_msg_body
|
|
256 LDU // non_wallet_data sender_address op seqno_subwallet new_pubkey in_msg_body
|
|
NEWC // non_wallet_data sender_address op seqno_subwallet new_pubkey in_msg_body _83
|
|
s0 s3 XCHG2 // non_wallet_data sender_address op in_msg_body new_pubkey _83 seqno_subwallet
|
|
STSLICER // non_wallet_data sender_address op in_msg_body new_pubkey _84
|
|
256 STU // non_wallet_data sender_address op in_msg_body _86
|
|
s0 s4 XCHG2 // in_msg_body sender_address op _86 non_wallet_data
|
|
STSLICER // in_msg_body sender_address op _87
|
|
ENDC // in_msg_body sender_address op _88
|
|
c4 POP
|
|
}> // in_msg_body sender_address op
|
|
1422651803 PUSHINT // in_msg_body sender_address op _90=1422651803
|
|
EQUAL // in_msg_body sender_address _91
|
|
IF:<{ // in_msg_body sender_address
|
|
MYADDR // in_msg_body sender_address _92
|
|
SWAP // in_msg_body _92 sender_address
|
|
SDEQ // in_msg_body _93
|
|
NOT // in_msg_body _94
|
|
IFJMP:<{ // in_msg_body
|
|
DROP //
|
|
RETALT
|
|
}> // in_msg_body
|
|
c4 PUSH // in_msg_body _96
|
|
CTOS // in_msg_body ds
|
|
320 PUSHINT // in_msg_body ds _104
|
|
LDSLICEX // in_msg_body _163 _162
|
|
DROP // in_msg_body wallet_data
|
|
SWAP // wallet_data in_msg_body
|
|
1 LDI // wallet_data _111 in_msg_body
|
|
LDGRAMS // wallet_data _111 _114 in_msg_body
|
|
32 LDU // wallet_data _111 _114 _116 in_msg_body
|
|
64 LDU // wallet_data _111 _114 _116 _119 in_msg_body
|
|
64 LDU // wallet_data _111 _114 _116 _119 _173 _172
|
|
DROP // wallet_data accept_new_contracts? rate_per_mb_day max_span minimal_file_size maximal_file_size
|
|
NEWC // wallet_data accept_new_contracts? rate_per_mb_day max_span minimal_file_size maximal_file_size _125
|
|
s0 s6 XCHG2 // maximal_file_size accept_new_contracts? rate_per_mb_day max_span minimal_file_size _125 wallet_data
|
|
STSLICER // maximal_file_size accept_new_contracts? rate_per_mb_day max_span minimal_file_size _126
|
|
s1 s4 XCHG // maximal_file_size minimal_file_size rate_per_mb_day max_span accept_new_contracts? _126
|
|
1 STI // maximal_file_size minimal_file_size rate_per_mb_day max_span _128
|
|
ROT // maximal_file_size minimal_file_size max_span _128 rate_per_mb_day
|
|
STGRAMS // maximal_file_size minimal_file_size max_span _129
|
|
32 STU // maximal_file_size minimal_file_size _131
|
|
64 STU // maximal_file_size _133
|
|
64 STU // _135
|
|
ENDC // _136
|
|
c4 POP
|
|
}>ELSE<{
|
|
2DROP //
|
|
}>
|
|
}>
|
|
recv_external PROC:<{
|
|
// in_msg
|
|
9 PUSHPOW2 // in_msg _3=512
|
|
LDSLICEX // signature in_msg
|
|
DUP // signature in_msg cs
|
|
32 LDU // signature in_msg _9 cs
|
|
32 LDU // signature in_msg _9 _12 cs
|
|
32 LDU // signature in_msg subwallet_id valid_until msg_seqno cs
|
|
s0 s2 XCHG
|
|
NOW // signature in_msg subwallet_id cs msg_seqno valid_until _19
|
|
LEQ // signature in_msg subwallet_id cs msg_seqno _20
|
|
35 THROWIF
|
|
c4 PUSH // signature in_msg subwallet_id cs msg_seqno _23
|
|
CTOS // signature in_msg subwallet_id cs msg_seqno ds
|
|
32 LDU // signature in_msg subwallet_id cs msg_seqno _29 ds
|
|
32 LDU // signature in_msg subwallet_id cs msg_seqno _29 _32 ds
|
|
256 LDU // signature in_msg subwallet_id cs msg_seqno stored_seqno stored_subwallet public_key non_wallet_data
|
|
s4 s3 XCPU // signature in_msg subwallet_id cs non_wallet_data stored_seqno stored_subwallet public_key msg_seqno stored_seqno
|
|
EQUAL // signature in_msg subwallet_id cs non_wallet_data stored_seqno stored_subwallet public_key _39
|
|
33 THROWIFNOT
|
|
s5 s1 XCPU // signature in_msg public_key cs non_wallet_data stored_seqno stored_subwallet subwallet_id stored_subwallet
|
|
EQUAL // signature in_msg public_key cs non_wallet_data stored_seqno stored_subwallet _42
|
|
34 THROWIFNOT
|
|
s0 s5 XCHG // signature stored_subwallet public_key cs non_wallet_data stored_seqno in_msg
|
|
HASHSU // signature stored_subwallet public_key cs non_wallet_data stored_seqno _45
|
|
s0 s6 s4 XC2PU // stored_seqno stored_subwallet public_key cs non_wallet_data _45 signature public_key
|
|
CHKSIGNU // stored_seqno stored_subwallet public_key cs non_wallet_data _46
|
|
35 THROWIFNOT
|
|
ACCEPT
|
|
SWAP // stored_seqno stored_subwallet public_key non_wallet_data cs
|
|
WHILE:<{
|
|
DUP // stored_seqno stored_subwallet public_key non_wallet_data cs cs
|
|
SREFS // stored_seqno stored_subwallet public_key non_wallet_data cs _51
|
|
}>DO<{ // stored_seqno stored_subwallet public_key non_wallet_data cs
|
|
8 LDU // stored_seqno stored_subwallet public_key non_wallet_data mode cs
|
|
LDREF // stored_seqno stored_subwallet public_key non_wallet_data mode _56 cs
|
|
s0 s2 XCHG // stored_seqno stored_subwallet public_key non_wallet_data cs _56 mode
|
|
SENDRAWMSG
|
|
}> // stored_seqno stored_subwallet public_key non_wallet_data cs
|
|
DROP // stored_seqno stored_subwallet public_key non_wallet_data
|
|
s0 s3 XCHG // non_wallet_data stored_subwallet public_key stored_seqno
|
|
INC // non_wallet_data stored_subwallet public_key _60
|
|
NEWC // non_wallet_data stored_subwallet public_key _60 _61
|
|
32 STU // non_wallet_data stored_subwallet public_key _63
|
|
s1 s2 XCHG // non_wallet_data public_key stored_subwallet _63
|
|
32 STU // non_wallet_data public_key _65
|
|
256 STU // non_wallet_data _67
|
|
SWAP // _67 non_wallet_data
|
|
STSLICER // _68
|
|
ENDC // _69
|
|
c4 POP
|
|
}>
|
|
seqno PROC:<{
|
|
//
|
|
c4 PUSH // _0
|
|
CTOS // _1
|
|
32 PLDU // _3
|
|
}>
|
|
get_public_key PROC:<{
|
|
//
|
|
c4 PUSH // _1
|
|
CTOS // cs
|
|
64 LDU // _9 _8
|
|
NIP // cs
|
|
256 PLDU // _7
|
|
}>
|
|
get_wallet_params PROC:<{
|
|
//
|
|
c4 PUSH // _1
|
|
CTOS // ds
|
|
32 LDU // _6 ds
|
|
32 LDU // _6 _9 ds
|
|
256 LDU // _6 _9 _20 _19
|
|
DROP // stored_seqno stored_subwallet public_key
|
|
}>
|
|
get_storage_params PROC:<{
|
|
//
|
|
c4 PUSH // _1
|
|
CTOS // ds
|
|
320 PUSHINT // ds _14
|
|
LDSLICEX // _31 _30
|
|
NIP // ds
|
|
1 LDI // _16 ds
|
|
LDGRAMS // _16 _19 ds
|
|
32 LDU // _16 _19 _21 ds
|
|
64 LDU // _16 _19 _21 _24 ds
|
|
64 LDU // _16 _19 _21 _24 _41 _40
|
|
DROP // accept_new_contracts? rate_per_mb_day max_span minimal_file_size maximal_file_size
|
|
}>
|
|
get_storage_contract_address PROC:<{
|
|
// merkle_hash file_size client torrent_hash
|
|
get_storage_params CALLDICT // merkle_hash file_size client torrent_hash _13 _14 _15 _16 _17
|
|
2DROP
|
|
s2 POP // merkle_hash file_size client torrent_hash max_span rate_per_mb_day
|
|
s1 s3 s3 XCHG3 // merkle_hash file_size rate_per_mb_day max_span client torrent_hash
|
|
build_storage_contract_stateinit CALLDICT // state_init
|
|
calculate_address_by_stateinit CALLDICT // _12
|
|
}>
|
|
}END>c
|