Samurai持续为DApp提供便捷优质的钱包服务

PlatON 阅读 1992 2021-1-21 21:22
分享至
微信扫一扫,打开网页后点击屏幕右上角分享按钮

Samurai持续为DApp提供便捷优质的钱包服务

Samurai是支持PlatON元网络Alaya的首款浏览器插件钱包,作为一款浏览器插件钱包,不需要下载客户端,只需要添加到浏览器扩展程序就可以使用,这无疑让用户管理ATP更为便利的同时,还提供了更为多样化的使用环境。

Samurai浏览器插件钱包提供了连接钱包的接口,并可以把window.alaya接口当成Web3对象的provider进行调用,从而为分布式金融应用为代表的各类DApp提供了便捷、优质的钱包服务,优化了作为基础设施的关键能力。

目前Alaya已经对Samurai中使用的js依赖包进行了修改,之后开发者进行DApp迁移时可以基于已经修改完成的依赖包基础上开始,极大地提升了便利性。以下为具体修改及操作手册:

1. Samurai依赖包修改

Controllers:

修改依赖包为新依赖包(eth-keyring-controller/eth-method-registry/eth-sig-util/ethereumjs-util/ethjs-query)

KeyringController:

修改依赖包为新依赖包(eth-simple-keyring/eth-hd-keyring/eth-sig-util/ethereumjs-util/ethjs-query)

ethjs-ens:

修改依赖包为新依赖包(ethjs-contract/ethereumjs-util/ethjs-query)

eth-token-tracker:

修改依赖包为新依赖包(eth-block-tracker/ethjs/ethjs-query/ethjs-contract)

eth-block-tracker:

eth_blockNumber修改为platon_blockNumber

修改获取blockNumber的间隔从20秒到为5秒,因为Alaya网络的出块比以太坊要快

eth-json-rpc-middleware:

修改依赖包为新依赖包(eth-query/eth-sig-util/ethereumjs-util)

源码中的eth_修改为platon_

etherscan-link:

增加chainId为201018的case路径

修改etherscan的链接为Alaya网络浏览器的链接

inpage-provider:

window.ethereum修改为window.alaya

源码中的eth_修改为platon_

ethjs:

修改依赖包为新依赖包(ethjs-query/ethjs-contract/ethjs-abi)

ethereumjs-util:

引入Bech32Address相关的函数(isBech32Address/decodeBech32Address/toBech32Address)

ethjs-contract:

修改依赖包为新依赖包(ethjs-abi)

ethjs-query:

修改依赖包为新依赖包(ethjs-format)

源码中的eth_修改为platon_

ethjs-format:

源码中的eth_修改为platon_

nonce-tracker:

修改依赖包为新依赖包(ethjs-query)

eth-query:

源码中的eth_修改为platon_

eth-json-rpc-filters:

源码中的eth_修改为platon_

修改依赖包为新依赖包(eth-query/eth-json-rpc-middleware)

rpc-cap:

修改依赖包为新依赖包(controllers)

ethjs-abi:

修改依赖包为新依赖包(ethereumjs-util)

encodeParams对于bech32Address类型的处理需要decode成0x类型的地址

eth-method-registry:

修改依赖包为新依赖包(ethjs)

eth-hd-keyring:

修改依赖包为新依赖包(ethereumjs-util/eth-sig-util/eth-simple-keyring)

getAccounts方法修改,增加hrp入参,返回对应的bech32地址类型

eth-simple-keyring:

修改依赖包为新依赖包(ethereumjs-util/eth-sig-util)

getAccounts方法修改,增加hrp入参,返回对应的bech32地址类型

sigUtil.normalize修改为转换成bech32地址方法

eth-sig-util:

修改依赖包为新依赖包(ethereumjs-util)

normalize增加对bech32地址类型判断,如果是bech32地址的话直接返回

ethereumjs-tx:

修改依赖包为新依赖包(ethereumjs-util)

Transaction类的构造方法中针对data字段的to/from字段需要将bech32地址类型转换成0x地址类型

ethjs-schema:

源码中的eth_修改为platon_

2. Samurai源码修改

源码中的eth_修改为platon_

源码中'ETH'字符串修改成'ATP'

源码中对地址类型的处理需要做bech32转换,涉及到例如rlp编码的可能需要进行对bech32地址转换成0x类型的地址(比如isValidAddress替换成isBech32Address)

Network移除掉对接infura的部分,采用已有的rpc middleware

源码中的'WEI'和'GWEI'修改成'VON'和'GVON'

Metamask的相关字段改成Samurai

在以太坊主网和测试网络的配置列表中增加Alaya网络的配置并移除以太坊的各网络在界面上的显示

etherscan的浏览器链接替换成Alaya的浏览器链接

语言国际化文案部分,ether/eth替换成ATP,etherscan替换成Alayascan,metamask替换成Samurai等

icon修改,比如matamask图标,ETH的图标等替换成自身设计的图标

修改依赖包为新依赖包

3. 适配Samurai的DAPP修改点

源码中的eth_修改为platon_

涉及的文案部分需要修改,比如ATP,Alayascan,VON等

涉及的地址相关的需要在某些地方转换成bech32地址类型,在地址编码之前需要将bech32地址类型转换成0x类型的地址

涉及到依赖的以太坊的包可能需要注意是否需要做些调整,调整的点和前面类似

btcfans公众号

微信扫描关注公众号,及时掌握新动向

免责声明:
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
标签: Dapp Samurai
上一篇:新型匿名系统旋风协议CYCLONE,收益与前景并存 下一篇:数据导出组件Data-Export:数据分析处理“加速器”

相关资讯