使用管理员治理模式

引入治理合约创建器

SDK提供了可通过手动传参,创建GovernContractInitializer对象。

GovernContractInitializer GovernContractInitializer = new GovernContractInitializer(client, cryptoKeypair);

或通过自动注入的方式,则用户私钥为默认配置的用户私钥来操作智能合约。

// 自动注入GovernAccountInitializer对象
@Autowired private GovernContractInitializer governContractInitializer;

创建治理合约

假如治理者确定采用管理员的治理模式,则传入管理者的密钥,创建新的治理合约。
具体调用示例:

// 调用 createGovernAccount 方法创建治理合约
WEGovernance governance = adminModeManager.createGovernAccount(cryptoKeyPair);

执行返回日志:

Governance account create succeed [ 0xa84b6989931ec1352a799a0edae3108d8e19bed0 ] 


调用成功后,函数会返回对应的WEGovernance治理账户对象,通过getContractAddress()方法可以获得对应的治理合约的地址。

创建管理员模式的控制器

可通过手动传参创建管理员模式的控制器。

AdminModeGovernManager adminModeManager = new AdminModeGovernManager(governance, client, cryptoKeyPair);

也可通过自动注入的方式引入。

调用控制接口

控制接口包括了重置私钥、冻结账户、解冻账户、注销账户、移交管理员权限等功能。

重置用户私钥

具体调用示例:

TransactionReceipt tr = adminModeManager.resetAccount(u1Address, u2Address);


函数签名:

TransactionReceipt resetAccount(String oldAccount, String newAccount)


输入参数:

  • oldAccount  用户的外部账户的原私钥地址。

  • newAccount  该账户被重置后的私钥地址。


返回参数:

  • TransactionReceipt 交易回执


参考执行返回日志:

reset account to [ 0x8a73e5c031c176ecf4bb156c59271847e985fc25 ] from [ 0xfc51a229193e1277844fc6c547fe6877c9f0bbac ]

冻结普通账户

具体调用示例:

TransactionReceipt tr = adminModeManager.freezeAccount(u1Address);


函数签名:

TransactionReceipt freezeAccount(String account)


输入参数:

  • account  用户的外部账户的私钥地址。


返回参数:

  • TransactionReceipt 交易回执


参考执行返回日志:

freeze account [ 0xfc51a229193e1277844fc6c547fe6877c9f0bbac ]

解冻普通账户

具体调用示例:

    TransactionReceipt tr = adminModeManager.unfreezeAccount(u1Address);


函数签名:

    TransactionReceipt unfreezeAccount(String account)


输入参数:

  • account  用户的外部账户的私钥地址。


返回参数:

  • TransactionReceipt 交易回执


参考执行返回日志:

unfreeze account [ 0xfc51a229193e1277844fc6c547fe6877c9f0bbac ]

账户强制注销

具体调用示例:

TransactionReceipt tr = GovernContractInitializer.cancelAccount(u1Address);


函数签名:

TransactionReceipt cancelAccount(String account)


输入参数:

  • account  用户的外部账户的私钥地址。


返回参数:

  • TransactionReceipt 交易回执


参考执行返回日志:

cancel account [ 0xfc51a229193e1277844fc6c547fe6877c9f0bbac ]

移交管理员的权限


移交管理员账户时,需要确保被移交的账户已注册,且账户状态正常。

具体调用示例:

TransactionReceipt tr = adminModeManager.transferAdminAuth(u1Address);


函数签名:

TransactionReceipt transferAdminAuth(String account)


输入参数:

  • account  用户的外部账户的私钥地址。


返回参数:

  • TransactionReceipt 交易回执


参考执行返回日志:

Contract [ 0x7a3868055f88b98a1a5aac81efa20b6ebe10c2ff ] transfer owner to address [ 0x8a73e5c031c176ecf4bb156c59271847e985fc25 ]


其他治理模式:

使用多签制治理模式

使用权重投票治理模式