@gearbox-protocol/sdk 16.3.0-next.1 → 16.3.0-next.3
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/rwa/iMidasAccessControl.js +23 -0
- package/dist/cjs/abi/rwa/iMidasDegenNFT.js +92 -0
- package/dist/cjs/model/errors/index.js +0 -1
- package/dist/cjs/model/errors/prepare-errors.js +0 -8
- package/dist/cjs/model/index.js +6 -2
- package/dist/cjs/model/opportunities.schema.js +3 -1
- package/dist/cjs/model/rwa.js +13 -0
- package/dist/cjs/model/rwa.schema.js +20 -0
- package/dist/cjs/offchain/opportunities/OffchainOpportunities.js +1 -1
- package/dist/cjs/onchain/accounts/intents/guards.js +4 -4
- package/dist/cjs/onchain/accounts/liquidations/LiquidationsService.js +2 -2
- package/dist/cjs/onchain/index.js +8 -2
- package/dist/cjs/onchain/market/MarketSuite.js +3 -3
- package/dist/cjs/onchain/market/credit/CreditSuite.js +37 -3
- package/dist/cjs/onchain/market/index.js +8 -2
- package/dist/cjs/onchain/market/rwa/createDegenNFT.js +53 -0
- package/dist/cjs/onchain/market/rwa/index.js +7 -1
- package/dist/cjs/onchain/market/rwa/midas/MidasDegenNFT.js +56 -0
- package/dist/cjs/onchain/market/rwa/midas/constants.js +2 -0
- package/dist/cjs/onchain/market/rwa/midas/index.js +3 -0
- package/dist/cjs/onchain/market/rwa/securitize/SecuritizeDegenNFT.js +22 -3
- package/dist/cjs/onchain/market/rwa/securitize/SecuritizeRWAFactory.js +2 -2
- package/dist/cjs/onchain/market/rwa/securitize/constants.js +2 -0
- package/dist/cjs/onchain/market/rwa/securitize/index.js +3 -0
- package/dist/cjs/onchain/opportunities/MultichainOpportunitiesService.js +2 -2
- package/dist/cjs/onchain/opportunities/OpportunitiesService.js +11 -3
- package/dist/cjs/onchain/validation/bundles/checkCreditOperation.js +2 -1
- package/dist/cjs/onchain/validation/bundles/checkDraw.js +3 -3
- package/dist/cjs/onchain/validation/checkSimulation.js +11 -14
- package/dist/cjs/onchain/validation/checks/checkDebtLimits.js +3 -2
- package/dist/cjs/sdk/index.js +0 -1
- package/dist/cjs/sdk/opportunities/OpportunitiesNamespace.js +19 -4
- package/dist/cjs/sdk/prepare/PrepareApi.js +27 -8
- package/dist/cjs/sdk/prepare/index.js +0 -1
- package/dist/esm/abi/rwa/iMidasAccessControl.js +22 -0
- package/dist/esm/abi/rwa/iMidasDegenNFT.js +91 -0
- package/dist/esm/model/errors/index.js +2 -2
- package/dist/esm/model/errors/prepare-errors.js +1 -8
- package/dist/esm/model/index.js +4 -3
- package/dist/esm/model/opportunities.schema.js +3 -1
- package/dist/esm/model/rwa.js +12 -1
- package/dist/esm/model/rwa.schema.js +18 -0
- package/dist/esm/offchain/opportunities/OffchainOpportunities.js +1 -1
- package/dist/esm/onchain/accounts/intents/guards.js +4 -4
- package/dist/esm/onchain/accounts/liquidations/LiquidationsService.js +2 -2
- package/dist/esm/onchain/index.js +5 -3
- package/dist/esm/onchain/market/MarketSuite.js +3 -3
- package/dist/esm/onchain/market/credit/CreditSuite.js +37 -3
- package/dist/esm/onchain/market/index.js +5 -3
- package/dist/esm/onchain/market/rwa/createDegenNFT.js +52 -0
- package/dist/esm/onchain/market/rwa/index.js +5 -3
- package/dist/esm/onchain/market/rwa/midas/MidasDegenNFT.js +55 -0
- package/dist/esm/onchain/market/rwa/midas/constants.js +2 -1
- package/dist/esm/onchain/market/rwa/midas/index.js +3 -2
- package/dist/esm/onchain/market/rwa/securitize/SecuritizeDegenNFT.js +20 -2
- package/dist/esm/onchain/market/rwa/securitize/SecuritizeRWAFactory.js +2 -2
- package/dist/esm/onchain/market/rwa/securitize/constants.js +2 -1
- package/dist/esm/onchain/market/rwa/securitize/index.js +3 -2
- package/dist/esm/onchain/opportunities/MultichainOpportunitiesService.js +2 -2
- package/dist/esm/onchain/opportunities/OpportunitiesService.js +11 -3
- package/dist/esm/onchain/validation/bundles/checkCreditOperation.js +2 -1
- package/dist/esm/onchain/validation/bundles/checkDraw.js +3 -3
- package/dist/esm/onchain/validation/checkSimulation.js +11 -14
- package/dist/esm/onchain/validation/checks/checkDebtLimits.js +3 -2
- package/dist/esm/sdk/index.js +2 -2
- package/dist/esm/sdk/opportunities/OpportunitiesNamespace.js +19 -4
- package/dist/esm/sdk/prepare/PrepareApi.js +28 -9
- package/dist/esm/sdk/prepare/index.js +2 -2
- package/dist/types/abi/rwa/iMidasAccessControl.d.ts +22 -0
- package/dist/types/abi/rwa/iMidasDegenNFT.d.ts +82 -0
- package/dist/types/model/errors/index.d.ts +2 -2
- package/dist/types/model/errors/operation-errors.d.ts +4 -0
- package/dist/types/model/errors/prepare-errors.d.ts +1 -10
- package/dist/types/model/index.d.ts +4 -3
- package/dist/types/model/opportunities.d.ts +9 -0
- package/dist/types/model/opportunities.schema.d.ts +30 -0
- package/dist/types/model/rwa.d.ts +25 -1
- package/dist/types/model/rwa.schema.d.ts +29 -0
- package/dist/types/offchain/opportunities/OffchainOpportunities.d.ts +2 -1
- package/dist/types/offchain/opportunities/types.d.ts +4 -1
- package/dist/types/onchain/index.d.ts +9 -7
- package/dist/types/onchain/market/credit/CreditSuite.d.ts +12 -2
- package/dist/types/onchain/market/credit/types.d.ts +2 -2
- package/dist/types/onchain/market/index.d.ts +8 -6
- package/dist/types/onchain/market/rwa/RWARegistry.d.ts +1 -1
- package/dist/types/onchain/market/rwa/createDegenNFT.d.ts +12 -0
- package/dist/types/onchain/market/rwa/index.d.ts +9 -7
- package/dist/types/onchain/market/rwa/midas/MidasDegenNFT.d.ts +98 -0
- package/dist/types/onchain/market/rwa/midas/constants.d.ts +2 -1
- package/dist/types/onchain/market/rwa/midas/index.d.ts +3 -2
- package/dist/types/onchain/market/rwa/securitize/SecuritizeDegenNFT.d.ts +8 -2
- package/dist/types/onchain/market/rwa/securitize/SecuritizeRWAFactory.d.ts +2 -2
- package/dist/types/onchain/market/rwa/securitize/constants.d.ts +2 -1
- package/dist/types/onchain/market/rwa/securitize/index.d.ts +4 -3
- package/dist/types/onchain/market/rwa/types.d.ts +20 -2
- package/dist/types/onchain/opportunities/MultichainOpportunitiesService.d.ts +2 -1
- package/dist/types/onchain/opportunities/OpportunitiesService.d.ts +5 -1
- package/dist/types/onchain/opportunities/types.d.ts +3 -2
- package/dist/types/onchain/validation/checkSimulation.d.ts +9 -20
- package/dist/types/onchain/validation/checks/checkDebtLimits.d.ts +4 -0
- package/dist/types/onchain/validation/index.d.ts +2 -2
- package/dist/types/sdk/index.d.ts +4 -3
- package/dist/types/sdk/opportunities/OpportunitiesNamespace.d.ts +2 -1
- package/dist/types/sdk/opportunities/types.d.ts +8 -2
- package/dist/types/sdk/prepare/PrepareApi.d.ts +6 -5
- package/dist/types/sdk/prepare/index.d.ts +4 -3
- package/dist/types/sdk/prepare/types.d.ts +47 -21
- package/package.json +1 -1
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
//#region src/abi/rwa/iMidasAccessControl.ts
|
|
3
|
+
const iMidasAccessControlAbi = [{
|
|
4
|
+
type: "function",
|
|
5
|
+
name: "hasRole",
|
|
6
|
+
inputs: [{
|
|
7
|
+
name: "role",
|
|
8
|
+
type: "bytes32",
|
|
9
|
+
internalType: "bytes32"
|
|
10
|
+
}, {
|
|
11
|
+
name: "account",
|
|
12
|
+
type: "address",
|
|
13
|
+
internalType: "address"
|
|
14
|
+
}],
|
|
15
|
+
outputs: [{
|
|
16
|
+
name: "",
|
|
17
|
+
type: "bool",
|
|
18
|
+
internalType: "bool"
|
|
19
|
+
}],
|
|
20
|
+
stateMutability: "view"
|
|
21
|
+
}];
|
|
22
|
+
//#endregion
|
|
23
|
+
exports.iMidasAccessControlAbi = iMidasAccessControlAbi;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
//#region src/abi/rwa/iMidasDegenNFT.ts
|
|
3
|
+
const iMidasDegenNFTAbi = [
|
|
4
|
+
{
|
|
5
|
+
type: "function",
|
|
6
|
+
name: "accessControl",
|
|
7
|
+
inputs: [],
|
|
8
|
+
outputs: [{
|
|
9
|
+
name: "",
|
|
10
|
+
type: "address",
|
|
11
|
+
internalType: "address"
|
|
12
|
+
}],
|
|
13
|
+
stateMutability: "view"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
type: "function",
|
|
17
|
+
name: "burn",
|
|
18
|
+
inputs: [{
|
|
19
|
+
name: "from",
|
|
20
|
+
type: "address",
|
|
21
|
+
internalType: "address"
|
|
22
|
+
}, {
|
|
23
|
+
name: "",
|
|
24
|
+
type: "uint256",
|
|
25
|
+
internalType: "uint256"
|
|
26
|
+
}],
|
|
27
|
+
outputs: [],
|
|
28
|
+
stateMutability: "view"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
type: "function",
|
|
32
|
+
name: "contractType",
|
|
33
|
+
inputs: [],
|
|
34
|
+
outputs: [{
|
|
35
|
+
name: "",
|
|
36
|
+
type: "bytes32",
|
|
37
|
+
internalType: "bytes32"
|
|
38
|
+
}],
|
|
39
|
+
stateMutability: "view"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
type: "function",
|
|
43
|
+
name: "gateway",
|
|
44
|
+
inputs: [],
|
|
45
|
+
outputs: [{
|
|
46
|
+
name: "",
|
|
47
|
+
type: "address",
|
|
48
|
+
internalType: "address"
|
|
49
|
+
}],
|
|
50
|
+
stateMutability: "view"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
type: "function",
|
|
54
|
+
name: "greenlistedRole",
|
|
55
|
+
inputs: [],
|
|
56
|
+
outputs: [{
|
|
57
|
+
name: "",
|
|
58
|
+
type: "bytes32",
|
|
59
|
+
internalType: "bytes32"
|
|
60
|
+
}],
|
|
61
|
+
stateMutability: "view"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
type: "function",
|
|
65
|
+
name: "serialize",
|
|
66
|
+
inputs: [],
|
|
67
|
+
outputs: [{
|
|
68
|
+
name: "",
|
|
69
|
+
type: "bytes",
|
|
70
|
+
internalType: "bytes"
|
|
71
|
+
}],
|
|
72
|
+
stateMutability: "view"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
type: "function",
|
|
76
|
+
name: "version",
|
|
77
|
+
inputs: [],
|
|
78
|
+
outputs: [{
|
|
79
|
+
name: "",
|
|
80
|
+
type: "uint256",
|
|
81
|
+
internalType: "uint256"
|
|
82
|
+
}],
|
|
83
|
+
stateMutability: "view"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: "error",
|
|
87
|
+
name: "NotGreenlistedException",
|
|
88
|
+
inputs: []
|
|
89
|
+
}
|
|
90
|
+
];
|
|
91
|
+
//#endregion
|
|
92
|
+
exports.iMidasDegenNFTAbi = iMidasDegenNFTAbi;
|
|
@@ -10,7 +10,6 @@ exports.creditAccountNotEmpty = require_model_errors_prepare_errors.creditAccoun
|
|
|
10
10
|
exports.creditAccountNotFound = require_model_errors_prepare_errors.creditAccountNotFound;
|
|
11
11
|
exports.creditManagerPaused = require_model_errors_operation_errors.creditManagerPaused;
|
|
12
12
|
exports.debtOutOfRange = require_model_errors_operation_errors.debtOutOfRange;
|
|
13
|
-
exports.emptyOpenTakesNothing = require_model_errors_prepare_errors.emptyOpenTakesNothing;
|
|
14
13
|
exports.forbiddenToken = require_model_errors_operation_errors.forbiddenToken;
|
|
15
14
|
exports.insufficientAllowance = require_model_errors_operation_errors.insufficientAllowance;
|
|
16
15
|
exports.insufficientBalance = require_model_errors_operation_errors.insufficientBalance;
|
|
@@ -73,13 +73,6 @@ function creditAccountNotEmpty(creditAccount) {
|
|
|
73
73
|
creditAccount
|
|
74
74
|
};
|
|
75
75
|
}
|
|
76
|
-
/** {@inheritDoc EmptyOpenTakesNothingError} */
|
|
77
|
-
function emptyOpenTakesNothing() {
|
|
78
|
-
return {
|
|
79
|
-
code: "emptyOpenTakesNothing",
|
|
80
|
-
message: "An empty opening takes no collateral, no account to reuse and no leverage."
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
76
|
/**
|
|
84
77
|
* {@inheritDoc UnexpectedFailureError}
|
|
85
78
|
*
|
|
@@ -97,7 +90,6 @@ function unexpectedFailure(thrown, action = "prepare this operation") {
|
|
|
97
90
|
//#endregion
|
|
98
91
|
exports.creditAccountNotEmpty = creditAccountNotEmpty;
|
|
99
92
|
exports.creditAccountNotFound = creditAccountNotFound;
|
|
100
|
-
exports.emptyOpenTakesNothing = emptyOpenTakesNothing;
|
|
101
93
|
exports.multipleDelayedWithdrawals = multipleDelayedWithdrawals;
|
|
102
94
|
exports.noDelayedRoute = noDelayedRoute;
|
|
103
95
|
exports.noRecordedIntent = noRecordedIntent;
|
package/dist/cjs/model/index.js
CHANGED
|
@@ -8,6 +8,8 @@ const require_model_filters = require("./filters.js");
|
|
|
8
8
|
const require_model_filters_schema = require("./filters.schema.js");
|
|
9
9
|
const require_model_curators_schema = require("./curators.schema.js");
|
|
10
10
|
const require_model_liquidations_schema = require("./liquidations.schema.js");
|
|
11
|
+
const require_model_rwa = require("./rwa.js");
|
|
12
|
+
const require_model_rwa_schema = require("./rwa.schema.js");
|
|
11
13
|
const require_model_opportunities_schema = require("./opportunities.schema.js");
|
|
12
14
|
const require_model_positions_schema = require("./positions.schema.js");
|
|
13
15
|
const require_model_analytics_schema = require("./analytics.schema.js");
|
|
@@ -29,7 +31,6 @@ require("./primitives.js");
|
|
|
29
31
|
require("./response.js");
|
|
30
32
|
const require_model_response_schema = require("./response.schema.js");
|
|
31
33
|
const require_model_result = require("./result.js");
|
|
32
|
-
const require_model_rwa = require("./rwa.js");
|
|
33
34
|
require("./withdrawals.js");
|
|
34
35
|
const require_model_withdrawals_schema = require("./withdrawals.schema.js");
|
|
35
36
|
exports.ANALYTICS_POSITIONS_DEFAULT_LIMIT = require_model_analytics_schema.ANALYTICS_POSITIONS_DEFAULT_LIMIT;
|
|
@@ -38,6 +39,8 @@ exports.CHART_METRIC_UNITS = require_model_charts.CHART_METRIC_UNITS;
|
|
|
38
39
|
exports.CHART_RANGES = require_model_charts.CHART_RANGES;
|
|
39
40
|
exports.CHART_UNAVAILABLE_CODES = require_model_charts.CHART_UNAVAILABLE_CODES;
|
|
40
41
|
exports.FILTER_ALL = require_model_filters.FILTER_ALL;
|
|
42
|
+
exports.KYC_PROTOCOLS = require_model_rwa.KYC_PROTOCOLS;
|
|
43
|
+
exports.KYC_REGISTRATION_LINKS = require_model_rwa.KYC_REGISTRATION_LINKS;
|
|
41
44
|
exports.POOL_OPPORTUNITY_CHART_METRICS = require_model_charts.POOL_OPPORTUNITY_CHART_METRICS;
|
|
42
45
|
exports.POOL_POSITION_CHART_METRICS = require_model_charts.POOL_POSITION_CHART_METRICS;
|
|
43
46
|
exports.PROTOCOL_CHART_METRICS = require_model_charts.PROTOCOL_CHART_METRICS;
|
|
@@ -89,7 +92,6 @@ exports.curatorSchema = require_model_curators_schema.curatorSchema;
|
|
|
89
92
|
exports.dataSourceSchema = require_model_response_schema.dataSourceSchema;
|
|
90
93
|
exports.debtOutOfRange = require_model_errors_operation_errors.debtOutOfRange;
|
|
91
94
|
exports.delayedReceivedAssetSchema = require_model_liquidations_schema.delayedReceivedAssetSchema;
|
|
92
|
-
exports.emptyOpenTakesNothing = require_model_errors_prepare_errors.emptyOpenTakesNothing;
|
|
93
95
|
exports.encodeFlag = require_model_filters_schema.encodeFlag;
|
|
94
96
|
exports.filterAllSchema = require_model_filters_schema.filterAllSchema;
|
|
95
97
|
exports.filterable = require_model_filters_schema.filterable;
|
|
@@ -100,6 +102,8 @@ exports.insufficientBalance = require_model_errors_operation_errors.insufficient
|
|
|
100
102
|
exports.insufficientCollateral = require_model_errors_operation_errors.insufficientCollateral;
|
|
101
103
|
exports.insufficientPoolLiquidity = require_model_errors_operation_errors.insufficientPoolLiquidity;
|
|
102
104
|
exports.isFilterSet = require_model_filters.isFilterSet;
|
|
105
|
+
exports.kycProtocolSchema = require_model_rwa_schema.kycProtocolSchema;
|
|
106
|
+
exports.kycRequirementSchema = require_model_rwa_schema.kycRequirementSchema;
|
|
103
107
|
exports.leverageOutOfRange = require_model_errors_operation_errors.leverageOutOfRange;
|
|
104
108
|
exports.leverageSchema = require_model_primitives_schema.leverageSchema;
|
|
105
109
|
exports.liquidatableAccountFilterSchema = require_model_liquidations_schema.liquidatableAccountFilterSchema;
|
|
@@ -5,6 +5,7 @@ const require_model_primitives_schema = require("./primitives.schema.js");
|
|
|
5
5
|
const require_model_filters = require("./filters.js");
|
|
6
6
|
const require_model_filters_schema = require("./filters.schema.js");
|
|
7
7
|
const require_model_curators_schema = require("./curators.schema.js");
|
|
8
|
+
const require_model_rwa_schema = require("./rwa.schema.js");
|
|
8
9
|
let zod_v4 = require("zod/v4");
|
|
9
10
|
//#region src/model/opportunities.schema.ts
|
|
10
11
|
/**
|
|
@@ -215,7 +216,8 @@ const poolOpportunityDetailSchema = zod_v4.z.object({
|
|
|
215
216
|
const strategyOpportunityDetailSchema = zod_v4.z.object({
|
|
216
217
|
...strategyOpportunitySchema.shape,
|
|
217
218
|
rateCurve: rateCurveSchema,
|
|
218
|
-
priceFeeds: priceFeedSummarySchema
|
|
219
|
+
priceFeeds: priceFeedSummarySchema,
|
|
220
|
+
kyc: require_model_rwa_schema.kycRequirementSchema.nullable().optional()
|
|
219
221
|
});
|
|
220
222
|
/**
|
|
221
223
|
* {@link OpportunityDetail}
|
package/dist/cjs/model/rwa.js
CHANGED
|
@@ -34,7 +34,20 @@ const SECURITIZE_REGISTER_VAULT_TYPES = { RegisterVault: [
|
|
|
34
34
|
type: "uint256"
|
|
35
35
|
}
|
|
36
36
|
] };
|
|
37
|
+
/**
|
|
38
|
+
* KYC providers a strategy may be gated by
|
|
39
|
+
**/
|
|
40
|
+
const KYC_PROTOCOLS = ["securitize", "midas"];
|
|
41
|
+
/**
|
|
42
|
+
* Hardcoded registration URLs for each {@link KycProtocol}.
|
|
43
|
+
**/
|
|
44
|
+
const KYC_REGISTRATION_LINKS = {
|
|
45
|
+
securitize: "https://securitize.io/",
|
|
46
|
+
midas: "https://form.typeform.com/to/DqZaw6kr"
|
|
47
|
+
};
|
|
37
48
|
//#endregion
|
|
49
|
+
exports.KYC_PROTOCOLS = KYC_PROTOCOLS;
|
|
50
|
+
exports.KYC_REGISTRATION_LINKS = KYC_REGISTRATION_LINKS;
|
|
38
51
|
exports.RWA_FACTORY_SECURITIZE = RWA_FACTORY_SECURITIZE;
|
|
39
52
|
exports.RWA_FACTORY_TYPES = RWA_FACTORY_TYPES;
|
|
40
53
|
exports.SECURITIZE_REGISTER_VAULT_TYPES = SECURITIZE_REGISTER_VAULT_TYPES;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_model_primitives_schema = require("./primitives.schema.js");
|
|
3
|
+
const require_model_rwa = require("./rwa.js");
|
|
4
|
+
let zod_v4 = require("zod/v4");
|
|
5
|
+
//#region src/model/rwa.schema.ts
|
|
6
|
+
/**
|
|
7
|
+
* {@link ./rwa.js#KycProtocol}
|
|
8
|
+
**/
|
|
9
|
+
const kycProtocolSchema = zod_v4.z.enum(require_model_rwa.KYC_PROTOCOLS);
|
|
10
|
+
/**
|
|
11
|
+
* {@link ./rwa.js#KycRequirement}
|
|
12
|
+
**/
|
|
13
|
+
const kycRequirementSchema = zod_v4.z.object({
|
|
14
|
+
protocol: kycProtocolSchema,
|
|
15
|
+
token: require_model_primitives_schema.tokenSchema.optional(),
|
|
16
|
+
registrationLink: zod_v4.z.string()
|
|
17
|
+
});
|
|
18
|
+
//#endregion
|
|
19
|
+
exports.kycProtocolSchema = kycProtocolSchema;
|
|
20
|
+
exports.kycRequirementSchema = kycRequirementSchema;
|
|
@@ -36,7 +36,7 @@ var OffchainOpportunities = class extends require_offchain_AbstractOffchainNames
|
|
|
36
36
|
/**
|
|
37
37
|
* {@inheritDoc IOffchainOpportunities.getStrategy}
|
|
38
38
|
**/
|
|
39
|
-
async getStrategy(key) {
|
|
39
|
+
async getStrategy(key, _wallet) {
|
|
40
40
|
return this.get({
|
|
41
41
|
path: this.#strategyPath(key),
|
|
42
42
|
schema: require_model_opportunities_schema.strategyOpportunityDetailSchema
|
|
@@ -44,13 +44,13 @@ function assertMarketOperable(suite) {
|
|
|
44
44
|
}
|
|
45
45
|
/** The pool has to be able to lend what the plan means to draw. */
|
|
46
46
|
function assertCanBorrow(sdk, suite, amount) {
|
|
47
|
-
const
|
|
47
|
+
const maxBorrowAmount = suite.maxBorrowAmount();
|
|
48
48
|
require_onchain_validation_raise.raise(require_onchain_validation_checks_checkBorrowLimit.checkBorrowLimit({
|
|
49
49
|
requested: amount,
|
|
50
|
-
available: value,
|
|
51
|
-
limit,
|
|
50
|
+
available: maxBorrowAmount.amount.value,
|
|
51
|
+
limit: maxBorrowAmount.limit,
|
|
52
52
|
underlying: require_onchain_validation_helpers_token.toToken(sdk, suite.market.pool.underlying)
|
|
53
|
-
}), `borrow: ${amount} exceeds what the pool can lend now (${value})`);
|
|
53
|
+
}), `borrow: ${amount} exceeds what the pool can lend now (${maxBorrowAmount.amount.value})`);
|
|
54
54
|
}
|
|
55
55
|
/**
|
|
56
56
|
* What the account is allowed to end up holding more of than it started with.
|
|
@@ -10,13 +10,13 @@ require("../../utils/index.js");
|
|
|
10
10
|
const require_onchain_base_SDKConstruct = require("../../base/SDKConstruct.js");
|
|
11
11
|
require("../../base/index.js");
|
|
12
12
|
const require_onchain_market_math = require("../../market/math.js");
|
|
13
|
-
const require_onchain_market_credit_collateralUtils = require("../../market/credit/collateralUtils.js");
|
|
14
13
|
const require_model_liquidations = require("../../../model/liquidations.js");
|
|
15
14
|
require("../../../model/index.js");
|
|
16
15
|
const require_onchain_market_rwa_midas_constants = require("../../market/rwa/midas/constants.js");
|
|
16
|
+
const require_onchain_market_rwa_securitize_constants = require("../../market/rwa/securitize/constants.js");
|
|
17
|
+
const require_onchain_market_credit_collateralUtils = require("../../market/credit/collateralUtils.js");
|
|
17
18
|
const require_onchain_market_rwa_midas_MidasLiquidatorContract = require("../../market/rwa/midas/MidasLiquidatorContract.js");
|
|
18
19
|
require("../../market/rwa/midas/index.js");
|
|
19
|
-
const require_onchain_market_rwa_securitize_constants = require("../../market/rwa/securitize/constants.js");
|
|
20
20
|
const require_onchain_market_rwa_securitize_SecuritizeLiquidatorContract = require("../../market/rwa/securitize/SecuritizeLiquidatorContract.js");
|
|
21
21
|
require("../../market/rwa/securitize/index.js");
|
|
22
22
|
require("../../market/index.js");
|
|
@@ -136,6 +136,9 @@ const require_onchain_market_credit_CreditFacadeV310BaseContract = require("./ma
|
|
|
136
136
|
const require_onchain_market_credit_CreditFacadeV310Contract = require("./market/credit/CreditFacadeV310Contract.js");
|
|
137
137
|
const require_onchain_market_math = require("./market/math.js");
|
|
138
138
|
const require_onchain_market_credit_CreditManagerV310Contract = require("./market/credit/CreditManagerV310Contract.js");
|
|
139
|
+
const require_onchain_market_rwa_midas_constants = require("./market/rwa/midas/constants.js");
|
|
140
|
+
const require_onchain_market_rwa_midas_MidasDegenNFT = require("./market/rwa/midas/MidasDegenNFT.js");
|
|
141
|
+
const require_onchain_market_rwa_securitize_constants = require("./market/rwa/securitize/constants.js");
|
|
139
142
|
const require_onchain_market_strategyName = require("./market/strategyName.js");
|
|
140
143
|
const require_onchain_market_credit_collateralUtils = require("./market/credit/collateralUtils.js");
|
|
141
144
|
const require_onchain_market_credit_CreditSuite = require("./market/credit/CreditSuite.js");
|
|
@@ -182,9 +185,8 @@ const require_onchain_market_zapper_IERC20ZapperContract = require("./market/zap
|
|
|
182
185
|
const require_onchain_market_zapper_IETHZapperContract = require("./market/zapper/IETHZapperContract.js");
|
|
183
186
|
const require_onchain_market_zapper_createZapper = require("./market/zapper/createZapper.js");
|
|
184
187
|
const require_onchain_market_MarketRegister = require("./market/MarketRegister.js");
|
|
185
|
-
const require_onchain_market_rwa_midas_constants = require("./market/rwa/midas/constants.js");
|
|
186
188
|
const require_onchain_market_rwa_midas_MidasLiquidatorContract = require("./market/rwa/midas/MidasLiquidatorContract.js");
|
|
187
|
-
const
|
|
189
|
+
const require_onchain_market_rwa_securitize_SecuritizeDegenNFT = require("./market/rwa/securitize/SecuritizeDegenNFT.js");
|
|
188
190
|
const require_onchain_market_rwa_securitize_SecuritizeLiquidatorContract = require("./market/rwa/securitize/SecuritizeLiquidatorContract.js");
|
|
189
191
|
const require_onchain_market_rwa_securitize_SecuritizeRWAFactory = require("./market/rwa/securitize/SecuritizeRWAFactory.js");
|
|
190
192
|
const require_onchain_market_rwa_RWARegistry = require("./market/rwa/RWARegistry.js");
|
|
@@ -382,6 +384,8 @@ exports.CurveUSDPriceFeedContract = require_onchain_market_pricefeeds_CurveUSDPr
|
|
|
382
384
|
exports.CurveV1AdapterStETHContract = require_onchain_market_adapters_contracts_CurveV1AdapterStETHContract.CurveV1AdapterStETHContract;
|
|
383
385
|
exports.CurveV1StableNGAdapterContract = require_onchain_market_adapters_contracts_CurveV1StableNGAdapterContract.CurveV1StableNGAdapterContract;
|
|
384
386
|
exports.DEFAULT_QUOTA_BUFFER_BPS = require_onchain_market_math.DEFAULT_QUOTA_BUFFER_BPS;
|
|
387
|
+
exports.DEGEN_NFT_MIDAS = require_onchain_market_rwa_midas_constants.DEGEN_NFT_MIDAS;
|
|
388
|
+
exports.DEGEN_NFT_SECURITIZE = require_onchain_market_rwa_securitize_constants.DEGEN_NFT_SECURITIZE;
|
|
385
389
|
exports.DELAYED_INTENT_TYPES = require_onchain_accounts_withdrawal_compressor_intent_codec.DELAYED_INTENT_TYPES;
|
|
386
390
|
exports.DELAYED_INTENT_VERSION = require_onchain_accounts_withdrawal_compressor_intent_codec.DELAYED_INTENT_VERSION;
|
|
387
391
|
exports.DUST_THRESHOLD = require_onchain_constants_math.DUST_THRESHOLD;
|
|
@@ -422,6 +426,7 @@ exports.MellowDVVAdapterContract = require_onchain_market_adapters_contracts_Mel
|
|
|
422
426
|
exports.MellowERC4626VaultAdapterContract = require_onchain_market_adapters_contracts_MellowERC4626VaultAdapterContract.MellowERC4626VaultAdapterContract;
|
|
423
427
|
exports.MellowLRTPriceFeedContract = require_onchain_market_pricefeeds_MellowLRTPriceFeed.MellowLRTPriceFeedContract;
|
|
424
428
|
exports.MellowWrapperAdapterContract = require_onchain_market_adapters_contracts_MellowWrapperAdapterContract.MellowWrapperAdapterContract;
|
|
429
|
+
exports.MidasDegenNFT = require_onchain_market_rwa_midas_MidasDegenNFT.MidasDegenNFT;
|
|
425
430
|
exports.MidasGatewayAdapterContract = require_onchain_market_adapters_contracts_MidasGatewayAdapterContract.MidasGatewayAdapterContract;
|
|
426
431
|
exports.MidasIssuanceVaultAdapterContract = require_onchain_market_adapters_contracts_MidasIssuanceVaultAdapterContract.MidasIssuanceVaultAdapterContract;
|
|
427
432
|
exports.MidasLiquidatorContract = require_onchain_market_rwa_midas_MidasLiquidatorContract.MidasLiquidatorContract;
|
|
@@ -488,6 +493,7 @@ exports.SdkNotAttachedError = require_onchain_core_errors.SdkNotAttachedError;
|
|
|
488
493
|
exports.SdkRWADataNotLoadedError = require_onchain_core_errors.SdkRWADataNotLoadedError;
|
|
489
494
|
exports.SdkStateVersionMismatchError = require_onchain_core_errors.SdkStateVersionMismatchError;
|
|
490
495
|
exports.SdkSyncFailedError = require_onchain_core_errors.SdkSyncFailedError;
|
|
496
|
+
exports.SecuritizeDegenNFT = require_onchain_market_rwa_securitize_SecuritizeDegenNFT.SecuritizeDegenNFT;
|
|
491
497
|
exports.SecuritizeLiquidatorContract = require_onchain_market_rwa_securitize_SecuritizeLiquidatorContract.SecuritizeLiquidatorContract;
|
|
492
498
|
exports.SecuritizeOnRampAdapterContract = require_onchain_market_adapters_contracts_SecuritizeOnRampAdapterContract.SecuritizeOnRampAdapterContract;
|
|
493
499
|
exports.SecuritizeRWAFactory = require_onchain_market_rwa_securitize_SecuritizeRWAFactory.SecuritizeRWAFactory;
|
|
@@ -5,12 +5,12 @@ require("../utils/index.js");
|
|
|
5
5
|
const require_onchain_base_SDKConstruct = require("../base/SDKConstruct.js");
|
|
6
6
|
require("../base/index.js");
|
|
7
7
|
const require_onchain_market_math = require("./math.js");
|
|
8
|
-
const require_onchain_market_credit_CreditSuite = require("./credit/CreditSuite.js");
|
|
9
|
-
require("./credit/index.js");
|
|
10
|
-
const require_onchain_market_MarketConfiguratorContract = require("./MarketConfiguratorContract.js");
|
|
11
8
|
const require_model_filters = require("../../model/filters.js");
|
|
12
9
|
const require_model_opportunities = require("../../model/opportunities.js");
|
|
13
10
|
require("../../model/index.js");
|
|
11
|
+
const require_onchain_market_credit_CreditSuite = require("./credit/CreditSuite.js");
|
|
12
|
+
require("./credit/index.js");
|
|
13
|
+
const require_onchain_market_MarketConfiguratorContract = require("./MarketConfiguratorContract.js");
|
|
14
14
|
const require_onchain_market_loss_policy_createLossPolicy = require("./loss-policy/createLossPolicy.js");
|
|
15
15
|
require("./loss-policy/index.js");
|
|
16
16
|
const require_onchain_market_oracle_createPriceOracle = require("./oracle/createPriceOracle.js");
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_onchain_utils_AddressMap = require("../../utils/AddressMap.js");
|
|
3
3
|
const require_onchain_chain_chains = require("../../chain/chains.js");
|
|
4
|
+
require("../../constants/addresses.js");
|
|
4
5
|
const require_onchain_constants_math = require("../../constants/math.js");
|
|
5
6
|
require("../../constants/index.js");
|
|
6
7
|
require("../../utils/index.js");
|
|
7
8
|
const require_onchain_base_SDKConstruct = require("../../base/SDKConstruct.js");
|
|
8
9
|
require("../../base/index.js");
|
|
9
10
|
const require_onchain_market_math = require("../math.js");
|
|
11
|
+
const require_model_rwa = require("../../../model/rwa.js");
|
|
12
|
+
require("../../../model/index.js");
|
|
13
|
+
const require_onchain_market_rwa_createDegenNFT = require("../rwa/createDegenNFT.js");
|
|
10
14
|
const require_onchain_market_strategyName = require("../strategyName.js");
|
|
11
15
|
const require_onchain_market_credit_collateralUtils = require("./collateralUtils.js");
|
|
12
16
|
const require_onchain_market_credit_createCreditConfigurator = require("./createCreditConfigurator.js");
|
|
@@ -56,6 +60,7 @@ var CreditSuite = class extends require_onchain_base_SDKConstruct.SDKConstruct {
|
|
|
56
60
|
* parameters, collateral tokens, adapter permissions, and facade settings.
|
|
57
61
|
*/
|
|
58
62
|
creditConfigurator;
|
|
63
|
+
#degenNFT;
|
|
59
64
|
/**
|
|
60
65
|
* Original compressor contract snapshot for this credit suite.
|
|
61
66
|
*/
|
|
@@ -115,6 +120,31 @@ var CreditSuite = class extends require_onchain_base_SDKConstruct.SDKConstruct {
|
|
|
115
120
|
return this.market.rwaFactory;
|
|
116
121
|
}
|
|
117
122
|
/**
|
|
123
|
+
* KYC-gated degen NFT on this suite's facade, loaded on first use.
|
|
124
|
+
* `undefined` when the facade has none, or when the NFT is not a KYC gate.
|
|
125
|
+
*/
|
|
126
|
+
degenNFT() {
|
|
127
|
+
const address = this.creditFacade.degenNFT;
|
|
128
|
+
if ((0, viem.isAddressEqual)(address, "0x0000000000000000000000000000000000000000")) return Promise.resolve(void 0);
|
|
129
|
+
if (!this.#degenNFT) this.#degenNFT = require_onchain_market_rwa_createDegenNFT.createDegenNFT(this.sdk, address);
|
|
130
|
+
return this.#degenNFT;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* What `wallet` still has to do before the facade lets it open an account;
|
|
134
|
+
* `null` when nothing (no degen NFT, not a KYC gate, or already eligible).
|
|
135
|
+
*/
|
|
136
|
+
async kycRequirement(wallet, targetCollateral) {
|
|
137
|
+
const nft = await this.degenNFT();
|
|
138
|
+
if (!nft) return null;
|
|
139
|
+
const { eligible, token } = await nft.checkKyc(wallet, targetCollateral);
|
|
140
|
+
if (eligible) return null;
|
|
141
|
+
return {
|
|
142
|
+
protocol: nft.protocol,
|
|
143
|
+
token: this.tokensMeta.getToken(token),
|
|
144
|
+
registrationLink: require_model_rwa.KYC_REGISTRATION_LINKS[nft.protocol]
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
118
148
|
* Builds a transaction that executes a multicall on one of this suite's
|
|
119
149
|
* credit accounts.
|
|
120
150
|
*
|
|
@@ -249,11 +279,11 @@ var CreditSuite = class extends require_onchain_base_SDKConstruct.SDKConstruct {
|
|
|
249
279
|
const { pool } = this.market.pool;
|
|
250
280
|
const { maxDebtPerBlockMultiplier, maxDebt } = this.creditFacade;
|
|
251
281
|
if (maxDebtPerBlockMultiplier === 0) return {
|
|
252
|
-
|
|
282
|
+
amount: this.market.toUnderlyingAmount(0n),
|
|
253
283
|
limit: "debtPerBlockLimit"
|
|
254
284
|
};
|
|
255
285
|
const available = pool.creditManagerDebtParams.get(this.creditManager.address)?.available;
|
|
256
|
-
|
|
286
|
+
const { value, limit } = [
|
|
257
287
|
{
|
|
258
288
|
value: pool.availableLiquidity,
|
|
259
289
|
limit: "poolAvailableLiquidity"
|
|
@@ -267,6 +297,10 @@ var CreditSuite = class extends require_onchain_base_SDKConstruct.SDKConstruct {
|
|
|
267
297
|
limit: "maxDebt"
|
|
268
298
|
}
|
|
269
299
|
].reduce((a, b) => b.value < a.value ? b : a);
|
|
300
|
+
return {
|
|
301
|
+
amount: this.market.toUnderlyingAmount(value),
|
|
302
|
+
limit
|
|
303
|
+
};
|
|
270
304
|
}
|
|
271
305
|
/**
|
|
272
306
|
* The single target collateral of this suite's strategy, or `undefined` when
|
|
@@ -325,7 +359,7 @@ var CreditSuite = class extends require_onchain_base_SDKConstruct.SDKConstruct {
|
|
|
325
359
|
* or `undefined` when credit suite does not offer a strategy opportunity.
|
|
326
360
|
*/
|
|
327
361
|
strategyOpportunity() {
|
|
328
|
-
const maxBorrowAmount = this.maxBorrowAmount().value;
|
|
362
|
+
const maxBorrowAmount = this.maxBorrowAmount().amount.value;
|
|
329
363
|
if (maxBorrowAmount <= MIN_STRATEGY_BORROW_AMOUNT) return;
|
|
330
364
|
const collateral = this.strategyTargetCollateral;
|
|
331
365
|
if (!collateral) return;
|
|
@@ -90,6 +90,9 @@ const require_onchain_market_credit_CreditFacadeV310BaseContract = require("./cr
|
|
|
90
90
|
const require_onchain_market_credit_CreditFacadeV310Contract = require("./credit/CreditFacadeV310Contract.js");
|
|
91
91
|
const require_onchain_market_math = require("./math.js");
|
|
92
92
|
const require_onchain_market_credit_CreditManagerV310Contract = require("./credit/CreditManagerV310Contract.js");
|
|
93
|
+
const require_onchain_market_rwa_midas_constants = require("./rwa/midas/constants.js");
|
|
94
|
+
const require_onchain_market_rwa_midas_MidasDegenNFT = require("./rwa/midas/MidasDegenNFT.js");
|
|
95
|
+
const require_onchain_market_rwa_securitize_constants = require("./rwa/securitize/constants.js");
|
|
93
96
|
const require_onchain_market_strategyName = require("./strategyName.js");
|
|
94
97
|
const require_onchain_market_credit_collateralUtils = require("./credit/collateralUtils.js");
|
|
95
98
|
const require_onchain_market_credit_CreditSuite = require("./credit/CreditSuite.js");
|
|
@@ -135,9 +138,8 @@ const require_onchain_market_zapper_IETHZapperContract = require("./zapper/IETHZ
|
|
|
135
138
|
const require_onchain_market_zapper_createZapper = require("./zapper/createZapper.js");
|
|
136
139
|
require("./zapper/index.js");
|
|
137
140
|
const require_onchain_market_MarketRegister = require("./MarketRegister.js");
|
|
138
|
-
const require_onchain_market_rwa_midas_constants = require("./rwa/midas/constants.js");
|
|
139
141
|
const require_onchain_market_rwa_midas_MidasLiquidatorContract = require("./rwa/midas/MidasLiquidatorContract.js");
|
|
140
|
-
const
|
|
142
|
+
const require_onchain_market_rwa_securitize_SecuritizeDegenNFT = require("./rwa/securitize/SecuritizeDegenNFT.js");
|
|
141
143
|
const require_onchain_market_rwa_securitize_SecuritizeLiquidatorContract = require("./rwa/securitize/SecuritizeLiquidatorContract.js");
|
|
142
144
|
const require_onchain_market_rwa_securitize_SecuritizeRWAFactory = require("./rwa/securitize/SecuritizeRWAFactory.js");
|
|
143
145
|
const require_onchain_market_rwa_RWARegistry = require("./rwa/RWARegistry.js");
|
|
@@ -173,6 +175,8 @@ exports.CurveUSDPriceFeedContract = require_onchain_market_pricefeeds_CurveUSDPr
|
|
|
173
175
|
exports.CurveV1AdapterStETHContract = require_onchain_market_adapters_contracts_CurveV1AdapterStETHContract.CurveV1AdapterStETHContract;
|
|
174
176
|
exports.CurveV1StableNGAdapterContract = require_onchain_market_adapters_contracts_CurveV1StableNGAdapterContract.CurveV1StableNGAdapterContract;
|
|
175
177
|
exports.DEFAULT_QUOTA_BUFFER_BPS = require_onchain_market_math.DEFAULT_QUOTA_BUFFER_BPS;
|
|
178
|
+
exports.DEGEN_NFT_MIDAS = require_onchain_market_rwa_midas_constants.DEGEN_NFT_MIDAS;
|
|
179
|
+
exports.DEGEN_NFT_SECURITIZE = require_onchain_market_rwa_securitize_constants.DEGEN_NFT_SECURITIZE;
|
|
176
180
|
exports.DaiUsdsAdapterContract = require_onchain_market_adapters_contracts_DaiUsdsAdapterContract.DaiUsdsAdapterContract;
|
|
177
181
|
exports.ERC4626AdapterContract = require_onchain_market_adapters_contracts_ERC4626AdapterContract.ERC4626AdapterContract;
|
|
178
182
|
exports.ERC4626ReferralAdapterContract = require_onchain_market_adapters_contracts_ERC4626ReferralAdapterContract.ERC4626ReferralAdapterContract;
|
|
@@ -196,6 +200,7 @@ exports.MellowDVVAdapterContract = require_onchain_market_adapters_contracts_Mel
|
|
|
196
200
|
exports.MellowERC4626VaultAdapterContract = require_onchain_market_adapters_contracts_MellowERC4626VaultAdapterContract.MellowERC4626VaultAdapterContract;
|
|
197
201
|
exports.MellowLRTPriceFeedContract = require_onchain_market_pricefeeds_MellowLRTPriceFeed.MellowLRTPriceFeedContract;
|
|
198
202
|
exports.MellowWrapperAdapterContract = require_onchain_market_adapters_contracts_MellowWrapperAdapterContract.MellowWrapperAdapterContract;
|
|
203
|
+
exports.MidasDegenNFT = require_onchain_market_rwa_midas_MidasDegenNFT.MidasDegenNFT;
|
|
199
204
|
exports.MidasGatewayAdapterContract = require_onchain_market_adapters_contracts_MidasGatewayAdapterContract.MidasGatewayAdapterContract;
|
|
200
205
|
exports.MidasIssuanceVaultAdapterContract = require_onchain_market_adapters_contracts_MidasIssuanceVaultAdapterContract.MidasIssuanceVaultAdapterContract;
|
|
201
206
|
exports.MidasLiquidatorContract = require_onchain_market_rwa_midas_MidasLiquidatorContract.MidasLiquidatorContract;
|
|
@@ -218,6 +223,7 @@ exports.RWARegistry = require_onchain_market_rwa_RWARegistry.RWARegistry;
|
|
|
218
223
|
exports.RWA_LIQUIDATOR_MIDAS = require_onchain_market_rwa_midas_constants.RWA_LIQUIDATOR_MIDAS;
|
|
219
224
|
exports.RWA_LIQUIDATOR_SECURITIZE = require_onchain_market_rwa_securitize_constants.RWA_LIQUIDATOR_SECURITIZE;
|
|
220
225
|
exports.RedstonePriceFeedContract = require_onchain_market_pricefeeds_RedstonePriceFeed.RedstonePriceFeedContract;
|
|
226
|
+
exports.SecuritizeDegenNFT = require_onchain_market_rwa_securitize_SecuritizeDegenNFT.SecuritizeDegenNFT;
|
|
221
227
|
exports.SecuritizeLiquidatorContract = require_onchain_market_rwa_securitize_SecuritizeLiquidatorContract.SecuritizeLiquidatorContract;
|
|
222
228
|
exports.SecuritizeOnRampAdapterContract = require_onchain_market_adapters_contracts_SecuritizeOnRampAdapterContract.SecuritizeOnRampAdapterContract;
|
|
223
229
|
exports.SecuritizeRWAFactory = require_onchain_market_rwa_securitize_SecuritizeRWAFactory.SecuritizeRWAFactory;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_abi_iVersion = require("../../../abi/iVersion.js");
|
|
3
|
+
const require_onchain_utils_bytes32ToString = require("../../utils/bytes32ToString.js");
|
|
4
|
+
require("../../utils/index.js");
|
|
5
|
+
const require_abi_rwa_iMidasDegenNFT = require("../../../abi/rwa/iMidasDegenNFT.js");
|
|
6
|
+
const require_onchain_market_rwa_midas_constants = require("./midas/constants.js");
|
|
7
|
+
const require_onchain_market_rwa_midas_MidasDegenNFT = require("./midas/MidasDegenNFT.js");
|
|
8
|
+
const require_onchain_market_rwa_securitize_constants = require("./securitize/constants.js");
|
|
9
|
+
let viem = require("viem");
|
|
10
|
+
//#region src/onchain/market/rwa/createDegenNFT.ts
|
|
11
|
+
/**
|
|
12
|
+
* Determines the KYC provider behind a degen NFT.
|
|
13
|
+
* Returns `undefined` for an allowlist, a legacy degen NFT, or a Securitize
|
|
14
|
+
* factory that is not loaded on this SDK.
|
|
15
|
+
*/
|
|
16
|
+
async function createDegenNFT(sdk, address) {
|
|
17
|
+
const [contractType, version, serialized] = await sdk.client.multicall({
|
|
18
|
+
allowFailure: true,
|
|
19
|
+
contracts: [
|
|
20
|
+
{
|
|
21
|
+
abi: require_abi_iVersion.iVersionAbi,
|
|
22
|
+
address,
|
|
23
|
+
functionName: "contractType"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
abi: require_abi_iVersion.iVersionAbi,
|
|
27
|
+
address,
|
|
28
|
+
functionName: "version"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
abi: require_abi_rwa_iMidasDegenNFT.iMidasDegenNFTAbi,
|
|
32
|
+
address,
|
|
33
|
+
functionName: "serialize"
|
|
34
|
+
}
|
|
35
|
+
]
|
|
36
|
+
});
|
|
37
|
+
if (contractType.status !== "success" || version.status !== "success" || serialized.status !== "success") return;
|
|
38
|
+
switch (require_onchain_utils_bytes32ToString.bytes32ToString(contractType.result)) {
|
|
39
|
+
case require_onchain_market_rwa_midas_constants.DEGEN_NFT_MIDAS: return new require_onchain_market_rwa_midas_MidasDegenNFT.MidasDegenNFT(sdk, {
|
|
40
|
+
addr: address,
|
|
41
|
+
version: version.result,
|
|
42
|
+
contractType: contractType.result,
|
|
43
|
+
serializedParams: serialized.result
|
|
44
|
+
});
|
|
45
|
+
case require_onchain_market_rwa_securitize_constants.DEGEN_NFT_SECURITIZE: {
|
|
46
|
+
const [factoryAddress] = (0, viem.decodeAbiParameters)([{ type: "address" }], serialized.result);
|
|
47
|
+
return sdk.rwa.factories.find((f) => (0, viem.isAddressEqual)(f.address, factoryAddress))?.degenNFT;
|
|
48
|
+
}
|
|
49
|
+
default: return;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
exports.createDegenNFT = createDegenNFT;
|
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require_onchain_market_rwa_midas_constants = require("./midas/constants.js");
|
|
3
|
+
const require_onchain_market_rwa_midas_MidasDegenNFT = require("./midas/MidasDegenNFT.js");
|
|
4
|
+
const require_onchain_market_rwa_securitize_constants = require("./securitize/constants.js");
|
|
3
5
|
const require_onchain_market_rwa_midas_MidasLiquidatorContract = require("./midas/MidasLiquidatorContract.js");
|
|
4
6
|
require("./midas/index.js");
|
|
5
|
-
const
|
|
7
|
+
const require_onchain_market_rwa_securitize_SecuritizeDegenNFT = require("./securitize/SecuritizeDegenNFT.js");
|
|
6
8
|
const require_onchain_market_rwa_securitize_SecuritizeLiquidatorContract = require("./securitize/SecuritizeLiquidatorContract.js");
|
|
7
9
|
const require_onchain_market_rwa_securitize_SecuritizeRWAFactory = require("./securitize/SecuritizeRWAFactory.js");
|
|
8
10
|
require("./securitize/index.js");
|
|
9
11
|
const require_onchain_market_rwa_RWARegistry = require("./RWARegistry.js");
|
|
10
12
|
const require_onchain_market_rwa_types = require("./types.js");
|
|
13
|
+
exports.DEGEN_NFT_MIDAS = require_onchain_market_rwa_midas_constants.DEGEN_NFT_MIDAS;
|
|
14
|
+
exports.DEGEN_NFT_SECURITIZE = require_onchain_market_rwa_securitize_constants.DEGEN_NFT_SECURITIZE;
|
|
15
|
+
exports.MidasDegenNFT = require_onchain_market_rwa_midas_MidasDegenNFT.MidasDegenNFT;
|
|
11
16
|
exports.MidasLiquidatorContract = require_onchain_market_rwa_midas_MidasLiquidatorContract.MidasLiquidatorContract;
|
|
12
17
|
exports.PHANTOM_TOKEN_MIDAS_REDEMPTION = require_onchain_market_rwa_midas_constants.PHANTOM_TOKEN_MIDAS_REDEMPTION;
|
|
13
18
|
exports.PHANTOM_TOKEN_SECURITIZE_REDEMPTION = require_onchain_market_rwa_securitize_constants.PHANTOM_TOKEN_SECURITIZE_REDEMPTION;
|
|
14
19
|
exports.RWARegistry = require_onchain_market_rwa_RWARegistry.RWARegistry;
|
|
15
20
|
exports.RWA_LIQUIDATOR_MIDAS = require_onchain_market_rwa_midas_constants.RWA_LIQUIDATOR_MIDAS;
|
|
16
21
|
exports.RWA_LIQUIDATOR_SECURITIZE = require_onchain_market_rwa_securitize_constants.RWA_LIQUIDATOR_SECURITIZE;
|
|
22
|
+
exports.SecuritizeDegenNFT = require_onchain_market_rwa_securitize_SecuritizeDegenNFT.SecuritizeDegenNFT;
|
|
17
23
|
exports.SecuritizeLiquidatorContract = require_onchain_market_rwa_securitize_SecuritizeLiquidatorContract.SecuritizeLiquidatorContract;
|
|
18
24
|
exports.SecuritizeRWAFactory = require_onchain_market_rwa_securitize_SecuritizeRWAFactory.SecuritizeRWAFactory;
|
|
19
25
|
exports.isRWAFactory = require_onchain_market_rwa_types.isRWAFactory;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_onchain_base_BaseContract = require("../../../base/BaseContract.js");
|
|
3
|
+
require("../../../base/index.js");
|
|
4
|
+
const require_onchain_market_adapters_abi_midas_iMidasGatewayV311 = require("../../adapters/abi/midas/iMidasGatewayV311.js");
|
|
5
|
+
require("../../adapters/abi/index.js");
|
|
6
|
+
const require_abi_rwa_iMidasDegenNFT = require("../../../../abi/rwa/iMidasDegenNFT.js");
|
|
7
|
+
require("./constants.js");
|
|
8
|
+
const require_abi_rwa_iMidasAccessControl = require("../../../../abi/rwa/iMidasAccessControl.js");
|
|
9
|
+
let viem = require("viem");
|
|
10
|
+
//#region src/onchain/market/rwa/midas/MidasDegenNFT.ts
|
|
11
|
+
const abi = require_abi_rwa_iMidasDegenNFT.iMidasDegenNFTAbi;
|
|
12
|
+
var MidasDegenNFT = class extends require_onchain_base_BaseContract.BaseContract {
|
|
13
|
+
protocol = "midas";
|
|
14
|
+
gateway;
|
|
15
|
+
accessControl;
|
|
16
|
+
greenlistedRole;
|
|
17
|
+
constructor(sdk, baseParams) {
|
|
18
|
+
super(sdk, {
|
|
19
|
+
...baseParams,
|
|
20
|
+
contractType: baseParams.contractType || "DEGEN_NFT::MIDAS",
|
|
21
|
+
name: "MidasDegenNFT",
|
|
22
|
+
abi
|
|
23
|
+
});
|
|
24
|
+
if (!baseParams.serializedParams) throw new Error(`MidasDegenNFT at ${baseParams.addr} is missing serializedParams`);
|
|
25
|
+
const [gateway, accessControl, greenlistedRole] = (0, viem.decodeAbiParameters)([
|
|
26
|
+
{ type: "address" },
|
|
27
|
+
{ type: "address" },
|
|
28
|
+
{ type: "bytes32" }
|
|
29
|
+
], baseParams.serializedParams);
|
|
30
|
+
this.gateway = gateway;
|
|
31
|
+
this.accessControl = accessControl;
|
|
32
|
+
this.greenlistedRole = greenlistedRole;
|
|
33
|
+
}
|
|
34
|
+
/** Same predicate `MidasDegenNFT.burn` reverts on; the mToken rides along in the batch. */
|
|
35
|
+
async checkKyc(wallet, _targetCollateral) {
|
|
36
|
+
const [eligible, token] = await this.client.multicall({
|
|
37
|
+
allowFailure: false,
|
|
38
|
+
contracts: [{
|
|
39
|
+
abi: require_abi_rwa_iMidasAccessControl.iMidasAccessControlAbi,
|
|
40
|
+
address: this.accessControl,
|
|
41
|
+
functionName: "hasRole",
|
|
42
|
+
args: [this.greenlistedRole, wallet]
|
|
43
|
+
}, {
|
|
44
|
+
abi: require_onchain_market_adapters_abi_midas_iMidasGatewayV311.iMidasGatewayV311Abi,
|
|
45
|
+
address: this.gateway,
|
|
46
|
+
functionName: "mToken"
|
|
47
|
+
}]
|
|
48
|
+
});
|
|
49
|
+
return {
|
|
50
|
+
eligible,
|
|
51
|
+
token
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
//#endregion
|
|
56
|
+
exports.MidasDegenNFT = MidasDegenNFT;
|
|
@@ -2,6 +2,8 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
2
2
|
//#region src/onchain/market/rwa/midas/constants.ts
|
|
3
3
|
const RWA_LIQUIDATOR_MIDAS = "RWA_LIQUIDATOR::MIDAS";
|
|
4
4
|
const PHANTOM_TOKEN_MIDAS_REDEMPTION = "PHANTOM_TOKEN::MIDAS_REDEMPTION";
|
|
5
|
+
const DEGEN_NFT_MIDAS = "DEGEN_NFT::MIDAS";
|
|
5
6
|
//#endregion
|
|
7
|
+
exports.DEGEN_NFT_MIDAS = DEGEN_NFT_MIDAS;
|
|
6
8
|
exports.PHANTOM_TOKEN_MIDAS_REDEMPTION = PHANTOM_TOKEN_MIDAS_REDEMPTION;
|
|
7
9
|
exports.RWA_LIQUIDATOR_MIDAS = RWA_LIQUIDATOR_MIDAS;
|