Quam aedificare, explica ac test undas EQUITO dApp
Salve! In hoc articulo monstrabo tibi quomodo scribere et currere regularem dApp in nodo undarum. Intueamur necessaria instrumenta, methodos et exemplum evolutionis.
Ratio evolutionis dapps et applicationes regulares fere eadem sunt;
Scribere codice
Scribens automated temptationis
Deductis ad applicationem
Testis
vasa cantici
1. docker nodi currere et fluctus Explorer
Si nodi incipere non vis, hunc gradum transilire potes. Post omnes, probatio et experimentalis ornatum est. Sed sine nodo tuo explicas, processum probatio trahat.
Constanter novis rationibus testatis signis indigetis. Test faucet network transfert 10 FLUCTUS omnis 10 minuta.
Mediocris tempus scandalum in retis test est 1 minute, in nodo – 15 secundis. Hoc imprimis notabile est cum res plures confirmationes requirit.
Caching petulantia in nodis testium publicarum fieri potest.
Possunt etiam esse ad tempus perpendat propter sustentationem.
Surfboard instrue, instrumentum quod permittit ut probationes in nodi existente curras.
npm install -g @waves/surfboard
3. Visual Studio Code plugin
Hic gradus libitum est si IDEs ventilabrum non es et editoribus textum praefers. Omnia necessaria instrumenta recta utilitas imperant. Si vim uteris, operam ad plugin vim-ride.
Download Visual Studio et install Code: https://code.visualstudio.com/
docker run -d -e API_NODE_URL=http://localhost:6869 -e NODE_LIST=http://localhost:6869 -p 3000:8080 wavesplatform/explorer
Aperire pasco et vade ad http://localhost:3000. Videbis quam cito cathena nodi vacui loci construatur.
Fluctus Explorer ostendit loci nodi exempli
EQUITO structuram et instrumentum Surfboard
Facere inani presul et imperium in eo currunt
surfboard init
Praeceptum initiale directorium cum structurae exertae, "salve mundi" applicationes ac probat. Si folder VS cum Codice aperias, videbis:
Surfboard.config.json
Sub ./ride/ folder invenies unum fasciculum wallet.ride - indicem ubi dApp codice sita est. Breviter dAppas in proximo stipite resolvemus.
Sub ./test/ folder invenies *.js fasciculum. Hie reponuntur Probat.
./surfboard.config.json - configuration lima pro currit probat.
Envs est huj. Quisque sit amet felis quam.
CETERA API terminus nodi qui dApp et CHAIN_ID aenei ad immittendi usus erit.
A secret phrase for an account with the signs that will be the sources of your test signis.
Ut videre potes, surfboard.config.json plures ambitus per defaltam sustinet. Default est ambitus localis (pro defaultEnv clavis est modulus mutabilis).
vidulum demo application
Haec sectio non referenda est ad linguam vehi. Sed potius vide applicationem quam explicamus et probamus ut melius intellegatur quid in impedimento agatur.
Intueamur simplicem applicationem pera-demo. Quisquam potest mittere signa ad dApp oratio. Tu modo fluctus tuos subducere potes. Duo munera @Callable praesto sunt per InvokeScriptTransaction:
deposit()quae extraordinaria solutione FLUCTUS
withdraw(amount: Int)signis quae redit
In cyclo dApp, structura (inscriptio → moles) conservabitur;
actionis
Ex re publica
initial
inanis
Alice deposits 5 FLUCTUS
alice-inscriptio → 500000000
Alice recedit IV FLUCTUS
alice-inscriptio → 100000000
Bob-electronica → 200000000
Hic in codice ad pleniorem condicionem intellegendam est;
# In this example multiple accounts can deposit their funds and safely take them back. No one can interfere with this.
# An inner state is maintained as mapping `address=>waves`.
{-# STDLIB_VERSION 3 #-}
{-# CONTENT_TYPE DAPP #-}
{-# SCRIPT_TYPE ACCOUNT #-}
@Callable(i)
func deposit() = {
let pmt = extract(i.payment)
if (isDefined(pmt.assetId))
then throw("works with waves only")
else {
let currentKey = toBase58String(i.caller.bytes)
let currentAmount = match getInteger(this, currentKey) {
case a:Int => a
case _ => 0
}
let newAmount = currentAmount + pmt.amount
WriteSet([DataEntry(currentKey, newAmount)])
}
}
@Callable(i)
func withdraw(amount: Int) = {
let currentKey = toBase58String(i.caller.bytes)
let currentAmount = match getInteger(this, currentKey) {
case a:Int => a
case _ => 0
}
let newAmount = currentAmount - amount
if (amount < 0)
then throw("Can't withdraw negative amount")
else if (newAmount < 0)
then throw("Not enough balance")
else ScriptResult(
WriteSet([DataEntry(currentKey, newAmount)]),
TransferSet([ScriptTransfer(i.caller, amount, unit)])
)
}
@Verifier(tx)
func verify() = false
VSCode plugin compilationem continuam sustinet dum limam edens. Ideo semper monitores errores in Problematis tab.
Si alio textu uti voles editor, cum tabella componens, utere
surfboard compile ride/wallet.ride
Hanc seriem base64 compilavit EQUITO codicem constituet.
Test scriptum pro 'wallet.ride'
Intueamur test file. Powered by JavaScript's Mocha framework. Est "Ante" munus et tria probat:
"Antequam" multae rationes per MassTransferTransactionem fundunt, scripturam conficit et ad impedimentum disponit.
"Potest deponere" InvokeScriptTransaction in retiaculum mittit, depositum activum () munus pro singulis duabus rationibus.
“Non plus recedere potest quam depositum est” probat quod nemo potest aliorum signa furari.
"Deponere potest" compescit abstractiones recte discursum esse.
Currere probationes ex Surfboard et analyses proventus in Fluctibus Explorer
Test currere, currere
surfboard test
Si multa scripta habes (exempli gratia, scripturam separatam instruere debes), currere potes
surfboard test my-scenario.js
Surfboard colliget tabellas testium in ./test/ folder et percurret scripturam in nodo, quae in surfboard.config.json configuratur. Post pauca secundis aliquid simile hoc videbis;
wallet test suite
Generating accounts with nonce: ce8d86ee
Account generated: foofoofoofoofoofoofoofoofoofoofoo#ce8d86ee - 3M763WgwDhmry95XzafZedf7WoBf5ixMwhX
Account generated: barbarbarbarbarbarbarbarbarbar#ce8d86ee - 3MAi9KhwnaAk5HSHmYPjLRdpCAnsSFpoY2v
Account generated: wallet#ce8d86ee - 3M5r6XYMZPUsRhxbwYf1ypaTB6MNs2Yo1Gb
Accounts successfully funded
Script has been set
√ Can deposit (4385ms)
√ Cannot withdraw more than was deposited
√ Can withdraw (108ms)
3 passing (15s)
euge! Probat Sutrium. Nunc inspice quid eveniat cum exploratoribus fluctibus utens: vide caudices vel crustulum unam ex inscriptionibus supra in inquisitionem (exempli gratia correspondentem. wallet#. Illic historiam transactionem invenire potes, dApp statum, fasciculum binarium compilatum.
Fluctus Explorer. Applicatio quae modo explicatur.
Undarum nodi cum loci custodis ad profecta est opus
2. Inferre secretam phrasim cum signis ad network? Pro simplici, utere primo semine nodi tui; waves private node seed with waves tokens. Oratio: 3M4qwDomRabJKLZxuXhwfqLApQkU592nWxF.