s402 0.2.0 → 0.2.1

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,110 @@
1
+ [
2
+ {
3
+ "description": "Decode minimal exact payload",
4
+ "input": {
5
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJzY2hlbWUiOiJleGFjdCIsInBheWxvYWQiOnsidHJhbnNhY3Rpb24iOiJkSGhmWW5sMFpYTT0iLCJzaWduYXR1cmUiOiJjMmxuWDJKNWRHVnoifX0="
6
+ },
7
+ "expected": {
8
+ "s402Version": "1",
9
+ "scheme": "exact",
10
+ "payload": {
11
+ "transaction": "dHhfYnl0ZXM=",
12
+ "signature": "c2lnX2J5dGVz"
13
+ }
14
+ },
15
+ "shouldReject": false
16
+ },
17
+ {
18
+ "description": "Decode prepaid payload",
19
+ "input": {
20
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJzY2hlbWUiOiJwcmVwYWlkIiwicGF5bG9hZCI6eyJ0cmFuc2FjdGlvbiI6ImRIaGZZbmwwWlhNPSIsInNpZ25hdHVyZSI6ImMybG5YMko1ZEdWeiIsInJhdGVQZXJDYWxsIjoiNTAwMCIsIm1heENhbGxzIjoiMTAwIn19"
21
+ },
22
+ "expected": {
23
+ "s402Version": "1",
24
+ "scheme": "prepaid",
25
+ "payload": {
26
+ "transaction": "dHhfYnl0ZXM=",
27
+ "signature": "c2lnX2J5dGVz",
28
+ "ratePerCall": "5000",
29
+ "maxCalls": "100"
30
+ }
31
+ },
32
+ "shouldReject": false
33
+ },
34
+ {
35
+ "description": "Decode unlock payload",
36
+ "input": {
37
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJzY2hlbWUiOiJ1bmxvY2siLCJwYXlsb2FkIjp7InRyYW5zYWN0aW9uIjoiZFc1c2IyTnJYM1I0Iiwic2lnbmF0dXJlIjoiZFc1c2IyTnJYM05wWnc9PSIsImVuY3J5cHRpb25JZCI6ImVuYy1hYmMtMTIzIn19"
38
+ },
39
+ "expected": {
40
+ "s402Version": "1",
41
+ "scheme": "unlock",
42
+ "payload": {
43
+ "transaction": "dW5sb2NrX3R4",
44
+ "signature": "dW5sb2NrX3NpZw==",
45
+ "encryptionId": "enc-abc-123"
46
+ }
47
+ },
48
+ "shouldReject": false
49
+ },
50
+ {
51
+ "description": "Decode stream payload",
52
+ "input": {
53
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJzY2hlbWUiOiJzdHJlYW0iLCJwYXlsb2FkIjp7InRyYW5zYWN0aW9uIjoiYzNSeVpXRnRYM1I0Iiwic2lnbmF0dXJlIjoiYzNSeVpXRnRYM05wWnc9PSJ9fQ=="
54
+ },
55
+ "expected": {
56
+ "s402Version": "1",
57
+ "scheme": "stream",
58
+ "payload": {
59
+ "transaction": "c3RyZWFtX3R4",
60
+ "signature": "c3RyZWFtX3NpZw=="
61
+ }
62
+ },
63
+ "shouldReject": false
64
+ },
65
+ {
66
+ "description": "Decode escrow payload",
67
+ "input": {
68
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJzY2hlbWUiOiJlc2Nyb3ciLCJwYXlsb2FkIjp7InRyYW5zYWN0aW9uIjoiWlhOamNtOTNYM1I0Iiwic2lnbmF0dXJlIjoiWlhOamNtOTNYM05wWnc9PSJ9fQ=="
69
+ },
70
+ "expected": {
71
+ "s402Version": "1",
72
+ "scheme": "escrow",
73
+ "payload": {
74
+ "transaction": "ZXNjcm93X3R4",
75
+ "signature": "ZXNjcm93X3NpZw=="
76
+ }
77
+ },
78
+ "shouldReject": false
79
+ },
80
+ {
81
+ "description": "Decode large transaction",
82
+ "input": {
83
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJzY2hlbWUiOiJleGFjdCIsInBheWxvYWQiOnsidHJhbnNhY3Rpb24iOiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIiwic2lnbmF0dXJlIjoiQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkIifX0="
84
+ },
85
+ "expected": {
86
+ "s402Version": "1",
87
+ "scheme": "exact",
88
+ "payload": {
89
+ "transaction": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
90
+ "signature": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
91
+ }
92
+ },
93
+ "shouldReject": false
94
+ },
95
+ {
96
+ "description": "Decode strips unknown top-level keys from payload",
97
+ "input": {
98
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJzY2hlbWUiOiJleGFjdCIsInBheWxvYWQiOnsidHJhbnNhY3Rpb24iOiJkSGhmWW5sMFpYTT0iLCJzaWduYXR1cmUiOiJjMmxuWDJKNWRHVnoifSwidW5rbm93blRvcExldmVsIjoic2hvdWxkIGJlIHN0cmlwcGVkIiwieDQwMlZlcnNpb24iOjF9"
99
+ },
100
+ "expected": {
101
+ "s402Version": "1",
102
+ "scheme": "exact",
103
+ "payload": {
104
+ "transaction": "dHhfYnl0ZXM=",
105
+ "signature": "c2lnX2J5dGVz"
106
+ }
107
+ },
108
+ "shouldReject": false
109
+ }
110
+ ]
@@ -0,0 +1,127 @@
1
+ [
2
+ {
3
+ "description": "Minimal exact payload",
4
+ "input": {
5
+ "s402Version": "1",
6
+ "scheme": "exact",
7
+ "payload": {
8
+ "transaction": "dHhfYnl0ZXM=",
9
+ "signature": "c2lnX2J5dGVz"
10
+ }
11
+ },
12
+ "expected": {
13
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJzY2hlbWUiOiJleGFjdCIsInBheWxvYWQiOnsidHJhbnNhY3Rpb24iOiJkSGhmWW5sMFpYTT0iLCJzaWduYXR1cmUiOiJjMmxuWDJKNWRHVnoifX0="
14
+ },
15
+ "shouldReject": false
16
+ },
17
+ {
18
+ "description": "Prepaid payload with ratePerCall",
19
+ "input": {
20
+ "s402Version": "1",
21
+ "scheme": "prepaid",
22
+ "payload": {
23
+ "transaction": "dHhfYnl0ZXM=",
24
+ "signature": "c2lnX2J5dGVz",
25
+ "ratePerCall": "5000",
26
+ "maxCalls": "100"
27
+ }
28
+ },
29
+ "expected": {
30
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJzY2hlbWUiOiJwcmVwYWlkIiwicGF5bG9hZCI6eyJ0cmFuc2FjdGlvbiI6ImRIaGZZbmwwWlhNPSIsInNpZ25hdHVyZSI6ImMybG5YMko1ZEdWeiIsInJhdGVQZXJDYWxsIjoiNTAwMCIsIm1heENhbGxzIjoiMTAwIn19"
31
+ },
32
+ "shouldReject": false
33
+ },
34
+ {
35
+ "description": "Stream payload",
36
+ "input": {
37
+ "s402Version": "1",
38
+ "scheme": "stream",
39
+ "payload": {
40
+ "transaction": "c3RyZWFtX3R4",
41
+ "signature": "c3RyZWFtX3NpZw=="
42
+ }
43
+ },
44
+ "expected": {
45
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJzY2hlbWUiOiJzdHJlYW0iLCJwYXlsb2FkIjp7InRyYW5zYWN0aW9uIjoiYzNSeVpXRnRYM1I0Iiwic2lnbmF0dXJlIjoiYzNSeVpXRnRYM05wWnc9PSJ9fQ=="
46
+ },
47
+ "shouldReject": false
48
+ },
49
+ {
50
+ "description": "Escrow payload",
51
+ "input": {
52
+ "s402Version": "1",
53
+ "scheme": "escrow",
54
+ "payload": {
55
+ "transaction": "ZXNjcm93X3R4",
56
+ "signature": "ZXNjcm93X3NpZw=="
57
+ }
58
+ },
59
+ "expected": {
60
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJzY2hlbWUiOiJlc2Nyb3ciLCJwYXlsb2FkIjp7InRyYW5zYWN0aW9uIjoiWlhOamNtOTNYM1I0Iiwic2lnbmF0dXJlIjoiWlhOamNtOTNYM05wWnc9PSJ9fQ=="
61
+ },
62
+ "shouldReject": false
63
+ },
64
+ {
65
+ "description": "Unlock payload with encryptionId",
66
+ "input": {
67
+ "s402Version": "1",
68
+ "scheme": "unlock",
69
+ "payload": {
70
+ "transaction": "dW5sb2NrX3R4",
71
+ "signature": "dW5sb2NrX3NpZw==",
72
+ "encryptionId": "enc-abc-123"
73
+ }
74
+ },
75
+ "expected": {
76
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJzY2hlbWUiOiJ1bmxvY2siLCJwYXlsb2FkIjp7InRyYW5zYWN0aW9uIjoiZFc1c2IyTnJYM1I0Iiwic2lnbmF0dXJlIjoiZFc1c2IyTnJYM05wWnc9PSIsImVuY3J5cHRpb25JZCI6ImVuYy1hYmMtMTIzIn19"
77
+ },
78
+ "shouldReject": false
79
+ },
80
+ {
81
+ "description": "Payload with extra x402Version field (encoded but stripped on decode)",
82
+ "input": {
83
+ "s402Version": "1",
84
+ "scheme": "exact",
85
+ "payload": {
86
+ "transaction": "dHhfYnl0ZXM=",
87
+ "signature": "c2lnX2J5dGVz"
88
+ },
89
+ "x402Version": 1
90
+ },
91
+ "expected": {
92
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJzY2hlbWUiOiJleGFjdCIsInBheWxvYWQiOnsidHJhbnNhY3Rpb24iOiJkSGhmWW5sMFpYTT0iLCJzaWduYXR1cmUiOiJjMmxuWDJKNWRHVnoifSwieDQwMlZlcnNpb24iOjF9"
93
+ },
94
+ "shouldReject": false
95
+ },
96
+ {
97
+ "description": "Large transaction bytes (base64)",
98
+ "input": {
99
+ "s402Version": "1",
100
+ "scheme": "exact",
101
+ "payload": {
102
+ "transaction": "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
103
+ "signature": "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
104
+ }
105
+ },
106
+ "expected": {
107
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJzY2hlbWUiOiJleGFjdCIsInBheWxvYWQiOnsidHJhbnNhY3Rpb24iOiJBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBIiwic2lnbmF0dXJlIjoiQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkJCQkIifX0="
108
+ },
109
+ "shouldReject": false
110
+ },
111
+ {
112
+ "description": "Prepaid payload with ratePerCall only (no maxCalls)",
113
+ "input": {
114
+ "s402Version": "1",
115
+ "scheme": "prepaid",
116
+ "payload": {
117
+ "transaction": "cHJlcGFpZF90eA==",
118
+ "signature": "cHJlcGFpZF9zaWc=",
119
+ "ratePerCall": "10000"
120
+ }
121
+ },
122
+ "expected": {
123
+ "header": "eyJzNDAyVmVyc2lvbiI6IjEiLCJzY2hlbWUiOiJwcmVwYWlkIiwicGF5bG9hZCI6eyJ0cmFuc2FjdGlvbiI6ImNISmxjR0ZwWkY5MGVBPT0iLCJzaWduYXR1cmUiOiJjSEpsY0dGcFpGOXphV2M9IiwicmF0ZVBlckNhbGwiOiIxMDAwMCJ9fQ=="
124
+ },
125
+ "shouldReject": false
126
+ }
127
+ ]