@caict/bop-typescript-sdk 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/LICENSE +202 -0
  3. package/NOTICE +5 -0
  4. package/README.md +112 -0
  5. package/package.json +90 -0
  6. package/src/bop/bop-base/README.md +5 -0
  7. package/src/bop/bop-base/base.ts +366 -0
  8. package/src/bop/bop-base/index.ts +83 -0
  9. package/src/bop/bop-base/permit.ts +116 -0
  10. package/src/bop/bop-base/test/base.test.ts +867 -0
  11. package/src/bop/bop-base/test/index.test.ts +69 -0
  12. package/src/bop/bop-base/test/permit.test.ts +125 -0
  13. package/src/bop/bop-base/tsconfig.json +8 -0
  14. package/src/bop/bop-proto/README.md +2 -0
  15. package/src/bop/bop-proto/bop-ws.proto +266 -0
  16. package/src/bop/bop-proto/bop-ws.ts +4447 -0
  17. package/src/bop/bop-proto/bop.proto +898 -0
  18. package/src/bop/bop-proto/bop.ts +12890 -0
  19. package/src/bop/bop-proto/tsconfig.json +8 -0
  20. package/src/bop/bop-ws/index.ts +315 -0
  21. package/src/bop/bop-ws/sample/sample.ts +107 -0
  22. package/src/bop/bop-ws/tsconfig.json +8 -0
  23. package/src/bop/index.ts +14 -0
  24. package/src/bop-sdk/index.ts +22 -0
  25. package/src/bop-sdk/interface/abstract-service/abstract-account.ts +23 -0
  26. package/src/bop-sdk/interface/abstract-service/abstract-chain.ts +9 -0
  27. package/src/bop-sdk/interface/abstract-service/abstract-contract.ts +16 -0
  28. package/src/bop-sdk/interface/abstract-service/abstract-ledger.ts +15 -0
  29. package/src/bop-sdk/interface/abstract-service/abstract-provider.ts +13 -0
  30. package/src/bop-sdk/interface/abstract-service/abstract-signer.ts +133 -0
  31. package/src/bop-sdk/interface/abstract-service/abstract-transaction.ts +86 -0
  32. package/src/bop-sdk/interface/provider-ws.ts +10 -0
  33. package/src/bop-sdk/interface/provider.ts +22 -0
  34. package/src/bop-sdk/interface/service/3rd.ts +54 -0
  35. package/src/bop-sdk/interface/service/account.ts +86 -0
  36. package/src/bop-sdk/interface/service/chain.ts +27 -0
  37. package/src/bop-sdk/interface/service/contract.ts +51 -0
  38. package/src/bop-sdk/interface/service/helper.ts +426 -0
  39. package/src/bop-sdk/interface/service/ledger.ts +75 -0
  40. package/src/bop-sdk/interface/service/offline/check/index.js +138 -0
  41. package/src/bop-sdk/interface/service/offline/common/constant.js +6 -0
  42. package/src/bop-sdk/interface/service/offline/common/snowFlakeUtils.js +192 -0
  43. package/src/bop-sdk/interface/service/offline/common/util.js +511 -0
  44. package/src/bop-sdk/interface/service/offline/exception/customErrors.js +29 -0
  45. package/src/bop-sdk/interface/service/offline/exception/errors.js +90 -0
  46. package/src/bop-sdk/interface/service/offline/exception/index.js +5 -0
  47. package/src/bop-sdk/interface/service/offline/operation/accountCreateOperation.js +28 -0
  48. package/src/bop-sdk/interface/service/offline/operation/accountSetMetadataOperation.js +44 -0
  49. package/src/bop-sdk/interface/service/offline/operation/accountSetPrivilegeOperation.js +49 -0
  50. package/src/bop-sdk/interface/service/offline/operation/contractCreateOperation.js +43 -0
  51. package/src/bop-sdk/interface/service/offline/operation/contractInvokeOperation.js +42 -0
  52. package/src/bop-sdk/interface/service/offline/operation/contractInvokeRequestOperation.js +69 -0
  53. package/src/bop-sdk/interface/service/offline/operation/gasSendOperation.js +29 -0
  54. package/src/bop-sdk/interface/service/offline/operation/gasSendRequestOperation.js +61 -0
  55. package/src/bop-sdk/interface/service/offline/operation/index.js +20 -0
  56. package/src/bop-sdk/interface/service/offline/proto/chain_pb.js +12079 -0
  57. package/src/bop-sdk/interface/service/offline/proto/common_pb.js +2867 -0
  58. package/src/bop-sdk/interface/service/offline/transaction/index.js +988 -0
  59. package/src/bop-sdk/interface/service/offline/transaction/operations.js +188 -0
  60. package/src/bop-sdk/interface/service/offline/validate/account.js +152 -0
  61. package/src/bop-sdk/interface/service/offline/validate/contract.js +101 -0
  62. package/src/bop-sdk/interface/service/offline/validate/index.js +10 -0
  63. package/src/bop-sdk/interface/service/offline/validate/transaction.js +51 -0
  64. package/src/bop-sdk/interface/service/transaction.ts +731 -0
  65. package/src/bop-sdk/interface/signer.ts +46 -0
  66. package/src/bop-sdk/interface/test/3rd.test.ts +1571 -0
  67. package/src/bop-sdk/interface/test/account.test.ts +284 -0
  68. package/src/bop-sdk/interface/test/chain.test.ts +45 -0
  69. package/src/bop-sdk/interface/test/contract.test.ts +283 -0
  70. package/src/bop-sdk/interface/test/ledger.test.ts +166 -0
  71. package/src/bop-sdk/interface/test/provider.test.ts +407 -0
  72. package/src/bop-sdk/interface/test/signer.test.ts +105 -0
  73. package/src/bop-sdk/interface/test/transaction.test.ts +713 -0
  74. package/src/bop-sdk/proto/bop-sdk-common.proto +159 -0
  75. package/src/bop-sdk/proto/bop-sdk-common.ts +829 -0
  76. package/src/bop-sdk/proto/bop-sdk-interface.proto +581 -0
  77. package/src/bop-sdk/proto/bop-sdk-interface.ts +10839 -0
  78. package/src/bop-sdk/proto/bop-sdk-utils.proto +86 -0
  79. package/src/bop-sdk/proto/bop-sdk-utils.ts +1495 -0
  80. package/src/bop-sdk/utils/abi/abi-coder.ts +147 -0
  81. package/src/bop-sdk/utils/abi/address.ts +109 -0
  82. package/src/bop-sdk/utils/abi/bignumber.ts +403 -0
  83. package/src/bop-sdk/utils/abi/bytes.ts +565 -0
  84. package/src/bop-sdk/utils/abi/coders/abstract-coder.ts +239 -0
  85. package/src/bop-sdk/utils/abi/coders/address.ts +58 -0
  86. package/src/bop-sdk/utils/abi/coders/anonymous.ts +25 -0
  87. package/src/bop-sdk/utils/abi/coders/array.ts +275 -0
  88. package/src/bop-sdk/utils/abi/coders/boolean.ts +21 -0
  89. package/src/bop-sdk/utils/abi/coders/bytes.ts +36 -0
  90. package/src/bop-sdk/utils/abi/coders/fixed-bytes.ts +35 -0
  91. package/src/bop-sdk/utils/abi/coders/null.ts +25 -0
  92. package/src/bop-sdk/utils/abi/coders/number.ts +56 -0
  93. package/src/bop-sdk/utils/abi/coders/string.ts +24 -0
  94. package/src/bop-sdk/utils/abi/coders/tuple.ts +73 -0
  95. package/src/bop-sdk/utils/abi/constants/addresses.ts +1 -0
  96. package/src/bop-sdk/utils/abi/constants/bignumbers.ts +30 -0
  97. package/src/bop-sdk/utils/abi/constants/hashes.ts +2 -0
  98. package/src/bop-sdk/utils/abi/constants/index.ts +15 -0
  99. package/src/bop-sdk/utils/abi/constants/strings.ts +2 -0
  100. package/src/bop-sdk/utils/abi/fragments.ts +1243 -0
  101. package/src/bop-sdk/utils/abi/id.ts +6 -0
  102. package/src/bop-sdk/utils/abi/index.ts +46 -0
  103. package/src/bop-sdk/utils/abi/interface.ts +921 -0
  104. package/src/bop-sdk/utils/abi/keccak256.ts +9 -0
  105. package/src/bop-sdk/utils/abi/properties.ts +172 -0
  106. package/src/bop-sdk/utils/abi/strings/bytes32.ts +40 -0
  107. package/src/bop-sdk/utils/abi/strings/idna.ts +258 -0
  108. package/src/bop-sdk/utils/abi/strings/index.ts +28 -0
  109. package/src/bop-sdk/utils/abi/strings/utf8.ts +373 -0
  110. package/src/bop-sdk/utils/encryption-address.ts +501 -0
  111. package/src/bop-sdk/utils/encryption-crypto.ts +427 -0
  112. package/src/bop-sdk/utils/encryption-mnemonics.ts +120 -0
  113. package/src/bop-sdk/utils/index.ts +27 -0
  114. package/src/bop-sdk/utils/logger.ts +480 -0
  115. package/src/index.ts +35 -0
