JCCDex / ProjectFundingProposal

Jingtum & MOAC Project Funding Proposal
27 stars 8 forks source link

PFP45 井通开发库@swtc/* 增加国密支持 #73

Closed lospringliu closed 2 years ago

lospringliu commented 3 years ago

必要

服务国内,国密支持是刚需

要点

组件 内容 参考工时
准备 commit现有更新, 测试,作完全发布 1.5
设计 保持现有结构和兼容性 2
参考文档 国密开发库 2
参考实现 jingtum-lib-gm 1
代码 功能实现 4
文档更新 说明 / 参数 / 实例 2
测试 测试实例及执行 3
发布 发布 npm 0.5
扩展 同步新增TX方法 / 定制链支持 2
lospringliu commented 3 years ago

进度 - 100%

  1. 准备 ✅
  2. 熟悉/选择国密开发库 ✅
    • eckey.js
    • sm.js ✅ -> @swtc/sm.js
    • sm3.js ✅ -> @swtc/common/SM3
    • gm-crypto
    • sm-crypto
  3. 参考现有实现 ✅
    • jingtum-lib-gm ✅
    • jingtum-base-lib-gm ✅
  4. 设计 ✅
    • 所有底层保持接口不变 address-codec/keypairs/wallet/utils/serializer/transaction ✅
    • 内部重构国密的支持 ✅
    • 高层 rpc 重构,保持接口不变 ✅
    • 高层 lib 优先考虑重构,保持接口不变 ✅ 如果碰到意料外困难,改新增 lib-gm作完全隔离
    • 高层 api/proxy暂不更新, 有需求时再实现
    • 删除 x-lib, 重构后 lib 和 rpc均支持所有相关公链 ✅
    • 扩展所有Factory接口 以支持自定制井通链 ✅
  5. 实现 ✅
    • common + sm3.js ✅
    • address-codec ✅
    • keypairs + @swtc/sm.js ✅
    • wallet ✅
    • utils ✅
    • serializer ✅
    • transaction ✅
    • rpc ✅
    • lib ✅
    • 新增TX方法 erc721
    • 定制链支持 ✅
      e033a42 re-arch finalize
      0c6e691 (tag: @swtc/wallet@1.0.19, tag: @swtc/utils@1.0.15, tag: @swtc/transaction@1.0.21, tag: @swtc/serializer@1.0.16, tag: @swtc/rpc@1.0.10, tag: @swtc/proxy@1.0.20, tag: @swtc/lib@1.0.18, tag: @swtc/keypairs@1.0.17, tag: @swtc/common@1.0.23, tag: @swtc/api@1.0.15, tag: @swtc/address-codec@1.0.16) chore(release): publish
      a7f1658 re-arch to support private chains and test updates
      c75cc45 add npm run test:guomi and retire x-lib
      596e6e3 lib + rpc higher level support tests
      f946a3a lib + rpc higher level support
      d3ec844 above implements key types d25519 + secp256k1 + sm2p256v1
      455fcf2 utils + serializer + transaction middle level support
      6d0b985 address-codec + keypairs + wallet lower level tests
      ffa4ff7 address-codec + keypairs + wallet lower level support
      6de06d1 common + sm.js + sm3.js
  6. 测试 (node.js v12) ✅
    • git clone git@github.com:swtcca/swtclib.git
    • cd swtclib; npm install
    • npm run test:guomi
    • npm run test:guomiapi
  7. 文档 - ✅
  8. 发布 ✅
AnFengDe commented 2 years ago

支付记录