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类型的地址
涉及到依赖的以太坊的包可能需要注意是否需要做些调整,调整的点和前面类似
Scan QR code with WeChat