# chainstack.js

chainstack.js 是 Chainstack 区块链生态系统特定功能的模块集合

## Task lists

- [x] 完成项目结构编写
- [x] 重构抛出错误方式，移除所有 string error
- [x] 完成 Account 模块编写
- [x] 减少箭头函数的使用，更多使用函数模式
- [x] 对模块的 public 方法添加注释
- [x] 对重要函数的重要细节添加注释
- [x] 编写 Subscrptions 模块
- [x] 完成 Account 模块交易签名的编写
- [x] 完成交易的编写
- [x] 完成项目打包脚本
- [x] 将 Wallet 重构成 HD 钱包形式
- [x] 完成交易地址的更换
- [x] 重构 Method 和 Subscription 模块编写
- [x] 修复 build watch 脚本的问题
- [x] 增加测试覆盖率
- [x] 根据RPC文档添加剩余接口
- [ ] 重构 Provider 模块，减少回调的使用
- [ ] 添加通信层即 Provider 模块测试编写及细节描述

## 项目结构

### core

项目核心

#### method

rpc方法封装，传入方法名等配置即可添加一个新的RPC调用接口

#### Subscriptions

添加对区块链的监听方法

#### promiEvent

promise 事件封装，给返回一个带 event 属性的 promise

#### requestManager

RPC接口的统一封装层，封装处理不同 provider 之间的差异，暴露出同样的接口

#### extend

为指定库添加新的RPC方法

### cs

拥有与 Chainstack 区块链交互以及与 Chainstack 智能合约交互等功能

#### accounts

拥有创建账户，管理钱包账户，创建交易等功能

#### personal

使用节点控制下的账户的功能，创建与交易等

#### transaction

交易模块，提供了交易的生成、签名和序列化等功能

### net

提供了一些与区块链节点网络属性交互的方法

### types

统一放置的类型

Generated using TypeDoc