Skip to content

Commit ab6dabd

Browse files
authored
Merge pull request #1165 from kleros/feat(sdk)/data-mappings
SDK: data mappings (WIP)
2 parents e31f829 + 7001003 commit ab6dabd

File tree

62 files changed

+3317
-272
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+3317
-272
lines changed

bot-pinner/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@
2020
"node": ">=16.13.0"
2121
},
2222
"devDependencies": {
23-
"@dappnode/dappnodesdk": "^0.3.8"
23+
"@dappnode/dappnodesdk": "^0.3.11"
2424
}
2525
}

contracts/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@
6868
"@typechain/hardhat": "^7.0.0",
6969
"@types/chai": "^4.3.11",
7070
"@types/mocha": "^10.0.6",
71-
"@types/node": "^16.18.68",
71+
"@types/node": "^16.18.70",
7272
"@wagmi/cli": "^1.5.2",
7373
"abitype": "^0.10.3",
7474
"chai": "^4.3.10",
@@ -79,8 +79,8 @@
7979
"graphql-request": "^6.1.0",
8080
"hardhat": "2.15.0",
8181
"hardhat-contract-sizer": "^2.10.0",
82-
"hardhat-deploy": "^0.11.42",
83-
"hardhat-deploy-ethers": "^0.4.0-next.1",
82+
"hardhat-deploy": "0.11.42",
83+
"hardhat-deploy-ethers": "0.4.0-next.1",
8484
"hardhat-deploy-tenderly": "^0.2.0",
8585
"hardhat-docgen": "^1.3.0",
8686
"hardhat-gas-reporter": "^1.0.9",

contracts/scripts/disputeCreatorBot.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ export default async function main() {
3636
"000000000000000000000000000000000000000000000000000000000000000B" + // minJurors 11
3737
"0000000000000000000000000000000000000000000000000000000000000002"; // disputeKitId 2
3838
const templates = [
39-
`{"title":"A reality.eth question","description":"A reality.eth question has been raised to arbitration.","question":"**Kleros Moderate:** Did the user, **degenape6** (ID: 1554345080), break the Telegram group, ***[Kleros Trading Group]()*** (ID: -1001151472172), ***[rules](https://ipfs.kleros.io/ipfs/Qme3Qbj9rKUNHUe9vj9rqCLnTVUCWKy2YfveQF8HiuWQSu/Kleros%20Moderate%20Community%20Rules.pdf)*** due to conduct related to the ***[message](https://t.me/c/1151472172/116662)*** (***[backup](https://ipfs.kleros.io/ipfs/QmVbFrZR1bcyQzZjvLyXwL9ekDxrqHERykdreRxXrw4nqg/animations_file_23.mp4)***)?","answers":[{"id":"0x01","title":"Yes","reserved":false},{"id":"0x02","title":"No","reserved":false},{"id":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF","title":"Answered Too Soon","reserved":true}],"policyURI":"/ipfs/QmZ5XaV2RVgBADq5qMpbuEwgCuPZdRgCeu8rhGtJWLV6yz","frontendUrl":"https://reality.eth.limo/app/#!/question/0xe78996a233895be74a66f451f1019ca9734205cc-0xe2a3bd38e3ad4e22336ac35b221bbbdd808d716209f84014c7bc3bf62f8e3b39","arbitrableChainID":"100","arbitrableAddress":"0x2e39b8f43d0870ba896f516f78f57cde773cf805","arbitratorChainID":"421614","arbitratorAddress":"0xD08Ab99480d02bf9C092828043f611BcDFEA917b","category":"Oracle","lang":"en_US","specification":"KIP99"}`,
40-
`{"title":"Add an entry to Ledger Contract Domain Name registry v2","description":"Someone requested to add an entry to Ledger Contract Domain Name registry v2","question":"Does the entry comply with the required criteria?","answers":[{"title":"Yes, Add It","description":"Select this if you think the entry complies with the required criteria and should be added."},{"title":"No, Don't Add It","description":"Select this if you think the entry does not comply with the required criteria and should not be added."}],"policyURI":"/ipfs/QmW3nQcMW2adyqe6TujRTYkyq26PiDqcmmTjdgKiz9ynPV","frontendUrl":"https://curate.kleros.io/tcr/100/0x957a53a994860be4750810131d9c876b2f52d6e1/0xc2c1aa705632f53051f22a9f65967c0944370020a7489aba608bd0d755ca1234","arbitratorChainID":"421614","arbitratorAddress":"0x791812B0B9f2ba260B2DA432BB02Ee23BC1bB509","category":"Curation","specification":"KIP0X","lang":"en_US"}`,
41-
`{"title":"Omen Question: News & Politics","description":"This reality dispute has been created by Omen, we advise you to read [the Omen Rules](https://cdn.kleros.link/ipfs/QmU1oZzsduGwtC7vCUQPw1QcBP6BDNDkg4t6zkowPucVcx) and consult the evidence provided in [the Market Comments](https://omen.eth.limo/#/0x95b2271039b020aba31b933039e042b60b063800).","question":"**Assuming that today is December 20th 2020, will Joe Biden win the 2020 United States presidential election?**","answers":[{"title":"Yes"},{"title":"No"}],"policyURI":"/ipfs/QmU1oZzsduGwtC7vCUQPw1QcBP6BDNDkg4t6zkowPucVcx","frontendUrl":"https://omen.eth.limo/#/0x95b2271039b020aba31b933039e042b60b063800","arbitratorChainID":"421614","arbitratorAddress":"0x791812B0B9f2ba260B2DA432BB02Ee23BC1bB509","category":"Oracle","specification":"KIP0X","lang":"en_US"}`,
42-
`{"title":"Proof of Humanity Registration Request","description":"A request to register the specified entry to a list of provable humans.","question":"Should the request to register be accepted?","answers":[{"title":"Yes","description":"Accept the request to register the entry."},{"title":"No","description":"Deny the request."}],"policyURI":"/ipfs/QmYPf2fdSyr9BiSy6pJFUmB1oTUPwg6dhEuFqL1n4ZosgH","frontendUrl":"https://app.proofofhumanity.id/profile/0x00de4b13153673bcae2616b67bf822500d325fc3?network=mainnet","arbitratorChainID":"421614","arbitratorAddress":"0x791812B0B9f2ba260B2DA432BB02Ee23BC1bB509","category":"Curated List","specification":"KIP0X","lang":"en_US"}`,
39+
`{"title":"A reality.eth question","description":"A reality.eth question has been raised to arbitration.","question":"**Kleros Moderate:** Did the user, **degenape6** (ID: 1554345080), break the Telegram group, ***[Kleros Trading Group]()*** (ID: -1001151472172), ***[rules](https://ipfs.kleros.io/ipfs/Qme3Qbj9rKUNHUe9vj9rqCLnTVUCWKy2YfveQF8HiuWQSu/Kleros%20Moderate%20Community%20Rules.pdf)*** due to conduct related to the ***[message](https://t.me/c/1151472172/116662)*** (***[backup](https://ipfs.kleros.io/ipfs/QmVbFrZR1bcyQzZjvLyXwL9ekDxrqHERykdreRxXrw4nqg/animations_file_23.mp4)***)?","answers":[{"id":"0x01","title":"Yes","reserved":false},{"id":"0x02","title":"No","reserved":false},{"id":"0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF","title":"Answered Too Soon","reserved":true}],"policyURI":"/ipfs/QmZ5XaV2RVgBADq5qMpbuEwgCuPZdRgCeu8rhGtJWLV6yz","frontendUrl":"https://reality.eth.limo/app/#!/question/0xe78996a233895be74a66f451f1019ca9734205cc-0xe2a3bd38e3ad4e22336ac35b221bbbdd808d716209f84014c7bc3bf62f8e3b39","arbitrableChainID":"100","arbitrableAddress":"0x2e39b8f43d0870ba896f516f78f57cde773cf805","arbitratorChainID":"421614","arbitratorAddress":"0xD08Ab99480d02bf9C092828043f611BcDFEA917b","category":"Oracle","lang":"en_US","specification":"KIP99","version": "1.0"}`,
40+
`{"title":"Add an entry to Ledger Contract Domain Name registry v2","description":"Someone requested to add an entry to Ledger Contract Domain Name registry v2","question":"Does the entry comply with the required criteria?","answers":[{"title":"Yes, Add It","description":"Select this if you think the entry complies with the required criteria and should be added."},{"title":"No, Don't Add It","description":"Select this if you think the entry does not comply with the required criteria and should not be added."}],"policyURI":"/ipfs/QmW3nQcMW2adyqe6TujRTYkyq26PiDqcmmTjdgKiz9ynPV","frontendUrl":"https://curate.kleros.io/tcr/100/0x957a53a994860be4750810131d9c876b2f52d6e1/0xc2c1aa705632f53051f22a9f65967c0944370020a7489aba608bd0d755ca1234","arbitratorChainID":"421614","arbitratorAddress":"0x791812B0B9f2ba260B2DA432BB02Ee23BC1bB509","category":"Curation","specification":"KIP0X","lang":"en_US","version": "1.0"}`,
41+
`{"title":"Omen Question: News & Politics","description":"This reality dispute has been created by Omen, we advise you to read [the Omen Rules](https://cdn.kleros.link/ipfs/QmU1oZzsduGwtC7vCUQPw1QcBP6BDNDkg4t6zkowPucVcx) and consult the evidence provided in [the Market Comments](https://omen.eth.limo/#/0x95b2271039b020aba31b933039e042b60b063800).","question":"**Assuming that today is December 20th 2020, will Joe Biden win the 2020 United States presidential election?**","answers":[{"title":"Yes"},{"title":"No"}],"policyURI":"/ipfs/QmU1oZzsduGwtC7vCUQPw1QcBP6BDNDkg4t6zkowPucVcx","frontendUrl":"https://omen.eth.limo/#/0x95b2271039b020aba31b933039e042b60b063800","arbitratorChainID":"421614","arbitratorAddress":"0x791812B0B9f2ba260B2DA432BB02Ee23BC1bB509","category":"Oracle","specification":"KIP0X","lang":"en_US","version": "1.0"}`,
42+
`{"title":"Proof of Humanity Registration Request","description":"A request to register the specified entry to a list of provable humans.","question":"Should the request to register be accepted?","answers":[{"title":"Yes","description":"Accept the request to register the entry."},{"title":"No","description":"Deny the request."}],"policyURI":"/ipfs/QmYPf2fdSyr9BiSy6pJFUmB1oTUPwg6dhEuFqL1n4ZosgH","frontendUrl":"https://app.proofofhumanity.id/profile/0x00de4b13153673bcae2616b67bf822500d325fc3?network=mainnet","arbitratorChainID":"421614","arbitratorAddress":"0x791812B0B9f2ba260B2DA432BB02Ee23BC1bB509","category":"Curated List","specification":"KIP0X","lang":"en_US","version": "1.0"}`,
4343
];
4444
const randomTemplate = templates[Math.floor(Math.random() * templates.length)];
4545
const nbOfChoices = 2;

kleros-sdk/.env.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
ALCHEMY_API_KEY=

kleros-sdk/README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
_Archon's successor_
44

5-
\
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+
```
611

712
🚧 ⚖️ 🚧
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
{
2+
"subCategory": "General Service",
3+
"arbitrableAddress": "0x0d67440946949fe293b45c52efd8a9b3d51e2522",
4+
"title": "Liquidity Withdrawal Transfer Ownership Agreement ",
5+
"description": "PARTIES:\nParty 1 (hereinafter referred to as the \"Seller\"):\n* Ethereum Address: 0xc4c4e8144823000d97310756d3237B305E967a09\n\nParty 2 (hereinafter referred to as the \"Buyer\"):\n* Ethereum Address: 0x213fea050A0dA676E97B4dc40e37E985008EA1a0\n\nRECITALS\n\nA. The Seller is the owner of an ERC-20 token contract, whose liquidity is locked on the UNCX.network platform.\nB. The \"Rights'' herein refer to the ability to demand liquidity withdrawal of the aforementioned ERC-20 token through the UNCX.network service by having the designated rights-holder's address assigned to the Gudetama in the contract 0x257EeF05f232B566cD0aF298Ec0B45C2C18d16c7 on the Ethereum chain.\n\nAGREEMENT\n\nTransfer of Rights:\n1.1. The transfer shall be completed by 12:00, Wednesday 20, December 2023 EDT, to the Buyer at the ETH wallet address: 0x8e6f7b23Cdf06db96FD96F4aF8369c0131FAf0F6.\n\nPayment:\n2.1. Upon successful fulfillment of 1.1, the Buyer shall transfer the full amount of 1,4 ETH to the Seller.\n\nNo Partial Payment:\n3.1. There shall be no conditions under which partial payment can be demanded by the Seller, unless the Buyer chooses to do so voluntarily through the Escrow contract.\n\nKleros Escrow:\n4.1. Any disputes arising from this Agreement shall be automatically escalated to the Court of Kleros after both parties fund the dispute resolution deposit. Should one side fail to do so in full, the other party will automatically win the dispute.",
6+
"sender": "0x213fea050A0dA676E97B4dc40e37E985008EA1a0",
7+
"receiver": "0xc4c4e8144823000d97310756d3237B305E967a09",
8+
"amount": "1.4",
9+
"timeout": 8640000000000000,
10+
"token": {
11+
"name": "Ethereum",
12+
"ticker": "ETH",
13+
"symbolURI": "/static/media/eth.33901ab6.png",
14+
"address": null,
15+
"decimals": 18
16+
},
17+
"extraData": {
18+
"Contract Information": "PARTIES:\nParty 1 (hereinafter referred to as the \"Seller\"):\n* Ethereum Address: 0xc4c4e8144823000d97310756d3237B305E967a09\n\nParty 2 (hereinafter referred to as the \"Buyer\"):\n* Ethereum Address: 0x213fea050A0dA676E97B4dc40e37E985008EA1a0\n\nRECITALS\n\nA. The Seller is the owner of an ERC-20 token contract, whose liquidity is locked on the UNCX.network platform.\nB. The \"Rights'' herein refer to the ability to demand liquidity withdrawal of the aforementioned ERC-20 token through the UNCX.network service by having the designated rights-holder's address assigned to the Gudetama in the contract 0x257EeF05f232B566cD0aF298Ec0B45C2C18d16c7 on the Ethereum chain.\n\nAGREEMENT\n\nTransfer of Rights:\n1.1. The transfer shall be completed by 12:00, Wednesday 20, December 2023 EDT, to the Buyer at the ETH wallet address: 0x8e6f7b23Cdf06db96FD96F4aF8369c0131FAf0F6.\n\nPayment:\n2.1. Upon successful fulfillment of 1.1, the Buyer shall transfer the full amount of 1,4 ETH to the Seller.\n\nNo Partial Payment:\n3.1. There shall be no conditions under which partial payment can be demanded by the Seller, unless the Buyer chooses to do so voluntarily through the Escrow contract.\n\nKleros Escrow:\n4.1. Any disputes arising from this Agreement shall be automatically escalated to the Court of Kleros after both parties fund the dispute resolution deposit. Should one side fail to do so in full, the other party will automatically win the dispute."
19+
},
20+
"invoice": false,
21+
"category": "Escrow",
22+
"question": "Which party abided by terms of the contract?",
23+
"rulingOptions": {
24+
"type": "single-select",
25+
"titles": [
26+
"Refund Sender",
27+
"Pay Receiver"
28+
],
29+
"descriptions": [
30+
"Select to return funds to the Sender",
31+
"Select to release funds to the Receiver"
32+
]
33+
},
34+
"evidenceDisplayInterfaceURI": "/ipfs/QmfPnVdcCjApHdiCC8wAmyg5iR246JvVuQGQjQYgtF8gZU/index.html",
35+
"aliases": {
36+
"0x213fea050A0dA676E97B4dc40e37E985008EA1a0": "sender",
37+
"0xc4c4e8144823000d97310756d3237B305E967a09": "receiver"
38+
}
39+
}

kleros-sdk/config/v2-disputetemplate/NewDisputeTemplate.schema.json

Lines changed: 83 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,6 @@
2222
"type": "string",
2323
"default": "NewDisputeTemplate.schema.json"
2424
},
25-
"category": {
26-
"type": "string",
27-
"default": "",
28-
"title": "The category Schema",
29-
"examples": [
30-
"Oracle"
31-
]
32-
},
33-
"lang": {
34-
"type": "string",
35-
"default": "",
36-
"title": "The lang Schema",
37-
"examples": [
38-
"en_US"
39-
]
40-
},
4125
"title": {
4226
"type": "string",
4327
"default": "",
@@ -302,6 +286,32 @@
302286
"/ipfs/QmeTBY7jZe2ut5WjifNASADo3E4zBxkMd62WwBpXtwP9pg"
303287
]
304288
},
289+
"attachment": {
290+
"type": "object",
291+
"default": {},
292+
"title": "The attachment Schema",
293+
"required": [
294+
"uri"
295+
],
296+
"properties": {
297+
"label": {
298+
"type": "string",
299+
"default": "",
300+
"title": "The label Schema",
301+
"examples": [
302+
"Terms"
303+
]
304+
},
305+
"uri": {
306+
"type": "string",
307+
"default": "",
308+
"title": "The uri Schema",
309+
"examples": [
310+
"/ipfs//QmZ7R..7889/terms.json"
311+
]
312+
}
313+
}
314+
},
305315
"arbitrableChainID": {
306316
"type": "string",
307317
"default": "",
@@ -335,6 +345,55 @@
335345
"0xD08Ab99480d02bf9C092828043f611BcDFEA917b"
336346
]
337347
},
348+
"metadata": {
349+
"type": "object",
350+
"default": {},
351+
"title": "The metadata Schema",
352+
"required": [],
353+
"properties": {},
354+
"examples": [
355+
{}
356+
]
357+
},
358+
"aliases": {
359+
"type": "object",
360+
"default": {},
361+
"title": "The aliases Schema",
362+
"properties": {
363+
"Party1": {
364+
"type": "string",
365+
"default": "",
366+
"title": "The Party1 Schema",
367+
"examples": [
368+
"0x1234...CDEF"
369+
]
370+
},
371+
"Party2": {
372+
"type": "string",
373+
"default": "",
374+
"title": "The Party2 Schema",
375+
"examples": [
376+
"0xFEDC...4321"
377+
]
378+
}
379+
}
380+
},
381+
"category": {
382+
"type": "string",
383+
"default": "",
384+
"title": "The category Schema",
385+
"examples": [
386+
"Oracle"
387+
]
388+
},
389+
"lang": {
390+
"type": "string",
391+
"default": "",
392+
"title": "The lang Schema",
393+
"examples": [
394+
"en_US"
395+
]
396+
},
338397
"specification": {
339398
"type": "string",
340399
"default": "",
@@ -343,6 +402,14 @@
343402
"KIP00",
344403
"KIP99"
345404
]
405+
},
406+
"version": {
407+
"type": "string",
408+
"default": "1.0",
409+
"title": "The version Schema",
410+
"examples": [
411+
"1.0"
412+
]
346413
}
347414
}
348415
}

kleros-sdk/config/v2-disputetemplate/curate/NewDisputeTemplate.curate.jsonc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,6 @@
2020
"arbitratorChainID": "421614",
2121
"arbitratorAddress": "0xD08Ab99480d02bf9C092828043f611BcDFEA917b", // KlerosCore
2222
"category": "Curated Lists",
23-
"specification": "KIP88"
23+
"specification": "KIP88",
24+
"version": "1.0"
2425
}

kleros-sdk/config/v2-disputetemplate/curate/example/DisputeDetails.curate.jsonc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"category": "Curated Lists",
3333
"lang": "en_US",
3434
"specification": "KIP88",
35+
"version": "1.0",
3536
"metadata": {
3637
"tcrTitle": "Ledger Contract Domain Name registry v2",
3738
"tcrDescription": "A list of contract addresses and the domain names they are meant to be used from .",
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
[
2+
{
3+
"type": "abi/event",
4+
"abi": "event TransactionCreated(uint256 indexed _transactionID, string _transactionUri, address indexed _buyer, address indexed _seller, uint256 _amount, string _asset, uint256 _deadline)",
5+
"address": "[FIX AFTER DEPLOY]",
6+
"eventFilter": {
7+
"fromBlock": "[FIX AFTER DEPLOY]",
8+
"toBlock": "latest",
9+
"args": {
10+
"_transactionID": "[FROM EXTERNAL DISPUTE ID]"
11+
}
12+
},
13+
"seek": [
14+
"transactionUri",
15+
"buyer",
16+
"seller",
17+
"amount",
18+
"asset",
19+
"deadline"
20+
],
21+
"populate": [
22+
"_transactionUri",
23+
"_buyer",
24+
"_seller",
25+
"_amount",
26+
"_asset",
27+
"_deadline"
28+
]
29+
},
30+
{
31+
"type":"fetch/ipfsJson",
32+
"todo": "get title, description, extraDescriptionUri from _transactionUri"
33+
}
34+
]
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
{
2+
"$schema": "../NewDisputeTemplate.schema.json",
3+
"title": "{{title}}", // from the form
4+
"description": "{{description}}", // from the contract terms form
5+
"question": "Which party abided by the terms of the contract?",
6+
"answers": [
7+
{
8+
"title": "Refund the Buyer",
9+
"description": "Select this to return the funds to the Buyer."
10+
},
11+
{
12+
"title": "Pay the Seller",
13+
"description": "Select this to release the funds to the Seller."
14+
}
15+
],
16+
"policyURI": "/ipfs/XxxxxXXX/escrow-general-policy.pdf", // not transaction-specific
17+
"attachment": { // transaction-specific
18+
"label": "Transaction Terms",
19+
"uri": "{{extraDescriptionUri}}"
20+
},
21+
"frontendUrl": "https://escrow-v2.kleros.builders/#/myTransactions/%s", // deployment specific, might break over time
22+
"arbitrableChainID": "421614",
23+
"arbitrableAddress": "0x??", // Escrow, hardcode after deploy-time
24+
"arbitratorChainID": "421614",
25+
"arbitratorAddress": "0x??", // KlerosCore, hardcode after deploy-time
26+
"metadata": {
27+
"buyer": "{{buyer}}",
28+
"seller": "{{seller}}",
29+
"amount": "{{amount}}", // in Wei or ERC20 units
30+
"asset": "{{asset}}", // "0" or "native" or "0x1234..." or "erc20:0x1234...", cf. CAIP-19,20,21
31+
"deadline": "{{deadline}}",
32+
"transactionUri": "{{transactionUri}}" // transaction-specific
33+
},
34+
"category": "Escrow",
35+
"specification": "KIPXXX",
36+
"aliases": {
37+
"Buyer": "{{buyer}}",
38+
"Seller": "{{seller}}"
39+
},
40+
"version": "1.0"
41+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
type DisputeRequest = {
2+
arbitrator: string; // klerosCore address
3+
arbitrableDisputeID: number; // dispute id
4+
externalDisputeID: number; // Escrow transaction id
5+
templateId: number; // Escrow configuration
6+
templateUri: string; // empty
7+
};

kleros-sdk/config/v2-disputetemplate/linguo/NewDisputeTemplate.linguo.jsonc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,6 @@
2020
"arbitratorChainID": "421614",
2121
"arbitratorAddress": "0xD08Ab99480d02bf9C092828043f611BcDFEA917b", // KlerosCore
2222
"category": "Translation",
23-
"specification": "KIP999"
23+
"specification": "KIP999",
24+
"version": "1.0"
2425
}

kleros-sdk/config/v2-disputetemplate/linguo/example/DisputeDetails.linguo.jsonc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
"category": "Translation",
3333
"lang": "en_US",
3434
"specification": "KIP999",
35+
"version": "1.0",
3536
"metadata": {
3637
"linguoAddress": "0xe78996a233895be74a66f451f1019ca9734205cc",
3738
"linguoTranslationID": "76",

0 commit comments

Comments
 (0)