Skip to content

Commit 0305074

Browse files
authored
Merge pull request #4 from onflow/8-authorizer-bounds-check
Add array bounds check for transaction authorizers
2 parents e382b9c + 1efdb1e commit 0305074

File tree

7 files changed

+420
-12
lines changed

7 files changed

+420
-12
lines changed

app/src/parser_impl.c

+5
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,12 @@ parser_error_t _readProposalAuthorizers(parser_context_t *c, flow_proposal_autho
426426
CHECK_KIND(kind, kind_list)
427427

428428
while (v->ctx.offset < v->ctx.bufferLen) {
429+
if (v->authorizer_count >= 16) {
430+
return parser_unexpected_number_items;
431+
}
432+
429433
CHECK_PARSER_ERR(_readProposalAuthorizer(&v->ctx, &v->authorizer[v->authorizer_count]))
434+
430435
v->authorizer_count++;
431436
}
432437
v->ctx.offset = 0;

tests/generate-transaction-tests/index.js

+116
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,36 @@ const invalidPayloadCases = [
234234
buildPayloadTx(MAINNET, {script: ""}),
235235
MAINNET,
236236
],
237+
[
238+
"Example Transaction - Invalid Payload - Too Many Authorizers",
239+
buildPayloadTx(MAINNET, {
240+
// Maximum authorizer count is 16
241+
authorizers: [
242+
"a3a627d47f628e9b",
243+
"b5f242e7e66684fa",
244+
"5195fb3af79c8425",
245+
"4254874588d9dcde",
246+
247+
"a6333e989923dc01",
248+
"b0675bab0027d660",
249+
"5400e27611ddd6bf",
250+
"bb4d6932cca2a849",
251+
252+
"5f2ad0efdd58a896",
253+
"497eb5dc445ca2f7",
254+
"ad190c0155a6a228",
255+
"1ff233dcee8f96d6",
256+
257+
"fb958a01ff759609",
258+
"edc1ef3266719c68",
259+
"09a656ef778b9cb7",
260+
"e6ebddabaaf4e241",
261+
262+
"028c6476bb0ee29e",
263+
],
264+
}),
265+
MAINNET,
266+
],
237267
].map(x => ({
238268
title: x[0],
239269
valid: false,
@@ -290,6 +320,34 @@ const validPayloadCases = [
290320
buildPayloadTx(MAINNET, {authorizers: []}),
291321
MAINNET,
292322
],
323+
[
324+
"Example Transaction - Valid Envelope - Maximum Authorizers",
325+
buildPayloadTx(MAINNET, {
326+
// Maximum authorizer count is 16
327+
authorizers: [
328+
// Lists are merged in buildPayloadTx, so first authorizer is already added
329+
"a3a627d47f628e9b",
330+
"b5f242e7e66684fa",
331+
"5195fb3af79c8425",
332+
333+
"4254874588d9dcde",
334+
"a6333e989923dc01",
335+
"b0675bab0027d660",
336+
"5400e27611ddd6bf",
337+
338+
"bb4d6932cca2a849",
339+
"5f2ad0efdd58a896",
340+
"497eb5dc445ca2f7",
341+
"ad190c0155a6a228",
342+
343+
"1ff233dcee8f96d6",
344+
"fb958a01ff759609",
345+
"edc1ef3266719c68",
346+
"09a656ef778b9cb7",
347+
],
348+
}),
349+
MAINNET,
350+
],
293351
...validPayloadTransferCases,
294352
...(ACCOUNT_KEYS.map((accountKey, i) =>
295353
[
@@ -367,6 +425,36 @@ const invalidEnvelopeCases = [
367425
buildEnvelopeTx(MAINNET, {script: ""}),
368426
MAINNET,
369427
],
428+
[
429+
"Example Transaction - Invalid Envelope - Too Many Authorizers",
430+
buildEnvelopeTx(MAINNET, {
431+
// Maximum authorizer count is 16
432+
authorizers: [
433+
"a3a627d47f628e9b",
434+
"b5f242e7e66684fa",
435+
"5195fb3af79c8425",
436+
"4254874588d9dcde",
437+
438+
"a6333e989923dc01",
439+
"b0675bab0027d660",
440+
"5400e27611ddd6bf",
441+
"bb4d6932cca2a849",
442+
443+
"5f2ad0efdd58a896",
444+
"497eb5dc445ca2f7",
445+
"ad190c0155a6a228",
446+
"1ff233dcee8f96d6",
447+
448+
"fb958a01ff759609",
449+
"edc1ef3266719c68",
450+
"09a656ef778b9cb7",
451+
"e6ebddabaaf4e241",
452+
453+
"028c6476bb0ee29e",
454+
],
455+
}),
456+
MAINNET,
457+
],
370458
].map(x => ({
371459
title: x[0],
372460
valid: false,
@@ -423,6 +511,34 @@ const validEnvelopeCases = [
423511
buildEnvelopeTx(MAINNET, {authorizers: []}),
424512
MAINNET,
425513
],
514+
[
515+
"Example Transaction - Valid Envelope - Maximum Authorizers",
516+
buildEnvelopeTx(MAINNET, {
517+
// Maximum authorizer count is 16
518+
authorizers: [
519+
// Lists are merged in buildEnvelopeTx, so first authorizer is already added
520+
"a3a627d47f628e9b",
521+
"b5f242e7e66684fa",
522+
"5195fb3af79c8425",
523+
524+
"4254874588d9dcde",
525+
"a6333e989923dc01",
526+
"b0675bab0027d660",
527+
"5400e27611ddd6bf",
528+
529+
"bb4d6932cca2a849",
530+
"5f2ad0efdd58a896",
531+
"497eb5dc445ca2f7",
532+
"ad190c0155a6a228",
533+
534+
"1ff233dcee8f96d6",
535+
"fb958a01ff759609",
536+
"edc1ef3266719c68",
537+
"09a656ef778b9cb7",
538+
],
539+
}),
540+
MAINNET,
541+
],
426542
[
427543
"Example Transaction - Valid Envelope - Empty payloadSigs",
428544
buildEnvelopeTx(MAINNET, {payloadSigs: []}),

tests/testvectors/invalidEnvelopeCases.json

+89
Original file line numberDiff line numberDiff line change
@@ -108,5 +108,94 @@
108108
},
109109
"encodedTransactionPayloadHex": "f8f380f8b0b8ae7b2274797065223a22537472696e67222c2276616c7565223a226638343762383430393434383861373935613037373030633666623833653036366366353764666438376639326365373063626338316362336264336665613264663762363730373362373065333662343466333537386234336436346433666161326538653431356566366332623566653433393064356137386532333835383163366534626330323033383230336538227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4",
110110
"encodedTransactionEnvelopeHex": "f8f6f8f380f8b0b8ae7b2274797065223a22537472696e67222c2276616c7565223a226638343762383430393434383861373935613037373030633666623833653036366366353764666438376639326365373063626338316362336264336665613264663762363730373362373065333662343466333537386234336436346433666161326538653431356566366332623566653433393064356137386532333835383163366534626330323033383230336538227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0"
111+
},
112+
{
113+
"title": "Example Transaction - Invalid Envelope - Too Many Authorizers",
114+
"valid": false,
115+
"chainID": "Mainnet",
116+
"payloadMessage": {
117+
"script": "transaction(publicKey: String) {\nprepare(signer: AuthAccount) {\nsigner.addPublicKey(publicKey.decodeHex())\n}\n}",
118+
"arguments": [
119+
{
120+
"type": "String",
121+
"value": "f847b84094488a795a07700c6fb83e066cf57dfd87f92ce70cbc81cb3bd3fea2df7b67073b70e36b44f3578b43d64d3faa2e8e415ef6c2b5fe4390d5a78e238581c6e4bc02038203e8"
122+
}
123+
],
124+
"refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b",
125+
"gasLimit": 42,
126+
"proposalKey": {
127+
"address": "f19c161bc24cf4b4",
128+
"keyId": 4,
129+
"sequenceNum": 10
130+
},
131+
"payer": "f19c161bc24cf4b4",
132+
"authorizers": [
133+
"f19c161bc24cf4b4",
134+
"a3a627d47f628e9b",
135+
"b5f242e7e66684fa",
136+
"5195fb3af79c8425",
137+
"4254874588d9dcde",
138+
"a6333e989923dc01",
139+
"b0675bab0027d660",
140+
"5400e27611ddd6bf",
141+
"bb4d6932cca2a849",
142+
"5f2ad0efdd58a896",
143+
"497eb5dc445ca2f7",
144+
"ad190c0155a6a228",
145+
"1ff233dcee8f96d6",
146+
"fb958a01ff759609",
147+
"edc1ef3266719c68",
148+
"09a656ef778b9cb7",
149+
"e6ebddabaaf4e241",
150+
"028c6476bb0ee29e"
151+
],
152+
"payloadSigs": [
153+
{
154+
"address": "f19c161bc24cf4b4",
155+
"keyId": 4,
156+
"sig": "f7225388c1d69d57e6251c9fda50cbbf9e05131e5adb81e5aa0422402f048162"
157+
}
158+
]
159+
},
160+
"envelopeMessage": {
161+
"script": "transaction(publicKey: String) {\nprepare(signer: AuthAccount) {\nsigner.addPublicKey(publicKey.decodeHex())\n}\n}",
162+
"arguments": [
163+
{
164+
"type": "String",
165+
"value": "f847b84094488a795a07700c6fb83e066cf57dfd87f92ce70cbc81cb3bd3fea2df7b67073b70e36b44f3578b43d64d3faa2e8e415ef6c2b5fe4390d5a78e238581c6e4bc02038203e8"
166+
}
167+
],
168+
"refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b",
169+
"gasLimit": 42,
170+
"proposalKey": {
171+
"address": "f19c161bc24cf4b4",
172+
"keyId": 4,
173+
"sequenceNum": 10
174+
},
175+
"payer": "f19c161bc24cf4b4",
176+
"authorizers": [
177+
"f19c161bc24cf4b4",
178+
"a3a627d47f628e9b",
179+
"b5f242e7e66684fa",
180+
"5195fb3af79c8425",
181+
"4254874588d9dcde",
182+
"a6333e989923dc01",
183+
"b0675bab0027d660",
184+
"5400e27611ddd6bf",
185+
"bb4d6932cca2a849",
186+
"5f2ad0efdd58a896",
187+
"497eb5dc445ca2f7",
188+
"ad190c0155a6a228",
189+
"1ff233dcee8f96d6",
190+
"fb958a01ff759609",
191+
"edc1ef3266719c68",
192+
"09a656ef778b9cb7",
193+
"e6ebddabaaf4e241",
194+
"028c6476bb0ee29e"
195+
],
196+
"payloadSigs": []
197+
},
198+
"encodedTransactionPayloadHex": "f901fcb86e7472616e73616374696f6e287075626c69634b65793a20537472696e6729207b0a70726570617265287369676e65723a20417574684163636f756e7429207b0a7369676e65722e6164645075626c69634b6579287075626c69634b65792e6465636f64654865782829290a7d0a7df8b0b8ae7b2274797065223a22537472696e67222c2276616c7565223a226638343762383430393434383861373935613037373030633666623833653036366366353764666438376639326365373063626338316362336264336665613264663762363730373362373065333662343466333537386234336436346433666161326538653431356566366332623566653433393064356137386532333835383163366534626330323033383230336538227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4f8a288f19c161bc24cf4b488a3a627d47f628e9b88b5f242e7e66684fa885195fb3af79c8425884254874588d9dcde88a6333e989923dc0188b0675bab0027d660885400e27611ddd6bf88bb4d6932cca2a849885f2ad0efdd58a89688497eb5dc445ca2f788ad190c0155a6a228881ff233dcee8f96d688fb958a01ff75960988edc1ef3266719c688809a656ef778b9cb788e6ebddabaaf4e24188028c6476bb0ee29e",
199+
"encodedTransactionEnvelopeHex": "f90200f901fcb86e7472616e73616374696f6e287075626c69634b65793a20537472696e6729207b0a70726570617265287369676e65723a20417574684163636f756e7429207b0a7369676e65722e6164645075626c69634b6579287075626c69634b65792e6465636f64654865782829290a7d0a7df8b0b8ae7b2274797065223a22537472696e67222c2276616c7565223a226638343762383430393434383861373935613037373030633666623833653036366366353764666438376639326365373063626338316362336264336665613264663762363730373362373065333662343466333537386234336436346433666161326538653431356566366332623566653433393064356137386532333835383163366534626330323033383230336538227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4f8a288f19c161bc24cf4b488a3a627d47f628e9b88b5f242e7e66684fa885195fb3af79c8425884254874588d9dcde88a6333e989923dc0188b0675bab0027d660885400e27611ddd6bf88bb4d6932cca2a849885f2ad0efdd58a89688497eb5dc445ca2f788ad190c0155a6a228881ff233dcee8f96d688fb958a01ff75960988edc1ef3266719c688809a656ef778b9cb788e6ebddabaaf4e24188028c6476bb0ee29ec0"
111200
}
112201
]

tests/testvectors/invalidPayloadCases.json

+82
Original file line numberDiff line numberDiff line change
@@ -94,5 +94,87 @@
9494
},
9595
"encodedTransactionPayloadHex": "f8f380f8b0b8ae7b2274797065223a22537472696e67222c2276616c7565223a226638343762383430393434383861373935613037373030633666623833653036366366353764666438376639326365373063626338316362336264336665613264663762363730373362373065333662343466333537386234336436346433666161326538653431356566366332623566653433393064356137386532333835383163366534626330323033383230336538227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4",
9696
"encodedTransactionEnvelopeHex": "f8f6f8f380f8b0b8ae7b2274797065223a22537472696e67222c2276616c7565223a226638343762383430393434383861373935613037373030633666623833653036366366353764666438376639326365373063626338316362336264336665613264663762363730373362373065333662343466333537386234336436346433666161326538653431356566366332623566653433393064356137386532333835383163366534626330323033383230336538227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0"
97+
},
98+
{
99+
"title": "Example Transaction - Invalid Payload - Too Many Authorizers",
100+
"valid": false,
101+
"chainID": "Mainnet",
102+
"payloadMessage": {
103+
"script": "transaction(publicKey: String) {\nprepare(signer: AuthAccount) {\nsigner.addPublicKey(publicKey.decodeHex())\n}\n}",
104+
"arguments": [
105+
{
106+
"type": "String",
107+
"value": "f847b84094488a795a07700c6fb83e066cf57dfd87f92ce70cbc81cb3bd3fea2df7b67073b70e36b44f3578b43d64d3faa2e8e415ef6c2b5fe4390d5a78e238581c6e4bc02038203e8"
108+
}
109+
],
110+
"refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b",
111+
"gasLimit": 42,
112+
"proposalKey": {
113+
"address": "f19c161bc24cf4b4",
114+
"keyId": 4,
115+
"sequenceNum": 10
116+
},
117+
"payer": "f19c161bc24cf4b4",
118+
"authorizers": [
119+
"f19c161bc24cf4b4",
120+
"a3a627d47f628e9b",
121+
"b5f242e7e66684fa",
122+
"5195fb3af79c8425",
123+
"4254874588d9dcde",
124+
"a6333e989923dc01",
125+
"b0675bab0027d660",
126+
"5400e27611ddd6bf",
127+
"bb4d6932cca2a849",
128+
"5f2ad0efdd58a896",
129+
"497eb5dc445ca2f7",
130+
"ad190c0155a6a228",
131+
"1ff233dcee8f96d6",
132+
"fb958a01ff759609",
133+
"edc1ef3266719c68",
134+
"09a656ef778b9cb7",
135+
"e6ebddabaaf4e241",
136+
"028c6476bb0ee29e"
137+
]
138+
},
139+
"envelopeMessage": {
140+
"script": "transaction(publicKey: String) {\nprepare(signer: AuthAccount) {\nsigner.addPublicKey(publicKey.decodeHex())\n}\n}",
141+
"arguments": [
142+
{
143+
"type": "String",
144+
"value": "f847b84094488a795a07700c6fb83e066cf57dfd87f92ce70cbc81cb3bd3fea2df7b67073b70e36b44f3578b43d64d3faa2e8e415ef6c2b5fe4390d5a78e238581c6e4bc02038203e8"
145+
}
146+
],
147+
"refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b",
148+
"gasLimit": 42,
149+
"proposalKey": {
150+
"address": "f19c161bc24cf4b4",
151+
"keyId": 4,
152+
"sequenceNum": 10
153+
},
154+
"payer": "f19c161bc24cf4b4",
155+
"authorizers": [
156+
"f19c161bc24cf4b4",
157+
"a3a627d47f628e9b",
158+
"b5f242e7e66684fa",
159+
"5195fb3af79c8425",
160+
"4254874588d9dcde",
161+
"a6333e989923dc01",
162+
"b0675bab0027d660",
163+
"5400e27611ddd6bf",
164+
"bb4d6932cca2a849",
165+
"5f2ad0efdd58a896",
166+
"497eb5dc445ca2f7",
167+
"ad190c0155a6a228",
168+
"1ff233dcee8f96d6",
169+
"fb958a01ff759609",
170+
"edc1ef3266719c68",
171+
"09a656ef778b9cb7",
172+
"e6ebddabaaf4e241",
173+
"028c6476bb0ee29e"
174+
],
175+
"payloadSigs": []
176+
},
177+
"encodedTransactionPayloadHex": "f901fcb86e7472616e73616374696f6e287075626c69634b65793a20537472696e6729207b0a70726570617265287369676e65723a20417574684163636f756e7429207b0a7369676e65722e6164645075626c69634b6579287075626c69634b65792e6465636f64654865782829290a7d0a7df8b0b8ae7b2274797065223a22537472696e67222c2276616c7565223a226638343762383430393434383861373935613037373030633666623833653036366366353764666438376639326365373063626338316362336264336665613264663762363730373362373065333662343466333537386234336436346433666161326538653431356566366332623566653433393064356137386532333835383163366534626330323033383230336538227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4f8a288f19c161bc24cf4b488a3a627d47f628e9b88b5f242e7e66684fa885195fb3af79c8425884254874588d9dcde88a6333e989923dc0188b0675bab0027d660885400e27611ddd6bf88bb4d6932cca2a849885f2ad0efdd58a89688497eb5dc445ca2f788ad190c0155a6a228881ff233dcee8f96d688fb958a01ff75960988edc1ef3266719c688809a656ef778b9cb788e6ebddabaaf4e24188028c6476bb0ee29e",
178+
"encodedTransactionEnvelopeHex": "f90200f901fcb86e7472616e73616374696f6e287075626c69634b65793a20537472696e6729207b0a70726570617265287369676e65723a20417574684163636f756e7429207b0a7369676e65722e6164645075626c69634b6579287075626c69634b65792e6465636f64654865782829290a7d0a7df8b0b8ae7b2274797065223a22537472696e67222c2276616c7565223a226638343762383430393434383861373935613037373030633666623833653036366366353764666438376639326365373063626338316362336264336665613264663762363730373362373065333662343466333537386234336436346433666161326538653431356566366332623566653433393064356137386532333835383163366534626330323033383230336538227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4f8a288f19c161bc24cf4b488a3a627d47f628e9b88b5f242e7e66684fa885195fb3af79c8425884254874588d9dcde88a6333e989923dc0188b0675bab0027d660885400e27611ddd6bf88bb4d6932cca2a849885f2ad0efdd58a89688497eb5dc445ca2f788ad190c0155a6a228881ff233dcee8f96d688fb958a01ff75960988edc1ef3266719c688809a656ef778b9cb788e6ebddabaaf4e24188028c6476bb0ee29ec0"
97179
}
98180
]

tests/testvectors/validEnvelopeCases.json

+48
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,54 @@
129129
},
130130
"encodedTransactionEnvelopeHex": "f90181f90159b86e7472616e73616374696f6e287075626c69634b65793a20537472696e6729207b0a70726570617265287369676e65723a20417574684163636f756e7429207b0a7369676e65722e6164645075626c69634b6579287075626c69634b65792e6465636f64654865782829290a7d0a7df8b0b8ae7b2274797065223a22537472696e67222c2276616c7565223a226638343762383430393434383861373935613037373030633666623833653036366366353764666438376639326365373063626338316362336264336665613264663762363730373362373065333662343466333537386234336436346433666161326538653431356566366332623566653433393064356137386532333835383163366534626330323033383230336538227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c0e4e38004a0f7225388c1d69d57e6251c9fda50cbbf9e05131e5adb81e5aa0422402f048162"
131131
},
132+
{
133+
"title": "Example Transaction - Valid Envelope - Maximum Authorizers",
134+
"valid": true,
135+
"chainID": "Mainnet",
136+
"envelopeMessage": {
137+
"script": "transaction(publicKey: String) {\nprepare(signer: AuthAccount) {\nsigner.addPublicKey(publicKey.decodeHex())\n}\n}",
138+
"arguments": [
139+
{
140+
"type": "String",
141+
"value": "f847b84094488a795a07700c6fb83e066cf57dfd87f92ce70cbc81cb3bd3fea2df7b67073b70e36b44f3578b43d64d3faa2e8e415ef6c2b5fe4390d5a78e238581c6e4bc02038203e8"
142+
}
143+
],
144+
"refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b",
145+
"gasLimit": 42,
146+
"proposalKey": {
147+
"address": "f19c161bc24cf4b4",
148+
"keyId": 4,
149+
"sequenceNum": 10
150+
},
151+
"payer": "f19c161bc24cf4b4",
152+
"authorizers": [
153+
"f19c161bc24cf4b4",
154+
"a3a627d47f628e9b",
155+
"b5f242e7e66684fa",
156+
"5195fb3af79c8425",
157+
"4254874588d9dcde",
158+
"a6333e989923dc01",
159+
"b0675bab0027d660",
160+
"5400e27611ddd6bf",
161+
"bb4d6932cca2a849",
162+
"5f2ad0efdd58a896",
163+
"497eb5dc445ca2f7",
164+
"ad190c0155a6a228",
165+
"1ff233dcee8f96d6",
166+
"fb958a01ff759609",
167+
"edc1ef3266719c68",
168+
"09a656ef778b9cb7"
169+
],
170+
"payloadSigs": [
171+
{
172+
"address": "f19c161bc24cf4b4",
173+
"keyId": 4,
174+
"sig": "f7225388c1d69d57e6251c9fda50cbbf9e05131e5adb81e5aa0422402f048162"
175+
}
176+
]
177+
},
178+
"encodedTransactionEnvelopeHex": "f90212f901eab86e7472616e73616374696f6e287075626c69634b65793a20537472696e6729207b0a70726570617265287369676e65723a20417574684163636f756e7429207b0a7369676e65722e6164645075626c69634b6579287075626c69634b65792e6465636f64654865782829290a7d0a7df8b0b8ae7b2274797065223a22537472696e67222c2276616c7565223a226638343762383430393434383861373935613037373030633666623833653036366366353764666438376639326365373063626338316362336264336665613264663762363730373362373065333662343466333537386234336436346433666161326538653431356566366332623566653433393064356137386532333835383163366534626330323033383230336538227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4f89088f19c161bc24cf4b488a3a627d47f628e9b88b5f242e7e66684fa885195fb3af79c8425884254874588d9dcde88a6333e989923dc0188b0675bab0027d660885400e27611ddd6bf88bb4d6932cca2a849885f2ad0efdd58a89688497eb5dc445ca2f788ad190c0155a6a228881ff233dcee8f96d688fb958a01ff75960988edc1ef3266719c688809a656ef778b9cb7e4e38004a0f7225388c1d69d57e6251c9fda50cbbf9e05131e5adb81e5aa0422402f048162"
179+
},
132180
{
133181
"title": "Example Transaction - Valid Envelope - Empty payloadSigs",
134182
"valid": true,

0 commit comments

Comments
 (0)