2

When an extrinsic has an input of for example:

some_call(origin: OriginFor<T>, input: BoundedVec<u8, ConstU32<6>>)

And calling this with input exceeding lenght 6 (ex: "1234567")

The runtime panics on validating the transaction and recovers after.

I'm not quite certain if this is actually the behaviour that is expected. Maybe the better thing to do is to make the input just a Vec<u8> and try to construct the boundedVector in the call itself and throw and error if it exceeds the size.

related stacktrace: https://gist.github.com/DylanVerstraete/5f47a3b0a86620fafe9a05395e519ab4

1 Answer 1

2

The node will just not gossip that transaction. No harm being done if you run your own node.

Sure you can also construct the bounded-vec inside the call, but then the caller has to pay fees in case the construction fails. Its a different design choice.

1
  • Indeed the transaction is not gossiped, thanks for pointing this out. Commented Feb 23, 2023 at 12:21

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.