Estoy explorando el método trade
de este contrato inteligente que se parece a lo siguiente:
function trade(address tokenGet, uint amountGet, address tokenGive, uint amountGive, uint expires, uint nonce, address user, uint8 v, bytes32 r, bytes32 s, uint amount) {
//amount is in amountGet terms
bytes32 hash = sha256(this, tokenGet, amountGet, tokenGive, amountGive, expires, nonce);
if (!(
(orders[user][hash] || ecrecover(sha3("\x19Ethereum Signed Message:\n32", hash), v, r, s) == user) &&
block.number <= expires &&
safeAdd(orderFills[user][hash], amount) <= amountGet
)) throw;
tradeBalances(tokenGet, amountGet, tokenGive, amountGive, user, amount);
orderFills[user][hash] = safeAdd(orderFills[user][hash], amount);
Trade(tokenGet, amount, tokenGive, amountGive * amount / amountGet, user, msg.sender);
}
Por favor, podría responder las siguientes preguntas:
amountGet
y amount
argumentos?ETH
usuarios obtuvieron al vender el token ARC en esta transacción ? Me da amountGive
este valor?La entrada decodificada de esta transacción es:
inputs: [
'0xac709fcb44a43c35f0da4e3163b117a17f3770f5',
'2500000000000000000000',
'0x0000000000000000000000000000000000000000',
'13775000000000000000',
'3156959',
'3696351802',
'0xd8eeda4ee2657bb267bc35c1d60babdc5aedd269',
'28',
'b4bf0dcd37ca73bd5abce9532b033dcc6427be160683de113efca41320c27f3e',
'78799d84040e5c245828b1b531ef97e1af124946f4dc1db5a20cf28a7073b269',
'726181804936299500000'
]
¡Gracias por sus respuestas de antemano!
amountGet
es cuánto está dispuesto a comprar el autor de la orden. amount
es cuánto está dispuesto a vender el tomador de la orden.
amount
es la cantidad que se negocia. amountGet
solo se utiliza para localizar el pedido por su hash. La cantidad de tokenGive
(ETH en este caso) que obtiene el remitente de la transacción es amount * amountGive / amountGet
.
erik
medvedev1088
amount * amountGive / amountGet
ser Puede hacer coincidir los valores de entrada correspondientes con esos argumentos.erik
amount * amountGive / amountGet
me daETH
?medvedev1088
medvedev1088
tokenGive
. En este ejemplo particular, es 0x0, que es ETH.medvedev1088
medvedev1088
erik
erik