@@ -0,0 +1,159 @@
1
+ syntax = "proto3";
2
+ package bopsdk;
3
+
4
+ enum SdkStatusCode {
5
+ SUCCESS = 0;
6
+
7
+ INVALID_URL = 9999;
8
+
9
+ //utils相关错误码
10
+ INVALIDPRIVATEKEY = 10000;
11
+ INVALIDPUBLICKEY = 10001;
12
+ INVALIDADDRESS = 10002;
13
+ INVALIDPASSWD = 10003;
14
+ INVALIDKEYSTORE = 10004;
15
+ ERRORPASSWD = 10005;
16
+ INVALIDMESSAGE = 10006;
17
+ INVALIDSIGNATURE = 10007;
18
+ INVALIDENTROPY = 10008;
19
+ INVALIDMNEMONICS = 10009;
20
+ UNSUPPORTKEYTYPE = 10010;
21
+ INVALIDCHAINCODE = 10011;
22
+ INVALIDSERVICETYPE = 10012;
23
+ INVALIDINDEXVALUE = 10013;
24
+
25
+ //Signer相关错误码
26
+ UNCONNECTED_PROVIDER = 20000; //未连接provider
27
+ NO_PROVIDER_SET = 20001;
28
+
29
+ //构建离线交易异常
30
+ // 源地址无效错误
31
+ INVALID_SOURCEADDRESS_ERROR = 11002;
32
+ // 目标地址无效错误
33
+ INVALID_DESTADDRESS_ERROR = 11003;
34
+ // 初始余额无效错误
35
+ INVALID_INITBALANCE_ERROR = 11004;
36
+ // 地址无效错误
37
+ INVALID_ADDRESS_ERROR = 11006;
38
+ // 元数据不是十六进制字符串错误
39
+ METADATA_NOT_HEX_STRING_ERROR = 11008;
40
+ // 数据键无效错误
41
+ INVALID_DATAKEY_ERROR = 11011;
42
+ // 数据值无效错误
43
+ INVALID_DATAVALUE_ERROR = 11012;
44
+ // 数据版本无效错误
45
+ INVALID_DATAVERSION_ERROR = 11013;
46
+ // 主权重无效错误
47
+ INVALID_MASTERWEIGHT_ERROR = 11015;
48
+ // 签名者地址无效错误
49
+ INVALID_SIGNER_ADDRESS_ERROR = 11016;
50
+ // 签名者权重无效错误
51
+ INVALID_SIGNER_WEIGHT_ERROR = 11017;
52
+ // 交易阈值无效错误
53
+ INVALID_TX_THRESHOLD_ERROR = 11018;
54
+ // 操作类型无效错误
55
+ INVALID_OPERATION_TYPE_ERROR = 11019;
56
+ // 类型阈值无效错误
57
+ INVALID_TYPE_THRESHOLD_ERROR = 11020;
58
+ // 金额无效错误
59
+ INVALID_AMOUNT_ERROR = 11024;
60
+ // 合同地址无效错误
61
+ INVALID_CONTRACTADDRESS_ERROR = 11037;
62
+ // 合同地址不是合同账户错误
63
+ CONTRACTADDRESS_NOT_CONTRACTACCOUNT_ERROR = 11038;
64
+ // 起始地址无效错误
65
+ INVALID_FROMADDRESS_ERROR = 11041;
66
+ // 有效载荷为空错误
67
+ PAYLOAD_EMPTY_ERROR = 11044;
68
+ // 合同类型无效错误
69
+ INVALID_CONTRACT_TYPE_ERROR = 11047;
70
+ // nonce无效错误
71
+ INVALID_NONCE_ERROR = 11048;
72
+ // 气体价格无效错误
73
+ INVALID_GASPRICE_ERROR = 11049;
74
+ // 费用限制无效错误
75
+ INVALID_FEELIMIT_ERROR = 11050;
76
+ // 操作不能为空错误
77
+ OPERATIONS_EMPTY_ERROR = 11051;
78
+ // 最高账本序列号无效错误
79
+ INVALID_CEILLEDGERSEQ_ERROR = 11052;
80
+ // 随机数类型无效错误
81
+ INVALID_NONCE_TYPE_ERROR = 12008;
82
+
83
+
84
+ //链相关错误描述
85
+ INTERNAL_SERVER_ERROR = 1; //数据源异常
86
+ INVALID_PARAMETER = 2; //参数异常 -> 2
87
+ OBJECT_ALREADY_EXISTS = 3; //对象已存在 -> 3
88
+ OBJECT_NOT_FOUND = 4; //对象不存在
89
+ TX_TIMEOUT = 5; //交易超时
90
+ ACCOUNT_ACCESS_DENIED = 6; //账户禁止使用
91
+ MATH_OVERFLOW = 7; //数学计算溢出
92
+ ILLEGAL_PUBLIC_KEY = 90; //公钥非法
93
+ ILLEGAL_PRIVATE_KEY = 91; //私钥非法
94
+ INSUFFICIENT_SIGNATURE_WEIGHT = 93; // 签名权重不够,达不到操作的门限值
95
+ ILLEGAL_ADDRESS = 94; //地址非法
96
+ MISSING_TRANSACTION_OPERATION = 97; // 交易缺失操作
97
+ TOO_MANY_OPERATIONS = 98; // 单笔交易内超过了100个操作
98
+ INVALID_NONCE = 99; // 交易序号错误,nonce错误
99
+ ACCOUNT_LOW_RESERVE = 100; // 余额不足
100
+ SOURCE_AND_DESTINATION_EQUAL = 101; //源和目的账号相等
101
+ ACCOUNT_ALREADY_EXISTS = 102; //创建账号操作,目标账号已存在
102
+ ACCOUNT_NOT_FOUND = 103; // 账户不存在
103
+ INSUFFICIENT_INITIAL_ASSETS = 106; // 创建账号初始化资产小于配置文件中最小费用
104
+ INSUFFICIENT_FEE = 111; // 费用不足
105
+ WEIGHT_OUT_OF_RANGE = 120; // 权重值不在有效范围
106
+ THRESHOLD_OUT_OF_RANGE = 121; // 门限值不在有效范围
107
+ MISMATCHING_METADATA_VERSION = 144; // metadata的version版本号不与已有的匹配
108
+ TRANSACTION_DATA_TOO_LARGE = 146; // 交易数据超出上限
109
+ CONTRACT_EXECUTION_FAILED = 151; //合约执行失败
110
+ CONTRACT_PARSE_FAILED = 152; // 合约语法分析失败
111
+ CONTRACT_RECURSION_DEPTH_EXCEEDED = 153; // 合约递归深度超出上限
112
+ CONTRACT_GENERATED_TOO_MANY_TRANSACTIONS = 154; // 合约产生的交易超出上限
113
+ CONTRACT_EXECUTION_TIMEOUT = 155; // 合约执行超时
114
+ NON_CONTRACT_ADDRESS = 156; // 目标地址非合约账户
115
+ FAILED_TO_INSERT_INTO_TX_QUEUE = 160;// 插入交易缓存队列失败
116
+ FORBIDDEN_SPARK_TOKEN_TRANSFER = 161; // 禁止转移星火令
117
+ DUPLICATE_NONCE_IN_CACHE = 183;// 交易nonce重复,nonce在缓存中 (需重新发送交易)
118
+ INVALID_MAX_BLOCK_NUMBER = 184; // 交易最大区块数错误,小于当前区块高度 (需要重新获取区块高度序列化接口)
119
+
120
+ //开发平台相关错误码
121
+ PARAMETER_TYPE_PARSING_EXCEPTION = -3; // 参数类型解析异常
122
+ INVALID_PARAMETER_EXCEPTION = -6; // 无效参数异常
123
+ REQUEST_TYPE_EXCEPTION = -7; // 请求类型异常
124
+ UNIFIED_VALIDATION_EXCEPTION = -9; // 统一验证参数异常
125
+ METHOD_NOT_ALLOWED = 405; // 不支持当前请求类型
126
+ API_NOT_FOUND = 1013; // 请求的API不存在
127
+ API_DEPRECATED = 1015; // 请求的API已停用
128
+ TIMEOUT = 1016; // timeout
129
+ SENSITIVE_WORDS_IN_TRANSACTION = 1101; // 交易数据中包含敏感词汇
130
+ CONTRACT_ADDRESS_NOT_IN_WHITELIST = 1102; // 您的合约地址未在项目合约白名单
131
+ ILLEGAL_TRANSACTION_DATA = 1103; // 请检查交易数据是否合规
132
+ TRANSACTION_TYPE_NOT_FOUND = 1105; // 交易类型不存在
133
+ REMOTE_CALL_FAILED = 1106; // 远程调用失败
134
+ TRANSACTION_POOL_TYPE_NOT_FOUND = 1107; // 交易池类型不存在
135
+ PARAMETER_OUT_OF_RANGE = 1108; // 参数超出限制
136
+ ILLEGAL_PARAMETER = 1109; // 非法参数
137
+ TX_TYPE_REQUIRED = 1110; // 当bid 或 tx_id为不为空时,tx_type为必填
138
+ BUSINESS_PARAMETER_CANNOT_BE_EMPTY = 1111; // 业务参数不能为空
139
+ API_KEY_NOT_FOUND = 1122; // API Key不存在
140
+ REQUEST_RATE_EXCEEDED_PER_SECOND = 1200; // 每秒请求频次超出限制
141
+ REQUEST_RATE_EXCEEDED_PER_DAY = 1201; // 每日请求频次超出限制
142
+ NO_RESOURCES_AVAILABLE = 1202; // 您已无资源可用
143
+ PROJECT_DELETED = 1203; // 项目已被删除
144
+ PROJECT_DISABLED = 1204; // 项目已禁用
145
+ PROJECT_BLACKLISTED = 1205; // 项目被拉入黑名单
146
+ ACCOUNT_BLACKLISTED = 1206; // 账户被拉入黑名单
147
+ API_SECRET_REQUIRED_IN_HEADER = 1207; // 请在Header中传入API Secret
148
+ MISMATCHING_API_SECRET = 1208; // 传入的API Secret与项目不匹配
149
+ ENHANCED_TRANSACTION_SERVICE_NOT_ENABLED = 1209; // 增强交易服务未开启
150
+ MISMATCHING_PROJECT_AND_API_TYPE = 1210; // 项目类型与API类型不一致
151
+ PROJECT_WITHOUT_MAINNET_PERMISSION = 1211; // 当前项目还没有主网权限
152
+ IN_PLATFORM_QUEUE = 1311; // 平台队列中
153
+ TRANSACTION_SUBMITTED_TO_SPARKCHAIN = 1312; // 交易已提交到星火链
154
+ TRANSACTION_POOL_TIMEOUT_DISCARD = 1313; // 平台交易池超时丢弃
155
+ NO_TRANSACTION_POOL_FOR_PROJECT = 1314; // 项目暂无交易池(增强交易)
156
+ TRANSACTION_ALREADY_EXISTS = 1315; // 交易已存在
157
+ SPARKCHAIN_TIMEOUT_DISCARD = 1316; // 星火链超时丢弃
158
+ TOO_MANY_TRANSACTION_OPERATIONS = 1317; // 交易操作频繁
159
+ }