@bosonprotocol/agentic-commerce 1.0.0-alpha.59 → 1.0.0-alpha.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -102
- package/dist/boson/goat-sdk-plugin/boson-protocol-plugin.service.d.ts +9 -0
- package/dist/boson/goat-sdk-plugin/boson-protocol-plugin.service.d.ts.map +1 -1
- package/dist/boson/goat-sdk-plugin/boson-protocol-plugin.service.js +25 -0
- package/dist/boson/goat-sdk-plugin/boson-protocol-plugin.service.js.map +1 -1
- package/dist/boson/goat-sdk-plugin/examples/anthropic.js +1 -1
- package/dist/boson/goat-sdk-plugin/examples/anthropic.js.map +1 -1
- package/dist/boson/mcp-client/index.d.ts +178 -0
- package/dist/boson/mcp-client/index.d.ts.map +1 -1
- package/dist/boson/mcp-client/index.js +9 -0
- package/dist/boson/mcp-client/index.js.map +1 -1
- package/dist/boson/mcp-server/filters/configIdsFilter.d.ts +2 -0
- package/dist/boson/mcp-server/filters/configIdsFilter.d.ts.map +1 -0
- package/dist/boson/mcp-server/filters/configIdsFilter.js +5 -0
- package/dist/boson/mcp-server/filters/configIdsFilter.js.map +1 -0
- package/dist/boson/mcp-server/index.d.ts.map +1 -1
- package/dist/boson/mcp-server/index.js +30 -2
- package/dist/boson/mcp-server/index.js.map +1 -1
- package/dist/boson/mcp-server/resourceParameterTypes.d.ts +4 -0
- package/dist/boson/mcp-server/resourceParameterTypes.d.ts.map +1 -1
- package/dist/boson/mcp-server/resourceParameterTypes.js +5 -1
- package/dist/boson/mcp-server/resourceParameterTypes.js.map +1 -1
- package/dist/boson/mcp-server/validation.d.ts +7 -0
- package/dist/boson/mcp-server/validation.d.ts.map +1 -1
- package/dist/boson/mcp-server/validation.js +2 -1
- package/dist/boson/mcp-server/validation.js.map +1 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -6
- package/dist/index.js.map +1 -1
- package/package.json +4 -25
- package/dist/fermion/goat-sdk-plugin/index.d.ts +0 -3
- package/dist/fermion/goat-sdk-plugin/index.d.ts.map +0 -1
- package/dist/fermion/goat-sdk-plugin/index.js +0 -7
- package/dist/fermion/goat-sdk-plugin/index.js.map +0 -1
- package/dist/fermion/index.d.ts +0 -3
- package/dist/fermion/index.d.ts.map +0 -1
- package/dist/fermion/index.js +0 -8
- package/dist/fermion/index.js.map +0 -1
- package/dist/fermion/mcp-client/index.d.ts +0 -583
- package/dist/fermion/mcp-client/index.d.ts.map +0 -1
- package/dist/fermion/mcp-client/index.js +0 -32
- package/dist/fermion/mcp-client/index.js.map +0 -1
- package/dist/fermion/mcp-server/handlers/custody.d.ts +0 -10
- package/dist/fermion/mcp-server/handlers/custody.d.ts.map +0 -1
- package/dist/fermion/mcp-server/handlers/custody.js +0 -126
- package/dist/fermion/mcp-server/handlers/custody.js.map +0 -1
- package/dist/fermion/mcp-server/handlers/email.d.ts +0 -19
- package/dist/fermion/mcp-server/handlers/email.d.ts.map +0 -1
- package/dist/fermion/mcp-server/handlers/email.js +0 -76
- package/dist/fermion/mcp-server/handlers/email.js.map +0 -1
- package/dist/fermion/mcp-server/handlers/funds.d.ts +0 -26
- package/dist/fermion/mcp-server/handlers/funds.d.ts.map +0 -1
- package/dist/fermion/mcp-server/handlers/funds.js +0 -112
- package/dist/fermion/mcp-server/handlers/funds.js.map +0 -1
- package/dist/fermion/mcp-server/handlers/listings.d.ts +0 -27
- package/dist/fermion/mcp-server/handlers/listings.d.ts.map +0 -1
- package/dist/fermion/mcp-server/handlers/listings.js +0 -119
- package/dist/fermion/mcp-server/handlers/listings.js.map +0 -1
- package/dist/fermion/mcp-server/handlers/offers.d.ts +0 -9
- package/dist/fermion/mcp-server/handlers/offers.d.ts.map +0 -1
- package/dist/fermion/mcp-server/handlers/offers.js +0 -132
- package/dist/fermion/mcp-server/handlers/offers.js.map +0 -1
- package/dist/fermion/mcp-server/handlers/sdk.d.ts +0 -17
- package/dist/fermion/mcp-server/handlers/sdk.d.ts.map +0 -1
- package/dist/fermion/mcp-server/handlers/sdk.js +0 -88
- package/dist/fermion/mcp-server/handlers/sdk.js.map +0 -1
- package/dist/fermion/mcp-server/handlers/transactions.d.ts +0 -36
- package/dist/fermion/mcp-server/handlers/transactions.d.ts.map +0 -1
- package/dist/fermion/mcp-server/handlers/transactions.js +0 -61
- package/dist/fermion/mcp-server/handlers/transactions.js.map +0 -1
- package/dist/fermion/mcp-server/index.d.ts +0 -14
- package/dist/fermion/mcp-server/index.d.ts.map +0 -1
- package/dist/fermion/mcp-server/index.js +0 -442
- package/dist/fermion/mcp-server/index.js.map +0 -1
- package/dist/fermion/mcp-server/lib/extractFnfData.d.ts +0 -48
- package/dist/fermion/mcp-server/lib/extractFnfData.d.ts.map +0 -1
- package/dist/fermion/mcp-server/lib/extractFnfData.js +0 -38
- package/dist/fermion/mcp-server/lib/extractFnfData.js.map +0 -1
- package/dist/fermion/mcp-server/schemas.d.ts +0 -3
- package/dist/fermion/mcp-server/schemas.d.ts.map +0 -1
- package/dist/fermion/mcp-server/schemas.js +0 -41
- package/dist/fermion/mcp-server/schemas.js.map +0 -1
- package/dist/fermion/mcp-server/validation.d.ts +0 -599
- package/dist/fermion/mcp-server/validation.d.ts.map +0 -1
- package/dist/fermion/mcp-server/validation.js +0 -220
- package/dist/fermion/mcp-server/validation.js.map +0 -1
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { AgentAdapter } from "@bosonprotocol/ethers-sdk";
|
|
2
|
-
import { CoreSDK } from "@fermionprotocol/core-sdk";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { ReturnTypeMcp } from "../../../common/mcp-server/mcpTypes.js";
|
|
5
|
-
import { checkInValidation, checkOutValidation, requestCheckOutValidation, topUpCustodianVaultValidation } from "../validation.js";
|
|
6
|
-
export declare function createCheckInHandler(getSDK: () => CoreSDK<AgentAdapter> | null): (params: z.infer<typeof checkInValidation>) => Promise<ReturnTypeMcp>;
|
|
7
|
-
export declare function createCheckOutHandler(getSDK: () => CoreSDK<AgentAdapter> | null): (params: z.infer<typeof checkOutValidation>) => Promise<ReturnTypeMcp>;
|
|
8
|
-
export declare function createRequestCheckOutHandler(getSDK: () => CoreSDK<AgentAdapter> | null): (params: z.infer<typeof requestCheckOutValidation>) => Promise<ReturnTypeMcp>;
|
|
9
|
-
export declare function createTopUpCustodianVaultHandler(getSDK: () => CoreSDK<AgentAdapter> | null): (params: z.infer<typeof topUpCustodianVaultValidation>) => Promise<ReturnTypeMcp>;
|
|
10
|
-
//# sourceMappingURL=custody.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"custody.d.ts","sourceRoot":"","sources":["../../../../src/fermion/mcp-server/handlers/custody.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,yBAAyB,EACzB,6BAA6B,EAC9B,MAAM,kBAAkB,CAAC;AAE1B,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,IAGxC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,KACxC,OAAO,CAAC,aAAa,CAAC,CA6B1B;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,IAGxC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,KACzC,OAAO,CAAC,aAAa,CAAC,CA6B1B;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,IAGxC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,KAChD,OAAO,CAAC,aAAa,CAAC,CA6B1B;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,IAGxC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,KACpD,OAAO,CAAC,aAAa,CAAC,CAiC1B"}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createCheckInHandler = createCheckInHandler;
|
|
4
|
-
exports.createCheckOutHandler = createCheckOutHandler;
|
|
5
|
-
exports.createRequestCheckOutHandler = createRequestCheckOutHandler;
|
|
6
|
-
exports.createTopUpCustodianVaultHandler = createTopUpCustodianVaultHandler;
|
|
7
|
-
const errorHandling_js_1 = require("../../../common/mcp-server/errorHandling.js");
|
|
8
|
-
const jsonUtils_js_1 = require("../../../common/mcp-server/jsonUtils.js");
|
|
9
|
-
const logger_js_1 = require("../../../common/mcp-server/logger.js");
|
|
10
|
-
function createCheckInHandler(getSDK) {
|
|
11
|
-
return async function checkIn(params) {
|
|
12
|
-
try {
|
|
13
|
-
const coreSDK = getSDK();
|
|
14
|
-
if (!coreSDK) {
|
|
15
|
-
throw new Error("Please initialize Fermion Protocol SDK first");
|
|
16
|
-
}
|
|
17
|
-
const { tokenId } = params;
|
|
18
|
-
(0, logger_js_1.log)("Checking in token:", (0, jsonUtils_js_1.stringifyWithBigInt)(params));
|
|
19
|
-
const transactionData = await coreSDK.checkIn(tokenId, {
|
|
20
|
-
returnTxInfo: true,
|
|
21
|
-
});
|
|
22
|
-
return {
|
|
23
|
-
content: [
|
|
24
|
-
{
|
|
25
|
-
type: "text",
|
|
26
|
-
text: (0, jsonUtils_js_1.stringifyWithBigInt)({
|
|
27
|
-
success: true,
|
|
28
|
-
transactionData,
|
|
29
|
-
}),
|
|
30
|
-
},
|
|
31
|
-
],
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
(0, errorHandling_js_1.logAndThrowError)(error, "check in");
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
function createCheckOutHandler(getSDK) {
|
|
40
|
-
return async function checkOut(params) {
|
|
41
|
-
try {
|
|
42
|
-
const coreSDK = getSDK();
|
|
43
|
-
if (!coreSDK) {
|
|
44
|
-
throw new Error("Please initialize Fermion Protocol SDK first");
|
|
45
|
-
}
|
|
46
|
-
const { tokenId } = params;
|
|
47
|
-
(0, logger_js_1.log)("Checking out token:", (0, jsonUtils_js_1.stringifyWithBigInt)(params));
|
|
48
|
-
const transactionData = await coreSDK.checkOut(tokenId, {
|
|
49
|
-
returnTxInfo: true,
|
|
50
|
-
});
|
|
51
|
-
return {
|
|
52
|
-
content: [
|
|
53
|
-
{
|
|
54
|
-
type: "text",
|
|
55
|
-
text: (0, jsonUtils_js_1.stringifyWithBigInt)({
|
|
56
|
-
success: true,
|
|
57
|
-
transactionData,
|
|
58
|
-
}),
|
|
59
|
-
},
|
|
60
|
-
],
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
catch (error) {
|
|
64
|
-
(0, errorHandling_js_1.logAndThrowError)(error, "check out");
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
function createRequestCheckOutHandler(getSDK) {
|
|
69
|
-
return async function requestCheckOut(params) {
|
|
70
|
-
try {
|
|
71
|
-
const coreSDK = getSDK();
|
|
72
|
-
if (!coreSDK) {
|
|
73
|
-
throw new Error("Please initialize Fermion Protocol SDK first");
|
|
74
|
-
}
|
|
75
|
-
const { tokenId } = params;
|
|
76
|
-
(0, logger_js_1.log)("Requesting check out for token:", (0, jsonUtils_js_1.stringifyWithBigInt)(params));
|
|
77
|
-
const transactionData = await coreSDK.requestCheckOut(tokenId, {
|
|
78
|
-
returnTxInfo: true,
|
|
79
|
-
});
|
|
80
|
-
return {
|
|
81
|
-
content: [
|
|
82
|
-
{
|
|
83
|
-
type: "text",
|
|
84
|
-
text: (0, jsonUtils_js_1.stringifyWithBigInt)({
|
|
85
|
-
success: true,
|
|
86
|
-
transactionData,
|
|
87
|
-
}),
|
|
88
|
-
},
|
|
89
|
-
],
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
catch (error) {
|
|
93
|
-
(0, errorHandling_js_1.logAndThrowError)(error, "request check out");
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
function createTopUpCustodianVaultHandler(getSDK) {
|
|
98
|
-
return async function topUpCustodianVault(params) {
|
|
99
|
-
try {
|
|
100
|
-
const coreSDK = getSDK();
|
|
101
|
-
if (!coreSDK) {
|
|
102
|
-
throw new Error("Please initialize Fermion Protocol SDK first");
|
|
103
|
-
}
|
|
104
|
-
const { tokenOrOfferId, amount } = params;
|
|
105
|
-
(0, logger_js_1.log)("Topping up custodian vault:", (0, jsonUtils_js_1.stringifyWithBigInt)(params));
|
|
106
|
-
const transactionData = await coreSDK.topUpCustodianVault(tokenOrOfferId, amount, {
|
|
107
|
-
returnTxInfo: true,
|
|
108
|
-
});
|
|
109
|
-
return {
|
|
110
|
-
content: [
|
|
111
|
-
{
|
|
112
|
-
type: "text",
|
|
113
|
-
text: (0, jsonUtils_js_1.stringifyWithBigInt)({
|
|
114
|
-
success: true,
|
|
115
|
-
transactionData,
|
|
116
|
-
}),
|
|
117
|
-
},
|
|
118
|
-
],
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
catch (error) {
|
|
122
|
-
(0, errorHandling_js_1.logAndThrowError)(error, "top up custodian vault");
|
|
123
|
-
}
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
//# sourceMappingURL=custody.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"custody.js","sourceRoot":"","sources":["../../../../src/fermion/mcp-server/handlers/custody.ts"],"names":[],"mappings":";;AAeA,oDAkCC;AAED,sDAkCC;AAED,oEAkCC;AAED,4EAsCC;AA7JD,kFAA+E;AAC/E,0EAA8E;AAC9E,oEAA2D;AAS3D,SAAgB,oBAAoB,CAClC,MAA0C;IAE1C,OAAO,KAAK,UAAU,OAAO,CAC3B,MAAyC;QAEzC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;YAE3B,IAAA,eAAG,EAAC,oBAAoB,EAAE,IAAA,kCAAmB,EAAC,MAAM,CAAC,CAAC,CAAC;YAEvD,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE;gBACrD,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAA,kCAAmB,EAAC;4BACxB,OAAO,EAAE,IAAI;4BACb,eAAe;yBAChB,CAAC;qBACH;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,mCAAgB,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACtC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,qBAAqB,CACnC,MAA0C;IAE1C,OAAO,KAAK,UAAU,QAAQ,CAC5B,MAA0C;QAE1C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;YAE3B,IAAA,eAAG,EAAC,qBAAqB,EAAE,IAAA,kCAAmB,EAAC,MAAM,CAAC,CAAC,CAAC;YAExD,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE;gBACtD,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAA,kCAAmB,EAAC;4BACxB,OAAO,EAAE,IAAI;4BACb,eAAe;yBAChB,CAAC;qBACH;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,mCAAgB,EAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,4BAA4B,CAC1C,MAA0C;IAE1C,OAAO,KAAK,UAAU,eAAe,CACnC,MAAiD;QAEjD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;YACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;YAE3B,IAAA,eAAG,EAAC,iCAAiC,EAAE,IAAA,kCAAmB,EAAC,MAAM,CAAC,CAAC,CAAC;YAEpE,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,OAAO,EAAE;gBAC7D,YAAY,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAA,kCAAmB,EAAC;4BACxB,OAAO,EAAE,IAAI;4BACb,eAAe;yBAChB,CAAC;qBACH;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,mCAAgB,EAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,SAAgB,gCAAgC,CAC9C,MAA0C;IAE1C,OAAO,KAAK,UAAU,mBAAmB,CACvC,MAAqD;QAErD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAClE,CAAC;YACD,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;YAE1C,IAAA,eAAG,EAAC,6BAA6B,EAAE,IAAA,kCAAmB,EAAC,MAAM,CAAC,CAAC,CAAC;YAEhE,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,mBAAmB,CACvD,cAAc,EACd,MAAM,EACN;gBACE,YAAY,EAAE,IAAI;aACnB,CACF,CAAC;YAEF,OAAO;gBACL,OAAO,EAAE;oBACP;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI,EAAE,IAAA,kCAAmB,EAAC;4BACxB,OAAO,EAAE,IAAI;4BACb,eAAe;yBAChB,CAAC;qBACH;iBACF;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAA,mCAAgB,EAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC;QACpD,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { CoreSDK } from "@fermionprotocol/core-sdk";
|
|
2
|
-
import { SendToCustodianParams, SendToVerifierParams } from "./transactions";
|
|
3
|
-
export interface EmailGenerationParams {
|
|
4
|
-
tokenId: string;
|
|
5
|
-
entityId: string;
|
|
6
|
-
}
|
|
7
|
-
interface EmailResult {
|
|
8
|
-
success: boolean;
|
|
9
|
-
emailParams: {
|
|
10
|
-
to: string;
|
|
11
|
-
subject: string;
|
|
12
|
-
body: string;
|
|
13
|
-
};
|
|
14
|
-
txData: unknown;
|
|
15
|
-
}
|
|
16
|
-
export declare function generateAssetVerificationEmail(params: EmailGenerationParams, coreSDK: CoreSDK, sendToVerifierHandler: (params: SendToVerifierParams) => Promise<unknown>): Promise<EmailResult>;
|
|
17
|
-
export declare function generateAssetDeliveryEmail(params: EmailGenerationParams, coreSDK: CoreSDK, sendToCustodianHandler: (params: SendToCustodianParams) => Promise<unknown>): Promise<EmailResult>;
|
|
18
|
-
export {};
|
|
19
|
-
//# sourceMappingURL=email.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../../src/fermion/mcp-server/handlers/email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAGpD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAE7E,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE;QACX,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,8BAA8B,CAClD,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,OAAO,EAChB,qBAAqB,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,OAAO,CAAC,GACxE,OAAO,CAAC,WAAW,CAAC,CAsCtB;AAED,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,qBAAqB,EAC7B,OAAO,EAAE,OAAO,EAChB,sBAAsB,EAAE,CAAC,MAAM,EAAE,qBAAqB,KAAK,OAAO,CAAC,OAAO,CAAC,GAC1E,OAAO,CAAC,WAAW,CAAC,CA6CtB"}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.generateAssetVerificationEmail = generateAssetVerificationEmail;
|
|
4
|
-
exports.generateAssetDeliveryEmail = generateAssetDeliveryEmail;
|
|
5
|
-
const extractFnfData_1 = require("../lib/extractFnfData");
|
|
6
|
-
async function generateAssetVerificationEmail(params, coreSDK, sendToVerifierHandler) {
|
|
7
|
-
const { tokenId, entityId } = params;
|
|
8
|
-
const fnft = await coreSDK.getFNFTById(tokenId, {
|
|
9
|
-
includeSeller: true,
|
|
10
|
-
includeVerifier: true,
|
|
11
|
-
});
|
|
12
|
-
const { verifierEmail, fnftId, verifierShippingAddress, sellerName } = (0, extractFnfData_1.extractFnftData)({
|
|
13
|
-
fnft,
|
|
14
|
-
});
|
|
15
|
-
// Call the sendToVerifier transaction handler
|
|
16
|
-
const txData = await sendToVerifierHandler({
|
|
17
|
-
entityId,
|
|
18
|
-
fnftId,
|
|
19
|
-
});
|
|
20
|
-
const emailParams = {
|
|
21
|
-
to: verifierEmail,
|
|
22
|
-
subject: "Fermion asset verification: pre-booking of delivery date",
|
|
23
|
-
body: `We would like to arrange the delivery of an asset listed on Fermion for your authentication services. Please confirm the delivery details, including the shipping address and the proposed delivery date.
|
|
24
|
-
|
|
25
|
-
fNFT ID: ${fnftId}
|
|
26
|
-
Seller name: ${sellerName}
|
|
27
|
-
Proposed date & time of delivery: [Specify a date & time for delivery]
|
|
28
|
-
Shipping address:
|
|
29
|
-
${verifierShippingAddress?.streetName}, ${verifierShippingAddress?.number}
|
|
30
|
-
${verifierShippingAddress?.zip}, ${verifierShippingAddress?.city}
|
|
31
|
-
${verifierShippingAddress?.state}
|
|
32
|
-
${verifierShippingAddress?.country}`,
|
|
33
|
-
};
|
|
34
|
-
return {
|
|
35
|
-
success: true,
|
|
36
|
-
emailParams,
|
|
37
|
-
txData,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
async function generateAssetDeliveryEmail(params, coreSDK, sendToCustodianHandler) {
|
|
41
|
-
const { tokenId, entityId } = params;
|
|
42
|
-
const fnft = await coreSDK.getFNFTById(tokenId, {
|
|
43
|
-
includeSeller: true,
|
|
44
|
-
includeVerifier: true,
|
|
45
|
-
includeCustodian: true,
|
|
46
|
-
});
|
|
47
|
-
const { custodianEmail, fnftId, custodianShippingAddress, verifierName, sellerName, } = (0, extractFnfData_1.extractFnftData)({
|
|
48
|
-
fnft,
|
|
49
|
-
});
|
|
50
|
-
// Call the sendToCustodian transaction handler
|
|
51
|
-
const txData = await sendToCustodianHandler({
|
|
52
|
-
entityId,
|
|
53
|
-
fnftId,
|
|
54
|
-
});
|
|
55
|
-
const emailParams = {
|
|
56
|
-
to: custodianEmail,
|
|
57
|
-
subject: "Fermion asset delivery: pre-booking",
|
|
58
|
-
body: `We would like to arrange for the delivery of an asset listed on Fermion for your custody services. Please confirm the details below:
|
|
59
|
-
|
|
60
|
-
fNFT ID: ${fnftId}
|
|
61
|
-
Seller name: ${sellerName}
|
|
62
|
-
Verifier name: ${verifierName}
|
|
63
|
-
Proposed date & time of delivery: [Specify a date & time for delivery]
|
|
64
|
-
Shipping address:
|
|
65
|
-
${custodianShippingAddress?.streetName}, ${custodianShippingAddress?.number}
|
|
66
|
-
${custodianShippingAddress?.zip}, ${custodianShippingAddress?.city}
|
|
67
|
-
${custodianShippingAddress?.state}
|
|
68
|
-
${custodianShippingAddress?.country}`,
|
|
69
|
-
};
|
|
70
|
-
return {
|
|
71
|
-
success: true,
|
|
72
|
-
emailParams,
|
|
73
|
-
txData,
|
|
74
|
-
};
|
|
75
|
-
}
|
|
76
|
-
//# sourceMappingURL=email.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../../../src/fermion/mcp-server/handlers/email.ts"],"names":[],"mappings":";;AAoBA,wEA0CC;AAED,gEAiDC;AA/GD,0DAAwD;AAkBjD,KAAK,UAAU,8BAA8B,CAClD,MAA6B,EAC7B,OAAgB,EAChB,qBAAyE;IAEzE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAErC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE;QAC9C,aAAa,EAAE,IAAI;QACnB,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IACH,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,uBAAuB,EAAE,UAAU,EAAE,GAClE,IAAA,gCAAe,EAAC;QACd,IAAI;KACL,CAAC,CAAC;IAEL,8CAA8C;IAC9C,MAAM,MAAM,GAAG,MAAM,qBAAqB,CAAC;QACzC,QAAQ;QACR,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG;QAClB,EAAE,EAAE,aAAa;QACjB,OAAO,EAAE,0DAA0D;QACnE,IAAI,EAAE;;WAEC,MAAM;eACF,UAAU;;;UAGf,uBAAuB,EAAE,UAAU,KAAK,uBAAuB,EAAE,MAAM;UACvE,uBAAuB,EAAE,GAAG,KAAK,uBAAuB,EAAE,IAAI;UAC9D,uBAAuB,EAAE,KAAK;UAC9B,uBAAuB,EAAE,OAAO,EAAE;KACzC,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,IAAI;QACb,WAAW;QACX,MAAM;KACP,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,0BAA0B,CAC9C,MAA6B,EAC7B,OAAgB,EAChB,sBAA2E;IAE3E,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;IAErC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE;QAC9C,aAAa,EAAE,IAAI;QACnB,eAAe,EAAE,IAAI;QACrB,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;IACH,MAAM,EACJ,cAAc,EACd,MAAM,EACN,wBAAwB,EACxB,YAAY,EACZ,UAAU,GACX,GAAG,IAAA,gCAAe,EAAC;QAClB,IAAI;KACL,CAAC,CAAC;IAEH,+CAA+C;IAC/C,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC;QAC1C,QAAQ;QACR,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG;QAClB,EAAE,EAAE,cAAc;QAClB,OAAO,EAAE,qCAAqC;QAC9C,IAAI,EAAE;;WAEC,MAAM;eACF,UAAU;iBACR,YAAY;;;UAGnB,wBAAwB,EAAE,UAAU,KAAK,wBAAwB,EAAE,MAAM;UACzE,wBAAwB,EAAE,GAAG,KAAK,wBAAwB,EAAE,IAAI;UAChE,wBAAwB,EAAE,KAAK;UAC/B,wBAAwB,EAAE,OAAO,EAAE;KAC1C,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,IAAI;QACb,WAAW;QACX,MAAM;KACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { AgentAdapter } from "@bosonprotocol/ethers-sdk";
|
|
2
|
-
import { CoreSDK } from "@fermionprotocol/core-sdk";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { ReturnTypeMcp } from "../../../common/mcp-server/mcpTypes.js";
|
|
5
|
-
import { depositFundsValidation, withdrawFundsValidation } from "../validation.js";
|
|
6
|
-
export declare function createWithdrawFundsHandler(getSDK: () => CoreSDK<AgentAdapter> | null): (params: z.infer<typeof withdrawFundsValidation>) => Promise<ReturnTypeMcp>;
|
|
7
|
-
export declare function createDepositFundsHandler(getSDK: () => CoreSDK<AgentAdapter> | null): (params: z.infer<typeof depositFundsValidation>) => Promise<ReturnTypeMcp>;
|
|
8
|
-
export interface SubmitTaxParams {
|
|
9
|
-
tokenId: string;
|
|
10
|
-
vatRequired?: boolean;
|
|
11
|
-
vatAmount?: string | number | bigint;
|
|
12
|
-
maxTaxAmount?: string | number | bigint;
|
|
13
|
-
}
|
|
14
|
-
export declare function createSubmitTaxHandler(getSDK: () => CoreSDK<AgentAdapter> | null): (params: SubmitTaxParams) => Promise<{
|
|
15
|
-
functionName: string;
|
|
16
|
-
to?: string;
|
|
17
|
-
from?: string;
|
|
18
|
-
nonce?: number;
|
|
19
|
-
data?: string;
|
|
20
|
-
value?: import("ethers").BigNumberish;
|
|
21
|
-
gasLimit?: import("ethers").BigNumberish;
|
|
22
|
-
gasPrice?: import("ethers").BigNumberish;
|
|
23
|
-
chainId?: number;
|
|
24
|
-
}>;
|
|
25
|
-
export declare function createAvailableFundsHandler(getSDK: () => CoreSDK<AgentAdapter> | null): (entityId: string, tokenAddress: string) => Promise<string>;
|
|
26
|
-
//# sourceMappingURL=funds.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"funds.d.ts","sourceRoot":"","sources":["../../../../src/fermion/mcp-server/handlers/funds.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,kBAAkB,CAAC;AAE1B,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,IAGxC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,KAC9C,OAAO,CAAC,aAAa,CAAC,CAkC1B;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,IAGxC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,KAC7C,OAAO,CAAC,aAAa,CAAC,CAkC1B;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;CACzC;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,IAEH,QAAQ,eAAe;;;;;;;;;;GAgC/D;AAED,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,IAGxC,UAAU,MAAM,EAChB,cAAc,MAAM,KACnB,OAAO,CAAC,MAAM,CAAC,CAsBnB"}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createWithdrawFundsHandler = createWithdrawFundsHandler;
|
|
4
|
-
exports.createDepositFundsHandler = createDepositFundsHandler;
|
|
5
|
-
exports.createSubmitTaxHandler = createSubmitTaxHandler;
|
|
6
|
-
exports.createAvailableFundsHandler = createAvailableFundsHandler;
|
|
7
|
-
const errorHandling_js_1 = require("../../../common/mcp-server/errorHandling.js");
|
|
8
|
-
const jsonUtils_js_1 = require("../../../common/mcp-server/jsonUtils.js");
|
|
9
|
-
const logger_js_1 = require("../../../common/mcp-server/logger.js");
|
|
10
|
-
function createWithdrawFundsHandler(getSDK) {
|
|
11
|
-
return async function withdrawFunds(params) {
|
|
12
|
-
try {
|
|
13
|
-
const coreSDK = getSDK();
|
|
14
|
-
if (!coreSDK) {
|
|
15
|
-
throw new Error("Please initialize Fermion Protocol SDK first");
|
|
16
|
-
}
|
|
17
|
-
const { entityId, treasuryAddress, list } = params;
|
|
18
|
-
(0, logger_js_1.log)("Withdrawing funds:", (0, jsonUtils_js_1.stringifyWithBigInt)(params));
|
|
19
|
-
const transactionData = await coreSDK.withdrawFunds(entityId, treasuryAddress, list, {
|
|
20
|
-
returnTxInfo: true,
|
|
21
|
-
});
|
|
22
|
-
return {
|
|
23
|
-
content: [
|
|
24
|
-
{
|
|
25
|
-
type: "text",
|
|
26
|
-
text: (0, jsonUtils_js_1.stringifyWithBigInt)({
|
|
27
|
-
success: true,
|
|
28
|
-
transactionData,
|
|
29
|
-
}),
|
|
30
|
-
},
|
|
31
|
-
],
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
catch (error) {
|
|
35
|
-
(0, errorHandling_js_1.logAndThrowError)(error, "withdraw funds");
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
function createDepositFundsHandler(getSDK) {
|
|
40
|
-
return async function depositFunds(params) {
|
|
41
|
-
try {
|
|
42
|
-
const coreSDK = getSDK();
|
|
43
|
-
if (!coreSDK) {
|
|
44
|
-
throw new Error("Please initialize Fermion Protocol SDK first");
|
|
45
|
-
}
|
|
46
|
-
const { entityId, tokenAddress, amount } = params;
|
|
47
|
-
(0, logger_js_1.log)("Depositing funds:", (0, jsonUtils_js_1.stringifyWithBigInt)(params));
|
|
48
|
-
const transactionData = await coreSDK.depositFunds(entityId, tokenAddress, amount, {
|
|
49
|
-
returnTxInfo: true,
|
|
50
|
-
});
|
|
51
|
-
return {
|
|
52
|
-
content: [
|
|
53
|
-
{
|
|
54
|
-
type: "text",
|
|
55
|
-
text: (0, jsonUtils_js_1.stringifyWithBigInt)({
|
|
56
|
-
success: true,
|
|
57
|
-
transactionData,
|
|
58
|
-
}),
|
|
59
|
-
},
|
|
60
|
-
],
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
catch (error) {
|
|
64
|
-
(0, errorHandling_js_1.logAndThrowError)(error, "deposit funds");
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
}
|
|
68
|
-
function createSubmitTaxHandler(getSDK) {
|
|
69
|
-
return async function submitTaxHandler(params) {
|
|
70
|
-
const coreSDK = getSDK();
|
|
71
|
-
if (!coreSDK) {
|
|
72
|
-
throw new Error("SDK not initialized. Call initialize_sdk first.");
|
|
73
|
-
}
|
|
74
|
-
const { tokenId, vatRequired = false, vatAmount, maxTaxAmount } = params;
|
|
75
|
-
if (vatRequired) {
|
|
76
|
-
const transactionData = await coreSDK.submitTaxAmount(tokenId, vatAmount, {
|
|
77
|
-
returnTxInfo: true,
|
|
78
|
-
});
|
|
79
|
-
return {
|
|
80
|
-
...transactionData,
|
|
81
|
-
functionName: "submitTaxAmount",
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
const transactionData = await coreSDK.clearCheckoutRequest(tokenId, maxTaxAmount, { returnTxInfo: true });
|
|
86
|
-
return {
|
|
87
|
-
...transactionData,
|
|
88
|
-
functionName: "clearCheckoutRequest",
|
|
89
|
-
};
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
function createAvailableFundsHandler(getSDK) {
|
|
94
|
-
return async function getAvailableFunds(entityId, tokenAddress) {
|
|
95
|
-
const coreSDK = getSDK();
|
|
96
|
-
if (!coreSDK) {
|
|
97
|
-
throw new Error("SDK not initialized. Call initialize_sdk first.");
|
|
98
|
-
}
|
|
99
|
-
try {
|
|
100
|
-
(0, logger_js_1.log)("Getting available funds for:", {
|
|
101
|
-
entityId,
|
|
102
|
-
tokenAddress,
|
|
103
|
-
});
|
|
104
|
-
const availableFunds = await coreSDK.getAvailableFunds(entityId, tokenAddress.toLowerCase());
|
|
105
|
-
return availableFunds;
|
|
106
|
-
}
|
|
107
|
-
catch (error) {
|
|
108
|
-
(0, errorHandling_js_1.logAndThrowError)(error, "get available funds");
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
}
|
|
112
|
-
//# sourceMappingURL=funds.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"funds.js","sourceRoot":"","sources":["../../../../src/fermion/mcp-server/handlers/funds.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { CoreSDK, ProtocolConfig } from "@fermionprotocol/core-sdk";
|
|
2
|
-
import { OrderComponents } from "@opensea/seaport-js/lib/types";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { ReturnTypeMcp } from "../../../common/mcp-server/mcpTypes.js";
|
|
5
|
-
import { cancelFixedPriceOrdersValidation, createFixedPriceOrderValidation, getSeaportOrdersValidation } from "../validation.js";
|
|
6
|
-
export type CreateFixedPriceOrderParams = z.infer<typeof createFixedPriceOrderValidation>;
|
|
7
|
-
export type CancelFixedPriceOrdersParams = {
|
|
8
|
-
offerId: z.infer<typeof cancelFixedPriceOrdersValidation>["offerId"];
|
|
9
|
-
orders: OrderComponents[];
|
|
10
|
-
};
|
|
11
|
-
export type GetSeaportOrdersParams = z.infer<typeof getSeaportOrdersValidation>;
|
|
12
|
-
export declare class ListingsHandler {
|
|
13
|
-
private coreSDK;
|
|
14
|
-
private config;
|
|
15
|
-
private seaport;
|
|
16
|
-
constructor(coreSDK: CoreSDK, config: ProtocolConfig);
|
|
17
|
-
createFixedPriceOrder(params: CreateFixedPriceOrderParams): Promise<ReturnTypeMcp>;
|
|
18
|
-
cancelFixedPriceOrders(params: CancelFixedPriceOrdersParams): Promise<ReturnTypeMcp>;
|
|
19
|
-
getSeaportOrders(params: GetSeaportOrdersParams): Promise<{
|
|
20
|
-
success: true;
|
|
21
|
-
data: {
|
|
22
|
-
orders: OrderComponents[];
|
|
23
|
-
totalCount: number;
|
|
24
|
-
};
|
|
25
|
-
}>;
|
|
26
|
-
}
|
|
27
|
-
//# sourceMappingURL=listings.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"listings.d.ts","sourceRoot":"","sources":["../../../../src/fermion/mcp-server/handlers/listings.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,cAAc,EAEf,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EACL,gCAAgC,EAChC,+BAA+B,EAC/B,0BAA0B,EAC3B,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,2BAA2B,GAAG,CAAC,CAAC,KAAK,CAC/C,OAAO,+BAA+B,CACvC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,gCAAgC,CAAC,CAAC,SAAS,CAAC,CAAC;IACrE,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAEhF,qBAAa,eAAe;IAGxB,OAAO,CAAC,OAAO;IACf,OAAO,CAAC,MAAM;IAHhB,OAAO,CAAC,OAAO,CAAU;gBAEf,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,cAAc;IAgB1B,qBAAqB,CACzB,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,aAAa,CAAC;IAkCnB,sBAAsB,CAC1B,MAAM,EAAE,4BAA4B,GACnC,OAAO,CAAC,aAAa,CAAC;IAiCnB,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC;QAC9D,OAAO,EAAE,IAAI,CAAC;QACd,IAAI,EAAE;YACJ,MAAM,EAAE,eAAe,EAAE,CAAC;YAC1B,UAAU,EAAE,MAAM,CAAC;SACpB,CAAC;KACH,CAAC;CAqDH"}
|
|
@@ -1,119 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ListingsHandler = void 0;
|
|
4
|
-
const subgraph_js_1 = require("@fermionprotocol/core-sdk/dist/esm/subgraph.js");
|
|
5
|
-
const seaport_js_1 = require("@opensea/seaport-js");
|
|
6
|
-
const ethers_1 = require("@opensea/seaport-js/node_modules/ethers");
|
|
7
|
-
const errorHandling_js_1 = require("../../../common/mcp-server/errorHandling.js");
|
|
8
|
-
const jsonUtils_js_1 = require("../../../common/mcp-server/jsonUtils.js");
|
|
9
|
-
class ListingsHandler {
|
|
10
|
-
coreSDK;
|
|
11
|
-
config;
|
|
12
|
-
seaport;
|
|
13
|
-
constructor(coreSDK, config) {
|
|
14
|
-
this.coreSDK = coreSDK;
|
|
15
|
-
this.config = config;
|
|
16
|
-
// Create provider with the provided RPC URL and chain ID
|
|
17
|
-
const provider = new ethers_1.JsonRpcProvider(config.jsonRpcUrl, this.config.chainId);
|
|
18
|
-
this.seaport = new seaport_js_1.Seaport(provider, {
|
|
19
|
-
overrides: {
|
|
20
|
-
seaportVersion: "1.6",
|
|
21
|
-
contractAddress: this.config.contracts.seaport,
|
|
22
|
-
},
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
async createFixedPriceOrder(params) {
|
|
26
|
-
if (!this.coreSDK) {
|
|
27
|
-
throw new Error("SDK not initialized. Call initialize_sdk first.");
|
|
28
|
-
}
|
|
29
|
-
try {
|
|
30
|
-
const transactionData = await this.coreSDK.listFixedPriceOrders(params.offerId, params.prices, params.endTimes, {
|
|
31
|
-
returnTxInfo: true,
|
|
32
|
-
});
|
|
33
|
-
return {
|
|
34
|
-
content: [
|
|
35
|
-
{
|
|
36
|
-
type: "text",
|
|
37
|
-
text: (0, jsonUtils_js_1.stringifyWithBigInt)({
|
|
38
|
-
success: true,
|
|
39
|
-
transactionData,
|
|
40
|
-
}),
|
|
41
|
-
},
|
|
42
|
-
],
|
|
43
|
-
};
|
|
44
|
-
}
|
|
45
|
-
catch (error) {
|
|
46
|
-
return (0, errorHandling_js_1.logAndReturnError)(error, "Error creating fixed price order:", "Failed to create fixed price order");
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
async cancelFixedPriceOrders(params) {
|
|
50
|
-
if (!this.coreSDK) {
|
|
51
|
-
throw new Error("SDK not initialized. Call initialize_sdk first.");
|
|
52
|
-
}
|
|
53
|
-
try {
|
|
54
|
-
const transactionData = await this.coreSDK.cancelFixedPriceOrders(params.offerId, params.orders, {
|
|
55
|
-
returnTxInfo: true,
|
|
56
|
-
});
|
|
57
|
-
return {
|
|
58
|
-
content: [
|
|
59
|
-
{
|
|
60
|
-
type: "text",
|
|
61
|
-
text: (0, jsonUtils_js_1.stringifyWithBigInt)({
|
|
62
|
-
success: true,
|
|
63
|
-
transactionData,
|
|
64
|
-
}),
|
|
65
|
-
},
|
|
66
|
-
],
|
|
67
|
-
};
|
|
68
|
-
}
|
|
69
|
-
catch (error) {
|
|
70
|
-
return (0, errorHandling_js_1.logAndReturnError)(error, "Error canceling fixed price orders:", "Failed to cancel fixed price orders");
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
async getSeaportOrders(params) {
|
|
74
|
-
if (!this.coreSDK) {
|
|
75
|
-
throw new Error("SDK not initialized. Call initialize_sdk first.");
|
|
76
|
-
}
|
|
77
|
-
try {
|
|
78
|
-
const allOrders = [];
|
|
79
|
-
let skip = 0;
|
|
80
|
-
const first = 1000;
|
|
81
|
-
const counter = await this.seaport.getCounter(await this.coreSDK.web3Lib.getSignerAddress());
|
|
82
|
-
// Keep fetching until we get less than 1000 orders
|
|
83
|
-
while (true) {
|
|
84
|
-
const orders = await this.coreSDK.getSeaportOrders({
|
|
85
|
-
seaportOrdersFilter: {
|
|
86
|
-
offerId: params.offerId.toString(),
|
|
87
|
-
},
|
|
88
|
-
seaportOrdersFirst: first,
|
|
89
|
-
seaportOrdersSkip: skip,
|
|
90
|
-
seaportOrdersOrderBy: subgraph_js_1.SeaportOrder_OrderBy.STARTTIME,
|
|
91
|
-
});
|
|
92
|
-
allOrders.push(...orders);
|
|
93
|
-
// If we got less than 1000 orders, we've fetched all available orders
|
|
94
|
-
if (orders.length < first) {
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
skip += first;
|
|
98
|
-
}
|
|
99
|
-
// Transform SeaportOrder[] to OrderComponents[] for compatibility with cancel_fixed_price_orders
|
|
100
|
-
const orderComponents = allOrders.map((order) => ({
|
|
101
|
-
...order,
|
|
102
|
-
...this.coreSDK.convertSeaportOrderToSeaport(order),
|
|
103
|
-
counter: counter.toString(),
|
|
104
|
-
}));
|
|
105
|
-
return {
|
|
106
|
-
success: true,
|
|
107
|
-
data: {
|
|
108
|
-
orders: orderComponents,
|
|
109
|
-
totalCount: orderComponents.length,
|
|
110
|
-
},
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
throw new Error(`Failed to get seaport orders: ${(0, errorHandling_js_1.formatErrorMessage)(error)}`);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
exports.ListingsHandler = ListingsHandler;
|
|
119
|
-
//# sourceMappingURL=listings.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"listings.js","sourceRoot":"","sources":["../../../../src/fermion/mcp-server/handlers/listings.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { AgentAdapter } from "@bosonprotocol/ethers-sdk";
|
|
2
|
-
import { CoreSDK } from "@fermionprotocol/core-sdk";
|
|
3
|
-
import { z } from "zod";
|
|
4
|
-
import { ReturnTypeMcp } from "../../../common/mcp-server/mcpTypes.js";
|
|
5
|
-
import { createOfferValidation, mintAndWrapNFTsValidation, mintWrapFixedPricedValidation } from "../validation.js";
|
|
6
|
-
export declare function createOfferHandler(getSDK: () => CoreSDK<AgentAdapter> | null): (params: z.infer<typeof createOfferValidation>) => Promise<ReturnTypeMcp>;
|
|
7
|
-
export declare function createMintAndWrapNFTsHandler(getSDK: () => CoreSDK<AgentAdapter> | null): (params: z.infer<typeof mintAndWrapNFTsValidation>) => Promise<ReturnTypeMcp>;
|
|
8
|
-
export declare function createMintWrapFixedPricedHandler(getSDK: () => CoreSDK<AgentAdapter> | null): (params: z.infer<typeof mintWrapFixedPricedValidation>) => Promise<ReturnTypeMcp>;
|
|
9
|
-
//# sourceMappingURL=offers.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"offers.d.ts","sourceRoot":"","sources":["../../../../src/fermion/mcp-server/handlers/offers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAmB,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,OAAO,EAAE,aAAa,EAAE,MAAM,wCAAwC,CAAC;AACvE,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,6BAA6B,EAC9B,MAAM,kBAAkB,CAAC;AAE1B,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,IAEzE,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,KAC5C,OAAO,CAAC,aAAa,CAAC,CA6E1B;AAED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,IAGxC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,KAChD,OAAO,CAAC,aAAa,CAAC,CA6B1B;AAED,wBAAgB,gCAAgC,CAC9C,MAAM,EAAE,MAAM,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI,IAGxC,QAAQ,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,KACpD,OAAO,CAAC,aAAa,CAAC,CAqC1B"}
|