Contratos Principal (Wrapper/Registry)
Cómo interactuar con los activos CELO utilizando los Contratos Principales wrapper y registry.
Interactuando con CELO & cUSD
el blockchain Celo tiene dos monedas iniciales: CELO y cUSD (stableToken). Ambas implementan el estándar ERC20, e interactuar con estas es tan simple como:
const goldtoken = await kit.contracts.getGoldToken();
const balance = await goldtoken.balanceOf(someAddress);
Para enviar fondos:
const oneGold = kit.web3.utils.toWei("1", "ether");
const tx = await goldtoken.transfer(someAddress, oneGold).send({
from: myAddress,
});
const hash = await tx.getHash();
const receipt = await tx.waitReceipt();
Para interactuar con cUSD, es lo mismo pero con un contrato diferente:
const stabletoken = await kit.contracts.getStableToken();
Interactuando con otros contratos de Celo
Aparte de GoldToken y monedas estables Mento, hay muchos contratos principales.
Por el momento, tenemos wrappers de contrato para:
- Accounts
- Attestations
- BlockchainParameters
- DobleSigningSlasher
- DowntimeSlasher
- Election
- Escrow
- Exchange (intercambio tipo Uniswap entre Gold y Stable tokens)
- GasPriceMinimum
- GoldToken
- Governance
- LockedGold
- Reserve
- SortedOracles
- Validators
- StableToken
Una nota sobre las direcciones de contratos
Las direcciones de los contratos principales, se pueden obtener mirando el contrato Registry
. De hecho, así es como kit
las obtiene.
Exponemos el api del registro, al que se puede acceder por:
const goldTokenAddress = await kit.registry.addressFor(CeloContract.GoldToken);
Accediendo a los wrappers de contratos web3
Algún usuario podría querer acceder a los wrappers nativos de contratos web3. Recomendamos utilizar los contratos de Celo en su lugar para evitar errores.
Para hacerlo, tienes que:
const web3Exchange = await kit._web3Contracts.getExchange();
Exponemos wrappers nativos para todos los contratos Web3.
La lista completa es:
- Accounts
- Attestations
- BlockchainParameters
- DoubleSigningSlasher
- DowntimeSlasher
- Election
- EpochRewards
- Escrow
- Exchange
- FeeCurrencyWhiteList
- GasPriceMinimum
- GoldToken
- Governance
- LockedGold
- Random
- Registry
- Reserve
- SortedOracles
- StableToken
- Validators
Depurando
Si necesitas depurar kit
, usaremos la conocida librería de node debug.
Así que configura la variable de entorno DEBUG
como:
DEBUG="kit:*,