forked from tonkeeper/tongo
-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtransactions_test.go
139 lines (132 loc) · 27.9 KB
/
transactions_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
package tlb
import (
"bytes"
"encoding/base64"
"encoding/hex"
"testing"
"github.com/tonkeeper/tongo/boc"
)
func TestTransaction(t *testing.T) {
raws := []string{
"B5EE9C724102070100019E0003B57E2D41ED396A9F1BA03839D63C5650FAFC6FCFB574FD03F2E67D6555B61A3ACD9000019FA692BDA4ABF09A2C354F195AE4CCC0E0823A64BE24A61AC5DE7B117144D0A25CF0B7284CA000019FA692BDA41629F85660001461E3E3080102030101A004008272351FDFE28574AE29FC95C113A819FD8D4609355948EFD527F8A97C4F1F883F9AB9FB184CCAC0504709880BEF9DF17E51F44D62273B1886FE1F45D4268A31439F02150C090E8BFC2B5861E3E311050600C948008DBE435819EC7BFAE0721AA85A4D01BC6414619B03A6FAEC7AF93C2FE48234030038B507B4E5AA7C6E80E0E758F15943EBF1BF3ED5D3F40FCB99F59556D868EB3650E8BFC2B406145860000033F4D257B492C53F0ACC6A993B6D800000000000000040009E407BEC3B957000000000000000001D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005BC00000000000000000000000012D452DA449E50B8CF7DD27861F146122AFE1B546BB8B70FC8216F0C614139F8E0426B8C2D6",
"B5EE9C7241020A0100024A0003B57E2D41ED396A9F1BA03839D63C5650FAFC6FCFB574FD03F2E67D6555B61A3ACD9000019FA692BDA41C0C3B53376473958A45DB5C122EE5EC7B5DBD6AFEA1B51BE8D894E85377C79CE000019FA6621A78A629F85660003469DA27880102030201E004050082728734D5189F3298FD505CEC1E2ECE027B7361F9A47A3D0221C0D556E023DC4D5F351FDFE28574AE29FC95C113A819FD8D4609355948EFD527F8A97C4F1F883F9A020F0C4B061993CF0440080901E18801C5A83DA72D53E37407073AC78ACA1F5F8DF9F6AE9FA07E5CCFACAAB6C34759B2047002A1C28BCD96496121965C341237AFD99C4EC31F5098D0EDEDA5D307B2EBA42DC340251441D16C3A069BFE20751C08B7DDC83067DAECB7D9071A260CEE68314D4D18BB14FC2CF800000020001C060101DF07006A6200574BA8A53890BF135A88D761900EE44F40247050298824D3617C3FFFB89E46EAA812A05F20000000000000000000000000000000B36801C5A83DA72D53E37407073AC78ACA1F5F8DF9F6AE9FA07E5CCFACAAB6C34759B3002BA5D4529C485F89AD446BB0C8077227A012382814C41269B0BE1FFFDC4F23755409502F900006145860000033F4D257B484C53F0ACC40009D419D8313880000000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020006FC987A1204C14584000000000000200000000000357D3046A89BB7B0F886158490114F4AC5E3B1FF7FB5F6BE1CDE59B14D6C616044050164C765B14EE",
"B5EE9C724102070100019E0003B57E2D41ED396A9F1BA03839D63C5650FAFC6FCFB574FD03F2E67D6555B61A3ACD9000019FA6621A78A8ECF33C9DA783435971609355882C0A5C41F801BF4077AE8435C65217171707C000019FA6621A781629F84BB0001461E3E3080102030101A0040082720968F8B82A52012B3804582229A4F4DB6C5F15F51D2C1CDF315BFA27A5817DDF8734D5189F3298FD505CEC1E2ECE027B7361F9A47A3D0221C0D556E023DC4D5F02150C090E8BFC159861E3E311050600C948014CB767011CEA403ACBAC14157827A428B9352A5441592BCAB8AE43F17808DE550038B507B4E5AA7C6E80E0E758F15943EBF1BF3ED5D3F40FCB99F59556D868EB3650E8BFC15806145860000033F4CC434F12C53F09766A993B6D800000000000000040009E407BEC3B957000000000000000001D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005BC00000000000000000000000012D452DA449E50B8CF7DD27861F146122AFE1B546BB8B70FC8216F0C614139F8E0428010D9C",
"B5EE9C7241020A0100024A0003B57E2D41ED396A9F1BA03839D63C5650FAFC6FCFB574FD03F2E67D6555B61A3ACD9000019FA6621A781C88C4980560921FB2EB370442015BE102D15E6007E87E9731FBF246A49C465D2000019FA65891103629F84BB0003469DA23080102030201E00405008272F7A9A2C4EC2C12B6E528616A064D05801241FADE1943D04C313D739A23B7BB110968F8B82A52012B3804582229A4F4DB6C5F15F51D2C1CDF315BFA27A5817DDF020F0C42061993CF0440080901E18801C5A83DA72D53E37407073AC78ACA1F5F8DF9F6AE9FA07E5CCFACAAB6C34759B2070B299794DC3508214317E3AF7D7C5360FC13A650D888EB75D167700AE6DBA455C177C79D5B1EA09ACE5D6C99A5F206071C4412033D4E1DB522147D7A2D9C98214D4D18BB14FC279800000018001C060101DF07006A620064513C7F20CA85F3F39F5B67BC658B38E8F578DC8C880F8D3DDE49A51A2936852812A05F20000000000000000000000000000000B36801C5A83DA72D53E37407073AC78ACA1F5F8DF9F6AE9FA07E5CCFACAAB6C34759B30032289E3F906542F9F9CFADB3DE32C59C747ABC6E464407C69EEF24D28D149B429409502F900006145860000033F4CC434F04C53F097640009D419D8313880000000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020006FC987A1204C1458400000000000020000000000020191ACAB2EF4AA394A6393A9F58ACF5A9F9BE21D2E852000E3C7E8D35EA098A84050164C2311E385",
"B5EE9C72410207010001BB0003B57E2D41ED396A9F1BA03839D63C5650FAFC6FCFB574FD03F2E67D6555B61A3ACD9000019FA658911039586CD2720942004B90DDB32D11CA67E646F25607D1327CA58364D96FDA4E174000019F9EFE0378A629F849D0001461E4A9C80102030101A004008272CDCA8F857CC154D8E972F217028DBBC1009A4FDCF690A66346845565A8052CBBF7A9A2C4EC2C12B6E528616A064D05801241FADE1943D04C313D739A23B7BB11021B04818D8941294735E01861E3E311050600FD68015B15FD9F59849132D10BB17CD048501F3E74FCA985EC1016F2E373EAAD8501890038B507B4E5AA7C6E80E0E758F15943EBF1BF3ED5D3F40FCB99F59556D868EB36541294735E0006145860000033F4CB122204C53F093A0000000025381AABAB22379AB82329B2A799A6ACB6982B37AA9C33B93B2C25A437399B3BB3C0009E407BEC3D090000000000000000001D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005BC00000000000000000000000012D452DA449E50B8CF7DD27861F146122AFE1B546BB8B70FC8216F0C614139F8E04F29A27EA",
"B5EE9C724102070100019E0003B57E2D41ED396A9F1BA03839D63C5650FAFC6FCFB574FD03F2E67D6555B61A3ACD9000019F9EFE0378A98A675374933D78182010C68C82F68C944326EB6B04325958D44E224D2A88AE0000019F9EFE03781629F6C3C0001461E3E3080102030101A00400827210995FC56AE7380A6C14A2046072BFB7302F1337C4D0F98453AA599966329903CDCA8F857CC154D8E972F217028DBBC1009A4FDCF690A66346845565A8052CBB02150C090E8B83449861E3E311050600C948010097701E3166321D05B45B02B3B30ABF5D2B002D1E2D1D292FAE33504E25BCEB0038B507B4E5AA7C6E80E0E758F15943EBF1BF3ED5D3F40FCB99F59556D868EB3650E8B8344806145860000033F3DFC06F12C53ED8786A993B6D800000000000000040009E407BEC3B938000000000000000001D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005BC00000000000000000000000012D452DA449E50B8CF7DD27861F146122AFE1B546BB8B70FC8216F0C614139F8E0441F23A0F",
"B5EE9C7241020A0100024A0003B57E2D41ED396A9F1BA03839D63C5650FAFC6FCFB574FD03F2E67D6555B61A3ACD9000019F9EFE03781B73157044024B9565AF6A104D733E2DE4DFB38D527DDC3D03C3BD6882EF5072D000019F9ED40D483629F6C3C0003469DA26A80102030201E004050082728477F4FA5164D3263DC8857520DFEC604592811A1EED7400A87DE55D1175A72B10995FC56AE7380A6C14A2046072BFB7302F1337C4D0F98453AA599966329903020F0C49461993CF0440080901E18801C5A83DA72D53E37407073AC78ACA1F5F8DF9F6AE9FA07E5CCFACAAB6C34759B201DBE512EFC8EF606225A6C57CBED1497D1271674C6AF497573F825665646513A09D27529C0BEB3AFA4C7CD1EDFD45BFDAD7DE230C7D25DCCB17FE37BD3AFD88194D4D18BB14FB63B800000010001C060101DF07006A620011CC6DA4CF196C32B47F572F585D8C6D39E7AD9111FE4895607A05F32F532A7AA837E11D60000000000000000000000000000000B36801C5A83DA72D53E37407073AC78ACA1F5F8DF9F6AE9FA07E5CCFACAAB6C34759B30008E636D2678CB6195A3FAB97AC2EC6369CF3D6C888FF244AB03D02F997A9953D541BF08EB00006145860000033F3DFC06F04C53ED87840009D419D8313880000000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020006FC987A1204C1458400000000000020000000000031D69B372433EE36EC9EF887FA5D98FBE8E970360D5CCA10BCF59BB25EB67F8E24050164C6A57D980",
"B5EE9C72410207010001BB0003B57E2D41ED396A9F1BA03839D63C5650FAFC6FCFB574FD03F2E67D6555B61A3ACD9000019F9ED40D483BF59787A25CBA9A778E9929946729109135A592A5FE32242A64DE2C294C761CF000019F557EF9143629F6BAE0001461EB92A80102030101A00400827201D7F9117090377924704DAE17A9469D7D04AA08CCFAA858002AC899ABDE63C68477F4FA5164D3263DC8857520DFEC604592811A1EED7400A87DE55D1175A72B021B048F5F4941AF637C601861E3E311050600FD68015B15FD9F59849132D10BB17CD048501F3E74FCA985EC1016F2E373EAAD8501890038B507B4E5AA7C6E80E0E758F15943EBF1BF3ED5D3F40FCB99F59556D868EB36541AF637C60006145860000033F3DA81A904C53ED75C000000002129BC3921263BABBB19219AB83D2D389A1C1AB733B29832B82337B098B1249C3BC0009E407BEC3D090000000000000000001D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005BC00000000000000000000000012D452DA449E50B8CF7DD27861F146122AFE1B546BB8B70FC8216F0C614139F8E048BFCFDBD",
"B5EE9C72410208010002100003B57E2D41ED396A9F1BA03839D63C5650FAFC6FCFB574FD03F2E67D6555B61A3ACD9000019F557EF9143E2B3016DF34CE9F33355E5A6D987F4B46932BA2ADBABEA3DC3C2A75A493EE23D000019F475CBB8CA629E7A390001461E55A880102030101A0040082723DA82DE79256E1C5E53226A973A301C96F658738FEF461F1226896E1E3A47D4901D7F9117090377924704DAE17A9469D7D04AA08CCFAA858002AC899ABDE63C602170482EF08C3D0901861E3E311060701FD680180E2C038127B58AF50A84F9C35736A1CF3607137AC82BACC9D4506F5D31BA2350038B507B4E5AA7C6E80E0E758F15943EBF1BF3ED5D3F40FCB99F59556D868EB364C3D0900062436E8000033EAAFDF2284C53CF4720000000021B7B733B930BA3AB630BA34B7B73990902CB7BAB9103BB0B63632BA1031B0B7103132C00500AA636F6D6520612076616C696461746F722E2053656E64203130206F72206D6F726520544F4E7320746F20746869732077616C6C657420616E6420676574206261636B20646F75626C652074686520616D6F756E742E009C407BE80FA000000000000000001D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005BC00000000000000000000000012D452DA449E50B8CF7DD27861F146122AFE1B546BB8B70FC8216F0C614139F8E04CE0DEAFD",
"B5EE9C724102070100019E0003B57E2D41ED396A9F1BA03839D63C5650FAFC6FCFB574FD03F2E67D6555B61A3ACD9000019F475CBB8CAEBEF77A6AFEE86194E279BFBBD1CE400088678F6744AB02D39969812180C3FEA000019F475CBB8C1629E4C270001461E3E3080102030101A0040082727666CBFC448ED2A4F51DB265AA4495B1DAB228C2C7248B3B0070CE479610C4493DA82DE79256E1C5E53226A973A301C96F658738FEF461F1226896E1E3A47D4902150C090E8BD8529861E3E311050600C9480149492A0D9A1EB8C8850D17BD7825A30C2040274CF68C1532EFD95A7976D5C6350038B507B4E5AA7C6E80E0E758F15943EBF1BF3ED5D3F40FCB99F59556D868EB3650E8BD852806145860000033E8EB977192C53C984E6A993B6D800000000000000040009E407BEC3B94DC00000000000000001D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005BC00000000000000000000000012D452DA449E50B8CF7DD27861F146122AFE1B546BB8B70FC8216F0C614139F8E041AC22B78",
"B5EE9C7241020A0100024A0003B57E2D41ED396A9F1BA03839D63C5650FAFC6FCFB574FD03F2E67D6555B61A3ACD9000019F475CBB8C1B4FFEF3E3C3DDA9C379A3C2C876DB4A4F83F989321F3C1A7D153EC2D43CDBC97000019F46D3674C3629E4C270003469DA30880102030201E004050082727B2F7A66D6B0062707A0624C0FC356E365C5C7994746D90951351F994F1907E67666CBFC448ED2A4F51DB265AA4495B1DAB228C2C7248B3B0070CE479610C449020F0C5D061993CF0440080901E18801C5A83DA72D53E37407073AC78ACA1F5F8DF9F6AE9FA07E5CCFACAAB6C34759B2000B1FB9834123F7B68BD5AF59F0A7DFCD3F9CE4DE9D73138A048F1D5842A4DE636B1FBAF2E1996383407D636C8CDF1ABF05B81E6884FD1FFA4262DE676EC428014D4D18BB14F2630000000008001C060101DF07006A62002636D081B218EBD176444980D2C8C98B41C09970CB17C85114E2A69EC10E7D86A8342770C0000000000000000000000000000000B36801C5A83DA72D53E37407073AC78ACA1F5F8DF9F6AE9FA07E5CCFACAAB6C34759B300131B6840D90C75E8BB2224C0696464C5A0E04CB8658BE4288A71534F60873EC3541A13B8600006145860000033E8EB977184C53C984E40009D419D8313880000000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020006FC987A1204C145840000000000002000000000002B49EFF832E39B005BF60855B9E03BA256098F40AA46726A33982D9CD62B3D7A24050164C441DC343",
"B5EE9C72410207010001BB0003B57E2D41ED396A9F1BA03839D63C5650FAFC6FCFB574FD03F2E67D6555B61A3ACD9000019F46D3674C3283BA08C251713FF4F79F82E16F51F8E5E8020FE8D34EBACAAFB7C99DE966996000019F39005170B629E4A630001461E555880102030101A004008272B7C2F59AE35537C078130EFFBF8C88E57D927C2E4EEF5902C0C6ED06B822E6497B2F7A66D6B0062707A0624C0FC356E365C5C7994746D90951351F994F1907E6021B0482E50941A07CC9E01861E3E311050600FD68015B15FD9F59849132D10BB17CD048501F3E74FCA985EC1016F2E373EAAD8501890038B507B4E5AA7C6E80E0E758F15943EBF1BF3ED5D3F40FCB99F59556D868EB36541A07CC9E0006145860000033E8DA6CE984C53C94C600000000252A982C3418B3B73BB8A9193725B9B3A834A4BD24B7A1BCBD2B98B7B42728BCA840009E407BEC3D090000000000000000001D00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005BC00000000000000000000000012D452DA449E50B8CF7DD27861F146122AFE1B546BB8B70FC8216F0C614139F8E04549BCA66",
"B5EE9C72410206010001680003B17E2D41ED396A9F1BA03839D63C5650FAFC6FCFB574FD03F2E67D6555B61A3ACD9000019F39005170B3C0F17999998E7123582C46C4FA3B0FCCF60AD1026153810351DBC44B51C3214000019F38E1CCF01629E1CED0001423880102030101A0040082722674047D82963C6D908B2E928B5623A0144A91A1203FF25084A9F6FCBB4DAB7AB7C2F59AE35537C078130EFFBF8C88E57D927C2E4EEF5902C0C6ED06B822E64900130447084289A0187A120201AB68014B33A671D0A910CC718D88F10867B738CA931D3574048A4C0A39EAE08F0D37910038B507B4E5AA7C6E80E0E758F15943EBF1BF3ED5D3F40FCB99F59556D868EB36442806255A94000033E7200A2E14C53C39DAC00500B800000000596F7520627579203120444F4F444C4553204E4654732E20596F752063616E2062757920757020746F2032204E46547320666F7220323920544F4E20656163682E20506179206F6E6C7920746869732061646472657373213CA21DFC",
"B5EE9C7241021F0100054D0003B57E2D41ED396A9F1BA03839D63C5650FAFC6FCFB574FD03F2E67D6555B61A3ACD9000019F38E1CCF015E022A5B91C74F1742A0639E9E13A589A8ABD8F6DB6B2F3F53F0F55C6E51F57C000019F063E816C3629E1C820002478814E280102030201E004050082724F92D71769A5FCC462F856737058DE341964973671B2814289053E979A5181DD2674047D82963C6D908B2E928B5623A0144A91A1203FF25084A9F6FCBB4DAB7A02110C8064461993CF04401D1E03E38801C5A83DA72D53E37407073AC78ACA1F5F8DF9F6AE9FA07E5CCFACAAB6C34759B2119E8AAAA9F47D47F446C376BBD369E436953DF041FCA9F03E8F6FDA52B02D50795C346475CC01E0E570B5D064105DFB767AC34F427692286E2121A36139EA55C045353462FFFFFFFFE00000000000700607080101DF1C0114FF00F4A413F4BCF2C80B0900510000000029A9A317353B9FB25FE4C26C19FC097E569133A115E61EC6BB8B97082EB7F3AFEA6959D940006A42001099CD53AF983DC0A7D250FA361B4F719CBDD85693C2CCED413FF384D5515616A85B45055000000000000000000000000000000201200A0B0201480C0D04F8F28308D71820D31FD31FD31F02F823BBF264ED44D0D31FD31FD3FFF404D15143BAF2A15151BAF2A205F901541064F910F2A3F80024A4C8CB1F5240CB1F5230CBFF5210F400C9ED54F80F01D30721C0009F6C519320D74A96D307D402FB00E830E021C001E30021C002E30001C0039130E30D03A4C8CB1F12CB1FCBFF18191A1B02E6D001D0D3032171B0925F04E022D749C120925F04E002D31F218210706C7567BD22821064737472BDB0925F05E003FA403020FA4401C8CA07CBFFC9D0ED44D0810140D721F404305C810108F40A6FA131B3925F07E005D33FC8258210706C7567BA923830E30D03821064737472BA925F06E30D0E0F0201201011007801FA00F40430F8276F2230500AA121BEF2E0508210706C7567831EB17080185004CB0526CF1658FA0219F400CB6917CB1F5260CB3F20C98040FB0006008A5004810108F45930ED44D0810140D720C801CF16F400C9ED540172B08E23821064737472831EB17080185005CB055003CF1623FA0213CB6ACB1FCB3FC98040FB00925F03E202012012130059BD242B6F6A2684080A06B90FA0218470D4080847A4937D29910CE6903E9FF9837812801B7810148987159F318402015814150011B8C97ED44D0D70B1F8003DB29DFB513420405035C87D010C00B23281F2FFF274006040423D029BE84C6002012016170019ADCE76A26840206B90EB85FFC00019AF1DF6A26840106B90EB858FC0006ED207FA00D4D422F90005C8CA0715CBFFC9D077748018C8CB05CB0222CF165005FA0214CB6B12CCCCC973FB00C84014810108F451F2A7020070810108D718FA00D33FC8542047810108F451F2A782106E6F746570748018C8CB05CB025006CF165004FA0214CB6A12CB1FCB3FC973FB0002006C810108D718FA00D33F305224810108F459F2A782106473747270748018C8CB05CB025005CF165003FA0213CB6ACB1F12CB3FC973FB00000AF400C9ED5400B34801C5A83DA72D53E37407073AC78ACA1F5F8DF9F6AE9FA07E5CCFACAAB6C34759B300084CE6A9D7CC1EE053E9287D1B0DA7B8CE5EEC2B49E16676A09FF9C26AA8AB0B542DA282A80006145860000033E71C399E04C53C390440009D419D8313880000000000000000110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020006FC987A1204C1458400000000000020000000000037870D49EABE0F8682BD1A0956757634A7F8325038928DFF0A9C8195A38E618DE4050164C9C446231",
"B5EE9C72410205010001320003B17E2D41ED396A9F1BA03839D63C5650FAFC6FCFB574FD03F2E67D6555B61A3ACD9000019F063E816C3A1B9AD208D5EA25C8D951895EACB173C454F6DDBCF0AC775B4141FBC8B6595FF000019F04535D003629D74D70000021E80102030101A004008272645A1259603DA46CAC888F1CD0952819DFCBDC56CF07E793171157BFEAF571554F92D71769A5FCC462F856737058DE341964973671B2814289053E979A5181DD00130C43C942D9696E60012000FD48015B15FD9F59849132D10BB17CD048501F3E74FCA985EC1016F2E373EAAD8501890038B507B4E5AA7C6E80E0E758F15943EBF1BF3ED5D3F40FCB99F59556D868EB36542D9696E60006145860000033E0C7D02D84C53AE9AE000000001BB4B8329C9AACBBB1B1BD1B3826A21AACB6A421A728293918193529AC342B221BC0F747A97A",
"B5EE9C724102050100012E0003AF7E2D41ED396A9F1BA03839D63C5650FAFC6FCFB574FD03F2E67D6555B61A3ACD9000019F04535D00300000000000000000000000000000000000000000000000000000000000000000000000000000000629D6E9800018080102030101A00400827290AEC8965AFABB16EBC3CB9B408EBAE71B618D78788BC80D09843593CAC98DA4645A1259603DA46CAC888F1CD0952819DFCBDC56CF07E793171157BFEAF57155000F0C09103E0520012000FB48015B15FD9F59849132D10BB17CD048501F3E74FCA985EC1016F2E373EAAD8501890038B507B4E5AA7C6E80E0E758F15943EBF1BF3ED5D3F40FCB99F59556D868EB365103E0520006145860000033E08A6BA004C53ADD30000000001BAC3D21B4A234BCB0B224A72C189CA1AAB7B99AB69C3D1C99A918382424A43CB340499CFBDA",
}
for _, raw := range raws {
data, _ := hex.DecodeString(raw)
cells, _ := boc.DeserializeBoc(data)
c := cells[0]
var res Transaction
err := Unmarshal(c, &res)
if err != nil {
t.Fatalf("error: %v", err)
}
}
}
func TestHash(t *testing.T) {
x := "te6cckECCAEAAZkAA7VyzztbjIkeUXya3b2hwDhqCcysuw4/r2MLUc/IFSMlrLAAAcSVENDIO0ulKYzrTlmiNRXkGLFdGNn/eBU07TBAphg1EPL5+s7wAAHElRDQyBYxzmywABRh4+MIAQIDAQGgBACCcqRkxc3ndkunH7pmcFEiC0V1J2XkyTytfZ7ShtF6FwwaP6aF5BOg+iLWKexG74ZcfOAYEGQQnKCJMQHi2mfWdSICFQQJAX14QBhh4+MRBgcBsWgAWedrcZEjyi+TW7e0OAcNQTmVl2HH9exhajn5AqRktZcACzztbjIkeUXya3b2hwDhqCcysuw4/r2MLUc/IFSMlrLQF9eEAAYXB+IAADiSohoZBMY5zZbABQAIAAAAAACeQHvsBhqAAAAAAAAAAAAdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbwAAAAAAAAAAAAAAAAS1FLaRJ5QuM990nhh8UYSKv4bVGu4tw/IIW8MYUE5+OBIYFTXM="
hash, _ := base64.StdEncoding.DecodeString("Jp/Bb3mkWrVl718uqtrKCJ8CVOCUmqi5dSyJ/qX4Zes=")
b, _ := base64.StdEncoding.DecodeString(x)
cells, _ := boc.DeserializeBoc(b)
h, _ := cells[0].Hash()
if !bytes.Equal(hash, h) {
t.Fatalf("Hash mismatch.\nOriginal: %x\nCalculated: %x", hash, h)
}
}
func TestComputeSkipReason_MarshalTLB(t *testing.T) {
tests := []struct {
reason ComputeSkipReason
}{
{reason: ComputeSkipReasonNoGas},
{reason: ComputeSkipReasonNoState},
{reason: ComputeSkipReasonBadState},
}
for _, tt := range tests {
t.Run(string(tt.reason), func(t *testing.T) {
c := boc.NewCell()
err := tt.reason.MarshalTLB(c, &Encoder{})
if err != nil {
t.Errorf("MarshalTLB() error = %v", err)
}
c.ResetCounters()
var reason ComputeSkipReason
err = (&reason).UnmarshalTLB(c, &Decoder{})
if err != nil {
t.Errorf("UnmarshalTLB() error = %v", err)
}
if tt.reason != reason {
t.Fail()
}
})
}
}
func TestAccStatusChange_MarshalTLB(t *testing.T) {
tests := []struct {
status AccStatusChange
}{
{status: AccStatusChangeDeleted},
{status: AccStatusChangeFrozen},
{status: AccStatusChangeUnchanged},
}
for _, tt := range tests {
t.Run(string(tt.status), func(t *testing.T) {
c := boc.NewCell()
err := tt.status.MarshalTLB(c, &Encoder{})
if err != nil {
t.Errorf("MarshalTLB() error = %v", err)
}
c.ResetCounters()
var status AccStatusChange
err = (&status).UnmarshalTLB(c, &Decoder{})
if err != nil {
t.Errorf("UnmarshalTLB() error = %v", err)
}
if tt.status != status {
t.Fail()
}
})
}
}
func TestTransaction_IsSuccess(t *testing.T) {
cases := []struct {
success bool
data string
}{
{true, "b5ee9c72010205010001100003b179d4470b8c632cd8c9ac7f17423ddb5163374b9b2074591904a6a93dd472b3b9d0000096e43c47103e2b22eb6e3d218b8c7548bf8db61d2e790c5cce40b8c5a7d29fc72f0f64831d90000096dd9d992c3642f46d40000026080103040101a00200bd48008a226d8c0258eff7483149f720014819ad9bec03e948b66dd800755bbb6507290027511c2e318cb36326b1fc5d08f76d458cdd2e6c81d16464129aa4f751cacee74cb71b0006145860000012dc8788e204c85e8da80000000018991ac00082722729e6b207d8b9e4c2f9d0a516a5180dd1066f90c6b82c8475a48b21a682d20cfc687918887fbb17f799fff9bbcee114978fab53774709c2d3da6ab4162a916d000f0c4c08cb71b00120"},
{false, "b5ee9c72010207010001920003b5703d361e29ab1e8d41751f2d97f8d8d0641edfd9d6c98fc966278594427e0edb9000009648719e2037c6aa419075443939d655a71a490e3448f16c318c9ab65c9ebcdf707ce111ea100000964615f11c3642d699f0001461f486480103040101a00200b16800451647aa609a80380fa00c6392984ff6f5520504590b312744777c66bf844d970000f4d878a6ac7a3505d47cb65fe36341907b7f675b263f25989e165109f83b6e500e4e1c0006145860000012c90e33c404c85ad33e40008272fb7ce413c02d273716cb34107d93e004604f865ee332538016ae25701a6f642bbb498446e3b55fcddc0648662e124d17b85f6b6a76aba39ff7c532d4de7823bd021704528900e4e1c01861f47d110506009c40802ba98000000109ec0000000e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005bc00000000000000000000000012d452da449e50b8cf7dd27861f146122afe1b546bb8b70fc8216f0c614139f8e04"},
{true, "b5ee9c7201020b010002590003b57451136c6012c77fba418a4fb9000a40cd6cdf601f4a45b36ec003aadddb283940000096e4c4a72c10c865e85e3581124a7dd650ae7e5d4ceca24b776f6d4a430a7273bd7384c82750000096e49c99441642f487a00034712748080107080201e0020501dd88008a226d8c0258eff7483149f720014819ad9bec03e948b66dd800755bbb65072804d87ab38628ec3ba49563ddddaaafa5356308604397f188dd335d9a408f719d1ef197c01a78247ebad416b780ead1c9b5764f787054d3744e954953aaecb338714d4d18bb217a49678629a0f6030107a000000304007442004ea2385c631966c64d63f8ba11eeda8b19ba5cd903a2c8c8253549eea3959dce996e360000000000000000000000000000000000003132360101df0600bd48008a226d8c0258eff7483149f720014819ad9bec03e948b66dd800755bbb6507290027511c2e318cb36326b1fc5d08f76d458cdd2e6c81d16464129aa4f751cacee74cb71b0006145860000012dc9894e584c85e90f40000000018991b400082726fab378146ea0d3ee929505b1c74e30d30a7d82dcb1fc980faa3fbd613a0db33c03752585bce6dc8de42df66e59c5e30a21e1ae4719fd32b695e811b48d515a5020f0c44061b52384440090a009d4366a3138800000000000000001d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020006fc987a1204c145840000000000002000000000002cff9f5b80bedb332b44482094414ac4345f59142b129023c16f559e02eb397544050178c"},
{true, "b5ee9c72010207010001960003b572cf3b5b8c891e517c9addbda1c0386a09ccacbb0e3faf630b51cfc8152325acb00002151ea8a4dc57cb41ead21ae7fafd77a3a1fdbacea675b9bf9919ed1518fd1f455aa9ddef28900002151d33c1e05642f4d1800014617a95480103040101a00200b34801a1b43b8fc086138e5c3bd8d3acb8524471c4215c68ee5bf628407567eb0eeb55000b3ced6e32247945f26b76f68700e1a82732b2ec38febd8c2d473f20548c96b2d42e62df470806145860000042a3d5149b88c85e9a304000827288cae85c87a390c355bca4a0c8d00ee1363fdae11f5e33ee6259c7e9c926a260fb6b444bb66aa8740ce23fa1fbc283ece624aa0c1032258fdabb201d89e0e5af021b0c80548942e62df47098617a6b110506009e4060ec3d090000000000000000001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000005bc00000000000000000000000012d452da449e50b8cf7dd27861f146122afe1b546bb8b70fc8216f0c614139f8e04"},
{true, "b5ee9c72010213010003850003b57d0da1dc7e04309c72e1dec69d65c292238e210ae34772dfb14203ab3f58775aa00002151ea8a4dc32509fbf5d87dbe200e53334465ea192c454ef6cc3295cdd5bf4f924388083fe50000205fc8fce986642f4d180009477fa6548010f100201e0020300b368017bfbe6f743de0943f69d2f37b846f4ea0100209142cf75f44a179f7c18f6d1af0034368771f810c271cb877b1a75970a488e38842b8d1dcb7ec5080eacfd61dd6a942f7f58f80006145860000042a3d5149b84c85e9a30400201db040902012005070101200600b34801a1b43b8fc086138e5c3bd8d3acb8524471c4215c68ee5bf628407567eb0eeb55000b3ced6e32247945f26b76f68700e1a82732b2ec38febd8c2d473f20548c96b2d42e62df470806145860000042a3d5149b88c85e9a30400101200800b14801a1b43b8fc086138e5c3bd8d3acb8524471c4215c68ee5bf628407567eb0eeb55003a3e898d2892bbc63b2d7f53f1c6886e7a57c15da3e365ccf113b56636c41b131017d7840006145860000042a3d5149b8ac85e9a30400201200a0c0101200b00b14801a1b43b8fc086138e5c3bd8d3acb8524471c4215c68ee5bf628407567eb0eeb550028e4d6187de76bd6684f5b460b8590084300be638f7c63f69d2e3d6ac506afc61017d7840006145860000042a3d5149b8cc85e9a30400101200d01b16801a1b43b8fc086138e5c3bd8d3acb8524471c4215c68ee5bf628407567eb0eeb550031736e2a54ed295fb7627fffad2b2311e27626e74f21ada27858de5c377f8dc010ead791600623f868000042a3d5149b8ec85e9a30c00e00a75fcc3d1400000000000000008017bfbe6f743de0943f69d2f37b846f4ea0100209142cf75f44a179f7c18f6d1af002f7f7cdee87bc1287ed3a5e6f708de9d402004122859eebe8942f3ef831eda35c8039387008008272161226f2c318e5c09c32c998903dd1cc9a7bc3c8b503d157b633699cb3a3bd13a8e1fa1ac35ea2b4b6ad2c982af4144ffce5e4eca24f1137667d6b85fa0639a0021d04c2db918942f7f58f8018738495111112009e44ff2c3d09000000000000000000c100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006fc9a460804c6100f00000000000080000000000084aae45e867a6eec7b699455096ded0076508d31315431e3a38993173491275c241506d44"},
{false, "b5ee9c720102070100018f0003b5745ecb284de03211140b91f9ac9b09b806ff474d8a2f43ddc4d23809d5a330230000020602bb177865913850fd261d7cd1e20775d7a8f07fbcc8b3558771b15632c1f0f7db7682194000020602bb1778363fa7e5e0001464a10f080104050101a00201af4800c90ca7dbfcafde14e7f6eb39639c7aec80e362855d18efb125c6583b3cadefcb00117b2ca13780c844502e47e6b26c26e01bfd1d3628bd0f771348e027568cc08c0e625a00061dc910000040c05762ef0ac7f4fcbcc003005b05138d9117472eb1f52d826880059e76b719123ca2f935bb7b438070d4139959761c7f5ec616a39f902a464b59680082725318c725017d559d469c49bdcd8d210cfea95e66b577a6939eda9b3f8b8a6f6fed8a186f6e645bcd1d5b210d27ebd7934b20734d3a8ad1c599862b0987caf6cc01130c08e625a01064a10f0906009c412f689c40000001fffe0000004d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{false, "b5ee9c720102050100010b0003b3737958815ac2476dcf88a292965a13065ef91efb0e8f4effc827aca3ff5a102d30000207c0cfde7836f9aad8632b7415dd5d5f321cbec0b5e81447fd7ed5cf686ed40f06404ce577400002075dc8583c364005be1000004063880103040101a00200ab680059e76b719123ca2f935bb7b438070d4139959761c7f5ec616a39f902a464b597000de562056b091db73e228a4a59684c197be47bec3a3d3bff209eb28ffd6840b4c40406145860000040f819fbcf04c800b7c24000827263b9c77361c235b03c19c718794075b618002d3b3e26ea3e3cbd711549abafd6e2668cf20f3fb942422cf4a762a37ce12aa27f7c3f702d9aeba77cde1b13bf3a00150480c7084049a0187a1202"},
{false, "b5ee9c72010209010001fc0003b57b774d95eb20543f186c06b371ab88ad704f7e256130caf96189368a7d0cb6ccf00001e2b6ef5598368850b2387c33d495b21fd06aad8c8876317a221d89890f4d748de2cc087216100001e2b6bbd60056381f3210003469d7c3280106070201e0020401b3680059e76b719123ca2f935bb7b438070d4139959761c7f5ec616a39f902a464b597002ddd3657ac8150fc61b01acdc6ae22b5c13df89584c32be58624da29f432db33d406cc74a4000619a28e00003c56ddeab304c703e642c003002800000000c2a0c2a0c2a0c2a0c2a077616c6c65740101df0500e358016ee9b2bd640a87e30d80d66e357115ae09efc4ac26195f2c3126d14fa196d99f000b3ced6e32247945f26b76f68700e1a82732b2ec38febd8c2d473f20548c96b2d406cb10fd200614586000003c56ddeab308c703e6427fffffff80000000615061506150615061503bb0b63632ba4000827296e5e439e78bcd3c9923bf0decde6810e723bd5dca1d0b767a568c36383c31279ca751974a44b0f22a271fdc746e76b4d0562722f77b98db904c82717e658a390129046449406cc74a40106934ef0e01828b081851618208009e425b6c3d090000000001960000008500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"},
{false, "b5ee9c72010207010001850003b579d4470b8c632cd8c9ac7f17423ddb5163374b9b2074591904a6a93dd472b3b9d0000096dd2ef8dc32c46374ef6ebd4bfa79d932d44dc9159327ed81aba97f26379b3707d740bdb0b0000096121a5ed43642f313a0002060a378e80105060201e0020300bd68008a226d8c0258eff7483149f720014819ad9bec03e948b66dd800755bbb6507290027511c2e318cb36326b1fc5d08f76d458cdd2e6c81d16464129aa4f751cacee74cb71b0006145860000012dba5df1b84c85e62740000000018991ac00101df0400c558013a88e1718c659b19358fe2e847bb6a2c66e973640e8b232094d527ba8e56773b0011444db1804b1dfee906293ee400290335b37d807d2916cdbb000eab776ca0e50c7a120006145860000012dba5df1b88c85e62747fffffff8000000018991ac00082721c3a192473857ff9ddf8b1acb9cdbe9f2b188914a4c0ed60c2cc28593150970122c3eefcfd5b2b5c01a929e04096fe7538476fe21e412c0023b7c5ee78e5aefa002104816dc8cb71b001c0305161030a2c3040"},
}
for i, c := range cases {
cells, err := boc.DeserializeBocHex(c.data)
if err != nil {
t.Fatalf("%v %v", i, err)
}
var tx Transaction
err = Unmarshal(cells[0], &tx)
if err != nil {
t.Fatal(err)
}
if tx.IsSuccess() != c.success {
t.Fatal(i)
}
}
}