http://www.7klian.com

基于以太坊和USDC搭建去中心化金融系统

执行以下代码,你就可以看到USDC余额
以太坊是一个去中心化的网络,由世界各地成千上万台计较机构成,可是它们并不是免费运行的。要在区块链上执行改观状态,如存储和更新数据,你必需用用ETH向网络付出生意业务费,在以太坊上也称为“gas”。gas[27]用度和增加新区块得到的奖金就是鼓励矿工运算的鼓励。这个进程被称为“挖矿”,不绝做运算的被称为“挖矿者”。我们将在稍后的教程中再次接头这个问题(gas,gas价值和gas限额)。
    // 生成第一个参数——接管地点
[24]BIP32: https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki
    to = ethers.utils.getAddress(args[0]);
const wallet = require(“./wallet”);
}
$ node src/createWallet.js

假如你在看Etherscan生意业务,你会发明这是一笔发送0个ETH连同4个字节的数据到合约地点。假如挪用要领时有参数,就会有高出4字节的数据。假如你想相识该数据是如何编码的,请阅读Ethereum合约ABI类型[44]。
    const balanceFormatted = ethers.utils.formatUnits(balance, 6);
    const balanceFormatted = ethers.utils.formatEther(balance);
  try {
    console.error(`Invalid address: ${args[0]}`);
const ethers = require(“ethers”);
$ node src/transferETH.js 0xDdAC089Fe56F0a9C70e6a04C74DCE52F86a91e13 -0.1
USDC是ERC20代币,因此它包括ERC20类型[45]中界说的所有要领。balanceOf就是个中之一,它的接口直接来自类型界说的。 balanceOf是一个只读函数,所以它可以免费挪用。最后,值得留意的是,USDC利用6位小数精度,而其他很多ERC20代币利用18位小数。

最近,DeFi[6]生态泛起发作式地增长。USDC不到2年捕捉的总代价到达10亿美元[7],同时各类百般的DeFi处事在不到3年的时间,总代价高出20亿美金。当下可谓是DeFi成长的最佳机缘。

因为gas需要耗损款子,你大概想要设定你愿意耗费的最多gas。幸运的是,你可以通过“gas limit”配置。假如生意业务最终需要的gas高出划定的限额,生意业务就会失败,而不会继承执行。需要留意的是假如生意业务因为gas限额而失败,已经耗费的gas将不会退还给你。
Address: 0xB3512cF013F71598F359bd5CA3f53C1F4260956a
  const tx = await usdc.transfer(to, value, { gasPrice: 20e9 });
  //查抄账户有足够余额
    process.exit(1);
const ethers = require(“ethers”);
  } catch {
在Visual Studio Code打开项目
自动贩卖机可以在无人过问干与环境下,很好的推行他的合约精力。
USDC Balance: 10.0
  try {
  const receipt = await tx.wait();
[7]USDC不到2年捕捉的总代价到达10亿美元: https://medium.com/centre-blog/usdc-market-cap-exceeds-1-billion-fastest-growing-digital-dollar-stablecoin-to-do-so-c5ba314474ca
[14]这里: https://treehouse.github.io/installing-guides/mac/nod-mac.html
main();
在Visual Studio Code中打开项目文件夹(solidity-tutorial)。项目第一次打开时,Visual Studio Code大概会提示你安装扩展。继承并点击“安装所有”,,这将增加各类有用的扩展,如代码自动名目化和solidity语法高亮。

Address: 0xB3512cF013F71598F359bd5CA3f53C1F4260956a
[32]Alchemy: https://alchemyapi.io/
      “function transfer(address _to, uint256 _value) public returns (bool success)”,

console.log(`Address: ${wallet.address}`);
ETH Balance: 1.0
试一试,你应该可以看到以下功效:
此刻我们来看看怎么可以利用账户中的ETH和USDC
      `Insufficient balance to send ${valueFormatted} (You have ${balanceFormatted})`
module.exports = provider;
开始
  const valueFormatted = ethers.utils.formatEther(value);
  console.log(`Transferring ${valueFormatted} USDC to ${to}…`);
用之前的createWallet.js建设一个新账户,然后实验向这个地点转些ETH
    process.exit(1);
    console.error(`Invalid amount: ${args[1]}`);

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读