@waku/rln 0.1.4-d27db21.0 → 0.1.5-5e19700.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.
- package/CHANGELOG.md +19 -0
- package/README.md +5 -0
- package/bundle/index.js +3 -1
- package/bundle/node_modules/@ethersproject/abi/lib.esm/coders/abstract-coder.js +1 -1
- package/bundle/node_modules/@ethersproject/abi/lib.esm/interface.js +1 -1
- package/bundle/node_modules/@ethersproject/abstract-provider/lib.esm/index.js +1 -1
- package/bundle/node_modules/@ethersproject/abstract-signer/lib.esm/index.js +11 -11
- package/bundle/node_modules/@ethersproject/bytes/lib.esm/_version.js +1 -1
- package/bundle/node_modules/@ethersproject/contracts/lib.esm/index.js +7 -7
- package/bundle/node_modules/@ethersproject/hash/lib.esm/ens-normalize/lib.js +2 -2
- package/bundle/node_modules/@ethersproject/hash/lib.esm/typed-data.js +2 -2
- package/bundle/node_modules/@ethersproject/keccak256/node_modules/js-sha3/src/sha3.js +1 -1
- package/bundle/node_modules/@ethersproject/logger/lib.esm/_version.js +1 -1
- package/bundle/node_modules/@ethersproject/properties/lib.esm/index.js +1 -1
- package/bundle/node_modules/@ethersproject/providers/lib.esm/base-provider.js +44 -44
- package/bundle/node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js +8 -8
- package/bundle/node_modules/@ethersproject/rlp/lib.esm/_version.js +1 -1
- package/bundle/node_modules/@ethersproject/transactions/lib.esm/index.js +1 -1
- package/bundle/node_modules/@ethersproject/web/lib.esm/geturl.js +1 -1
- package/bundle/node_modules/@ethersproject/web/lib.esm/index.js +2 -2
- package/bundle/node_modules/@multiformats/multiaddr/dist/src/multiaddr.js +1 -0
- package/bundle/node_modules/@noble/hashes/esm/sha3.js +1 -1
- package/bundle/node_modules/bn.js/lib/bn.js +1 -1
- package/bundle/packages/core/dist/lib/connection_manager/connection_manager.js +6 -6
- package/bundle/packages/rln/dist/contract/abi.js +502 -248
- package/bundle/packages/rln/dist/contract/constants.js +4 -5
- package/bundle/packages/rln/dist/contract/rln_contract.js +121 -37
- package/bundle/packages/rln/dist/contract/rln_light_contract.js +473 -0
- package/bundle/packages/rln/dist/keystore/keystore.js +2 -1
- package/bundle/packages/rln/dist/rln.js +6 -6
- package/bundle/packages/rln/dist/rln_light.js +149 -0
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/checksum.js +2 -2
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/cipher.js +3 -3
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/class.js +4 -4
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/functional.js +4 -4
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/kdf.js +4 -4
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/password.js +1 -1
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/schema-validation-generated.js +1 -1
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/lib/schema-validation.js +1 -1
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/aes.js +1 -1
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/pbkdf2.js +1 -1
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/random.js +1 -1
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/scrypt.js +1 -1
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/sha256.js +1 -1
- package/bundle/packages/rln/node_modules/@chainsafe/bls-keystore/node_modules/ethereum-cryptography/utils.js +1 -1
- package/bundle/packages/rln/node_modules/@noble/hashes/_assert.js +1 -1
- package/bundle/packages/rln/node_modules/@noble/hashes/_sha2.js +2 -2
- package/bundle/packages/rln/node_modules/@noble/hashes/_u64.js +1 -1
- package/bundle/packages/rln/node_modules/@noble/hashes/cryptoBrowser.js +1 -1
- package/bundle/packages/rln/node_modules/@noble/hashes/esm/_assert.js +43 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/esm/_sha2.js +116 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/esm/hmac.js +79 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/esm/sha256.js +126 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/esm/utils.js +43 -0
- package/bundle/packages/rln/node_modules/@noble/hashes/hmac.js +2 -2
- package/bundle/packages/rln/node_modules/@noble/hashes/pbkdf2.js +1 -1
- package/bundle/packages/rln/node_modules/@noble/hashes/scrypt.js +2 -2
- package/bundle/packages/rln/node_modules/@noble/hashes/sha256.js +1 -1
- package/bundle/packages/rln/node_modules/@noble/hashes/sha512.js +2 -2
- package/bundle/packages/rln/node_modules/@noble/hashes/utils.js +1 -1
- package/dist/.tsbuildinfo +1 -1
- package/dist/codec.test-utils.d.ts +36 -0
- package/dist/codec.test-utils.js +56 -0
- package/dist/codec.test-utils.js.map +1 -0
- package/dist/contract/abi.d.ts +21 -17
- package/dist/contract/abi.js +502 -248
- package/dist/contract/abi.js.map +1 -1
- package/dist/contract/constants.d.ts +22 -18
- package/dist/contract/constants.js +3 -3
- package/dist/contract/constants.js.map +1 -1
- package/dist/contract/rln_contract.d.ts +10 -3
- package/dist/contract/rln_contract.js +120 -36
- package/dist/contract/rln_contract.js.map +1 -1
- package/dist/contract/rln_light_contract.d.ts +124 -0
- package/dist/contract/rln_light_contract.js +456 -0
- package/dist/contract/rln_light_contract.js.map +1 -0
- package/dist/contract/test-setup.d.ts +26 -0
- package/dist/contract/test-setup.js +56 -0
- package/dist/contract/test-setup.js.map +1 -0
- package/dist/contract/test-utils.d.ts +39 -0
- package/dist/contract/test-utils.js +118 -0
- package/dist/contract/test-utils.js.map +1 -0
- package/dist/index.d.ts +5 -2
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/keystore/keystore.js +2 -1
- package/dist/keystore/keystore.js.map +1 -1
- package/dist/keystore/types.d.ts +1 -0
- package/dist/rln.d.ts +1 -1
- package/dist/rln.js +6 -6
- package/dist/rln.js.map +1 -1
- package/dist/rln_light.d.ts +64 -0
- package/dist/rln_light.js +144 -0
- package/dist/rln_light.js.map +1 -0
- package/package.json +1 -1
- package/src/codec.test-utils.ts +80 -0
- package/src/contract/abi.ts +502 -248
- package/src/contract/constants.ts +3 -3
- package/src/contract/rln_contract.ts +158 -46
- package/src/contract/rln_light_contract.ts +718 -0
- package/src/contract/test-setup.ts +86 -0
- package/src/contract/test-utils.ts +179 -0
- package/src/index.ts +17 -2
- package/src/keystore/keystore.ts +2 -1
- package/src/keystore/types.ts +1 -0
- package/src/rln.ts +7 -7
- package/src/rln_light.ts +235 -0
package/CHANGELOG.md
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## [0.1.4](https://github.com/waku-org/js-waku/compare/rln-v0.1.3...rln-v0.1.4) (2025-03-24)
|
4
|
+
|
5
|
+
|
6
|
+
### Features
|
7
|
+
|
8
|
+
* @waku/rln ([#2244](https://github.com/waku-org/js-waku/issues/2244)) ([0a0a92b](https://github.com/waku-org/js-waku/commit/0a0a92bccb02fdf9b927bee928b040ff5d624b67))
|
9
|
+
* **rln:** Migrate from v1 to v2, rate limiting, memberships, test coverage ([#2262](https://github.com/waku-org/js-waku/issues/2262)) ([6fc6bf3](https://github.com/waku-org/js-waku/commit/6fc6bf3916d6dad3d516a5769331245f1b6d55e8))
|
10
|
+
|
11
|
+
|
12
|
+
### Dependencies
|
13
|
+
|
14
|
+
* The following workspace dependencies were updated
|
15
|
+
* dependencies
|
16
|
+
* @waku/core bumped from ^0.0.33 to ^0.0.34
|
17
|
+
* @waku/utils bumped from ^0.0.21 to ^0.0.22
|
18
|
+
* devDependencies
|
19
|
+
* @waku/message-encryption bumped from ^0.0.31 to ^0.0.32
|
package/README.md
CHANGED
@@ -20,6 +20,11 @@ import { RLN } from '@waku/rln';
|
|
20
20
|
// Usage examples coming soon
|
21
21
|
```
|
22
22
|
|
23
|
+
## Constants
|
24
|
+
|
25
|
+
- Implementation contract: 0xde2260ca49300357d5af4153cda0d18f7b3ea9b3
|
26
|
+
- Proxy contract: 0xb9cd878c90e49f797b4431fbf4fb333108cb90e6
|
27
|
+
|
23
28
|
## License
|
24
29
|
|
25
30
|
MIT OR Apache-2.0
|
package/bundle/index.js
CHANGED
@@ -1,12 +1,14 @@
|
|
1
1
|
export { RLNDecoder, RLNEncoder } from './packages/rln/dist/codec.js';
|
2
2
|
export { RLN_ABI } from './packages/rln/dist/contract/abi.js';
|
3
3
|
export { RLNContract } from './packages/rln/dist/contract/rln_contract.js';
|
4
|
-
export {
|
4
|
+
export { LINEA_CONTRACT } from './packages/rln/dist/contract/constants.js';
|
5
|
+
export { RLNLightContract } from './packages/rln/dist/contract/rln_light_contract.js';
|
5
6
|
export { createRLN } from './packages/rln/dist/create.js';
|
6
7
|
export { IdentityCredential } from './packages/rln/dist/identity.js';
|
7
8
|
export { Keystore } from './packages/rln/dist/keystore/keystore.js';
|
8
9
|
export { Proof } from './packages/rln/dist/proof.js';
|
9
10
|
export { RLNInstance } from './packages/rln/dist/rln.js';
|
11
|
+
export { RLNLightInstance } from './packages/rln/dist/rln_light.js';
|
10
12
|
export { MerkleRootTracker } from './packages/rln/dist/root_tracker.js';
|
11
13
|
export { extractMetaMaskSigner } from './packages/rln/dist/utils/metamask.js';
|
12
14
|
import './packages/rln/dist/utils/epoch.js';
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { arrayify, hexlify, hexConcat, concat } from '../../../bytes/lib.esm/index.js';
|
2
2
|
import { defineReadOnly } from '../../../properties/lib.esm/index.js';
|
3
3
|
import { Logger } from '../../../logger/lib.esm/index.js';
|
4
4
|
import { version } from '../_version.js';
|
@@ -2,7 +2,7 @@ import { getAddress } from '../../address/lib.esm/index.js';
|
|
2
2
|
import { hexDataSlice, isHexString, arrayify, hexlify, concat, hexZeroPad } from '../../bytes/lib.esm/index.js';
|
3
3
|
import { id } from '../../hash/lib.esm/id.js';
|
4
4
|
import { keccak256 } from '../../keccak256/lib.esm/index.js';
|
5
|
-
import {
|
5
|
+
import { defineReadOnly, getStatic, Description } from '../../properties/lib.esm/index.js';
|
6
6
|
import { defaultAbiCoder } from './abi-coder.js';
|
7
7
|
import { Fragment, ConstructorFragment, FormatTypes, FunctionFragment, EventFragment, ParamType } from './fragments.js';
|
8
8
|
import { Logger } from '../../logger/lib.esm/index.js';
|
@@ -29,7 +29,7 @@ class Provider {
|
|
29
29
|
defineReadOnly(this, "_isProvider", true);
|
30
30
|
}
|
31
31
|
getFeeData() {
|
32
|
-
return __awaiter(this,
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
33
33
|
const { block, gasPrice } = yield resolveProperties({
|
34
34
|
block: this.getBlock("latest"),
|
35
35
|
gasPrice: this.getGasPrice().catch((error) => {
|
@@ -30,20 +30,20 @@ class Signer {
|
|
30
30
|
///////////////////
|
31
31
|
// Sub-classes MAY override these
|
32
32
|
getBalance(blockTag) {
|
33
|
-
return __awaiter(this,
|
33
|
+
return __awaiter(this, void 0, void 0, function* () {
|
34
34
|
this._checkProvider("getBalance");
|
35
35
|
return yield this.provider.getBalance(this.getAddress(), blockTag);
|
36
36
|
});
|
37
37
|
}
|
38
38
|
getTransactionCount(blockTag) {
|
39
|
-
return __awaiter(this,
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
40
40
|
this._checkProvider("getTransactionCount");
|
41
41
|
return yield this.provider.getTransactionCount(this.getAddress(), blockTag);
|
42
42
|
});
|
43
43
|
}
|
44
44
|
// Populates "from" if unspecified, and estimates the gas for the transaction
|
45
45
|
estimateGas(transaction) {
|
46
|
-
return __awaiter(this,
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
47
47
|
this._checkProvider("estimateGas");
|
48
48
|
const tx = yield resolveProperties(this.checkTransaction(transaction));
|
49
49
|
return yield this.provider.estimateGas(tx);
|
@@ -51,7 +51,7 @@ class Signer {
|
|
51
51
|
}
|
52
52
|
// Populates "from" if unspecified, and calls with the transaction
|
53
53
|
call(transaction, blockTag) {
|
54
|
-
return __awaiter(this,
|
54
|
+
return __awaiter(this, void 0, void 0, function* () {
|
55
55
|
this._checkProvider("call");
|
56
56
|
const tx = yield resolveProperties(this.checkTransaction(transaction));
|
57
57
|
return yield this.provider.call(tx, blockTag);
|
@@ -59,7 +59,7 @@ class Signer {
|
|
59
59
|
}
|
60
60
|
// Populates all fields in a transaction, signs it and sends it to the network
|
61
61
|
sendTransaction(transaction) {
|
62
|
-
return __awaiter(this,
|
62
|
+
return __awaiter(this, void 0, void 0, function* () {
|
63
63
|
this._checkProvider("sendTransaction");
|
64
64
|
const tx = yield this.populateTransaction(transaction);
|
65
65
|
const signedTx = yield this.signTransaction(tx);
|
@@ -67,26 +67,26 @@ class Signer {
|
|
67
67
|
});
|
68
68
|
}
|
69
69
|
getChainId() {
|
70
|
-
return __awaiter(this,
|
70
|
+
return __awaiter(this, void 0, void 0, function* () {
|
71
71
|
this._checkProvider("getChainId");
|
72
72
|
const network = yield this.provider.getNetwork();
|
73
73
|
return network.chainId;
|
74
74
|
});
|
75
75
|
}
|
76
76
|
getGasPrice() {
|
77
|
-
return __awaiter(this,
|
77
|
+
return __awaiter(this, void 0, void 0, function* () {
|
78
78
|
this._checkProvider("getGasPrice");
|
79
79
|
return yield this.provider.getGasPrice();
|
80
80
|
});
|
81
81
|
}
|
82
82
|
getFeeData() {
|
83
|
-
return __awaiter(this,
|
83
|
+
return __awaiter(this, void 0, void 0, function* () {
|
84
84
|
this._checkProvider("getFeeData");
|
85
85
|
return yield this.provider.getFeeData();
|
86
86
|
});
|
87
87
|
}
|
88
88
|
resolveName(name) {
|
89
|
-
return __awaiter(this,
|
89
|
+
return __awaiter(this, void 0, void 0, function* () {
|
90
90
|
this._checkProvider("resolveName");
|
91
91
|
return yield this.provider.resolveName(name);
|
92
92
|
});
|
@@ -132,10 +132,10 @@ class Signer {
|
|
132
132
|
// Notes:
|
133
133
|
// - We allow gasPrice for EIP-1559 as long as it matches maxFeePerGas
|
134
134
|
populateTransaction(transaction) {
|
135
|
-
return __awaiter(this,
|
135
|
+
return __awaiter(this, void 0, void 0, function* () {
|
136
136
|
const tx = yield resolveProperties(this.checkTransaction(transaction));
|
137
137
|
if (tx.to != null) {
|
138
|
-
tx.to = Promise.resolve(tx.to).then((to) => __awaiter(this,
|
138
|
+
tx.to = Promise.resolve(tx.to).then((to) => __awaiter(this, void 0, void 0, function* () {
|
139
139
|
if (to == null) {
|
140
140
|
return null;
|
141
141
|
}
|
@@ -21,7 +21,7 @@ var __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _argume
|
|
21
21
|
};
|
22
22
|
const logger = new Logger(version);
|
23
23
|
function resolveName(resolver, nameOrPromise) {
|
24
|
-
return __awaiter(this,
|
24
|
+
return __awaiter(this, void 0, void 0, function* () {
|
25
25
|
const name = yield nameOrPromise;
|
26
26
|
if (typeof (name) !== "string") {
|
27
27
|
logger.throwArgumentError("invalid address or ENS name", "name", name);
|
@@ -45,7 +45,7 @@ function resolveName(resolver, nameOrPromise) {
|
|
45
45
|
}
|
46
46
|
// Recursively replaces ENS names with promises to resolve the name and resolves all properties
|
47
47
|
function resolveAddresses(resolver, value, paramType) {
|
48
|
-
return __awaiter(this,
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
49
49
|
if (Array.isArray(paramType)) {
|
50
50
|
return yield Promise.all(paramType.map((paramType, index) => {
|
51
51
|
return resolveAddresses(resolver, ((Array.isArray(value)) ? value[index] : value[paramType.name]), paramType);
|
@@ -70,7 +70,7 @@ function resolveAddresses(resolver, value, paramType) {
|
|
70
70
|
});
|
71
71
|
}
|
72
72
|
function populateTransaction(contract, fragment, args) {
|
73
|
-
return __awaiter(this,
|
73
|
+
return __awaiter(this, void 0, void 0, function* () {
|
74
74
|
// If an extra argument is given, it is overrides
|
75
75
|
let overrides = {};
|
76
76
|
if (args.length === fragment.inputs.length + 1 && typeof (args[args.length - 1]) === "object") {
|
@@ -86,7 +86,7 @@ function populateTransaction(contract, fragment, args) {
|
|
86
86
|
overrides.from = resolveProperties({
|
87
87
|
override: resolveName(contract.signer, overrides.from),
|
88
88
|
signer: contract.signer.getAddress()
|
89
|
-
}).then((check) => __awaiter(this,
|
89
|
+
}).then((check) => __awaiter(this, void 0, void 0, function* () {
|
90
90
|
if (getAddress(check.signer) !== check.override) {
|
91
91
|
logger.throwError("Contract with a Signer cannot override from", Logger.errors.UNSUPPORTED_OPERATION, {
|
92
92
|
operation: "overrides.from"
|
@@ -211,7 +211,7 @@ function buildPopulate(contract, fragment) {
|
|
211
211
|
function buildEstimate(contract, fragment) {
|
212
212
|
const signerOrProvider = (contract.signer || contract.provider);
|
213
213
|
return function (...args) {
|
214
|
-
return __awaiter(this,
|
214
|
+
return __awaiter(this, void 0, void 0, function* () {
|
215
215
|
if (!signerOrProvider) {
|
216
216
|
logger.throwError("estimate require a provider or signer", Logger.errors.UNSUPPORTED_OPERATION, {
|
217
217
|
operation: "estimateGas"
|
@@ -262,7 +262,7 @@ function addContractWait(contract, tx) {
|
|
262
262
|
function buildCall(contract, fragment, collapseSimple) {
|
263
263
|
const signerOrProvider = (contract.signer || contract.provider);
|
264
264
|
return function (...args) {
|
265
|
-
return __awaiter(this,
|
265
|
+
return __awaiter(this, void 0, void 0, function* () {
|
266
266
|
// Extract the "blockTag" override if present
|
267
267
|
let blockTag = undefined;
|
268
268
|
if (args.length === fragment.inputs.length + 1 && typeof (args[args.length - 1]) === "object") {
|
@@ -300,7 +300,7 @@ function buildCall(contract, fragment, collapseSimple) {
|
|
300
300
|
}
|
301
301
|
function buildSend(contract, fragment) {
|
302
302
|
return function (...args) {
|
303
|
-
return __awaiter(this,
|
303
|
+
return __awaiter(this, void 0, void 0, function* () {
|
304
304
|
if (!contract.signer) {
|
305
305
|
logger.throwError("sending a transaction requires a signer", Logger.errors.UNSUPPORTED_OPERATION, {
|
306
306
|
operation: "sendTransaction"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { toUtf8CodePoints } from '../../../strings/lib.esm/utf8.js';
|
2
2
|
import { getData } from './include.js';
|
3
|
-
import {
|
3
|
+
import { read_mapped_map, read_emoji_trie, read_member_array } from './decoder.js';
|
4
4
|
|
5
5
|
/**
|
6
6
|
* MIT License
|
@@ -106,7 +106,7 @@ function consume_emoji_reversed(cps, eaten) {
|
|
106
106
|
let pos = cps.length;
|
107
107
|
while (pos) {
|
108
108
|
let cp = cps[--pos];
|
109
|
-
node = (_a = node.branches.find(x => x.set.has(cp))) === null || _a ===
|
109
|
+
node = (_a = node.branches.find(x => x.set.has(cp))) === null || _a === void 0 ? void 0 : _a.node;
|
110
110
|
if (!node)
|
111
111
|
break;
|
112
112
|
if (node.save) { // remember
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { getAddress } from '../../address/lib.esm/index.js';
|
2
|
-
import {
|
2
|
+
import { hexConcat, isHexString, hexlify, arrayify, hexZeroPad } from '../../bytes/lib.esm/index.js';
|
3
3
|
import { keccak256 } from '../../keccak256/lib.esm/index.js';
|
4
4
|
import { defineReadOnly, deepCopy, shallowCopy } from '../../properties/lib.esm/index.js';
|
5
5
|
import { Logger } from '../../logger/lib.esm/index.js';
|
@@ -350,7 +350,7 @@ class TypedDataEncoder {
|
|
350
350
|
}
|
351
351
|
// Replaces all address types with ENS names with their looked up address
|
352
352
|
static resolveNames(domain, types, value, resolveName) {
|
353
|
-
return __awaiter(this,
|
353
|
+
return __awaiter(this, void 0, void 0, function* () {
|
354
354
|
// Make a copy to isolate it from the object passed in
|
355
355
|
domain = shallowCopy(domain);
|
356
356
|
// Look up all ENS names
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { getDefaultExportFromCjs, commonjsGlobal } from '../../../../../../_virtual/_commonjsHelpers.js';
|
2
2
|
import { __module as sha3$1 } from '../../../../../../_virtual/sha3.js';
|
3
3
|
|
4
4
|
/**
|
@@ -32,7 +32,7 @@ function getStatic(ctor, key) {
|
|
32
32
|
return null;
|
33
33
|
}
|
34
34
|
function resolveProperties(object) {
|
35
|
-
return __awaiter(this,
|
35
|
+
return __awaiter(this, void 0, void 0, function* () {
|
36
36
|
const promises = Object.keys(object).map((key) => {
|
37
37
|
const value = object[key];
|
38
38
|
return Promise.resolve(value).then((v) => ({ key: key, value: v }));
|