web-dc-api 0.0.87 → 0.0.89
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.
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/protobuf-BVBdi7Hh.js +1 -0
- package/dist/dc.min.js +1 -19
- package/dist/esm/chunks/protobuf-CbxDm-Gy.js +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/index.d.ts +947 -886
- package/package.json +14 -17
- package/dist/index.cjs.js +0 -19
- package/dist/index.esm.js +0 -19
- package/lib/common/blowfish/block.ts +0 -259
- package/lib/common/blowfish/cipher.ts +0 -144
- package/lib/common/blowfish/const.ts +0 -195
- package/lib/common/chain.ts +0 -469
- package/lib/common/commonclient.ts +0 -202
- package/lib/common/constants.ts +0 -55
- package/lib/common/dc-key/ed25519.ts +0 -343
- package/lib/common/dc-key/keyManager.ts +0 -424
- package/lib/common/dcapi.ts +0 -98
- package/lib/common/dcutil.ts +0 -595
- package/lib/common/define.ts +0 -66
- package/lib/common/error.ts +0 -67
- package/lib/common/grpc-dc.ts +0 -104
- package/lib/common/module-system.ts +0 -184
- package/lib/common/service-worker.ts +0 -234
- package/lib/common/types/types.ts +0 -344
- package/lib/dc.ts +0 -694
- package/lib/implements/account/client.ts +0 -185
- package/lib/implements/account/manager.ts +0 -683
- package/lib/implements/aiproxy/client.ts +0 -357
- package/lib/implements/aiproxy/manager.ts +0 -670
- package/lib/implements/cache/client.ts +0 -105
- package/lib/implements/cache/manager.ts +0 -127
- package/lib/implements/comment/client.ts +0 -982
- package/lib/implements/comment/manager.ts +0 -1151
- package/lib/implements/dc/client.ts +0 -51
- package/lib/implements/dc/manager.ts +0 -33
- package/lib/implements/file/client.ts +0 -253
- package/lib/implements/file/file-cache-manager.ts +0 -142
- package/lib/implements/file/manager.ts +0 -1240
- package/lib/implements/file/seekableFileStream.ts +0 -344
- package/lib/implements/file/streamwriter.ts +0 -322
- package/lib/implements/keyvalue/client.ts +0 -376
- package/lib/implements/keyvalue/manager.ts +0 -759
- package/lib/implements/message/client.ts +0 -250
- package/lib/implements/message/manager.ts +0 -215
- package/lib/implements/threaddb/cbor/coding.ts +0 -62
- package/lib/implements/threaddb/cbor/event.ts +0 -336
- package/lib/implements/threaddb/cbor/node.ts +0 -542
- package/lib/implements/threaddb/cbor/record.ts +0 -398
- package/lib/implements/threaddb/common/AsyncMutex.ts +0 -24
- package/lib/implements/threaddb/common/addrinfo.ts +0 -135
- package/lib/implements/threaddb/common/dispatcher.ts +0 -81
- package/lib/implements/threaddb/common/idbstore-adapter.ts +0 -260
- package/lib/implements/threaddb/common/json-patcher.ts +0 -204
- package/lib/implements/threaddb/common/key.ts +0 -290
- package/lib/implements/threaddb/common/level-adapter.ts +0 -235
- package/lib/implements/threaddb/common/lineReader.ts +0 -79
- package/lib/implements/threaddb/common/logstore.ts +0 -215
- package/lib/implements/threaddb/common/transformed-datastore.ts +0 -308
- package/lib/implements/threaddb/core/app.ts +0 -202
- package/lib/implements/threaddb/core/core.ts +0 -230
- package/lib/implements/threaddb/core/db.ts +0 -249
- package/lib/implements/threaddb/core/event.ts +0 -54
- package/lib/implements/threaddb/core/head.ts +0 -89
- package/lib/implements/threaddb/core/identity.ts +0 -171
- package/lib/implements/threaddb/core/logstore.ts +0 -137
- package/lib/implements/threaddb/core/options.ts +0 -14
- package/lib/implements/threaddb/core/record.ts +0 -54
- package/lib/implements/threaddb/db/collection.ts +0 -1910
- package/lib/implements/threaddb/db/db.ts +0 -698
- package/lib/implements/threaddb/db/json2Query.ts +0 -192
- package/lib/implements/threaddb/db/query.ts +0 -524
- package/lib/implements/threaddb/dbclient.ts +0 -443
- package/lib/implements/threaddb/dbmanager.ts +0 -1901
- package/lib/implements/threaddb/lsstoreds/addr_book.ts +0 -452
- package/lib/implements/threaddb/lsstoreds/cache.ts +0 -36
- package/lib/implements/threaddb/lsstoreds/cyclic_batch.ts +0 -87
- package/lib/implements/threaddb/lsstoreds/global.ts +0 -151
- package/lib/implements/threaddb/lsstoreds/headbook.ts +0 -280
- package/lib/implements/threaddb/lsstoreds/keybook.ts +0 -297
- package/lib/implements/threaddb/lsstoreds/logstore.ts +0 -29
- package/lib/implements/threaddb/lsstoreds/metadata.ts +0 -223
- package/lib/implements/threaddb/net/define.ts +0 -138
- package/lib/implements/threaddb/net/grpcClient.ts +0 -582
- package/lib/implements/threaddb/net/grpcserver.ts +0 -146
- package/lib/implements/threaddb/net/net.ts +0 -2006
- package/lib/implements/threaddb/pb/lstore.proto +0 -38
- package/lib/implements/threaddb/pb/lstore.ts +0 -393
- package/lib/implements/threaddb/pb/lstore_pb.d.ts +0 -433
- package/lib/implements/threaddb/pb/lstore_pb.js +0 -1085
- package/lib/implements/threaddb/pb/net.proto +0 -194
- package/lib/implements/threaddb/pb/net_pb.d.ts +0 -2349
- package/lib/implements/threaddb/pb/net_pb.js +0 -5525
- package/lib/implements/threaddb/pb/proto-custom-types.ts +0 -212
- package/lib/implements/util/client.ts +0 -72
- package/lib/implements/util/manager.ts +0 -146
- package/lib/implements/wallet/manager.ts +0 -664
- package/lib/index.ts +0 -57
- package/lib/interfaces/DCContext.ts +0 -51
- package/lib/interfaces/aiproxy-interface.ts +0 -145
- package/lib/interfaces/auth-interface.ts +0 -118
- package/lib/interfaces/cache-interface.ts +0 -22
- package/lib/interfaces/client-interface.ts +0 -11
- package/lib/interfaces/comment-interface.ts +0 -167
- package/lib/interfaces/database-interface.ts +0 -169
- package/lib/interfaces/file-interface.ts +0 -120
- package/lib/interfaces/index.ts +0 -10
- package/lib/interfaces/keyvalue-interface.ts +0 -156
- package/lib/interfaces/message-interface.ts +0 -22
- package/lib/interfaces/util-interface.ts +0 -31
- package/lib/modules/aiproxy-module.ts +0 -246
- package/lib/modules/auth-module.ts +0 -753
- package/lib/modules/cache-module.ts +0 -99
- package/lib/modules/client-module.ts +0 -71
- package/lib/modules/comment-module.ts +0 -429
- package/lib/modules/database-module.ts +0 -598
- package/lib/modules/file-module.ts +0 -291
- package/lib/modules/index.ts +0 -13
- package/lib/modules/keyvalue-module.ts +0 -379
- package/lib/modules/message-module.ts +0 -107
- package/lib/modules/util-module.ts +0 -148
- package/lib/polyfills/process-env-browser.ts +0 -1
- package/lib/proto/datasource.ts +0 -93
- package/lib/proto/dcnet.proto +0 -1601
- package/lib/proto/dcnet_proto.d.ts +0 -22857
- package/lib/proto/dcnet_proto.js +0 -55204
- package/lib/proto/dcnet_proto_sparse.js +0 -55166
- package/lib/proto/oidfetch.proto +0 -25
- package/lib/proto/oidfetch_proto.d.ts +0 -585
- package/lib/proto/oidfetch_proto.js +0 -1247
- package/lib/serverless/babel-browser.ts +0 -39
- package/lib/serverless/base_entity.ts +0 -78
- package/lib/serverless/base_repository.ts +0 -414
- package/lib/serverless/browser_schema_extractor.ts +0 -283
- package/lib/serverless/decorator_factory.ts +0 -322
- package/lib/util/BrowserLineReader.ts +0 -73
- package/lib/util/base64.ts +0 -105
- package/lib/util/bcrypt.ts +0 -206
- package/lib/util/curve25519Encryption.ts +0 -418
- package/lib/util/dccrypt.ts +0 -73
- package/lib/util/logger.ts +0 -104
- package/lib/util/utils.ts +0 -289
|
@@ -1,185 +0,0 @@
|
|
|
1
|
-
import type { Multiaddr } from "@multiformats/multiaddr";
|
|
2
|
-
import type { Client } from "../../common/dcapi";
|
|
3
|
-
import { Libp2pGrpcClient } from "grpc-libp2p-client";
|
|
4
|
-
import { dcnet } from "../../proto/dcnet_proto";
|
|
5
|
-
import { DCContext } from "../../../lib/interfaces/DCContext";
|
|
6
|
-
import { uint32ToLittleEndianBytes } from "../../util/utils";
|
|
7
|
-
import { Errors } from "../../common/error";
|
|
8
|
-
import { Ed25519PrivKey, Ed25519PubKey } from "../../common/dc-key/ed25519";
|
|
9
|
-
import { KeyManager } from "../../common/dc-key/keyManager";
|
|
10
|
-
|
|
11
|
-
export class AccountClient {
|
|
12
|
-
client: Client;
|
|
13
|
-
|
|
14
|
-
constructor(dcClient: Client) {
|
|
15
|
-
this.client = dcClient;
|
|
16
|
-
}
|
|
17
|
-
async bindAccessPeerToUser(
|
|
18
|
-
context: DCContext,
|
|
19
|
-
blockHeight: number,
|
|
20
|
-
peerId: string
|
|
21
|
-
): Promise<boolean> {
|
|
22
|
-
if (this.client.p2pNode == null) {
|
|
23
|
-
throw new Error("p2pNode is null");
|
|
24
|
-
}
|
|
25
|
-
const peerIdValue = new TextEncoder().encode(peerId);
|
|
26
|
-
const bhValue = uint32ToLittleEndianBytes(blockHeight ? blockHeight : 0);
|
|
27
|
-
// 绑定节点
|
|
28
|
-
const headerValue = new TextEncoder().encode("add_request_peer_id_to_user");
|
|
29
|
-
|
|
30
|
-
const messageParts = new Uint8Array([
|
|
31
|
-
...headerValue,
|
|
32
|
-
...bhValue,
|
|
33
|
-
...peerIdValue,
|
|
34
|
-
]);
|
|
35
|
-
const signature = await context.sign(messageParts);
|
|
36
|
-
const grpcClient = new Libp2pGrpcClient(
|
|
37
|
-
this.client.p2pNode,
|
|
38
|
-
this.client.peerAddr,
|
|
39
|
-
this.client.token,
|
|
40
|
-
this.client.protocol
|
|
41
|
-
);
|
|
42
|
-
|
|
43
|
-
const message = new dcnet.pb.BindAccessPeerToUserRequest({});
|
|
44
|
-
message.blockheight = blockHeight;
|
|
45
|
-
message.signature = signature;
|
|
46
|
-
const messageBytes =
|
|
47
|
-
dcnet.pb.BindAccessPeerToUserRequest.encode(message).finish();
|
|
48
|
-
const responseData = await grpcClient.unaryCall(
|
|
49
|
-
"/dcnet.pb.Service/BindAccessPeerToUser",
|
|
50
|
-
messageBytes,
|
|
51
|
-
30000
|
|
52
|
-
);
|
|
53
|
-
const decoded = dcnet.pb.BindAccessPeerToUserReply.decode(responseData);
|
|
54
|
-
return true;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
async accountBind(buildedReq: any, mnemonic: string, context: DCContext): Promise<boolean> {
|
|
58
|
-
if (this.client.p2pNode == null) {
|
|
59
|
-
throw new Error("p2pNode is null");
|
|
60
|
-
}
|
|
61
|
-
const message = new dcnet.pb.AccountDealRequest({});
|
|
62
|
-
message.accounthashencrypt = buildedReq.accounthashencrypt;
|
|
63
|
-
message.accountencrypt = buildedReq.accountencrypt;
|
|
64
|
-
message.prikeyencrypt2 = buildedReq.prikeyencrypt2;
|
|
65
|
-
message.blockheight = buildedReq.blockheight;
|
|
66
|
-
message.loginkeyrandencrypt = buildedReq.loginkeyrandencrypt;
|
|
67
|
-
message.peerid = buildedReq.peerid;
|
|
68
|
-
message.signature = buildedReq.signature;
|
|
69
|
-
const messageBytes = dcnet.pb.AccountDealRequest.encode(message).finish();
|
|
70
|
-
// try to get token
|
|
71
|
-
// 生成
|
|
72
|
-
const keymanager = new KeyManager();
|
|
73
|
-
const selfPrivkey = await keymanager.getEd25519KeyFromMnemonic(
|
|
74
|
-
mnemonic,
|
|
75
|
-
''
|
|
76
|
-
);
|
|
77
|
-
const selfPubkey = selfPrivkey.publicKey;
|
|
78
|
-
const token = await this.client.GetToken(
|
|
79
|
-
context.appInfo.appId || "",
|
|
80
|
-
selfPubkey.string(),
|
|
81
|
-
async (payload: Uint8Array): Promise<Uint8Array> => {
|
|
82
|
-
if (selfPrivkey) {
|
|
83
|
-
return selfPrivkey.sign(payload);
|
|
84
|
-
}else {
|
|
85
|
-
return await context.sign(payload);
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
);
|
|
89
|
-
if (!token) {
|
|
90
|
-
throw new Error(Errors.INVALID_TOKEN.message);
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
const grpcClient = new Libp2pGrpcClient(
|
|
94
|
-
this.client.p2pNode,
|
|
95
|
-
this.client.peerAddr,
|
|
96
|
-
this.client.token,
|
|
97
|
-
this.client.protocol
|
|
98
|
-
);
|
|
99
|
-
|
|
100
|
-
const responseData = await grpcClient.unaryCall(
|
|
101
|
-
"/dcnet.pb.Service/AccountBind",
|
|
102
|
-
messageBytes,
|
|
103
|
-
30000
|
|
104
|
-
);
|
|
105
|
-
const decoded = dcnet.pb.AccountDealReply.decode(responseData);
|
|
106
|
-
return true;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
async addSubPubkey(req: any): Promise<boolean> {
|
|
110
|
-
if (this.client.p2pNode == null) {
|
|
111
|
-
throw new Error("p2pNode is null");
|
|
112
|
-
}
|
|
113
|
-
const grpcClient = new Libp2pGrpcClient(
|
|
114
|
-
this.client.p2pNode,
|
|
115
|
-
this.client.peerAddr,
|
|
116
|
-
this.client.token,
|
|
117
|
-
this.client.protocol
|
|
118
|
-
);
|
|
119
|
-
|
|
120
|
-
const message = new dcnet.pb.AddSubPubkeyRequest({});
|
|
121
|
-
message.subpubkey = req.subpubkey;
|
|
122
|
-
message.blockheight = req.blockheight;
|
|
123
|
-
message.peerid = req.peerid;
|
|
124
|
-
message.signature = req.signature;
|
|
125
|
-
const messageBytes = dcnet.pb.AddSubPubkeyRequest.encode(message).finish();
|
|
126
|
-
const responseData = await grpcClient.unaryCall(
|
|
127
|
-
"/dcnet.pb.Service/AddSubPubkey",
|
|
128
|
-
messageBytes,
|
|
129
|
-
30000
|
|
130
|
-
);
|
|
131
|
-
const decoded = dcnet.pb.AddSubPubkeyReply.decode(responseData);
|
|
132
|
-
return true;
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* 设置用户默认数据库
|
|
136
|
-
* @param context DCContext 上下文对象
|
|
137
|
-
* @param threadId 数据库ID
|
|
138
|
-
* @param rk 读取密钥,主要用来加解密真正的数据
|
|
139
|
-
* @param sk 服务密钥,主要用来处理传输过程加解密
|
|
140
|
-
* @param remark 备注信息
|
|
141
|
-
* @returns Promise resolving when operation completes
|
|
142
|
-
*/
|
|
143
|
-
async setUserDefaultDB(dbinfocrypto: Uint8Array,blockHeight: number,peerId: string,signature: Uint8Array,vaccount?: string): Promise<void> {
|
|
144
|
-
if (this.client.p2pNode == null) {
|
|
145
|
-
throw new Error("p2pNode is null");
|
|
146
|
-
}
|
|
147
|
-
try {
|
|
148
|
-
// Create gRPC client
|
|
149
|
-
const grpcClient = new Libp2pGrpcClient(
|
|
150
|
-
this.client.p2pNode,
|
|
151
|
-
this.client.peerAddr,
|
|
152
|
-
this.client.token,
|
|
153
|
-
this.client.protocol
|
|
154
|
-
);
|
|
155
|
-
|
|
156
|
-
// Create request message
|
|
157
|
-
const message = new dcnet.pb.SetUserDefaultDBRequest();
|
|
158
|
-
message.dbinfocrypt = dbinfocrypto;
|
|
159
|
-
message.blockheight = blockHeight;
|
|
160
|
-
message.peerid = new TextEncoder().encode(peerId);
|
|
161
|
-
message.signature = signature;
|
|
162
|
-
if (vaccount) {
|
|
163
|
-
message.vaccount = new TextEncoder().encode(vaccount);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
const messageBytes = dcnet.pb.SetUserDefaultDBRequest.encode(message).finish();
|
|
167
|
-
|
|
168
|
-
try {
|
|
169
|
-
// Make RPC call
|
|
170
|
-
await grpcClient.unaryCall(
|
|
171
|
-
"/dcnet.pb.Service/SetUserDefaultDB",
|
|
172
|
-
messageBytes,
|
|
173
|
-
30000
|
|
174
|
-
);
|
|
175
|
-
return;
|
|
176
|
-
} catch (error) {
|
|
177
|
-
throw error;
|
|
178
|
-
}
|
|
179
|
-
} catch (error) {
|
|
180
|
-
console.error("设置用户默认数据库失败:", error);
|
|
181
|
-
throw error;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
}
|