s402 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,377 @@
1
+ [
2
+ {
3
+ "description": "Decode minimal exact requirements",
4
+ "input": {
5
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbImV4YWN0Il0sIm5ldHdvcmsiOiJzdWk6bWFpbm5ldCIsImFzc2V0IjoiMHgyOjpzdWk6OlNVSSIsImFtb3VudCI6IjEwMDAwMDAiLCJwYXlUbyI6IjB4YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MCJ9"
6
+ },
7
+ "expected": {
8
+ "s402Version": "1",
9
+ "accepts": [
10
+ "exact"
11
+ ],
12
+ "network": "sui:mainnet",
13
+ "asset": "0x2::sui::SUI",
14
+ "amount": "1000000",
15
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890"
16
+ },
17
+ "shouldReject": false
18
+ },
19
+ {
20
+ "description": "Decode stream scheme",
21
+ "input": {
22
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbInN0cmVhbSJdLCJuZXR3b3JrIjoic3VpOm1haW5uZXQiLCJhc3NldCI6IjB4Mjo6c3VpOjpTVUkiLCJhbW91bnQiOiIxMDAwMDAwIiwicGF5VG8iOiIweGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTAiLCJzdHJlYW0iOnsicmF0ZVBlclNlY29uZCI6IjEwMDAiLCJidWRnZXRDYXAiOiIxMDAwMDAwMDAiLCJtaW5EZXBvc2l0IjoiMTAwMDAwMDAifX0="
23
+ },
24
+ "expected": {
25
+ "s402Version": "1",
26
+ "accepts": [
27
+ "stream"
28
+ ],
29
+ "network": "sui:mainnet",
30
+ "asset": "0x2::sui::SUI",
31
+ "amount": "1000000",
32
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
33
+ "stream": {
34
+ "ratePerSecond": "1000",
35
+ "budgetCap": "100000000",
36
+ "minDeposit": "10000000"
37
+ }
38
+ },
39
+ "shouldReject": false
40
+ },
41
+ {
42
+ "description": "Decode escrow scheme",
43
+ "input": {
44
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbImVzY3JvdyJdLCJuZXR3b3JrIjoic3VpOm1haW5uZXQiLCJhc3NldCI6IjB4Mjo6c3VpOjpTVUkiLCJhbW91bnQiOiIxMDAwMDAwIiwicGF5VG8iOiIweGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTAiLCJlc2Nyb3ciOnsic2VsbGVyIjoiMHhzZWxsZXIxMjM0NTY3ODkwIiwiZGVhZGxpbmVNcyI6IjE3MDAwMDAwMDAwMDAifX0="
45
+ },
46
+ "expected": {
47
+ "s402Version": "1",
48
+ "accepts": [
49
+ "escrow"
50
+ ],
51
+ "network": "sui:mainnet",
52
+ "asset": "0x2::sui::SUI",
53
+ "amount": "1000000",
54
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
55
+ "escrow": {
56
+ "seller": "0xseller1234567890",
57
+ "deadlineMs": "1700000000000"
58
+ }
59
+ },
60
+ "shouldReject": false
61
+ },
62
+ {
63
+ "description": "Decode unlock scheme",
64
+ "input": {
65
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbInVubG9jayJdLCJuZXR3b3JrIjoic3VpOm1haW5uZXQiLCJhc3NldCI6IjB4Mjo6c3VpOjpTVUkiLCJhbW91bnQiOiIxMDAwMDAwIiwicGF5VG8iOiIweGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTAiLCJ1bmxvY2siOnsiZW5jcnlwdGlvbklkIjoiZW5jLWFiYy0xMjMiLCJ3YWxydXNCbG9iSWQiOiJibG9iLXh5ei03ODkiLCJlbmNyeXB0aW9uUGFja2FnZUlkIjoiMHhwa2cxMjM0NTY3ODkwIn19"
66
+ },
67
+ "expected": {
68
+ "s402Version": "1",
69
+ "accepts": [
70
+ "unlock"
71
+ ],
72
+ "network": "sui:mainnet",
73
+ "asset": "0x2::sui::SUI",
74
+ "amount": "1000000",
75
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
76
+ "unlock": {
77
+ "encryptionId": "enc-abc-123",
78
+ "walrusBlobId": "blob-xyz-789",
79
+ "encryptionPackageId": "0xpkg1234567890"
80
+ }
81
+ },
82
+ "shouldReject": false
83
+ },
84
+ {
85
+ "description": "Decode prepaid v0.2",
86
+ "input": {
87
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbInByZXBhaWQiXSwibmV0d29yayI6InN1aTptYWlubmV0IiwiYXNzZXQiOiIweDI6OnN1aTo6U1VJIiwiYW1vdW50IjoiMTAwMDAwMCIsInBheVRvIjoiMHhhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwIiwicHJlcGFpZCI6eyJyYXRlUGVyQ2FsbCI6IjUwMDAiLCJtaW5EZXBvc2l0IjoiNTAwMDAwIiwid2l0aGRyYXdhbERlbGF5TXMiOiIzNjAwMDAwIiwicHJvdmlkZXJQdWJrZXkiOiJhMWIyYzNkNGU1ZjZhMWIyYzNkNGU1ZjZhMWIyYzNkNGU1ZjZhMWIyYzNkNGU1ZjZhMWIyYzNkNGU1ZjZhMWIyIiwiZGlzcHV0ZVdpbmRvd01zIjoiODY0MDAwMDAifX0="
88
+ },
89
+ "expected": {
90
+ "s402Version": "1",
91
+ "accepts": [
92
+ "prepaid"
93
+ ],
94
+ "network": "sui:mainnet",
95
+ "asset": "0x2::sui::SUI",
96
+ "amount": "1000000",
97
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
98
+ "prepaid": {
99
+ "ratePerCall": "5000",
100
+ "minDeposit": "500000",
101
+ "withdrawalDelayMs": "3600000",
102
+ "providerPubkey": "a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2",
103
+ "disputeWindowMs": "86400000"
104
+ }
105
+ },
106
+ "shouldReject": false
107
+ },
108
+ {
109
+ "description": "Decode prepaid v0.1",
110
+ "input": {
111
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbInByZXBhaWQiXSwibmV0d29yayI6InN1aTptYWlubmV0IiwiYXNzZXQiOiIweDI6OnN1aTo6U1VJIiwiYW1vdW50IjoiMTAwMDAwMCIsInBheVRvIjoiMHhhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwIiwicHJlcGFpZCI6eyJyYXRlUGVyQ2FsbCI6IjUwMDAiLCJtaW5EZXBvc2l0IjoiNTAwMDAwIiwid2l0aGRyYXdhbERlbGF5TXMiOiIzNjAwMDAwIn19"
112
+ },
113
+ "expected": {
114
+ "s402Version": "1",
115
+ "accepts": [
116
+ "prepaid"
117
+ ],
118
+ "network": "sui:mainnet",
119
+ "asset": "0x2::sui::SUI",
120
+ "amount": "1000000",
121
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
122
+ "prepaid": {
123
+ "ratePerCall": "5000",
124
+ "minDeposit": "500000",
125
+ "withdrawalDelayMs": "3600000"
126
+ }
127
+ },
128
+ "shouldReject": false
129
+ },
130
+ {
131
+ "description": "Decode with mandate",
132
+ "input": {
133
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbImV4YWN0Il0sIm5ldHdvcmsiOiJzdWk6bWFpbm5ldCIsImFzc2V0IjoiMHgyOjpzdWk6OlNVSSIsImFtb3VudCI6IjEwMDAwMDAiLCJwYXlUbyI6IjB4YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MCIsIm1hbmRhdGUiOnsicmVxdWlyZWQiOnRydWUsIm1pblBlclR4IjoiMTAwMDAwIn19"
134
+ },
135
+ "expected": {
136
+ "s402Version": "1",
137
+ "accepts": [
138
+ "exact"
139
+ ],
140
+ "network": "sui:mainnet",
141
+ "asset": "0x2::sui::SUI",
142
+ "amount": "1000000",
143
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
144
+ "mandate": {
145
+ "required": true,
146
+ "minPerTx": "100000"
147
+ }
148
+ },
149
+ "shouldReject": false
150
+ },
151
+ {
152
+ "description": "Decode with fees",
153
+ "input": {
154
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbImV4YWN0Il0sIm5ldHdvcmsiOiJzdWk6bWFpbm5ldCIsImFzc2V0IjoiMHgyOjpzdWk6OlNVSSIsImFtb3VudCI6IjEwMDAwMDAiLCJwYXlUbyI6IjB4YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MCIsInByb3RvY29sRmVlQnBzIjoyNTAsInByb3RvY29sRmVlQWRkcmVzcyI6IjB4ZmVlX2NvbGxlY3Rvcl9hZGRyZXNzXzEyMzQ1Njc4OTAifQ=="
155
+ },
156
+ "expected": {
157
+ "s402Version": "1",
158
+ "accepts": [
159
+ "exact"
160
+ ],
161
+ "network": "sui:mainnet",
162
+ "asset": "0x2::sui::SUI",
163
+ "amount": "1000000",
164
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
165
+ "protocolFeeBps": 250,
166
+ "protocolFeeAddress": "0xfee_collector_address_1234567890"
167
+ },
168
+ "shouldReject": false
169
+ },
170
+ {
171
+ "description": "Decode with facilitatorUrl",
172
+ "input": {
173
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbImV4YWN0Il0sIm5ldHdvcmsiOiJzdWk6bWFpbm5ldCIsImFzc2V0IjoiMHgyOjpzdWk6OlNVSSIsImFtb3VudCI6IjEwMDAwMDAiLCJwYXlUbyI6IjB4YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MCIsImZhY2lsaXRhdG9yVXJsIjoiaHR0cHM6Ly9mYWNpbGl0YXRvci5leGFtcGxlLmNvbS9zZXR0bGUifQ=="
174
+ },
175
+ "expected": {
176
+ "s402Version": "1",
177
+ "accepts": [
178
+ "exact"
179
+ ],
180
+ "network": "sui:mainnet",
181
+ "asset": "0x2::sui::SUI",
182
+ "amount": "1000000",
183
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
184
+ "facilitatorUrl": "https://facilitator.example.com/settle"
185
+ },
186
+ "shouldReject": false
187
+ },
188
+ {
189
+ "description": "Decode with expiresAt",
190
+ "input": {
191
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbImV4YWN0Il0sIm5ldHdvcmsiOiJzdWk6bWFpbm5ldCIsImFzc2V0IjoiMHgyOjpzdWk6OlNVSSIsImFtb3VudCI6IjEwMDAwMDAiLCJwYXlUbyI6IjB4YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MCIsImV4cGlyZXNBdCI6MTcwMDAwMDAwMDAwMH0="
192
+ },
193
+ "expected": {
194
+ "s402Version": "1",
195
+ "accepts": [
196
+ "exact"
197
+ ],
198
+ "network": "sui:mainnet",
199
+ "asset": "0x2::sui::SUI",
200
+ "amount": "1000000",
201
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
202
+ "expiresAt": 1700000000000
203
+ },
204
+ "shouldReject": false
205
+ },
206
+ {
207
+ "description": "Decode with extensions",
208
+ "input": {
209
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbImV4YWN0Il0sIm5ldHdvcmsiOiJzdWk6bWFpbm5ldCIsImFzc2V0IjoiMHgyOjpzdWk6OlNVSSIsImFtb3VudCI6IjEwMDAwMDAiLCJwYXlUbyI6IjB4YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MCIsImV4dGVuc2lvbnMiOnsiYXVjdGlvbiI6eyJ0eXBlIjoic2VhbGVkLWJpZCIsImRlYWRsaW5lIjoxNzA4MDAwMDAwMDAwfSwiY3VzdG9tRmllbGQiOiJoZWxsbyB3b3JsZCJ9fQ=="
210
+ },
211
+ "expected": {
212
+ "s402Version": "1",
213
+ "accepts": [
214
+ "exact"
215
+ ],
216
+ "network": "sui:mainnet",
217
+ "asset": "0x2::sui::SUI",
218
+ "amount": "1000000",
219
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
220
+ "extensions": {
221
+ "auction": {
222
+ "type": "sealed-bid",
223
+ "deadline": 1708000000000
224
+ },
225
+ "customField": "hello world"
226
+ }
227
+ },
228
+ "shouldReject": false
229
+ },
230
+ {
231
+ "description": "Decode with direct settlement",
232
+ "input": {
233
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbImV4YWN0Il0sIm5ldHdvcmsiOiJzdWk6bWFpbm5ldCIsImFzc2V0IjoiMHgyOjpzdWk6OlNVSSIsImFtb3VudCI6IjEwMDAwMDAiLCJwYXlUbyI6IjB4YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MCIsInNldHRsZW1lbnRNb2RlIjoiZGlyZWN0In0="
234
+ },
235
+ "expected": {
236
+ "s402Version": "1",
237
+ "accepts": [
238
+ "exact"
239
+ ],
240
+ "network": "sui:mainnet",
241
+ "asset": "0x2::sui::SUI",
242
+ "amount": "1000000",
243
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
244
+ "settlementMode": "direct"
245
+ },
246
+ "shouldReject": false
247
+ },
248
+ {
249
+ "description": "Decode with facilitator settlement",
250
+ "input": {
251
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbImV4YWN0Il0sIm5ldHdvcmsiOiJzdWk6bWFpbm5ldCIsImFzc2V0IjoiMHgyOjpzdWk6OlNVSSIsImFtb3VudCI6IjEwMDAwMDAiLCJwYXlUbyI6IjB4YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MCIsInNldHRsZW1lbnRNb2RlIjoiZmFjaWxpdGF0b3IiLCJmYWNpbGl0YXRvclVybCI6Imh0dHBzOi8vZmFjaWxpdGF0b3IuZXhhbXBsZS5jb20vc2V0dGxlIn0="
252
+ },
253
+ "expected": {
254
+ "s402Version": "1",
255
+ "accepts": [
256
+ "exact"
257
+ ],
258
+ "network": "sui:mainnet",
259
+ "asset": "0x2::sui::SUI",
260
+ "amount": "1000000",
261
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
262
+ "facilitatorUrl": "https://facilitator.example.com/settle",
263
+ "settlementMode": "facilitator"
264
+ },
265
+ "shouldReject": false
266
+ },
267
+ {
268
+ "description": "Decode with receipt required",
269
+ "input": {
270
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbImV4YWN0Il0sIm5ldHdvcmsiOiJzdWk6bWFpbm5ldCIsImFzc2V0IjoiMHgyOjpzdWk6OlNVSSIsImFtb3VudCI6IjEwMDAwMDAiLCJwYXlUbyI6IjB4YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MCIsInJlY2VpcHRSZXF1aXJlZCI6dHJ1ZX0="
271
+ },
272
+ "expected": {
273
+ "s402Version": "1",
274
+ "accepts": [
275
+ "exact"
276
+ ],
277
+ "network": "sui:mainnet",
278
+ "asset": "0x2::sui::SUI",
279
+ "amount": "1000000",
280
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
281
+ "receiptRequired": true
282
+ },
283
+ "shouldReject": false
284
+ },
285
+ {
286
+ "description": "Decode with multiple schemes",
287
+ "input": {
288
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbImV4YWN0IiwicHJlcGFpZCIsInN0cmVhbSJdLCJuZXR3b3JrIjoic3VpOm1haW5uZXQiLCJhc3NldCI6IjB4Mjo6c3VpOjpTVUkiLCJhbW91bnQiOiIxMDAwMDAwIiwicGF5VG8iOiIweGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTAifQ=="
289
+ },
290
+ "expected": {
291
+ "s402Version": "1",
292
+ "accepts": [
293
+ "exact",
294
+ "prepaid",
295
+ "stream"
296
+ ],
297
+ "network": "sui:mainnet",
298
+ "asset": "0x2::sui::SUI",
299
+ "amount": "1000000",
300
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890"
301
+ },
302
+ "shouldReject": false
303
+ },
304
+ {
305
+ "description": "Decode u64 max amount",
306
+ "input": {
307
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbImV4YWN0Il0sIm5ldHdvcmsiOiJzdWk6bWFpbm5ldCIsImFzc2V0IjoiMHgyOjpzdWk6OlNVSSIsImFtb3VudCI6IjE4NDQ2NzQ0MDczNzA5NTUxNjE1IiwicGF5VG8iOiIweGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTAifQ=="
308
+ },
309
+ "expected": {
310
+ "s402Version": "1",
311
+ "accepts": [
312
+ "exact"
313
+ ],
314
+ "network": "sui:mainnet",
315
+ "asset": "0x2::sui::SUI",
316
+ "amount": "18446744073709551615",
317
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890"
318
+ },
319
+ "shouldReject": false
320
+ },
321
+ {
322
+ "description": "Decode zero amount",
323
+ "input": {
324
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbImV4YWN0Il0sIm5ldHdvcmsiOiJzdWk6bWFpbm5ldCIsImFzc2V0IjoiMHgyOjpzdWk6OlNVSSIsImFtb3VudCI6IjAiLCJwYXlUbyI6IjB4YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MCJ9"
325
+ },
326
+ "expected": {
327
+ "s402Version": "1",
328
+ "accepts": [
329
+ "exact"
330
+ ],
331
+ "network": "sui:mainnet",
332
+ "asset": "0x2::sui::SUI",
333
+ "amount": "0",
334
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890"
335
+ },
336
+ "shouldReject": false
337
+ },
338
+ {
339
+ "description": "Decode strips unknown top-level keys",
340
+ "input": {
341
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbImV4YWN0Il0sIm5ldHdvcmsiOiJzdWk6bWFpbm5ldCIsImFzc2V0IjoiMHgyOjpzdWk6OlNVSSIsImFtb3VudCI6IjEwMDAwMDAiLCJwYXlUbyI6IjB4YWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MCIsImluamVjdGVkRXZpbCI6InNob3VsZCBiZSBzdHJpcHBlZCIsIl9pbnRlcm5hbCI6Imhhcm1sZXNzIGJ1dCB1bmtub3duIiwieF9jdXN0b21faGVhZGVyIjo0Mn0="
342
+ },
343
+ "expected": {
344
+ "s402Version": "1",
345
+ "accepts": [
346
+ "exact"
347
+ ],
348
+ "network": "sui:mainnet",
349
+ "asset": "0x2::sui::SUI",
350
+ "amount": "1000000",
351
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890"
352
+ },
353
+ "shouldReject": false
354
+ },
355
+ {
356
+ "description": "Decode strips unknown keys from sub-objects (stream)",
357
+ "input": {
358
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJhY2NlcHRzIjpbInN0cmVhbSJdLCJuZXR3b3JrIjoic3VpOm1haW5uZXQiLCJhc3NldCI6IjB4Mjo6c3VpOjpTVUkiLCJhbW91bnQiOiIxMDAwMDAwIiwicGF5VG8iOiIweGFiY2RlZjEyMzQ1Njc4OTBhYmNkZWYxMjM0NTY3ODkwYWJjZGVmMTIzNDU2Nzg5MGFiY2RlZjEyMzQ1Njc4OTAiLCJzdHJlYW0iOnsicmF0ZVBlclNlY29uZCI6IjEwMDAiLCJidWRnZXRDYXAiOiIxMDAwMDAwMDAiLCJtaW5EZXBvc2l0IjoiMTAwMDAwMDAiLCJpbmplY3RlZEZpZWxkIjoic2hvdWxkIGJlIHN0cmlwcGVkIGZyb20gc3ViLW9iamVjdCJ9fQ=="
359
+ },
360
+ "expected": {
361
+ "s402Version": "1",
362
+ "accepts": [
363
+ "stream"
364
+ ],
365
+ "network": "sui:mainnet",
366
+ "asset": "0x2::sui::SUI",
367
+ "amount": "1000000",
368
+ "payTo": "0xabcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
369
+ "stream": {
370
+ "ratePerSecond": "1000",
371
+ "budgetCap": "100000000",
372
+ "minDeposit": "10000000"
373
+ }
374
+ },
375
+ "shouldReject": false
376
+ }
377
+ ]