Aprende a crear una tienda virtual Blockchain paso a paso (Acepta pagos con token ERC20)

in Geek Zone3 months ago

▶️ Watch on 3Speak


En este video voy a darte un paso a paso de como crear una tienda virtual Blockchain en la red de Ethereum, la principal característica es la de aceptar cripto pagos con los tokens ERC20, vamos a ir desde: crear los contratos inteligentes, crear el backend y por último el frontend.

Para el contrato inteligente vamos a usar #solidity, la librería de #openzeppelin y el framework #truffle.
Para el backend vamos a usar Node.js y el framework Express.js
Y por último para el frontend sencillamente react.js y Bootstrap como framework de css.

Hay muchas tecnologías involucradas para crear esta tienda virtual, será muy divertido como estas diferentes tecnologías se unen para dar vida a esta dapp.

Solidity.

Contrato PaymentProcessor.sol:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

contract PaymentProcessor is Ownable {

IERC20 public dai;

event PaymentDone(address payer, uint amount, uint paymentId, uint date);

constructor(address _dai) {
    dai = IERC20(_dai);
}

function Pay(uint amount, uint paymentId) external {
    dai.transferFrom(msg.sender, owner(), amount);
    emit PaymentDone(msg.sender, amount, paymentId, block.timestamp);
}

}

Contrato Dai.sol (mock):
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";

contract Dai is ERC20 {
constructor() ERC20("Dai Stable Coin", "DAI"){}

function faucet(address to, uint amount) external{
    _mint(to, amount);
}

}


▶️ 3Speak

Sort:  

WoW, tu post esta genial mi amigo, yo soy diseñador web, aunque no tengo mucha experiencia y hay ciertos temas que aun no conozco muy bien, así que voy a guardar tu post por ahí para verlo unas cuantas veces ya que siempre me a gustado aprender cosas o métodos nuevos, gracias por tu aporte!

Gracias estimado. Seguiré hoy con la segunda parte