Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

LockProxyGroup

Contact ztj for more details.

But keep in mind: ztj wish you guys to figure it out for yourself.

在单链上运行的demo,主要包含如下三个组件:

ERC20Pro.sol

测试用ERC20合约,实现了mint和burn。

Hub.sol

测试用的CrossChainManager合约,各个LockProxy向Hub发起调用,经过Hub路由到其他LockProxy合约,模拟跨链的流程。

每个LockProxy要参与跨链,必须在Hub合约中通过bind()函数来绑定。

LockProxyGroup.sol

demo去中心化上币的LockProxy合约。

constructor(): 设置模拟链Id以及Hub合约地址。

setManagerContract(): 设置Hub合约地址。

bindProxyHash(): 绑定其他的LockProxyGroup合约地址。

ownerCreateGroup(): 创建一个Group,创建时会向group内的其他链发送registerGroup请求。参数包括:

  • num: group内token总数。
  • tokenChainIds: group内的token对应的链Id列表,升序排列,不可重复。
  • tokenAddrs: 以tokenChainIds顺序排列的 group内token合约的地址。

registerGroup(): 由发起链的LockProxyGroup合约创建请求,经跨链后,在链上注册相应group。

ownerUpdateGroup(): 升级一个Group,升级时会向group内的其他旧链发送updateGroup请求,向新加入的链发送registerGroup请求,参数包括:

  • oldKey: 需要升级的原始Group key。
  • groupTokenNum: 新group的token总数。
  • tokenChainIds: 新group内的token对应的链Id列表,升序排列,不可重复,并且必须包含原先group的token成员。
  • tokenAddrs: 新group内的token对应的合约地址,必须包含原group内所有token成员。

updateGroup(): 由发起链的LockProxyGroup合约创建请求,经跨链后,在链上升级相应group。

addCrossChainLiquidity(): 向一个Group添加跨链流动性。添加后无法移除。

lock(): 发起跨链,源链锁定一部分资产,包含参数:

  • groupKey: 跨链使用的Group key。
  • fromAsset: 跨链的源链资产。
  • amonut: 跨链数额。
  • toAddress: 接受地址。
  • toChainId: 目标链Id。

unlock(): 收到跨链请求,释放一定资产,如果group的余额不足会失败。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages