¿Cuántos usuarios de ether finalmente obtienen después de negociar este contrato inteligente?

Estoy explorando el método tradede 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:

  1. ¿ Cuál es la diferencia entre amountGety amountargumentos?
  2. ¿Cómo puedo saber cuántos ETHusuarios obtuvieron al vender el token ARC en esta transacción ? Me da amountGiveeste 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!

Respuestas (1)

  1. amountGetes cuánto está dispuesto a comprar el autor de la orden. amountes cuánto está dispuesto a vender el tomador de la orden.

  2. amountes la cantidad que se negocia. amountGetsolo 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.

gracias por la respuesta rápida, pero aún quedan preguntas sobre cuánto eth obtuvo el fabricante después de este intercambio. ¿Cómo calcularlo en función de los datos de entrada de transacciones en mi pregunta?
debería amount * amountGive / amountGetser Puede hacer coincidir los valores de entrada correspondientes con esos argumentos.
¿ Estás seguro de que amount * amountGive / amountGetme da ETH?
Que yo sepa si. ¿Tienes alguna duda?
Normalmente debería darte la cantidad de tokenGive. En este ejemplo particular, es 0x0, que es ETH.
@Erik, ¿ayudó?
Perdón por la pregunta estúpida, ¿mi ejemplo de transacción es vender ETH o comprar ETH?