Crypto Market Pool - Pagos de suscripción en Solidity

Crypto Market Pool – Pagos de suscripción en Solidity

Publicado por
Comparte en redes sociales


Creación de un contrato inteligente para pagos de suscripción en Ethereum Solidity

Solidity es el lenguaje de programación para escribir contratos inteligentes en la cadena de bloques de Ethereum. Con su sintaxis simple y su diseño orientado a objetos, puede crear contratos robustos y autoejecutables que se ejecutan exactamente como se programaron. En este artículo, aprenderá cómo crear un contrato inteligente para pagos de suscripción en Solidity.

Configuración de la estructura del contrato

Para comenzar, debe crear un archivo de contrato utilizando un compilador de Solidity. Esta será la base de su sistema de pago de suscripción. Comience por definir el contrato y sus variables:

pragma solidity &gt;=0.7.0 <0.8.0;

contract SubscriptionPayment {
  uint256 public price;
  uint256 public frequency;
  mapping (address =&gt; uint256) public balances;
  address public owner;
  
  constructor() public {
    owner = msg.sender;
    price = 1 ether;
    frequency = 30 days;
  }
}

Pruébalo en remezclar

En este código, declaras un contrato llamado SubscriptionPayment. El contrato tiene cuatro variables públicas: price, frequency, balancesy owner. El price variable especifica el costo de la suscripción en wei, y el frequency La variable especifica el tiempo entre pagos. El balances el mapeo almacena el saldo de cada suscriptor, y el owner variable almacena la dirección del creador del contrato.

Aceptar pagos de suscripción

A continuación, debe escribir una función que acepte pagos de suscriptores. Para ello, utilizará el payable palabra clave, que permite que el contrato reciba ether.

function subscribe() public payable {
  require(msg.value == price, "Incorrect payment amount");
  balances[msg.sender] += msg.value;
}

Pruébalo en remezclar

Leer también  Sus monedas estables se pueden congelar sin previo aviso

El subscribe() La función verifica que el monto del pago coincida con el precio especificado en el price variable. Si el pago es correcto, la función agrega el pago al saldo del suscriptor.

Automatización de pagos de suscripción

Ahora que tiene una forma de aceptar pagos, necesita automatizar el proceso de pago. Para ello, utilizará el schedule función, que ejecuta una función en un intervalo de tiempo específico.

function schedulePayment() public {
  require(msg.sender == owner, "Only the owner can schedule payments");
  require(now + frequency <= block.timestamp, "Payments already scheduled");
  schedule(frequency, this, "paySubscriber");
}

function paySubscriber() public {
  for (address subscriber : balances) {
    require(subscriber.send(price), "Payment failed");
  }
}

Pruébalo en remezclar

El schedulePayment() función comprueba que la persona que llama a la función es el propietario y que no se han programado pagos ya. Si estas comprobaciones pasan, la función programa la paySubscriber() función para ejecutar cada frequency días. El paySubscriber() La función itera sobre todos los suscriptores y les envía el price en éter

Reembolso de pagos

Finalmente, necesita una forma para que los suscriptores obtengan un reembolso si cancelan su suscripción. Para ello, escribirás un refund() función.

function refund() public {
  require(balances[msg.sender] > 0, "No balance to refund

Pruébalo en remezclar

Recursos

Redes de cadena de bloques

A continuación se muestra una lista de redes de cadena de bloques Mainnet y Testnet compatibles con EVM. Cada enlace contiene la configuración de la red, enlaces a varios grifos para probar ETH y tokens, detalles del puente y recursos técnicos para cada cadena de bloques. Básicamente todo lo que necesita para probar e implementar contratos inteligentes o aplicaciones descentralizadas en cada cadena. Para obtener una lista de foros populares de Ethereum y aplicaciones de chat, haga clic aquí.

cryptoshitcompra.com/wp-content/uploads/2021/08/Grupo-de-criptomercados-bot-de-liquidacion-dYdX.png» alt=»»/> Ethereum prueba la configuración de la red y prueba la información del grifo ETH
png» alt=»»/> Configuración optimista de Ethereum Mainnet y Testnet, detalles del puente, etc.
Configuración de red de polígono Mainnet y Testnet, grifos para prueba de tokens MATIC, detalles de puente, etc.
Configuración de Binance Smart Chain Mainnet y Testnet, faucets para tokens BNB de prueba, detalles del puente, etc.
Fanton networt Configuración de Mainnet y Testnet, faucets para tokens FTM de prueba, detalles del puente, etc.
Configuración de Kucoin Chain Mainnet y Testnet, faucets para tokens KCS de prueba, detalles del puente, etc.

Bibliotecas de software Web3

Puede usar las siguientes bibliotecas para interactuar con una cadena de bloques compatible con EVM.

Ledger Nano X - La billetera de hardware segura



Source link

Leer también  ¡Los bancos de la PBA establecen conjuntamente una plataforma eKYC basada en Blockchain en Pakistán!

Si quiere puede hacernos una donación por el trabajo que hacemos, lo apreciaremos mucho.

Direcciones de Billetera:

- BTC: 14xsuQRtT3Abek4zgDWZxJXs9VRdwxyPUS 

- USDT: TQmV9FyrcpeaZMro3M1yeEHnNjv7xKZDNe 

- BNB: 0x2fdb9034507b6d505d351a6f59d877040d0edb0f

- DOGE: D5SZesmFQGYVkE5trYYLF8hNPBgXgYcmrx 

También puede seguirnos en nuestras Redes sociales para mantenerse al tanto de los últimos post de la web:

-Twitter

- Telegram

Disclaimer: En Cryptoshitcompra.com no nos hacemos responsables de ninguna inversión de ningún visitante, nosotros simplemente damos información sobre Tokens, juegos NFT y criptomonedas, no recomendamos inversiones

Dejar un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *