From ab73b6a96f85c2f6425dc820978c5e42c3762546 Mon Sep 17 00:00:00 2001 From: Daniel Wang Date: Fri, 18 Sep 2020 11:59:15 +0800 Subject: [PATCH 1/2] unify submitBlocksCompressedWithCallbacks --- .../aux/access/LoopringIOExchangeOwner.sol | 29 +++++-------------- 1 file changed, 7 insertions(+), 22 deletions(-) diff --git a/packages/loopring_v3/contracts/aux/access/LoopringIOExchangeOwner.sol b/packages/loopring_v3/contracts/aux/access/LoopringIOExchangeOwner.sol index e031eca97..52b9cb40c 100644 --- a/packages/loopring_v3/contracts/aux/access/LoopringIOExchangeOwner.sol +++ b/packages/loopring_v3/contracts/aux/access/LoopringIOExchangeOwner.sol @@ -35,7 +35,8 @@ contract LoopringIOExchangeOwner is SelectorBasedAccessManager { } - function submitBlocksCompressed( + function submitBlocksCompressedWithCallbacks( + bool isDataCompressed, bytes calldata data, BlockCallback[] calldata callbacks ) @@ -45,7 +46,10 @@ contract LoopringIOExchangeOwner is SelectorBasedAccessManager hasAccessTo(msg.sender, SUBMITBLOCKS_SELECTOR) || open, "PERMISSION_DENIED" ); - bytes memory decompressed = ZeroDecompressor.decompress(data, 0); + bytes memory decompressed = isDataCompressed ? + ZeroDecompressor.decompress(data, 0): + data; + require( decompressed.toBytes4(0) == SUBMITBLOCKS_SELECTOR, "INVALID_DATA" @@ -64,24 +68,6 @@ contract LoopringIOExchangeOwner is SelectorBasedAccessManager target.fastCallAndVerify(gasleft(), 0, decompressed); } - function submitBlocksWithCallbacks( - ExchangeData.Block[] memory blocks, - BlockCallback[] calldata callbacks - ) - external - { - require( - hasAccessTo(msg.sender, SUBMITBLOCKS_SELECTOR) || open, - "PERMISSION_DENIED" - ); - - // Process the callback logic. - processCallbacks(blocks, callbacks); - - // Finally submit the blocks - IExchangeV3(target).submitBlocks(blocks); - } - function openAccessToSubmitBlocks(bool _open) external onlyOwner @@ -90,9 +76,8 @@ contract LoopringIOExchangeOwner is SelectorBasedAccessManager emit SubmitBlocksAccessOpened(_open); } - function processCallbacks( - ExchangeData.Block[] memory blocks, + ExchangeData.Block[] memory blocks, BlockCallback[] calldata callbacks ) internal From 333877afea3fe18c8154dce76447da5679922c7d Mon Sep 17 00:00:00 2001 From: Daniel Wang Date: Fri, 18 Sep 2020 12:00:30 +0800 Subject: [PATCH 2/2] unify submitBlocksCompressedWithCallbacks --- .../contracts/aux/access/LoopringIOExchangeOwner.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/loopring_v3/contracts/aux/access/LoopringIOExchangeOwner.sol b/packages/loopring_v3/contracts/aux/access/LoopringIOExchangeOwner.sol index 52b9cb40c..065764c5d 100644 --- a/packages/loopring_v3/contracts/aux/access/LoopringIOExchangeOwner.sol +++ b/packages/loopring_v3/contracts/aux/access/LoopringIOExchangeOwner.sol @@ -35,7 +35,7 @@ contract LoopringIOExchangeOwner is SelectorBasedAccessManager { } - function submitBlocksCompressedWithCallbacks( + function submitBlocksWithCallbacks( bool isDataCompressed, bytes calldata data, BlockCallback[] calldata callbacks