Estoy escribiendo algunos contratos inteligentes de Solidity bastante sustanciales, y creo que estoy alcanzando el límite de tamaño de código de bytes de 24k EIP170. yo ya
(a) factorizó mi código en bibliotecas
(b) hoy dividí mi contrato en dos partes.
Nada parece estar ayudando a llegar por debajo del límite. Diablos, dividir en dos contratos -aumentó- -severamente- el código de uno de los dos contratos resultantes, mucho más grande que el contrato todo en uno original.
¿Existen herramientas que ayuden a averiguar de dónde proviene el exceso de código? ¿Otros métodos de fraccionamiento para reducir el tamaño?
Lo más probable es que la hinchazón del código de bytes provenga de las nuevas declaraciones en su código. A menudo son los creadores de problemas porque incluyen el código del contrato que se va a instanciar. Puede crear fábricas por contrato que puede implementar en el frente. De esta manera, puede reducir el tamaño del código de bytes de su contrato principal.
P.ej
contract X {}
contract XFactory {
function createX() returns (X) {
return new X();
}
}
contract Main {
XFactory xFactory;
...
Main(XFactory _xFactory) {
xFactory = _xFactory;
}
...
function someMethod() {
X x = xFactory.create();
}
...
}
Es posible sortear la limitación del tamaño máximo del contrato implementando el Estándar de contrato transparente: https://github.com/ethereum/EIPs/issues/1538
ivicaa
cheque
ivicaa