Acceder/Modificar Parámetros de Opciones en Contrato

Estoy usando truffle y metamask para implementar un contrato muy simple que permite la transferencia de éter de una cuenta de prueba a otra.

¿Cómo uso mi archivo JavaScript para acceder a los parámetros de opciones que se pasaron durante la implementación? ¿Se pueden modificar posteriormente los parámetros del constructor pasados ​​durante la implementación?

Aquí está la línea en 2_deploy_contracts.js:

deployer.deploy(EscrowPayment, web3.eth.accounts[1], web3.eth.accounts[2], {gas: 4400000, value: web3.toWei(20, 'ether')});

El parámetro de opciones sería{gas: 4400000, value: web3.toWei(20, 'ether')}

Aquí está el constructor en el contrato:

function EscrowPayment(address _seller, address _judge) payable {
    buyer = msg.sender;
    seller = _seller;
    judge = _judge;
}

Leí esta documentación pero no pude hacer algo como "myContract.options"

Respuestas (1)

Las opciones que está pasando en el último objeto json son: límite de gas y valor de Ether para enviar. Estos (y otros parámetros configurables, como el remitente o el precio del combustible) están disponibles a través de msgobjetos txcomo se describe aquí :

function EscrowPayment(address _seller, address _judge) payable {
    gasLimit = msg.gas; // this is only the *remaining* gas and not the exact value that you passed
    value = msg.value; // in Wei
    gasPrice = tx.gasprice;
    buyer = msg.sender;
    seller = _seller;
    judge = _judge;
}
¡Gracias! Muy útil. También me preguntaba, ¿aún podemos cambiar las variables, como el vendedor, después de implementar el contrato?
no puede, a menos que proporcione una función para ello (y luego todos los que vean su contrato pueden ver su modificable). Ese es realmente el poder de los contratos inteligentes, por cierto, con esta comprensión profunda, entiendes más de blockchain que el 99.9% de las personas :)
@juwu si esto es útil, considere aceptar mi respuesta con el botón de marca de verificación verde :)