pub fn decode(token: Token) -> anyhow::Result<Self> {
        let tokens = token.into_tuple().context("not a tuple")?;
        anyhow::ensure!(tokens.len() == 5);
        let mut t = tokens.into_iter();
        let mut next = || t.next().unwrap();
        Ok(Self {
            bytecode_hash: next()
                .into_fixed_bytes()
                .and_then(|b| Some(H256(b.try_into().ok()?)))
                .context("bytecode_hash")?,
            new_address: next().into_address().context("new_address")?,
            call_constructor: next().into_bool().context("call_constructor")?,
            value: next().into_uint().context("value")?,
            input: next().into_bytes().context("input")?,
        })
    }
Decodes `ForceDeployment` from a RLP token.
Returns an error if token doesn't match the `schema()`.
core/lib/types/src/abi.rs