¿Puedo usar Web3.js para implementar y acceder a contratos inteligentes con un cliente TestRPC local?

Estoy en el punto en el que migré mi contrato inteligente a una copia local del cliente de prueba TestRPC.

1) Al usar una aplicación Node.JS que se ejecuta en la misma PC que el cliente de prueba TestRPC, ¿puedo usar la función deployment() para implementar una nueva instancia de mi contrato inteligente en el cliente TestRPC que se ejecuta localmente? ¿O eso solo es posible con una red de prueba como Rinkeby, etc. o la red principal de Ethereum como objetivo de despliegue?

2) La misma pregunta pero para acceder a contratos inteligentes a través de la biblioteca Web3.js. ¿Puedo usar esa biblioteca para interactuar con la instancia de contrato inteligente que se ejecuta en el cliente TestRPC local desde una aplicación Node.js que se ejecuta en la misma PC?

Si alguien tiene algún enlace a algún buen ejemplo que muestre cómo migrar/implementar un contrato inteligente y acceder a las viewfunciones del contrato inteligente desde una aplicación Node.JS usando la biblioteca Web3.js, por favor comparta.

Respuestas (2)

Buscaría en la documentación sobre el uso de Truffle Framework. Le permite implementar e interactuar con sus contratos inteligentes en TESTRPC o Rinkeby.

Para responder a su segunda pregunta, aquí hay un ejemplo:

contract("MyContractTest", () => {
    let FACTOR = 5;

    let myContract;
    before(async () => {
        myContract = await artifacts.require("MyContract.sol").new(FACTOR);
    });

    describe(`my test:`, async () => {
        for (let i = 0; i < 100; i++) {
            it(`func(${i})`, async () => {
                try {
                    let expected = i * FACTOR;
                    let actual   = await myContract.func(i);
                    assert(actual.equals(expected), `expected ${expected} but got ${actual}`);
                }
                catch (error) {
                    assert(false, error.message);
                }
            });
        }
    });
});

Todo lo que necesitas está aquí .