Debe implementar y vincular las siguientes bibliotecas antes de poder implementar una nueva versión de Contract

Hice mi biblioteca personalizada y trato de usarla en mi propio proyecto.
A continuación se muestra el 2_deploy_contracts.js

module.exports =  async(deployer, netowrk) => {
await deployer.deploy(OptionStorage, ownerAddress);
await deployer.deploy(LDerivativeFactory);
await deployer.link(LDerivativeFactory, DerivativeFactory);
await deployer.deploy(DerivativeFactory, OptionStorage.address, XToken);
};

y en casos de prueba, estoy tratando de usarlo como

beforeEach(async () => {
    optionStorage = await OptionStorage.new(owner);
    //library = await Library.new();
    //DerivativeFactory.link('LDerivativeFactory',library.address);
    derivativeFactory = await DerivativeFactory.new(optionStorage.address, quoteToken.address, { from : owner, gas : 50000 });
});

pero al ejecutar los casos de prueba me encuentro con el error

Error: DerivativeFactory contiene bibliotecas sin resolver. Debe implementar y vincular las siguientes bibliotecas antes de poder implementar una nueva versión de DerivativeFactory: LDerivativeFactory

¿Como resolverlo? También trato de vincular en los casos de prueba, luego terminé con un error diferente

Error: Error: la tarifa base supera el límite de gasolina

Cualquier ayuda es admirable

modificar su qus con más detalle. ¿Qué clase se hereda y qué clase de biblioteca?
Truffle tiene algunos problemas al usar async/await en scripts de migración github.com/trufflesuite/truffle/issues/501 . Quizás en tu caso eso cause problemas en tus pruebas.
@Ismael No lo creo, así que se implementa usando async/await pero no funciona con casos de prueba, pero cuando intento con .then () arroja el error en la implementación en síError: VM Exception while processing transaction: revert
@Ismael, tiene razón cuando depuro ambos tx (uno de async y de .then()) ambos no me dan ningún código fuente que encuentre el error. no entiendo porque? al final del día, ambas formas no me están ayudando.

Respuestas (1)

Debe usar la solución recomendada en el problema n. ° 501 , el problema que causa es que los artefactos de la trufa no se actualizan en el orden correcto.

async function doDeploy(deployer, network) {
    await deployer.deploy(OptionStorage, ownerAddress);
    await deployer.deploy(LDerivativeFactory);
    await deployer.link(LDerivativeFactory, DerivativeFactory);
    await deployer.deploy(DerivativeFactory, OptionStorage.address, XToken);
}


module.exports = (deployer, network) => {
    deployer.then(async () => {
        await doDeploy(deployer, network);
    });
};