Passo 1: Inizializza il progetto Blocklet

blocklet create my-abt-staking-dapp

# Seleziona il modello React + Node.js

Passo 2: Logica di impegnamento lato server (Node.js)

Nel lato server, devi gestire la richiesta di transazione di impegnamento inviata dall'utente.

// server/api/routes/staking.js

const { Wallet } = require('@arcblock/forge-wallet');

const { Mcrypto } = require('@arcblock/mcrypto');

// Supponiamo che questo sia l'indirizzo di hosting del tuo DApp (utilizzato per ricevere l'ABT impegnato)

const VAULT_ADDRESS = 'z1...your_vault_address';

funzione asincrona createStakeTx(userDid, amount) {

// Costruisci una transazione Transfer, in modo che l'utente invii ABT al tesoro

// Su ArcBlock, questo di solito viene fatto generando un Deep Link per consentire al portafoglio DID di firmare

return {

to: VAULT_ADDRESS,

value: amount, // L'unità è l'unità minima del token

memo: 'Staking per premi',

};

}

Terzo passo: interfaccia utente frontend (React)

Utilizza @arcblock/did-connect fornito da ArcBlock per gestire la connessione del portafoglio e i pagamenti.

// src/components/StakeButton.jsx

import DidConnect from '@arcblock/did-connect/lib/Connect';

function StakeComponent() {

const [amount, setAmount] = useState(0);

return (

<div className="staking-card">

<h2>Staking ABT per guadagnare diritti</h2>

<input

type="number"

onChange={(e) => setAmount(e.target.value)}

placeholder="Inserisci la quantità di staking"

/>

<DidConnect

action="stake"

checkFn={api.get('/api/check-stake-status')}

onSuccess={() => alert('Staking completato con successo!')}

// Questi preparativi richiameranno la funzione createStakeTx sul backend

prepareFn={api.get(`/api/prepare-stake?amount=${amount}`)}

>

Staking immediato

</DidConnect>

</div>

);

}

Quarto passo: logica di calcolo dei guadagni (simulazione)

Poiché ABT attualmente non ha un premio nativo di inflazione, i tuoi premi di staking possono essere impostati come:

• Punti ecologici: utilizzati per scambiare altri servizi Blocklet.

• Medaglie NFT: utilizzate come prova per il voto di governance in futuro.