Add Assert.sol as a Ladle integration on Mainnet and Arbitrum
Generally, interaction with the protocol is done through a set of encoded transactions sent to the Ladle (via the batch() function). These transactions each run in isolation and and have no notion of the overall intent of the interaction. This means that incorrectly structured transaction sets could potentially 'succeed', but not have the intended result.
This integration adds the ability to check if a ladle batch transaction meets an arbitrary expected outcome. An call to Assert.sol (deployed at 0x40f0b18C7A41C04F848C033eD7F9178D9c5A80d8 ) is added to the batch (typically at the end), if the assertion fails, so does the entire batch.
Testing was done on a tenderly fork:
Manual verification of state changes on Mainnet can be seen on this fork this tenderly fork.
Manual verification of state changes on Arbitrum can be seen on this fork this tenderly fork.
Mainnet: Executed 0x3a4d5c2ad6b0c8e3df23a59f6e5a43f6f3d531461ebf9dac1cf51932cb975f40 TxHash: 0x4046b3cd59ba6decd4a71bc92efc507df1429a2f0256c7952529ed537ed4a18a
Arbitrum: Executed 0x31c130743ba866b683c8a90b8123c2cfa83c800bf918c75800e730d74e5a47ba TxHash: 0x57010786d0d52ba878ac7fe00d96d624a6b9d200207642f033ee5ad36039e3d5