members[0], dappAddress, BigInteger.ZERO, txData);
以下是由3名成员构成的小组陈设投票智能合约的要领。
@Rule
txData = ABIUtil.encodeMethodArguments(“vote”, 0);
private static void onlyOwner() {
@Callable
让我们实际对换试器举办测试。我们将存心在评估提案通过方法时造成一个简朴的错误。我将修改提案通过条件,如下所示。 请留意,便是条件已变动为小于或便是。
Integer.toString(0).getBytes()), log.copyOfTopics().get(1));
}
Voting.class, deployArgument);
Assert.assertEquals(1, result.getLogs().size());
private static Address owner;
Assert.assertArrayEquals(LogSizeUtils.truncatePadTopic(
A.实例化AvmRule
members.add(newMember);
1. 3名成员。
}
for (Address addr : arg) {
1. 编码要领名称及其参数。
Integer.toString(proposalId).getBytes(), caller.toByteArray());
@Rule
Log log = result.getLogs().get(0);
// validate the topics and data
Integer.toString(proposalId).getBytes(), caller.toByteArray(),
}
byte[] dappBytes)
首先建设智能合约。以下是可用于简朴投票DApp的智能合约的示例。
String description = “new proposal description”;
static {
// assert the transaction was successful
byte[] txData = ABIUtil.encodeMethodArguments(
import org.aion.avm.tooling.abi.Callable;
利用陈设成果可以轻松完成智能合约的陈设。
private static class Proposal {
// assert the event is generated
private static AionMap<Integer,
members[i] = avmRule.getRandomAddress(
1. 合约的主要种别。
//decode the return data as boolean
minimumQuorum) {
owner, BigInteger.ZERO, dappBytes).getDappAddress();
@Callable
private static void updateQuorum() {
}
return proposals.containsKey(proposalId) &&
return proposals.containsKey(proposalId) ?
public void setup() {
boolean isPassed;
public static int getMinimumQuorum() {
4. 假如高出50%的成员赞成该提案并对其投票,该提案将通过。
BigInteger.valueOf(10_000_000L));
byte[] txData = ABIUtil.encodeMethodArguments(
Assert.assertTrue(result.getReceiptStatus().isSuccess());
public class Voting {
if (!votedProposal.isPassed && votedProposal.voters.size()
2. 合约结构函数参数,可以在静态块中对其举办会见息争码。
public static void addMember(Address newMember) {
}
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。