@nevermined-io/core-kit 0.0.2-rc19
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/README.md +15 -0
- package/dist/Instantiable.abstract.d.ts +35 -0
- package/dist/Instantiable.abstract.d.ts.map +1 -0
- package/dist/Instantiable.abstract.js +102 -0
- package/dist/artifacts/generated.d.ts +29912 -0
- package/dist/artifacts/generated.d.ts.map +1 -0
- package/dist/artifacts/generated.js +16797 -0
- package/dist/contracts/AccessManager.d.ts +17 -0
- package/dist/contracts/AccessManager.d.ts.map +1 -0
- package/dist/contracts/AccessManager.js +15 -0
- package/dist/contracts/AssetRegistry.d.ts +65 -0
- package/dist/contracts/AssetRegistry.d.ts.map +1 -0
- package/dist/contracts/AssetRegistry.js +103 -0
- package/dist/contracts/ContractBase.d.ts +21 -0
- package/dist/contracts/ContractBase.d.ts.map +1 -0
- package/dist/contracts/ContractBase.js +270 -0
- package/dist/contracts/ContractsApi.d.ts +62 -0
- package/dist/contracts/ContractsApi.d.ts.map +1 -0
- package/dist/contracts/ContractsApi.js +66 -0
- package/dist/contracts/FiatPaymentTemplate.d.ts +10 -0
- package/dist/contracts/FiatPaymentTemplate.d.ts.map +1 -0
- package/dist/contracts/FiatPaymentTemplate.js +14 -0
- package/dist/contracts/FiatSettlementCondition.d.ts +11 -0
- package/dist/contracts/FiatSettlementCondition.d.ts.map +1 -0
- package/dist/contracts/FiatSettlementCondition.js +18 -0
- package/dist/contracts/FixedPaymentTemplate.d.ts +10 -0
- package/dist/contracts/FixedPaymentTemplate.d.ts.map +1 -0
- package/dist/contracts/FixedPaymentTemplate.js +14 -0
- package/dist/contracts/NFT1155Base.d.ts +41 -0
- package/dist/contracts/NFT1155Base.d.ts.map +1 -0
- package/dist/contracts/NFT1155Base.js +21 -0
- package/dist/contracts/NFT1155Credits.d.ts +6 -0
- package/dist/contracts/NFT1155Credits.d.ts.map +1 -0
- package/dist/contracts/NFT1155Credits.js +9 -0
- package/dist/contracts/NFT1155ExpirableCredits.d.ts +34 -0
- package/dist/contracts/NFT1155ExpirableCredits.d.ts.map +1 -0
- package/dist/contracts/NFT1155ExpirableCredits.js +18 -0
- package/dist/contracts/NVMConfig.d.ts +10 -0
- package/dist/contracts/NVMConfig.d.ts.map +1 -0
- package/dist/contracts/NVMConfig.js +18 -0
- package/dist/contracts/ProtocolStandardFees.d.ts +9 -0
- package/dist/contracts/ProtocolStandardFees.d.ts.map +1 -0
- package/dist/contracts/ProtocolStandardFees.js +15 -0
- package/dist/contracts/Roles.d.ts +13 -0
- package/dist/contracts/Roles.d.ts.map +1 -0
- package/dist/contracts/Roles.js +12 -0
- package/dist/contracts/index.d.ts +3 -0
- package/dist/contracts/index.d.ts.map +1 -0
- package/dist/contracts/index.js +2 -0
- package/dist/errors/NeverminedErrors.d.ts +71 -0
- package/dist/errors/NeverminedErrors.d.ts.map +1 -0
- package/dist/errors/NeverminedErrors.js +123 -0
- package/dist/errors/index.d.ts +2 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/errors/index.js +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/models/Logger.d.ts +9 -0
- package/dist/models/Logger.d.ts.map +1 -0
- package/dist/models/Logger.js +27 -0
- package/dist/models/NeverminedOptions.d.ts +55 -0
- package/dist/models/NeverminedOptions.d.ts.map +1 -0
- package/dist/models/NeverminedOptions.js +58 -0
- package/dist/models/NvmApiKey.d.ts +137 -0
- package/dist/models/NvmApiKey.d.ts.map +1 -0
- package/dist/models/NvmApiKey.js +234 -0
- package/dist/models/Transactions.d.ts +11 -0
- package/dist/models/Transactions.d.ts.map +1 -0
- package/dist/models/Transactions.js +1 -0
- package/dist/models/index.d.ts +5 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +4 -0
- package/dist/nevermined/DID.d.ts +45 -0
- package/dist/nevermined/DID.d.ts.map +1 -0
- package/dist/nevermined/DID.js +90 -0
- package/dist/nevermined/Nevermined.d.ts +48 -0
- package/dist/nevermined/Nevermined.d.ts.map +1 -0
- package/dist/nevermined/Nevermined.js +72 -0
- package/dist/nevermined/api/PaymentsApi.d.ts +17 -0
- package/dist/nevermined/api/PaymentsApi.d.ts.map +1 -0
- package/dist/nevermined/api/PaymentsApi.js +125 -0
- package/dist/nevermined/api/ServicesApi.d.ts +28 -0
- package/dist/nevermined/api/ServicesApi.d.ts.map +1 -0
- package/dist/nevermined/api/ServicesApi.js +33 -0
- package/dist/nevermined/api/UtilsApi.d.ts +28 -0
- package/dist/nevermined/api/UtilsApi.d.ts.map +1 -0
- package/dist/nevermined/api/UtilsApi.js +33 -0
- package/dist/nevermined/index.d.ts +4 -0
- package/dist/nevermined/index.d.ts.map +1 -0
- package/dist/nevermined/index.js +3 -0
- package/dist/nevermined/utils/BlockchainViemUtils.d.ts +276 -0
- package/dist/nevermined/utils/BlockchainViemUtils.d.ts.map +1 -0
- package/dist/nevermined/utils/BlockchainViemUtils.js +376 -0
- package/dist/nevermined/utils/JwtUtils.d.ts +27 -0
- package/dist/nevermined/utils/JwtUtils.d.ts.map +1 -0
- package/dist/nevermined/utils/JwtUtils.js +154 -0
- package/dist/nevermined/utils/SignatureUtils.d.ts +14 -0
- package/dist/nevermined/utils/SignatureUtils.d.ts.map +1 -0
- package/dist/nevermined/utils/SignatureUtils.js +99 -0
- package/dist/nevermined/utils/WebServiceConnector.d.ts +32 -0
- package/dist/nevermined/utils/WebServiceConnector.d.ts.map +1 -0
- package/dist/nevermined/utils/WebServiceConnector.js +191 -0
- package/dist/nevermined/utils/ZeroDevPolicies.d.ts +19 -0
- package/dist/nevermined/utils/ZeroDevPolicies.d.ts.map +1 -0
- package/dist/nevermined/utils/ZeroDevPolicies.js +78 -0
- package/dist/nevermined/utils/index.d.ts +6 -0
- package/dist/nevermined/utils/index.d.ts.map +1 -0
- package/dist/nevermined/utils/index.js +5 -0
- package/dist/services/Api.d.ts +7 -0
- package/dist/services/Api.d.ts.map +1 -0
- package/dist/services/Api.js +25 -0
- package/dist/services/MarketplaceAPI.d.ts +7 -0
- package/dist/services/MarketplaceAPI.d.ts.map +1 -0
- package/dist/services/MarketplaceAPI.js +25 -0
- package/dist/services/MetadataService.d.ts +90 -0
- package/dist/services/MetadataService.d.ts.map +1 -0
- package/dist/services/MetadataService.js +277 -0
- package/dist/services/Profiles.d.ts +16 -0
- package/dist/services/Profiles.d.ts.map +1 -0
- package/dist/services/Profiles.js +84 -0
- package/dist/services/index.d.ts +4 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +3 -0
- package/dist/utils/ConversionTypeHelpers.d.ts +8 -0
- package/dist/utils/ConversionTypeHelpers.d.ts.map +1 -0
- package/dist/utils/ConversionTypeHelpers.js +31 -0
- package/dist/utils/Network.d.ts +5 -0
- package/dist/utils/Network.d.ts.map +1 -0
- package/dist/utils/Network.js +224 -0
- package/dist/utils/helpers.d.ts +21 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +109 -0
- package/dist/utils/index.d.ts +4 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +3 -0
- package/package.json +27 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
import { defineChain } from 'viem';
|
|
2
|
+
import { arbitrum, arbitrumSepolia, aurora, auroraTestnet, base, baseSepolia, celo, celoAlfajores, gnosis, hardhat, mainnet, optimism, polygon, polygonMumbai, } from 'viem/chains';
|
|
3
|
+
import { ContractsError } from '../errors/NeverminedErrors.js';
|
|
4
|
+
export async function getNetworkName(networkId) {
|
|
5
|
+
switch (networkId) {
|
|
6
|
+
case 1:
|
|
7
|
+
return 'mainnet';
|
|
8
|
+
case 2:
|
|
9
|
+
return 'morden';
|
|
10
|
+
case 3:
|
|
11
|
+
return 'ropsten';
|
|
12
|
+
case 4:
|
|
13
|
+
return 'rinkeby';
|
|
14
|
+
case 5:
|
|
15
|
+
return 'goerli';
|
|
16
|
+
case 10:
|
|
17
|
+
return 'optimism';
|
|
18
|
+
case 77:
|
|
19
|
+
return 'poa_sokol';
|
|
20
|
+
case 99:
|
|
21
|
+
return 'poa_core';
|
|
22
|
+
case 42:
|
|
23
|
+
return 'kovan';
|
|
24
|
+
case 100:
|
|
25
|
+
return 'gnosis';
|
|
26
|
+
case 137:
|
|
27
|
+
return 'matic';
|
|
28
|
+
case 1337:
|
|
29
|
+
return 'geth-localnet';
|
|
30
|
+
case 3141:
|
|
31
|
+
return 'hyperspace';
|
|
32
|
+
case 3338:
|
|
33
|
+
return 'peaq-mainnet';
|
|
34
|
+
case 8453:
|
|
35
|
+
return 'base';
|
|
36
|
+
case 84532:
|
|
37
|
+
return 'base-sepolia';
|
|
38
|
+
case 10200:
|
|
39
|
+
return 'chiado'; // Gnosis testnet
|
|
40
|
+
case 31337:
|
|
41
|
+
return 'geth-localnet';
|
|
42
|
+
case 8996:
|
|
43
|
+
return 'spree';
|
|
44
|
+
case 8997:
|
|
45
|
+
return 'polygon-localnet';
|
|
46
|
+
case 8998:
|
|
47
|
+
return 'hardhat';
|
|
48
|
+
case 42220:
|
|
49
|
+
return 'celo';
|
|
50
|
+
case 44787:
|
|
51
|
+
return 'celo-alfajores';
|
|
52
|
+
case 62320:
|
|
53
|
+
return 'celo-baklava';
|
|
54
|
+
case 80001:
|
|
55
|
+
return 'mumbai';
|
|
56
|
+
case 42161:
|
|
57
|
+
return 'arbitrum-one';
|
|
58
|
+
case 421613:
|
|
59
|
+
return 'arbitrum-goerli';
|
|
60
|
+
case 421614:
|
|
61
|
+
return 'arbitrum-sepolia';
|
|
62
|
+
case 1313161554:
|
|
63
|
+
return 'aurora';
|
|
64
|
+
case 1313161555:
|
|
65
|
+
return 'aurora-testnet';
|
|
66
|
+
case 1313161556:
|
|
67
|
+
return 'aurora-betanet';
|
|
68
|
+
default:
|
|
69
|
+
throw new ContractsError(`Network with id ${networkId} not supported.`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
export function isTestnet(networkId) {
|
|
73
|
+
switch (networkId) {
|
|
74
|
+
case 1:
|
|
75
|
+
return false;
|
|
76
|
+
case 2:
|
|
77
|
+
return true;
|
|
78
|
+
case 3:
|
|
79
|
+
return true;
|
|
80
|
+
case 4:
|
|
81
|
+
return true;
|
|
82
|
+
case 5:
|
|
83
|
+
return true;
|
|
84
|
+
case 10:
|
|
85
|
+
return false;
|
|
86
|
+
case 77:
|
|
87
|
+
return false;
|
|
88
|
+
case 99:
|
|
89
|
+
return false;
|
|
90
|
+
case 42:
|
|
91
|
+
return true;
|
|
92
|
+
case 100:
|
|
93
|
+
return false;
|
|
94
|
+
case 137:
|
|
95
|
+
return false;
|
|
96
|
+
case 1337:
|
|
97
|
+
return true;
|
|
98
|
+
case 3141:
|
|
99
|
+
return true;
|
|
100
|
+
case 3338:
|
|
101
|
+
return false;
|
|
102
|
+
case 8453:
|
|
103
|
+
return false;
|
|
104
|
+
case 84532:
|
|
105
|
+
return true;
|
|
106
|
+
case 10200:
|
|
107
|
+
return true;
|
|
108
|
+
case 31337:
|
|
109
|
+
return true;
|
|
110
|
+
case 8996:
|
|
111
|
+
return true;
|
|
112
|
+
case 8997:
|
|
113
|
+
return true;
|
|
114
|
+
case 8998:
|
|
115
|
+
return true;
|
|
116
|
+
case 42220:
|
|
117
|
+
return false;
|
|
118
|
+
case 44787:
|
|
119
|
+
return true;
|
|
120
|
+
case 62320:
|
|
121
|
+
return true;
|
|
122
|
+
case 80001:
|
|
123
|
+
return true;
|
|
124
|
+
case 42161:
|
|
125
|
+
return false;
|
|
126
|
+
case 421613:
|
|
127
|
+
return true;
|
|
128
|
+
case 421614:
|
|
129
|
+
return true;
|
|
130
|
+
case 1313161554:
|
|
131
|
+
return false;
|
|
132
|
+
case 1313161555:
|
|
133
|
+
return true;
|
|
134
|
+
case 1313161556:
|
|
135
|
+
return true;
|
|
136
|
+
default:
|
|
137
|
+
throw new ContractsError(`Network with id ${networkId} not supported.`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
export function getChain(networkId) {
|
|
141
|
+
switch (networkId) {
|
|
142
|
+
case 1:
|
|
143
|
+
return mainnet;
|
|
144
|
+
case 10:
|
|
145
|
+
return optimism;
|
|
146
|
+
case 100:
|
|
147
|
+
return gnosis;
|
|
148
|
+
case 137:
|
|
149
|
+
return polygon;
|
|
150
|
+
case 3338:
|
|
151
|
+
return defineChain({
|
|
152
|
+
id: networkId,
|
|
153
|
+
name: 'peaq-network',
|
|
154
|
+
nativeCurrency: {
|
|
155
|
+
name: 'Peaq',
|
|
156
|
+
symbol: 'PEAQ',
|
|
157
|
+
decimals: 18,
|
|
158
|
+
},
|
|
159
|
+
rpcUrls: {
|
|
160
|
+
default: {
|
|
161
|
+
http: ['https://evm.peaq.network'],
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
});
|
|
165
|
+
case 8453:
|
|
166
|
+
return base;
|
|
167
|
+
case 84532:
|
|
168
|
+
return baseSepolia;
|
|
169
|
+
case 42161:
|
|
170
|
+
return arbitrum;
|
|
171
|
+
case 42220:
|
|
172
|
+
return celo;
|
|
173
|
+
case 44787:
|
|
174
|
+
return celoAlfajores;
|
|
175
|
+
case 80001:
|
|
176
|
+
return polygonMumbai;
|
|
177
|
+
case 421614:
|
|
178
|
+
return arbitrumSepolia;
|
|
179
|
+
case 1313161554:
|
|
180
|
+
return aurora;
|
|
181
|
+
case 1313161555:
|
|
182
|
+
return auroraTestnet;
|
|
183
|
+
case 8996:
|
|
184
|
+
case 8997:
|
|
185
|
+
case 8998:
|
|
186
|
+
return defineChain({
|
|
187
|
+
id: networkId,
|
|
188
|
+
name: 'Localhost',
|
|
189
|
+
fees: {
|
|
190
|
+
baseFeeMultiplier: 1.2,
|
|
191
|
+
//defaultPriorityFee: parseGwei('0.01'),
|
|
192
|
+
},
|
|
193
|
+
nativeCurrency: {
|
|
194
|
+
name: 'Ether',
|
|
195
|
+
symbol: 'ETH',
|
|
196
|
+
decimals: 18,
|
|
197
|
+
},
|
|
198
|
+
rpcUrls: {
|
|
199
|
+
default: {
|
|
200
|
+
http: [`http://127.0.0.1:${process.env.ETH_PORT || 18545}`],
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
});
|
|
204
|
+
case 1337:
|
|
205
|
+
return defineChain({
|
|
206
|
+
id: networkId,
|
|
207
|
+
name: 'geth-localnet',
|
|
208
|
+
nativeCurrency: {
|
|
209
|
+
name: 'Ether',
|
|
210
|
+
symbol: 'ETH',
|
|
211
|
+
decimals: 18,
|
|
212
|
+
},
|
|
213
|
+
rpcUrls: {
|
|
214
|
+
default: {
|
|
215
|
+
http: ['http://contracts.nevermined.localnet'],
|
|
216
|
+
},
|
|
217
|
+
},
|
|
218
|
+
});
|
|
219
|
+
case 31337:
|
|
220
|
+
return hardhat;
|
|
221
|
+
default:
|
|
222
|
+
throw new ContractsError(`Network with id ${networkId} not supported.`);
|
|
223
|
+
}
|
|
224
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { SearchQuery } from '@nvm-monorepo/commons';
|
|
2
|
+
import { URL } from 'whatwg-url';
|
|
3
|
+
export declare const buildQuery: (url: string, query?: SearchQuery) => URL;
|
|
4
|
+
export declare const getCircularReplacer: () => (_key: string, value: unknown) => unknown;
|
|
5
|
+
export declare const jsonReplacer: (_key: string, value: unknown) => unknown;
|
|
6
|
+
export declare function getRandomBigInt(bits?: number): bigint;
|
|
7
|
+
export declare function generateId(length?: number): string;
|
|
8
|
+
export declare function generateZeroXId(): `0x${string}`;
|
|
9
|
+
export declare function _sleep(ms: number): Promise<unknown>;
|
|
10
|
+
export declare function urlSafeBase64Encode(input: Uint8Array): string;
|
|
11
|
+
export declare function urlSafeBase64Decode(input: string): Uint8Array;
|
|
12
|
+
export declare function encryptMessage(message: string, receiverPublicKey: string): Promise<string>;
|
|
13
|
+
export declare function decryptMessage(encryptedMessage: string, privateKey: string | any): Promise<string>;
|
|
14
|
+
export declare function serializeECIES(ecies: any): string;
|
|
15
|
+
export declare function deserializeECIES(serialized: any): {
|
|
16
|
+
iv: Buffer<ArrayBuffer>;
|
|
17
|
+
ephemPublicKey: Buffer<ArrayBuffer>;
|
|
18
|
+
ciphertext: Buffer<ArrayBuffer>;
|
|
19
|
+
mac: Buffer<ArrayBuffer>;
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAInD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAA;AAGhC,eAAO,MAAM,UAAU,GAAI,KAAK,MAAM,EAAE,QAAQ,WAAW,QAY1D,CAAA;AAED,eAAO,MAAM,mBAAmB,SAEtB,MAAM,MAAM,EAAE,OAAO,OAAO,YASrC,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,OAAO,OAAO,YAGxD,CAAA;AAED,wBAAgB,eAAe,CAAC,IAAI,SAAM,GAAG,MAAM,CAWlD;AAED,wBAAgB,UAAU,CAAC,MAAM,SAAK,UAMrC;AAED,wBAAgB,eAAe,IAAI,KAAK,MAAM,EAAE,CAE/C;AAED,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,oBAEhC;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAO7D;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAY7D;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,mBAK9E;AAED,wBAAsB,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,GAAG,mBAOtF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,GAAG,UASxC;AAED,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,GAAG;;;;;EAS/C"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { decrypt, encrypt } from 'eccrypto';
|
|
2
|
+
import { v4 } from 'uuid';
|
|
3
|
+
import { keccak256, toBytes } from 'viem';
|
|
4
|
+
import { URL } from 'whatwg-url';
|
|
5
|
+
import { noZeroX } from './ConversionTypeHelpers.js';
|
|
6
|
+
export const buildQuery = (url, query) => {
|
|
7
|
+
const fullUrl = new URL(url);
|
|
8
|
+
if (!query) {
|
|
9
|
+
return fullUrl;
|
|
10
|
+
}
|
|
11
|
+
fullUrl.searchParams.append('sort', decodeURIComponent(JSON.stringify(query.sort)));
|
|
12
|
+
fullUrl.searchParams.append('offset', query.offset?.toString());
|
|
13
|
+
fullUrl.searchParams.append('page', query.page?.toString());
|
|
14
|
+
return fullUrl;
|
|
15
|
+
};
|
|
16
|
+
export const getCircularReplacer = () => {
|
|
17
|
+
const seen = new WeakSet();
|
|
18
|
+
return (_key, value) => {
|
|
19
|
+
if (typeof value === 'object' && value !== null) {
|
|
20
|
+
if (seen.has(value)) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
seen.add(value);
|
|
24
|
+
}
|
|
25
|
+
return value;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export const jsonReplacer = (_key, value) => {
|
|
29
|
+
// Modify the value or return undefined to exclude the property
|
|
30
|
+
return typeof value === 'bigint' ? value.toString() : value;
|
|
31
|
+
};
|
|
32
|
+
export function getRandomBigInt(bits = 128) {
|
|
33
|
+
const bytes = Math.ceil(bits / 8);
|
|
34
|
+
const array = new Uint8Array(bytes);
|
|
35
|
+
crypto.getRandomValues(array);
|
|
36
|
+
let result = 0n;
|
|
37
|
+
for (const byte of array) {
|
|
38
|
+
result = (result << 8n) | BigInt(byte);
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
export function generateId(length = 64) {
|
|
43
|
+
let id = '';
|
|
44
|
+
while (id.length < length) {
|
|
45
|
+
id += v4().replace(/-/g, '');
|
|
46
|
+
}
|
|
47
|
+
return id.slice(0, length);
|
|
48
|
+
}
|
|
49
|
+
export function generateZeroXId() {
|
|
50
|
+
return keccak256(toBytes(Math.random().toString()));
|
|
51
|
+
}
|
|
52
|
+
export function _sleep(ms) {
|
|
53
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
54
|
+
}
|
|
55
|
+
export function urlSafeBase64Encode(input) {
|
|
56
|
+
let binary = '';
|
|
57
|
+
const len = input.byteLength;
|
|
58
|
+
for (let i = 0; i < len; i++) {
|
|
59
|
+
binary += String.fromCharCode(input[i]);
|
|
60
|
+
}
|
|
61
|
+
return btoa(binary).replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/, '');
|
|
62
|
+
}
|
|
63
|
+
export function urlSafeBase64Decode(input) {
|
|
64
|
+
input = input.replace(/-/g, '+').replace(/_/g, '/');
|
|
65
|
+
while (input.length % 4) {
|
|
66
|
+
input += '=';
|
|
67
|
+
}
|
|
68
|
+
const binary = atob(input);
|
|
69
|
+
const len = binary.length;
|
|
70
|
+
const bytes = new Uint8Array(len);
|
|
71
|
+
for (let i = 0; i < len; i++) {
|
|
72
|
+
bytes[i] = binary.charCodeAt(i);
|
|
73
|
+
}
|
|
74
|
+
return bytes;
|
|
75
|
+
}
|
|
76
|
+
export async function encryptMessage(message, receiverPublicKey) {
|
|
77
|
+
const publicKeyBuffer = Buffer.from(noZeroX(receiverPublicKey), 'hex');
|
|
78
|
+
const messageBuffer = Buffer.from(message);
|
|
79
|
+
const ecies = await encrypt(publicKeyBuffer, messageBuffer);
|
|
80
|
+
return serializeECIES(ecies);
|
|
81
|
+
}
|
|
82
|
+
export async function decryptMessage(encryptedMessage, privateKey) {
|
|
83
|
+
const ecies = deserializeECIES(encryptedMessage);
|
|
84
|
+
const pk = typeof privateKey === 'string' ? noZeroX(privateKey) : privateKey;
|
|
85
|
+
const decrypted = await decrypt(Buffer.from(pk, 'hex'), ecies);
|
|
86
|
+
// Revisit this code in case there is a problem decrypting the message
|
|
87
|
+
const decryptedStr = typeof decrypted === 'string' ? decrypted : decrypted.toString('hex');
|
|
88
|
+
return Buffer.from(decryptedStr, 'hex').toString();
|
|
89
|
+
}
|
|
90
|
+
export function serializeECIES(ecies) {
|
|
91
|
+
const serialized = JSON.stringify({
|
|
92
|
+
iv: Buffer.from(ecies.iv).toString('base64'),
|
|
93
|
+
ephemPublicKey: Buffer.from(ecies.ephemPublicKey).toString('base64'),
|
|
94
|
+
ciphertext: Buffer.from(ecies.ciphertext).toString('base64'),
|
|
95
|
+
mac: Buffer.from(ecies.mac).toString('base64'),
|
|
96
|
+
});
|
|
97
|
+
return serialized;
|
|
98
|
+
//return Buffer.from(serialized).toString('binary')
|
|
99
|
+
}
|
|
100
|
+
export function deserializeECIES(serialized) {
|
|
101
|
+
// const decoded = Buffer.from(serialized, 'binary').toString()
|
|
102
|
+
const _obj = JSON.parse(serialized);
|
|
103
|
+
return {
|
|
104
|
+
iv: Buffer.from(_obj.iv, 'base64'),
|
|
105
|
+
ephemPublicKey: Buffer.from(_obj.ephemPublicKey, 'base64'),
|
|
106
|
+
ciphertext: Buffer.from(_obj.ciphertext, 'base64'),
|
|
107
|
+
mac: Buffer.from(_obj.mac, 'base64'),
|
|
108
|
+
};
|
|
109
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAA4B,CAAA;AAC1C,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA"}
|
package/package.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@nevermined-io/core-kit",
|
|
3
|
+
"version": "0.0.2-rc19",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.js",
|
|
6
|
+
"module": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"e2e": "NODE_OPTIONS='--loader ts-node/esm' mocha --config ./tests/integration/.mocharc.json",
|
|
10
|
+
"e2e:external": "NODE_OPTIONS='--loader ts-node/esm' mocha --config ./tests/external/.mocharc.json"
|
|
11
|
+
},
|
|
12
|
+
"exports": {
|
|
13
|
+
"./package.json": "./package.json",
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"import": "./dist/index.js",
|
|
17
|
+
"default": "./dist/index.js"
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
"include": [
|
|
21
|
+
"./artifacts"
|
|
22
|
+
],
|
|
23
|
+
"files": [
|
|
24
|
+
"dist",
|
|
25
|
+
"!**/*.tsbuildinfo"
|
|
26
|
+
]
|
|
27
|
+
}
|