PlatONnetwork / client-sdk-js

A javascript interface for interacting with the PlatON network
Other
24 stars 22 forks source link

Alaya JS SDK与PlatON JS SDK使用同一套代码的相关建议 #62

Open RileyGe opened 3 years ago

RileyGe commented 3 years ago

现在Alaya与PlatON的js sdk基本使用同一套代码,这样可以减少学习和代码迁移成本,是一种各方都有益的事,但在实践中有一定的问题。例如,在使用sdk与Alaya网络交互时,需要进行大量设置,如使用私钥生成账号时:

var act = new AlayaAccounts(web3a.currentProvider, "atp");
act = act.privateKeyToAccount(privateKey);

而且,所有签名都没办法如下方法:

web3.platon.accounts.signTransaction(tx, privateKey);

另外,由于PPOS模块都是直接用chainId来确定hrp的,所以导致在现在的代码下是没有办法使用PPOS模块正常操作alaya网络的内置合约的。

对于以上问题,我有以下建议:

  1. 在web3对象中,增加一个设置全局chainId和hrp的方法,在设置chainId和hrp之后,web3所有的属性及函数都继承此chainId及hrp,在所有操作过程中都能自动填充chainId和hrp。
  2. 将现有的6种网络的信息,如PlatON主网,PlatON开发网,PlatON私有网络默认网络参数,Alaya主网,Alaya开发网和Alaya私有网络默认参数,这6个网络参数当作常量写入到SDK中。其他非常用参数可使用1中的方法单独设置。
  3. 更新PPOS中的方法,使之能够适应解锁账号和非解锁账号的使用。
biganxin commented 3 years ago

Good What are the implications of this change? e.g. PlatON Studio, JS SDK documentation, ATON, etc.

biganxin commented 3 years ago

Would like to hear your advice @totaking @fuzhijing1