@gearbox-protocol/sdk 18.2.0-next.11 → 18.2.0-next.13
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/abi/310/iKillSwitchProxy.js +130 -0
- package/dist/cjs/dev/AccountOpener.js +1 -1
- package/dist/cjs/dev/withdrawalUtils.js +1 -1
- package/dist/cjs/history/trace/extractTransfers.js +1 -1
- package/dist/cjs/onchain/accounts/CreditAccountsServiceV310.js +2 -2
- package/dist/cjs/onchain/accounts/liquidations/LiquidationsService.js +1 -1
- package/dist/cjs/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.js +2 -1
- package/dist/cjs/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.js +2 -1
- package/dist/cjs/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.js +2 -1
- package/dist/cjs/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.js +1 -1
- package/dist/cjs/onchain/base/TokensMeta.js +3 -3
- package/dist/cjs/onchain/core/createAddressProvider.js +1 -1
- package/dist/cjs/onchain/market/adapters/contracts/AccountMigratorAdapterContract.js +1 -1
- package/dist/cjs/onchain/market/adapters/contracts/ERC4626AdapterContract.js +1 -1
- package/dist/cjs/onchain/market/credit/CreditFacadeV310BaseContract.js +1 -1
- package/dist/cjs/onchain/market/pool/PoolV310Contract.js +1 -1
- package/dist/cjs/onchain/market/rwa/createDegenNFT.js +1 -1
- package/dist/cjs/onchain/market/zapper/IETHZapperContract.js +2 -1
- package/dist/cjs/onchain/market/zapper/ZapperContract.js +1 -1
- package/dist/cjs/onchain/preview/preview/previewPoolPositionOperation.js +2 -2
- package/dist/cjs/onchain/utils/viem/simulateWithPriceUpdates.js +1 -1
- package/dist/cjs/permissionless/api/index.js +7 -3
- package/dist/cjs/permissionless/api/oracles/PermissionlessOracles.js +11 -11
- package/dist/cjs/permissionless/api/oracles/index.js +7 -3
- package/dist/cjs/permissionless/api/oracles/score/formula.js +44 -82
- package/dist/cjs/permissionless/api/oracles/score/index.js +6 -3
- package/dist/cjs/permissionless/api/oracles/score/run.js +129 -46
- package/dist/cjs/permissionless/api/oracles/stress/index.js +1 -0
- package/dist/cjs/permissionless/api/oracles/stress/run.js +5 -2
- package/dist/cjs/permissionless/bindings/bytecode-repository.js +8 -0
- package/dist/cjs/permissionless/bindings/governance/governor.js +1 -1
- package/dist/cjs/permissionless/bindings/index.js +7 -2
- package/dist/cjs/permissionless/bindings/kill-switch-proxy.js +188 -0
- package/dist/cjs/permissionless/bindings/market-configurator-factory.js +39 -1
- package/dist/cjs/permissionless/bindings/market-configurator.js +142 -0
- package/dist/cjs/permissionless/index.js +15 -5
- package/dist/cjs/permissionless/utils/index.js +1 -0
- package/dist/cjs/permissionless/utils/literals.js +2 -0
- package/dist/esm/abi/310/iKillSwitchProxy.js +129 -0
- package/dist/esm/permissionless/api/index.js +3 -3
- package/dist/esm/permissionless/api/oracles/PermissionlessOracles.js +11 -11
- package/dist/esm/permissionless/api/oracles/index.js +3 -3
- package/dist/esm/permissionless/api/oracles/score/formula.js +39 -80
- package/dist/esm/permissionless/api/oracles/score/index.js +2 -2
- package/dist/esm/permissionless/api/oracles/score/run.js +131 -48
- package/dist/esm/permissionless/api/oracles/stress/index.js +2 -2
- package/dist/esm/permissionless/api/oracles/stress/run.js +5 -3
- package/dist/esm/permissionless/bindings/bytecode-repository.js +8 -0
- package/dist/esm/permissionless/bindings/governance/governor.js +1 -1
- package/dist/esm/permissionless/bindings/index.js +4 -3
- package/dist/esm/permissionless/bindings/kill-switch-proxy.js +184 -0
- package/dist/esm/permissionless/bindings/market-configurator-factory.js +37 -0
- package/dist/esm/permissionless/bindings/market-configurator.js +143 -1
- package/dist/esm/permissionless/index.js +7 -6
- package/dist/esm/permissionless/utils/index.js +2 -2
- package/dist/esm/permissionless/utils/literals.js +2 -1
- package/dist/types/abi/310/iKillSwitchProxy.d.ts +114 -0
- package/dist/types/permissionless/api/index.d.ts +4 -4
- package/dist/types/permissionless/api/oracles/PermissionlessOracles.d.ts +11 -11
- package/dist/types/permissionless/api/oracles/index.d.ts +4 -4
- package/dist/types/permissionless/api/oracles/score/formula.d.ts +31 -38
- package/dist/types/permissionless/api/oracles/score/index.d.ts +3 -3
- package/dist/types/permissionless/api/oracles/score/run.d.ts +7 -4
- package/dist/types/permissionless/api/oracles/score/types.d.ts +50 -22
- package/dist/types/permissionless/api/oracles/stress/index.d.ts +2 -2
- package/dist/types/permissionless/api/oracles/stress/run.d.ts +17 -1
- package/dist/types/permissionless/bindings/bytecode-repository.d.ts +10 -1
- package/dist/types/permissionless/bindings/index.d.ts +4 -3
- package/dist/types/permissionless/bindings/kill-switch-proxy.d.ts +205 -0
- package/dist/types/permissionless/bindings/market-configurator-factory.d.ts +30 -0
- package/dist/types/permissionless/bindings/market-configurator.d.ts +30 -1
- package/dist/types/permissionless/bindings/types.d.ts +27 -0
- package/dist/types/permissionless/index.d.ts +8 -7
- package/dist/types/permissionless/utils/index.d.ts +2 -2
- package/dist/types/permissionless/utils/literals.d.ts +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
//#region src/abi/310/iKillSwitchProxy.ts
|
|
3
|
+
const iKillSwitchProxyAbi = [
|
|
4
|
+
{
|
|
5
|
+
type: "constructor",
|
|
6
|
+
inputs: [{
|
|
7
|
+
name: "_owner",
|
|
8
|
+
internalType: "address",
|
|
9
|
+
type: "address"
|
|
10
|
+
}, {
|
|
11
|
+
name: "_caller",
|
|
12
|
+
internalType: "address",
|
|
13
|
+
type: "address"
|
|
14
|
+
}],
|
|
15
|
+
stateMutability: "nonpayable"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
type: "function",
|
|
19
|
+
inputs: [],
|
|
20
|
+
name: "caller",
|
|
21
|
+
outputs: [{
|
|
22
|
+
name: "",
|
|
23
|
+
internalType: "address",
|
|
24
|
+
type: "address"
|
|
25
|
+
}],
|
|
26
|
+
stateMutability: "view"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
type: "function",
|
|
30
|
+
inputs: [],
|
|
31
|
+
name: "contractType",
|
|
32
|
+
outputs: [{
|
|
33
|
+
name: "",
|
|
34
|
+
internalType: "bytes32",
|
|
35
|
+
type: "bytes32"
|
|
36
|
+
}],
|
|
37
|
+
stateMutability: "view"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
type: "function",
|
|
41
|
+
inputs: [],
|
|
42
|
+
name: "isKilled",
|
|
43
|
+
outputs: [{
|
|
44
|
+
name: "",
|
|
45
|
+
internalType: "bool",
|
|
46
|
+
type: "bool"
|
|
47
|
+
}],
|
|
48
|
+
stateMutability: "view"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
type: "function",
|
|
52
|
+
inputs: [],
|
|
53
|
+
name: "kill",
|
|
54
|
+
outputs: [],
|
|
55
|
+
stateMutability: "nonpayable"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
type: "function",
|
|
59
|
+
inputs: [],
|
|
60
|
+
name: "owner",
|
|
61
|
+
outputs: [{
|
|
62
|
+
name: "",
|
|
63
|
+
internalType: "address",
|
|
64
|
+
type: "address"
|
|
65
|
+
}],
|
|
66
|
+
stateMutability: "view"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
type: "function",
|
|
70
|
+
inputs: [{
|
|
71
|
+
name: "target",
|
|
72
|
+
internalType: "address",
|
|
73
|
+
type: "address"
|
|
74
|
+
}, {
|
|
75
|
+
name: "data",
|
|
76
|
+
internalType: "bytes",
|
|
77
|
+
type: "bytes"
|
|
78
|
+
}],
|
|
79
|
+
name: "proxyCall",
|
|
80
|
+
outputs: [{
|
|
81
|
+
name: "result",
|
|
82
|
+
internalType: "bytes",
|
|
83
|
+
type: "bytes"
|
|
84
|
+
}],
|
|
85
|
+
stateMutability: "nonpayable"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
type: "function",
|
|
89
|
+
inputs: [],
|
|
90
|
+
name: "version",
|
|
91
|
+
outputs: [{
|
|
92
|
+
name: "",
|
|
93
|
+
internalType: "uint256",
|
|
94
|
+
type: "uint256"
|
|
95
|
+
}],
|
|
96
|
+
stateMutability: "view"
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
type: "event",
|
|
100
|
+
anonymous: false,
|
|
101
|
+
inputs: [],
|
|
102
|
+
name: "Killed"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
type: "error",
|
|
106
|
+
inputs: [{
|
|
107
|
+
name: "caller",
|
|
108
|
+
internalType: "address",
|
|
109
|
+
type: "address"
|
|
110
|
+
}],
|
|
111
|
+
name: "CallerIsNotOwnerException"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
type: "error",
|
|
115
|
+
inputs: [],
|
|
116
|
+
name: "KilledException"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
type: "error",
|
|
120
|
+
inputs: [],
|
|
121
|
+
name: "OnlyCallerException"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
type: "error",
|
|
125
|
+
inputs: [],
|
|
126
|
+
name: "OwnerSameAsCallerException"
|
|
127
|
+
}
|
|
128
|
+
];
|
|
129
|
+
//#endregion
|
|
130
|
+
exports.iKillSwitchProxyAbi = iKillSwitchProxyAbi;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_abi_310_generated = require("../abi/310/generated.js");
|
|
3
2
|
const require_abi_iERC20 = require("../abi/iERC20.js");
|
|
3
|
+
const require_abi_310_generated = require("../abi/310/generated.js");
|
|
4
4
|
const require_onchain_utils_AddressMap = require("../onchain/utils/AddressMap.js");
|
|
5
5
|
const require_onchain_utils_AddressSet = require("../onchain/utils/AddressSet.js");
|
|
6
6
|
const require_onchain_utils_AssetsMap = require("../onchain/utils/AssetsMap.js");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_IWithdrawalCompressorV313 = require("../abi/IWithdrawalCompressorV313.js");
|
|
2
3
|
const require_onchain_chain_chains = require("../onchain/chain/chains.js");
|
|
3
4
|
const require_onchain_accounts_withdrawal_compressor_addresses = require("../onchain/accounts/withdrawal-compressor/addresses.js");
|
|
4
|
-
const require_abi_IWithdrawalCompressorV313 = require("../abi/IWithdrawalCompressorV313.js");
|
|
5
5
|
require("../onchain/index.js");
|
|
6
6
|
const require_dev_withdrawalAbi = require("./withdrawalAbi.js");
|
|
7
7
|
let viem = require("viem");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_abi_310_generated = require("../../abi/310/generated.js");
|
|
3
2
|
const require_abi_iERC20 = require("../../abi/iERC20.js");
|
|
3
|
+
const require_abi_310_generated = require("../../abi/310/generated.js");
|
|
4
4
|
const require_onchain_utils_AddressMap = require("../../onchain/utils/AddressMap.js");
|
|
5
5
|
require("../../onchain/index.js");
|
|
6
6
|
const require_history_trace_errors = require("./errors.js");
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_iBaseRewardPool = require("../../abi/iBaseRewardPool.js");
|
|
3
|
+
const require_abi_ierc4626Adapter = require("../../abi/ierc4626Adapter.js");
|
|
2
4
|
const require_onchain_constants_address_provider = require("../constants/address-provider.js");
|
|
3
5
|
const require_onchain_constants_addresses = require("../constants/addresses.js");
|
|
4
6
|
const require_onchain_constants_math = require("../constants/math.js");
|
|
@@ -9,8 +11,6 @@ require("../base/index.js");
|
|
|
9
11
|
const require_onchain_accounts_bots_AccountBotsService = require("./bots/AccountBotsService.js");
|
|
10
12
|
require("./bots/index.js");
|
|
11
13
|
const require_abi_compressors_rewardsCompressor = require("../../abi/compressors/rewardsCompressor.js");
|
|
12
|
-
const require_abi_iBaseRewardPool = require("../../abi/iBaseRewardPool.js");
|
|
13
|
-
const require_abi_ierc4626Adapter = require("../../abi/ierc4626Adapter.js");
|
|
14
14
|
const require_onchain_market_credit_expectedBalanceDeltas = require("../market/credit/expectedBalanceDeltas.js");
|
|
15
15
|
require("../market/index.js");
|
|
16
16
|
const require_onchain_accounts_credit_account_compressor_CreditAccountCompressor = require("./credit-account-compressor/CreditAccountCompressor.js");
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_ILiquidationCompressorV313 = require("../../../abi/ILiquidationCompressorV313.js");
|
|
2
3
|
const require_onchain_utils_AddressSet = require("../../utils/AddressSet.js");
|
|
3
4
|
const require_onchain_utils_bytes32ToString = require("../../utils/bytes32ToString.js");
|
|
4
5
|
const require_onchain_constants_addresses = require("../../constants/addresses.js");
|
|
@@ -20,7 +21,6 @@ const require_onchain_market_rwa_securitize_SecuritizeLiquidatorContract = requi
|
|
|
20
21
|
require("../../market/rwa/securitize/index.js");
|
|
21
22
|
require("../../market/index.js");
|
|
22
23
|
const require_onchain_accounts_liquidations_constants = require("./constants.js");
|
|
23
|
-
const require_abi_ILiquidationCompressorV313 = require("../../../abi/ILiquidationCompressorV313.js");
|
|
24
24
|
const require_onchain_accounts_liquidations_partialLiquidation = require("./partialLiquidation.js");
|
|
25
25
|
const require_onchain_accounts_liquidations_skipLiquidatableAccount = require("./skipLiquidatableAccount.js");
|
|
26
26
|
let viem = require("viem");
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_iRedemptionLoggerV310 = require("../../../abi/iRedemptionLoggerV310.js");
|
|
2
3
|
const require_onchain_base_BaseContract = require("../../base/BaseContract.js");
|
|
3
4
|
require("../../base/index.js");
|
|
4
5
|
const require_model_result = require("../../../model/result.js");
|
|
5
6
|
require("../../../model/index.js");
|
|
6
7
|
const require_onchain_accounts_withdrawal_compressor_intent_codec = require("./intent-codec.js");
|
|
7
8
|
//#region src/onchain/accounts/withdrawal-compressor/RedemptionLoggerV310Contract.ts
|
|
8
|
-
const abi =
|
|
9
|
+
const abi = require_abi_iRedemptionLoggerV310.iRedemptionLoggerV310Abi;
|
|
9
10
|
/**
|
|
10
11
|
* Wrapper around the v310 `RedemptionLogger` helper contract that stores
|
|
11
12
|
* redemption data logged by delayed-withdrawal gateways for off-chain
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_IWithdrawalCompressorV310 = require("../../../abi/IWithdrawalCompressorV310.js");
|
|
2
3
|
const require_onchain_accounts_withdrawal_compressor_AbstractWithdrawalCompressorContract = require("./AbstractWithdrawalCompressorContract.js");
|
|
3
4
|
//#region src/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV310Contract.ts
|
|
4
|
-
const abi =
|
|
5
|
+
const abi = require_abi_IWithdrawalCompressorV310.iWithdrawalCompressorV310Abi;
|
|
5
6
|
/**
|
|
6
7
|
* V3.10 implementation of the {@link IWithdrawalCompressorContract} interface.
|
|
7
8
|
**/
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_IWithdrawalCompressorV311 = require("../../../abi/IWithdrawalCompressorV311.js");
|
|
2
3
|
const require_onchain_accounts_withdrawal_compressor_AbstractWithdrawalCompressorContract = require("./AbstractWithdrawalCompressorContract.js");
|
|
3
4
|
//#region src/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV311Contract.ts
|
|
4
|
-
const abi =
|
|
5
|
+
const abi = require_abi_IWithdrawalCompressorV311.iWithdrawalCompressorV311Abi;
|
|
5
6
|
/**
|
|
6
7
|
* V3.11 implementation of the {@link IWithdrawalCompressorContract} interface.
|
|
7
8
|
**/
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_IWithdrawalCompressorV313 = require("../../../abi/IWithdrawalCompressorV313.js");
|
|
2
3
|
const require_onchain_accounts_withdrawal_compressor_intent_codec = require("./intent-codec.js");
|
|
3
4
|
const require_onchain_accounts_withdrawal_compressor_AbstractWithdrawalCompressorContract = require("./AbstractWithdrawalCompressorContract.js");
|
|
4
|
-
const require_abi_IWithdrawalCompressorV313 = require("../../../abi/IWithdrawalCompressorV313.js");
|
|
5
5
|
const require_onchain_accounts_withdrawal_compressor_types = require("./types.js");
|
|
6
6
|
//#region src/onchain/accounts/withdrawal-compressor/WithdrawalCompressorV313Contract.ts
|
|
7
7
|
const abi = require_abi_IWithdrawalCompressorV313.iWithdrawalCompressorV313Abi;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_iExpirable = require("../../abi/iExpirable.js");
|
|
3
|
+
const require_abi_iStateSerializer = require("../../abi/iStateSerializer.js");
|
|
4
|
+
const require_abi_iVersion = require("../../abi/iVersion.js");
|
|
2
5
|
const require_onchain_utils_AddressMap = require("../utils/AddressMap.js");
|
|
3
6
|
const require_onchain_utils_AddressSet = require("../utils/AddressSet.js");
|
|
4
7
|
const require_onchain_utils_bytes32ToString = require("../utils/bytes32ToString.js");
|
|
5
8
|
const require_onchain_chain_chains = require("../chain/chains.js");
|
|
6
9
|
const require_onchain_utils_formatter = require("../utils/formatter.js");
|
|
7
10
|
require("../utils/index.js");
|
|
8
|
-
const require_abi_iExpirable = require("../../abi/iExpirable.js");
|
|
9
|
-
const require_abi_iStateSerializer = require("../../abi/iStateSerializer.js");
|
|
10
|
-
const require_abi_iVersion = require("../../abi/iVersion.js");
|
|
11
11
|
const require_onchain_core_errors = require("../core/errors.js");
|
|
12
12
|
const require_onchain_utils_viem_executeMulticallBatches = require("../utils/viem/executeMulticallBatches.js");
|
|
13
13
|
let viem = require("viem");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_iVersion = require("../../abi/iVersion.js");
|
|
2
3
|
require("../constants/address-provider.js");
|
|
3
4
|
const require_onchain_constants_versions = require("../constants/versions.js");
|
|
4
5
|
require("../constants/index.js");
|
|
5
6
|
const require_onchain_utils_hex = require("../utils/hex.js");
|
|
6
|
-
const require_abi_iVersion = require("../../abi/iVersion.js");
|
|
7
7
|
const require_onchain_core_AddressProviderV310Contract = require("./AddressProviderV310Contract.js");
|
|
8
8
|
//#region src/onchain/core/createAddressProvider.ts
|
|
9
9
|
const OVERRIDE_ADDRESSES = {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_onchain_market_adapters_contracts_AbstractAdapter = require("./AbstractAdapter.js");
|
|
3
2
|
const require_abi_AccountMigrator = require("../../../../abi/AccountMigrator.js");
|
|
3
|
+
const require_onchain_market_adapters_contracts_AbstractAdapter = require("./AbstractAdapter.js");
|
|
4
4
|
//#region src/onchain/market/adapters/contracts/AccountMigratorAdapterContract.ts
|
|
5
5
|
const abi = require_abi_AccountMigrator.accountMigratorAbi;
|
|
6
6
|
const protocolAbi = require_abi_AccountMigrator.accountMigratorAbi;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_ierc4626Adapter = require("../../../../abi/ierc4626Adapter.js");
|
|
2
3
|
const require_onchain_base_errors = require("../../../base/errors.js");
|
|
3
4
|
require("../../../base/index.js");
|
|
4
|
-
const require_abi_ierc4626Adapter = require("../../../../abi/ierc4626Adapter.js");
|
|
5
5
|
const require_onchain_market_adapters_abi_targetContractAbi = require("../abi/targetContractAbi.js");
|
|
6
6
|
const require_onchain_market_adapters_transferHelpers = require("../transferHelpers.js");
|
|
7
7
|
const require_onchain_market_adapters_contracts_AbstractAdapter = require("./AbstractAdapter.js");
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_iPausable = require("../../../abi/iPausable.js");
|
|
2
3
|
const require_abi_310_generated = require("../../../abi/310/generated.js");
|
|
3
4
|
const require_onchain_base_BaseContract = require("../../base/BaseContract.js");
|
|
4
5
|
require("../../base/index.js");
|
|
5
|
-
const require_abi_iPausable = require("../../../abi/iPausable.js");
|
|
6
6
|
//#region src/onchain/market/credit/CreditFacadeV310BaseContract.ts
|
|
7
7
|
const abi = [
|
|
8
8
|
...require_abi_310_generated.iCreditFacadeV310Abi,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_iPausable = require("../../../abi/iPausable.js");
|
|
2
3
|
const require_abi_310_generated = require("../../../abi/310/generated.js");
|
|
3
4
|
const require_onchain_utils_AddressMap = require("../../utils/AddressMap.js");
|
|
4
5
|
const require_onchain_constants_math = require("../../constants/math.js");
|
|
@@ -8,7 +9,6 @@ require("../../utils/index.js");
|
|
|
8
9
|
const require_onchain_core_errors = require("../../core/errors.js");
|
|
9
10
|
const require_onchain_base_BaseContract = require("../../base/BaseContract.js");
|
|
10
11
|
require("../../base/index.js");
|
|
11
|
-
const require_abi_iPausable = require("../../../abi/iPausable.js");
|
|
12
12
|
//#region src/onchain/market/pool/PoolV310Contract.ts
|
|
13
13
|
const abi = [...require_abi_310_generated.iPoolV310Abi, ...require_abi_iPausable.iPausableAbi];
|
|
14
14
|
var PoolV310Contract = class extends require_onchain_base_BaseContract.BaseContract {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_iVersion = require("../../../abi/iVersion.js");
|
|
2
3
|
const require_onchain_utils_bytes32ToString = require("../../utils/bytes32ToString.js");
|
|
3
4
|
require("../../utils/index.js");
|
|
4
|
-
const require_abi_iVersion = require("../../../abi/iVersion.js");
|
|
5
5
|
const require_abi_rwa_iMidasDegenNFT = require("../../../abi/rwa/iMidasDegenNFT.js");
|
|
6
6
|
const require_onchain_market_rwa_midas_constants = require("./midas/constants.js");
|
|
7
7
|
const require_onchain_market_rwa_midas_MidasDegenNFT = require("./midas/MidasDegenNFT.js");
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_iETHZapper = require("../../../abi/iETHZapper.js");
|
|
2
3
|
const require_onchain_market_zapper_ZapperContract = require("./ZapperContract.js");
|
|
3
4
|
//#region src/onchain/market/zapper/IETHZapperContract.ts
|
|
4
|
-
const abi =
|
|
5
|
+
const abi = require_abi_iETHZapper.iethZapperAbi;
|
|
5
6
|
var IETHZapperContract = class extends require_onchain_market_zapper_ZapperContract.ZapperContract {
|
|
6
7
|
constructor(sdk, data) {
|
|
7
8
|
super(sdk, data, abi, "ETHZapper");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_iZapper = require("../../../abi/iZapper.js");
|
|
2
3
|
const require_onchain_base_BaseContract = require("../../base/BaseContract.js");
|
|
3
4
|
require("../../base/index.js");
|
|
4
5
|
const require_model_result = require("../../../model/result.js");
|
|
5
6
|
require("../../../model/index.js");
|
|
6
|
-
const require_abi_iZapper = require("../../../abi/iZapper.js");
|
|
7
7
|
//#region src/onchain/market/zapper/ZapperContract.ts
|
|
8
8
|
/**
|
|
9
9
|
* Base contract for every Gearbox zapper. Specialized zappers (e.g.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_abi_310_generated = require("../../../abi/310/generated.js");
|
|
3
2
|
const require_abi_iERC20 = require("../../../abi/iERC20.js");
|
|
3
|
+
const require_abi_iZapper = require("../../../abi/iZapper.js");
|
|
4
|
+
const require_abi_310_generated = require("../../../abi/310/generated.js");
|
|
4
5
|
const require_model_result = require("../../../model/result.js");
|
|
5
6
|
require("../../../model/index.js");
|
|
6
|
-
const require_abi_iZapper = require("../../../abi/iZapper.js");
|
|
7
7
|
//#region src/onchain/preview/preview/previewPoolPositionOperation.ts
|
|
8
8
|
function previewRead(operation) {
|
|
9
9
|
switch (operation.operation) {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_abi_errors = require("../../../abi/errors.js");
|
|
3
|
-
const require_onchain_utils_viem_cast = require("./cast.js");
|
|
4
3
|
const require_abi_iUpdatablePriceFeed = require("../../../abi/iUpdatablePriceFeed.js");
|
|
4
|
+
const require_onchain_utils_viem_cast = require("./cast.js");
|
|
5
5
|
const require_onchain_utils_viem_simulateMulticall = require("./simulateMulticall.js");
|
|
6
6
|
let viem = require("viem");
|
|
7
7
|
let viem_utils = require("viem/utils");
|
|
@@ -19,14 +19,12 @@ const require_permissionless_api_GearboxPermissionless = require("./GearboxPermi
|
|
|
19
19
|
require("./oracles/index.js");
|
|
20
20
|
require("./transactions/index.js");
|
|
21
21
|
require("./types.js");
|
|
22
|
-
exports.BOUND_WEIGHT = require_permissionless_api_oracles_score_formula.BOUND_WEIGHT;
|
|
23
22
|
exports.ChainsNamespace = require_permissionless_api_chains_ChainsNamespace.ChainsNamespace;
|
|
24
23
|
exports.DEFAULT_DEPLOY_SALT = require_permissionless_api_deploy_PermissionlessDeploy.DEFAULT_DEPLOY_SALT;
|
|
25
24
|
exports.DEFAULT_SCENARIOS = require_permissionless_api_oracles_stress_run.DEFAULT_SCENARIOS;
|
|
26
25
|
exports.GET_PRICES_CHUNK_SIZE = require_permissionless_api_oracles_PermissionlessOracles.GET_PRICES_CHUNK_SIZE;
|
|
27
26
|
exports.GET_PRICES_GAS_LIMIT_BY_CHAIN_ID = require_permissionless_api_oracles_PermissionlessOracles.GET_PRICES_GAS_LIMIT_BY_CHAIN_ID;
|
|
28
27
|
exports.GearboxPermissionless = require_permissionless_api_GearboxPermissionless.GearboxPermissionless;
|
|
29
|
-
exports.INDEPENDENCE_WEIGHT = require_permissionless_api_oracles_score_formula.INDEPENDENCE_WEIGHT;
|
|
30
28
|
exports.InstanceOwnerTransactions = require_permissionless_api_transactions_InstanceOwnerTransactions.InstanceOwnerTransactions;
|
|
31
29
|
exports.PermissionlessAnalytics = require_permissionless_api_analytics_PermissionlessAnalytics.PermissionlessAnalytics;
|
|
32
30
|
exports.PermissionlessChainUnreachableError = require_permissionless_api_errors.PermissionlessChainUnreachableError;
|
|
@@ -37,21 +35,27 @@ exports.PriceFeedNotInStoreError = require_permissionless_api_errors.PriceFeedNo
|
|
|
37
35
|
exports.PriceFeedSaltMissingError = require_permissionless_api_errors.PriceFeedSaltMissingError;
|
|
38
36
|
exports.PriceFeedStalenessUnknownError = require_permissionless_api_errors.PriceFeedStalenessUnknownError;
|
|
39
37
|
exports.RATE_FEED_TYPE = require_permissionless_api_oracles_stress_run.RATE_FEED_TYPE;
|
|
38
|
+
exports.REVERT_SCORE = require_permissionless_api_oracles_score_formula.REVERT_SCORE;
|
|
39
|
+
exports.SCORE_MULTIPLIER = require_permissionless_api_oracles_score_formula.SCORE_MULTIPLIER;
|
|
40
40
|
exports.UNBOUNDED_DOWN = require_permissionless_api_oracles_stress_override.UNBOUNDED_DOWN;
|
|
41
41
|
exports.UNBOUNDED_UP = require_permissionless_api_oracles_stress_override.UNBOUNDED_UP;
|
|
42
42
|
exports.classifySources = require_permissionless_api_oracles_stress_classify.classifySources;
|
|
43
43
|
exports.deriveEffectiveStalenessPeriod = require_permissionless_api_deploy_effective_staleness.deriveEffectiveStalenessPeriod;
|
|
44
|
+
exports.factorOf = require_permissionless_api_oracles_score_formula.factorOf;
|
|
45
|
+
exports.finalPrice = require_permissionless_api_oracles_score_formula.finalPrice;
|
|
44
46
|
exports.groupOverride = require_permissionless_api_oracles_stress_override.groupOverride;
|
|
45
47
|
exports.perturb = require_permissionless_api_oracles_stress_override.perturb;
|
|
46
48
|
exports.priceFeedSalt = require_permissionless_api_deploy_PermissionlessDeploy.priceFeedSalt;
|
|
47
49
|
exports.rateStub = require_permissionless_api_oracles_stress_override.rateStub;
|
|
48
50
|
exports.readForest = require_permissionless_api_oracles_stress_run.readForest;
|
|
49
51
|
exports.readRateTargets = require_permissionless_api_oracles_stress_run.readRateTargets;
|
|
52
|
+
exports.readUnder = require_permissionless_api_oracles_stress_run.readUnder;
|
|
50
53
|
exports.roundDataStub = require_permissionless_api_oracles_stress_override.roundDataStub;
|
|
51
54
|
exports.runAssetScores = require_permissionless_api_oracles_score_run.runAssetScores;
|
|
52
55
|
exports.runStressTest = require_permissionless_api_oracles_stress_run.runStressTest;
|
|
53
56
|
exports.scoreGroup = require_permissionless_api_oracles_stress_score.scoreGroup;
|
|
54
|
-
exports.
|
|
57
|
+
exports.scoreOfFactor = require_permissionless_api_oracles_score_formula.scoreOfFactor;
|
|
55
58
|
exports.slotHarm = require_permissionless_api_oracles_stress_score.slotHarm;
|
|
56
59
|
exports.sourcesByFeed = require_permissionless_api_oracles_stress_classify.sourcesByFeed;
|
|
57
60
|
exports.verdictOf = require_permissionless_api_oracles_stress_score.verdictOf;
|
|
61
|
+
exports.worstOf = require_permissionless_api_oracles_score_formula.worstOf;
|
|
@@ -362,17 +362,17 @@ var PermissionlessOracles = class extends require_offchain_AbstractOffchainNames
|
|
|
362
362
|
/**
|
|
363
363
|
* Every asset's score out of 10 for how its markets guard its price.
|
|
364
364
|
*
|
|
365
|
-
*
|
|
366
|
-
*
|
|
367
|
-
*
|
|
368
|
-
*
|
|
369
|
-
*
|
|
370
|
-
*
|
|
371
|
-
*
|
|
372
|
-
*
|
|
373
|
-
*
|
|
374
|
-
*
|
|
375
|
-
*
|
|
365
|
+
* Each source group behind an asset's feeds — Chainlink, Redstone, Lido and
|
|
366
|
+
* so on — is made in turn to answer five times what it answers now, and a
|
|
367
|
+
* market scores by how far that moves its final price, `min(main,
|
|
368
|
+
* reserve)`: 10 for not at all, 0 for the full five times, on a log scale.
|
|
369
|
+
* A price that stops answering scores 5. An asset scores its worst running
|
|
370
|
+
* market that takes it as collateral.
|
|
371
|
+
*
|
|
372
|
+
* Simulated on the chain as it stands, through state overrides in
|
|
373
|
+
* `eth_call`: one call per source group per chain, so the node behind the
|
|
374
|
+
* client has to accept overrides. A chain with no client configured, or
|
|
375
|
+
* whose node refuses, is left out with a warning rather than failing the
|
|
376
376
|
* rest.
|
|
377
377
|
*
|
|
378
378
|
* ```ts
|
|
@@ -9,26 +9,30 @@ const require_permissionless_api_oracles_PermissionlessOracles = require("./Perm
|
|
|
9
9
|
require("./score/index.js");
|
|
10
10
|
require("./stress/index.js");
|
|
11
11
|
require("./types.js");
|
|
12
|
-
exports.BOUND_WEIGHT = require_permissionless_api_oracles_score_formula.BOUND_WEIGHT;
|
|
13
12
|
exports.DEFAULT_SCENARIOS = require_permissionless_api_oracles_stress_run.DEFAULT_SCENARIOS;
|
|
14
13
|
exports.GET_PRICES_CHUNK_SIZE = require_permissionless_api_oracles_PermissionlessOracles.GET_PRICES_CHUNK_SIZE;
|
|
15
14
|
exports.GET_PRICES_GAS_LIMIT_BY_CHAIN_ID = require_permissionless_api_oracles_PermissionlessOracles.GET_PRICES_GAS_LIMIT_BY_CHAIN_ID;
|
|
16
|
-
exports.INDEPENDENCE_WEIGHT = require_permissionless_api_oracles_score_formula.INDEPENDENCE_WEIGHT;
|
|
17
15
|
exports.PermissionlessOracles = require_permissionless_api_oracles_PermissionlessOracles.PermissionlessOracles;
|
|
18
16
|
exports.RATE_FEED_TYPE = require_permissionless_api_oracles_stress_run.RATE_FEED_TYPE;
|
|
17
|
+
exports.REVERT_SCORE = require_permissionless_api_oracles_score_formula.REVERT_SCORE;
|
|
18
|
+
exports.SCORE_MULTIPLIER = require_permissionless_api_oracles_score_formula.SCORE_MULTIPLIER;
|
|
19
19
|
exports.UNBOUNDED_DOWN = require_permissionless_api_oracles_stress_override.UNBOUNDED_DOWN;
|
|
20
20
|
exports.UNBOUNDED_UP = require_permissionless_api_oracles_stress_override.UNBOUNDED_UP;
|
|
21
21
|
exports.classifySources = require_permissionless_api_oracles_stress_classify.classifySources;
|
|
22
|
+
exports.factorOf = require_permissionless_api_oracles_score_formula.factorOf;
|
|
23
|
+
exports.finalPrice = require_permissionless_api_oracles_score_formula.finalPrice;
|
|
22
24
|
exports.groupOverride = require_permissionless_api_oracles_stress_override.groupOverride;
|
|
23
25
|
exports.perturb = require_permissionless_api_oracles_stress_override.perturb;
|
|
24
26
|
exports.rateStub = require_permissionless_api_oracles_stress_override.rateStub;
|
|
25
27
|
exports.readForest = require_permissionless_api_oracles_stress_run.readForest;
|
|
26
28
|
exports.readRateTargets = require_permissionless_api_oracles_stress_run.readRateTargets;
|
|
29
|
+
exports.readUnder = require_permissionless_api_oracles_stress_run.readUnder;
|
|
27
30
|
exports.roundDataStub = require_permissionless_api_oracles_stress_override.roundDataStub;
|
|
28
31
|
exports.runAssetScores = require_permissionless_api_oracles_score_run.runAssetScores;
|
|
29
32
|
exports.runStressTest = require_permissionless_api_oracles_stress_run.runStressTest;
|
|
30
33
|
exports.scoreGroup = require_permissionless_api_oracles_stress_score.scoreGroup;
|
|
31
|
-
exports.
|
|
34
|
+
exports.scoreOfFactor = require_permissionless_api_oracles_score_formula.scoreOfFactor;
|
|
32
35
|
exports.slotHarm = require_permissionless_api_oracles_stress_score.slotHarm;
|
|
33
36
|
exports.sourcesByFeed = require_permissionless_api_oracles_stress_classify.sourcesByFeed;
|
|
34
37
|
exports.verdictOf = require_permissionless_api_oracles_stress_score.verdictOf;
|
|
38
|
+
exports.worstOf = require_permissionless_api_oracles_score_formula.worstOf;
|
|
@@ -1,99 +1,61 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
//#region src/permissionless/api/oracles/score/formula.ts
|
|
3
|
+
/** What every source of a group is made to answer, as a multiple of now. */
|
|
4
|
+
const SCORE_MULTIPLIER = 5;
|
|
3
5
|
/**
|
|
4
|
-
*
|
|
6
|
+
* The score of a price that stops answering under the lie.
|
|
5
7
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* - Would the reserve disagree with a main feed that has gone wrong? Only if
|
|
9
|
-
* it is a second feed on other sources. A missing reserve, a
|
|
10
|
-
* `ZeroPriceFeed`, the main feed again, and a different feed on the same
|
|
11
|
-
* sources all answer no.
|
|
12
|
-
* - Is either feed bounded? A `BoundedPriceFeed` caps the answer from above,
|
|
13
|
-
* and a Gearbox LP feed clamps its exchange rate to a window.
|
|
14
|
-
*
|
|
15
|
-
* Independence costs more than the bound, 6 points against 5, because it is
|
|
16
|
-
* the broader protection: a bounded feed caps only from above, and an LP
|
|
17
|
-
* feed's window holds only its rate, not the price of what the rate is in.
|
|
18
|
-
* Either failure alone lands a market at 4 or 5; both together at 0.
|
|
8
|
+
* Half marks: nobody can borrow against a wrong number, but nobody can be
|
|
9
|
+
* liquidated either until the feed is replaced.
|
|
19
10
|
*/
|
|
20
|
-
const
|
|
21
|
-
const BOUND_WEIGHT = 5;
|
|
11
|
+
const REVERT_SCORE = 5;
|
|
22
12
|
/**
|
|
23
|
-
*
|
|
24
|
-
*
|
|
13
|
+
* 0 to 10 by how far the final price moved, on a log scale against the lie
|
|
14
|
+
* itself: 10 for a price that did not move, 0 for one that moved by the full
|
|
15
|
+
* {@link SCORE_MULTIPLIER} or more, either way. Rounded to a half point.
|
|
16
|
+
*
|
|
17
|
+
* A bound holding a price within a few percent keeps a 10; a price that let
|
|
18
|
+
* half the lie through, ×√5, scores 5.
|
|
25
19
|
*/
|
|
26
|
-
|
|
27
|
-
|
|
20
|
+
function scoreOfFactor(factor) {
|
|
21
|
+
if (factor === null || !Number.isFinite(factor) || factor <= 0) return 5;
|
|
22
|
+
const moved = Math.abs(Math.log(factor)) / Math.log(5);
|
|
23
|
+
return Math.round(10 * Math.max(0, 1 - moved) * 2) / 2;
|
|
24
|
+
}
|
|
28
25
|
/**
|
|
29
|
-
* The
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
* there to be a second opinion and neither of them is one.
|
|
26
|
+
* The price a market settles on: the lower of main and reserve, or the main
|
|
27
|
+
* feed's alone where there is no reserve to compare it with. `null` where a
|
|
28
|
+
* feed it needs does not answer.
|
|
33
29
|
*/
|
|
34
|
-
function
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (union.size === 0) return 0;
|
|
39
|
-
return 1 - [...a].filter((key) => b.has(key)).length / union.size;
|
|
30
|
+
function finalPrice(main, reserve) {
|
|
31
|
+
if (main === null || reserve === null) return null;
|
|
32
|
+
if (reserve === void 0) return main;
|
|
33
|
+
return main < reserve ? main : reserve;
|
|
40
34
|
}
|
|
41
|
-
/**
|
|
42
|
-
function
|
|
43
|
-
|
|
35
|
+
/** `stressed / base` as a float, `null` where the stressed price is gone. */
|
|
36
|
+
function factorOf(base, stressed) {
|
|
37
|
+
if (stressed === null) return null;
|
|
38
|
+
return Number(stressed) / Number(base);
|
|
44
39
|
}
|
|
45
40
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
* A source is passed per side and keyed by the caller, which is where it is
|
|
50
|
-
* decided that an unnamed source is its own contract and a named one is its
|
|
51
|
-
* group.
|
|
41
|
+
* The market's score and the group it comes from: the lowest of its groups,
|
|
42
|
+
* ties going to the group that moved the price further. 10 where no source
|
|
43
|
+
* feeds the price at all, since nothing can be made to lie about it.
|
|
52
44
|
*/
|
|
53
|
-
function
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
hasReserve = false;
|
|
58
|
-
reasons.push("no reserve feed");
|
|
59
|
-
} else if (reserve.feed.contractType === ZERO_TYPE) {
|
|
60
|
-
hasReserve = false;
|
|
61
|
-
reasons.push("reserve is a ZeroPriceFeed");
|
|
62
|
-
} else if (reserve.feed.feed.toLowerCase() === main.feed.feed.toLowerCase()) {
|
|
63
|
-
hasReserve = false;
|
|
64
|
-
reasons.push("reserve is the main feed");
|
|
65
|
-
}
|
|
66
|
-
const reserveSources = hasReserve && reserve ? reserve.sources : [];
|
|
67
|
-
const independence = hasReserve ? independenceOf(main.sources, reserveSources) : 0;
|
|
68
|
-
const reserveKeys = new Set(reserveSources.map((source) => source.key));
|
|
69
|
-
const mainKeys = new Set(main.sources.map((source) => source.key));
|
|
70
|
-
const shared = main.sources.filter((source) => reserveKeys.has(source.key));
|
|
71
|
-
const names = (sources) => [...new Set(sources.map((source) => source.name))];
|
|
72
|
-
if (hasReserve && independence < 1) reasons.push(shared.length > 0 ? `main and reserve share ${names(shared).join(", ")}` : "neither feed reads a price source");
|
|
73
|
-
const unverified = hasReserve && [...main.sources.filter((source) => !reserveKeys.has(source.key)), ...reserveSources.filter((source) => !mainKeys.has(source.key))].some((source) => !source.identified);
|
|
74
|
-
const bounded = BOUNDED_TYPE.test(main.feed.contractType) || reserve !== null && BOUNDED_TYPE.test(reserve.feed.contractType);
|
|
75
|
-
if (!bounded) reasons.push("neither feed is bounded");
|
|
76
|
-
const score = toHalf(Math.max(0, 10 - 6 * (1 - independence) - 5 * (bounded ? 0 : 1)));
|
|
45
|
+
function worstOf(impacts) {
|
|
46
|
+
const distance = (impact) => impact.factor === null ? Infinity : Math.abs(Math.log(impact.factor));
|
|
47
|
+
const sorted = [...impacts].sort((a, b) => a.score - b.score || distance(b) - distance(a));
|
|
48
|
+
const worst = sorted[0] ?? null;
|
|
77
49
|
return {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
sources: names(main.sources)
|
|
82
|
-
},
|
|
83
|
-
reserve: reserve ? {
|
|
84
|
-
...reserve.feed,
|
|
85
|
-
sources: names(reserve.sources)
|
|
86
|
-
} : null,
|
|
87
|
-
hasReserve,
|
|
88
|
-
independence,
|
|
89
|
-
bounded,
|
|
90
|
-
sharedSources: names(shared),
|
|
91
|
-
unverified,
|
|
92
|
-
score,
|
|
93
|
-
reasons
|
|
50
|
+
score: worst?.score ?? 10,
|
|
51
|
+
impacts: sorted,
|
|
52
|
+
worst
|
|
94
53
|
};
|
|
95
54
|
}
|
|
96
55
|
//#endregion
|
|
97
|
-
exports.
|
|
98
|
-
exports.
|
|
99
|
-
exports.
|
|
56
|
+
exports.REVERT_SCORE = REVERT_SCORE;
|
|
57
|
+
exports.SCORE_MULTIPLIER = SCORE_MULTIPLIER;
|
|
58
|
+
exports.factorOf = factorOf;
|
|
59
|
+
exports.finalPrice = finalPrice;
|
|
60
|
+
exports.scoreOfFactor = scoreOfFactor;
|
|
61
|
+
exports.worstOf = worstOf;
|