MCPcopy Create free account
hub / github.com/cowprotocol/services / encode_wrapper_settlement

Function encode_wrapper_settlement

crates/simulator/src/encoding.rs:281–298  ·  view source on GitHub ↗

Encodes a settlement transaction that uses wrapper contracts. Takes the base settlement calldata and wraps it in a wrappedSettleCall with encoded wrapper metadata. Since wrappers are a chain, the wrapper address to call is also processed by this function. Returns (first_wrapper_address, wrapped_calldata)

(
    wrappers: &[WrapperCall],
    settle_calldata: Bytes,
)

Source from the content-addressed store, hash-verified

279///
280/// Returns (first_wrapper_address, wrapped_calldata)
281pub fn encode_wrapper_settlement(
282 wrappers: &[WrapperCall],
283 settle_calldata: Bytes,
284) -> Option<(Address, Bytes)> {
285 if wrappers.is_empty() {
286 return None;
287 };
288 let wrapper_data = encode_wrapper_data(wrappers);
289
290 // Create wrappedSettleCall
291 let calldata = contracts::ICowWrapper::ICowWrapper::wrappedSettleCall {
292 settleData: settle_calldata,
293 wrapperData: wrapper_data,
294 }
295 .abi_encode();
296
297 Some((wrappers[0].address, calldata.into()))
298}
299
300/// Encodes wrapper metadata for wrapper settlement calls.
301/// As wrappers are called, each wrapper reads from wrapper calldata and

Callers 2

txFunction · 0.85

Calls 4

encode_wrapper_dataFunction · 0.85
is_emptyMethod · 0.45
abi_encodeMethod · 0.45
intoMethod · 0.45

Tested by

no test coverage detected