-
Notifications
You must be signed in to change notification settings - Fork 0
tokenBalance Internal Action
Nilson Lazarin edited this page Sep 12, 2024
·
2 revisions
Internal Actions | Wiki |
---|
Check units of a specific token into a wallet and return a belief like: q(C,V);
.velluscinum.tokenBalance(S,P,Q,C,q);
Parameters | Description |
---|---|
q |
It's a belief that represents the balance of C in the agent's wallet. |
C |
It's a literal that represents a divisible asset. |
P |
It's a literal that represents the agent's private key. |
Q |
It's a literal that represents the agent's public key. |
S |
It's a literal that represents the address of a DLT node. |
V |
It's a integer that represents the number of parts of a C. |
1 - Alice Agent
/* Initial beliefs and rules */
myWallet("7neiPonWcQEXBoHooxMhTVvHQFAJGDdZYF1HuPTgH5ia","C9q3KZzdBXaTyCpLUyizFXZQaPcZX3RjH8wLavRA91Lk").
/* Plans */
+!showBalance(S,C):myWallet(P,Q) <-
.abolish(balance(_,_));
.velluscinum.tokenBalance(S,P,Q,C,balance);
.wait(balance(C,Units));
.print("Exists ",Units," of ",C," in my wallet!");
.random(W); .wait(5000*W);
!showBalance(S,C);
.
2 - Bob Agent
/* Initial beliefs and rules */
bigChainDB("http://testchain.chon.group:9984/").
alicePublicKey("C9q3KZzdBXaTyCpLUyizFXZQaPcZX3RjH8wLavRA91Lk").
/* Initial goals */
!start.
/* Plans */
+!start <-
?bigChainDB(S);
.velluscinum.buildWallet(myWallet);
.wait(myWallet(P,Q));
.velluscinum.deployToken(S,P,Q,"name:MyCoin;type:criptocurrency",100000,myCoin);
.wait(myCoin(TokenID));
.broadcast(achieve,showBalance(S,TokenID));
?alicePublicKey(AliceWallet);
!transferToken(S,P,Q,TokenID,AliceWallet,10);
.
+!transferToken(S,P,Q,C,R,V) <-
.random(W); .wait(5000*W);
.velluscinum.transferToken(S,P,Q,C,R,V);
.print("Transfered ",V," Units...");
!transferToken(S,P,Q,C,R,V*10);
.
-!transferToken(S,P,Q,C,R,V) <-
.print("I don't have sufficient tokens...");
.wait(10000); .stopMAS;
.
Velluscinum is licensed under a Creative Commons Attribution 4.0 International License. The licensor cannot revoke these freedoms as long as you follow the license terms:
- Attribution — You must give appropriate credit like below:
Mori Lazarin, N., Machado Coelho, I., Pantoja, C.E., Viterbo, J. (2023). Velluscinum: A Middleware for Using Digital Assets in Multi-agent Systems. In: Mathieu, P., Dignum, F., Novais, P., De la Prieta, F. (eds) Advances in Practical Applications of Agents, Multi-Agent Systems, and Cognitive Mimetics. The PAAMS Collection. PAAMS 2023. Lecture Notes in Computer Science(), vol 13955. Springer, Cham. DOI: https://doi.org/10.1007/978-3-031-37616-0_17
Cite using Bibtex
@InProceedings{velluscinum,
author="Mori Lazarin, Nilson
and Machado Coelho, Igor
and Pantoja, Carlos Eduardo
and Viterbo, Jos{\'e}",
editor="Mathieu, Philippe
and Dignum, Frank
and Novais, Paulo
and De la Prieta, Fernando",
title="{Velluscinum: A Middleware for Using Digital Assets in Multi-agent Systems}",
doi="10.1007/978-3-031-37616-0_17",
booktitle="Advances in Practical Applications of Agents, Multi-Agent Systems, and Cognitive Mimetics. The PAAMS Collection",
year="2023",
publisher="Springer Nature Switzerland",
address="Cham",
pages="200--212",
isbn="978-3-031-37616-0"
}