sociedadponzi
never settle
AccessControl implementa un map internamente. La ventaja es que en el smart contract solo tienes que declarar el rol y añadirlo en el constructor. Las No hay que hacer una funcion especifica para añadir o eliminar wallets del rol, sino que puedes usar metodos web3. Es decir, son menos lineas de solidity.
estaba tentado a reemplazar mis mappings de whitelist y blacklist por AccessControl pero cuando vi que AccessControl tiene 247 iineas de codigo, e importa 4 contractos mas, decidi quedarme con mis 2 mappings xq pense que iba a subir mucho el tamanyo del contrato y con ello la cantidad de gas. No me parece optimo en cuestion de eficiencia para este caso. Por eso decia que OZ deberia tener un AntiWhale.sol basico....
openzeppelin-contracts/contracts/access/AccessControl.sol at master · OpenZeppelin/openzeppelin-contracts
OpenZeppelin Contracts is a library for secure smart contract development. - OpenZeppelin/openzeppelin-contracts
github.com
El problema con el uso de maps es que cada vez que se añade un usuario al map, tanto la lista de color como la blanca, significa que *tu* debes pagar por 20.000 unidades de gas, que es el coste de salvar en la blockchain un valor en un map.
Imagina que tienes 1000 usuarios. Pues te puedes gastar perfectamente 5k dolares en gas para añadir a las listas blanca y de color si resulta que tus usuarios son de USA ... o Sudamerica.
Con un merkle tree el gas que gastarias seria unos $10 en total. Merece la pena. La gente que apuntes en la lista blanca o de color la salvas en una base de datos hasta que llegue el momento del lanzamiento del token. En ese momento es cuando creas el merkle tree, pasando todos los usuarios en una unica llamada.
si, aun asi, apenas esperaria quiza un par de direcciones en la blacklist. la whitelist si podria tener muchos si la uso para el KYC
Última edición: