@kleros/kleros-sdk 2.0.1-1
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 -0
- package/lib/src/consts.d.ts +1 -0
- package/lib/src/consts.js +5 -0
- package/lib/src/consts.js.map +1 -0
- package/lib/src/dataMappings/actions/callAction.d.ts +2 -0
- package/lib/src/dataMappings/actions/callAction.js +20 -0
- package/lib/src/dataMappings/actions/callAction.js.map +1 -0
- package/lib/src/dataMappings/actions/eventAction.d.ts +2 -0
- package/lib/src/dataMappings/actions/eventAction.js +24 -0
- package/lib/src/dataMappings/actions/eventAction.js.map +1 -0
- package/lib/src/dataMappings/actions/fetchIpfsJsonAction.d.ts +2 -0
- package/lib/src/dataMappings/actions/fetchIpfsJsonAction.js +34 -0
- package/lib/src/dataMappings/actions/fetchIpfsJsonAction.js.map +1 -0
- package/lib/src/dataMappings/actions/jsonAction.d.ts +2 -0
- package/lib/src/dataMappings/actions/jsonAction.js +10 -0
- package/lib/src/dataMappings/actions/jsonAction.js.map +1 -0
- package/lib/src/dataMappings/actions/subgraphAction.d.ts +2 -0
- package/lib/src/dataMappings/actions/subgraphAction.js +23 -0
- package/lib/src/dataMappings/actions/subgraphAction.js.map +1 -0
- package/lib/src/dataMappings/decoder.d.ts +7 -0
- package/lib/src/dataMappings/decoder.js +41 -0
- package/lib/src/dataMappings/decoder.js.map +1 -0
- package/lib/src/dataMappings/disputeDetails.d.ts +35 -0
- package/lib/src/dataMappings/disputeDetails.js +12 -0
- package/lib/src/dataMappings/disputeDetails.js.map +1 -0
- package/lib/src/dataMappings/executeActions.d.ts +4 -0
- package/lib/src/dataMappings/executeActions.js +49 -0
- package/lib/src/dataMappings/executeActions.js.map +1 -0
- package/lib/src/dataMappings/retrieveRealityData.d.ts +1 -0
- package/lib/src/dataMappings/retrieveRealityData.js +95 -0
- package/lib/src/dataMappings/retrieveRealityData.js.map +1 -0
- package/lib/src/dataMappings/utils/createResultObject.d.ts +1 -0
- package/lib/src/dataMappings/utils/createResultObject.js +24 -0
- package/lib/src/dataMappings/utils/createResultObject.js.map +1 -0
- package/lib/src/dataMappings/utils/dataMappingTypes.d.ts +43 -0
- package/lib/src/dataMappings/utils/dataMappingTypes.js +51 -0
- package/lib/src/dataMappings/utils/dataMappingTypes.js.map +1 -0
- package/lib/src/dataMappings/utils/dataMappingValidators.d.ts +7 -0
- package/lib/src/dataMappings/utils/dataMappingValidators.js +46 -0
- package/lib/src/dataMappings/utils/dataMappingValidators.js.map +1 -0
- package/lib/src/dataMappings/utils/disputeDetailsSchema.d.ts +167 -0
- package/lib/src/dataMappings/utils/disputeDetailsSchema.js +62 -0
- package/lib/src/dataMappings/utils/disputeDetailsSchema.js.map +1 -0
- package/lib/src/dataMappings/utils/disputeDetailsTypes.d.ts +7 -0
- package/lib/src/dataMappings/utils/disputeDetailsTypes.js +6 -0
- package/lib/src/dataMappings/utils/disputeDetailsTypes.js.map +1 -0
- package/lib/src/dataMappings/utils/disputeDetailsValidator.d.ts +32 -0
- package/lib/src/dataMappings/utils/disputeDetailsValidator.js +29 -0
- package/lib/src/dataMappings/utils/disputeDetailsValidator.js.map +1 -0
- package/lib/src/dataMappings/utils/disputeRequest.d.ts +8 -0
- package/lib/src/dataMappings/utils/disputeRequest.js +3 -0
- package/lib/src/dataMappings/utils/disputeRequest.js.map +1 -0
- package/lib/src/dataMappings/utils/populateTemplate.d.ts +2 -0
- package/lib/src/dataMappings/utils/populateTemplate.js +18 -0
- package/lib/src/dataMappings/utils/populateTemplate.js.map +1 -0
- package/lib/src/dataMappings/utils/replacePlaceholdersWithValues.d.ts +1 -0
- package/lib/src/dataMappings/utils/replacePlaceholdersWithValues.js +17 -0
- package/lib/src/dataMappings/utils/replacePlaceholdersWithValues.js.map +1 -0
- package/lib/src/graphql/fragment-masking.d.ts +15 -0
- package/lib/src/graphql/fragment-masking.js +23 -0
- package/lib/src/graphql/fragment-masking.js.map +1 -0
- package/lib/src/graphql/gql.d.ts +108 -0
- package/lib/src/graphql/gql.js +56 -0
- package/lib/src/graphql/gql.js.map +1 -0
- package/lib/src/graphql/graphql.d.ts +4869 -0
- package/lib/src/graphql/graphql.js +719 -0
- package/lib/src/graphql/graphql.js.map +1 -0
- package/lib/src/graphql/index.d.ts +2 -0
- package/lib/src/graphql/index.js +19 -0
- package/lib/src/graphql/index.js.map +1 -0
- package/lib/src/index.d.ts +1 -0
- package/lib/src/index.js +18 -0
- package/lib/src/index.js.map +1 -0
- package/lib/src/sdk.d.ts +4 -0
- package/lib/src/sdk.js +32 -0
- package/lib/src/sdk.js.map +1 -0
- package/lib/test/dataMappings.test.d.ts +1 -0
- package/lib/test/dataMappings.test.js +183 -0
- package/lib/test/dataMappings.test.js.map +1 -0
- package/lib/test/disputeDetailsSchema.test.d.ts +1 -0
- package/lib/test/disputeDetailsSchema.test.js +79 -0
- package/lib/test/disputeDetailsSchema.test.js.map +1 -0
- package/package.json +61 -0
package/README.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# @kleros/kleros-v2-sdk
|
|
2
|
+
|
|
3
|
+
_Archon's successor_
|
|
4
|
+
|
|
5
|
+
Make sure to set the environment variables first by copying the file `.env.example`, pasting it, renaming it to `.env`, and then setting the variables.
|
|
6
|
+
To run the data mappings tests:
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
yarn run test-data-mappings
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
🚧 ⚖️ 🚧
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const MAX_BYTE_SIZE = 1000000;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/consts.ts"],"names":[],"mappings":";;;AAAa,QAAA,aAAa,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.callAction = void 0;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const createResultObject_1 = require("src/dataMappings/utils/createResultObject");
|
|
6
|
+
const sdk_1 = require("src/sdk");
|
|
7
|
+
const callAction = async (mapping) => {
|
|
8
|
+
(0, sdk_1.configureSDK)({ apiKey: process.env.ALCHEMY_API_KEY });
|
|
9
|
+
const publicClient = (0, sdk_1.getPublicClient)();
|
|
10
|
+
const { abi: source, address, args, seek, populate } = mapping;
|
|
11
|
+
const parsedAbi = typeof source === "string" ? (0, viem_1.parseAbiItem)(source) : source;
|
|
12
|
+
const data = await publicClient.readContract({
|
|
13
|
+
address,
|
|
14
|
+
abi: [parsedAbi],
|
|
15
|
+
args,
|
|
16
|
+
});
|
|
17
|
+
return (0, createResultObject_1.createResultObject)(data, seek, populate);
|
|
18
|
+
};
|
|
19
|
+
exports.callAction = callAction;
|
|
20
|
+
//# sourceMappingURL=callAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callAction.js","sourceRoot":"","sources":["../../../../src/dataMappings/actions/callAction.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAEpC,kFAA+E;AAC/E,iCAAwD;AAEjD,MAAM,UAAU,GAAG,KAAK,EAAE,OAAuB,EAAE,EAAE;IAC1D,IAAA,kBAAY,EAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,IAAA,qBAAe,GAAE,CAAC;IAEvC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAC/D,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,mBAAY,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAE7E,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,YAAY,CAAC;QAC3C,OAAO;QACP,GAAG,EAAE,CAAC,SAAS,CAAC;QAChB,IAAI;KACL,CAAC,CAAC;IAEH,OAAO,IAAA,uCAAkB,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC,CAAC;AAdW,QAAA,UAAU,cAcrB"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.eventAction = void 0;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const createResultObject_1 = require("src/dataMappings/utils/createResultObject");
|
|
6
|
+
const sdk_1 = require("src/sdk");
|
|
7
|
+
const eventAction = async (mapping) => {
|
|
8
|
+
(0, sdk_1.configureSDK)({ apiKey: process.env.ALCHEMY_API_KEY });
|
|
9
|
+
const publicClient = (0, sdk_1.getPublicClient)();
|
|
10
|
+
const { abi: source, address, eventFilter, seek, populate } = mapping;
|
|
11
|
+
const parsedAbi = typeof source === "string" ? (0, viem_1.parseAbiItem)(source) : source;
|
|
12
|
+
const filter = await publicClient.createEventFilter({
|
|
13
|
+
address,
|
|
14
|
+
event: parsedAbi,
|
|
15
|
+
args: eventFilter.args,
|
|
16
|
+
fromBlock: eventFilter.fromBlock,
|
|
17
|
+
toBlock: eventFilter.toBlock,
|
|
18
|
+
});
|
|
19
|
+
const contractEvent = await publicClient.getFilterLogs({ filter: filter });
|
|
20
|
+
const eventData = contractEvent[0].args;
|
|
21
|
+
return (0, createResultObject_1.createResultObject)(eventData, seek, populate);
|
|
22
|
+
};
|
|
23
|
+
exports.eventAction = eventAction;
|
|
24
|
+
//# sourceMappingURL=eventAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventAction.js","sourceRoot":"","sources":["../../../../src/dataMappings/actions/eventAction.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAEpC,kFAA+E;AAC/E,iCAAwD;AAEjD,MAAM,WAAW,GAAG,KAAK,EAAE,OAAwB,EAAE,EAAE;IAC5D,IAAA,kBAAY,EAAC,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,CAAC;IACtD,MAAM,YAAY,GAAG,IAAA,qBAAe,GAAE,CAAC;IAEvC,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IACtE,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,mBAAY,EAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAE7E,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,iBAAiB,CAAC;QAClD,OAAO;QACP,KAAK,EAAE,SAAS;QAChB,IAAI,EAAE,WAAW,CAAC,IAAI;QACtB,SAAS,EAAE,WAAW,CAAC,SAAS;QAChC,OAAO,EAAE,WAAW,CAAC,OAAO;KAC7B,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,MAAM,YAAY,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,MAAa,EAAE,CAAC,CAAC;IAClF,MAAM,SAAS,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAExC,OAAO,IAAA,uCAAkB,EAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AACvD,CAAC,CAAC;AAnBW,QAAA,WAAW,eAmBtB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.fetchIpfsJsonAction = void 0;
|
|
7
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
8
|
+
const createResultObject_1 = require("src/dataMappings/utils/createResultObject");
|
|
9
|
+
const consts_1 = require("src/consts");
|
|
10
|
+
const fetchIpfsJsonAction = async (mapping) => {
|
|
11
|
+
const { ipfsUri, seek, populate } = mapping;
|
|
12
|
+
let httpUri;
|
|
13
|
+
if (ipfsUri.startsWith("/ipfs/")) {
|
|
14
|
+
httpUri = `https://ipfs.io${ipfsUri}`;
|
|
15
|
+
}
|
|
16
|
+
else if (ipfsUri.startsWith("ipfs://")) {
|
|
17
|
+
httpUri = ipfsUri.replace("ipfs://", "https://ipfs.io/ipfs/");
|
|
18
|
+
}
|
|
19
|
+
else if (!ipfsUri.startsWith("http")) {
|
|
20
|
+
httpUri = `https://ipfs.io/ipfs/${ipfsUri}`;
|
|
21
|
+
}
|
|
22
|
+
const response = await (0, node_fetch_1.default)(httpUri, { method: "GET" });
|
|
23
|
+
if (response.headers.get("content-length") > consts_1.MAX_BYTE_SIZE) {
|
|
24
|
+
throw new Error("Response size is too large");
|
|
25
|
+
}
|
|
26
|
+
const contentType = response.headers.get("content-type");
|
|
27
|
+
if (!contentType || !contentType.includes("application/json")) {
|
|
28
|
+
throw new Error("Fetched data is not JSON");
|
|
29
|
+
}
|
|
30
|
+
const data = await response.json();
|
|
31
|
+
return (0, createResultObject_1.createResultObject)(data, seek, populate);
|
|
32
|
+
};
|
|
33
|
+
exports.fetchIpfsJsonAction = fetchIpfsJsonAction;
|
|
34
|
+
//# sourceMappingURL=fetchIpfsJsonAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchIpfsJsonAction.js","sourceRoot":"","sources":["../../../../src/dataMappings/actions/fetchIpfsJsonAction.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA+B;AAE/B,kFAA+E;AAC/E,uCAA2C;AAEpC,MAAM,mBAAmB,GAAG,KAAK,EAAE,OAA6B,EAAE,EAAE;IACzE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE5C,IAAI,OAAO,CAAC;IACZ,IAAI,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,OAAO,GAAG,kBAAkB,OAAO,EAAE,CAAC;IACxC,CAAC;SAAM,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACzC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC;IAChE,CAAC;SAAM,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACvC,OAAO,GAAG,wBAAwB,OAAO,EAAE,CAAC;IAC9C,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,OAAO,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAEzD,IAAI,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,sBAAa,EAAE,CAAC;QAC3D,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAEzD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC9D,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEnC,OAAO,IAAA,uCAAkB,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC,CAAC;AA1BW,QAAA,mBAAmB,uBA0B9B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jsonAction = void 0;
|
|
4
|
+
const createResultObject_1 = require("src/dataMappings/utils/createResultObject");
|
|
5
|
+
const jsonAction = (mapping) => {
|
|
6
|
+
const { value: source, seek, populate } = mapping;
|
|
7
|
+
return (0, createResultObject_1.createResultObject)(source, seek, populate);
|
|
8
|
+
};
|
|
9
|
+
exports.jsonAction = jsonAction;
|
|
10
|
+
//# sourceMappingURL=jsonAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsonAction.js","sourceRoot":"","sources":["../../../../src/dataMappings/actions/jsonAction.ts"],"names":[],"mappings":";;;AACA,kFAA+E;AAExE,MAAM,UAAU,GAAG,CAAC,OAAoB,EAAE,EAAE;IACjD,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAClD,OAAO,IAAA,uCAAkB,EAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AACpD,CAAC,CAAC;AAHW,QAAA,UAAU,cAGrB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.subgraphAction = void 0;
|
|
7
|
+
const node_fetch_1 = __importDefault(require("node-fetch"));
|
|
8
|
+
const createResultObject_1 = require("src/dataMappings/utils/createResultObject");
|
|
9
|
+
const subgraphAction = async (mapping) => {
|
|
10
|
+
const { endpoint, query, variables, seek, populate } = mapping;
|
|
11
|
+
const response = await (0, node_fetch_1.default)(endpoint, {
|
|
12
|
+
method: "POST",
|
|
13
|
+
headers: {
|
|
14
|
+
"Content-Type": "application/json",
|
|
15
|
+
Accept: "application/json",
|
|
16
|
+
},
|
|
17
|
+
body: JSON.stringify({ query, variables }),
|
|
18
|
+
});
|
|
19
|
+
const { data } = await response.json();
|
|
20
|
+
return (0, createResultObject_1.createResultObject)(data, seek, populate);
|
|
21
|
+
};
|
|
22
|
+
exports.subgraphAction = subgraphAction;
|
|
23
|
+
//# sourceMappingURL=subgraphAction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subgraphAction.js","sourceRoot":"","sources":["../../../../src/dataMappings/actions/subgraphAction.ts"],"names":[],"mappings":";;;;;;AAAA,4DAA+B;AAE/B,kFAA+E;AAExE,MAAM,cAAc,GAAG,KAAK,EAAE,OAAwB,EAAE,EAAE;IAC/D,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAE/D,MAAM,QAAQ,GAAG,MAAM,IAAA,oBAAK,EAAC,QAAQ,EAAE;QACrC,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,MAAM,EAAE,kBAAkB;SAC3B;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC;KAC3C,CAAC,CAAC;IAEH,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAEvC,OAAO,IAAA,uCAAkB,EAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAClD,CAAC,CAAC;AAfW,QAAA,cAAc,kBAezB"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { DisputeDetails } from "./disputeDetails";
|
|
2
|
+
import { DisputeDetailsQuery } from "src/graphql/graphql";
|
|
3
|
+
export type { DisputeDetailsQuery };
|
|
4
|
+
export type Decoder = (externalDisputeID: string, disputeTemplate: Partial<DisputeDetails>) => Promise<DisputeDetails>;
|
|
5
|
+
export type CAIP10 = `eip155:${number}:0x${string}`;
|
|
6
|
+
export declare const graphqlQueryFnHelper: (url: string, query: any, parametersObject: Record<string, any>) => Promise<unknown>;
|
|
7
|
+
export declare const genericDecoder: (externalDisputeID: string, arbitrableDisputeID: string, disputeTemplateID: string, disputeTemplateRegistry: CAIP10) => Promise<DisputeDetails>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.genericDecoder = exports.graphqlQueryFnHelper = void 0;
|
|
7
|
+
const graphql_request_1 = __importDefault(require("graphql-request"));
|
|
8
|
+
const graphql_1 = require("src/graphql");
|
|
9
|
+
const graphqlQueryFnHelper = async (url, query, parametersObject) => {
|
|
10
|
+
return (0, graphql_request_1.default)(url, query, parametersObject);
|
|
11
|
+
};
|
|
12
|
+
exports.graphqlQueryFnHelper = graphqlQueryFnHelper;
|
|
13
|
+
const disputeTemplateQuery = (0, graphql_1.graphql)(`
|
|
14
|
+
query DisputeTemplate($id: ID!) {
|
|
15
|
+
disputeTemplate(id: $id) {
|
|
16
|
+
id
|
|
17
|
+
templateTag
|
|
18
|
+
templateData
|
|
19
|
+
templateDataMappings
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
`);
|
|
23
|
+
const genericDecoder = async (externalDisputeID, arbitrableDisputeID, disputeTemplateID, disputeTemplateRegistry) => {
|
|
24
|
+
let subgraphUrl;
|
|
25
|
+
switch (disputeTemplateRegistry) {
|
|
26
|
+
case "eip155:421614:0x22A58a17F12A718d18C9B6Acca3E311Da1b00A04":
|
|
27
|
+
subgraphUrl = process.env.REACT_APP_DISPUTE_TEMPLATE_ARBGOERLI_SUBGRAPH_DEVNET;
|
|
28
|
+
break;
|
|
29
|
+
case "eip155:421614:0xA55D4b90c1F8D1fD0408232bF6FA498dD6786385":
|
|
30
|
+
subgraphUrl = process.env.REACT_APP_DISPUTE_TEMPLATE_ARBGOERLI_SUBGRAPH_TESTNET;
|
|
31
|
+
break;
|
|
32
|
+
default:
|
|
33
|
+
throw new Error(`Unsupported dispute template registry: ${disputeTemplateRegistry}`);
|
|
34
|
+
}
|
|
35
|
+
const { disputeTemplate } = await (0, graphql_request_1.default)(subgraphUrl, disputeTemplateQuery, { id: disputeTemplateID.toString() });
|
|
36
|
+
if (!disputeTemplate)
|
|
37
|
+
throw new Error(`Dispute template not found: ${disputeTemplateID}`);
|
|
38
|
+
throw new Error("Not implemented");
|
|
39
|
+
};
|
|
40
|
+
exports.genericDecoder = genericDecoder;
|
|
41
|
+
//# sourceMappingURL=decoder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decoder.js","sourceRoot":"","sources":["../../../src/dataMappings/decoder.ts"],"names":[],"mappings":";;;;;;AAAA,sEAAsC;AAEtC,yCAAsC;AAS/B,MAAM,oBAAoB,GAAG,KAAK,EAAE,GAAW,EAAE,KAAK,EAAE,gBAAqC,EAAE,EAAE;IACtG,OAAO,IAAA,yBAAO,EAAC,GAAG,EAAE,KAAK,EAAE,gBAAgB,CAAC,CAAC;AAC/C,CAAC,CAAC;AAFW,QAAA,oBAAoB,wBAE/B;AAGF,MAAM,oBAAoB,GAAG,IAAA,iBAAO,EAAC;;;;;;;;;CASpC,CAAC,CAAC;AAEI,MAAM,cAAc,GAAG,KAAK,EACjC,iBAAyB,EACzB,mBAA2B,EAC3B,iBAAyB,EACzB,uBAA+B,EACN,EAAE;IAC3B,IAAI,WAAW,CAAC;IAChB,QAAQ,uBAAuB,EAAE,CAAC;QAChC,KAAK,0DAA0D;YAC7D,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC;YAC/E,MAAM;QACR,KAAK,0DAA0D;YAC7D,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC;YAChF,MAAM;QACR;YACE,MAAM,IAAI,KAAK,CAAC,0CAA0C,uBAAuB,EAAE,CAAC,CAAC;IACzF,CAAC;IACD,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,IAAA,yBAAO,EAAC,WAAW,EAAE,oBAAoB,EAAE,EAAE,EAAE,EAAE,iBAAiB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACnH,IAAI,CAAC,eAAe;QAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,iBAAiB,EAAE,CAAC,CAAC;IAO1F,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;AACrC,CAAC,CAAC;AA1BW,QAAA,cAAc,kBA0BzB"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export type DisputeDetails = {
|
|
2
|
+
title: string;
|
|
3
|
+
description: string;
|
|
4
|
+
question: string;
|
|
5
|
+
type: QuestionType;
|
|
6
|
+
answers: Answer[];
|
|
7
|
+
policyURI: string;
|
|
8
|
+
attachment: Attachment;
|
|
9
|
+
frontendUrl: string;
|
|
10
|
+
arbitrableChainID: string;
|
|
11
|
+
arbitrableAddress: `0x${string}`;
|
|
12
|
+
arbitratorChainID: string;
|
|
13
|
+
arbitratorAddress: `0x${string}`;
|
|
14
|
+
category: string;
|
|
15
|
+
lang: string;
|
|
16
|
+
specification: string;
|
|
17
|
+
version: string;
|
|
18
|
+
};
|
|
19
|
+
export declare enum QuestionType {
|
|
20
|
+
Bool = "bool",
|
|
21
|
+
Datetime = "datetime",
|
|
22
|
+
MultipleSelect = "multiple-select",
|
|
23
|
+
SingleSelect = "single-select",
|
|
24
|
+
Uint = "uint"
|
|
25
|
+
}
|
|
26
|
+
export type Answer = {
|
|
27
|
+
title: string;
|
|
28
|
+
description: string;
|
|
29
|
+
id: `0x${string}`;
|
|
30
|
+
reserved: boolean;
|
|
31
|
+
};
|
|
32
|
+
export type Attachment = {
|
|
33
|
+
label: string;
|
|
34
|
+
uri: string;
|
|
35
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QuestionType = void 0;
|
|
4
|
+
var QuestionType;
|
|
5
|
+
(function (QuestionType) {
|
|
6
|
+
QuestionType["Bool"] = "bool";
|
|
7
|
+
QuestionType["Datetime"] = "datetime";
|
|
8
|
+
QuestionType["MultipleSelect"] = "multiple-select";
|
|
9
|
+
QuestionType["SingleSelect"] = "single-select";
|
|
10
|
+
QuestionType["Uint"] = "uint";
|
|
11
|
+
})(QuestionType || (exports.QuestionType = QuestionType = {}));
|
|
12
|
+
//# sourceMappingURL=disputeDetails.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disputeDetails.js","sourceRoot":"","sources":["../../../src/dataMappings/disputeDetails.ts"],"names":[],"mappings":";;;AAoBA,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,qCAAqB,CAAA;IACrB,kDAAkC,CAAA;IAClC,8CAA8B,CAAA;IAC9B,6BAAa,CAAA;AACf,CAAC,EANW,YAAY,4BAAZ,YAAY,QAMvB"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { DataMapping } from "./utils/dataMappingTypes";
|
|
2
|
+
import { DisputeRequest } from "./utils/disputeRequest";
|
|
3
|
+
export declare const executeAction: (mapping: DataMapping<any>, context?: DisputeRequest) => any;
|
|
4
|
+
export declare const executeActions: (mappings: any, initialContext?: DisputeRequest) => Promise<DisputeRequest>;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.executeActions = exports.executeAction = void 0;
|
|
4
|
+
const callAction_1 = require("./actions/callAction");
|
|
5
|
+
const eventAction_1 = require("./actions/eventAction");
|
|
6
|
+
const fetchIpfsJsonAction_1 = require("./actions/fetchIpfsJsonAction");
|
|
7
|
+
const jsonAction_1 = require("./actions/jsonAction");
|
|
8
|
+
const subgraphAction_1 = require("./actions/subgraphAction");
|
|
9
|
+
const retrieveRealityData_1 = require("./retrieveRealityData");
|
|
10
|
+
const dataMappingValidators_1 = require("./utils/dataMappingValidators");
|
|
11
|
+
const replacePlaceholdersWithValues_1 = require("./utils/replacePlaceholdersWithValues");
|
|
12
|
+
const executeAction = async (mapping, context) => {
|
|
13
|
+
mapping = (0, replacePlaceholdersWithValues_1.replacePlaceholdersWithValues)(mapping, context);
|
|
14
|
+
switch (mapping.type) {
|
|
15
|
+
case "graphql":
|
|
16
|
+
return await (0, subgraphAction_1.subgraphAction)((0, dataMappingValidators_1.validateSubgraphMapping)(mapping));
|
|
17
|
+
case "json":
|
|
18
|
+
return (0, jsonAction_1.jsonAction)((0, dataMappingValidators_1.validateJsonMapping)(mapping));
|
|
19
|
+
case "abi/call":
|
|
20
|
+
return await (0, callAction_1.callAction)((0, dataMappingValidators_1.validateAbiCallMapping)(mapping));
|
|
21
|
+
case "abi/event":
|
|
22
|
+
return await (0, eventAction_1.eventAction)((0, dataMappingValidators_1.validateAbiEventMapping)(mapping));
|
|
23
|
+
case "fetch/ipfs/json":
|
|
24
|
+
return await (0, fetchIpfsJsonAction_1.fetchIpfsJsonAction)((0, dataMappingValidators_1.validateFetchIpfsJsonMapping)(mapping));
|
|
25
|
+
case "reality":
|
|
26
|
+
mapping = (0, dataMappingValidators_1.validateRealityMapping)(mapping);
|
|
27
|
+
if (!context?.arbitrable) {
|
|
28
|
+
throw new Error("Arbitrable address is required for reality action");
|
|
29
|
+
}
|
|
30
|
+
return await (0, retrieveRealityData_1.retrieveRealityData)(mapping.realityQuestionID, context.arbitrable);
|
|
31
|
+
default:
|
|
32
|
+
throw new Error(`Unsupported action type: ${mapping.type}`);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
exports.executeAction = executeAction;
|
|
36
|
+
const executeActions = async (mappings, initialContext) => {
|
|
37
|
+
const context = Object.assign({}, initialContext);
|
|
38
|
+
for (const mapping of mappings) {
|
|
39
|
+
const actionResult = await (0, exports.executeAction)(mapping, context);
|
|
40
|
+
if (actionResult) {
|
|
41
|
+
Object.keys(actionResult).forEach((key) => {
|
|
42
|
+
context[key] = actionResult[key];
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return context;
|
|
47
|
+
};
|
|
48
|
+
exports.executeActions = executeActions;
|
|
49
|
+
//# sourceMappingURL=executeActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executeActions.js","sourceRoot":"","sources":["../../../src/dataMappings/executeActions.ts"],"names":[],"mappings":";;;AAAA,qDAAkD;AAClD,uDAAoD;AACpD,uEAAoE;AACpE,qDAAkD;AAClD,6DAA0D;AAC1D,+DAA4D;AAC5D,yEAOuC;AAEvC,yFAAsF;AAG/E,MAAM,aAAa,GAAG,KAAK,EAAE,OAAyB,EAAE,OAAwB,EAAE,EAAE;IACzF,OAAO,GAAG,IAAA,6DAA6B,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAE1D,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,OAAO,MAAM,IAAA,+BAAc,EAAC,IAAA,+CAAuB,EAAC,OAAO,CAAC,CAAC,CAAC;QAChE,KAAK,MAAM;YACT,OAAO,IAAA,uBAAU,EAAC,IAAA,2CAAmB,EAAC,OAAO,CAAC,CAAC,CAAC;QAClD,KAAK,UAAU;YACb,OAAO,MAAM,IAAA,uBAAU,EAAC,IAAA,8CAAsB,EAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,KAAK,WAAW;YACd,OAAO,MAAM,IAAA,yBAAW,EAAC,IAAA,+CAAuB,EAAC,OAAO,CAAC,CAAC,CAAC;QAC7D,KAAK,iBAAiB;YACpB,OAAO,MAAM,IAAA,yCAAmB,EAAC,IAAA,oDAA4B,EAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,KAAK,SAAS;YACZ,OAAO,GAAG,IAAA,8CAAsB,EAAC,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,CAAC;gBACzB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;YACvE,CAAC;YACD,OAAO,MAAM,IAAA,yCAAmB,EAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;QAClF;YACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC,CAAC;AAvBW,QAAA,aAAa,iBAuBxB;AAEK,MAAM,cAAc,GAAG,KAAK,EAAE,QAAQ,EAAE,cAA+B,EAAE,EAAE;IAChF,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IAClD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,YAAY,GAAG,MAAM,IAAA,qBAAa,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC3D,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACxC,OAAO,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAZW,QAAA,cAAc,kBAYzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const retrieveRealityData: (realityQuestionID: string, arbitrable?: `0x${string}`) => any;
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.retrieveRealityData = void 0;
|
|
4
|
+
const executeActions_1 = require("./executeActions");
|
|
5
|
+
const retrieveRealityData = async (realityQuestionID, arbitrable) => {
|
|
6
|
+
if (!arbitrable) {
|
|
7
|
+
throw new Error("No arbitrable address provided");
|
|
8
|
+
}
|
|
9
|
+
const questionMapping = {
|
|
10
|
+
type: "abi/event",
|
|
11
|
+
abi: "event LogNewQuestion(bytes32 indexed question_id, address indexed user, uint256 template_id, string question, bytes32 indexed content_hash, address arbitrator, uint32 timeout, uint32 opening_ts, uint256 nonce, uint256 created)",
|
|
12
|
+
address: arbitrable,
|
|
13
|
+
eventFilter: {
|
|
14
|
+
args: [realityQuestionID],
|
|
15
|
+
fromBlock: "0x1",
|
|
16
|
+
toBlock: "latest",
|
|
17
|
+
},
|
|
18
|
+
seek: [
|
|
19
|
+
"question_id",
|
|
20
|
+
"user",
|
|
21
|
+
"template_id",
|
|
22
|
+
"question",
|
|
23
|
+
"content_hash",
|
|
24
|
+
"arbitrator",
|
|
25
|
+
"timeout",
|
|
26
|
+
"opening_ts",
|
|
27
|
+
"nonce",
|
|
28
|
+
"created",
|
|
29
|
+
],
|
|
30
|
+
populate: [
|
|
31
|
+
"realityQuestionID",
|
|
32
|
+
"realityUser",
|
|
33
|
+
"realityTemplateID",
|
|
34
|
+
"realityQuestion",
|
|
35
|
+
"contentHash",
|
|
36
|
+
"arbitrator",
|
|
37
|
+
"timeout",
|
|
38
|
+
"openingTs",
|
|
39
|
+
"nonce",
|
|
40
|
+
"created",
|
|
41
|
+
],
|
|
42
|
+
};
|
|
43
|
+
const questionData = await (0, executeActions_1.executeAction)(questionMapping);
|
|
44
|
+
console.log("questionData", questionData);
|
|
45
|
+
const templateMapping = {
|
|
46
|
+
type: "abi/event",
|
|
47
|
+
abi: "event LogNewTemplate(uint256 indexed template_id, address indexed user, string question_text)",
|
|
48
|
+
address: arbitrable,
|
|
49
|
+
eventFilter: {
|
|
50
|
+
args: [0],
|
|
51
|
+
fromBlock: "0x1",
|
|
52
|
+
toBlock: "latest",
|
|
53
|
+
},
|
|
54
|
+
seek: ["template_id", "question_text"],
|
|
55
|
+
populate: ["templateID", "questionText"],
|
|
56
|
+
};
|
|
57
|
+
const templateData = await (0, executeActions_1.executeAction)(templateMapping);
|
|
58
|
+
console.log("templateData", templateData);
|
|
59
|
+
const rc_question = require("@reality.eth/reality-eth-lib/formatters/question.js");
|
|
60
|
+
const populatedTemplate = rc_question.populatedJSONForTemplate(templateData.questionText, questionData.realityQuestion);
|
|
61
|
+
console.log("populatedTemplate", populatedTemplate);
|
|
62
|
+
let answers = [];
|
|
63
|
+
if (populatedTemplate.type === "bool") {
|
|
64
|
+
answers = [
|
|
65
|
+
{
|
|
66
|
+
title: "Yes",
|
|
67
|
+
description: "",
|
|
68
|
+
id: "0x01",
|
|
69
|
+
reserved: false,
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
title: "No",
|
|
73
|
+
description: "",
|
|
74
|
+
id: "0x02",
|
|
75
|
+
reserved: false,
|
|
76
|
+
},
|
|
77
|
+
];
|
|
78
|
+
}
|
|
79
|
+
answers.push({
|
|
80
|
+
id: "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF",
|
|
81
|
+
title: "Answered Too Soon",
|
|
82
|
+
description: "",
|
|
83
|
+
reserved: true,
|
|
84
|
+
});
|
|
85
|
+
return {
|
|
86
|
+
question: questionData.realityQuestion,
|
|
87
|
+
type: populatedTemplate.type,
|
|
88
|
+
realityAddress: questionData.arbitrator,
|
|
89
|
+
questionId: questionData.realityQuestionID,
|
|
90
|
+
realityUser: questionData.realityUser,
|
|
91
|
+
answers,
|
|
92
|
+
};
|
|
93
|
+
};
|
|
94
|
+
exports.retrieveRealityData = retrieveRealityData;
|
|
95
|
+
//# sourceMappingURL=retrieveRealityData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retrieveRealityData.js","sourceRoot":"","sources":["../../../src/dataMappings/retrieveRealityData.ts"],"names":[],"mappings":";;;AAAA,qDAAiD;AAI1C,MAAM,mBAAmB,GAAG,KAAK,EAAE,iBAAyB,EAAE,UAA0B,EAAE,EAAE;IACjG,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,eAAe,GAAiC;QACpD,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,oOAAoO;QACzO,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,iBAAiB,CAAC;YACzB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,QAAQ;SAClB;QACD,IAAI,EAAE;YACJ,aAAa;YACb,MAAM;YACN,aAAa;YACb,UAAU;YACV,cAAc;YACd,YAAY;YACZ,SAAS;YACT,YAAY;YACZ,OAAO;YACP,SAAS;SACV;QACD,QAAQ,EAAE;YACR,mBAAmB;YACnB,aAAa;YACb,mBAAmB;YACnB,iBAAiB;YACjB,aAAa;YACb,YAAY;YACZ,SAAS;YACT,WAAW;YACX,OAAO;YACP,SAAS;SACV;KACF,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,IAAA,8BAAa,EAAC,eAAe,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAE1C,MAAM,eAAe,GAAiC;QACpD,IAAI,EAAE,WAAW;QACjB,GAAG,EAAE,+FAA+F;QACpG,OAAO,EAAE,UAAU;QACnB,WAAW,EAAE;YACX,IAAI,EAAE,CAAC,CAAC,CAAC;YACT,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,QAAQ;SAClB;QACD,IAAI,EAAE,CAAC,aAAa,EAAE,eAAe,CAAC;QACtC,QAAQ,EAAE,CAAC,YAAY,EAAE,cAAc,CAAC;KACzC,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,IAAA,8BAAa,EAAC,eAAe,CAAC,CAAC;IAC1D,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;IAE1C,MAAM,WAAW,GAAG,OAAO,CAAC,qDAAqD,CAAC,CAAC;IACnF,MAAM,iBAAiB,GAAG,WAAW,CAAC,wBAAwB,CAC5D,YAAY,CAAC,YAAY,EACzB,YAAY,CAAC,eAAe,CAC7B,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAEpD,IAAI,OAAO,GAAa,EAAE,CAAC;IAC3B,IAAI,iBAAiB,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACtC,OAAO,GAAG;YACR;gBACE,KAAK,EAAE,KAAK;gBACZ,WAAW,EAAE,EAAE;gBACf,EAAE,EAAE,MAAM;gBACV,QAAQ,EAAE,KAAK;aAChB;YACD;gBACE,KAAK,EAAE,IAAI;gBACX,WAAW,EAAE,EAAE;gBACf,EAAE,EAAE,MAAM;gBACV,QAAQ,EAAE,KAAK;aAChB;SACF,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAI,CAAC;QACX,EAAE,EAAE,oEAAoE;QACxE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,EAAE;QACf,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ,EAAE,YAAY,CAAC,eAAe;QACtC,IAAI,EAAE,iBAAiB,CAAC,IAAI;QAC5B,cAAc,EAAE,YAAY,CAAC,UAAU;QACvC,UAAU,EAAE,YAAY,CAAC,iBAAiB;QAC1C,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,OAAO;KACR,CAAC;AACJ,CAAC,CAAC;AAnGW,QAAA,mBAAmB,uBAmG9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const createResultObject: (sourceData: any, seek: any, populate: any) => {};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createResultObject = void 0;
|
|
4
|
+
const createResultObject = (sourceData, seek, populate) => {
|
|
5
|
+
const result = {};
|
|
6
|
+
seek.forEach((key, idx) => {
|
|
7
|
+
let foundValue;
|
|
8
|
+
if (typeof sourceData !== "object" || key === "0") {
|
|
9
|
+
foundValue = sourceData;
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
foundValue = sourceData[key];
|
|
13
|
+
}
|
|
14
|
+
console.log(`Seek key: ${key}, Found value:`, foundValue);
|
|
15
|
+
if (foundValue !== undefined) {
|
|
16
|
+
result[populate[idx]] = foundValue;
|
|
17
|
+
console.log(`Populate key: ${populate[idx]}, Value to add:`, foundValue);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
console.log("Result object:", result);
|
|
21
|
+
return result;
|
|
22
|
+
};
|
|
23
|
+
exports.createResultObject = createResultObject;
|
|
24
|
+
//# sourceMappingURL=createResultObject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createResultObject.js","sourceRoot":"","sources":["../../../../src/dataMappings/utils/createResultObject.ts"],"names":[],"mappings":";;;AACO,MAAM,kBAAkB,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;IAC/D,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACxB,IAAI,UAAU,CAAC;QACf,IAAI,OAAO,UAAU,KAAK,QAAQ,IAAI,GAAG,KAAK,GAAG,EAAE,CAAC;YAClD,UAAU,GAAG,UAAU,CAAC;QAC1B,CAAC;aAAM,CAAC;YACN,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG,gBAAgB,EAAE,UAAU,CAAC,CAAC;QAC1D,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC;YACnC,OAAO,CAAC,GAAG,CAAC,iBAAiB,QAAQ,CAAC,GAAG,CAAC,iBAAiB,EAAE,UAAU,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAlBW,QAAA,kBAAkB,sBAkB7B"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export type JsonMapping = {
|
|
2
|
+
value: object;
|
|
3
|
+
seek: string[];
|
|
4
|
+
populate: string[];
|
|
5
|
+
};
|
|
6
|
+
export type SubgraphMapping = {
|
|
7
|
+
endpoint: string;
|
|
8
|
+
query: string;
|
|
9
|
+
variables?: {
|
|
10
|
+
[k: string]: any;
|
|
11
|
+
};
|
|
12
|
+
seek: string[];
|
|
13
|
+
populate: string[];
|
|
14
|
+
};
|
|
15
|
+
export type AbiCallMapping = {
|
|
16
|
+
abi: string;
|
|
17
|
+
address: string;
|
|
18
|
+
args: any[];
|
|
19
|
+
seek: string[];
|
|
20
|
+
populate: string[];
|
|
21
|
+
};
|
|
22
|
+
export type AbiEventMapping = {
|
|
23
|
+
abi: string;
|
|
24
|
+
address: string;
|
|
25
|
+
eventFilter: {
|
|
26
|
+
fromBlock: BigInt | string;
|
|
27
|
+
toBlock: BigInt | string;
|
|
28
|
+
args?: any;
|
|
29
|
+
};
|
|
30
|
+
seek: string[];
|
|
31
|
+
populate: string[];
|
|
32
|
+
};
|
|
33
|
+
export type FetchIpfsJsonMapping = {
|
|
34
|
+
ipfsUri: string;
|
|
35
|
+
seek: string[];
|
|
36
|
+
populate: string[];
|
|
37
|
+
};
|
|
38
|
+
export type RealityMapping = {
|
|
39
|
+
realityQuestionID: string;
|
|
40
|
+
};
|
|
41
|
+
export type DataMapping<T extends SubgraphMapping | AbiEventMapping | AbiCallMapping | JsonMapping | FetchIpfsJsonMapping | RealityMapping> = {
|
|
42
|
+
type: string;
|
|
43
|
+
} & T;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const subgraphMappingExample = {
|
|
4
|
+
endpoint: "https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2",
|
|
5
|
+
query: `
|
|
6
|
+
query($id: ID!) {
|
|
7
|
+
pair(id: $id) {
|
|
8
|
+
id
|
|
9
|
+
token0Price
|
|
10
|
+
token1Price
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
`,
|
|
14
|
+
seek: ["token0Price", "token1Price"],
|
|
15
|
+
populate: ["price1", "price2"],
|
|
16
|
+
};
|
|
17
|
+
const abiEventMappingExample = {
|
|
18
|
+
abi: "event StakeSet(address indexed _address, uint256 _courtID, uint256 _amount)",
|
|
19
|
+
address: "0x9f8f72aa9304c8b593d555f12ef6589cc3a579a2",
|
|
20
|
+
eventFilter: {
|
|
21
|
+
fromBlock: BigInt(36205881),
|
|
22
|
+
toBlock: "latest",
|
|
23
|
+
args: {
|
|
24
|
+
_courtID: 1,
|
|
25
|
+
},
|
|
26
|
+
},
|
|
27
|
+
seek: ["amount"],
|
|
28
|
+
populate: ["amount"],
|
|
29
|
+
};
|
|
30
|
+
const abiCallMappingExample = {
|
|
31
|
+
abi: "function appealCost(uint256 _disputeID) public view returns (uint256)",
|
|
32
|
+
address: "0x5a2bC1477ABE705dB4955Cda7DE064eA79D563d1",
|
|
33
|
+
args: [BigInt(1)],
|
|
34
|
+
seek: ["cost"],
|
|
35
|
+
populate: ["cost"],
|
|
36
|
+
};
|
|
37
|
+
const jsonMappingExample = {
|
|
38
|
+
value: {
|
|
39
|
+
name: "John Doe",
|
|
40
|
+
age: 30,
|
|
41
|
+
email: "johndoe@example.com",
|
|
42
|
+
},
|
|
43
|
+
seek: ["name", "age", "email"],
|
|
44
|
+
populate: ["name", "age", "email"],
|
|
45
|
+
};
|
|
46
|
+
const fetchIpfsJsonMappingExample = {
|
|
47
|
+
ipfsUri: "ipfs://QmZ3Cmnip8bmFNruuTuCdxPymEjyK9VcQEyf2beDYcaHaK/metaEvidence.json",
|
|
48
|
+
seek: ["title"],
|
|
49
|
+
populate: ["title"],
|
|
50
|
+
};
|
|
51
|
+
//# sourceMappingURL=dataMappingTypes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataMappingTypes.js","sourceRoot":"","sources":["../../../../src/dataMappings/utils/dataMappingTypes.ts"],"names":[],"mappings":";;AAiDA,MAAM,sBAAsB,GAAoB;IAC9C,QAAQ,EAAE,4DAA4D;IACtE,KAAK,EAAE;;;;;;;;KAQJ;IACH,IAAI,EAAE,CAAC,aAAa,EAAE,aAAa,CAAC;IACpC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC/B,CAAC;AAEF,MAAM,sBAAsB,GAAoB;IAC9C,GAAG,EAAE,6EAA6E;IAClF,OAAO,EAAE,4CAA4C;IACrD,WAAW,EAAE;QACX,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC;QAC3B,OAAO,EAAE,QAAQ;QACjB,IAAI,EAAE;YACJ,QAAQ,EAAE,CAAC;SACZ;KACF;IACD,IAAI,EAAE,CAAC,QAAQ,CAAC;IAChB,QAAQ,EAAE,CAAC,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,qBAAqB,GAAmB;IAC5C,GAAG,EAAE,uEAAuE;IAC5E,OAAO,EAAE,4CAA4C;IACrD,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACjB,IAAI,EAAE,CAAC,MAAM,CAAC;IACd,QAAQ,EAAE,CAAC,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,kBAAkB,GAAgB;IACtC,KAAK,EAAE;QACL,IAAI,EAAE,UAAU;QAChB,GAAG,EAAE,EAAE;QACP,KAAK,EAAE,qBAAqB;KAC7B;IACD,IAAI,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;IAC9B,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,MAAM,2BAA2B,GAAyB;IACxD,OAAO,EAAE,yEAAyE;IAClF,IAAI,EAAE,CAAC,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,OAAO,CAAC;CACpB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { SubgraphMapping, AbiEventMapping, AbiCallMapping, JsonMapping, DataMapping, FetchIpfsJsonMapping, RealityMapping } from "./dataMappingTypes";
|
|
2
|
+
export declare const validateSubgraphMapping: (mapping: DataMapping<SubgraphMapping>) => SubgraphMapping;
|
|
3
|
+
export declare const validateAbiEventMapping: (mapping: DataMapping<AbiEventMapping>) => AbiEventMapping;
|
|
4
|
+
export declare const validateAbiCallMapping: (mapping: DataMapping<AbiCallMapping>) => AbiCallMapping;
|
|
5
|
+
export declare const validateJsonMapping: (mapping: DataMapping<JsonMapping>) => JsonMapping;
|
|
6
|
+
export declare const validateFetchIpfsJsonMapping: (mapping: DataMapping<FetchIpfsJsonMapping>) => FetchIpfsJsonMapping;
|
|
7
|
+
export declare const validateRealityMapping: (mapping: DataMapping<RealityMapping>) => RealityMapping;
|