Closed BrendanChou closed 4 years ago
printed-out and traced execution locally to double-check that the hashing is being done properly and the signatures object is populated correctly
signatures
Function Signatures { '0xf851a440': 'admin()', '0x8f283970': 'changeAdmin(address)', '0x5c60da1b': 'implementation()', '0x3659cfe6': 'upgradeTo(address)', '0x4f1ef286': 'upgradeToAndCall(address,bytes)', '0x47e7ef24': 'deposit(address,uint256)', '0xf40c3699': 'enableFinalSettlement(uint256,uint256)', '0x93423e9c': 'getAccountBalance(address)', '0x9ba63e9e': 'getAccountIndex(address)', '0x6e9960c3': 'getAdmin()', '0x7099366b': 'getFinalSettlementEnabled()', '0xdc4f3a0e': 'getFunderContract()', '0x80d63681': 'getGlobalIndex()', '0x052f72d7': 'getIsGlobalOperator(address)', '0x3a031bf0': 'getIsLocalOperator(address,address)', '0xe830b690': 'getMinCollateral()', '0xe3bbb565': 'getOracleContract()', '0x796da7af': 'getOraclePrice()', '0x28b7bede': 'getTokenContract()', '0x84ea2862': 'hasAccountPermissions(address,address)', '0x0acc8cd1': 'setFunder(address)', '0x46d256c5': 'setGlobalOperator(address,bool)', '0xb4959e72': 'setLocalOperator(address,bool)', '0x846321a4': 'setMinCollateral(uint256)', '0x7adbf973': 'setOracle(address)', '0x68eec3f6': 'trade(address[],(uint256,uint256,address,bytes)[])', '0xd9caed12': 'withdraw(address,address,uint256)', '0x142c69b3': 'withdrawFinalSettlement()', '0xa895155b': 'initializeV1(address,address,address,uint256)', '0x56a281ea': 'MAX_ABS_DIFF_PER_SECOND()', '0x499c9c6d': 'MAX_ABS_VALUE()', '0x0b8781ee': '_FUNDING_RATE_PROVIDER_()', '0x8f32d59b': 'isOwner()', '0x8da5cb5b': 'owner()', '0x715018a6': 'renounceOwnership()', '0xf2fde38b': 'transferOwnership(address)', '0xebed4bd4': 'getFunding(uint256)', '0xef460e36': 'setFundingRate((uint256,bool))', '0x109f60e3': 'setFundingRateProvider(address)', '0x46fb89ce': '_ADJUSTMENTS_(address)', '0xca670a7a': '_ROUTER_(address)', '0x98d5fdca': 'getPrice()', '0x0505e94d': 'setRoute(address,address)', '0xf77b3a17': 'setAdjustment(address,uint256)', '0xc7dc03f9': '_EIP712_DOMAIN_HASH_()', '0x5c457f29': '_FILLED_AMOUNT_(bytes32)', '0xd4bec8eb': '_PERPETUAL_V1_()', '0x9ea07071': '_STATUS_(bytes32)', '0x970c2ba1': 'trade(address,address,address,uint256,bytes,bytes32)', '0x867f1690': 'approveOrder((bytes32,uint256,uint256,uint256,uint256,address,address,uint256))', '0x7946c890': 'cancelOrder((bytes32,uint256,uint256,uint256,uint256,address,address,uint256))', '0xaacc263e': 'getOrdersStatus(bytes32[])', '0x741c1195': 'DELEVERAGING_TIMELOCK_S()', '0x8e085c98': '_DELEVERAGING_OPERATOR_()', '0x5ce999b6': '_MARKED_TIMESTAMP_(address)', '0x7ceeb880': 'mark(address)', '0xa5db6198': 'unmark(address)', '0x4ca5dcb2': 'setDeleveragingOperator(address)', '0xfe0f8858': 'approveMaximumOnPerpetual(address)', '0xb13b8d0a': 'deposit(address,address,address,address,uint256,bytes)', '0x5b3901f6': 'withdraw(address,address,address,address,address,uint256,bytes)', '0x4ce7c2ca': '_INSURANCE_FEE_()', '0x3fa8c92a': '_INSURANCE_FUND_()', '0x786ed92e': '_LIQUIDATION_()', '0x8ffac733': 'approveMaximumOnPerpetual()', '0xa5d9c62a': 'liquidate(address,address,bool,(uint256,bool))', '0xc3c05293': 'setInsuranceFund(address)', '0xba32681e': 'setInsuranceFee(uint256)', '0x60aec0f0': 'EXCHANGE_ADDRESS()', '0x13dfc516': '_MAKER_AMOUNT_()', '0x8c4d443f': '_TAKER_AMOUNT_()', '0x3ebddc21': 'setMakerAmount(uint256)', '0xcc246d8b': 'setTakerAmount(uint256)', '0x3a8fdd7d': 'getExchangeCost(address,address,uint256,bytes)', '0x7d98ebac': 'exchange(address,address,address,address,uint256,bytes)', '0x5001f3b5': 'base()', '0xce18b190': 'baseMul(uint256,uint256)', '0x6394400f': 'baseMulRoundUp(uint256,uint256)', '0x5b827a5d': 'getFraction(uint256,uint256,uint256)', '0x97259d26': 'getFractionRoundUp(uint256,uint256,uint256)', '0x7ae2b5c7': 'min(uint256,uint256)', '0x6d5433e6': 'max(uint256,uint256)', '0x4c93be61': 'that(bool,string,address)', '0x809fdd33': 'toUint128(uint256)', '0x1e4e4bad': 'toUint120(uint256)', '0xc8193255': 'toUint32(uint256)', '0x2953a626': 'add((uint256,bool),uint256)', '0xd165c800': 'sub((uint256,bool),uint256)', '0xb63f6580': 'signedAdd((uint256,bool),(uint256,bool))', '0x51894bf6': 'signedSub((uint256,bool),(uint256,bool))', '0xf0350799': 'load(bytes32)', '0x4000e4f6': 'store(bytes32,bytes32)', '0x19045a25': 'recover(bytes32,bytes)', '0xd46b4aff': 'copy((bool,bool,uint120,uint120))', '0xe78af4ec': 'addToMargin((bool,bool,uint120,uint120),uint256)', '0x7dd1c962': 'subFromMargin((bool,bool,uint120,uint120),uint256)', '0xcf178408': 'addToPosition((bool,bool,uint120,uint120),uint256)', '0x437348e7': 'subFromPosition((bool,bool,uint120,uint120),uint256)', '0xd5ae406c': 'getPositiveAndNegativeValue((bool,bool,uint120,uint120),uint256)', '0xc1f7ea1e': 'getMargin((bool,bool,uint120,uint120))', '0x1491ac01': 'getPosition((bool,bool,uint120,uint120))', '0x80778a4f': 'setMargin((bool,bool,uint120,uint120),(uint256,bool))', '0x0d261665': 'setPosition((bool,bool,uint120,uint120),(uint256,bool))', '0x4437e178': 'nonReentrant1()', '0x7bdfba4b': 'nonReentrant2()', '0x4993cc3b': '_FUNDING_()', '0x910fb073': '_FUNDING_IS_POSITIVE_()', '0xe41a054f': 'setFunding(bool,uint256)', '0x6d2c6021': 'TRADER_FLAG_RESULT_2()', '0x9f5cf46a': '_PRICE_()', '0x495f9bff': '_TRADE_RESULT_()', '0x75092a30': '_TRADE_RESULT_2_()', '0x91b7f5ed': 'setPrice(uint256)', '0x63a3d85f': 'setSecondTradeResult(uint256,uint256,bool,bytes32)', '0xe53adbb2': 'setTradeResult(uint256,uint256,bool,bytes32)', '0xdd62ed3e': 'allowance(address,address)', '0x095ea7b3': 'approve(address,uint256)', '0x70a08231': 'balanceOf(address)', '0x313ce567': 'decimals()', '0xa457c2d7': 'decreaseAllowance(address,uint256)', '0x39509351': 'increaseAllowance(address,uint256)', '0x06fdde03': 'name()', '0x95d89b41': 'symbol()', '0x18160ddd': 'totalSupply()', '0xa9059cbb': 'transfer(address,uint256)', '0x23b872dd': 'transferFrom(address,address,uint256)', '0x40c10f19': 'mint(address,uint256)', '0x6f0fb301': '_VALID_()', '0x262a9dff': 'age()', '0xfebb0f7e': 'bar()', '0xb8a35a01': 'setValidity(bool)', '0x57de26a4': 'read()', '0x59e02dd7': 'peek()', '0x89bbb8b2': 'poke(uint256[],uint256[],uint8[],bytes32[],bytes32[])' }
printed-out and traced execution locally to double-check that the hashing is being done properly and the
signatures
object is populated correctly