forked from tonindexer/anton
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tonpay_test.go
265 lines (238 loc) · 42.3 KB
/
tonpay_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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
package known_test
import (
"encoding/json"
"os"
"reflect"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/xssnick/tonutils-go/address"
"github.com/xssnick/tonutils-go/tvm/cell"
"github.com/tonindexer/anton/abi"
"github.com/tonindexer/anton/addr"
)
func TestOperationDesc_TonpayStore(t *testing.T) {
var (
interfaces []*abi.InterfaceDesc
i *abi.InterfaceDesc
)
j, err := os.ReadFile("tonpay.json")
require.Nil(t, err)
err = json.Unmarshal(j, &interfaces)
require.Nil(t, err)
for _, i = range interfaces {
if i.Name == "tonpay_store" {
err := i.RegisterDefinitions()
require.Nil(t, err)
break
}
}
var testCases = []*struct {
name string
boc string
expected string
}{
{
// tx hash bOdb2kON0C3THIjtMSq2lFyV1hV2AJj6v/OT7aEWZc4=
name: "tonpay_issue_invoice",
boc: `te6cckEBBQEAdgAEa0tOcLAAAAAAAAAAAMAAAAAO5rKACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQQDAgEAAAAIAAAAAAAYAAAAAHRzeWFoc2JiAEOACqgkTogi/ogp4FlGjfhGScVWc2oEeEJsrI2qei/kE0rwOKnC1A==`,
expected: `{"query_id":0,"has_customer":-1,"customer_address":"NONE","invoice_id":"\ufffd\n\ufffd$N\ufffd\"\ufffd\ufffd)\ufffdYF\ufffd\ufffdFI\ufffdVsj\u0004xBl\ufffd\ufffd\ufffdz/\ufffd\u0013J\ufffd","metadata":"\u0000\u0000\u0000\u0000tsyahsbb","amount":4000000000,"accepts_jetton":-2,"jetton_master_address":"NONE","jetton_wallet_code":"te6cckEBAQEABgAACAAAAADjAK8P"}`,
}, {
// tx hash 497ABFD5F35FB195883854D94BCAFDD15378AD1F995E43B12DF15F2F54672558
name: "tonpay_issue_invoice",
boc: `te6ccuECFQEAA4wAAHgAwADeAOoBBAEOARgBOAFCAUwCCAIeAigCsAOsA7YESAVCBiIGkgcYBGtLTnCwAAAAAAAAAAAAAAAAAABhqDgB6XupAfmvOo+3XtwG+iRSIr/WXPWB4jPCwderoGNXvl0BAgMEAEOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQABoAAAAAdGVzdGNyYXNoAAgAAAAAART/APSkE/S88sgLBQIBYgYHAgLMCAkAG6D2BdqJofQB9IH0gahhAgEgCgsCASAMDQC30QY4B5IADoaYGAuNhKia+B+AZwfSB9IBj9ABi465D9ABj9ABgBaY/BCAfFP1KpEF1KmJos+ATwQQgLxqKMqRBdSxiZoBn4BXAawQgsr4PeXUms+AXwL4JCB/l4QAEWvpEMHC68uFNgIBIA4PAIPUAQa5D2omh9AH0gfSBqGAJpj8EIC8aijKkQXUEIPe7L7wndCVj5cWLpn5j9ABgJ0CgR5CgCfQEsZ4sA54tmZPaqQB9VA9M/+gD6QCHwBu1E0PoA+kD6QNQwUTahUirHBfLiwSjC//LiwlQ0QnBUIBNUFAPIUAT6AljPFgHPFszJIsjLARL0APQAywDJIPkAcHTIywLKB8v/ydAE+kD0BDH6AHeAGMjLBVAIzxZw+gIXy2sTzIIQF41FGcjLHxmBACASAREgCOyz9QB/oCIs8WUAbPFiX6AlADzxbJUAXMB6oAE6CCCJiWgKoAggiYloCgoBS88uLFBMmAQPsAECPIUAT6AljPFgHPFszJ7VQC8TtRND6APpA+kDUMAfTP/oAUVGgBfpA+kBTWscFVHNscFQgE1QUA8hQBPoCWM8WAc8WzMkiyMsBEvQA9ADLAMn5AHB0yMsCygfL/8nQUAzHBRux8uLDCfoAggiYloCCCJiWgKAaoSGVEEk4XwTjDSXXCwHDACTCALCATFADbO1E0PoA+kD6QNQwB9M/+gD6QDBRUaFSSccF8uLBJ8L/8uLCggiYloCqABagFrzy4sOCEHvdl97Iyx8Vyz9QA/oCIs8WAc8WyXGAEMjLBSTPFnD6AstqzMmAQPsAQBPIUAT6AljPFgHPFszJ7VSAAbFIZoBihghBzYtCcyMsfUkDLP1AD+gIBzxZQB88WyXGAGMjLBSXPFlAH+gIWy2oVzMlx+wAQNACCjiqCCJiWgHL7AoIQ1TJ223CAEMjLBVAIzxZQBfoCFstqE8sfE8s/yXL7AFiSbDPiVQLIUAT6AljPFgHPFszJ7VS7ZIAO`,
expected: `{"query_id":0,"has_customer":0,"customer_address":"NONE","invoice_id":"\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000","metadata":"\u0000\u0000\u0000\u0000testcrash","amount":400003,"accepts_jetton":-2,"jetton_master_address":"NONE","jetton_wallet_code":"te6cckEBAQEABgAACAAAAADjAK8P"}`,
}, {
// msg hash fddW6FrzbcqUwWCkgTpe/IASFTIJa9T2rZfd8ttA/AY=
name: "tonpay_request_purchase",
boc: `te6cckEBAwEAMQACKDa3lbUAAAAAAAAAAAAAAAApuScAAgEACAAAAAAAIgAAAAAxNjg1MjI2NTc3NjYxh6Sd4g==`,
expected: `{"query_id":0,"invoice_id":"\u0000\u0000\u0000\u00001685226577661","metadata":"\u0000\u0000\u0000\u0000","amount":700000000}`,
}, {
// msg hash 0IINk12EisSBj+fkxh+RKbbT9m6Fb7qoHIVhEWin0GA=
name: "tonpay_edit_store",
boc: `te6cckEBBQEA4wAEHKCyth0AAAAAAAAAABa6BAMCAQBSAAAAAGh0dHBzOi8vZW5veGZyNGJ1b2JoLngucGlwZWRyZWFtLm5ldC8AogAAAAB0b25zdG9yYWdlOi8vRTY2MDIzRDdFMzBDN0RERDREOTdFNEUwODU5Q0ZBRTRDNTVGRkNFQzhGNTVGRTQ1QjZFOUU2MEVGQjM3Rjg2QgBqAAAAAFN1cGVyIHN0b3JlIHRoYXQgc2VsbHMgZGlmZmVyZW50IHRoaW5ncyB0byBwZW9wbGUAMAAAAABUb25wYXkgVGVzdGluZyBTdG9yZZ+uAFU=`,
expected: `{"query_id":0,"new_name":"\u0000\u0000\u0000\u0000Tonpay Testing Store","new_description":"\u0000\u0000\u0000\u0000Super store that sells different things to people","new_image":"\u0000\u0000\u0000\u0000tonstorage://E66023D7E30C7DDD4D97E4E0859CFAE4C55FFCEC8F55FE45B6E9E60EFB37F86B","new_webhook":"\u0000\u0000\u0000\u0000https://enoxfr4buobh.x.pipedream.net/","new_mcc_code":5818}`,
},
// {
// // msg hash 0IINk12EisSBj+fkxh+RKbbT9m6Fb7qoHIVhEWin0GA=
// name: "tonpay_upgrade_code_full",
// boc: `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`,
// expected: `{"query_id":0,"new_store_code":"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","new_invoice_code":"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","has_new_data":0,"new_store_data":"te6cckEBAQEAAgAAAEysuc0="}`,
// },
// {
// // msg hash 9z9qbu4I8FSbEmLNwmnbquuFwcYecuOdvElRpujbglE=
// name: "tonpay_upgrade_code_invoice",
// boc: `te6cckECIAEAA7QAARi18UJPAAAAAAAAAAABART/APSkE/S88sgLAgIBYhUDAgEgDwQCASAKBQIBIAcGADW0mZ2omh9IH0gfSBpAOpqaZ/pAOkAmAgcL4RACASAJCAA1s2o7UTQ+kD6QPpA0gHU1NM/0gHSATAQeF8IgADWypztRND6QPpA+kDSAdTU0z/SAdIBMBBIXwiACASAOCwIBSA0MAC+vbXaiaH0gfSB9IGkA6mppn+kA6QCYOsAAB67COsAAMbZ/PaiaH0gfSB9IGkA6mppn+kA6QCYL4RACASAUEAIBIB0RAgEgExIANbO0O1E0PpA+kD6QNIB1NTTP9IB0gEwEFhfCIAAxsSZ7UTQ+kD6QPpA0gHU1NM/0gHSATBsgYAA1uQQe1E0PpA+kD6QNIB1NTTP9IB0gEwEChfCIAgLOFxYAN0yFAJzxZQB88WUAXPFhPKAczMyz/KAcoBye1UgEu0MyLHAI4cbBLQ0wMx+kAwcIAQyMsFWM8WWPoCy2rJgwb7AODQ0wMBcbCSXwPg+kAwAtMf0z8xIYIQ9ToC07rjAjIgghBIxQTzuuMCIIIQHMCxHrrjAiCCEMKFlS+6gbGhkYANqOKlvtRND6QPpA+kDSAdTU0z/SAdIBMJJfCeBRhscFs5WBDwDy8N5VBn/wAuCCEGG934u6jjHtRND6QPpA+kDSAdTU0z/SAdIBMBBoXwgSxwWzlYEPAPLw3tTSAQGU1DDtVJEw4vsE4FuED/LwAFZb7UTQ+kD6QPpA0gHU1NM/0gHSATCzkl8J4FGGxwWzlYEPAPLw3lUGcPACAIgw7UTQ+kD6QPpA0gHU1NM/0gHSATBsQiCzloIA8AHy8N4hloIA8AXy8N5RY8cFs5WBDwDy8N4E0gHU1NM/MBBoVRXwAgH+W+1E0PpA+kD6QNIB1NTTP9IB0gEwAX+wloIA8ALy8N5TgbmWggDwA/Lw3gSOFSLQUpDHBbNTl8cFs7CWggDwBPLw3t4ggGSpBKdiggkxLQChcIAQyMsFJ88WXaH6AstqyXH7AHAggBDIywUpzxZQA/oCEstqyx8i0M8WyVOBvBwAqJFwkoMG4vsAU2jHBZIC0JIyJ+JTcryOJXAggBDIywVQA88WUZShGfoCy2oXyx+LZjaGFuZ2WM8WyYMG+wCSMDbif8hQCM8WyScQaBBXUAQGBQPwAgIBIB8eADOygbtRND6QPpA+kDSAdTU0z/SAdIBMBhfCIAA1s9L7UTQ+kD6QPpA0gHU1NM/0gHSATAQaF8IggGDmcQ==`,
// expected: `{"query_id":0,"new_invoice_code":"te6cckECHwEAA6UAART/APSkE/S88sgLAQIBYgIJAgLOBAMAN0yFAJzxZQB88WUAXPFhPKAczMyz/KAcoBye1UgEu0MyLHAI4cbBLQ0wMx+kAwcIAQyMsFWM8WWPoCy2rJgwb7AODQ0wMBcbCSXwPg+kAwAtMf0z8xIYIQ9ToC07rjAjIgghBIxQTzuuMCIIIQHMCxHrrjAiCCEMKFlS+6gHHgYFANqOKlvtRND6QPpA+kDSAdTU0z/SAdIBMJJfCeBRhscFs5WBDwDy8N5VBn/wAuCCEGG934u6jjHtRND6QPpA+kDSAdTU0z/SAdIBMBBoXwgSxwWzlYEPAPLw3tTSAQGU1DDtVJEw4vsE4FuED/LwAFZb7UTQ+kD6QPpA0gHU1NM/0gHSATCzkl8J4FGGxwWzlYEPAPLw3lUGcPACAf5b7UTQ+kD6QPpA0gHU1NM/0gHSATABf7CWggDwAvLw3lOBuZaCAPAD8vDeBI4VItBSkMcFs1OXxwWzsJaCAPAE8vDe3iCAZKkEp2KCCTEtAKFwgBDIywUnzxZdofoCy2rJcfsAcCCAEMjLBSnPFlAD+gISy2rLHyLQzxbJU4G8CACokXCSgwbi+wBTaMcFkgLQkjIn4lNyvI4lcCCAEMjLBVADzxZRlKEZ+gLLahfLH4tmNoYW5nZYzxbJgwb7AJIwNuJ/yFAIzxbJJxBoEFdQBAYFA/ACAgEgCwoCASAUGQIBIBMMAgEgEA0CASAPDgA1s7Q7UTQ+kD6QPpA0gHU1NM/0gHSATAQWF8IgADGxJntRND6QPpA+kDSAdTU0z/SAdIBMGyBgAgEgEhEAM7KBu1E0PpA+kD6QNIB1NTTP9IB0gEwGF8IgADWz0vtRND6QPpA+kDSAdTU0z/SAdIBMBBoXwiAANbkEHtRND6QPpA+kDSAdTU0z/SAdIBMBAoXwiAIBIBgVAgFIFxYAL69tdqJofSB9IH0gaQDqammf6QDpAJg6wAAHrsI6wAAxtn89qJofSB9IH0gaQDqammf6QDpAJgvhEAIBIBsaADW0mZ2omh9IH0gfSBpAOpqaZ/pAOkAmAgcL4RACASAdHAA1s2o7UTQ+kD6QPpA0gHU1NM/0gHSATAQeF8IgADWypztRND6QPpA+kDSAdTU0z/SAdIBMBBIXwiAAiDDtRND6QPpA+kDSAdTU0z/SAdIBMGxCILOWggDwAfLw3iGWggDwBfLw3lFjxwWzlYEPAPLw3gTSAdTU0z8wEGhVFfAC/f/Z/Q=="}`,
// },
}
for _, test := range testCases {
j := loadOperation(t, i, test.name, test.boc)
assert.Equal(t, test.expected, j)
}
}
func TestGetMethodDesc_TonpayStore(t *testing.T) {
var (
interfaces []*abi.InterfaceDesc
i *abi.InterfaceDesc
)
j, err := os.ReadFile("tonpay.json")
require.Nil(t, err)
err = json.Unmarshal(j, &interfaces)
require.Nil(t, err)
for _, i = range interfaces {
if i.Name == "tonpay_store" {
err := i.RegisterDefinitions()
require.Nil(t, err)
break
}
}
var testCases = []*struct {
name string
addr *address.Address
code string
data string
expected []any
}{
{
name: "get_store_data",
addr: addr.MustFromBase64("EQCtRWrkfxovf-H02xc5CjHpC4t3VnxAIrCg6LJaaYflj4RY").MustToTonutils(),
code: `te6cckECJQEABaoAART/APSkE/S88sgLAQIBYgIDAgLNBAUCASATFATz0ZkWOASS+B8GhpgYC42EkvgfB9IBgBaY/pn5iQwQglpzhYXXGBEMEIG1vK2t1xgRkQQQhQWVsO3UcZmHaiaH0gampqAOhqahgBaYfpAOoYCBooKy+CqKFjgtnKwIeAeXhvAWpqampph5gqivgCcBBBCHzfyxvdcYEQQGBwgJAgEgDxABxGwh7UTQ+kDU1NQB0NTUMALTD9IB1DAQNFBWXwWzk/LA8N5TMccFs5WBDwDy8N4C0gHU1NTTPzAQV40IYAe2GfiNXKAcfsRWzP8rwyF3yN1P/+XzPGFHhc3f1qQfRAdVBX8BCgH+Me1E0PpA1NTUAdDU1DAC0w/SAdQwEDRQVl8Fs5PywPDeAtTU0z8wIIIK+vCAoBa5k/LA8d6NCGAHthn4jVygHH7EVsz/K8Mhd8jdT//l8zxhR4XN39akH0RwyI0IYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAsAVFvtRND6QNTU1AHQ1NQwAtMP0gHUMBA0MVF2xwWzlYEPAPLw3lUFcAHwBAOsghCXUA2vuo4qW+1E0PpA1NTUAdDU1DAC0w/SAdQwEDQxUXbHBbOVgQ8A8vDeVQV/AfAE4CCCELQ7u1K64wIgghC18UJPuuMCghCssI8ouuMCW4QP8vAMDQ4AuFVx8AUg8AbIyXeAGMjLBSPPFiaRcJWCCExLQOL6AstrE8wSzMkjk4EAgpFz4vsAArOOJnCCEPU6AtMhgBjIywVQBc8WIvoCFMtqE8sfEss/Ac8WyYEAgvsAkVviAMzPFskhEGkQOEcGVXHwBSDwBsjJd4AYyMsFI88WJpFwlYIITEtA4voCy2sTzBLMySOTgQCCkXPi+wACs44mcIIQ9ToC0yGAGMjLBVAFzxYi+gIUy2oTyx8Syz8BzxbJgQCC+wCRW+IA2jDtRND6QNTU1AHQ1NQwAtMP0gHUMBA0MFOGxwWzCY0IYAe2GfiNXKAcfsRWzP8rwyF3yN1P/+XzPGFHhc3f1qQfRMcFsxmwlYEPAPLw3gbU1NIBAZcxbHLUMO1UnTAQZxBWEEUQNEOA8ATi+wQAtjDtRND6QNTU1AHQ1NQwAtMP0gHUMBA0MFOGxwWzCY0IYAe2GfiNXKAcfsRWzP8rwyF3yN1P/+XzPGFHhc3f1qQfRMcFsxmwlYEPAPLw3gbUMBBXEEYQNUQw8AQA0u1E0PpA1NTUAdDU1DAC0w/SAdQwEDRTl8cFswqNCGAHthn4jVygHH7EVsz/K8Mhd8jdT//l8zxhR4XN39akH0THBbMasJWBDwDy8N4H1NIBAZZsgtQw7VSdMBBnEFYQRRA0QTjwBOL7BAIBIBESABtPkAcHTIywLKB8v/ydCAA5FBDAcjMzMnIUAfPFhXME8wUzBLLDxLKAczJ7VSAAWR/cMj4KM8WUArPFlAIzxYWygEUzBLMzMs/E8oBygHJcCDIywET9AD0AMsAyYAIBIBUWAgEgISICAVgXGAIBIBkaADmwFDtRND6QNTU1AHQ1NQwAtMP0gHUMBA0EEdfB4AAJsQAgAuACAW4bHAIBIB0eADirMe1E0PpA1NTUAdDU1DAC0w/SAdQwEDQQJ18HADSrT+1E0PpA1NTUAdDU1DAC0w/SAdQwEDRscQIBIB8gADmwUntRND6QNTU1AHQ1NQwAtMP0gHUMBA0EGdfB4AA3rCR2omh9IGpqagDoamoYAWmH6QDqGAgaC6+DwAA5r8N2omh9IGpqagDoamoYAWmH6QDqGAgaCBuvg8AANbtlztRND6QNTU1AHQ1NQwAtMP0gHUMBA0XweAICdCMkADSoje1E0PpA1NTUAdDU1DAC0w/SAdQwEDSACwA4qETtRND6QNTU1AHQ1NQwAtMP0gHUMBA0EFdfB+LVRW8=`,
data: `te6cckECJwEABLAABEeABFk27O7YNJevTCEusWHd31HgImIUfu0mZseDGT3Oh+nDmZwBAgMEABgAAAAAVE9OIEJ5dGUAMAAAAABUT04gU3RvcmFnZSBwcm92aWRlcgIABQYBFP8A9KQT9LzyyAsHAMAAAAAAaHR0cHM6Ly90b25ieXRlLmNvbS9nYXRld2F5LzkyODFBRTg0MUU0OEM5QTlCMjcyNjE5NDBDMDU1M0M4M0Y4NzkyRTM3QTk3NTE5OTEzQUZGM0QzRjEzMTJGQkUACAAAAAACAWIICQICzgoLAgEgERIEu0MyLHAI4cbBLQ0wMx+kAwcIAQyMsFWM8WWPoCy2rJgwb7AODQ0wMBcbCSXwPg+kAwAtMf0z8xIYIQ9ToC07rjAjIgghBIxQTzuuMCIIIQHMCxHrrjAiCCEMKFlS+6gMDQ4PADtMhQCs8WUAjPFlAGzxYUygESzMzMyz/KAcoBye1UgB/jHtRND6QPpA+kDSAdTU1NM/0gHSATABf7CWggDwAvLw3lOhuZaCAPAD8vDeJY4VJNBSwMcFs1PJxwWzsJaCAPAE8vDe3iGAZKkEp2JwgBDIywUpzxZTQqH6AstqyXH7AHAggBDIywUrzxZQA/oCEstqyx8k0IAg1yHPFslTsrwQAIww7UTQ+kD6QPpA0gHU1NTTP9IB0gEwUFZfBSGzloIA8AHy8N4gloIA8AXy8N5RY8cFs5WBDwDy8N4E0gHU1NTTPzBVF/ACAFhb7UTQ+kD6QPpA0gHU1NTTP9IB0gEws5JfCuBRl8cFs5WBDwDy8N5VB3DwAgDejitb7UTQ+kD6QPpA0gHU1NTTP9IB0gEwkl8K4FGXxwWzlYEPAPLw3lUHf/AC4IIQYb3fi7qOMu1E0PpA+kD6QNIB1NTU0z/SAdIBMBB5XwkSxwWzlYEPAPLw3tTSAQGU1DDtVJEw4vsE4FuED/LwANqRcJKDBuL7AFOLxwWWNDQH+kAwmzkEkgLQkjIo4hAn4lNpxwWSOSiRCeJTg7yOJXAggBDIywVQA88WUaWhGvoCy2oYyx+LZjaGFuZ2WM8WyYMG+wCSMDfif8hQCc8WySgQaRBYEEdQBQRDE/ACAgEgExQCASAbHAA3uQQe1E0PpA+kD6QNIB1NTU0z/SAdIBMBApXwmAIBIBUWAgEgFxgCASAZGgA3s9L7UTQ+kD6QPpA0gHU1NTTP9IB0gEwEHlfCYAA1soG7UTQ+kD6QPpA0gHU1NTTP9IB0gEwGV8JgADOxJntRND6QPpA+kDSAdTU1NM/0gHSATBskYAA3s7Q7UTQ+kD6QPpA0gHU1NTTP9IB0gEwEGlfCYAIBIB0eAgEgISIAM7Z/PaiaH0gfSB9IGkA6mpqaZ/pAOkAmC+EwAgFIHyAAB67CPMAAMa9tdqJofSB9IH0gaQDqamppn+kA6QCYPMACASAjJAIBICUmADeypztRND6QPpA+kDSAdTU1NM/0gHSATAQWV8JgADezajtRND6QPpA+kDSAdTU1NM/0gHSATAQiV8JgADexMztRND6QPpA+kDSAdTU1NM/0gHSATAQSV8JgADexdTtRND6QPpA+kDSAdTU1NM/0gHSATAQOV8JgChgrfw==`,
expected: []any{
address.MustParseAddr("EQAiybdndsGkvXphCXWLDu76jwETEKP3aTM2PBjJ7nQ_TkjB"),
"\x00\x00\x00\x00TON Byte",
"\x00\x00\x00\x00TON Storage provider",
"\x00\x00\x00\x00https://tonbyte.com/gateway/9281AE841E48C9A9B27261940C0553C83F8792E37A97519913AFF3D3F1312FBE",
"\x00\x00\x00\x00",
uint16(0x1ccc),
int8(-1),
&cell.Cell{},
uint64(0xb),
},
}, {
name: "get_store_data",
addr: addr.MustFromBase64("EQD4CTLrsCUn2CFQlIhJtRZl7qJnIc76VW3TbDzVAh3ish-j").MustToTonutils(),
code: `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`,
data: `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`,
expected: []any{
address.MustParseAddr("EQBVQSJ0QRf0QU8CyjRvwjJOKrObUCPCE2VkbVPRfyCaV1NY"),
"\x00\x00\x00\x00Durger King 2.0",
"\x00\x00\x00\x00The best burgers at your fingertips",
"\x00\x00\x00\x00https://tonbyte.com/gateway/FF6F4B1BC014F028CCA11E782C0DE5E970960FE0AFBA828F12428204D81EC547",
"\x00\x00\x00\x00",
uint16(0x16b6),
int8(-1),
&cell.Cell{},
uint64(0xc),
},
},
// {
// name: "get_store_version",
// addr: addr.MustFromBase64("EQCtRWrkfxovf-H02xc5CjHpC4t3VnxAIrCg6LJaaYflj4RY").MustToTonutils(),
// code: `te6cckECJQEABaoAART/APSkE/S88sgLAQIBYgIDAgLNBAUCASATFATz0ZkWOASS+B8GhpgYC42EkvgfB9IBgBaY/pn5iQwQglpzhYXXGBEMEIG1vK2t1xgRkQQQhQWVsO3UcZmHaiaH0gampqAOhqahgBaYfpAOoYCBooKy+CqKFjgtnKwIeAeXhvAWpqampph5gqivgCcBBBCHzfyxvdcYEQQGBwgJAgEgDxABxGwh7UTQ+kDU1NQB0NTUMALTD9IB1DAQNFBWXwWzk/LA8N5TMccFs5WBDwDy8N4C0gHU1NTTPzAQV40IYAe2GfiNXKAcfsRWzP8rwyF3yN1P/+XzPGFHhc3f1qQfRAdVBX8BCgH+Me1E0PpA1NTUAdDU1DAC0w/SAdQwEDRQVl8Fs5PywPDeAtTU0z8wIIIK+vCAoBa5k/LA8d6NCGAHthn4jVygHH7EVsz/K8Mhd8jdT//l8zxhR4XN39akH0RwyI0IYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAsAVFvtRND6QNTU1AHQ1NQwAtMP0gHUMBA0MVF2xwWzlYEPAPLw3lUFcAHwBAOsghCXUA2vuo4qW+1E0PpA1NTUAdDU1DAC0w/SAdQwEDQxUXbHBbOVgQ8A8vDeVQV/AfAE4CCCELQ7u1K64wIgghC18UJPuuMCghCssI8ouuMCW4QP8vAMDQ4AuFVx8AUg8AbIyXeAGMjLBSPPFiaRcJWCCExLQOL6AstrE8wSzMkjk4EAgpFz4vsAArOOJnCCEPU6AtMhgBjIywVQBc8WIvoCFMtqE8sfEss/Ac8WyYEAgvsAkVviAMzPFskhEGkQOEcGVXHwBSDwBsjJd4AYyMsFI88WJpFwlYIITEtA4voCy2sTzBLMySOTgQCCkXPi+wACs44mcIIQ9ToC0yGAGMjLBVAFzxYi+gIUy2oTyx8Syz8BzxbJgQCC+wCRW+IA2jDtRND6QNTU1AHQ1NQwAtMP0gHUMBA0MFOGxwWzCY0IYAe2GfiNXKAcfsRWzP8rwyF3yN1P/+XzPGFHhc3f1qQfRMcFsxmwlYEPAPLw3gbU1NIBAZcxbHLUMO1UnTAQZxBWEEUQNEOA8ATi+wQAtjDtRND6QNTU1AHQ1NQwAtMP0gHUMBA0MFOGxwWzCY0IYAe2GfiNXKAcfsRWzP8rwyF3yN1P/+XzPGFHhc3f1qQfRMcFsxmwlYEPAPLw3gbUMBBXEEYQNUQw8AQA0u1E0PpA1NTUAdDU1DAC0w/SAdQwEDRTl8cFswqNCGAHthn4jVygHH7EVsz/K8Mhd8jdT//l8zxhR4XN39akH0THBbMasJWBDwDy8N4H1NIBAZZsgtQw7VSdMBBnEFYQRRA0QTjwBOL7BAIBIBESABtPkAcHTIywLKB8v/ydCAA5FBDAcjMzMnIUAfPFhXME8wUzBLLDxLKAczJ7VSAAWR/cMj4KM8WUArPFlAIzxYWygEUzBLMzMs/E8oBygHJcCDIywET9AD0AMsAyYAIBIBUWAgEgISICAVgXGAIBIBkaADmwFDtRND6QNTU1AHQ1NQwAtMP0gHUMBA0EEdfB4AAJsQAgAuACAW4bHAIBIB0eADirMe1E0PpA1NTUAdDU1DAC0w/SAdQwEDQQJ18HADSrT+1E0PpA1NTUAdDU1DAC0w/SAdQwEDRscQIBIB8gADmwUntRND6QNTU1AHQ1NQwAtMP0gHUMBA0EGdfB4AA3rCR2omh9IGpqagDoamoYAWmH6QDqGAgaC6+DwAA5r8N2omh9IGpqagDoamoYAWmH6QDqGAgaCBuvg8AANbtlztRND6QNTU1AHQ1NQwAtMP0gHUMBA0XweAICdCMkADSoje1E0PpA1NTUAdDU1DAC0w/SAdQwEDSACwA4qETtRND6QNTU1AHQ1NQwAtMP0gHUMBA0EFdfB+LVRW8=`,
// data: `te6cckECJwEABLAABEeABFk27O7YNJevTCEusWHd31HgImIUfu0mZseDGT3Oh+nDmZwBAgMEABgAAAAAVE9OIEJ5dGUAMAAAAABUT04gU3RvcmFnZSBwcm92aWRlcgIABQYBFP8A9KQT9LzyyAsHAMAAAAAAaHR0cHM6Ly90b25ieXRlLmNvbS9nYXRld2F5LzkyODFBRTg0MUU0OEM5QTlCMjcyNjE5NDBDMDU1M0M4M0Y4NzkyRTM3QTk3NTE5OTEzQUZGM0QzRjEzMTJGQkUACAAAAAACAWIICQICzgoLAgEgERIEu0MyLHAI4cbBLQ0wMx+kAwcIAQyMsFWM8WWPoCy2rJgwb7AODQ0wMBcbCSXwPg+kAwAtMf0z8xIYIQ9ToC07rjAjIgghBIxQTzuuMCIIIQHMCxHrrjAiCCEMKFlS+6gMDQ4PADtMhQCs8WUAjPFlAGzxYUygESzMzMyz/KAcoBye1UgB/jHtRND6QPpA+kDSAdTU1NM/0gHSATABf7CWggDwAvLw3lOhuZaCAPAD8vDeJY4VJNBSwMcFs1PJxwWzsJaCAPAE8vDe3iGAZKkEp2JwgBDIywUpzxZTQqH6AstqyXH7AHAggBDIywUrzxZQA/oCEstqyx8k0IAg1yHPFslTsrwQAIww7UTQ+kD6QPpA0gHU1NTTP9IB0gEwUFZfBSGzloIA8AHy8N4gloIA8AXy8N5RY8cFs5WBDwDy8N4E0gHU1NTTPzBVF/ACAFhb7UTQ+kD6QPpA0gHU1NTTP9IB0gEws5JfCuBRl8cFs5WBDwDy8N5VB3DwAgDejitb7UTQ+kD6QPpA0gHU1NTTP9IB0gEwkl8K4FGXxwWzlYEPAPLw3lUHf/AC4IIQYb3fi7qOMu1E0PpA+kD6QNIB1NTU0z/SAdIBMBB5XwkSxwWzlYEPAPLw3tTSAQGU1DDtVJEw4vsE4FuED/LwANqRcJKDBuL7AFOLxwWWNDQH+kAwmzkEkgLQkjIo4hAn4lNpxwWSOSiRCeJTg7yOJXAggBDIywVQA88WUaWhGvoCy2oYyx+LZjaGFuZ2WM8WyYMG+wCSMDfif8hQCc8WySgQaRBYEEdQBQRDE/ACAgEgExQCASAbHAA3uQQe1E0PpA+kD6QNIB1NTU0z/SAdIBMBApXwmAIBIBUWAgEgFxgCASAZGgA3s9L7UTQ+kD6QPpA0gHU1NTTP9IB0gEwEHlfCYAA1soG7UTQ+kD6QPpA0gHU1NTTP9IB0gEwGV8JgADOxJntRND6QPpA+kDSAdTU1NM/0gHSATBskYAA3s7Q7UTQ+kD6QPpA0gHU1NTTP9IB0gEwEGlfCYAIBIB0eAgEgISIAM7Z/PaiaH0gfSB9IGkA6mpqaZ/pAOkAmC+EwAgFIHyAAB67CPMAAMa9tdqJofSB9IH0gaQDqamppn+kA6QCYPMACASAjJAIBICUmADeypztRND6QPpA+kDSAdTU1NM/0gHSATAQWV8JgADezajtRND6QPpA+kDSAdTU1NM/0gHSATAQiV8JgADexMztRND6QPpA+kDSAdTU1NM/0gHSATAQSV8JgADexdTtRND6QPpA+kDSAdTU1NM/0gHSATAQOV8JgChgrfw==`,
// expected: []any{
// uint64(0xb),
// },
// },
}
for _, test := range testCases {
ret := execGetMethod(t, i, test.addr, test.name, test.code, test.data)
for it := range ret {
if reflect.TypeOf(test.expected[it]) == reflect.TypeOf(&cell.Cell{}) {
continue
}
assert.Equal(t, test.expected[it], ret[it])
}
}
}
func TestOperationDesc_TonpayInvoice(t *testing.T) {
var (
interfaces []*abi.InterfaceDesc
i *abi.InterfaceDesc
)
j, err := os.ReadFile("tonpay.json")
require.Nil(t, err)
err = json.Unmarshal(j, &interfaces)
require.Nil(t, err)
for _, i = range interfaces {
if i.Name == "tonpay_invoice" {
err := i.RegisterDefinitions()
require.Nil(t, err)
break
}
}
var testCases = []*struct {
name string
boc string
expected string
}{
{
// msg hash IuHB6faRsv3skEVD7B7XAyW8QDSoJQggNDzUL3aEkwE=
name: `tonpay_edit_invoice`,
boc: `te6cckECFQEAA5wABGtIxQTzAAAAAAAAAAAAAAAAstBeADgALInABpaveTnQLzJRypMpb8yBctLJ3x+XSBR8UR1oVV0EAgEDAAgAAAAAACIAAAAAMTY4NDE0NDc0MjU4NgEU/wD0pBP0vPLICwUAQ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABACAWIHBgAboPYF2omh9AH0gfSBqGECAswSCAIBIAoJAIPUAQa5D2omh9AH0gfSBqGAJpj8EIC8aijKkQXUEIPe7L7wndCVj5cWLpn5j9ABgJ0CgR5CgCfQEsZ4sA54tmZPaqQCASAQCwIBIA0MANc7UTQ+gD6QPpA1DAH0z/6APpAMFFRoVJJxwXy4sEnwv/y4sIFggkxLQCgFrzy4sOCEHvdl97Iyx8Vyz9QA/oCIs8WAc8WyXGAGMjLBSTPFnD6AstqzMmAQPsAQBPIUAT6AljPFgHPFszJ7VSAC9ztRND6APpA+kDUMAjTP/oAUVGgBfpA+kBTW8cFVHNtcFQgE1QUA8hQBPoCWM8WAc8WzMkiyMsBEvQA9ADLAMn5AHB0yMsCygfL/8nQUA3HBRyx8uLDCvoAUaihggiYloBmtgihggiYloCgGKEnlxBJEDg3XwTjDSXXCwGAPDgB8wwAjwgCwjiGCENUydttwgBDIywVQCM8WUAT6AhbLahLLHxLLP8ly+wCTNWwh4gPIUAT6AljPFgHPFszJ7VQAcFJ5oBihghBzYtCcyMsfUjDLP1j6AlAHzxZQB88WyXGAEMjLBSTPFlAG+gIVy2oUzMlx+wAQJBAjAfFQPTP/oA+kAh8AHtRND6APpA+kDUMFE2oVIqxwXy4sEowv/y4sJUNEJwVCATVBQDyFAE+gJYzxYBzxbMySLIywES9AD0AMsAySD5AHB0yMsCygfL/8nQBPpA9AQx+gAg10nCAPLixHeAGMjLBVAIzxZw+gIXy2sTzIEQCeghAXjUUZyMsfGcs/UAf6AiLPFlAGzxYl+gJQA88WyVAFzCORcpFx4lAIqBOgggnJw4CgFLzy4sUEyYBA+wAQI8hQBPoCWM8WAc8WzMntVAIB1BQTABE+kQwcLry4U2AAwwgxwCSXwTgAdDTAwFxsJUTXwPwDOD6QPpAMfoAMXHXIfoAMfoAMHOptAAC0x+CEA+KfqVSILqVMTRZ8AngghAXjUUZUiC6ljFERAPwCuA1ghBZXwe8upNZ8AvgXwSED/LwgIzNCsg==`,
expected: `{"has_customer":0,"customer":"NONE","invoice_id":"\ufffd\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000\u0000","metadata":"\u0000\u0000\u0000\u00001684144742586","amount":0,"accepts_jetton":0,"jetton_master_address":"NONE","jetton_wallet_code":"te6cckEBAQEABgAACAAAAADjAK8P"}`,
},
}
for _, test := range testCases {
j := loadOperation(t, i, test.name, test.boc)
assert.Equal(t, test.expected, j)
}
}
func TestGetMethodDesc_TonpayInvoice(t *testing.T) {
var (
interfaces []*abi.InterfaceDesc
i *abi.InterfaceDesc
)
j, err := os.ReadFile("tonpay.json")
require.Nil(t, err)
err = json.Unmarshal(j, &interfaces)
require.Nil(t, err)
for _, i = range interfaces {
if i.Name == "tonpay_invoice" {
err := i.RegisterDefinitions()
require.Nil(t, err)
break
}
}
var testCases = []*struct {
name string
addr *address.Address
code string
data string
expected []any
}{
{
name: "get_invoice_data",
addr: addr.MustFromBase64("EQDGl_FudWD0b3Mp3X32GqxOWRILPz9lTh8YqIFbHiF4a3_M").MustToTonutils(),
code: `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`,
data: `te6cckECFgEAA/IABNmACPYOwJ5TvEFWfe1suLNPoyFhYrsCal8MlyLMzxtRmYuwAVUEidEEX9EFPAso0b8IyTiqzm1AjwhNlZG1T0X8gmleAHthn4jVygHH7EVsz/K8Mhd8jdT//l8zxhR4XN39akH0YAAAAAdzWUAfAQIDBABDgAqoJE6IIv6IKeBZRo34RknFVnNqBHhCbKyNqnov5BNK8AAWAAAAAGFzZHRlc3QACAAAAAABQ+AAsicAGlq95OdAvMlHKkylvzIFy0snfH5dIFHxRHWhVXQFART/APSkE/S88sgLBgIBYgcIAgLMCQoAG6D2BdqJofQB9IH0gahhAgHUCwwCASANDgDDCDHAJJfBOAB0NMDAXGwlRNfA/AM4PpA+kAx+gAxcdch+gAx+gAwc6m0AALTH4IQD4p+pVIgupUxNFnwCeCCEBeNRRlSILqWMUREA/AK4DWCEFlfB7y6k1nwC+BfBIQP8vCAAET6RDBwuvLhTYAIBIA8QAIPUAQa5D2omh9AH0gfSBqGAJpj8EIC8aijKkQXUEIPe7L7wndCVj5cWLpn5j9ABgJ0CgR5CgCfQEsZ4sA54tmZPaqQB8VA9M/+gD6QCHwAe1E0PoA+kD6QNQwUTahUirHBfLiwSjC//LiwlQ0QnBUIBNUFAPIUAT6AljPFgHPFszJIsjLARL0APQAywDJIPkAcHTIywLKB8v/ydAE+kD0BDH6ACDXScIA8uLEd4AYyMsFUAjPFnD6AhfLaxPMgRAgEgEhMAnoIQF41FGcjLHxnLP1AH+gIizxZQBs8WJfoCUAPPFslQBcwjkXKRceJQCKgToIIJycOAoBS88uLFBMmAQPsAECPIUAT6AljPFgHPFszJ7VQC9ztRND6APpA+kDUMAjTP/oAUVGgBfpA+kBTW8cFVHNtcFQgE1QUA8hQBPoCWM8WAc8WzMkiyMsBEvQA9ADLAMn5AHB0yMsCygfL/8nQUA3HBRyx8uLDCvoAUaihggiYloBmtgihggiYloCgGKEnlxBJEDg3XwTjDSXXCwGAUFQDXO1E0PoA+kD6QNQwB9M/+gD6QDBRUaFSSccF8uLBJ8L/8uLCBYIJMS0AoBa88uLDghB73ZfeyMsfFcs/UAP6AiLPFgHPFslxgBjIywUkzxZw+gLLaszJgED7AEATyFAE+gJYzxYBzxbMye1UgAHBSeaAYoYIQc2LQnMjLH1Iwyz9Y+gJQB88WUAfPFslxgBDIywUkzxZQBvoCFctqFMzJcfsAECQQIwB8wwAjwgCwjiGCENUydttwgBDIywVQCM8WUAT6AhbLahLLHxLLP8ly+wCTNWwh4gPIUAT6AljPFgHPFszJ7VTD8jQS`,
expected: []any{
address.MustParseAddr("EQBHsHYE8p3iCrPva2XFmn0ZCwsV2BNS-GS5FmZ42ozMXW2x"),
address.MustParseAddr("EQBVQSJ0QRf0QU8CyjRvwjJOKrObUCPCE2VkbVPRfyCaV1NY"),
address.MustParseAddr("EQD2wz8Rq5QDj9iK2Z_leGQu-Rup__y-Z4wo8Lm7-tSD6Iz2"),
int8(-1),
address.MustParseAddr("EQBVQSJ0QRf0QU8CyjRvwjJOKrObUCPCE2VkbVPRfyCaV1NY"),
"\u0000\u0000\u0000\u0000asdtest",
"\u0000\u0000\u0000\u0000",
uint64(1000000000),
int8(-1),
int8(-1),
int8(-1),
address.MustParseAddr("EQAWROADS1e8nOgXmSjlSZS35kC5aWTvj8ukCj4ojrQqrr_a"),
&cell.Cell{},
uint64(10),
},
},
}
for _, test := range testCases {
ret := execGetMethod(t, i, test.addr, test.name, test.code, test.data)
for it := range ret {
if reflect.TypeOf(test.expected[it]) == reflect.TypeOf(&cell.Cell{}) {
continue
}
assert.Equal(t, test.expected[it], ret[it])
}
}
}