Utilidades
El módulo de utilidades permite obtener información de los servicios de Alfa además de proveer funciones de utilidad para el desarrollo de aplicaciones.
Métodos
Crear un asset minable
El método createMintableAsset
permite crear un MintableAsset
a partir de un archivo File
.
const utils = sdk.utils;
const file = new File([], "hello.jpg");
const mintableAsset = utils.createMintableAsset(file);
El método createMintableAsset
crea un asset sin datos, debes rellenar la información del asset antes de minarlo. Si deseas crear un asset con datos puedes usar el método mintableAssetFromPrimitive
.
Crear un asset minable a partir de un Primitives<Asset>
El método mintableAssetFromPrimitive
permite crear un MintableAsset
a partir de un Primitives<Asset>
.
const utils = sdk.utils;
const file = new File([], "hello.jpg");
const data: Primitives<Asset> = {
type: AssetType.NFT,
address: "0x7C6ac312c08b975a0e74Be8Cd8C6ad8b8b4A8DEB", // Direccion de contrato
chainId: 80001,
metadata: {
name: "My NFT",
description: "Description of my nft",
attributes: [
{
trait_type: "Color",
value: "green",
},
{
trait_type: "Year",
value: "1952",
},
]
},
};
const mintableAsset = utils.mintableAssetFromPrimitive(file, data);
Crear un asset minable a partir de un Primitives<ERC1155>
El método mintableERC1155FromPrimitive
permite crear un MintableAsset
a partir de un Primitives<ERC1155>
.
const utils = sdk.utils;
const file = new File([], "hello.jpg");
const data: Primitives<Asset> = {
type: AssetType.NFT,
address: "0x7C6ac312c08b975a0e74Be8Cd8C6ad8b8b4A8DEB", // Direccion de contrato
chainId: 80001,
metadata: {
name: "My NFT",
description: "Description of my nft",
attributes: [
{
trait_type: "Color",
value: "green",
},
{
trait_type: "Year",
value: "1952",
},
]
},
};
const mintableAsset = utils.mintableERC1155FromPrimitive(data, file);
El parámetro file
es opcional, si no se pasa el asset se creará sin archivo image
.
Depurar una transacción
El método debug
permite obtener el estado de una transacción en la blockchain.
const utils = sdk.utils;
const hash = '0x82d735b0afae88084f2e8c7f52d24c11206446dd4193270b377c446bfbaf10a8'
const result = await utils.debug(hash)
Obtener la URL del explorador de bloques
El método getExplorerUri
permite obtener la url de un explorador de bloques para un asset.
const utils = sdk.utils;
const explorerUrl = utils.getExplorerUri(asset) // `asset` es de tipo `Asset`
Obtener monedas por símbolo
El método getCoinsBySymbol
permite obtener una lista de monedas a partir de su símbolo.
const utils = sdk.utils;
const result = await utils.getCoinsBySymbol(["eth", "matic", "usdc"]);
Obtener metadata de monedas
El método getCoinsMetadata
permite obtener las metadata de una lista de monedas.
const utils = sdk.utils;
const start = 1;
const limit = 10;
const search = "usd";
const { total, data } = await utils.getCoinsMetadata(start, limit, search);
El parámetro search
es opcional, si no se pasa se obtendrán todas las monedas.
Actualizar metadata de una moneda
El método updateCoin
permite actualizar la información de una moneda.
const utils = sdk.utils;
const coin = new Metadata({
id: "venus-usdc",
name: "Venus USDC",
image: "https://assets.coingecko.com/coins/images/13906/large/usdc.png?1612799563",
description: "",
attributes: [
{
trait_type: "binance-smart-chain",
value: "0xeca88125a5adbe82614ffc12d0db554e2e2867c8",
},
],
symbol: "vusdc",
decimals: "6",
});
const newCoin = await utils.updateCoin(coin);
Una moneda es de tipo Metadata
. Representa la información de una moneda en la blockchain.
Puedes ver la documentación de la clase Metadata
aquí.
Crear una nueva moneda
El método newCoin
permite crear una nueva moneda.
const utils = sdk.utils;
const coin = {
id: "new-coin",
name: "My Coin",
image: "https://myserver.com/images/mycoin.jpg",
description: "My coin description",
attributes: [],
symbol: "mci",
decimals: "6",
};
const newCoin = await utils.newCoin(coin);
Borrar una moneda
El método deleteCoin
permite eliminar una moneda.
const utils = sdk.utils;
const coinId = 'new-coin';
await utils.deleteCoin(coinId);
Leer una variable de contrato
El método readContract
permite leer una variable de un contrato.
const utils = sdk.utils;
const method = new ContractFunction("uri", AssetType.ERC1155);
method.addInput("tokenId", 1);
const tokenUri: string = await utils.readContract({
address: "0x7C6ac312c08b975a0e74Be8Cd8C6ad8b8b4A8DEB",
chainId: 80001,
method: method.toPrimitive(),
});
Crear una wallet aleatoria
El método getRandomWallet
permite obtener una wallet aleatoria.
const utils = sdk.utils;
const walletDto = await utils.getRandomWallet();
La respuesta del método getRandomWallet
es de tipo WalletDto
.
Que posee esta interfaz:
interface WalletDto {
readonly address: EthereumAddress;
readonly mnemonic: MnemonicValue;
toWallet(): Wallet;
toPrimitive(): Primitives<WalletDto>;
}
address
es la nueva dirección de la wallet.
mnemonic
es la frase mnemotécnica de la wallet.
Obtener información de una cadena
El método getChainInfo
permite obtener información de una cadena.
const utils = sdk.utils;
const chainId = new ChainID(80001);
const data = utils.getChainInfo(chainId);
El resultado devuelto por el metodo getChainInfo
es de tipo Chain
.
export interface Chain {
name: string;
title?: string;
chain: string;
icon?: string;
rpc: string[];
faucets: any[];
nativeCurrency: NativeCurrency;
infoURL: string;
shortName: string;
chainId: number;
networkId: number;
slip44?: number;
ens?: Ens;
explorers?: Explorer[];
parent?: {
type?: string;
chain?: string;
bridges?: {
url: string;
}[];
};
status?: string;
redFlags?: string[];
}
export interface Ens {
registry: string;
}
export interface Explorer {
name: string;
url: string;
icon?: string;
standard: string;
}
export interface NativeCurrency {
name: string;
symbol: string;
decimals: number;
}