// "SPDX-License-Identifier: Apache-2.0" pragma solidity ^0.6.11; pragma experimental ABIEncoderV2; import "./SharedTypes.sol"; contract Conversions { function encodeCollateralAsObject(address collateralToken, uint256 collateralAmount) public pure returns (bytes32) { return bytes32(uint256(uint160(collateralToken))) << 96 | bytes32(uint256(uint96(collateralAmount))); } function decodeCollateralObject(bytes32 object) public pure returns (address, uint256) { return ( address(uint160(uint256(object >> 96))), uint256(uint96(uint256(object))) ); } }