diff --git a/.manifests/public/content/translations/ar/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/ar/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..d16f5f94d57 --- /dev/null +++ b/.manifests/public/content/translations/ar/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:32:21.372Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/ar/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/ar/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..7bf00ce94b3 --- /dev/null +++ b/.manifests/public/content/translations/ar/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "ar", + "translatedAt": "2026-05-13T15:32:23.226Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:32:23.226Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/bn/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/bn/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..079eb3a1382 --- /dev/null +++ b/.manifests/public/content/translations/bn/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:32:55.366Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/bn/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/bn/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..3210d91cd7f --- /dev/null +++ b/.manifests/public/content/translations/bn/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "bn", + "translatedAt": "2026-05-13T15:32:57.165Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:32:57.165Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/cs/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/cs/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..748e18d4744 --- /dev/null +++ b/.manifests/public/content/translations/cs/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:32:39.915Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/cs/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/cs/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..190c2defd8b --- /dev/null +++ b/.manifests/public/content/translations/cs/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "cs", + "translatedAt": "2026-05-13T15:32:43.596Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:32:43.596Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/de/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/de/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..8e259890f86 --- /dev/null +++ b/.manifests/public/content/translations/de/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:32:36.356Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/de/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/de/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..22646857160 --- /dev/null +++ b/.manifests/public/content/translations/de/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "de", + "translatedAt": "2026-05-13T15:32:41.775Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:32:41.775Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/es/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/es/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..cbe59c97ff7 --- /dev/null +++ b/.manifests/public/content/translations/es/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:32:08.573Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/es/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/es/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..5bedb1a41e6 --- /dev/null +++ b/.manifests/public/content/translations/es/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "es", + "translatedAt": "2026-05-13T15:32:11.994Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:32:11.994Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/fr/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/fr/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..16afb984e57 --- /dev/null +++ b/.manifests/public/content/translations/fr/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:31:53.782Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/fr/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/fr/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..968a957ca1f --- /dev/null +++ b/.manifests/public/content/translations/fr/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "fr", + "translatedAt": "2026-05-13T15:31:57.286Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:31:57.286Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/hi/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/hi/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..55324fde33f --- /dev/null +++ b/.manifests/public/content/translations/hi/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:32:01.239Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/hi/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/hi/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..93bef485f9a --- /dev/null +++ b/.manifests/public/content/translations/hi/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "hi", + "translatedAt": "2026-05-13T15:32:06.770Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:32:06.770Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/id/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/id/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..5de9ca272e9 --- /dev/null +++ b/.manifests/public/content/translations/id/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:32:26.921Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/id/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/id/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..48e36fa460d --- /dev/null +++ b/.manifests/public/content/translations/id/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "id", + "translatedAt": "2026-05-13T15:32:29.039Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:32:29.039Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/it/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/it/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..58733cfaa4d --- /dev/null +++ b/.manifests/public/content/translations/it/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:31:55.634Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/it/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/it/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..d09b8fcfc28 --- /dev/null +++ b/.manifests/public/content/translations/it/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "it", + "translatedAt": "2026-05-13T15:31:59.296Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:31:59.296Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/ja/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/ja/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..ba6a76541dc --- /dev/null +++ b/.manifests/public/content/translations/ja/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:32:30.906Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/ja/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/ja/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..11f68f0d55f --- /dev/null +++ b/.manifests/public/content/translations/ja/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "ja", + "translatedAt": "2026-05-13T15:32:34.490Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:32:34.490Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/ko/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/ko/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..582d0c9c842 --- /dev/null +++ b/.manifests/public/content/translations/ko/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:32:49.094Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/ko/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/ko/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..6c9b2c7a486 --- /dev/null +++ b/.manifests/public/content/translations/ko/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "ko", + "translatedAt": "2026-05-13T15:32:51.061Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:32:51.061Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/mr/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/mr/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..a6b1a5d65ff --- /dev/null +++ b/.manifests/public/content/translations/mr/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:33:09.315Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/mr/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/mr/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..2fa9718073c --- /dev/null +++ b/.manifests/public/content/translations/mr/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "mr", + "translatedAt": "2026-05-13T15:33:15.076Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:33:15.076Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/pl/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/pl/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..a7908972dfa --- /dev/null +++ b/.manifests/public/content/translations/pl/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:37:31.946Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/pl/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/pl/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..841010506f1 --- /dev/null +++ b/.manifests/public/content/translations/pl/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "pl", + "translatedAt": "2026-05-13T15:37:33.787Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:37:33.787Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/pt-br/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/pt-br/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..c76a273cfa1 --- /dev/null +++ b/.manifests/public/content/translations/pt-br/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:33:13.316Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/pt-br/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/pt-br/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..2b17fe621df --- /dev/null +++ b/.manifests/public/content/translations/pt-br/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "pt-br", + "translatedAt": "2026-05-13T15:33:19.379Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:33:19.379Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/ru/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/ru/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..53ab79a96bf --- /dev/null +++ b/.manifests/public/content/translations/ru/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:34:09.156Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/ru/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/ru/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..b437b790907 --- /dev/null +++ b/.manifests/public/content/translations/ru/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "ru", + "translatedAt": "2026-05-13T15:34:11.109Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:34:11.109Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/sw/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/sw/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..4fa4236413a --- /dev/null +++ b/.manifests/public/content/translations/sw/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:33:07.434Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/sw/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/sw/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..f34963e4b19 --- /dev/null +++ b/.manifests/public/content/translations/sw/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "sw", + "translatedAt": "2026-05-13T15:33:11.337Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:33:11.337Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/ta/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/ta/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..41c95793fd3 --- /dev/null +++ b/.manifests/public/content/translations/ta/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:34:31.019Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/ta/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/ta/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..a2d35f5f8d9 --- /dev/null +++ b/.manifests/public/content/translations/ta/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "ta", + "translatedAt": "2026-05-13T15:34:33.251Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-bacad0", + "CODE-6547ac", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:34:33.251Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/te/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/te/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..cef229054fa --- /dev/null +++ b/.manifests/public/content/translations/te/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:35:00.824Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/te/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/te/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..e50a6888302 --- /dev/null +++ b/.manifests/public/content/translations/te/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "te", + "translatedAt": "2026-05-13T15:35:04.900Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:35:04.900Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/tr/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/tr/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..1bba2588127 --- /dev/null +++ b/.manifests/public/content/translations/tr/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:34:40.206Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/tr/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/tr/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..dfbe3f24db7 --- /dev/null +++ b/.manifests/public/content/translations/tr/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "tr", + "translatedAt": "2026-05-13T15:34:42.317Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:34:42.317Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/uk/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/uk/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..b97ff8f050a --- /dev/null +++ b/.manifests/public/content/translations/uk/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:34:59.047Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/uk/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/uk/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..ffca0b85e25 --- /dev/null +++ b/.manifests/public/content/translations/uk/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "uk", + "translatedAt": "2026-05-13T15:35:02.853Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:35:02.853Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/ur/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/ur/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..4f6da68c28a --- /dev/null +++ b/.manifests/public/content/translations/ur/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:35:43.067Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/ur/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/ur/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..408ded36c52 --- /dev/null +++ b/.manifests/public/content/translations/ur/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "ur", + "translatedAt": "2026-05-13T15:35:44.862Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:35:44.862Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/vi/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/vi/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..dbad79a0ad8 --- /dev/null +++ b/.manifests/public/content/translations/vi/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:36:27.918Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/vi/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/vi/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..ec1501ab1e5 --- /dev/null +++ b/.manifests/public/content/translations/vi/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "vi", + "translatedAt": "2026-05-13T15:36:29.708Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:36:29.708Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/zh-tw/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/zh-tw/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..8d5d23073d3 --- /dev/null +++ b/.manifests/public/content/translations/zh-tw/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:36:03.660Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/zh-tw/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/zh-tw/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..74cb1ba4887 --- /dev/null +++ b/.manifests/public/content/translations/zh-tw/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "zh-tw", + "translatedAt": "2026-05-13T15:36:05.552Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:36:05.551Z", + "status": "success" + } + } +} diff --git a/.manifests/public/content/translations/zh/developers/tutorials/clear-signing/index.md/source.json b/.manifests/public/content/translations/zh/developers/tutorials/clear-signing/index.md/source.json new file mode 100644 index 00000000000..1dd9410b752 --- /dev/null +++ b/.manifests/public/content/translations/zh/developers/tutorials/clear-signing/index.md/source.json @@ -0,0 +1,924 @@ +{ + "version": 1, + "sourceFile": "public/content/developers/tutorials/clear-signing/index.md", + "generatedAt": "2026-05-13T15:35:10.290Z", + "rootHash": "a7a4bfce5eb4", + "tree": { + "contentHash": "b7675f01ffb9", + "anchorHash": "b0bf36b30bc0", + "children": { + "frontmatter:title": { + "contentHash": "938863aeb4e2", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:description": { + "contentHash": "639da382fa81", + "anchorHash": "e3b0c44298fc" + }, + "frontmatter:author": { + "contentHash": "e3b0c44298fc", + "anchorHash": "47b93417844b" + }, + "frontmatter:lang": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dbd3a49d0d90" + }, + "frontmatter:tags": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a7168a350c1a" + }, + "frontmatter:skill": { + "contentHash": "e3b0c44298fc", + "anchorHash": "94e6f02a5aca" + }, + "frontmatter:breadcrumb": { + "contentHash": "e3b0c44298fc", + "anchorHash": "856baa9954ba" + }, + "frontmatter:published": { + "contentHash": "e3b0c44298fc", + "anchorHash": "776dae374cac" + }, + "prose:2": { + "contentHash": "51912d76d0ac", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "36e8574ff15e", + "anchorHash": "d332fd34a564" + }, + "prose:3": { + "contentHash": "55705691556f", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "6c5253a17fe0", + "anchorHash": "2323d645aa3f" + }, + "prose:4": { + "contentHash": "cfb62bfbd133", + "anchorHash": "e3b0c44298fc" + }, + "prerequisites": { + "contentHash": "7b4d43e32256", + "anchorHash": "0e98edef66f2", + "labelHash": "865514682d01", + "children": { + "_label": { + "contentHash": "865514682d01", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b1851e70e068", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "1a2c19ef58a9" + }, + "prose:2": { + "contentHash": "8e0e3ee614d5", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "link:0", + "prose:2" + ] + }, + "what-is-an-erc-7730-descriptor": { + "contentHash": "d4927db1c478", + "anchorHash": "57541cac7894", + "labelHash": "c06b9c0cf861", + "children": { + "_label": { + "contentHash": "c06b9c0cf861", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "fa2a68038c98", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:4": { + "contentHash": "bf662b24e3be", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "45447b7afbd5" + }, + "prose:5": { + "contentHash": "4c5be13cdf3d", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "dfbb889cf19b" + }, + "prose:6": { + "contentHash": "ae954237146b", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + }, + "step-1-create-the-file-skeleton": { + "contentHash": "b2eb6b3bdd4d", + "anchorHash": "bcb92fb5f867", + "labelHash": "797c2c73b4a9", + "children": { + "_label": { + "contentHash": "797c2c73b4a9", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "c05ced17ccf9", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "992c44a6d358" + }, + "prose:5": { + "contentHash": "4706472a616f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6547aca25c78" + }, + "prose:6": { + "contentHash": "91687dfbd3e0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bacad0718bdd" + }, + "prose:7": { + "contentHash": "03cbdadde961", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1a6f94369da9" + }, + "prose:8": { + "contentHash": "012d27d7d643", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "fd33b2f8ca8b" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8", + "code-fence:10" + ] + }, + "step-2-write-the-context-section": { + "contentHash": "0ab9990044f5", + "anchorHash": "23019b26ae69", + "labelHash": "72b40745947d", + "children": { + "_label": { + "contentHash": "72b40745947d", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ea7792a26f40" + }, + "prose:2": { + "contentHash": "8e0107745697", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2067e596a4e4" + }, + "context-fields": { + "contentHash": "bfb2b0478c02", + "anchorHash": "212a41ffc131", + "labelHash": "9fb6ac1b715a", + "children": { + "_label": { + "contentHash": "9fb6ac1b715a", + "anchorHash": "e3b0c44298fc" + }, + "prose:4": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "be537b75c781" + }, + "prose:5": { + "contentHash": "44d8e11660e2", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6ac5dbaea37a" + }, + "prose:6": { + "contentHash": "5122dc220baa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "283ed870d9ed" + }, + "prose:7": { + "contentHash": "76b7fc9b476b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "6da7cd60baae" + }, + "prose:8": { + "contentHash": "f27890398e4c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:4", + "inline-code:0", + "prose:5", + "inline-code:1", + "prose:6", + "inline-code:2", + "prose:7", + "inline-code:3", + "prose:8" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "code-fence:4", + "context-fields" + ] + }, + "step-3-write-the-metadata-section": { + "contentHash": "1cbeeebbf8e0", + "anchorHash": "980f0d089315", + "labelHash": "ca170595c69f", + "children": { + "_label": { + "contentHash": "ca170595c69f", + "anchorHash": "e3b0c44298fc" + }, + "prose:0": { + "contentHash": "8b40996d285f", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "900f18741487" + }, + "metadata-fields": { + "contentHash": "ce59b527d193", + "anchorHash": "a0d289513aee", + "labelHash": "40b0481e9dfc", + "children": { + "_label": { + "contentHash": "40b0481e9dfc", + "anchorHash": "e3b0c44298fc" + }, + "prose:3": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4c1029697ee3" + }, + "prose:4": { + "contentHash": "5feed1e1051f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f874b52e9f7f" + }, + "prose:5": { + "contentHash": "a6d909937732", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "7b30456175d8" + }, + "prose:6": { + "contentHash": "eb5a1bc2629c", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:3", + "inline-code:0", + "prose:4", + "inline-code:1", + "prose:5", + "inline-code:2", + "prose:6" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:0", + "code-fence:2", + "metadata-fields" + ] + }, + "step-4-write-the-displayformats-section": { + "contentHash": "6573db95f4e6", + "anchorHash": "2d189e4b2a73", + "labelHash": "3715032e47cb", + "children": { + "_label": { + "contentHash": "3715032e47cb", + "anchorHash": "e3b0c44298fc" + }, + "prose:1": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8570c7f740de" + }, + "prose:2": { + "contentHash": "7ee4c5eef97e", + "anchorHash": "e3b0c44298fc" + }, + "eg-describing-token-swap": { + "contentHash": "4b9f7d802648", + "anchorHash": "ff83f5b45c13", + "labelHash": "9e3663708daf", + "children": { + "_label": { + "contentHash": "9e3663708daf", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "f25ba3a3d3ff" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "display-fields": { + "contentHash": "817c2beec7b5", + "anchorHash": "e01677456c92", + "labelHash": "610f080a2e90", + "children": { + "_label": { + "contentHash": "610f080a2e90", + "anchorHash": "e3b0c44298fc" + }, + "prose:20": { + "contentHash": "ebcb914270e3", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:0": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:21": { + "contentHash": "e22c0188c027", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "ab12f3ae254e" + }, + "prose:22": { + "contentHash": "d6cb7c67e128", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d8bdd36c4b55" + }, + "prose:23": { + "contentHash": "5177f824ead7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "282bcbc3f0a3" + }, + "prose:24": { + "contentHash": "c9eea2393129", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bfe5d697162d" + }, + "prose:25": { + "contentHash": "e05e729f8317", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a0af9f865bf6" + }, + "prose:26": { + "contentHash": "a009305d9c74", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:6": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7803a92d10c" + }, + "prose:27": { + "contentHash": "5d8ce36f8cfa", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:7": { + "contentHash": "e3b0c44298fc", + "anchorHash": "acb7edd6de32" + }, + "prose:28": { + "contentHash": "fb3a4cb5460a", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:8": { + "contentHash": "e3b0c44298fc", + "anchorHash": "1aca80e8b55c" + }, + "prose:29": { + "contentHash": "52c15ab0655c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:9": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e904c9ccfa42" + }, + "prose:30": { + "contentHash": "956fcbe6828b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:10": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:31": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:11": { + "contentHash": "e3b0c44298fc", + "anchorHash": "20376120da72" + }, + "prose:32": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:12": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:33": { + "contentHash": "c36d819e7bc6", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:13": { + "contentHash": "e3b0c44298fc", + "anchorHash": "d7439bee2477" + }, + "prose:34": { + "contentHash": "2d677689d71b", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:14": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:35": { + "contentHash": "486989e6fa0e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:15": { + "contentHash": "e3b0c44298fc", + "anchorHash": "8ffa136a7906" + }, + "prose:36": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:16": { + "contentHash": "e3b0c44298fc", + "anchorHash": "2fa8ac667463" + }, + "prose:37": { + "contentHash": "7743d0c63646", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:17": { + "contentHash": "e3b0c44298fc", + "anchorHash": "0e87632cd46b" + }, + "prose:38": { + "contentHash": "c01bf185841e", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:18": { + "contentHash": "e3b0c44298fc", + "anchorHash": "e8424ea5339b" + }, + "prose:39": { + "contentHash": "42c65e884b57", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:19": { + "contentHash": "e3b0c44298fc", + "anchorHash": "a20b52fae57c" + }, + "prose:40": { + "contentHash": "cdb4ee2aea69", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:20", + "inline-code:0", + "prose:21", + "inline-code:1", + "prose:22", + "inline-code:2", + "prose:23", + "inline-code:3", + "prose:24", + "inline-code:4", + "prose:25", + "inline-code:5", + "prose:26", + "inline-code:6", + "prose:27", + "inline-code:7", + "prose:28", + "inline-code:8", + "prose:29", + "inline-code:9", + "prose:30", + "inline-code:10", + "prose:31", + "inline-code:11", + "prose:32", + "inline-code:12", + "prose:33", + "inline-code:13", + "prose:34", + "inline-code:14", + "prose:35", + "inline-code:15", + "prose:36", + "inline-code:16", + "prose:37", + "inline-code:17", + "prose:38", + "inline-code:18", + "prose:39", + "inline-code:19", + "prose:40" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:1", + "inline-code:0", + "prose:2", + "eg-describing-token-swap", + "display-fields" + ] + }, + "the-complete-descriptor": { + "contentHash": "4b9f7d802648", + "anchorHash": "2b6900c10bfe", + "labelHash": "9b4df142a6b2", + "children": { + "_label": { + "contentHash": "9b4df142a6b2", + "anchorHash": "e3b0c44298fc" + }, + "code-fence:1": { + "contentHash": "e3b0c44298fc", + "anchorHash": "292b78521828" + } + }, + "childrenOrder": [ + "_label", + "code-fence:1" + ] + }, + "step-5-submit-to-the-registry": { + "contentHash": "cea1c7f8b723", + "anchorHash": "a865f962f8d2", + "labelHash": "86a160a4e708", + "children": { + "_label": { + "contentHash": "86a160a4e708", + "anchorHash": "e3b0c44298fc" + }, + "prose:6": { + "contentHash": "b344d80e24a3", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "d7a3c05ff441", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "b1cc2e711844", + "anchorHash": "0733950ba864" + }, + "prose:8": { + "contentHash": "c44d677f440f", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:2": { + "contentHash": "e3b0c44298fc", + "anchorHash": "b7300d2549c9" + }, + "prose:9": { + "contentHash": "08027b685e1c", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:3": { + "contentHash": "e3b0c44298fc", + "anchorHash": "4e56739af42d" + }, + "prose:10": { + "contentHash": "87856522f4c7", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:4": { + "contentHash": "e3b0c44298fc", + "anchorHash": "631b0bf76158" + }, + "prose:11": { + "contentHash": "37d73a5e18f0", + "anchorHash": "e3b0c44298fc" + }, + "inline-code:5": { + "contentHash": "e3b0c44298fc", + "anchorHash": "bd899ed47909" + }, + "prose:12": { + "contentHash": "a7aed484ffdc", + "anchorHash": "e3b0c44298fc" + }, + "component:14": { + "contentHash": "248183283e94", + "anchorHash": "4b8d930cca2c", + "children": { + "attr:variant": { + "contentHash": "e3b0c44298fc", + "anchorHash": "06271baf4953" + }, + "component:0": { + "contentHash": "024b7c2c5777", + "anchorHash": "040494d1ff52", + "children": { + "component:0": { + "contentHash": "1e883b47b306", + "anchorHash": "c65a953b6368", + "children": { + "prose:2": { + "contentHash": "ff6d76b22d93", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:0": { + "contentHash": "3f24d1cc698f", + "anchorHash": "f42c3278a396" + }, + "prose:3": { + "contentHash": "a1291d27f8c9", + "anchorHash": "e3b0c44298fc" + }, + "html-tag:1": { + "contentHash": "a9f71ae8efbd", + "anchorHash": "1825934bc9a3" + }, + "prose:4": { + "contentHash": "0eac7d776c90", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "prose:2", + "html-tag:0", + "prose:3", + "html-tag:1", + "prose:4" + ] + } + } + } + }, + "childrenOrder": [ + "attr:variant", + "component:0" + ] + } + }, + "childrenOrder": [ + "_label", + "prose:6", + "link:0", + "prose:7", + "link:1", + "prose:8", + "inline-code:2", + "prose:9", + "inline-code:3", + "prose:10", + "inline-code:4", + "prose:11", + "inline-code:5", + "prose:12", + "component:14" + ] + }, + "what-happens-after-merging": { + "contentHash": "c093c83c5b7a", + "anchorHash": "333ed1c9dbbb", + "labelHash": "24fafccb3dfe", + "children": { + "_label": { + "contentHash": "24fafccb3dfe", + "anchorHash": "e3b0c44298fc" + }, + "prose:2": { + "contentHash": "ab4220c4492a", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "1a094f58bc33", + "anchorHash": "e6ae0d1e3bc4" + }, + "prose:3": { + "contentHash": "e88345585b71", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:4": { + "contentHash": "81c682ba622a", + "anchorHash": "e3b0c44298fc" + } + }, + "childrenOrder": [ + "_label", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4" + ] + }, + "further-reading": { + "contentHash": "e2ecfa85cbd3", + "anchorHash": "4ba48e3bc587", + "labelHash": "4082f515b2f4", + "children": { + "_label": { + "contentHash": "4082f515b2f4", + "anchorHash": "e3b0c44298fc" + }, + "prose:5": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:0": { + "contentHash": "25060728e522", + "anchorHash": "d332fd34a564" + }, + "prose:6": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:1": { + "contentHash": "98592e41ee25", + "anchorHash": "44381310cfc9" + }, + "prose:7": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:2": { + "contentHash": "afeef478fbb6", + "anchorHash": "aeab1b5128e7" + }, + "prose:8": { + "contentHash": "dac3808f2d1f", + "anchorHash": "e3b0c44298fc" + }, + "link:3": { + "contentHash": "ad6917ba08b5", + "anchorHash": "1a2c19ef58a9" + }, + "prose:9": { + "contentHash": "3973e022e932", + "anchorHash": "e3b0c44298fc" + }, + "link:4": { + "contentHash": "3e7f51de2108", + "anchorHash": "c5b18ea0c8a8" + } + }, + "childrenOrder": [ + "_label", + "prose:5", + "link:0", + "prose:6", + "link:1", + "prose:7", + "link:2", + "prose:8", + "link:3", + "prose:9", + "link:4" + ] + } + }, + "childrenOrder": [ + "frontmatter:title", + "frontmatter:description", + "frontmatter:author", + "frontmatter:lang", + "frontmatter:tags", + "frontmatter:skill", + "frontmatter:breadcrumb", + "frontmatter:published", + "prose:2", + "link:0", + "prose:3", + "link:1", + "prose:4", + "prerequisites", + "what-is-an-erc-7730-descriptor", + "step-1-create-the-file-skeleton", + "step-2-write-the-context-section", + "step-3-write-the-metadata-section", + "step-4-write-the-displayformats-section", + "the-complete-descriptor", + "step-5-submit-to-the-registry", + "what-happens-after-merging", + "further-reading" + ] + }, + "sourceCommitSha": "f98f0fe3a96ed1bb11dd1c765430692af1757bd0" +} diff --git a/.manifests/public/content/translations/zh/developers/tutorials/clear-signing/index.md/translation.json b/.manifests/public/content/translations/zh/developers/tutorials/clear-signing/index.md/translation.json new file mode 100644 index 00000000000..a2e75a70457 --- /dev/null +++ b/.manifests/public/content/translations/zh/developers/tutorials/clear-signing/index.md/translation.json @@ -0,0 +1,379 @@ +{ + "version": 1, + "locale": "zh", + "translatedAt": "2026-05-13T15:35:12.207Z", + "englishManifestHash": "a7a4bfce5eb4", + "placeholderOrder": [ + "LINK-04ff04", + "LINK-3054b8", + "LINK-7d8a12", + "CODE-ea7792", + "CODE-45447b", + "CODE-dfbb88", + "CODE-992c44", + "CODE-6547ac", + "CODE-bacad0", + "CODE-1a6f94", + "CODEBLOCK-a8074f", + "CODE-ea7792", + "CODEBLOCK-75d6f6", + "CODE-be537b", + "CODE-6ac5db", + "CODE-283ed8", + "CODE-6da7cd", + "CODEBLOCK-9ba6cc", + "CODE-4c1029", + "CODE-f874b5", + "CODE-7b3045", + "CODE-8570c7", + "CODEBLOCK-3cba61", + "CODE-282bcb", + "CODE-ab12f3", + "CODE-d8bdd3", + "CODE-282bcb", + "CODE-bfe5d6", + "CODE-a0af9f", + "CODE-b7803a", + "CODE-acb7ed", + "CODE-1aca80", + "CODE-e904c9", + "CODE-8ffa13", + "CODE-203761", + "CODE-0e8763", + "CODE-d7439b", + "CODE-a20b52", + "CODE-8ffa13", + "CODE-2fa8ac", + "CODE-0e8763", + "CODE-e8424e", + "CODE-a20b52", + "CODEBLOCK-4c9b24", + "LINK-f0013a", + "LINK-3bd082", + "CODE-b7300d", + "CODE-4e5673", + "CODE-631b0b", + "CODE-bd899e", + "HTMLTAG-ca8a75", + "HTMLTAG-e19fa2", + "LINK-69cf6e", + "LINK-5b2983", + "LINK-1fee65", + "LINK-f0013a", + "LINK-5b2983", + "LINK-9e80b4", + "LINK-b25a0f" + ], + "placeholderMap": { + "CODEBLOCK-a8074f": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-75d6f6": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-9ba6cc": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-3cba61": { + "type": "code-fence", + "values": {} + }, + "CODEBLOCK-4c9b24": { + "type": "code-fence", + "values": {} + }, + "HTMLTAG-ca8a75": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://repo.sourcify.dev" + } + }, + "HTMLTAG-e19fa2": { + "type": "html-tag", + "values": { + "tagName": "a", + "href": "https://verify.sourcify.dev/" + } + }, + "CODE-ea7792": { + "type": "inline-code", + "values": { + "content": "context" + } + }, + "CODE-45447b": { + "type": "inline-code", + "values": { + "content": "metadata" + } + }, + "CODE-dfbb88": { + "type": "inline-code", + "values": { + "content": "display" + } + }, + "CODE-992c44": { + "type": "inline-code", + "values": { + "content": "calldata--.json" + } + }, + "CODE-6547ac": { + "type": "inline-code", + "values": { + "content": "calldata-" + } + }, + "CODE-bacad0": { + "type": "inline-code", + "values": { + "content": "eip712-" + } + }, + "CODE-1a6f94": { + "type": "inline-code", + "values": { + "content": "descriptorversion" + } + }, + "CODE-be537b": { + "type": "inline-code", + "values": { + "content": "context.$id" + } + }, + "CODE-6ac5db": { + "type": "inline-code", + "values": { + "content": "contract.deployments" + } + }, + "CODE-283ed8": { + "type": "inline-code", + "values": { + "content": "deployments[].chainId" + } + }, + "CODE-6da7cd": { + "type": "inline-code", + "values": { + "content": "deployments[].address" + } + }, + "CODE-4c1029": { + "type": "inline-code", + "values": { + "content": "owner" + } + }, + "CODE-f874b5": { + "type": "inline-code", + "values": { + "content": "info.url" + } + }, + "CODE-7b3045": { + "type": "inline-code", + "values": { + "content": "contractName" + } + }, + "CODE-8570c7": { + "type": "inline-code", + "values": { + "content": "display.formats" + } + }, + "CODE-282bcb": { + "type": "inline-code", + "values": { + "content": "intent" + } + }, + "CODE-ab12f3": { + "type": "inline-code", + "values": { + "content": "interpolatedIntent" + } + }, + "CODE-d8bdd3": { + "type": "inline-code", + "values": { + "content": "\"Swap {amountIn} for at least {amountOutMin}\"" + } + }, + "CODE-bfe5d6": { + "type": "inline-code", + "values": { + "content": "fields" + } + }, + "CODE-a0af9f": { + "type": "inline-code", + "values": { + "content": "path" + } + }, + "CODE-b7803a": { + "type": "inline-code", + "values": { + "content": "#.fieldName" + } + }, + "CODE-acb7ed": { + "type": "inline-code", + "values": { + "content": "@.value" + } + }, + "CODE-1aca80": { + "type": "inline-code", + "values": { + "content": "label" + } + }, + "CODE-e904c9": { + "type": "inline-code", + "values": { + "content": "format" + } + }, + "CODE-8ffa13": { + "type": "inline-code", + "values": { + "content": "tokenAmount" + } + }, + "CODE-203761": { + "type": "inline-code", + "values": { + "content": "addressName" + } + }, + "CODE-0e8763": { + "type": "inline-code", + "values": { + "content": "date" + } + }, + "CODE-d7439b": { + "type": "inline-code", + "values": { + "content": "raw" + } + }, + "CODE-a20b52": { + "type": "inline-code", + "values": { + "content": "params" + } + }, + "CODE-2fa8ac": { + "type": "inline-code", + "values": { + "content": "tokenPath" + } + }, + "CODE-e8424e": { + "type": "inline-code", + "values": { + "content": "encoding" + } + }, + "CODE-b7300d": { + "type": "inline-code", + "values": { + "content": "registry//" + } + }, + "CODE-4e5673": { + "type": "inline-code", + "values": { + "content": "registry/myproject/calldata-mycontract-0_0.json" + } + }, + "CODE-631b0b": { + "type": "inline-code", + "values": { + "content": "$schema" + } + }, + "CODE-bd899e": { + "type": "inline-code", + "values": { + "content": "\"../../specs/erc7730-v2.schema.json\"" + } + }, + "LINK-04ff04": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-3054b8": { + "type": "link", + "values": { + "url": "https://clearsigning.org/" + } + }, + "LINK-7d8a12": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-f0013a": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/clear-signing-erc7730-registry" + } + }, + "LINK-3bd082": { + "type": "link", + "values": { + "url": "/foundation/" + } + }, + "LINK-69cf6e": { + "type": "link", + "values": { + "url": "https://github.com/ethereum/ERCs/pull/1576" + } + }, + "LINK-5b2983": { + "type": "link", + "values": { + "url": "https://clearsigning.org" + } + }, + "LINK-1fee65": { + "type": "link", + "values": { + "url": "https://eips.ethereum.org/EIPS/eip-7730" + } + }, + "LINK-9e80b4": { + "type": "link", + "values": { + "url": "https://sourcify.dev" + } + }, + "LINK-b25a0f": { + "type": "link", + "values": { + "url": "https://trilliondollarsecurity.org" + } + } + }, + "sections": { + "_all": { + "translatedAt": "2026-05-13T15:35:12.207Z", + "status": "success" + } + } +} diff --git a/public/content/translations/ar/developers/tutorials/clear-signing/index.md b/public/content/translations/ar/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..bc30a1f82e1 --- /dev/null +++ b/public/content/translations/ar/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "إضافة التوقيع الواضح إلى بروتوكولك باستخدام ⁦ERC-7730⁩" +description: "تعلم كيفية كتابة واصف ⁦ERC-7730⁩ بحيث تعرض تفاعلات العقد الذكي الخاص بك تفاصيل قابلة للقراءة البشرية في المحافظ قبل أن يقوم المستخدمون بالتوقيع." +author: "هيستر برويكمان" +lang: ar +tags: ["ERC-7730", "الأمان", "توقيع", "عقود ذكية", "محافظ"] +skill: intermediate +breadcrumb: "التوقيع الواضح" +published: 2026-05-11 +--- + +كانت الخطوة الأخيرة في معظم اختراقات إيثيريوم الكبرى هي نفسها: مستخدم يوافق على معاملة لا يمكنه فهمها بشكل هادف. تعرض محافظ الأجهزة بيانات الاستدعاء (calldata) السداسية العشرية الخام، والأسوأ من ذلك أنها تجبرك على تفعيل التوقيع الأعمى. تعرض محافظ البرامج الحقول التي تم فك تشفيرها، ولكن فقط عندما تتعرف على العقد. وعندما لا تتعرف عليه، سواء لأن البروتوكول جديد، أو التطبيق مخترق، أو الجهاز غير متصل بالإنترنت، يقوم المستخدمون بالتوقيع بشكل أعمى. + +يحدد [ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) تنسيق JSON قياسيًا لوصف *معنى* استدعاءات دوال العقد الخاص بك. + +تقرأ المحفظة التي تدعم ERC-7730 الواصف الخاص بك وتعرض: + +> **مبادلة** +> إرسال: 1,000 USDC +> الحد الأدنى للاستلام: 0.42 WETH +> البروتوكول: يونيسواب V3 + +أو جملة واحدة مركبة قابلة للقراءة من قبل البشر والوكلاء على حد سواء: + +> مبادلة 1,000 USDC مقابل 0.42 WETH على الأقل + +بدلاً من محدد الدالة وقائمة من القيم الصحيحة الخام. + +هذا هو [التوقيع الواضح](https://clearsigning.org/) — "ما تراه هو ما توقعه". يرشدك هذا البرنامج التعليمي خلال كتابة واصف للعقد الخاص بك، والتحقق من صحته باستخدام أداة سطر الأوامر (CLI) الرسمية، وإرساله إلى السجل المفتوح. + +## المتطلبات الأساسية {#prerequisites} + +- الإلمام بلغة Solidity وواجهات التطبيق الثنائية (ABI) للعقود الذكية +- عقد ذكي منشور مع واجهة تطبيق ثنائية (ABI) تم التحقق منها (التحقق من [Sourcify](https://sourcify.dev) مطلوب قبل قبول الواصف في السجل) +- Python 3.12+ لأداة سطر الأوامر (CLI) الخاصة بالتحقق +- معرفة أساسية بتنسيق JSON + +## ما هو واصف ⁦ERC-7730⁩؟ {#what-is-an-erc-7730-descriptor} + +الواصف هو ملف JSON واحد يتكون من ثلاثة أقسام: + +| القسم | الغرض | +| :---- | :---- | +| `context` | يربط الواصف بعمليات نشر عقد محددة بواسطة معرف السلسلة والعنوان | +| `metadata` | يسمي المشروع ويحدد الثوابت القابلة لإعادة الاستخدام | +| `display` | يعين كل توقيع دالة إلى تسميات وتنسيقات حقول قابلة للقراءة البشرية | + +نظرًا لأن الواصف منفصل عن العقد نفسه، يمكنك إضافة دعم التوقيع الواضح إلى أي بروتوكول حالي دون الحاجة إلى إعادة النشر. تسترد المحافظ الواصفات من السجل وتستخدمها في وقت التوقيع. + +## الخطوة 1: إنشاء هيكل الملف {#step-1-create-the-file-skeleton} + +قم بإنشاء ملف باسم `calldata--.json`. تخبر البادئة `calldata-` السجل أن هذا الواصف يغطي استدعاءات دوال العقد، على عكس `eip712-` لرسائل البيانات المكتوبة. يخبر `descriptorversion` السجل بإصدار ملف الواصف، وهو 0 افتراضيًا إذا لم يتم توفير إصدار. + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## الخطوة 2: كتابة قسم السياق {#step-2-write-the-context-section} + +يربط قسم `context` الواصف بعملية نشر عقد واحدة أو أكثر. تستخدم المحافظ هذا لمطابقة معاملة واردة مع الواصف الصحيح. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### حقول السياق {#context-fields} + +- `context.$id` — معرف فريد لمستند الواصف هذا أو تكوين النشر. +- `contract.deployments` — مجموعة عمليات النشر التي ينطبق عليها هذا الواصف. +- `deployments[].chainId` — معرف سلسلة آلة إيثيريوم الافتراضية (EVM) لعملية النشر. قم بتضمين كل سلسلة يتم نشر العقد الخاص بك عليها. +- `deployments[].address` — عنوان العقد الذي يجب أن تربطه المحافظ بهذا الواصف. استخدم عنوان التنفيذ الذي يحتوي على منطق التنفيذ. + +## الخطوة 3: كتابة قسم البيانات الوصفية {#step-3-write-the-metadata-section} + +يوفر قسم البيانات الوصفية معلومات قابلة للقراءة البشرية حول المشروع والعقد الموصوف في هذا الملف. قد تستخدم المحافظ هذه المعلومات لعرض أسماء البروتوكولات والروابط والتفاصيل السياقية الأخرى أثناء التوقيع. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### حقول البيانات الوصفية {#metadata-fields} + +- `owner` — المشروع أو البروتوكول أو المؤسسة أو المشرف المسؤول عن هذا الواصف. +- `info.url` — عنوان URL أساسي للمشروع أو الوثائق قد تعرضه المحافظ للمستخدمين للحصول على سياق إضافي. +- `contractName` — اسم العقد أو التنفيذ الموصوف في هذا الملف، والذي يتطابق عادةً مع الكود المصدري الذي تم التحقق منه أو واجهة التطبيق الثنائية (ABI). + +إذا كان ملف ERC-7730 الخاص بك يصف عقد ERC-20، فيجب عليك إضافة كائن رمز مميز أيضًا. + +## الخطوة 4: كتابة قسم تنسيقات العرض {#step-4-write-the-displayformats-section} + +يعين كائن `display.formats` تواقيع الدوال إلى تعليمات توقيع قابلة للقراءة البشرية. هذه هي الطريقة التي تعرض بها المحافظ الدالة الخاصة بك للمستخدمين قبل أن يوافقوا على معاملة! + +كل مفتاح عبارة عن جزء من واجهة التطبيق الثنائية (ABI) قابل للقراءة البشرية — توقيع الدالة بما في ذلك أسماء المعلمات وأنواعها تمامًا كما تظهر في واجهة التطبيق الثنائية (ABI) الخاصة بك. + + +### مثال: وصف مبادلة رمز مميز {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### حقول العرض {#display-fields} + +- **`intent`** — **(مطلوب)** وصف قصير وسهل الاستخدام للإجراء، مثل "مبادلة". +- **`interpolatedIntent`** — **(موصى به)** قالب جملة أكثر ثراءً يدمج قيم الحقول المنسقة، مثل `"Swap {amountIn} for at least {amountOutMin}"`. قم بتضمين هذا بجانب `intent` لتوفير واصف أكثر سهولة في الاستخدام يمكن للمحافظ اختيار عرضه بناءً على أي قيود عرض. +- **`fields`** — **(مطلوب)** القائمة المرتبة لحقول المعاملة التي يجب أن تعرضها المحافظ للمستخدمين. + - **`path`** — **(مطلوب)** إشارة إلى بيانات المعاملة. يشير `#.fieldName` إلى معلمة بيانات استدعاء (calldata) تم فك تشفيرها بالاسم الموجود في واجهة التطبيق الثنائية (ABI). يشير `@.value` إلى قيمة ETH المرسلة مع المعاملة. + - **`label`** — **(مطلوب)** التسمية القابلة للقراءة البشرية المعروضة بجانب القيمة. + - **`format`** — **(موصى به)** يتحكم في كيفية عرض القيمة. تشمل التنسيقات الشائعة: + - `tokenAmount` + - `addressName` + - `date` + + استخدم `raw` عندما لا تكون هناك حاجة إلى تنسيق إضافي. تقبل بعض التنسيقات تكوين **`params`** إضافي. على سبيل المثال: + + - يمكن لـ `tokenAmount` استخدام `tokenPath` لتحديد عنوان الرمز المميز الذي يوفر الخانات العشرية والبيانات الوصفية لرمز التداول. + - يمكن لـ `date` استخدام `encoding` لوصف كيفية تشفير الطابع الزمني. + + إذا كان التنسيق المحدد لا يتطلب معلومات إضافية، فتجاهل `params`. + +## الواصف الكامل {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## الخطوة 5: الإرسال إلى السجل {#step-5-submit-to-the-registry} + +يعد [سجل ⁦ERC-7730⁩](https://github.com/ethereum/clear-signing-erc7730-registry) مستودعًا مفتوحًا تستضيفه [مؤسسة إيثيريوم](/foundation/) كجهة راعية محايدة. يمكن لأي شخص استنساخه واستضافته ذاتيًا — وتقرر المحافظ بشكل مستقل مثيلات السجل التي تثق بها. + +1. قم بعمل تفرع (Fork) للمستودع على GitHub +2. قم بإنشاء مجلد في `registry//` +3. ضع ملفك بداخله: `registry/myproject/calldata-mycontract-0_0.json` +4. قم بتحديث حقل `$schema` إلى المسار النسبي المستخدم داخل المستودع: `"../../specs/erc7730-v2.schema.json"` +5. افتح طلب سحب (Pull request) + +عند فتح طلب السحب (PR)، يقوم التكامل المستمر (CI) تلقائيًا بتشغيل التحقق من صحة المخطط، ويتحقق من أن تواقيع الدوال تنتج محددات صالحة، ويؤكد أن عنوان العقد تم التحقق منه على Sourcify، ويشير إلى التناقضات في واجهة التطبيق الثنائية (ABI). تظهر نتائج الفحص مضمنة في طلب السحب. يقوم مشرفو السجل بفحص عمليات الإرسال بحثًا عن الواصفات المشوهة أو التي يحتمل أن تكون ضارة. الإدراج في السجل لا يعني التدقيق أو المصادقة. + + + + +**ملاحظة:** يجب التحقق من العقد الخاص بك على Sourcify قبل قبول طلب السحب (PR) الخاص بك. إذا لم يتم التحقق منه بعد، أرسل طلب التحقق أولاً. + + + + +## ماذا يحدث بعد الدمج؟ {#what-happens-after-merging} + +جميع الواصفات في السجل مفتوحة للمدققين. بعد دمج طلب السحب (PR) الخاص بك، يمكن لأي مدقق مراجعة الواصف الخاص بك ونشر تصديق تشفيري (بموجب [ERC-8176](https://github.com/ethereum/ERCs/pull/1576)) يؤكد دقته. + +تتيح إشارات التصديق هذه للمحافظ تطبيق سياسات الثقة الخاصة بها — فالواصف الذي يحتوي على تصديقات مستقلة متعددة يحمل وزنًا أكبر من الواصف الذي لا يحتوي عليها. يمكنك الوصول إلى مجتمع المدققين من خلال [clearsigning.org](https://clearsigning.org). + +تختار المحافظ السجل الذي ستدعمه. بمجرد وجود الواصف الخاص بك في السجل، ستبدأ المحافظ التي تدعم ERC-7730 في جلبه إذا كان موجودًا في سجلها وستعرض بيانات قابلة للقراءة البشرية عندما يتفاعل المستخدمون مع العقد الخاص بك. + +## قراءة إضافية {#further-reading} + +- [مواصفات ⁦ERC-7730⁩](https://eips.ethereum.org/EIPS/eip-7730) +- [سجل ⁦ERC-7730⁩](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — الأدوات، وحالة النظام البيئي، والحوكمة +- [التحقق من العقود عبر Sourcify](https://sourcify.dev) +- [مبادرة أمان التريليون دولار](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/bn/developers/tutorials/clear-signing/index.md b/public/content/translations/bn/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..193b8af88e2 --- /dev/null +++ b/public/content/translations/bn/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "ERC-7730 এর মাধ্যমে আপনার প্রোটোকলে ক্লিয়ার সাইনিং যুক্ত করুন" +description: "কীভাবে একটি ERC-7730 ডেসক্রিপ্টর লিখতে হয় তা শিখুন যাতে ব্যবহারকারীরা স্বাক্ষর করার আগে ওয়ালেটে আপনার স্মার্ট কন্ট্রাক্ট ইন্টারঅ্যাকশনগুলোর মানুষের পাঠযোগ্য বিবরণ প্রদর্শিত হয়।" +author: "হেস্টার ব্রুইকম্যান" +lang: bn +tags: ["ERC-7730", "নিরাপত্তা", "স্বাক্ষরকরণ", "স্মার্ট কন্ট্রাক্ট", "ওয়ালেট"] +skill: intermediate +breadcrumb: "ক্লিয়ার সাইনিং" +published: 2026-05-11 +--- + +বেশিরভাগ বড় ইথেরিয়াম এক্সপ্লয়েটের (exploits) চূড়ান্ত ধাপ একই ছিল: একজন ব্যবহারকারী এমন একটি ট্রানজ্যাকশন অনুমোদন করছেন যা তারা অর্থপূর্ণভাবে বুঝতে পারেননি। হার্ডওয়্যার ওয়ালেটগুলো র (raw) হেক্স কল ডেটা দেখায় এবং আরও খারাপ ব্যাপার হলো, এগুলো আপনাকে ব্লাইন্ড সাইনিং (blind signing) চালু রাখতে বাধ্য করে। সফটওয়্যার ওয়ালেটগুলো ডিকোড করা ফিল্ড দেখায়, তবে শুধুমাত্র তখনই যখন তারা কন্ট্রাক্টটি চিনতে পারে। যখন তারা চিনতে পারে না, তা প্রোটোকলটি নতুন হওয়ার কারণেই হোক, অ্যাপটি আপস (compromised) হওয়ার কারণেই হোক, বা ডিভাইসটি অফলাইনে থাকার কারণেই হোক, ব্যবহারকারীরা অন্ধভাবে স্বাক্ষর করেন। + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) আপনার কন্ট্রাক্টের ফাংশন কলগুলোর *অর্থ* বর্ণনা করার জন্য একটি স্ট্যান্ডার্ড JSON ফরম্যাট নির্ধারণ করে। + +একটি ওয়ালেট যা ERC-7730 সমর্থন করে, সেটি আপনার ডেসক্রিপ্টর পড়ে এবং দেখায়: + +> **সোয়াপ** +> পাঠানো হবে: 1,000 USDC +> সর্বনিম্ন প্রাপ্তি: 0.42 WETH +> প্রোটোকল: ইউনিসোয়াপ V3 + +অথবা মানুষ এবং এজেন্ট উভয়েরই পাঠযোগ্য একটি একক গঠিত বাক্য: + +> কমপক্ষে 0.42 WETH এর জন্য 1,000 USDC সোয়াপ করুন + +একটি ফাংশন সিলেক্টর এবং র (raw) ইন্টিজার মানগুলোর তালিকার পরিবর্তে। + +এটি হলো [ক্লিয়ার সাইনিং](https://clearsigning.org/) — "আপনি যা দেখছেন, তাতেই আপনি স্বাক্ষর করছেন।" এই টিউটোরিয়ালটি আপনাকে আপনার নিজের কন্ট্রাক্টের জন্য একটি ডেসক্রিপ্টর লেখা, অফিসিয়াল CLI টুলের সাহায্যে এটি যাচাই করা এবং ওপেন রেজিস্ট্রিতে জমা দেওয়ার প্রক্রিয়াটি ধাপে ধাপে দেখাবে। + +## পূর্বশর্ত {#prerequisites} + +- Solidity এবং স্মার্ট কন্ট্রাক্ট ABI সম্পর্কে ধারণা +- একটি যাচাইকৃত ABI সহ একটি ডিপ্লয় করা স্মার্ট কন্ট্রাক্ট (রেজিস্ট্রিতে কোনো ডেসক্রিপ্টর গৃহীত হওয়ার আগে [Sourcify](https://sourcify.dev) ভেরিফিকেশন প্রয়োজন) +- ভ্যালিডেশন CLI-এর জন্য Python 3.12+ +- JSON সম্পর্কে প্রাথমিক জ্ঞান + +## ERC-7730 ডেসক্রিপ্টর কী? {#what-is-an-erc-7730-descriptor} + +ডেসক্রিপ্টর হলো তিনটি বিভাগ (section) বিশিষ্ট একটি একক JSON ফাইল: + +| বিভাগ | উদ্দেশ্য | +| :---- | :---- | +| `context` | চেইন আইডি এবং ঠিকানার মাধ্যমে ডেসক্রিপ্টরটিকে নির্দিষ্ট কন্ট্রাক্ট ডিপ্লয়মেন্টের সাথে যুক্ত করে | +| `metadata` | প্রজেক্টের নাম দেয় এবং পুনরায় ব্যবহারযোগ্য ধ্রুবক (constants) সংজ্ঞায়িত করে | +| `display` | প্রতিটি ফাংশন স্বাক্ষরকে মানুষের পাঠযোগ্য লেবেল এবং ফিল্ড ফরম্যাটের সাথে ম্যাপ করে | + +যেহেতু ডেসক্রিপ্টরটি কন্ট্রাক্ট থেকে আলাদা, তাই আপনি পুনরায় ডিপ্লয়মেন্ট ছাড়াই যেকোনো বিদ্যমান প্রোটোকলে ক্লিয়ার সাইনিং সমর্থন যুক্ত করতে পারেন। ওয়ালেটগুলো রেজিস্ট্রি থেকে ডেসক্রিপ্টরগুলো পুনরুদ্ধার করে এবং স্বাক্ষরকরণের সময় সেগুলো ব্যবহার করে। + +## ধাপ 1: ফাইলের কাঠামো তৈরি করুন {#step-1-create-the-file-skeleton} + +`calldata--.json` নামের একটি ফাইল তৈরি করুন। `calldata-` প্রিফিক্সটি রেজিস্ট্রিকে বলে যে এই ডেসক্রিপ্টরটি কন্ট্রাক্ট ফাংশন কলগুলোকে কভার করে, যা টাইপড-ডেটা মেসেজগুলোর জন্য ব্যবহৃত `eip712-` এর বিপরীত। `descriptorversion` রেজিস্ট্রিকে ডেসক্রিপ্টর ফাইলের সংস্করণ সম্পর্কে জানায়, কোনো সংস্করণ প্রদান করা না হলে ডিফল্টরূপে এটি 0 হয়। + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## ধাপ 2: কনটেক্সট (context) বিভাগটি লিখুন {#step-2-write-the-context-section} + +`context` বিভাগটি ডেসক্রিপ্টরটিকে এক বা একাধিক কন্ট্রাক্ট ডিপ্লয়মেন্টের সাথে যুক্ত করে। ওয়ালেটগুলো একটি আগত ট্রানজ্যাকশনকে সঠিক ডেসক্রিপ্টরের সাথে মেলাতে এটি ব্যবহার করে। + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### কনটেক্সট ফিল্ডসমূহ {#context-fields} + +- `context.$id` — এই ডেসক্রিপ্টর ডকুমেন্ট বা ডিপ্লয়মেন্ট কনফিগারেশনের জন্য একটি অনন্য আইডেন্টিফায়ার। +- `contract.deployments` — ডিপ্লয়মেন্টের সেট যার উপর এই ডেসক্রিপ্টরটি প্রযোজ্য। +- `deployments[].chainId` — একটি ডিপ্লয়মেন্টের জন্য EVM চেইন আইডি। আপনার কন্ট্রাক্টটি যেখানে ডিপ্লয় করা হয়েছে এমন প্রতিটি চেইন অন্তর্ভুক্ত করুন। +- `deployments[].address` — কন্ট্রাক্টের ঠিকানা যা ওয়ালেটগুলোর এই ডেসক্রিপ্টরের সাথে যুক্ত করা উচিত। এক্সিকিউশন লজিক ধারণকারী ইমপ্লিমেন্টেশন ঠিকানাটি ব্যবহার করুন। + +## ধাপ 3: মেটাডেটা বিভাগটি লিখুন {#step-3-write-the-metadata-section} + +মেটাডেটা বিভাগটি এই ফাইলের দ্বারা বর্ণিত প্রজেক্ট এবং কন্ট্রাক্ট সম্পর্কে মানুষের পাঠযোগ্য তথ্য প্রদান করে। ওয়ালেটগুলো স্বাক্ষরকরণের সময় প্রোটোকলের নাম, লিঙ্ক এবং অন্যান্য প্রাসঙ্গিক বিবরণ প্রদর্শন করতে এই তথ্য ব্যবহার করতে পারে। + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### মেটাডেটা ফিল্ডসমূহ {#metadata-fields} + +- `owner` — এই ডেসক্রিপ্টরের জন্য দায়ী প্রজেক্ট, প্রোটোকল, সংস্থা বা মেইনটেইনার। +- `info.url` — একটি ক্যানোনিকাল প্রজেক্ট বা ডকুমেন্টেশন URL যা ওয়ালেটগুলো অতিরিক্ত প্রসঙ্গের জন্য ব্যবহারকারীদের দেখাতে পারে। +- `contractName` — এই ফাইলের দ্বারা বর্ণিত কন্ট্রাক্ট বা ইমপ্লিমেন্টেশনের নাম, যা সাধারণত যাচাইকৃত সোর্স কোড বা ABI-এর সাথে মিলে যায়। + +যদি আপনার ERC-7730 ফাইলটি একটি ERC-20 কন্ট্রাক্ট বর্ণনা করে, তবে আপনার একটি টোকেন অবজেক্টও যুক্ত করা উচিত। + +## ধাপ 4: ডিসপ্লে ফরম্যাট বিভাগটি লিখুন {#step-4-write-the-displayformats-section} + +`display.formats` অবজেক্টটি ফাংশন স্বাক্ষরগুলোকে মানুষের পাঠযোগ্য স্বাক্ষরকরণের নির্দেশাবলীর সাথে ম্যাপ করে। এভাবেই ওয়ালেটগুলো ব্যবহারকারীদের কোনো ট্রানজ্যাকশন অনুমোদন করার আগে আপনার ফাংশনটি দেখায়! + +প্রতিটি কী (key) হলো মানুষের পাঠযোগ্য একটি ABI ফ্র্যাগমেন্ট — ফাংশন স্বাক্ষর, যার মধ্যে প্যারামিটারের নাম এবং প্যারামিটারের ধরন উভয়ই ঠিক সেভাবেই থাকে যেভাবে সেগুলো আপনার ABI-তে উপস্থিত থাকে। + + +### উদাহরণ: একটি টোকেন সোয়াপ বর্ণনা করা {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### ডিসপ্লে ফিল্ডসমূহ {#display-fields} + +- **`intent`** — **(প্রয়োজনীয়)** অ্যাকশনটির একটি সংক্ষিপ্ত, ব্যবহারকারী-বান্ধব বিবরণ, যেমন "Swap"। +- **`interpolatedIntent`** — **(প্রস্তাবিত)** একটি সমৃদ্ধ বাক্য টেমপ্লেট যা ফরম্যাট করা ফিল্ডের মানগুলোকে এম্বেড করে, যেমন `"Swap {amountIn} for at least {amountOutMin}"`। ওয়ালেটগুলো যাতে যেকোনো ডিসপ্লে সীমাবদ্ধতা থাকা সত্ত্বেও আরও বেশি ব্যবহারকারী-বান্ধব ডেসক্রিপ্টর দেখাতে পারে, সেজন্য `intent` এর পাশাপাশি এটি অন্তর্ভুক্ত করুন। +- **`fields`** — **(প্রয়োজনীয়)** ট্রানজ্যাকশন ফিল্ডগুলোর ক্রমানুসারে সাজানো তালিকা যা ওয়ালেটগুলোর ব্যবহারকারীদের দেখানো উচিত। + - **`path`** — **(প্রয়োজনীয়)** ট্রানজ্যাকশন ডেটার একটি রেফারেন্স। `#.fieldName` ABI-তে থাকা নাম অনুযায়ী একটি ডিকোড করা কল ডেটা প্যারামিটারকে নির্দেশ করে। `@.value` ট্রানজ্যাকশনের সাথে পাঠানো ETH মানকে বোঝায়। + - **`label`** — **(প্রয়োজনীয়)** মানের পাশে দেখানো মানুষের পাঠযোগ্য লেবেল। + - **`format`** — **(প্রস্তাবিত)** মানটি কীভাবে রেন্ডার করা উচিত তা নিয়ন্ত্রণ করে। সাধারণ ফরম্যাটগুলোর মধ্যে রয়েছে: + - `tokenAmount` + - `addressName` + - `date` + + যখন কোনো অতিরিক্ত ফরম্যাটিংয়ের প্রয়োজন হয় না তখন `raw` ব্যবহার করুন। কিছু ফরম্যাট অতিরিক্ত **`params`** কনফিগারেশন গ্রহণ করে। উদাহরণস্বরূপ: + + - `tokenAmount` কোন টোকেন ঠিকানাটি ডেসিমাল এবং টিকার মেটাডেটা প্রদান করে তা শনাক্ত করতে `tokenPath` ব্যবহার করতে পারে। + - `date` টাইমস্ট্যাম্পটি কীভাবে এনকোড করা হয়েছে তা বর্ণনা করতে `encoding` ব্যবহার করতে পারে। + + যদি নির্বাচিত ফরম্যাটের জন্য অতিরিক্ত তথ্যের প্রয়োজন না হয়, তবে `params` বাদ দিন। + +## সম্পূর্ণ ডেসক্রিপ্টর {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## ধাপ 5: রেজিস্ট্রিতে জমা দিন {#step-5-submit-to-the-registry} + +[ERC-7730 রেজিস্ট্রি](https://github.com/ethereum/clear-signing-erc7730-registry) হলো একটি ওপেন রিপোজিটরি যা একটি নিরপেক্ষ স্টুয়ার্ড হিসেবে [ইথেরিয়াম ফাউন্ডেশন](/foundation/) দ্বারা হোস্ট করা হয়। যে কেউ এটি ক্লোন এবং সেলফ-হোস্ট করতে স্বাধীন — ওয়ালেটগুলো স্বাধীনভাবে সিদ্ধান্ত নেয় যে তারা কোন রেজিস্ট্রি ইনস্ট্যান্সগুলোকে বিশ্বাস করবে। + +1. গিটহাবে (GitHub) রিপোজিটরিটি ফর্ক করুন +2. `registry//` এ একটি ফোল্ডার তৈরি করুন +3. এর ভিতরে আপনার ফাইলটি রাখুন: `registry/myproject/calldata-mycontract-0_0.json` +4. রিপোর মধ্যে ব্যবহৃত আপেক্ষিক পাথে (relative path) `$schema` ফিল্ডটি আপডেট করুন: `"../../specs/erc7730-v2.schema.json"` +5. একটি পুল রিকোয়েস্ট (pull request) খুলুন + +যখন আপনি PR খুলবেন, তখন CI স্বয়ংক্রিয়ভাবে স্কিমা ভ্যালিডেশন চালায়, ফাংশন স্বাক্ষরগুলো বৈধ সিলেক্টর তৈরি করে কিনা তা পরীক্ষা করে, Sourcify-তে কন্ট্রাক্টের ঠিকানা যাচাই করা হয়েছে কিনা তা নিশ্চিত করে এবং ABI-এর অসঙ্গতিগুলো চিহ্নিত করে। চেক করার ফলাফলগুলো PR-এ ইনলাইনে প্রদর্শিত হয়। রেজিস্ট্রি মেইনটেইনাররা ত্রুটিপূর্ণ বা সম্ভাব্য ক্ষতিকারক ডেসক্রিপ্টরগুলোর জন্য সাবমিশনগুলো স্ক্রিন করেন। রেজিস্ট্রিতে অন্তর্ভুক্তির অর্থ এই নয় যে এটি অডিট করা হয়েছে বা অনুমোদন দেওয়া হয়েছে। + + + + +**দ্রষ্টব্য:** আপনার PR গৃহীত হওয়ার আগে আপনার কন্ট্রাক্টটি অবশ্যই Sourcify-তে যাচাই করা থাকতে হবে। যদি এটি এখনও যাচাই করা না হয়ে থাকে, তবে প্রথমে ভেরিফিকেশন জমা দিন। + + + + +## মার্জ করার পর কী হয়? {#what-happens-after-merging} + +রেজিস্ট্রিতে থাকা সমস্ত ডেসক্রিপ্টর অডিটরদের জন্য উন্মুক্ত। আপনার PR মার্জ হওয়ার পর, যেকোনো অডিটর আপনার ডেসক্রিপ্টর পর্যালোচনা করতে পারেন এবং এর নির্ভুলতা নিশ্চিত করে একটি ক্রিপ্টোগ্রাফিক সত্যায়ন ([ERC-8176](https://github.com/ethereum/ERCs/pull/1576) এর অধীনে) প্রকাশ করতে পারেন। + +এই সত্যায়ন সিগন্যালগুলো ওয়ালেটগুলোকে তাদের নিজস্ব ট্রাস্ট পলিসি প্রয়োগ করতে দেয় — একাধিক স্বাধীন সত্যায়ন থাকা একটি ডেসক্রিপ্টর, সত্যায়ন না থাকা ডেসক্রিপ্টরের চেয়ে বেশি গুরুত্ব বহন করে। আপনি [clearsigning.org](https://clearsigning.org) এর মাধ্যমে অডিটর কমিউনিটির সাথে যোগাযোগ করতে পারেন। + +ওয়ালেটগুলো বেছে নেয় যে তারা কোন রেজিস্ট্রি সমর্থন করবে। একবার আপনার ডেসক্রিপ্টর রেজিস্ট্রিতে যুক্ত হয়ে গেলে, যে ওয়ালেটগুলো ERC-7730 সমর্থন করে সেগুলো যদি তাদের রেজিস্ট্রিতে থাকে তবে এটি ফেচ (fetch) করা শুরু করবে এবং ব্যবহারকারীরা যখন আপনার কন্ট্রাক্টের সাথে ইন্টারঅ্যাক্ট করবে তখন মানুষের পাঠযোগ্য ডেটা প্রদর্শন করবে। + +## আরও পড়ুন {#further-reading} + +- [ERC-7730 স্পেসিফিকেশন](https://eips.ethereum.org/EIPS/eip-7730) +- [ERC-7730 রেজিস্ট্রি](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — টুলিং, ইকোসিস্টেম স্ট্যাটাস এবং গভর্ন্যান্স +- [Sourcify কন্ট্রাক্ট ভেরিফিকেশন](https://sourcify.dev) +- [ট্রিলিয়ন ডলার সিকিউরিটি ইনিশিয়েটিভ](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/cs/developers/tutorials/clear-signing/index.md b/public/content/translations/cs/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..c4565f0eea8 --- /dev/null +++ b/public/content/translations/cs/developers/tutorials/clear-signing/index.md @@ -0,0 +1,296 @@ +--- +title: "Přidejte do svého protokolu transparentní podepisování pomocí ERC-7730" +description: "Naučte se napsat deskriptor ERC-7730, aby interakce s vaším chytrým kontraktem zobrazovaly v peněženkách před podepsáním uživatelem srozumitelné podrobnosti." +author: Hester Bruikman +lang: cs +tags: + - ERC-7730 + - bezpečnost + - podepisování + - chytré kontrakty + - peněženky +skill: intermediate +breadcrumb: "Transparentní podepisování" +published: 2026-05-11 +--- + +Většina velkých exploitů na Ethereu měla stejný poslední krok: uživatel schválil transakci, které nemohl smysluplně porozumět. Hardwarové peněženky zobrazují surová hexadecimální data volání (calldata) a co hůř, nutí vás mít zapnuté slepé podepisování (blind signing). Softwarové peněženky zobrazují dekódovaná pole, ale pouze tehdy, když kontrakt rozpoznají. Když ho nerozpoznají, ať už proto, že je protokol nový, aplikace je kompromitována, nebo je zařízení offline, uživatelé podepisují naslepo. + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) definuje standardní formát JSON pro popis toho, co *znamenají* volání funkcí vašeho kontraktu. + +Peněženka, která podporuje ERC-7730, přečte váš deskriptor a zobrazí: + +> **Swap** +> Odeslat: 1 000 USDC +> Přijmout minimum: 0,42 WETH +> Protokol: Uniswap V3 + +Nebo jedinou sestavenou větu čitelnou pro lidi i agenty: + +> Swap 1 000 USDC za alespoň 0,42 WETH + +Místo selektoru funkce a seznamu surových celočíselných hodnot. + +Tomuto se říká [transparentní podepisování](https://clearsigning.org/) (clear signing) — „Co vidíte, to podepisujete“. Tento tutoriál vás provede psaním deskriptoru pro váš vlastní kontrakt, jeho ověřením pomocí oficiálního nástroje CLI a odesláním do otevřeného registru. + +## Předpoklady {#prerequisites} + +- Znalost Solidity a ABI chytrých kontraktů +- Nasazený chytrý kontrakt s ověřeným ABI (před přijetím deskriptoru do registru je vyžadováno ověření přes [Sourcify](https://sourcify.dev)) +- Python 3.12+ pro validační CLI +- Základní znalost JSON + +## Co je deskriptor ERC-7730? {#what-is-an-erc-7730-descriptor} + +Deskriptor je jeden soubor JSON se třemi sekcemi: + +| Sekce | Účel | +| :---- | :---- | +| `context` | Váže deskriptor ke konkrétním nasazením kontraktu podle ID řetězce a adresy | +| `metadata` | Pojmenovává projekt a definuje znovupoužitelné konstanty | +| `display` | Mapuje každý podpis funkce na lidsky čitelné štítky a formáty polí | + +Protože je deskriptor oddělený od samotného kontraktu, můžete přidat podporu transparentního podepisování do jakéhokoli existujícího protokolu bez nutnosti nového nasazení. Peněženky získávají deskriptory z registru a používají je v době podepisování. + +## Krok 1: Vytvoření kostry souboru {#step-1-create-the-file-skeleton} + +Vytvořte soubor s názvem `calldata--.json`. Předpona `calldata-` říká registru, že tento deskriptor pokrývá volání funkcí kontraktu, na rozdíl od `eip712-` pro zprávy s typovanými daty. `descriptorversion` sděluje registru verzi souboru deskriptoru, výchozí hodnota je 0, pokud není verze uvedena. + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## Krok 2: Napsání sekce kontextu {#step-2-write-the-context-section} + +Sekce `context` váže deskriptor k jednomu nebo více nasazením kontraktu. Peněženky to používají k přiřazení příchozí transakce ke správnému deskriptoru. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### Pole kontextu {#context-fields} + +- `context.$id` — Unikátní identifikátor pro tento dokument deskriptoru nebo konfiguraci nasazení. +- `contract.deployments` — Sada nasazení, na která se tento deskriptor vztahuje. +- `deployments[].chainId` — ID EVM řetězce pro nasazení. Zahrňte každý řetězec, kde je váš kontrakt nasazen. +- `deployments[].address` — Adresa kontraktu, kterou by peněženky měly spojit s tímto deskriptorem. Použijte adresu implementace, která obsahuje logiku provádění. + +## Krok 3: Napsání sekce metadat {#step-3-write-the-metadata-section} + +Sekce metadat poskytuje lidsky čitelné informace o projektu a kontraktu popsaném v tomto souboru. Peněženky mohou tyto informace použít k zobrazení názvů protokolů, odkazů a dalších kontextových podrobností během podepisování. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### Pole metadat {#metadata-fields} + +- `owner` — Projekt, protokol, organizace nebo správce odpovědný za tento deskriptor. +- `info.url` — Kanonická URL adresa projektu nebo dokumentace, kterou mohou peněženky zobrazit uživatelům pro další kontext. +- `contractName` — Název kontraktu nebo implementace popsané tímto souborem, obvykle odpovídající ověřenému zdrojovému kódu nebo ABI. + +Pokud váš soubor ERC-7730 popisuje kontrakt ERC-20, měli byste přidat také objekt tokenu. + +## Krok 4: Napsání sekce formátů zobrazení {#step-4-write-the-displayformats-section} + +Objekt `display.formats` mapuje podpisy funkcí na lidsky čitelné instrukce k podepisování. Takto peněženky zobrazují vaši funkci uživatelům předtím, než schválí transakci! + +Každý klíč je lidsky čitelný fragment ABI — podpis funkce včetně názvů parametrů a typů parametrů přesně tak, jak se objevují ve vašem ABI. + + +### Příklad: Popis swapu tokenů {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### Pole zobrazení {#display-fields} + +- **`intent`** — **(Vyžadováno)** Krátký, uživatelsky přívětivý popis akce, například „Swap“. +- **`interpolatedIntent`** — **(Doporučeno)** Bohatší šablona věty, která vkládá formátované hodnoty polí, jako je `"Swap {amountIn} for at least {amountOutMin}"`. Zahrňte to společně s `intent`, abyste poskytli ještě uživatelsky přívětivější deskriptor, který se peněženky mohou rozhodnout zobrazit s ohledem na případná omezení zobrazení. +- **`fields`** — **(Vyžadováno)** Seřazený seznam polí transakce, která by peněženky měly zobrazit uživatelům. + - **`path`** — **(Vyžadováno)** Odkaz na data transakce. `#.fieldName` ukazuje na dekódovaný parametr dat volání (calldata) podle názvu v ABI. `@.value` odkazuje na hodnotu ETH odeslanou s transakcí. + - **`label`** — **(Vyžadováno)** Lidsky čitelný štítek zobrazený vedle hodnoty. + - **`format`** — **(Doporučeno)** Řídí, jak by měla být hodnota vykreslena. Běžné formáty zahrnují: + - `tokenAmount` + - `addressName` + - `date` + + Použijte `raw`, když není potřeba žádné další formátování. Některé formáty přijímají dodatečnou konfiguraci **`params`**. Například: + + - `tokenAmount` může použít `tokenPath` k identifikaci, která adresa tokenu poskytuje metadata o desetinných místech a tickeru. + - `date` může použít `encoding` k popisu, jak je časové razítko zakódováno. + + Pokud vybraný formát nevyžaduje další informace, vynechte `params`. + +## Kompletní deskriptor {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## Krok 5: Odeslání do registru {#step-5-submit-to-the-registry} + +[Registr ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) je otevřený repozitář hostovaný [Nadací Ethereum](/foundation/) jako neutrálním správcem. Kdokoli si jej může volně naklonovat a hostovat sám — peněženky se nezávisle rozhodují, kterým instancím registru důvěřují. + +1. Vytvořte fork repozitáře na GitHubu +2. Vytvořte složku v `registry//` +3. Umístěte do ní svůj soubor: `registry/myproject/calldata-mycontract-0_0.json` +4. Aktualizujte pole `$schema` na relativní cestu použitou v rámci repozitáře: `"../../specs/erc7730-v2.schema.json"` +5. Otevřete pull request + +Když otevřete PR, CI automaticky spustí validaci schématu, zkontroluje, zda podpisy funkcí vytvářejí platné selektory, potvrdí, že adresa kontraktu je ověřena na Sourcify, a označí nesrovnalosti v ABI. Výsledky kontroly se zobrazí přímo v PR. Správci registru kontrolují příspěvky na chybně formátované nebo potenciálně škodlivé deskriptory. Zahrnutí do registru neznamená audit ani schválení. + + + + +**Poznámka:** Váš kontrakt musí být ověřen na Sourcify, než může být váš PR přijat. Pokud ještě není ověřen, nejprve odešlete ověření. + + + + +## Co se stane po sloučení? {#what-happens-after-merging} + +Všechny deskriptory v registru jsou otevřené auditorům. Po sloučení vašeho PR může jakýkoli auditor zkontrolovat váš deskriptor a publikovat kryptografickou atestaci (podle [ERC-8176](https://github.com/ethereum/ERCs/pull/1576)), která potvrdí jeho přesnost. + +Tyto signály atestace umožňují peněženkám uplatňovat vlastní zásady důvěry — deskriptor s více nezávislými atestacemi má větší váhu než ten bez nich. Komunitu auditorů můžete kontaktovat prostřednictvím [clearsigning.org](https://clearsigning.org). + +Peněženky si vybírají, který registr budou podporovat. Jakmile je váš deskriptor v registru, peněženky, které podporují ERC-7730, jej začnou načítat, pokud je v jejich registru, a při interakci uživatelů s vaším kontraktem zobrazí lidsky čitelná data. + +## Další čtení {#further-reading} + +- [Specifikace ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) +- [Registr ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — nástroje, stav ekosystému a správa +- [Ověření kontraktu na Sourcify](https://sourcify.dev) +- [Iniciativa Trillion Dollar Security](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/de/developers/tutorials/clear-signing/index.md b/public/content/translations/de/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..0802035bcf1 --- /dev/null +++ b/public/content/translations/de/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "Clear Signing zu Ihrem Protokoll mit ERC-7730 hinzufügen" +description: Erfahren Sie, wie Sie einen ERC-7730-Deskriptor schreiben, damit Ihre Smart-Contract-Interaktionen in Wallets menschenlesbare Details anzeigen, bevor Benutzer signieren. +author: Hester Bruikman +lang: de +tags: ["ERC-7730", "Sicherheit", "Signieren", "Smart Contracts", "Wallets"] +skill: intermediate +breadcrumb: Clear Signing +published: 2026-05-11 +--- + +Die meisten großen Ethereum-Exploits hatten denselben letzten Schritt: Ein Benutzer genehmigte eine Transaktion, die er nicht wirklich verstehen konnte. Hardware-Wallets zeigen rohe Hex-Aufrufdaten an und zwingen einen schlimmstenfalls dazu, Blind Signing (blindes Signieren) zu aktivieren. Software-Wallets zeigen decodierte Felder an, aber nur, wenn sie den Vertrag erkennen. Wenn sie das nicht tun – sei es, weil das Protokoll neu ist, die App kompromittiert wurde oder das Gerät offline ist –, signieren die Benutzer blind. + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) definiert ein Standard-JSON-Format, um zu beschreiben, was die Funktionsaufrufe Ihres Vertrags *bedeuten*. + +Eine Wallet, die ERC-7730 unterstützt, liest Ihren Deskriptor und zeigt Folgendes an: + +> **Tausch** +> Senden: 1.000 USDC +> Minimum erhalten: 0,42 WETH +> Protokoll: Uniswap V3 + +Oder einen einzigen konstruierten Satz, der für Menschen und Agenten gleichermaßen lesbar ist: + +> Tausche 1.000 USDC gegen mindestens 0,42 WETH + +Anstelle eines Funktionsselektors und einer Liste von rohen Integer-Werten. + +Das ist [Clear Signing](https://clearsigning.org/) – „What You See Is What You Sign“ (Was du siehst, ist das, was du signierst). Dieses Tutorial führt Sie durch das Schreiben eines Deskriptors für Ihren eigenen Vertrag, dessen Validierung mit dem offiziellen CLI-Tool und die Einreichung in die offene Registry. + +## Voraussetzungen {#prerequisites} + +- Vertrautheit mit Solidity und Smart-Contract-ABIs +- Ein bereitgestellter Smart Contract mit einer verifizierten ABI (eine Verifizierung durch [Sourcify](https://sourcify.dev) ist erforderlich, bevor ein Deskriptor in die Registry aufgenommen wird) +- Python 3.12+ für das Validierungs-CLI +- Grundlegende JSON-Kenntnisse + +## Was ist ein ERC-7730-Deskriptor? {#what-is-an-erc-7730-descriptor} + +Ein Deskriptor ist eine einzelne JSON-Datei mit drei Abschnitten: + +| Abschnitt | Zweck | +| :---- | :---- | +| `context` | Bindet den Deskriptor anhand von Chain-ID und Adresse an spezifische Vertragsbereitstellungen | +| `metadata` | Benennt das Projekt und definiert wiederverwendbare Konstanten | +| `display` | Ordnet jede Funktionssignatur menschenlesbaren Labels und Feldformaten zu | + +Da der Deskriptor vom Vertrag selbst getrennt ist, können Sie jedem bestehenden Protokoll Clear-Signing-Unterstützung hinzufügen, ohne es neu bereitzustellen. Wallets rufen Deskriptoren aus der Registry ab und verwenden sie zum Zeitpunkt des Signierens. + +## Schritt 1: Das Dateigerüst erstellen {#step-1-create-the-file-skeleton} + +Erstellen Sie eine Datei namens `calldata--.json`. Das Präfix `calldata-` teilt der Registry mit, dass dieser Deskriptor Vertragsfunktionsaufrufe abdeckt, im Gegensatz zu `eip712-` für Typed-Data-Nachrichten. Das `descriptorversion` teilt der Registry die Version der Deskriptordatei mit, standardmäßig 0, wenn keine Version angegeben ist. + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## Schritt 2: Den Kontext-Abschnitt schreiben {#step-2-write-the-context-section} + +Der Abschnitt `context` bindet den Deskriptor an eine oder mehrere Vertragsbereitstellungen. Wallets verwenden dies, um eine eingehende Transaktion dem richtigen Deskriptor zuzuordnen. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### Kontext-Felder {#context-fields} + +- `context.$id` — Ein eindeutiger Bezeichner für dieses Deskriptordokument oder diese Bereitstellungskonfiguration. +- `contract.deployments` — Die Menge der Bereitstellungen, für die dieser Deskriptor gilt. +- `deployments[].chainId` — Die EVM-Chain-ID für eine Bereitstellung. Fügen Sie jede Chain hinzu, auf der Ihr Vertrag bereitgestellt ist. +- `deployments[].address` — Die Vertragsadresse, die Wallets mit diesem Deskriptor verknüpfen sollen. Verwenden Sie die Implementierungsadresse, die die Ausführungslogik enthält. + +## Schritt 3: Den Metadaten-Abschnitt schreiben {#step-3-write-the-metadata-section} + +Der Metadaten-Abschnitt bietet menschenlesbare Informationen über das Projekt und den Vertrag, die in dieser Datei beschrieben werden. Wallets können diese Informationen verwenden, um während des Signierens Protokollnamen, Links und andere kontextbezogene Details anzuzeigen. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### Metadaten-Felder {#metadata-fields} + +- `owner` — Das Projekt, Protokoll, die Organisation oder der Maintainer, der für diesen Deskriptor verantwortlich ist. +- `info.url` — Eine kanonische Projekt- oder Dokumentations-URL, die Wallets den Benutzern für zusätzlichen Kontext anzeigen können. +- `contractName` — Der Name des Vertrags oder der Implementierung, der durch diese Datei beschrieben wird und typischerweise mit dem verifizierten Quellcode oder der ABI übereinstimmt. + +Wenn Ihre ERC-7730-Datei einen ERC-20-Vertrag beschreibt, sollten Sie auch ein Token-Objekt hinzufügen. + +## Schritt 4: Den Anzeigeformate-Abschnitt schreiben {#step-4-write-the-displayformats-section} + +Das Objekt `display.formats` ordnet Funktionssignaturen menschenlesbaren Signieranweisungen zu. Auf diese Weise zeigen Wallets den Benutzern Ihre Funktion an, bevor sie eine Transaktion genehmigen! + +Jeder Schlüssel ist ein menschenlesbares ABI-Fragment – die Funktionssignatur einschließlich der Parameternamen und Parametertypen, genau so, wie sie in Ihrer ABI erscheinen. + + +### Beispiel: Einen Token-Tausch beschreiben {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### Anzeige-Felder {#display-fields} + +- **`intent`** — **(Erforderlich)** Eine kurze, benutzerfreundliche Beschreibung der Aktion, wie z. B. „Tausch“. +- **`interpolatedIntent`** — **(Empfohlen)** Eine umfangreichere Satzvorlage, die formatierte Feldwerte einbettet, wie z. B. `"Swap {amountIn} for at least {amountOutMin}"`. Fügen Sie dies zusammen mit `intent` hinzu, um einen noch benutzerfreundlicheren Deskriptor bereitzustellen, den Wallets je nach Anzeigebeschränkungen anzeigen können. +- **`fields`** — **(Erforderlich)** Die geordnete Liste der Transaktionsfelder, die Wallets den Benutzern anzeigen sollen. + - **`path`** — **(Erforderlich)** Ein Verweis auf die Transaktionsdaten. `#.fieldName` verweist auf einen decodierten Aufrufdaten-Parameter anhand des Namens in der ABI. `@.value` bezieht sich auf den mit der Transaktion gesendeten ETH-Wert. + - **`label`** — **(Erforderlich)** Das menschenlesbare Label, das neben dem Wert angezeigt wird. + - **`format`** — **(Empfohlen)** Steuert, wie der Wert gerendert werden soll. Gängige Formate sind: + - `tokenAmount` + - `addressName` + - `date` + + Verwenden Sie `raw`, wenn keine zusätzliche Formatierung erforderlich ist. Einige Formate akzeptieren eine zusätzliche **`params`**-Konfiguration. Zum Beispiel: + + - `tokenAmount` kann `tokenPath` verwenden, um zu identifizieren, welche Token-Adresse Dezimalstellen und Ticker-Metadaten bereitstellt. + - `date` kann `encoding` verwenden, um zu beschreiben, wie der Zeitstempel codiert ist. + + Wenn das ausgewählte Format keine zusätzlichen Informationen erfordert, lassen Sie `params` weg. + +## Der vollständige Deskriptor {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## Schritt 5: In die Registry einreichen {#step-5-submit-to-the-registry} + +Die [ERC-7730-Registry](https://github.com/ethereum/clear-signing-erc7730-registry) ist ein offenes Repository, das von der [Ethereum Foundation](/foundation/) als neutralem Verwalter gehostet wird. Es steht jedem frei, sie zu klonen und selbst zu hosten – Wallets entscheiden unabhängig, welchen Registry-Instanzen sie vertrauen. + +1. Forken Sie das Repository auf GitHub +2. Erstellen Sie einen Ordner unter `registry//` +3. Legen Sie Ihre Datei darin ab: `registry/myproject/calldata-mycontract-0_0.json` +4. Aktualisieren Sie das Feld `$schema` auf den relativen Pfad, der innerhalb des Repos verwendet wird: `"../../specs/erc7730-v2.schema.json"` +5. Öffnen Sie einen Pull Request + +Wenn Sie den PR öffnen, führt die CI automatisch eine Schema-Validierung durch, prüft, ob Funktionssignaturen gültige Selektoren erzeugen, bestätigt, dass die Vertragsadresse auf Sourcify verifiziert ist, und markiert ABI-Inkonsistenzen. Die Prüfergebnisse erscheinen direkt im PR. Die Maintainer der Registry überprüfen Einreichungen auf fehlerhafte oder potenziell bösartige Deskriptoren. Die Aufnahme in die Registry bedeutet weder ein Audit noch eine Befürwortung. + + + + +**Hinweis:** Ihr Vertrag muss auf Sourcify verifiziert sein, bevor Ihr PR akzeptiert werden kann. Wenn er noch nicht verifiziert ist, reichen Sie zuerst die Verifizierung ein. + + + + +## Was passiert nach dem Mergen? {#what-happens-after-merging} + +Alle Deskriptoren in der Registry sind für Prüfer offen. Nachdem Ihr PR gemergt wurde, kann jeder Prüfer Ihren Deskriptor überprüfen und eine kryptografische Attestierung (unter [ERC-8176](https://github.com/ethereum/ERCs/pull/1576)) veröffentlichen, die seine Richtigkeit bestätigt. + +Diese Attestierungssignale ermöglichen es Wallets, ihre eigenen Vertrauensrichtlinien anzuwenden – ein Deskriptor mit mehreren unabhängigen Attestierungen hat mehr Gewicht als einer ohne. Sie können die Prüfer-Community über [clearsigning.org](https://clearsigning.org) erreichen. + +Wallets entscheiden, welche Registry sie unterstützen. Sobald sich Ihr Deskriptor in der Registry befindet, beginnen Wallets, die ERC-7730 unterstützen, ihn abzurufen, sofern er in ihrer Registry vorhanden ist, und zeigen menschenlesbare Daten an, wenn Benutzer mit Ihrem Vertrag interagieren. + +## Weiterführende Literatur {#further-reading} + +- [ERC-7730-Spezifikation](https://eips.ethereum.org/EIPS/eip-7730) +- [ERC-7730-Registry](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — Tooling, Ökosystem-Status und Governance +- [Sourcify-Vertragsverifizierung](https://sourcify.dev) +- [Trillion Dollar Security-Initiative](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/es/developers/tutorials/clear-signing/index.md b/public/content/translations/es/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..9c77fc5fc4b --- /dev/null +++ b/public/content/translations/es/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "Añade la firma clara a tu protocolo con ERC-7730" +description: Aprende a escribir un descriptor ERC-7730 para que las interacciones de tu contrato inteligente muestren detalles legibles por humanos en las billeteras antes de que los usuarios firmen. +author: Hester Bruikman +lang: es +tags: ["ERC-7730", "seguridad", "firma", "contratos inteligentes", "billeteras"] +skill: intermediate +breadcrumb: Firma clara +published: 2026-05-11 +--- + +La mayoría de los principales exploits de Ethereum tuvieron el mismo paso final: un usuario aprobando una transacción que no podía entender de manera significativa. Las billeteras de hardware muestran los datos de llamada (calldata) en formato hexadecimal sin procesar y, lo que es peor, te obligan a tener activada la firma a ciegas. Las billeteras de software muestran campos decodificados, pero solo cuando reconocen el contrato. Cuando no lo hacen, ya sea porque el protocolo es nuevo, la aplicación está comprometida o el dispositivo está desconectado, los usuarios firman a ciegas. + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) define un formato JSON estándar para describir lo que *significan* las llamadas a funciones de tu contrato. + +Una billetera que soporta ERC-7730 lee tu descriptor y muestra: + +> **Intercambio** +> Enviar: 1,000 USDC +> Recibir mínimo: 0.42 WETH +> Protocolo: Uniswap V3 + +O una sola oración construida que sea legible tanto por humanos como por agentes: + +> Intercambiar 1,000 USDC por al menos 0.42 WETH + +En lugar de un selector de función y una lista de valores enteros sin procesar. + +Esto es la [firma clara](https://clearsigning.org/): «Lo que ves es lo que firmas». Este tutorial te guía a través de la redacción de un descriptor para tu propio contrato, su validación con la herramienta CLI oficial y su envío al registro abierto. + +## Requisitos previos {#prerequisites} + +- Familiaridad con Solidity y las ABI de contratos inteligentes +- Un contrato inteligente desplegado con una ABI verificada (se requiere la verificación de [Sourcify](https://sourcify.dev) antes de que se acepte un descriptor en el registro) +- Python 3.12+ para la CLI de validación +- Conocimientos básicos de JSON + +## ¿Qué es un descriptor ERC-7730? {#what-is-an-erc-7730-descriptor} + +Un descriptor es un único archivo JSON con tres secciones: + +| Sección | Propósito | +| :---- | :---- | +| `context` | Vincula el descriptor a despliegues de contratos específicos por ID de cadena y dirección | +| `metadata` | Nombra el proyecto y define constantes reutilizables | +| `display` | Asigna cada firma de función a etiquetas legibles por humanos y formatos de campo | + +Debido a que el descriptor está separado del contrato en sí, puedes añadir soporte de firma clara a cualquier protocolo existente sin necesidad de un nuevo despliegue. Las billeteras recuperan los descriptores del registro y los utilizan en el momento de la firma. + +## Paso 1: Crear el esqueleto del archivo {#step-1-create-the-file-skeleton} + +Crea un archivo llamado `calldata--.json`. El prefijo `calldata-` le indica al registro que este descriptor cubre llamadas a funciones de contratos, a diferencia de `eip712-` para mensajes de datos tipados. El `descriptorversion` le indica al registro la versión del archivo descriptor, 0 por defecto si no se proporciona ninguna versión. + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## Paso 2: Escribir la sección de contexto {#step-2-write-the-context-section} + +La sección `context` vincula el descriptor a uno o más despliegues de contratos. Las billeteras utilizan esto para hacer coincidir una transacción entrante con el descriptor correcto. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### Campos de contexto {#context-fields} + +- `context.$id` — Un identificador único para este documento descriptor o configuración de despliegue. +- `contract.deployments` — El conjunto de despliegues a los que se aplica este descriptor. +- `deployments[].chainId` — El ID de la cadena EVM para un despliegue. Incluye cada cadena donde esté desplegado tu contrato. +- `deployments[].address` — La dirección del contrato que las billeteras deben asociar con este descriptor. Utiliza la dirección de implementación que contiene la lógica de ejecución. + +## Paso 3: Escribir la sección de metadatos {#step-3-write-the-metadata-section} + +La sección de metadatos proporciona información legible por humanos sobre el proyecto y el contrato descritos en este archivo. Las billeteras pueden utilizar esta información para mostrar nombres de protocolos, enlaces y otros detalles contextuales durante la firma. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### Campos de metadatos {#metadata-fields} + +- `owner` — El proyecto, protocolo, organización o mantenedor responsable de este descriptor. +- `info.url` — Una URL canónica del proyecto o de la documentación que las billeteras pueden mostrar a los usuarios para obtener contexto adicional. +- `contractName` — El nombre del contrato o de la implementación descrito por este archivo, que normalmente coincide con el código fuente verificado o la ABI. + +Si tu archivo ERC-7730 describe un contrato ERC-20, también deberías añadir un objeto de token. + +## Paso 4: Escribir la sección de formatos de visualización {#step-4-write-the-displayformats-section} + +El objeto `display.formats` asigna firmas de funciones a instrucciones de firma legibles por humanos. ¡Así es como las billeteras muestran tu función a los usuarios antes de que aprueben una transacción! + +Cada clave es un fragmento de ABI legible por humanos: la firma de la función que incluye tanto los nombres de los parámetros como los tipos de parámetros exactamente como aparecen en tu ABI. + + +### Ejemplo: Describir un intercambio de tokens {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### Campos de visualización {#display-fields} + +- **`intent`** — **(Requerido)** Una descripción breve y fácil de usar de la acción, como «Intercambio». +- **`interpolatedIntent`** — **(Recomendado)** Una plantilla de oración más rica que incrusta valores de campo formateados, como `"Swap {amountIn} for at least {amountOutMin}"`. Incluye esto junto con `intent` para proporcionar un descriptor aún más fácil de usar que las billeteras pueden elegir mostrar dadas las restricciones de visualización. +- **`fields`** — **(Requerido)** La lista ordenada de campos de transacción que las billeteras deben mostrar a los usuarios. + - **`path`** — **(Requerido)** Una referencia a los datos de la transacción. `#.fieldName` apunta a un parámetro de datos de llamada (calldata) decodificado por el nombre en la ABI. `@.value` se refiere al valor de ETH enviado con la transacción. + - **`label`** — **(Requerido)** La etiqueta legible por humanos que se muestra junto al valor. + - **`format`** — **(Recomendado)** Controla cómo se debe renderizar el valor. Los formatos comunes incluyen: + - `tokenAmount` + - `addressName` + - `date` + + Usa `raw` cuando no se necesite formato adicional. Algunos formatos aceptan configuración adicional de **`params`**. Por ejemplo: + + - `tokenAmount` puede usar `tokenPath` para identificar qué dirección de token proporciona los metadatos de decimales y el símbolo (ticker). + - `date` puede usar `encoding` para describir cómo está codificada la marca de tiempo. + + Si el formato seleccionado no requiere información adicional, omite `params`. + +## El descriptor completo {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## Paso 5: Enviar al registro {#step-5-submit-to-the-registry} + +El [registro ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) es un repositorio abierto alojado por la [Fundación Ethereum](/foundation/) como administrador neutral. Cualquiera es libre de clonarlo y autoalojarlo: las billeteras deciden de forma independiente en qué instancias del registro confían. + +1. Haz una bifurcación (fork) del repositorio en GitHub +2. Crea una carpeta en `registry//` +3. Coloca tu archivo dentro de ella: `registry/myproject/calldata-mycontract-0_0.json` +4. Actualiza el campo `$schema` a la ruta relativa utilizada dentro del repositorio: `"../../specs/erc7730-v2.schema.json"` +5. Abre un pull request + +Cuando abres el PR, la integración continua (CI) ejecuta automáticamente la validación del esquema, comprueba que las firmas de las funciones producen selectores válidos, confirma que la dirección del contrato está verificada en Sourcify y señala las inconsistencias de la ABI. Los resultados de la comprobación aparecen en línea en el PR. Los mantenedores del registro revisan los envíos en busca de descriptores malformados o potencialmente maliciosos. La inclusión en el registro no implica auditoría ni respaldo. + + + + +**Nota:** Tu contrato debe estar verificado en Sourcify antes de que se pueda aceptar tu PR. Si aún no está verificado, envía la verificación primero. + + + + +## ¿Qué sucede después de la fusión (merge)? {#what-happens-after-merging} + +Todos los descriptores en el registro están abiertos a los auditores. Después de que se fusione tu PR, cualquier auditor puede revisar tu descriptor y publicar una atestación criptográfica (bajo [ERC-8176](https://github.com/ethereum/ERCs/pull/1576)) confirmando su precisión. + +Estas señales de atestación permiten a las billeteras aplicar sus propias políticas de confianza: un descriptor con múltiples atestaciones independientes tiene más peso que uno sin ellas. Puedes comunicarte con la comunidad de auditores a través de [clearsigning.org](https://clearsigning.org). + +Las billeteras eligen qué registro soportarán. Una vez que tu descriptor esté en el registro, las billeteras que soportan ERC-7730 comenzarán a obtenerlo si está en su registro y mostrarán datos legibles por humanos cuando los usuarios interactúen con tu contrato. + +## Lecturas adicionales {#further-reading} + +- [Especificación ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) +- [Registro ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — herramientas, estado del ecosistema y gobernanza +- [Verificación de contratos en Sourcify](https://sourcify.dev) +- [Iniciativa Trillion Dollar Security](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/fr/developers/tutorials/clear-signing/index.md b/public/content/translations/fr/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..74f238392cd --- /dev/null +++ b/public/content/translations/fr/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "Ajouter la signature en clair à votre protocole avec l'ERC-7730" +description: "Apprenez à écrire un descripteur ERC-7730 pour que les interactions avec vos contrats intelligents affichent des détails lisibles par l'homme dans les portefeuilles avant que les utilisateurs ne signent." +author: Hester Bruikman +lang: fr +tags: ["ERC-7730", "sécurité", "signature", "contrats intelligents", "portefeuilles"] +skill: intermediate +breadcrumb: Signature en clair +published: 2026-05-11 +--- + +La plupart des failles majeures d'Ethereum ont eu la même étape finale : un utilisateur approuvant une transaction qu'il ne pouvait pas vraiment comprendre. Les portefeuilles matériels affichent les données d'appel (calldata) brutes en hexadécimal, et pire encore, vous obligent à activer la signature aveugle. Les portefeuilles logiciels affichent des champs décodés, mais uniquement lorsqu'ils reconnaissent le contrat. Lorsque ce n'est pas le cas, que ce soit parce que le protocole est nouveau, que l'application est compromise ou que l'appareil est hors ligne, les utilisateurs signent à l'aveugle. + +[L'ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) définit un format JSON standard pour décrire ce que *signifient* les appels de fonction de votre contrat. + +Un portefeuille qui prend en charge l'ERC-7730 lit votre descripteur et affiche : + +> **Échange** +> Envoyer : 1 000 USDC +> Recevoir au minimum : 0,42 WETH +> Protocole : Uniswap V3 + +Ou une seule phrase construite lisible par les humains comme par les agents : + +> Échanger 1 000 USDC contre au moins 0,42 WETH + +Au lieu d'un sélecteur de fonction et d'une liste de valeurs entières brutes. + +C'est la [signature en clair](https://clearsigning.org/) — « Ce que vous voyez est ce que vous signez » (What You See Is What You Sign). Ce tutoriel vous guide dans la rédaction d'un descripteur pour votre propre contrat, sa validation avec l'outil CLI officiel et sa soumission au registre ouvert. + +## Prérequis {#prerequisites} + +- Familiarité avec Solidity et les ABI de contrats intelligents +- Un contrat intelligent déployé avec une ABI vérifiée (la vérification [Sourcify](https://sourcify.dev) est requise avant qu'un descripteur ne soit accepté dans le registre) +- Python 3.12+ pour la CLI de validation +- Connaissances de base en JSON + +## Qu'est-ce qu'un descripteur ERC-7730 ? {#what-is-an-erc-7730-descriptor} + +Un descripteur est un fichier JSON unique comportant trois sections : + +| Section | Objectif | +| :---- | :---- | +| `context` | Lie le descripteur à des déploiements de contrats spécifiques par ID de chaîne et adresse | +| `metadata` | Nomme le projet et définit des constantes réutilisables | +| `display` | Associe chaque signature de fonction à des étiquettes lisibles par l'homme et à des formats de champs | + +Puisque le descripteur est séparé du contrat lui-même, vous pouvez ajouter la prise en charge de la signature en clair à n'importe quel protocole existant sans redéploiement. Les portefeuilles récupèrent les descripteurs depuis le registre et les utilisent au moment de la signature. + +## Étape 1 : Créer le squelette du fichier {#step-1-create-the-file-skeleton} + +Créez un fichier nommé `calldata--.json`. Le préfixe `calldata-` indique au registre que ce descripteur couvre les appels de fonction de contrat, par opposition à `eip712-` pour les messages de données typées. Le `descriptorversion` indique au registre la version du fichier descripteur, 0 par défaut si aucune version n'est fournie. + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## Étape 2 : Rédiger la section de contexte {#step-2-write-the-context-section} + +La section `context` lie le descripteur à un ou plusieurs déploiements de contrats. Les portefeuilles l'utilisent pour faire correspondre une transaction entrante au bon descripteur. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### Champs de contexte {#context-fields} + +- `context.$id` — Un identifiant unique pour ce document descripteur ou cette configuration de déploiement. +- `contract.deployments` — L'ensemble des déploiements auxquels ce descripteur s'applique. +- `deployments[].chainId` — L'ID de chaîne EVM pour un déploiement. Incluez chaque chaîne où votre contrat est déployé. +- `deployments[].address` — L'adresse du contrat que les portefeuilles doivent associer à ce descripteur. Utilisez l'adresse d'implémentation qui contient la logique d'exécution. + +## Étape 3 : Rédiger la section des métadonnées {#step-3-write-the-metadata-section} + +La section des métadonnées fournit des informations lisibles par l'homme sur le projet et le contrat décrits par ce fichier. Les portefeuilles peuvent utiliser ces informations pour afficher les noms de protocole, les liens et d'autres détails contextuels lors de la signature. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### Champs de métadonnées {#metadata-fields} + +- `owner` — Le projet, le protocole, l'organisation ou le mainteneur responsable de ce descripteur. +- `info.url` — Une URL canonique de projet ou de documentation que les portefeuilles peuvent afficher aux utilisateurs pour plus de contexte. +- `contractName` — Le nom du contrat ou de l'implémentation décrit par ce fichier, correspondant généralement au code source vérifié ou à l'ABI. + +Si votre fichier ERC-7730 décrit un contrat ERC-20, vous devriez également ajouter un objet jeton. + +## Étape 4 : Rédiger la section des formats d'affichage {#step-4-write-the-displayformats-section} + +L'objet `display.formats` associe les signatures de fonction à des instructions de signature lisibles par l'homme. C'est ainsi que les portefeuilles montrent votre fonction aux utilisateurs avant qu'ils n'approuvent une transaction ! + +Chaque clé est un fragment d'ABI lisible par l'homme — la signature de la fonction comprenant à la fois les noms et les types de paramètres exactement tels qu'ils apparaissent dans votre ABI. + + +### Exemple : Décrire un échange de jetons {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### Champs d'affichage {#display-fields} + +- **`intent`** — **(Requis)** Une description courte et conviviale de l'action, telle que « Échange ». +- **`interpolatedIntent`** — **(Recommandé)** Un modèle de phrase plus riche qui intègre des valeurs de champs formatées, telles que `"Swap {amountIn} for at least {amountOutMin}"`. Incluez ceci avec `intent` pour fournir un descripteur encore plus convivial que les portefeuilles peuvent choisir d'afficher en fonction de leurs contraintes d'affichage. +- **`fields`** — **(Requis)** La liste ordonnée des champs de transaction que les portefeuilles doivent afficher aux utilisateurs. + - **`path`** — **(Requis)** Une référence aux données de la transaction. `#.fieldName` pointe vers un paramètre de données d'appel décodé par son nom dans l'ABI. `@.value` fait référence à la valeur en ETH envoyée avec la transaction. + - **`label`** — **(Requis)** L'étiquette lisible par l'homme affichée à côté de la valeur. + - **`format`** — **(Recommandé)** Contrôle la façon dont la valeur doit être rendue. Les formats courants incluent : + - `tokenAmount` + - `addressName` + - `date` + + Utilisez `raw` lorsqu'aucun formatage supplémentaire n'est nécessaire. Certains formats acceptent une configuration **`params`** supplémentaire. Par exemple : + + - `tokenAmount` peut utiliser `tokenPath` pour identifier quelle adresse de jeton fournit les métadonnées de décimales et de symbole (ticker). + - `date` peut utiliser `encoding` pour décrire comment l'horodatage est encodé. + + Si le format sélectionné ne nécessite pas d'informations supplémentaires, omettez `params`. + +## Le descripteur complet {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## Étape 5 : Soumettre au registre {#step-5-submit-to-the-registry} + +Le [registre ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) est un dépôt ouvert hébergé par la [Fondation Ethereum](/foundation/) en tant que gestionnaire neutre. Tout le monde est libre de le cloner et de l'auto-héberger — les portefeuilles décident indépendamment des instances de registre auxquelles ils font confiance. + +1. Forkez le dépôt sur GitHub +2. Créez un dossier dans `registry//` +3. Placez votre fichier à l'intérieur : `registry/myproject/calldata-mycontract-0_0.json` +4. Mettez à jour le champ `$schema` avec le chemin relatif utilisé dans le dépôt : `"../../specs/erc7730-v2.schema.json"` +5. Ouvrez une pull request + +Lorsque vous ouvrez la PR, l'intégration continue (CI) exécute automatiquement la validation du schéma, vérifie que les signatures de fonction produisent des sélecteurs valides, confirme que l'adresse du contrat est vérifiée sur Sourcify et signale les incohérences de l'ABI. Les résultats des vérifications apparaissent directement sur la PR. Les mainteneurs du registre examinent les soumissions pour détecter les descripteurs malformés ou potentiellement malveillants. L'inclusion dans le registre n'implique ni audit ni approbation. + + + + +**Remarque :** Votre contrat doit être vérifié sur Sourcify avant que votre PR ne puisse être acceptée. S'il n'est pas encore vérifié, soumettez la vérification en premier. + + + + +## Que se passe-t-il après la fusion ? {#what-happens-after-merging} + +Tous les descripteurs du registre sont ouverts aux auditeurs. Une fois votre PR fusionnée, n'importe quel auditeur peut examiner votre descripteur et publier une attestation cryptographique (sous [l'ERC-8176](https://github.com/ethereum/ERCs/pull/1576)) confirmant son exactitude. + +Ces signaux d'attestation permettent aux portefeuilles d'appliquer leurs propres politiques de confiance — un descripteur avec plusieurs attestations indépendantes a plus de poids qu'un descripteur sans attestation. Vous pouvez contacter la communauté des auditeurs via [clearsigning.org](https://clearsigning.org). + +Les portefeuilles choisissent le registre qu'ils prendront en charge. Une fois votre descripteur dans le registre, les portefeuilles qui prennent en charge l'ERC-7730 commenceront à le récupérer s'il se trouve dans leur registre et afficheront des données lisibles par l'homme lorsque les utilisateurs interagiront avec votre contrat. + +## Lectures complémentaires {#further-reading} + +- [Spécification de l'ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) +- [Registre ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — outils, état de l'écosystème et gouvernance +- [Vérification de contrat Sourcify](https://sourcify.dev) +- [Initiative Trillion Dollar Security](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/hi/developers/tutorials/clear-signing/index.md b/public/content/translations/hi/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..a5daf8b45a6 --- /dev/null +++ b/public/content/translations/hi/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "ERC-7730 के साथ अपने प्रोटोकॉल में स्पष्ट हस्ताक्षर करना (clear signing) जोड़ें" +description: "जानें कि ERC-7730 डिस्क्रिप्टर कैसे लिखें ताकि आपके स्मार्ट अनुबंध इंटरैक्शन उपयोगकर्ताओं के हस्ताक्षर करने से पहले वॉलेट में मानव-पठनीय विवरण प्रदर्शित करें।" +author: "हेस्टर ब्रुइकमैन" +lang: hi +tags: ["ERC-7730", "सुरक्षा", "हस्ताक्षर करना", "स्मार्ट अनुबंध", "वॉलेट"] +skill: intermediate +breadcrumb: "स्पष्ट हस्ताक्षर करना" +published: 2026-05-11 +--- + +अधिकांश प्रमुख इथेरियम कारनामों (exploits) का अंतिम चरण एक ही था: एक उपयोगकर्ता द्वारा ऐसे लेन-देन को स्वीकृति देना जिसे वे सार्थक रूप से समझ नहीं सकते थे। हार्डवेयर वॉलेट रॉ हेक्स कॉल डेटा (raw hex calldata) दिखाते हैं, और इससे भी बदतर, आपको ब्लाइंड साइनिंग (blind signing) चालू रखने के लिए मजबूर करते हैं। सॉफ़्टवेयर वॉलेट डिकोड किए गए फ़ील्ड दिखाते हैं, लेकिन केवल तभी जब वे अनुबंध को पहचानते हैं। जब वे ऐसा नहीं करते हैं, चाहे इसलिए कि प्रोटोकॉल नया है, ऐप से समझौता किया गया है, या डिवाइस ऑफ़लाइन है, तो उपयोगकर्ता बिना देखे (blind) हस्ताक्षर करते हैं। + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) आपके अनुबंध के फ़ंक्शन कॉल का *अर्थ* क्या है, इसका वर्णन करने के लिए एक मानक JSON प्रारूप को परिभाषित करता है। + +एक वॉलेट जो ERC-7730 का समर्थन करता है, वह आपके डिस्क्रिप्टर को पढ़ता है और दिखाता है: + +> **स्वैप** +> भेजें: 1,000 USDC +> न्यूनतम प्राप्त करें: 0.42 WETH +> प्रोटोकॉल: यूनिस्वैप V3 + +या मनुष्यों और एजेंटों दोनों के द्वारा पढ़ने योग्य एक एकल निर्मित वाक्य: + +> कम से कम 0.42 WETH के लिए 1,000 USDC स्वैप करें + +फ़ंक्शन चयनकर्ता (selector) और रॉ पूर्णांक मानों की सूची के बजाय। + +यह [स्पष्ट हस्ताक्षर करना](https://clearsigning.org/) है — "आप जो देखते हैं वही आप हस्ताक्षर करते हैं।" यह ट्यूटोरियल आपको अपने स्वयं के अनुबंध के लिए एक डिस्क्रिप्टर लिखने, आधिकारिक CLI टूल के साथ इसे मान्य करने और इसे ओपन रजिस्ट्री में सबमिट करने की प्रक्रिया के बारे में बताता है। + +## पूर्वापेक्षाएँ {#prerequisites} + +- Solidity और स्मार्ट अनुबंध ABI से परिचित होना +- एक सत्यापित ABI के साथ तैनात किया गया स्मार्ट अनुबंध (डिस्क्रिप्टर को रजिस्ट्री में स्वीकार किए जाने से पहले [Sourcify](https://sourcify.dev) सत्यापन आवश्यक है) +- सत्यापन CLI के लिए Python 3.12+ +- बुनियादी JSON ज्ञान + +## ERC-7730 डिस्क्रिप्टर क्या है? {#what-is-an-erc-7730-descriptor} + +डिस्क्रिप्टर तीन खंडों वाली एक एकल JSON फ़ाइल है: + +| खंड | उद्देश्य | +| :---- | :---- | +| `context` | चेन ID और पते के आधार पर डिस्क्रिप्टर को विशिष्ट अनुबंध तैनाती से बांधता है | +| `metadata` | प्रोजेक्ट का नाम देता है और पुन: प्रयोज्य स्थिरांक (constants) को परिभाषित करता है | +| `display` | प्रत्येक फ़ंक्शन हस्ताक्षर को मानव-पठनीय लेबल और फ़ील्ड प्रारूपों में मैप करता है | + +चूँकि डिस्क्रिप्टर अनुबंध से अलग होता है, इसलिए आप बिना पुन: तैनाती के किसी भी मौजूदा प्रोटोकॉल में स्पष्ट हस्ताक्षर करने का समर्थन जोड़ सकते हैं। वॉलेट रजिस्ट्री से डिस्क्रिप्टर प्राप्त करते हैं और हस्ताक्षर करने के समय उनका उपयोग करते हैं। + +## चरण 1: फ़ाइल का ढांचा (skeleton) बनाएँ {#step-1-create-the-file-skeleton} + +`calldata--.json` नाम की एक फ़ाइल बनाएँ। `calldata-` उपसर्ग (prefix) रजिस्ट्री को बताता है कि यह डिस्क्रिप्टर अनुबंध फ़ंक्शन कॉल को कवर करता है, न कि टाइप-डेटा संदेशों के लिए `eip712-` को। `descriptorversion` रजिस्ट्री को डिस्क्रिप्टर फ़ाइल का संस्करण बताता है, यदि कोई संस्करण प्रदान नहीं किया गया है तो डिफ़ॉल्ट रूप से 0 होता है। + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## चरण 2: संदर्भ (context) खंड लिखें {#step-2-write-the-context-section} + +`context` खंड डिस्क्रिप्टर को एक या अधिक अनुबंध तैनाती से बांधता है। वॉलेट इसका उपयोग आने वाले लेन-देन को सही डिस्क्रिप्टर से मिलाने के लिए करते हैं। + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### संदर्भ फ़ील्ड {#context-fields} + +- `context.$id` — इस डिस्क्रिप्टर दस्तावेज़ या तैनाती कॉन्फ़िगरेशन के लिए एक विशिष्ट पहचानकर्ता। +- `contract.deployments` — तैनाती का वह सेट जिस पर यह डिस्क्रिप्टर लागू होता है। +- `deployments[].chainId` — तैनाती के लिए EVM चेन ID। हर उस चेन को शामिल करें जहाँ आपका अनुबंध तैनात है। +- `deployments[].address` — वह अनुबंध पता जिसे वॉलेट को इस डिस्क्रिप्टर के साथ जोड़ना चाहिए। उस कार्यान्वयन पते (implementation address) का उपयोग करें जिसमें निष्पादन तर्क (execution logic) होता है। + +## चरण 3: मेटाडेटा खंड लिखें {#step-3-write-the-metadata-section} + +मेटाडेटा खंड इस फ़ाइल द्वारा वर्णित प्रोजेक्ट और अनुबंध के बारे में मानव-पठनीय जानकारी प्रदान करता है। वॉलेट हस्ताक्षर करने के दौरान प्रोटोकॉल नाम, लिंक और अन्य प्रासंगिक विवरण प्रदर्शित करने के लिए इस जानकारी का उपयोग कर सकते हैं। + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### मेटाडेटा फ़ील्ड {#metadata-fields} + +- `owner` — इस डिस्क्रिप्टर के लिए ज़िम्मेदार प्रोजेक्ट, प्रोटोकॉल, संगठन या मेंटेनर। +- `info.url` — एक विहित (canonical) प्रोजेक्ट या दस्तावेज़ URL जिसे वॉलेट अतिरिक्त संदर्भ के लिए उपयोगकर्ताओं को प्रदर्शित कर सकते हैं। +- `contractName` — इस फ़ाइल द्वारा वर्णित अनुबंध या कार्यान्वयन का नाम, जो आमतौर पर सत्यापित स्रोत कोड या ABI से मेल खाता है। + +यदि आपकी ERC-7730 फ़ाइल किसी ERC-20 अनुबंध का वर्णन करती है, तो आपको एक टोकन ऑब्जेक्ट भी जोड़ना चाहिए। + +## चरण 4: प्रदर्शन प्रारूप (display formats) खंड लिखें {#step-4-write-the-displayformats-section} + +`display.formats` ऑब्जेक्ट फ़ंक्शन हस्ताक्षरों को मानव-पठनीय हस्ताक्षर निर्देशों में मैप करता है। इस तरह वॉलेट उपयोगकर्ताओं द्वारा लेन-देन को स्वीकृति देने से पहले आपके फ़ंक्शन को दिखाते हैं! + +प्रत्येक कुंजी एक मानव-पठनीय ABI अंश है — फ़ंक्शन हस्ताक्षर जिसमें पैरामीटर नाम और पैरामीटर प्रकार दोनों ठीक वैसे ही शामिल होते हैं जैसे वे आपके ABI में दिखाई देते हैं। + + +### उदाहरण: टोकन स्वैप का वर्णन करना {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### प्रदर्शन फ़ील्ड {#display-fields} + +- **`intent`** — **(आवश्यक)** कार्रवाई का एक संक्षिप्त, उपयोगकर्ता के अनुकूल विवरण, जैसे "स्वैप"। +- **`interpolatedIntent`** — **(अनुशंसित)** एक अधिक समृद्ध वाक्य टेम्पलेट जो स्वरूपित फ़ील्ड मानों को एम्बेड करता है, जैसे `"Swap {amountIn} for at least {amountOutMin}"`। इसे `intent` के साथ शामिल करें ताकि एक और भी अधिक उपयोगकर्ता के अनुकूल डिस्क्रिप्टर प्रदान किया जा सके जिसे वॉलेट किसी भी प्रदर्शन बाधाओं को देखते हुए दिखाना चुन सकते हैं। +- **`fields`** — **(आवश्यक)** लेन-देन फ़ील्ड की क्रमित सूची जिसे वॉलेट को उपयोगकर्ताओं को प्रदर्शित करना चाहिए। + - **`path`** — **(आवश्यक)** लेन-देन डेटा का संदर्भ। `#.fieldName` ABI में नाम के आधार पर डिकोड किए गए कॉल डेटा पैरामीटर को इंगित करता है। `@.value` लेन-देन के साथ भेजे गए ETH मान को संदर्भित करता है। + - **`label`** — **(आवश्यक)** मान के बगल में दिखाया गया मानव-पठनीय लेबल। + - **`format`** — **(अनुशंसित)** यह नियंत्रित करता है कि मान को कैसे प्रस्तुत किया जाना चाहिए। सामान्य प्रारूपों में शामिल हैं: + - `tokenAmount` + - `addressName` + - `date` + + जब किसी अतिरिक्त स्वरूपण की आवश्यकता न हो तो `raw` का उपयोग करें। कुछ प्रारूप अतिरिक्त **`params`** कॉन्फ़िगरेशन स्वीकार करते हैं। उदाहरण के लिए: + + - `tokenAmount` यह पहचानने के लिए `tokenPath` का उपयोग कर सकता है कि कौन सा टोकन पता दशमलव और टिकर मेटाडेटा प्रदान करता है। + - `date` यह वर्णन करने के लिए `encoding` का उपयोग कर सकता है कि टाइमस्टैम्प को कैसे एन्कोड किया गया है। + + यदि चयनित प्रारूप को अतिरिक्त जानकारी की आवश्यकता नहीं है, तो `params` को छोड़ दें। + +## संपूर्ण डिस्क्रिप्टर {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## चरण 5: रजिस्ट्री में सबमिट करें {#step-5-submit-to-the-registry} + +[ERC-7730 रजिस्ट्री](https://github.com/ethereum/clear-signing-erc7730-registry) एक तटस्थ प्रबंधक (steward) के रूप में [एथेरियम फाउंडेशन](/foundation/) द्वारा होस्ट की गई एक ओपन रिपॉजिटरी है। कोई भी इसे क्लोन करने और स्वयं-होस्ट करने के लिए स्वतंत्र है — वॉलेट स्वतंत्र रूप से तय करते हैं कि वे किन रजिस्ट्री इंस्टेंस पर भरोसा करते हैं। + +1. GitHub पर रिपॉजिटरी को फ़ोर्क करें +2. `registry//` पर एक फ़ोल्डर बनाएँ +3. अपनी फ़ाइल को इसके अंदर रखें: `registry/myproject/calldata-mycontract-0_0.json` +4. `$schema` फ़ील्ड को रेपो के भीतर उपयोग किए गए सापेक्ष पथ (relative path) में अपडेट करें: `"../../specs/erc7730-v2.schema.json"` +5. एक पुल रिक्वेस्ट (pull request) खोलें + +जब आप PR खोलते हैं, तो CI स्वचालित रूप से स्कीमा सत्यापन चलाता है, यह जाँचता है कि फ़ंक्शन हस्ताक्षर मान्य चयनकर्ता (selectors) उत्पन्न करते हैं, पुष्टि करता है कि अनुबंध पता Sourcify पर सत्यापित है, और ABI विसंगतियों को फ़्लैग करता है। जाँच के परिणाम PR पर इनलाइन दिखाई देते हैं। रजिस्ट्री मेंटेनर विकृत या संभावित रूप से दुर्भावनापूर्ण डिस्क्रिप्टर के लिए सबमिशन की जाँच करते हैं। रजिस्ट्री में शामिल होने का मतलब ऑडिट या समर्थन नहीं है। + + + + +**नोट:** आपके PR को स्वीकार किए जाने से पहले आपका अनुबंध Sourcify पर सत्यापित होना चाहिए। यदि यह अभी तक सत्यापित नहीं है, तो पहले सत्यापन सबमिट करें। + + + + +## मर्ज करने के बाद क्या होता है? {#what-happens-after-merging} + +रजिस्ट्री में सभी डिस्क्रिप्टर ऑडिटर्स के लिए खुले हैं। आपके PR के मर्ज होने के बाद, कोई भी ऑडिटर आपके डिस्क्रिप्टर की समीक्षा कर सकता है और इसकी सटीकता की पुष्टि करते हुए एक क्रिप्टोग्राफ़िक अनुप्रमाणन ([ERC-8176](https://github.com/ethereum/ERCs/pull/1576) के तहत) प्रकाशित कर सकता है। + +ये अनुप्रमाणन संकेत वॉलेट को अपनी स्वयं की विश्वास नीतियां लागू करने देते हैं — कई स्वतंत्र अनुप्रमाणन वाले डिस्क्रिप्टर का महत्व बिना अनुप्रमाणन वाले डिस्क्रिप्टर से अधिक होता है। आप [clearsigning.org](https://clearsigning.org) के माध्यम से ऑडिटर समुदाय तक पहुँच सकते हैं। + +वॉलेट चुनते हैं कि वे किस रजिस्ट्री का समर्थन करेंगे। एक बार जब आपका डिस्क्रिप्टर रजिस्ट्री में आ जाता है, तो ERC-7730 का समर्थन करने वाले वॉलेट इसे प्राप्त करना शुरू कर देंगे यदि यह उनकी रजिस्ट्री में है और जब उपयोगकर्ता आपके अनुबंध के साथ इंटरैक्ट करेंगे तो मानव-पठनीय डेटा प्रदर्शित करेंगे। + +## आगे की पढ़ाई {#further-reading} + +- [ERC-7730 विनिर्देश (specification)](https://eips.ethereum.org/EIPS/eip-7730) +- [ERC-7730 रजिस्ट्री](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — टूलिंग, इकोसिस्टम की स्थिति और शासन +- [Sourcify अनुबंध सत्यापन](https://sourcify.dev) +- [ट्रिलियन डॉलर सुरक्षा पहल](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/id/developers/tutorials/clear-signing/index.md b/public/content/translations/id/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..beccbd20858 --- /dev/null +++ b/public/content/translations/id/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: Tambahkan penandatanganan yang jelas ke protokol Anda dengan ERC-7730 +description: Pelajari cara menulis deskriptor ERC-7730 agar interaksi kontrak pintar Anda menampilkan detail yang dapat dibaca manusia di dompet sebelum pengguna menandatangani. +author: Hester Bruikman +lang: id +tags: ["ERC-7730", "keamanan", "penandatanganan", "kontrak pintar", "dompet"] +skill: intermediate +breadcrumb: Penandatanganan yang jelas +published: 2026-05-11 +--- + +Sebagian besar eksploitasi besar Ethereum memiliki langkah akhir yang sama: pengguna menyetujui transaksi yang tidak dapat mereka pahami secara bermakna. Dompet perangkat keras menampilkan data panggilan (calldata) hex mentah, dan lebih buruk lagi memaksa Anda untuk mengaktifkan penandatanganan buta (blind signing). Dompet perangkat lunak menampilkan bidang yang didekodekan, tetapi hanya ketika mereka mengenali kontrak tersebut. Ketika tidak, entah karena protokolnya baru, aplikasinya disusupi, atau perangkatnya sedang luring, pengguna menandatangani secara buta. + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) mendefinisikan format JSON standar untuk mendeskripsikan apa *arti* dari panggilan fungsi kontrak Anda. + +Dompet yang mendukung ERC-7730 membaca deskriptor Anda dan menampilkan: + +> **Tukar** +> Kirim: 1.000 USDC +> Terima minimum: 0,42 WETH +> Protokol: Uniswap V3 + +Atau satu kalimat terstruktur yang dapat dibaca oleh manusia maupun agen: + +> Tukar 1.000 USDC dengan setidaknya 0,42 WETH + +Alih-alih pemilih fungsi dan daftar nilai bilangan bulat mentah. + +Ini adalah [penandatanganan yang jelas](https://clearsigning.org/) — "Apa Yang Anda Lihat Adalah Apa Yang Anda Tandatangani." Tutorial ini memandu Anda dalam menulis deskriptor untuk kontrak Anda sendiri, memvalidasinya dengan alat CLI resmi, dan mengirimkannya ke registri terbuka. + +## Prasyarat {#prerequisites} + +- Keakraban dengan Solidity dan ABI kontrak pintar +- Kontrak pintar yang telah disebarkan dengan ABI yang terverifikasi (verifikasi [Sourcify](https://sourcify.dev) diwajibkan sebelum deskriptor diterima di registri) +- Python 3.12+ untuk CLI validasi +- Pengetahuan dasar JSON + +## Apa itu deskriptor ERC-7730? {#what-is-an-erc-7730-descriptor} + +Deskriptor adalah satu file JSON dengan tiga bagian: + +| Bagian | Tujuan | +| :---- | :---- | +| `context` | Mengikat deskriptor ke penyebaran kontrak tertentu berdasarkan ID rantai dan alamat | +| `metadata` | Menamai proyek dan mendefinisikan konstanta yang dapat digunakan kembali | +| `display` | Memetakan setiap tanda tangan fungsi ke label yang dapat dibaca manusia dan format bidang | + +Karena deskriptor terpisah dari kontrak itu sendiri, Anda dapat menambahkan dukungan penandatanganan yang jelas ke protokol apa pun yang ada tanpa penyebaran ulang. Dompet mengambil deskriptor dari registri dan menggunakannya pada saat penandatanganan. + +## Langkah 1: Buat kerangka file {#step-1-create-the-file-skeleton} + +Buat file bernama `calldata--.json`. Awalan `calldata-` memberi tahu registri bahwa deskriptor ini mencakup panggilan fungsi kontrak, berbeda dengan `eip712-` untuk pesan data yang diketik (typed-data). `descriptorversion` memberi tahu registri versi file deskriptor, 0 secara default jika tidak ada versi yang diberikan. + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## Langkah 2: Tulis bagian konteks {#step-2-write-the-context-section} + +Bagian `context` mengikat deskriptor ke satu atau lebih penyebaran kontrak. Dompet menggunakan ini untuk mencocokkan transaksi yang masuk dengan deskriptor yang benar. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### Bidang konteks {#context-fields} + +- `context.$id` — Pengidentifikasi unik untuk dokumen deskriptor atau konfigurasi penyebaran ini. +- `contract.deployments` — Kumpulan penyebaran yang berlaku untuk deskriptor ini. +- `deployments[].chainId` — ID rantai EVM untuk penyebaran. Sertakan setiap rantai tempat kontrak Anda disebarkan. +- `deployments[].address` — Alamat kontrak yang harus dikaitkan oleh dompet dengan deskriptor ini. Gunakan alamat implementasi yang menyimpan logika eksekusi. + +## Langkah 3: Tulis bagian metadata {#step-3-write-the-metadata-section} + +Bagian metadata menyediakan informasi yang dapat dibaca manusia tentang proyek dan kontrak yang dijelaskan oleh file ini. Dompet dapat menggunakan informasi ini untuk menampilkan nama protokol, tautan, dan detail kontekstual lainnya selama penandatanganan. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### Bidang metadata {#metadata-fields} + +- `owner` — Proyek, protokol, organisasi, atau pengelola yang bertanggung jawab atas deskriptor ini. +- `info.url` — URL proyek atau dokumentasi kanonis yang dapat ditampilkan dompet kepada pengguna untuk konteks tambahan. +- `contractName` — Nama kontrak atau implementasi yang dijelaskan oleh file ini, biasanya cocok dengan kode sumber atau ABI yang terverifikasi. + +Jika file ERC-7730 Anda mendeskripsikan kontrak ERC-20, Anda juga harus menambahkan objek token. + +## Langkah 4: Tulis bagian format tampilan {#step-4-write-the-displayformats-section} + +Objek `display.formats` memetakan tanda tangan fungsi ke instruksi penandatanganan yang dapat dibaca manusia. Ini adalah cara dompet menampilkan fungsi Anda kepada pengguna sebelum mereka menyetujui transaksi! + +Setiap kunci adalah fragmen ABI yang dapat dibaca manusia — tanda tangan fungsi termasuk nama parameter dan tipe parameter persis seperti yang muncul di ABI Anda. + + +### Contoh: Mendeskripsikan tukar token {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### Bidang tampilan {#display-fields} + +- **`intent`** — **(Wajib)** Deskripsi tindakan yang singkat dan ramah pengguna, seperti "Tukar". +- **`interpolatedIntent`** — **(Disarankan)** Templat kalimat yang lebih kaya yang menyematkan nilai bidang yang diformat, seperti `"Swap {amountIn} for at least {amountOutMin}"`. Sertakan ini bersama `intent` untuk memberikan deskriptor yang lebih ramah pengguna yang dapat dipilih dompet untuk ditampilkan dengan mempertimbangkan batasan tampilan apa pun. +- **`fields`** — **(Wajib)** Daftar berurutan dari bidang transaksi yang harus ditampilkan dompet kepada pengguna. + - **`path`** — **(Wajib)** Referensi ke data transaksi. `#.fieldName` menunjuk ke parameter data panggilan yang didekodekan berdasarkan nama di ABI. `@.value` merujuk pada nilai ETH yang dikirim bersama transaksi. + - **`label`** — **(Wajib)** Label yang dapat dibaca manusia yang ditampilkan di samping nilai. + - **`format`** — **(Disarankan)** Mengontrol bagaimana nilai harus dirender. Format umum meliputi: + - `tokenAmount` + - `addressName` + - `date` + + Gunakan `raw` ketika tidak ada pemformatan tambahan yang diperlukan. Beberapa format menerima konfigurasi **`params`** tambahan. Misalnya: + + - `tokenAmount` dapat menggunakan `tokenPath` untuk mengidentifikasi alamat token mana yang menyediakan desimal dan metadata ticker. + - `date` dapat menggunakan `encoding` untuk mendeskripsikan bagaimana stempel waktu dienkode. + + Jika format yang dipilih tidak memerlukan informasi tambahan, abaikan `params`. + +## Deskriptor lengkap {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## Langkah 5: Kirim ke registri {#step-5-submit-to-the-registry} + +[Registri ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) adalah repositori terbuka yang di-host oleh [Yayasan Ethereum](/foundation/) sebagai pengelola netral. Siapa pun bebas untuk mengkloning dan meng-host-nya sendiri — dompet secara independen memutuskan instans registri mana yang mereka percayai. + +1. Lakukan percabangan (fork) repositori di GitHub +2. Buat folder di `registry//` +3. Tempatkan file Anda di dalamnya: `registry/myproject/calldata-mycontract-0_0.json` +4. Perbarui bidang `$schema` ke jalur relatif yang digunakan di dalam repo: `"../../specs/erc7730-v2.schema.json"` +5. Buka permintaan tarik (pull request) + +Saat Anda membuka PR, CI secara otomatis menjalankan validasi skema, memeriksa bahwa tanda tangan fungsi menghasilkan pemilih yang valid, mengonfirmasi alamat kontrak diverifikasi di Sourcify, dan menandai ketidakkonsistenan ABI. Hasil pemeriksaan muncul sebaris pada PR. Pengelola registri menyaring kiriman untuk deskriptor yang cacat atau berpotensi berbahaya. Penyertaan dalam registri tidak menyiratkan audit atau dukungan. + + + + +**Catatan:** Kontrak Anda harus diverifikasi di Sourcify sebelum PR Anda dapat diterima. Jika belum diverifikasi, kirimkan verifikasi terlebih dahulu. + + + + +## Apa yang terjadi setelah penggabungan? {#what-happens-after-merging} + +Semua deskriptor di registri terbuka untuk auditor. Setelah PR Anda digabungkan, auditor mana pun dapat meninjau deskriptor Anda dan menerbitkan atestasi kriptografi (di bawah [ERC-8176](https://github.com/ethereum/ERCs/pull/1576)) yang mengonfirmasi keakuratannya. + +Sinyal atestasi ini memungkinkan dompet menerapkan kebijakan kepercayaan mereka sendiri — deskriptor dengan beberapa atestasi independen memiliki bobot lebih daripada yang tidak memilikinya. Anda dapat menjangkau komunitas auditor melalui [clearsigning.org](https://clearsigning.org). + +Dompet memilih registri mana yang akan mereka dukung. Setelah deskriptor Anda berada di registri, dompet yang mendukung ERC-7730 akan mulai mengambilnya jika ada di registri mereka dan akan menampilkan data yang dapat dibaca manusia ketika pengguna berinteraksi dengan kontrak Anda. + +## Bacaan lebih lanjut {#further-reading} + +- [Spesifikasi ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) +- [Registri ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — perkakas, status ekosistem, dan tata kelola +- [Verifikasi kontrak Sourcify](https://sourcify.dev) +- [Inisiatif Keamanan Triliunan Dolar (Trillion Dollar Security)](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/it/developers/tutorials/clear-signing/index.md b/public/content/translations/it/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..05e7b883512 --- /dev/null +++ b/public/content/translations/it/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: Aggiungi la firma in chiaro al tuo protocollo con l'ERC-7730 +description: Scopri come scrivere un descrittore ERC-7730 in modo che le interazioni con i tuoi smart contract mostrino dettagli leggibili dall'uomo nei portafogli prima che gli utenti firmino. +author: Hester Bruikman +lang: it +tags: ["ERC-7730", "sicurezza", "firma", "smart contract", "portafogli"] +skill: intermediate +breadcrumb: Firma in chiaro +published: 2026-05-11 +--- + +La maggior parte dei principali exploit su Ethereum ha avuto lo stesso passaggio finale: un utente che approva una transazione che non poteva comprendere in modo significativo. I portafogli hardware mostrano i dati di chiamata esadecimali grezzi e, peggio ancora, costringono ad avere la firma cieca (blind signing) attivata. I portafogli software mostrano i campi decodificati, ma solo quando riconoscono il contratto. Quando non lo fanno, sia perché il protocollo è nuovo, l'app è compromessa o il dispositivo è offline, gli utenti firmano alla cieca. + +[L'ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) definisce un formato JSON standard per descrivere cosa *significano* le chiamate di funzione del tuo contratto. + +Un portafoglio che supporta l'ERC-7730 legge il tuo descrittore e mostra: + +> **Swap** +> Invia: 1.000 USDC +> Ricevi minimo: 0,42 WETH +> Protocollo: Uniswap V3 + +Oppure una singola frase costruita leggibile sia dagli esseri umani che dagli agenti: + +> Fai lo swap di 1.000 USDC per almeno 0,42 WETH + +Invece di un selettore di funzione e un elenco di valori interi grezzi. + +Questa è la [firma in chiaro](https://clearsigning.org/) — "Quello che vedi è quello che firmi" (What You See Is What You Sign). Questo tutorial ti guida attraverso la scrittura di un descrittore per il tuo contratto, la sua convalida con lo strumento CLI ufficiale e l'invio al registro aperto. + +## Prerequisiti {#prerequisites} + +- Familiarità con Solidity e le ABI degli smart contract +- Uno smart contract distribuito con un'ABI verificata (la verifica su [Sourcify](https://sourcify.dev) è richiesta prima che un descrittore venga accettato nel registro) +- Python 3.12+ per la CLI di convalida +- Conoscenza di base di JSON + +## Cos'è un descrittore ERC-7730? {#what-is-an-erc-7730-descriptor} + +Un descrittore è un singolo file JSON con tre sezioni: + +| Sezione | Scopo | +| :---- | :---- | +| `context` | Associa il descrittore a distribuzioni di contratti specifiche tramite ID della catena e indirizzo | +| `metadata` | Dà un nome al progetto e definisce costanti riutilizzabili | +| `display` | Mappa ogni firma di funzione a etichette leggibili dall'uomo e formati di campo | + +Poiché il descrittore è separato dal contratto stesso, puoi aggiungere il supporto per la firma in chiaro a qualsiasi protocollo esistente senza una nuova distribuzione. I portafogli recuperano i descrittori dal registro e li utilizzano al momento della firma. + +## Passaggio 1: Creare lo scheletro del file {#step-1-create-the-file-skeleton} + +Crea un file chiamato `calldata--.json`. Il prefisso `calldata-` indica al registro che questo descrittore copre le chiamate di funzione del contratto, a differenza di `eip712-` per i messaggi di dati tipizzati. `descriptorversion` indica al registro la versione del file descrittore, 0 per impostazione predefinita se non viene fornita alcuna versione. + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## Passaggio 2: Scrivere la sezione del contesto {#step-2-write-the-context-section} + +La sezione `context` associa il descrittore a una o più distribuzioni del contratto. I portafogli la utilizzano per far corrispondere una transazione in entrata al descrittore corretto. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### Campi del contesto {#context-fields} + +- `context.$id` — Un identificatore univoco per questo documento descrittore o configurazione di distribuzione. +- `contract.deployments` — L'insieme di distribuzioni a cui si applica questo descrittore. +- `deployments[].chainId` — L'ID della catena EVM per una distribuzione. Includi ogni catena in cui è distribuito il tuo contratto. +- `deployments[].address` — L'indirizzo del contratto che i portafogli dovrebbero associare a questo descrittore. Usa l'indirizzo di implementazione che contiene la logica di esecuzione. + +## Passaggio 3: Scrivere la sezione dei metadati {#step-3-write-the-metadata-section} + +La sezione dei metadati fornisce informazioni leggibili dall'uomo sul progetto e sul contratto descritti da questo file. I portafogli possono utilizzare queste informazioni per visualizzare nomi di protocolli, link e altri dettagli contestuali durante la firma. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### Campi dei metadati {#metadata-fields} + +- `owner` — Il progetto, protocollo, organizzazione o manutentore responsabile di questo descrittore. +- `info.url` — Un URL canonico del progetto o della documentazione che i portafogli possono mostrare agli utenti per ulteriore contesto. +- `contractName` — Il nome del contratto o dell'implementazione descritto da questo file, che in genere corrisponde al codice sorgente verificato o all'ABI. + +Se il tuo file ERC-7730 descrive un contratto ERC-20, dovresti aggiungere anche un oggetto token. + +## Passaggio 4: Scrivere la sezione dei formati di visualizzazione {#step-4-write-the-displayformats-section} + +L'oggetto `display.formats` mappa le firme delle funzioni a istruzioni di firma leggibili dall'uomo. È così che i portafogli mostrano la tua funzione agli utenti prima che approvino una transazione! + +Ogni chiave è un frammento di ABI leggibile dall'uomo: la firma della funzione che include sia i nomi che i tipi dei parametri esattamente come appaiono nella tua ABI. + + +### Esempio: Descrivere uno swap di token {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### Campi di visualizzazione {#display-fields} + +- **`intent`** — **(Obbligatorio)** Una breve descrizione intuitiva dell'azione, come "Swap". +- **`interpolatedIntent`** — **(Consigliato)** Un modello di frase più ricco che incorpora valori di campo formattati, come `"Swap {amountIn} for at least {amountOutMin}"`. Includilo insieme a `intent` per fornire un descrittore ancora più intuitivo che i portafogli possono scegliere di mostrare in base a eventuali vincoli di visualizzazione. +- **`fields`** — **(Obbligatorio)** L'elenco ordinato dei campi della transazione che i portafogli dovrebbero mostrare agli utenti. + - **`path`** — **(Obbligatorio)** Un riferimento ai dati della transazione. `#.fieldName` punta a un parametro dei dati di chiamata decodificato in base al nome nell'ABI. `@.value` si riferisce al valore in ETH inviato con la transazione. + - **`label`** — **(Obbligatorio)** L'etichetta leggibile dall'uomo mostrata accanto al valore. + - **`format`** — **(Consigliato)** Controlla come dovrebbe essere reso il valore. I formati comuni includono: + - `tokenAmount` + - `addressName` + - `date` + + Usa `raw` quando non è necessaria alcuna formattazione aggiuntiva. Alcuni formati accettano una configurazione **`params`** aggiuntiva. Ad esempio: + + - `tokenAmount` può usare `tokenPath` per identificare quale indirizzo del token fornisce i decimali e i metadati del ticker. + - `date` può usare `encoding` per descrivere come è codificato il timestamp. + + Se il formato selezionato non richiede informazioni aggiuntive, ometti `params`. + +## Il descrittore completo {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## Passaggio 5: Inviare al registro {#step-5-submit-to-the-registry} + +Il [registro ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) è un repository aperto ospitato dalla [Fondazione Ethereum](/foundation/) in qualità di amministratore neutrale. Chiunque è libero di clonarlo e ospitarlo autonomamente: i portafogli decidono in modo indipendente di quali istanze del registro fidarsi. + +1. Fai un fork del repository su GitHub +2. Crea una cartella in `registry//` +3. Inserisci il tuo file al suo interno: `registry/myproject/calldata-mycontract-0_0.json` +4. Aggiorna il campo `$schema` al percorso relativo utilizzato all'interno del repository: `"../../specs/erc7730-v2.schema.json"` +5. Apri una pull request + +Quando apri la PR, la CI esegue automaticamente la convalida dello schema, verifica che le firme delle funzioni producano selettori validi, conferma che l'indirizzo del contratto sia verificato su Sourcify e segnala le incongruenze dell'ABI. I risultati del controllo appaiono in linea sulla PR. I manutentori del registro esaminano gli invii per individuare descrittori malformati o potenzialmente dannosi. L'inclusione nel registro non implica un audit o un'approvazione. + + + + +**Nota:** Il tuo contratto deve essere verificato su Sourcify prima che la tua PR possa essere accettata. Se non è ancora verificato, invia prima la verifica. + + + + +## Cosa succede dopo l'unione (merge)? {#what-happens-after-merging} + +Tutti i descrittori nel registro sono aperti ai revisori. Dopo che la tua PR è stata unita, qualsiasi revisore può esaminare il tuo descrittore e pubblicare un'attestazione crittografica (ai sensi dell'[ERC-8176](https://github.com/ethereum/ERCs/pull/1576)) confermandone l'accuratezza. + +Questi segnali di attestazione consentono ai portafogli di applicare le proprie politiche di fiducia: un descrittore con più attestazioni indipendenti ha più peso di uno che ne è privo. Puoi raggiungere la community dei revisori tramite [clearsigning.org](https://clearsigning.org). + +I portafogli scelgono quale registro supportare. Una volta che il tuo descrittore è nel registro, i portafogli che supportano l'ERC-7730 inizieranno a recuperarlo se è presente nel loro registro e mostreranno dati leggibili dall'uomo quando gli utenti interagiscono con il tuo contratto. + +## Letture consigliate {#further-reading} + +- [Specifica ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) +- [Registro ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — strumenti, stato dell'ecosistema e governance +- [Verifica dei contratti su Sourcify](https://sourcify.dev) +- [Iniziativa Trillion Dollar Security](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/ja/developers/tutorials/clear-signing/index.md b/public/content/translations/ja/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..50d5c4f67e3 --- /dev/null +++ b/public/content/translations/ja/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "ERC-7730を使用してプロトコルにクリア・サイニングを追加する" +description: "ユーザーが署名する前にウォレットに人間が読める詳細を表示できるように、ERC-7730記述子(ディスクリプタ)を記述する方法を学びます。" +author: "ヘスター・ブルイクマン" +lang: ja +tags: ["ERC-7730", "セキュリティ", "署名", "スマート・コントラクト", "ウォレット"] +skill: intermediate +breadcrumb: "クリア・サイニング" +published: 2026-05-11 +--- + +ほとんどの主要なイーサリアム(Ethereum)の悪用には、同じ最終ステップがありました。それは、ユーザーが意味を理解できないトランザクションを承認することです。ハードウェア・ウォレットは生の16進数のコールデータを表示し、さらに悪いことにブラインド署名をオンにすることを強制します。ソフトウェア・ウォレットはデコードされたフィールドを表示しますが、それはコントラクトを認識した場合のみです。プロトコルが新しい、アプリが侵害されている、またはデバイスがオフラインであるなどの理由で認識できない場合、ユーザーはブラインド署名を行います。 + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730)は、コントラクトの関数呼び出しが「何を意味するか」を記述するための標準的なJSONフォーマットを定義しています。 + +ERC-7730をサポートするウォレットは、記述子を読み取り、次のように表示します。 + +> **スワップ** +> 送信: 1,000 USDC +> 最小受信: 0.42 WETH +> プロトコル: ユニスワップ V3 + +または、人間とエージェントの両方が読めるように構築された1つの文として表示します。 + +> 1,000 USDCを少なくとも0.42 WETHにスワップする + +関数セレクタと生の整数値のリストの代わりに、このように表示されます。 + +これが[クリア・サイニング](https://clearsigning.org/)、つまり「見たものが署名するもの(What You See Is What You Sign)」です。このチュートリアルでは、独自のコントラクト用の記述子を作成し、公式のCLIツールで検証し、オープンなレジストリに送信する手順を説明します。 + +## 前提条件 {#prerequisites} + +- Solidityおよびスマート・コントラクトのABIに関する知識 +- 検証済みのABIを持つデプロイされたスマート・コントラクト(記述子がレジストリに受け入れられるには、[Sourcify](https://sourcify.dev)での検証が必要です) +- 検証CLI用のPython 3.12以上 +- JSONの基本的な知識 + +## ERC-7730記述子とは? {#what-is-an-erc-7730-descriptor} + +記述子は、3つのセクションを持つ単一のJSONファイルです。 + +| セクション | 目的 | +| :---- | :---- | +| `context` | チェーンIDとアドレスによって、記述子を特定のコントラクトのデプロイにバインドします | +| `metadata` | プロジェクトに名前を付け、再利用可能な定数を定義します | +| `display` | 各関数シグネチャを、人間が読めるラベルとフィールドフォーマットにマッピングします | + +記述子はコントラクト自体とは分離されているため、再デプロイすることなく、既存のプロトコルにクリア・サイニングのサポートを追加できます。ウォレットはレジストリから記述子を取得し、署名時に使用します。 + +## ステップ1: ファイルのスケルトンを作成する {#step-1-create-the-file-skeleton} + +`calldata--.json`という名前のファイルを作成します。`calldata-`というプレフィックスは、型付きデータメッセージ用の`eip712-`とは対照的に、この記述子がコントラクトの関数呼び出しをカバーしていることをレジストリに伝えます。`descriptorversion`は、記述子ファイルのバージョンをレジストリに伝えます。バージョンが提供されていない場合はデフォルトで0になります。 + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## ステップ2: コンテキストセクションを記述する {#step-2-write-the-context-section} + +`context`セクションは、記述子を1つ以上のコントラクトのデプロイにバインドします。ウォレットはこれを使用して、受信したトランザクションを正しい記述子と照合します。 + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### コンテキストフィールド {#context-fields} + +- `context.$id` — この記述子ドキュメントまたはデプロイ構成の一意の識別子。 +- `contract.deployments` — この記述子が適用されるデプロイのセット。 +- `deployments[].chainId` — デプロイのEVMチェーンID。コントラクトがデプロイされているすべてのチェーンを含めます。 +- `deployments[].address` — ウォレットがこの記述子に関連付けるべきコントラクトのアドレス。実行ロジックを保持する実装アドレスを使用します。 + +## ステップ3: メタデータセクションを記述する {#step-3-write-the-metadata-section} + +メタデータセクションは、このファイルで記述されているプロジェクトとコントラクトに関する人間が読める情報を提供します。ウォレットは、署名中にプロトコル名、リンク、その他のコンテキストの詳細を表示するためにこの情報を使用する場合があります。 + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### メタデータフィールド {#metadata-fields} + +- `owner` — この記述子を担当するプロジェクト、プロトコル、組織、またはメンテナー。 +- `info.url` — ウォレットが追加のコンテキストとしてユーザーに表示する可能性のある、正規のプロジェクトまたはドキュメントのURL。 +- `contractName` — このファイルで記述されているコントラクトまたは実装の名前。通常は、検証済みのソースコードまたはABIと一致します。 + +ERC-7730ファイルがERC-20コントラクトを記述している場合は、トークンオブジェクトも追加する必要があります。 + +## ステップ4: 表示フォーマットセクションを記述する {#step-4-write-the-displayformats-section} + +`display.formats`オブジェクトは、関数シグネチャを人間が読める署名指示にマッピングします。これにより、ユーザーがトランザクションを承認する前に、ウォレットが関数をユーザーに表示する方法が決まります。 + +各キーは、人間が読めるABIフラグメントです。つまり、パラメータ名とパラメータタイプの両方を含む関数シグネチャであり、ABIに表示されるとおりに正確に記述されます。 + + +### 例: トークンスワップの記述 {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### 表示フィールド {#display-fields} + +- **`intent`** — **(必須)** 「スワップ」など、アクションの短くてユーザーフレンドリーな説明。 +- **`interpolatedIntent`** — **(推奨)** `"Swap {amountIn} for at least {amountOutMin}"`のように、フォーマットされたフィールド値を埋め込む、よりリッチな文のテンプレート。`intent`と一緒にこれを含めることで、表示上の制約がある場合でもウォレットが選択して表示できる、さらにユーザーフレンドリーな記述子を提供できます。 +- **`fields`** — **(必須)** ウォレットがユーザーに表示すべきトランザクションフィールドの順序付きリスト。 + - **`path`** — **(必須)** トランザクションデータへの参照。`#.fieldName`は、ABI内の名前によってデコードされたコールデータパラメータを指します。`@.value`は、トランザクションで送信されたETHの値を指します。 + - **`label`** — **(必須)** 値の横に表示される、人間が読めるラベル。 + - **`format`** — **(推奨)** 値のレンダリング方法を制御します。一般的なフォーマットは次のとおりです。 + - `tokenAmount` + - `addressName` + - `date` + + 追加のフォーマットが必要ない場合は、`raw`を使用します。一部のフォーマットは、追加の**`params`**構成を受け入れます。例: + + - `tokenAmount`は、`tokenPath`を使用して、どのトークンアドレスが小数点以下の桁数とティッカーのメタデータを提供するかを識別できます。 + - `date`は、`encoding`を使用して、タイムスタンプがどのようにエンコードされているかを記述できます。 + + 選択したフォーマットに追加情報が必要ない場合は、`params`を省略します。 + +## 完全な記述子 {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## ステップ5: レジストリに送信する {#step-5-submit-to-the-registry} + +[ERC-7730レジストリ](https://github.com/ethereum/clear-signing-erc7730-registry)は、中立的なスチュワードとして[イーサリアム財団](/foundation/)がホストするオープンなリポジトリです。誰でも自由にクローンしてセルフホストできます。ウォレットは、どのレジストリインスタンスを信頼するかを独自に決定します。 + +1. GitHubでリポジトリをフォークする +2. `registry//`にフォルダを作成する +3. その中にファイルを配置する: `registry/myproject/calldata-mycontract-0_0.json` +4. `$schema`フィールドを、リポジトリ内で使用される相対パスに更新する: `"../../specs/erc7730-v2.schema.json"` +5. プルリクエストを開く + +PRを開くと、CIが自動的にスキーマ検証を実行し、関数シグネチャが有効なセレクタを生成するかどうかを確認し、コントラクトのアドレスがSourcifyで検証されていることを確認し、ABIの不整合をフラグ付けします。チェック結果はPRにインラインで表示されます。レジストリのメンテナーは、不正な形式や悪意のある可能性のある記述子の送信を審査します。レジストリへの登録は、監査や推奨を意味するものではありません。 + + + + +**注:** PRが受け入れられるには、コントラクトがSourcifyで検証されている必要があります。まだ検証されていない場合は、先に検証を送信してください。 + + + + +## マージ後はどうなりますか? {#what-happens-after-merging} + +レジストリ内のすべての記述子は、監査人に公開されています。PRがマージされた後、任意の監査人が記述子をレビューし、その正確性を確認する暗号化アテステーション([ERC-8176](https://github.com/ethereum/ERCs/pull/1576)に基づく)を公開できます。 + +これらのアテステーションのシグナルにより、ウォレットは独自の信頼ポリシーを適用できます。複数の独立したアテステーションを持つ記述子は、そうでないものよりも重要視されます。監査人コミュニティには、[clearsigning.org](https://clearsigning.org)を通じて連絡を取ることができます。 + +ウォレットは、サポートするレジストリを選択します。記述子がレジストリに登録されると、ERC-7730をサポートするウォレットは、それが自身のレジストリにある場合に取得を開始し、ユーザーがコントラクトと対話する際に人間が読めるデータを表示します。 + +## 参考文献 {#further-reading} + +- [ERC-7730仕様](https://eips.ethereum.org/EIPS/eip-7730) +- [ERC-7730レジストリ](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — ツール、エコシステムのステータス、およびガバナンス +- [Sourcifyコントラクト検証](https://sourcify.dev) +- [Trillion Dollar Securityイニシアチブ](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/ko/developers/tutorials/clear-signing/index.md b/public/content/translations/ko/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..0f55e4f8473 --- /dev/null +++ b/public/content/translations/ko/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "ERC-7730으로 프로토콜에 명확한 서명하기 추가하기" +description: "사용자가 서명하기 전에 지갑에 사람이 읽을 수 있는 세부 정보를 표시하도록 스마트 컨트랙트 상호작용을 위한 ERC-7730 설명자(descriptor)를 작성하는 방법을 알아보세요." +author: "헤스터 브루이크만" +lang: ko +tags: ["ERC-7730", "보안", "서명하기", "스마트 컨트랙트", "지갑"] +skill: intermediate +breadcrumb: "명확한 서명하기" +published: 2026-05-11 +--- + +대부분의 주요 이더리움 익스플로잇(exploit)은 동일한 마지막 단계를 거쳤습니다. 바로 사용자가 의미를 제대로 이해하지 못한 채 트랜잭션을 승인하는 것입니다. 하드웨어 지갑은 원시 16진수 콜 데이터를 보여주며, 더 나아가 블라인드 서명하기(blind signing)를 강제하기도 합니다. 소프트웨어 지갑은 디코딩된 필드를 보여주지만, 컨트랙트를 인식할 때만 가능합니다. 프로토콜이 새롭거나, 앱이 손상되었거나, 기기가 오프라인 상태여서 컨트랙트를 인식하지 못할 때 사용자는 블라인드 서명을 하게 됩니다. + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730)은 컨트랙트의 함수 호출이 *무엇을 의미하는지* 설명하기 위한 표준 JSON 형식을 정의합니다. + +ERC-7730을 지원하는 지갑은 설명자를 읽고 다음과 같이 표시합니다. + +> **스왑** +> 보내기: 1,000 USDC +> 최소 받기: 0.42 WETH +> 프로토콜: 유니스왑 V3 + +또는 사람과 에이전트 모두 읽을 수 있도록 구성된 단일 문장으로 표시합니다. + +> 최소 0.42 WETH를 위해 1,000 USDC 스왑 + +함수 선택자(function selector)와 원시 정수 값 목록 대신 말입니다. + +이것이 바로 [명확한 서명하기](https://clearsigning.org/)입니다. 즉, "보는 대로 서명한다(What You See Is What You Sign)"는 의미입니다. 이 튜토리얼에서는 자체 컨트랙트를 위한 설명자를 작성하고, 공식 CLI 도구로 유효성을 검사하며, 개방형 레지스트리에 제출하는 과정을 안내합니다. + +## 전제 조건 {#prerequisites} + +- Solidity 및 스마트 컨트랙트 ABI에 대한 친숙함 +- 검증된 ABI가 있는 배포된 스마트 컨트랙트(설명자가 레지스트리에 수락되려면 먼저 [Sourcify](https://sourcify.dev) 검증이 필요합니다) +- 유효성 검사 CLI를 위한 Python 3.12 이상 +- 기본적인 JSON 지식 + +## ERC-7730 설명자란 무엇인가요? {#what-is-an-erc-7730-descriptor} + +설명자는 세 가지 섹션으로 구성된 단일 JSON 파일입니다. + +| 섹션 | 목적 | +| :---- | :---- | +| `context` | 체인 ID와 주소를 통해 설명자를 특정 컨트랙트 배포에 바인딩합니다. | +| `metadata` | 프로젝트 이름을 지정하고 재사용 가능한 상수를 정의합니다. | +| `display` | 각 함수 서명을 사람이 읽을 수 있는 레이블 및 필드 형식에 매핑합니다. | + +설명자는 컨트랙트 자체와 분리되어 있으므로, 재배포 없이 기존 프로토콜에 명확한 서명하기 지원을 추가할 수 있습니다. 지갑은 레지스트리에서 설명자를 검색하여 서명할 때 사용합니다. + +## 1단계: 파일 뼈대 만들기 {#step-1-create-the-file-skeleton} + +`calldata--.json`라는 이름의 파일을 만듭니다. `calldata-` 접두사는 이 설명자가 타입드 데이터(typed-data) 메시지를 위한 `eip712-`와 달리 컨트랙트 함수 호출을 다룬다는 것을 레지스트리에 알려줍니다. `descriptorversion`는 레지스트리에 설명자 파일의 버전을 알려주며, 버전을 제공하지 않으면 기본값은 0입니다. + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## 2단계: 컨텍스트 섹션 작성하기 {#step-2-write-the-context-section} + +`context` 섹션은 설명자를 하나 이상의 컨트랙트 배포에 바인딩합니다. 지갑은 이를 사용하여 들어오는 트랜잭션을 올바른 설명자와 일치시킵니다. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### 컨텍스트 필드 {#context-fields} + +- `context.$id` — 이 설명자 문서 또는 배포 구성에 대한 고유 식별자입니다. +- `contract.deployments` — 이 설명자가 적용되는 배포 세트입니다. +- `deployments[].chainId` — 배포를 위한 EVM 체인 ID입니다. 컨트랙트가 배포된 모든 체인을 포함하세요. +- `deployments[].address` — 지갑이 이 설명자와 연결해야 하는 컨트랙트 주소입니다. 실행 로직을 보유한 구현 주소를 사용하세요. + +## 3단계: 메타데이터 섹션 작성하기 {#step-3-write-the-metadata-section} + +메타데이터 섹션은 이 파일이 설명하는 프로젝트 및 컨트랙트에 대해 사람이 읽을 수 있는 정보를 제공합니다. 지갑은 서명하는 동안 프로토콜 이름, 링크 및 기타 컨텍스트 세부 정보를 표시하기 위해 이 정보를 사용할 수 있습니다. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### 메타데이터 필드 {#metadata-fields} + +- `owner` — 이 설명자를 담당하는 프로젝트, 프로토콜, 조직 또는 유지 관리자입니다. +- `info.url` — 지갑이 추가 컨텍스트를 위해 사용자에게 표시할 수 있는 공식 프로젝트 또는 문서 URL입니다. +- `contractName` — 이 파일이 설명하는 컨트랙트 또는 구현 이름으로, 일반적으로 검증된 소스 코드 또는 ABI와 일치합니다. + +ERC-7730 파일이 ERC-20 컨트랙트를 설명하는 경우 토큰 객체도 추가해야 합니다. + +## 4단계: 디스플레이 형식 섹션 작성하기 {#step-4-write-the-displayformats-section} + +`display.formats` 객체는 함수 서명을 사람이 읽을 수 있는 서명 지침에 매핑합니다. 이것이 지갑이 사용자가 트랜잭션을 승인하기 전에 함수를 보여주는 방식입니다! + +각 키는 사람이 읽을 수 있는 ABI 조각입니다. 즉, 매개변수 이름과 매개변수 유형을 ABI에 나타난 그대로 포함하는 함수 서명입니다. + + +### 예시: 토큰 스왑 설명하기 {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### 디스플레이 필드 {#display-fields} + +- **`intent`** — **(필수)** "스왑"과 같이 짧고 사용자 친화적인 작업 설명입니다. +- **`interpolatedIntent`** — **(권장)** `"Swap {amountIn} for at least {amountOutMin}"`와 같이 형식이 지정된 필드 값을 포함하는 더 풍부한 문장 템플릿입니다. 디스플레이 제약 조건이 주어졌을 때 지갑이 선택하여 표시할 수 있는 훨씬 더 사용자 친화적인 설명자를 제공하려면 `intent`와 함께 이를 포함하세요. +- **`fields`** — **(필수)** 지갑이 사용자에게 표시해야 하는 트랜잭션 필드의 정렬된 목록입니다. + - **`path`** — **(필수)** 트랜잭션 데이터에 대한 참조입니다. `#.fieldName`는 ABI의 이름으로 디코딩된 콜 데이터 매개변수를 가리킵니다. `@.value`는 트랜잭션과 함께 전송된 ETH 값을 나타냅니다. + - **`label`** — **(필수)** 값 옆에 표시되는 사람이 읽을 수 있는 레이블입니다. + - **`format`** — **(권장)** 값이 렌더링되는 방식을 제어합니다. 일반적인 형식은 다음과 같습니다. + - `tokenAmount` + - `addressName` + - `date` + + 추가 서식이 필요하지 않은 경우 `raw`를 사용하세요. 일부 형식은 추가적인 **`params`** 구성을 허용합니다. 예를 들면 다음과 같습니다. + + - `tokenAmount`는 `tokenPath`를 사용하여 어떤 토큰 주소가 소수점 및 티커 메타데이터를 제공하는지 식별할 수 있습니다. + - `date`는 `encoding`를 사용하여 타임스탬프가 인코딩되는 방식을 설명할 수 있습니다. + + 선택한 형식에 추가 정보가 필요하지 않은 경우 `params`를 생략하세요. + +## 전체 설명자 {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## 5단계: 레지스트리에 제출하기 {#step-5-submit-to-the-registry} + +[ERC-7730 레지스트리](https://github.com/ethereum/clear-signing-erc7730-registry)는 중립적인 관리자로서 [이더리움 재단](/foundation/)이 호스팅하는 개방형 리포지토리입니다. 누구나 자유롭게 복제하고 자체 호스팅할 수 있으며, 지갑은 신뢰할 레지스트리 인스턴스를 독립적으로 결정합니다. + +1. GitHub에서 리포지토리를 포크(fork)합니다. +2. `registry//`에 폴더를 만듭니다. +3. 그 안에 파일을 배치합니다: `registry/myproject/calldata-mycontract-0_0.json` +4. `$schema` 필드를 리포지토리 내에서 사용되는 상대 경로로 업데이트합니다: `"../../specs/erc7730-v2.schema.json"` +5. 풀 리퀘스트(pull request)를 엽니다. + +PR을 열면 CI가 자동으로 스키마 유효성 검사를 실행하고, 함수 서명이 유효한 선택자를 생성하는지 확인하며, 컨트랙트 주소가 Sourcify에서 검증되었는지 확인하고, ABI 불일치를 표시합니다. 검사 결과는 PR에 인라인으로 나타납니다. 레지스트리 유지 관리자는 형식이 잘못되었거나 잠재적으로 악의적인 설명자가 있는지 제출물을 심사합니다. 레지스트리에 포함되었다고 해서 감사나 보증을 의미하는 것은 아닙니다. + + + + +**참고:** PR이 수락되려면 먼저 Sourcify에서 컨트랙트가 검증되어야 합니다. 아직 검증되지 않은 경우 먼저 검증을 제출하세요. + + + + +## 병합 후에는 어떻게 되나요? {#what-happens-after-merging} + +레지스트리의 모든 설명자는 감사자에게 공개됩니다. PR이 병합된 후, 모든 감사자는 설명자를 검토하고 정확성을 확인하는 암호화 증명([ERC-8176](https://github.com/ethereum/ERCs/pull/1576)에 따름)을 게시할 수 있습니다. + +이러한 증명 신호를 통해 지갑은 자체 신뢰 정책을 적용할 수 있습니다. 여러 개의 독립적인 증명이 있는 설명자는 증명이 없는 설명자보다 더 큰 비중을 차지합니다. [clearsigning.org](https://clearsigning.org)를 통해 감사자 커뮤니티에 연락할 수 있습니다. + +지갑은 지원할 레지스트리를 선택합니다. 설명자가 레지스트리에 등록되면, ERC-7730을 지원하는 지갑은 해당 레지스트리에 설명자가 있는 경우 이를 가져오기 시작하며, 사용자가 컨트랙트와 상호작용할 때 사람이 읽을 수 있는 데이터를 표시합니다. + +## 더 읽어보기 {#further-reading} + +- [ERC-7730 사양](https://eips.ethereum.org/EIPS/eip-7730) +- [ERC-7730 레지스트리](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — 도구, 생태계 상태 및 거버넌스 +- [Sourcify 컨트랙트 검증](https://sourcify.dev) +- [조 달러 규모의 보안 이니셔티브(Trillion Dollar Security initiative)](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/mr/developers/tutorials/clear-signing/index.md b/public/content/translations/mr/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..e99e3d49642 --- /dev/null +++ b/public/content/translations/mr/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "⁦ERC-7730⁩ वापरून तुमच्या प्रोटोकॉलमध्ये क्लिअर स्वाक्षरी जोडा" +description: "⁦ERC-7730⁩ डिस्क्रिप्टर कसे लिहायचे ते शिका जेणेकरून वापरकर्त्यांनी स्वाक्षरी करण्यापूर्वी तुमच्या स्मार्ट कॉन्ट्रॅक्ट संवादांचे मानवी-वाचनीय तपशील वॉलेट्समध्ये दिसतील." +author: "हेस्टर ब्रुइकमन" +lang: mr +tags: ["ERC-7730", "सुरक्षा", "स्वाक्षरी करणे", "स्मार्ट कॉन्ट्रॅक्ट्स", "वॉलेट्स"] +skill: intermediate +breadcrumb: "क्लिअर स्वाक्षरी" +published: 2026-05-11 +--- + +बहुतेक मोठ्या इथेरियम (Ethereum) शोषणांमध्ये (exploits) एकच अंतिम टप्पा होता: वापरकर्त्याने असा व्यवहार मंजूर करणे जो त्यांना अर्थपूर्णरीत्या समजू शकत नव्हता. हार्डवेअर वॉलेट्स कच्चा हेक्स कॉल डेटा (raw hex calldata) दाखवतात आणि त्याहून वाईट म्हणजे तुम्हाला ब्लाइंड स्वाक्षरी (blind signing) चालू ठेवण्यास भाग पाडतात. सॉफ्टवेअर वॉलेट्स डीकोड केलेले फील्ड्स दाखवतात, परंतु केवळ तेव्हाच जेव्हा ते कॉन्ट्रॅक्ट ओळखतात. जेव्हा ते ओळखत नाहीत, मग ते प्रोटोकॉल नवीन असल्यामुळे असो, ॲप तडजोड केलेले (compromised) असल्यामुळे असो, किंवा डिव्हाइस ऑफलाइन असल्यामुळे असो, वापरकर्ते ब्लाइंड स्वाक्षरी करतात. + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) तुमच्या कॉन्ट्रॅक्टच्या फंक्शन कॉल्सचा *अर्थ* काय आहे हे वर्णन करण्यासाठी एक प्रमाणित JSON फॉरमॅट परिभाषित करते. + +ERC-7730 ला सपोर्ट करणारे वॉलेट तुमचा डिस्क्रिप्टर वाचते आणि खालीलप्रमाणे दाखवते: + +> **अदलाबदल (Swap)** +> पाठवा: 1,000 USDC +> किमान प्राप्त करा: 0.42 WETH +> प्रोटोकॉल: युनिस्वॅप V3 (Uniswap V3) + +किंवा मानवांना आणि एजंट्सना सारखेच वाचता येईल असे एकच तयार केलेले वाक्य: + +> किमान 0.42 WETH साठी 1,000 USDC ची अदलाबदल करा + +फंक्शन सिलेक्टर आणि कच्च्या पूर्णांक मूल्यांच्या (raw integer values) सूचीऐवजी. + +याला [क्लिअर स्वाक्षरी (clear signing)](https://clearsigning.org/) म्हणतात — "तुम्ही जे पाहता त्यावरच तुम्ही स्वाक्षरी करता." हे ट्युटोरियल तुम्हाला तुमच्या स्वतःच्या कॉन्ट्रॅक्टसाठी डिस्क्रिप्टर लिहिणे, अधिकृत CLI टूलसह त्याचे प्रमाणीकरण करणे आणि ते खुल्या रजिस्ट्रीमध्ये सबमिट करणे याबद्दल मार्गदर्शन करते. + +## पूर्वअटी {#prerequisites} + +- Solidity आणि स्मार्ट कॉन्ट्रॅक्ट ABIs ची माहिती +- सत्यापित ABI सह प्रस्थापित केलेले (deployed) स्मार्ट कॉन्ट्रॅक्ट (डिस्क्रिप्टर रजिस्ट्रीमध्ये स्वीकारण्यापूर्वी [Sourcify](https://sourcify.dev) सत्यापन आवश्यक आहे) +- प्रमाणीकरण CLI साठी Python 3.12+ +- JSON चे मूलभूत ज्ञान + +## ERC-7730 डिस्क्रिप्टर म्हणजे काय? {#what-is-an-erc-7730-descriptor} + +डिस्क्रिप्टर ही तीन विभागांसह असलेली एकच JSON फाईल असते: + +| विभाग (Section) | उद्देश (Purpose) | +| :---- | :---- | +| `context` | चेन आयडी (chain ID) आणि पत्त्याद्वारे डिस्क्रिप्टरला विशिष्ट कॉन्ट्रॅक्ट प्रस्थापनांशी (deployments) जोडते | +| `metadata` | प्रकल्पाला नाव देते आणि पुन्हा वापरता येण्याजोगे स्थिरांक (constants) परिभाषित करते | +| `display` | प्रत्येक फंक्शन स्वाक्षरीला मानवी-वाचनीय लेबल्स आणि फील्ड फॉरमॅट्सशी मॅप करते | + +डिस्क्रिप्टर कॉन्ट्रॅक्टपासून वेगळा असल्यामुळे, तुम्ही पुन्हा प्रस्थापना (redeployment) न करता कोणत्याही विद्यमान प्रोटोकॉलमध्ये क्लिअर स्वाक्षरी सपोर्ट जोडू शकता. वॉलेट्स रजिस्ट्रीमधून डिस्क्रिप्टर्स मिळवतात आणि स्वाक्षरी करण्याच्या वेळी त्यांचा वापर करतात. + +## पायरी 1: फाईलचा सांगाडा (skeleton) तयार करा {#step-1-create-the-file-skeleton} + +`calldata--.json` नावाची फाईल तयार करा. `calldata-` उपसर्ग (prefix) रजिस्ट्रीला सांगतो की हा डिस्क्रिप्टर कॉन्ट्रॅक्ट फंक्शन कॉल्स कव्हर करतो, याउलट `eip712-` टाईप-डेटा मेसेजेससाठी असतो. `descriptorversion` रजिस्ट्रीला डिस्क्रिप्टर फाईलची आवृत्ती सांगते, कोणतीही आवृत्ती न दिल्यास ती डीफॉल्टनुसार 0 असते. + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## पायरी 2: संदर्भ (context) विभाग लिहा {#step-2-write-the-context-section} + +`context` विभाग डिस्क्रिप्टरला एक किंवा अधिक कॉन्ट्रॅक्ट प्रस्थापनांशी जोडतो. वॉलेट्स येणाऱ्या व्यवहाराला योग्य डिस्क्रिप्टरशी जुळवण्यासाठी याचा वापर करतात. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### संदर्भ फील्ड्स (Context fields) {#context-fields} + +- `context.$id` — या डिस्क्रिप्टर दस्तऐवजासाठी किंवा प्रस्थापना कॉन्फिगरेशनसाठी एक युनिक आयडेंटिफायर. +- `contract.deployments` — प्रस्थापनांचा संच ज्यांना हा डिस्क्रिप्टर लागू होतो. +- `deployments[].chainId` — प्रस्थापनेसाठी EVM चेन आयडी. तुमचे कॉन्ट्रॅक्ट प्रस्थापित केलेल्या प्रत्येक चेनचा समावेश करा. +- `deployments[].address` — वॉलेट्सनी या डिस्क्रिप्टरशी जोडला पाहिजे असा कॉन्ट्रॅक्ट पत्ता. अंमलबजावणी लॉजिक (execution logic) असलेल्या अंमलबजावणी पत्त्याचा (implementation address) वापर करा. + +## पायरी 3: मेटाडेटा विभाग लिहा {#step-3-write-the-metadata-section} + +मेटाडेटा विभाग या फाईलद्वारे वर्णन केलेल्या प्रकल्पाबद्दल आणि कॉन्ट्रॅक्टबद्दल मानवी-वाचनीय माहिती प्रदान करतो. वॉलेट्स स्वाक्षरी करताना प्रोटोकॉलची नावे, लिंक्स आणि इतर संदर्भात्मक तपशील प्रदर्शित करण्यासाठी या माहितीचा वापर करू शकतात. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### मेटाडेटा फील्ड्स {#metadata-fields} + +- `owner` — या डिस्क्रिप्टरसाठी जबाबदार असलेला प्रकल्प, प्रोटोकॉल, संस्था किंवा देखभालकर्ता (maintainer). +- `info.url` — अतिरिक्त संदर्भासाठी वॉलेट्स वापरकर्त्यांना दाखवू शकतील अशी अधिकृत प्रकल्प किंवा दस्तऐवजीकरण URL. +- `contractName` — या फाईलद्वारे वर्णन केलेले कॉन्ट्रॅक्ट किंवा अंमलबजावणीचे नाव, जे सामान्यतः सत्यापित सोर्स कोड किंवा ABI शी जुळते. + +जर तुमची ERC-7730 फाईल ERC-20 कॉन्ट्रॅक्टचे वर्णन करत असेल, तर तुम्ही टोकन ऑब्जेक्ट देखील जोडला पाहिजे. + +## पायरी 4: डिस्प्ले फॉरमॅट्स विभाग लिहा {#step-4-write-the-displayformats-section} + +`display.formats` ऑब्जेक्ट फंक्शन स्वाक्षऱ्या मानवी-वाचनीय स्वाक्षरी सूचनांशी मॅप करतो. अशा प्रकारे वापरकर्त्यांनी व्यवहार मंजूर करण्यापूर्वी वॉलेट्स तुमचे फंक्शन त्यांना दाखवतात! + +प्रत्येक की (key) एक मानवी-वाचनीय ABI फ्रॅगमेंट आहे — फंक्शन स्वाक्षरी ज्यामध्ये पॅरामीटरची नावे आणि पॅरामीटरचे प्रकार दोन्ही तुमच्या ABI मध्ये जसे दिसतात अगदी तसेच समाविष्ट असतात. + + +### उदाहरण: टोकन अदलाबदलीचे वर्णन करणे {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### डिस्प्ले फील्ड्स {#display-fields} + +- **`intent`** — **(आवश्यक)** क्रियेचे एक छोटे, वापरकर्ता-अनुकूल वर्णन, जसे की "अदलाबदल (Swap)". +- **`interpolatedIntent`** — **(शिफारस केलेले)** एक अधिक समृद्ध वाक्य टेम्पलेट जे फॉरमॅट केलेली फील्ड मूल्ये एम्बेड करते, जसे की `"Swap {amountIn} for at least {amountOutMin}"`. वॉलेट्स कोणत्याही डिस्प्ले मर्यादांनुसार दाखवण्यासाठी निवडू शकतील असा अधिक वापरकर्ता-अनुकूल डिस्क्रिप्टर प्रदान करण्यासाठी `intent` सोबत याचा समावेश करा. +- **`fields`** — **(आवश्यक)** वॉलेट्सनी वापरकर्त्यांना दाखवायच्या व्यवहार फील्ड्सची क्रमित सूची. + - **`path`** — **(आवश्यक)** व्यवहार डेटाचा संदर्भ. `#.fieldName` ABI मधील नावानुसार डीकोड केलेल्या कॉल डेटा पॅरामीटरकडे निर्देश करते. `@.value` व्यवहारासोबत पाठवलेल्या ETH मूल्याचा संदर्भ देते. + - **`label`** — **(आवश्यक)** मूल्याच्या बाजूला दाखवलेले मानवी-वाचनीय लेबल. + - **`format`** — **(शिफारस केलेले)** मूल्य कसे रेंडर केले जावे हे नियंत्रित करते. सामान्य फॉरमॅट्समध्ये हे समाविष्ट आहे: + - `tokenAmount` + - `addressName` + - `date` + + जेव्हा कोणत्याही अतिरिक्त फॉरमॅटिंगची आवश्यकता नसते तेव्हा `raw` वापरा. काही फॉरमॅट्स अतिरिक्त **`params`** कॉन्फिगरेशन स्वीकारतात. उदाहरणार्थ: + + - कोणता टोकन पत्ता डेसिमल्स आणि टिकर मेटाडेटा प्रदान करतो हे ओळखण्यासाठी `tokenAmount` हे `tokenPath` वापरू शकते. + - टाइमस्टॅम्प कसा एन्कोड केला आहे याचे वर्णन करण्यासाठी `date` हे `encoding` वापरू शकते. + + निवडलेल्या फॉरमॅटला अतिरिक्त माहितीची आवश्यकता नसल्यास, `params` वगळा. + +## संपूर्ण डिस्क्रिप्टर {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## पायरी 5: रजिस्ट्रीमध्ये सबमिट करा {#step-5-submit-to-the-registry} + +[ERC-7730 रजिस्ट्री](https://github.com/ethereum/clear-signing-erc7730-registry) ही एक तटस्थ व्यवस्थापक (neutral steward) म्हणून [इथेरियम फाउंडेशन](/foundation/) द्वारे होस्ट केलेली एक खुली रिपॉझिटरी आहे. कोणालाही ती क्लोन आणि सेल्फ-होस्ट करण्याचे स्वातंत्र्य आहे — वॉलेट्स स्वतंत्रपणे ठरवतात की ते कोणत्या रजिस्ट्री इन्स्टन्सेसवर विश्वास ठेवतात. + +1. GitHub वर रिपॉझिटरी फोर्क (Fork) करा +2. `registry//` येथे एक फोल्डर तयार करा +3. तुमची फाईल त्यामध्ये ठेवा: `registry/myproject/calldata-mycontract-0_0.json` +4. `$schema` फील्डला रेपोमध्ये वापरलेल्या रिलेटिव्ह पाथवर अपडेट करा: `"../../specs/erc7730-v2.schema.json"` +5. पुल रिक्वेस्ट (pull request) उघडा + +जेव्हा तुम्ही PR उघडता, तेव्हा CI आपोआप स्कीमा प्रमाणीकरण चालवते, फंक्शन स्वाक्षऱ्या वैध सिलेक्टर्स तयार करतात का ते तपासते, कॉन्ट्रॅक्ट पत्ता Sourcify वर सत्यापित असल्याची पुष्टी करते आणि ABI विसंगती फ्लॅग करते. तपासणीचे परिणाम PR वर इनलाइन दिसतात. रजिस्ट्री देखभालकर्ते सदोष किंवा संभाव्य दुर्भावनापूर्ण डिस्क्रिप्टर्ससाठी सबमिशन्सची छाननी करतात. रजिस्ट्रीमध्ये समाविष्ट करणे म्हणजे ऑडिट किंवा समर्थन (endorsement) असा होत नाही. + + + + +**टीप:** तुमची PR स्वीकारण्यापूर्वी तुमचे कॉन्ट्रॅक्ट Sourcify वर सत्यापित असणे आवश्यक आहे. जर ते अद्याप सत्यापित नसेल, तर प्रथम सत्यापन सबमिट करा. + + + + +## विलीनीकरणानंतर (merging) काय होते? {#what-happens-after-merging} + +रजिस्ट्रीमधील सर्व डिस्क्रिप्टर्स ऑडिटर्ससाठी खुले असतात. तुमची PR विलीन झाल्यानंतर, कोणताही ऑडिटर तुमच्या डिस्क्रिप्टरचे पुनरावलोकन करू शकतो आणि त्याच्या अचूकतेची पुष्टी करणारे क्रिप्टोग्राफिक साक्षांकन ([ERC-8176](https://github.com/ethereum/ERCs/pull/1576) अंतर्गत) प्रकाशित करू शकतो. + +हे साक्षांकन सिग्नल्स वॉलेट्सना त्यांची स्वतःची विश्वास धोरणे (trust policies) लागू करू देतात — एकाधिक स्वतंत्र साक्षांकन असलेल्या डिस्क्रिप्टरला त्याशिवाय असलेल्या डिस्क्रिप्टरपेक्षा जास्त महत्त्व असते. तुम्ही [clearsigning.org](https://clearsigning.org) द्वारे ऑडिटर समुदायापर्यंत पोहोचू शकता. + +वॉलेट्स ते कोणत्या रजिस्ट्रीला सपोर्ट करतील हे निवडतात. एकदा तुमचा डिस्क्रिप्टर रजिस्ट्रीमध्ये आला की, ERC-7730 ला सपोर्ट करणारी वॉलेट्स तो त्यांच्या रजिस्ट्रीमध्ये असल्यास मिळवणे सुरू करतील आणि जेव्हा वापरकर्ते तुमच्या कॉन्ट्रॅक्टशी संवाद साधतील तेव्हा मानवी-वाचनीय डेटा प्रदर्शित करतील. + +## पुढील वाचन {#further-reading} + +- [ERC-7730 स्पेसिफिकेशन](https://eips.ethereum.org/EIPS/eip-7730) +- [ERC-7730 रजिस्ट्री](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — टूलिंग, इकोसिस्टम स्थिती आणि प्रशासन +- [Sourcify कॉन्ट्रॅक्ट सत्यापन](https://sourcify.dev) +- [ट्रिलियन डॉलर सिक्युरिटी इनिशिएटिव्ह](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/pl/developers/tutorials/clear-signing/index.md b/public/content/translations/pl/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..e26f82b052f --- /dev/null +++ b/public/content/translations/pl/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "Dodaj przejrzyste podpisywanie do swojego protokołu za pomocą ERC-7730" +description: "Dowiedz się, jak napisać deskryptor ERC-7730, aby interakcje z Twoim inteligentnym kontraktem wyświetlały czytelne dla człowieka szczegóły w portfelach, zanim użytkownicy je podpiszą." +author: Hester Bruikman +lang: pl +tags: ["ERC-7730", "bezpieczeństwo", "podpisywanie", "inteligentne kontrakty", "portfele"] +skill: intermediate +breadcrumb: Przejrzyste podpisywanie +published: 2026-05-11 +--- + +Większość głównych ataków na Ethereum miała ten sam ostatni krok: użytkownik zatwierdzający transakcję, której nie mógł w pełni zrozumieć. Portfele sprzętowe pokazują surowe dane wywołania (calldata) w formacie szesnastkowym, a co gorsza, wymuszają włączenie ślepego podpisywania (blind signing). Portfele programowe pokazują zdekodowane pola, ale tylko wtedy, gdy rozpoznają kontrakt. Kiedy tego nie robią, czy to dlatego, że protokół jest nowy, aplikacja została skompromitowana, czy urządzenie jest offline, użytkownicy podpisują w ciemno. + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) definiuje standardowy format JSON do opisywania, co *oznaczają* wywołania funkcji Twojego kontraktu. + +Portfel obsługujący ERC-7730 odczytuje Twój deskryptor i pokazuje: + +> **Wymiana** +> Wyślij: 1,000 USDC +> Otrzymaj minimum: 0.42 WETH +> Protokół: Uniswap V3 + +Albo pojedyncze, skonstruowane zdanie czytelne zarówno dla ludzi, jak i agentów: + +> Wymień 1,000 USDC na co najmniej 0.42 WETH + +Zamiast selektora funkcji i listy surowych wartości całkowitych. + +To jest [przejrzyste podpisywanie](https://clearsigning.org/) — „Podpisujesz to, co widzisz” (What You See Is What You Sign). Ten samouczek przeprowadzi Cię przez proces pisania deskryptora dla Twojego własnego kontraktu, walidacji go za pomocą oficjalnego narzędzia CLI i przesłania go do otwartego rejestru. + +## Wymagania wstępne {#prerequisites} + +- Znajomość języka Solidity i ABI inteligentnych kontraktów +- Wdrożony inteligentny kontrakt ze zweryfikowanym ABI (weryfikacja w [Sourcify](https://sourcify.dev) jest wymagana przed zaakceptowaniem deskryptora w rejestrze) +- Python 3.12+ dla narzędzia CLI do walidacji +- Podstawowa znajomość formatu JSON + +## Czym jest deskryptor ERC-7730? {#what-is-an-erc-7730-descriptor} + +Deskryptor to pojedynczy plik JSON składający się z trzech sekcji: + +| Sekcja | Cel | +| :---- | :---- | +| `context` | Wiąże deskryptor z konkretnymi wdrożeniami kontraktu na podstawie identyfikatora łańcucha (chain ID) i adresu | +| `metadata` | Nazywa projekt i definiuje stałe wielokrotnego użytku | +| `display` | Mapuje każdą sygnaturę funkcji na czytelne dla człowieka etykiety i formaty pól | + +Ponieważ deskryptor jest oddzielony od samego kontraktu, możesz dodać obsługę przejrzystego podpisywania do dowolnego istniejącego protokołu bez konieczności ponownego wdrożenia. Portfele pobierają deskryptory z rejestru i używają ich w momencie podpisywania. + +## Krok 1: Utworzenie szkieletu pliku {#step-1-create-the-file-skeleton} + +Utwórz plik o nazwie `calldata--.json`. Przedrostek `calldata-` informuje rejestr, że ten deskryptor obejmuje wywołania funkcji kontraktu, w przeciwieństwie do `eip712-` dla wiadomości z typowanymi danymi (typed-data). Pole `descriptorversion` informuje rejestr o wersji pliku deskryptora, domyślnie 0, jeśli nie podano wersji. + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## Krok 2: Napisanie sekcji kontekstu {#step-2-write-the-context-section} + +Sekcja `context` wiąże deskryptor z jednym lub wieloma wdrożeniami kontraktu. Portfele używają tego do dopasowania przychodzącej transakcji do odpowiedniego deskryptora. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### Pola kontekstu {#context-fields} + +- `context.$id` — Unikalny identyfikator dla tego dokumentu deskryptora lub konfiguracji wdrożenia. +- `contract.deployments` — Zestaw wdrożeń, do których ma zastosowanie ten deskryptor. +- `deployments[].chainId` — Identyfikator łańcucha (chain ID) EVM dla wdrożenia. Uwzględnij każdy łańcuch, w którym wdrożono Twój kontrakt. +- `deployments[].address` — Adres kontraktu, który portfele powinny powiązać z tym deskryptorem. Użyj adresu implementacji, który zawiera logikę wykonawczą. + +## Krok 3: Napisanie sekcji metadanych {#step-3-write-the-metadata-section} + +Sekcja metadanych dostarcza czytelne dla człowieka informacje o projekcie i kontrakcie opisanym w tym pliku. Portfele mogą używać tych informacji do wyświetlania nazw protokołów, linków i innych szczegółów kontekstowych podczas podpisywania. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### Pola metadanych {#metadata-fields} + +- `owner` — Projekt, protokół, organizacja lub opiekun odpowiedzialny za ten deskryptor. +- `info.url` — Kanoniczny adres URL projektu lub dokumentacji, który portfele mogą wyświetlać użytkownikom w celu zapewnienia dodatkowego kontekstu. +- `contractName` — Nazwa kontraktu lub implementacji opisana w tym pliku, zazwyczaj zgodna ze zweryfikowanym kodem źródłowym lub ABI. + +Jeśli Twój plik ERC-7730 opisuje kontrakt ERC-20, powinieneś również dodać obiekt tokena. + +## Krok 4: Napisanie sekcji formatów wyświetlania {#step-4-write-the-displayformats-section} + +Obiekt `display.formats` mapuje sygnatury funkcji na czytelne dla człowieka instrukcje podpisywania. W ten sposób portfele pokazują Twoją funkcję użytkownikom, zanim zatwierdzą oni transakcję! + +Każdy klucz to czytelny dla człowieka fragment ABI — sygnatura funkcji zawierająca zarówno nazwy parametrów, jak i typy parametrów dokładnie w takiej postaci, w jakiej pojawiają się w Twoim ABI. + + +### Przykład: Opisanie wymiany tokenów {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### Pola wyświetlania {#display-fields} + +- **`intent`** — **(Wymagane)** Krótki, przyjazny dla użytkownika opis akcji, taki jak „Wymiana” (Swap). +- **`interpolatedIntent`** — **(Zalecane)** Bogatszy szablon zdania, który osadza sformatowane wartości pól, taki jak `"Swap {amountIn} for at least {amountOutMin}"`. Dołącz to obok `intent`, aby zapewnić jeszcze bardziej przyjazny dla użytkownika deskryptor, który portfele mogą zdecydować się wyświetlić, biorąc pod uwagę ewentualne ograniczenia wyświetlania. +- **`fields`** — **(Wymagane)** Uporządkowana lista pól transakcji, które portfele powinny wyświetlać użytkownikom. + - **`path`** — **(Wymagane)** Odniesienie do danych transakcji. `#.fieldName` wskazuje na zdekodowany parametr danych wywołania (calldata) według nazwy w ABI. `@.value` odnosi się do wartości ETH wysłanej wraz z transakcją. + - **`label`** — **(Wymagane)** Czytelna dla człowieka etykieta wyświetlana obok wartości. + - **`format`** — **(Zalecane)** Kontroluje sposób renderowania wartości. Typowe formaty obejmują: + - `tokenAmount` + - `addressName` + - `date` + + Użyj `raw`, gdy nie jest potrzebne żadne dodatkowe formatowanie. Niektóre formaty akceptują dodatkową konfigurację **`params`**. Na przykład: + + - `tokenAmount` może użyć `tokenPath`, aby zidentyfikować, który adres tokena dostarcza metadane dotyczące miejsc dziesiętnych i symbolu (ticker). + - `date` może użyć `encoding`, aby opisać, w jaki sposób zakodowany jest znacznik czasu (timestamp). + + Jeśli wybrany format nie wymaga dodatkowych informacji, pomiń `params`. + +## Kompletny deskryptor {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## Krok 5: Przesłanie do rejestru {#step-5-submit-to-the-registry} + +[Rejestr ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) to otwarte repozytorium hostowane przez [Fundację Ethereum](/foundation/) jako neutralnego zarządcę. Każdy może je sklonować i hostować samodzielnie — portfele niezależnie decydują, którym instancjom rejestru ufają. + +1. Utwórz rozwidlenie repozytorium na GitHubie +2. Utwórz folder w `registry//` +3. Umieść w nim swój plik: `registry/myproject/calldata-mycontract-0_0.json` +4. Zaktualizuj pole `$schema` na ścieżkę względną używaną w repozytorium: `"../../specs/erc7730-v2.schema.json"` +5. Otwórz pull request (żądanie ściągnięcia) + +Kiedy otworzysz PR, CI automatycznie uruchamia walidację schematu, sprawdza, czy sygnatury funkcji generują prawidłowe selektory, potwierdza, że adres kontraktu jest zweryfikowany w Sourcify i oflagowuje niespójności ABI. Wyniki sprawdzania pojawiają się bezpośrednio w PR. Opiekunowie rejestru sprawdzają zgłoszenia pod kątem zniekształconych lub potencjalnie złośliwych deskryptorów. Włączenie do rejestru nie oznacza audytu ani poparcia. + + + + +**Uwaga:** Twój kontrakt musi zostać zweryfikowany w Sourcify, zanim Twój PR będzie mógł zostać zaakceptowany. Jeśli nie jest jeszcze zweryfikowany, najpierw prześlij weryfikację. + + + + +## Co się dzieje po scaleniu (merge)? {#what-happens-after-merging} + +Wszystkie deskryptory w rejestrze są otwarte dla audytorów. Po scaleniu Twojego PR, każdy audytor może przejrzeć Twój deskryptor i opublikować kryptograficzne poświadczenie (zgodnie z [ERC-8176](https://github.com/ethereum/ERCs/pull/1576)) potwierdzające jego dokładność. + +Te sygnały poświadczeń pozwalają portfelom stosować własne zasady zaufania — deskryptor z wieloma niezależnymi poświadczeniami ma większą wagę niż ten bez nich. Możesz skontaktować się ze społecznością audytorów za pośrednictwem [clearsigning.org](https://clearsigning.org). + +Portfele wybierają, który rejestr będą obsługiwać. Gdy Twój deskryptor znajdzie się w rejestrze, portfele obsługujące ERC-7730 zaczną go pobierać, jeśli znajduje się w ich rejestrze, i będą wyświetlać czytelne dla człowieka dane, gdy użytkownicy wejdą w interakcję z Twoim kontraktem. + +## Dalsza lektura {#further-reading} + +- [Specyfikacja ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) +- [Rejestr ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — narzędzia, status ekosystemu i zarządzanie +- [Weryfikacja kontraktów w Sourcify](https://sourcify.dev) +- [Inicjatywa Trillion Dollar Security](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/pt-br/developers/tutorials/clear-signing/index.md b/public/content/translations/pt-br/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..8437dc262a0 --- /dev/null +++ b/public/content/translations/pt-br/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: Adicione assinatura clara ao seu protocolo com o ERC-7730 +description: "Aprenda a escrever um descritor ERC-7730 para que as interações do seu contrato inteligente exibam detalhes legíveis por humanos nas carteiras antes que os usuários assinem." +author: Hester Bruikman +lang: pt-br +tags: ["ERC-7730", "segurança", "assinatura", "contratos inteligentes", "carteiras"] +skill: intermediate +breadcrumb: Assinatura clara +published: 2026-05-11 +--- + +A maioria das grandes explorações no Ethereum teve a mesma etapa final: um usuário aprovando uma transação que não conseguia entender de forma significativa. Carteiras de hardware mostram dados de chamada (calldata) em formato hexadecimal bruto e, pior ainda, forçam você a manter a assinatura cega ativada. Carteiras de software mostram campos decodificados, mas apenas quando reconhecem o contrato. Quando não reconhecem, seja porque o protocolo é novo, o aplicativo está comprometido ou o dispositivo está offline, os usuários assinam às cegas. + +O [ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) define um formato JSON padrão para descrever o que as chamadas de função do seu contrato *significam*. + +Uma carteira que suporta o ERC-7730 lê o seu descritor e mostra: + +> **Swap** +> Enviar: 1.000 USDC +> Receber no mínimo: 0,42 WETH +> Protocolo: Uniswap V3 + +Ou uma única frase construída, legível tanto por humanos quanto por agentes: + +> Trocar 1.000 USDC por pelo menos 0,42 WETH + +Em vez de um seletor de função e uma lista de valores inteiros brutos. + +Isso é a [assinatura clara](https://clearsigning.org/) — "O que você vê é o que você assina" (What You See Is What You Sign). Este tutorial orienta você na escrita de um descritor para o seu próprio contrato, na validação dele com a ferramenta CLI oficial e no envio para o registro aberto. + +## Pré-requisitos {#prerequisites} + +- Familiaridade com Solidity e ABIs de contratos inteligentes +- Um contrato inteligente implantado com uma ABI verificada (a verificação no [Sourcify](https://sourcify.dev) é exigida antes que um descritor seja aceito no registro) +- Python 3.12+ para a CLI de validação +- Conhecimento básico de JSON + +## O que é um descritor ERC-7730? {#what-is-an-erc-7730-descriptor} + +Um descritor é um único arquivo JSON com três seções: + +| Seção | Propósito | +| :---- | :---- | +| `context` | Vincula o descritor a implantações de contratos específicos por ID da cadeia (chain ID) e endereço | +| `metadata` | Nomeia o projeto e define constantes reutilizáveis | +| `display` | Mapeia cada assinatura de função para rótulos legíveis por humanos e formatos de campo | + +Como o descritor é separado do próprio contrato, você pode adicionar suporte à assinatura clara a qualquer protocolo existente sem precisar de uma nova implantação. As carteiras recuperam os descritores do registro e os utilizam no momento da assinatura. + +## Passo 1: Criar o esqueleto do arquivo {#step-1-create-the-file-skeleton} + +Crie um arquivo chamado `calldata--.json`. O prefixo `calldata-` informa ao registro que este descritor cobre chamadas de função de contrato, em oposição a `eip712-` para mensagens de dados tipados. O `descriptorversion` informa ao registro a versão do arquivo do descritor, sendo 0 por padrão se nenhuma versão for fornecida. + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## Passo 2: Escrever a seção de contexto {#step-2-write-the-context-section} + +A seção `context` vincula o descritor a uma ou mais implantações de contrato. As carteiras usam isso para corresponder uma transação recebida ao descritor correto. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### Campos de contexto {#context-fields} + +- `context.$id` — Um identificador exclusivo para este documento descritor ou configuração de implantação. +- `contract.deployments` — O conjunto de implantações ao qual este descritor se aplica. +- `deployments[].chainId` — O ID da cadeia (chain ID) EVM para uma implantação. Inclua todas as cadeias onde seu contrato está implantado. +- `deployments[].address` — O endereço do contrato que as carteiras devem associar a este descritor. Use o endereço de implementação que contém a lógica de execução. + +## Passo 3: Escrever a seção de metadados {#step-3-write-the-metadata-section} + +A seção de metadados fornece informações legíveis por humanos sobre o projeto e o contrato descritos por este arquivo. As carteiras podem usar essas informações para exibir nomes de protocolos, links e outros detalhes contextuais durante a assinatura. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### Campos de metadados {#metadata-fields} + +- `owner` — O projeto, protocolo, organização ou mantenedor responsável por este descritor. +- `info.url` — Uma URL canônica do projeto ou da documentação que as carteiras podem exibir aos usuários para contexto adicional. +- `contractName` — O nome do contrato ou da implementação descrito por este arquivo, geralmente correspondendo ao código-fonte verificado ou à ABI. + +Se o seu arquivo ERC-7730 descreve um contrato ERC-20, você também deve adicionar um objeto de token. + +## Passo 4: Escrever a seção de formatos de exibição {#step-4-write-the-displayformats-section} + +O objeto `display.formats` mapeia assinaturas de função para instruções de assinatura legíveis por humanos. É assim que as carteiras mostram sua função aos usuários antes que eles aprovem uma transação! + +Cada chave é um fragmento de ABI legível por humanos — a assinatura da função, incluindo os nomes e os tipos dos parâmetros exatamente como aparecem na sua ABI. + + +### Exemplo: Descrevendo um swap de token {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### Campos de exibição {#display-fields} + +- **`intent`** — **(Obrigatório)** Uma descrição curta e amigável da ação, como "Swap". +- **`interpolatedIntent`** — **(Recomendado)** Um modelo de frase mais rico que incorpora valores de campo formatados, como `"Swap {amountIn} for at least {amountOutMin}"`. Inclua isso junto com `intent` para fornecer um descritor ainda mais amigável que as carteiras podem escolher exibir, dadas quaisquer restrições de exibição. +- **`fields`** — **(Obrigatório)** A lista ordenada de campos de transação que as carteiras devem exibir aos usuários. + - **`path`** — **(Obrigatório)** Uma referência aos dados da transação. `#.fieldName` aponta para um parâmetro de dados de chamada (calldata) decodificado pelo nome na ABI. `@.value` refere-se ao valor em ETH enviado com a transação. + - **`label`** — **(Obrigatório)** O rótulo legível por humanos mostrado ao lado do valor. + - **`format`** — **(Recomendado)** Controla como o valor deve ser renderizado. Formatos comuns incluem: + - `tokenAmount` + - `addressName` + - `date` + + Use `raw` quando nenhuma formatação adicional for necessária. Alguns formatos aceitam configurações adicionais em **`params`**. Por exemplo: + + - `tokenAmount` pode usar `tokenPath` para identificar qual endereço de token fornece os metadados de decimais e ticker. + - `date` pode usar `encoding` para descrever como o carimbo de data/hora (timestamp) é codificado. + + Se o formato selecionado não exigir informações extras, omita `params`. + +## O descritor completo {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## Passo 5: Enviar para o registro {#step-5-submit-to-the-registry} + +O [registro ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) é um repositório aberto hospedado pela [Fundação Ethereum](/foundation/) como uma administradora neutra. Qualquer pessoa é livre para cloná-lo e hospedá-lo por conta própria — as carteiras decidem de forma independente em quais instâncias de registro confiam. + +1. Faça um fork (bifurcação) do repositório no GitHub +2. Crie uma pasta em `registry//` +3. Coloque seu arquivo dentro dela: `registry/myproject/calldata-mycontract-0_0.json` +4. Atualize o campo `$schema` para o caminho relativo usado dentro do repositório: `"../../specs/erc7730-v2.schema.json"` +5. Abra um pull request + +Quando você abre o PR, a CI executa automaticamente a validação do esquema, verifica se as assinaturas de função produzem seletores válidos, confirma se o endereço do contrato está verificado no Sourcify e sinaliza inconsistências na ABI. Os resultados da verificação aparecem diretamente no PR. Os mantenedores do registro analisam os envios em busca de descritores malformados ou potencialmente maliciosos. A inclusão no registro não implica auditoria ou endosso. + + + + +**Nota:** Seu contrato deve ser verificado no Sourcify antes que seu PR possa ser aceito. Se ainda não estiver verificado, envie a verificação primeiro. + + + + +## O que acontece após a mesclagem? {#what-happens-after-merging} + +Todos os descritores no registro estão abertos a auditores. Após a mesclagem do seu PR, qualquer auditor pode revisar seu descritor e publicar uma atestação criptográfica (sob o [ERC-8176](https://github.com/ethereum/ERCs/pull/1576)) confirmando sua precisão. + +Esses sinais de atestação permitem que as carteiras apliquem suas próprias políticas de confiança — um descritor com várias atestações independentes tem mais peso do que um sem nenhuma. Você pode entrar em contato com a comunidade de auditores através do [clearsigning.org](https://clearsigning.org). + +As carteiras escolhem qual registro irão suportar. Assim que seu descritor estiver no registro, as carteiras que suportam o ERC-7730 começarão a buscá-lo, caso esteja em seu registro, e exibirão dados legíveis por humanos quando os usuários interagirem com seu contrato. + +## Leitura adicional {#further-reading} + +- [Especificação do ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) +- [Registro ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — ferramentas, status do ecossistema e governança +- [Verificação de contrato no Sourcify](https://sourcify.dev) +- [Iniciativa Trillion Dollar Security](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/ru/developers/tutorials/clear-signing/index.md b/public/content/translations/ru/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..46c330b268e --- /dev/null +++ b/public/content/translations/ru/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "Добавьте понятное подписание в ваш протокол с помощью ERC-7730" +description: "Узнайте, как написать дескриптор ERC-7730, чтобы взаимодействия с вашим смарт-контрактом отображали понятные человеку детали в кошельках перед подписанием пользователями." +author: "Хестер Брюкман" +lang: ru +tags: ["ERC-7730", "безопасность", "подписание", "смарт-контракты", "кошельки"] +skill: intermediate +breadcrumb: "Понятное подписание" +published: 2026-05-11 +--- + +Большинство крупных эксплойтов в Эфириуме имели один и тот же последний шаг: пользователь одобрял транзакцию, которую не мог осмысленно понять. Аппаратные кошельки показывают необработанные шестнадцатеричные данные вызова (calldata) и, что еще хуже, заставляют вас включать слепое подписание. Программные кошельки показывают декодированные поля, но только тогда, когда они распознают контракт. Когда они этого не делают, будь то из-за того, что протокол новый, приложение скомпрометировано или устройство не в сети, пользователи подписывают вслепую. + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) определяет стандартный формат JSON для описания того, что *означают* вызовы функций вашего контракта. + +Кошелек, поддерживающий ERC-7730, читает ваш дескриптор и показывает: + +> **Обменять** +> Отправить: 1000 USDC +> Получить минимум: 0.42 WETH +> Протокол: Юнисвоп V3 + +Или одно составленное предложение, понятное как людям, так и агентам: + +> Обменять 1000 USDC как минимум на 0.42 WETH + +Вместо селектора функции и списка необработанных целочисленных значений. + +Это [понятное подписание](https://clearsigning.org/) — «Что видишь, то и подписываешь» (What You See Is What You Sign). В этом руководстве рассказывается, как написать дескриптор для вашего собственного контракта, проверить его с помощью официального инструмента CLI и отправить в открытый реестр. + +## Предварительные требования {#prerequisites} + +- Знакомство с Solidity и ABI смарт-контрактов +- Развернутый смарт-контракт с верифицированным ABI (верификация в [Sourcify](https://sourcify.dev) обязательна перед принятием дескриптора в реестр) +- Python 3.12+ для CLI-инструмента валидации +- Базовые знания JSON + +## Что такое дескриптор ERC-7730? {#what-is-an-erc-7730-descriptor} + +Дескриптор — это один JSON-файл, состоящий из трех разделов: + +| Раздел | Назначение | +| :---- | :---- | +| `context` | Привязывает дескриптор к конкретным развертываниям контракта по ID цепи и адресу | +| `metadata` | Задает имя проекта и определяет переиспользуемые константы | +| `display` | Сопоставляет каждую сигнатуру функции с понятными человеку метками и форматами полей | + +Поскольку дескриптор отделен от самого контракта, вы можете добавить поддержку понятного подписания в любой существующий протокол без повторного развертывания. Кошельки извлекают дескрипторы из реестра и используют их во время подписания. + +## Шаг 1: Создайте каркас файла {#step-1-create-the-file-skeleton} + +Создайте файл с именем `calldata--.json`. Префикс `calldata-` сообщает реестру, что этот дескриптор охватывает вызовы функций контракта, в отличие от `eip712-` для сообщений с типизированными данными. Поле `descriptorversion` сообщает реестру версию файла дескриптора (по умолчанию 0, если версия не указана). + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## Шаг 2: Напишите раздел контекста {#step-2-write-the-context-section} + +Раздел `context` привязывает дескриптор к одному или нескольким развертываниям контракта. Кошельки используют это для сопоставления входящей транзакции с правильным дескриптором. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### Поля контекста {#context-fields} + +- `context.$id` — Уникальный идентификатор для этого документа дескриптора или конфигурации развертывания. +- `contract.deployments` — Набор развертываний, к которым применяется этот дескриптор. +- `deployments[].chainId` — ID цепи EVM для развертывания. Включите каждую цепь, где развернут ваш контракт. +- `deployments[].address` — Адрес контракта, который кошельки должны ассоциировать с этим дескриптором. Используйте адрес реализации, содержащий логику выполнения. + +## Шаг 3: Напишите раздел метаданных {#step-3-write-the-metadata-section} + +Раздел метаданных предоставляет понятную человеку информацию о проекте и контракте, описываемых этим файлом. Кошельки могут использовать эту информацию для отображения названий протоколов, ссылок и других контекстных деталей во время подписания. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### Поля метаданных {#metadata-fields} + +- `owner` — Проект, протокол, организация или мейнтейнер, ответственные за этот дескриптор. +- `info.url` — Канонический URL-адрес проекта или документации, который кошельки могут отображать пользователям для дополнительного контекста. +- `contractName` — Имя контракта или реализации, описываемое этим файлом, обычно совпадающее с верифицированным исходным кодом или ABI. + +Если ваш файл ERC-7730 описывает контракт ERC-20, вам также следует добавить объект токена. + +## Шаг 4: Напишите раздел форматов отображения {#step-4-write-the-displayformats-section} + +Объект `display.formats` сопоставляет сигнатуры функций с понятными человеку инструкциями по подписанию. Именно так кошельки показывают вашу функцию пользователям перед тем, как они одобрят транзакцию! + +Каждый ключ — это понятный человеку фрагмент ABI: сигнатура функции, включающая как имена параметров, так и их типы в точности так, как они указаны в вашем ABI. + + +### Пример: Описание свопа токенов {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### Поля отображения {#display-fields} + +- **`intent`** — **(Обязательно)** Краткое, удобное для пользователя описание действия, например «Обменять». +- **`interpolatedIntent`** — **(Рекомендуется)** Более развернутый шаблон предложения, в который встраиваются отформатированные значения полей, например `"Swap {amountIn} for at least {amountOutMin}"`. Включите его вместе с `intent`, чтобы предоставить еще более удобный для пользователя дескриптор, который кошельки могут выбрать для показа с учетом любых ограничений отображения. +- **`fields`** — **(Обязательно)** Упорядоченный список полей транзакции, которые кошельки должны отображать пользователям. + - **`path`** — **(Обязательно)** Ссылка на данные транзакции. `#.fieldName` указывает на декодированный параметр данных вызова по имени в ABI. `@.value` относится к значению ETH, отправленному с транзакцией. + - **`label`** — **(Обязательно)** Понятная человеку метка, отображаемая рядом со значением. + - **`format`** — **(Рекомендуется)** Управляет тем, как должно отображаться значение. Общие форматы включают: + - `tokenAmount` + - `addressName` + - `date` + + Используйте `raw`, когда дополнительное форматирование не требуется. Некоторые форматы принимают дополнительную конфигурацию **`params`**. Например: + + - `tokenAmount` может использовать `tokenPath` для определения того, какой адрес токена предоставляет метаданные о десятичных знаках и тикере. + - `date` может использовать `encoding` для описания того, как закодирована временная метка. + + Если выбранный формат не требует дополнительной информации, опустите `params`. + +## Полный дескриптор {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## Шаг 5: Отправьте в реестр {#step-5-submit-to-the-registry} + +[Реестр ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) — это открытый репозиторий, размещенный [Фондом Ethereum](/foundation/) в качестве нейтрального управляющего. Любой желающий может клонировать и самостоятельно разместить его — кошельки независимо решают, каким экземплярам реестра они доверяют. + +1. Сделайте форк репозитория на GitHub +2. Создайте папку по пути `registry//` +3. Поместите ваш файл внутрь нее: `registry/myproject/calldata-mycontract-0_0.json` +4. Обновите поле `$schema` на относительный путь, используемый в репозитории: `"../../specs/erc7730-v2.schema.json"` +5. Откройте pull request + +Когда вы открываете PR, CI автоматически запускает валидацию схемы, проверяет, что сигнатуры функций создают действительные селекторы, подтверждает, что адрес контракта верифицирован в Sourcify, и отмечает несоответствия ABI. Результаты проверки появляются прямо в PR. Мейнтейнеры реестра проверяют отправленные данные на наличие неправильно сформированных или потенциально вредоносных дескрипторов. Включение в реестр не подразумевает аудита или одобрения. + + + + +**Примечание:** Ваш контракт должен быть верифицирован в Sourcify до того, как ваш PR будет принят. Если он еще не верифицирован, сначала отправьте его на верификацию. + + + + +## Что происходит после слияния? {#what-happens-after-merging} + +Все дескрипторы в реестре открыты для аудиторов. После слияния вашего PR любой аудитор может проверить ваш дескриптор и опубликовать криптографическую аттестацию (в рамках [ERC-8176](https://github.com/ethereum/ERCs/pull/1576)), подтверждающую его точность. + +Эти сигналы аттестации позволяют кошелькам применять свои собственные политики доверия — дескриптор с несколькими независимыми аттестациями имеет больший вес, чем дескриптор без них. Вы можете связаться с сообществом аудиторов через [clearsigning.org](https://clearsigning.org). + +Кошельки сами выбирают, какой реестр они будут поддерживать. Как только ваш дескриптор окажется в реестре, кошельки, поддерживающие ERC-7730, начнут извлекать его, если он есть в их реестре, и будут отображать понятные человеку данные, когда пользователи взаимодействуют с вашим контрактом. + +## Дополнительная литература {#further-reading} + +- [Спецификация ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) +- [Реестр ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — инструменты, статус экосистемы и управление +- [Верификация контрактов в Sourcify](https://sourcify.dev) +- [Инициатива Trillion Dollar Security](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/sw/developers/tutorials/clear-signing/index.md b/public/content/translations/sw/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..1362c2e35e9 --- /dev/null +++ b/public/content/translations/sw/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: Ongeza kusaini kwa wazi kwenye itifaki yako ukitumia ERC-7730 +description: Jifunze jinsi ya kuandika kifafanuzi cha ERC-7730 ili mwingiliano wako wa mkataba mahiri uonyeshe maelezo yanayosomeka na binadamu kwenye mikoba kabla ya watumiaji kusaini. +author: Hester Bruikman +lang: sw +tags: ["ERC-7730", "usalama", "kusaini", "mikataba mahiri", "mikoba"] +skill: intermediate +breadcrumb: Kusaini kwa wazi +published: 2026-05-11 +--- + +Unyonyaji mwingi mkubwa wa Ethereum ulikuwa na hatua ya mwisho sawa: mtumiaji kuidhinisha muamala ambao hakuweza kuuelewa kwa maana. Mikoba ya maunzi huonyesha data za mwito za heksadesimali ghafi, na mbaya zaidi inakulazimisha kuwasha kusaini bila kuona. Mikoba ya programu huonyesha sehemu zilizosimbuliwa, lakini tu wakati inatambua mkataba. Wakati haitambui, iwe kwa sababu itifaki ni mpya, programu imedukuliwa, au kifaa hakiko mtandaoni, watumiaji husaini bila kuona. + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) inafafanua umbizo la kawaida la JSON la kuelezea kile ambacho miito ya utendaji ya mkataba wako *inamaanisha*. + +Mkoba unaotumia ERC-7730 husoma kifafanuzi chako na kuonyesha: + +> **Badilishano** +> Tuma: 1,000 USDC +> Pokea kima cha chini: 0.42 WETH +> Itifaki: Uniswap V3 + +Au sentensi moja iliyoundwa inayosomeka na binadamu na mawakala vile vile: + +> Badilishano la 1,000 USDC kwa angalau 0.42 WETH + +Badala ya kiteuzi cha utendaji na orodha ya thamani ghafi za nambari kamili. + +Huku ni [kusaini kwa wazi](https://clearsigning.org/) — "Kile Unachokiona Ndicho Unachosaini." Mafunzo haya yanakuongoza katika kuandika kifafanuzi cha mkataba wako mwenyewe, kukithibitisha kwa zana rasmi ya CLI, na kukiwasilisha kwenye sajili iliyo wazi. + +## Mahitaji ya awali {#prerequisites} + +- Uelewa wa Solidity na ABI za mkataba mahiri +- Mkataba mahiri uliosambazwa wenye ABI iliyothibitishwa (uthibitishaji wa [Sourcify](https://sourcify.dev) unahitajika kabla ya kifafanuzi kukubaliwa kwenye sajili) +- Python 3.12+ kwa ajili ya CLI ya uthibitishaji +- Ujuzi wa kimsingi wa JSON + +## Kifafanuzi cha ERC-7730 ni nini? {#what-is-an-erc-7730-descriptor} + +Kifafanuzi ni faili moja la JSON lenye sehemu tatu: + +| Sehemu | Kusudi | +| :---- | :---- | +| `context` | Hufunga kifafanuzi kwenye usambazaji maalum wa mkataba kwa kitambulisho cha mnyororo na anwani | +| `metadata` | Hutaja mradi na kufafanua viwango vinavyoweza kutumika tena | +| `display` | Hulinganisha kila sahihi ya utendaji na lebo zinazosomeka na binadamu na miundo ya sehemu | + +Kwa sababu kifafanuzi kimetenganishwa na mkataba wenyewe, unaweza kuongeza usaidizi wa kusaini kwa wazi kwenye itifaki yoyote iliyopo bila usambazaji upya. Mikoba hurejesha vifafanuzi kutoka kwenye sajili na kuvitumia wakati wa kusaini. + +## Hatua ya 1: Unda kiunzi cha faili {#step-1-create-the-file-skeleton} + +Unda faili linaloitwa `calldata--.json`. Kiambishi awali cha `calldata-` huiambia sajili kuwa kifafanuzi hiki kinashughulikia miito ya utendaji wa mkataba, tofauti na `eip712-` kwa ujumbe wa data iliyochapwa. `descriptorversion` huiambia sajili toleo la faili la kifafanuzi, 0 kwa chaguo-msingi ikiwa hakuna toleo lililotolewa. + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## Hatua ya 2: Andika sehemu ya muktadha {#step-2-write-the-context-section} + +Sehemu ya `context` hufunga kifafanuzi kwenye usambazaji mmoja au zaidi wa mkataba. Mikoba hutumia hii kulinganisha muamala unaoingia na kifafanuzi sahihi. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### Sehemu za muktadha {#context-fields} + +- `context.$id` — Kitambulisho cha kipekee cha hati hii ya kifafanuzi au usanidi wa usambazaji. +- `contract.deployments` — Seti ya usambazaji ambayo kifafanuzi hiki kinatumika. +- `deployments[].chainId` — Kitambulisho cha mnyororo wa EVM kwa usambazaji. Jumuisha kila mnyororo ambapo mkataba wako umesambazwa. +- `deployments[].address` — Anwani ya mkataba ambayo mikoba inapaswa kuhusisha na kifafanuzi hiki. Tumia anwani ya utekelezaji inayoshikilia mantiki ya utekelezaji. + +## Hatua ya 3: Andika sehemu ya data fafanuzi {#step-3-write-the-metadata-section} + +Sehemu ya data fafanuzi hutoa maelezo yanayosomeka na binadamu kuhusu mradi na mkataba uliofafanuliwa na faili hili. Mikoba inaweza kutumia maelezo haya kuonyesha majina ya itifaki, viungo, na maelezo mengine ya kimuktadha wakati wa kusaini. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### Sehemu za data fafanuzi {#metadata-fields} + +- `owner` — Mradi, itifaki, shirika, au mtunzaji anayehusika na kifafanuzi hiki. +- `info.url` — URL ya mradi au nyaraka rasmi ambayo mikoba inaweza kuonyesha kwa watumiaji kwa muktadha wa ziada. +- `contractName` — Jina la mkataba au utekelezaji lililofafanuliwa na faili hili, kwa kawaida linalolingana na msimbo wa chanzo uliothibitishwa au ABI. + +Ikiwa faili lako la ERC-7730 linafafanua mkataba wa ERC-20, unapaswa kuongeza kipengee cha tokeni pia. + +## Hatua ya 4: Andika sehemu ya miundo ya onyesho {#step-4-write-the-displayformats-section} + +Kipengee cha `display.formats` hulinganisha sahihi za utendaji na maagizo ya kusaini yanayosomeka na binadamu. Hivi ndivyo mikoba inavyoonyesha utendaji wako kwa watumiaji kabla ya kuidhinisha muamala! + +Kila ufunguo ni kipande cha ABI kinachosomeka na binadamu — sahihi ya utendaji ikijumuisha majina ya vigezo na aina za vigezo kama zinavyoonekana kwenye ABI yako. + + +### Mfano: Kufafanua badilishano la tokeni {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### Sehemu za onyesho {#display-fields} + +- **`intent`** — **(Inahitajika)** Maelezo mafupi, yanayofaa mtumiaji ya kitendo, kama vile "Badilishano". +- **`interpolatedIntent`** — **(Inapendekezwa)** Kiolezo cha sentensi tajiri zaidi kinachopachika thamani za sehemu zilizoumbizwa, kama vile `"Swap {amountIn} for at least {amountOutMin}"`. Jumuisha hii pamoja na `intent` ili kutoa kifafanuzi kinachofaa zaidi kwa mtumiaji ambacho mikoba inaweza kuchagua kuonyesha ikizingatiwa vikwazo vyovyote vya onyesho. +- **`fields`** — **(Inahitajika)** Orodha iliyopangwa ya sehemu za muamala ambazo mikoba inapaswa kuonyesha kwa watumiaji. + - **`path`** — **(Inahitajika)** Rejeleo la data ya muamala. `#.fieldName` inaelekeza kwenye kigezo cha data za mwito kilichosimbuliwa kwa jina kwenye ABI. `@.value` inarejelea thamani ya ETH iliyotumwa na muamala. + - **`label`** — **(Inahitajika)** Lebo inayosomeka na binadamu inayoonyeshwa kando ya thamani. + - **`format`** — **(Inapendekezwa)** Hudhibiti jinsi thamani inapaswa kuonyeshwa. Miundo ya kawaida ni pamoja na: + - `tokenAmount` + - `addressName` + - `date` + + Tumia `raw` wakati hakuna uumbizaji wa ziada unaohitajika. Baadhi ya miundo inakubali usanidi wa ziada wa **`params`**. Kwa mfano: + + - `tokenAmount` inaweza kutumia `tokenPath` kutambua ni anwani gani ya tokeni inatoa desimali na data fafanuzi ya tiki. + - `date` inaweza kutumia `encoding` kuelezea jinsi muhuri wa muda umesimbwa. + + Ikiwa muundo uliochaguliwa hauhitaji maelezo ya ziada, ondoa `params`. + +## Kifafanuzi kamili {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## Hatua ya 5: Wasilisha kwenye sajili {#step-5-submit-to-the-registry} + +[Sajili ya ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) ni hazina wazi inayosimamiwa na [Taasisi ya Ethereum](/foundation/) kama msimamizi asiyeegemea upande wowote. Mtu yeyote yuko huru kuiga na kujisimamia mwenyewe — mikoba huamua kwa uhuru ni matukio gani ya sajili wanayoamini. + +1. Chepua hazina kwenye GitHub +2. Unda folda kwenye `registry//` +3. Weka faili lako ndani yake: `registry/myproject/calldata-mycontract-0_0.json` +4. Sasisha sehemu ya `$schema` kwa njia ya jamaa inayotumika ndani ya hazina: `"../../specs/erc7730-v2.schema.json"` +5. Fungua ombi la kuvuta (pull request) + +Unapofungua PR, CI huendesha uthibitishaji wa skema kiotomatiki, hukagua kuwa sahihi za utendaji hutoa viteuzi halali, huthibitisha anwani ya mkataba imethibitishwa kwenye Sourcify, na kuashiria kutokubaliana kwa ABI. Matokeo ya ukaguzi yanaonekana ndani ya PR. Watunzaji wa sajili hukagua mawasilisho kwa vifafanuzi vilivyoundwa vibaya au vinavyoweza kuwa na nia mbaya. Kujumuishwa kwenye sajili hakumaanishi ukaguzi au uidhinishaji. + + + + +**Kumbuka:** Mkataba wako lazima uthibitishwe kwenye Sourcify kabla ya PR yako kukubaliwa. Ikiwa bado haijathibitishwa, wasilisha uthibitishaji kwanza. + + + + +## Nini kinatokea baada ya kuunganisha? {#what-happens-after-merging} + +Vifafanuzi vyote kwenye sajili viko wazi kwa wakaguzi. Baada ya PR yako kuunganishwa, mkaguzi yeyote anaweza kukagua kifafanuzi chako na kuchapisha uthibitisho wa kificho (chini ya [ERC-8176](https://github.com/ethereum/ERCs/pull/1576)) kuthibitisha usahihi wake. + +Ishara hizi za uthibitisho huruhusu mikoba kutumia sera zao wenyewe za uaminifu — kifafanuzi chenye uthibitisho mwingi wa kujitegemea hubeba uzito zaidi kuliko kile kisicho na uthibitisho. Unaweza kufikia jumuiya ya wakaguzi kupitia [clearsigning.org](https://clearsigning.org). + +Mikoba huchagua ni sajili gani itakayounga mkono. Pindi kifafanuzi chako kikiwa kwenye sajili, mikoba inayotumia ERC-7730 itaanza kukichukua ikiwa kiko kwenye sajili yao na itaonyesha data inayosomeka na binadamu wakati watumiaji wanaingiliana na mkataba wako. + +## Usomaji zaidi {#further-reading} + +- [Uainishaji wa ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) +- [Sajili ya ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — zana, hali ya mfumo wa ikolojia, na utawala +- [Uthibitishaji wa mkataba wa Sourcify](https://sourcify.dev) +- [Mpango wa Usalama wa Trilioni ya Dola](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/ta/developers/tutorials/clear-signing/index.md b/public/content/translations/ta/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..39166810048 --- /dev/null +++ b/public/content/translations/ta/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "ERC-7730 மூலம் உங்கள் நெறிமுறையில் தெளிவான கையொப்பமிடுதலைச் சேர்க்கவும்" +description: "பயனர்கள் கையொப்பமிடுவதற்கு முன்பு பணப்பைகளில் மனிதர்கள் படிக்கக்கூடிய விவரங்களை உங்கள் திறன் ஒப்பந்தப் பரிமாற்றங்கள் காண்பிக்கும் வகையில் ERC-7730 விவரிப்பானை எவ்வாறு எழுதுவது என்பதை அறிக." +author: "ஹெஸ்டர் ப்ரூயிக்மேன்" +lang: ta +tags: ["ERC-7730", "பாதுகாப்பு", "கையொப்பமிடுதல்", "திறன் ஒப்பந்தங்கள்", "பணப்பைகள்"] +skill: intermediate +breadcrumb: "தெளிவான கையொப்பமிடுதல்" +published: 2026-05-11 +--- + +பெரும்பாலான முக்கிய எத்திரியம் சுரண்டல்கள் அதே இறுதிப் படியைக் கொண்டிருந்தன: ஒரு பயனர் தங்களால் அர்த்தமுள்ள வகையில் புரிந்துகொள்ள முடியாத ஒரு பரிவர்த்தனைக்கு ஒப்புதல் அளிப்பது. வன்பொருள் பணப்பைகள் மூல ஹெக்ஸ் அழைப்புத் தரவைக் காட்டுகின்றன, மேலும் மோசமான விஷயம் என்னவென்றால், குருட்டுத்தனமாகக் கையொப்பமிடுவதைக் கட்டாயப்படுத்துகின்றன. மென்பொருள் பணப்பைகள் குறியீடு நீக்கப்பட்ட புலங்களைக் காட்டுகின்றன, ஆனால் அவை ஒப்பந்தத்தை அங்கீகரிக்கும் போது மட்டுமே. நெறிமுறை புதியதாக இருப்பதாலோ, செயலி சமரசம் செய்யப்பட்டதாலோ அல்லது சாதனம் ஆஃப்லைனில் இருப்பதாலோ, அவை அங்கீகரிக்காதபோது, பயனர்கள் குருட்டுத்தனமாகக் கையொப்பமிடுகிறார்கள். + +உங்கள் ஒப்பந்தத்தின் செயல்பாட்டு அழைப்புகளின் *அர்த்தம்* என்ன என்பதை விவரிக்க [ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) ஒரு நிலையான JSON வடிவமைப்பை வரையறுக்கிறது. + +ERC-7730 ஐ ஆதரிக்கும் ஒரு பணப்பை உங்கள் விவரிப்பானைப் படித்து இதைக் காட்டுகிறது: + +> **பரிமாற்றம்** +> அனுப்பு: 1,000 USDC +> குறைந்தபட்சம் பெறு: 0.42 WETH +> நெறிமுறை: யூனிஸ்வாப் V3 + +அல்லது மனிதர்கள் மற்றும் முகவர்கள் இருவராலும் படிக்கக்கூடிய வகையில் உருவாக்கப்பட்ட ஒற்றை வாக்கியம்: + +> குறைந்தபட்சம் 0.42 WETH-க்கு 1,000 USDC-ஐப் பரிமாற்றம் செய் + +ஒரு செயல்பாட்டுத் தேர்வி மற்றும் மூல முழு எண் மதிப்புகளின் பட்டியலுக்குப் பதிலாக. + +இதுதான் [தெளிவான கையொப்பமிடுதல்](https://clearsigning.org/) — "நீங்கள் பார்ப்பதையே கையொப்பமிடுகிறீர்கள்." உங்கள் சொந்த ஒப்பந்தத்திற்கான விவரிப்பானை எழுதுவது, அதிகாரப்பூர்வ CLI கருவி மூலம் அதைச் சரிபார்ப்பது மற்றும் திறந்த பதிவேட்டில் அதைச் சமர்ப்பிப்பது ஆகியவற்றை இந்த வழிகாட்டி உங்களுக்கு விளக்குகிறது. + +## முன்நிபந்தனைகள் {#prerequisites} + +- Solidity மற்றும் திறன் ஒப்பந்த ABI-கள் பற்றிய பரிச்சயம் +- சரிபார்க்கப்பட்ட ABI உடன் நிலைநிறுத்தப்பட்ட திறன் ஒப்பந்தம் (ஒரு விவரிப்பான் பதிவேட்டில் ஏற்கப்படுவதற்கு முன்பு [Sourcify](https://sourcify.dev) சரிபார்ப்பு தேவை) +- சரிபார்ப்பு CLI-க்கு Python 3.12+ +- அடிப்படை JSON அறிவு + +## ERC-7730 விவரிப்பான் என்றால் என்ன? {#what-is-an-erc-7730-descriptor} + +விவரிப்பான் என்பது மூன்று பிரிவுகளைக் கொண்ட ஒற்றை JSON கோப்பாகும்: + +| பிரிவு | நோக்கம் | +| :---- | :---- | +| `context` | சங்கிலி ID மற்றும் முகவரி மூலம் குறிப்பிட்ட ஒப்பந்த நிலைநிறுத்தங்களுடன் விவரிப்பானைப் பிணைக்கிறது | +| `metadata` | திட்டத்திற்குப் பெயரிடுகிறது மற்றும் மீண்டும் பயன்படுத்தக்கூடிய மாறிலிகளை வரையறுக்கிறது | +| `display` | ஒவ்வொரு செயல்பாட்டுக் கையொப்பத்தையும் மனிதர்கள் படிக்கக்கூடிய லேபிள்கள் மற்றும் புல வடிவங்களுடன் வரைபடமாக்குகிறது | + +விவரிப்பான் ஒப்பந்தத்திலிருந்து தனித்தனியாக இருப்பதால், மறுநிலைநிறுத்தம் செய்யாமலேயே எந்தவொரு தற்போதைய நெறிமுறைக்கும் தெளிவான கையொப்பமிடுதல் ஆதரவை நீங்கள் சேர்க்கலாம். பணப்பைகள் பதிவேட்டிலிருந்து விவரிப்பான்களை மீட்டெடுத்து, கையொப்பமிடும் நேரத்தில் அவற்றைப் பயன்படுத்துகின்றன. + +## படி 1: கோப்புச் சட்டகத்தை உருவாக்கவும் {#step-1-create-the-file-skeleton} + +`calldata--.json` என்ற பெயரில் ஒரு கோப்பை உருவாக்கவும். தட்டச்சு செய்யப்பட்ட தரவுச் செய்திகளுக்கான `eip712-` என்பதற்கு மாறாக, இந்த விவரிப்பான் ஒப்பந்தச் செயல்பாட்டு அழைப்புகளை உள்ளடக்கியது என்பதை `calldata-` முன்னொட்டு பதிவேட்டிற்குக் கூறுகிறது. `descriptorversion` என்பது விவரிப்பான் கோப்பின் பதிப்பைப் பதிவேட்டிற்குக் கூறுகிறது, எந்தப் பதிப்பும் வழங்கப்படாவிட்டால் இயல்பாகவே 0 ஆக இருக்கும். + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## படி 2: சூழல் பிரிவை எழுதவும் {#step-2-write-the-context-section} + +`context` பிரிவு விவரிப்பானை ஒன்று அல்லது அதற்கு மேற்பட்ட ஒப்பந்த நிலைநிறுத்தங்களுடன் பிணைக்கிறது. உள்வரும் பரிவர்த்தனையைச் சரியான விவரிப்பானுடன் பொருத்த பணப்பைகள் இதைப் பயன்படுத்துகின்றன. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### சூழல் புலங்கள் {#context-fields} + +- `context.$id` — இந்த விவரிப்பான் ஆவணம் அல்லது நிலைநிறுத்த உள்ளமைவிற்கான தனித்துவமான அடையாளங்காட்டி. +- `contract.deployments` — இந்த விவரிப்பான் பொருந்தும் நிலைநிறுத்தங்களின் தொகுப்பு. +- `deployments[].chainId` — ஒரு நிலைநிறுத்தத்திற்கான EVM சங்கிலி ID. உங்கள் ஒப்பந்தம் நிலைநிறுத்தப்பட்டுள்ள ஒவ்வொரு சங்கிலியையும் சேர்க்கவும். +- `deployments[].address` — பணப்பைகள் இந்த விவரிப்பானுடன் தொடர்புபடுத்த வேண்டிய ஒப்பந்த முகவரி. செயலாக்கத் தர்க்கத்தைக் கொண்டுள்ள செயலாக்க முகவரியைப் பயன்படுத்தவும். + +## படி 3: மீத்தரவுப் பிரிவை எழுதவும் {#step-3-write-the-metadata-section} + +இந்தக் கோப்பால் விவரிக்கப்பட்ட திட்டம் மற்றும் ஒப்பந்தம் பற்றிய மனிதர்கள் படிக்கக்கூடிய தகவலை மீத்தரவுப் பிரிவு வழங்குகிறது. கையொப்பமிடும் போது நெறிமுறைப் பெயர்கள், இணைப்புகள் மற்றும் பிற சூழல் விவரங்களைக் காண்பிக்க பணப்பைகள் இந்தத் தகவலைப் பயன்படுத்தலாம். + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### மீத்தரவுப் புலங்கள் {#metadata-fields} + +- `owner` — இந்த விவரிப்பானுக்குப் பொறுப்பான திட்டம், நெறிமுறை, நிறுவனம் அல்லது பராமரிப்பாளர். +- `info.url` — கூடுதல் சூழலுக்காகப் பயனர்களுக்குப் பணப்பைகள் காண்பிக்கக்கூடிய அதிகாரப்பூர்வத் திட்டம் அல்லது ஆவண URL. +- `contractName` — இந்தக் கோப்பால் விவரிக்கப்பட்ட ஒப்பந்தம் அல்லது செயலாக்கப் பெயர், பொதுவாகச் சரிபார்க்கப்பட்ட மூலக் குறியீடு அல்லது ABI-யுடன் பொருந்தும். + +உங்கள் ERC-7730 கோப்பு ஒரு ERC-20 ஒப்பந்தத்தை விவரித்தால், நீங்கள் ஒரு வில்லைப் பொருளையும் சேர்க்க வேண்டும். + +## படி 4: காட்சி வடிவங்கள் பிரிவை எழுதவும் {#step-4-write-the-displayformats-section} + +`display.formats` பொருள் செயல்பாட்டுக் கையொப்பங்களை மனிதர்கள் படிக்கக்கூடிய கையொப்பமிடும் வழிமுறைகளுடன் வரைபடமாக்குகிறது. பயனர்கள் ஒரு பரிவர்த்தனைக்கு ஒப்புதல் அளிப்பதற்கு முன்பு பணப்பைகள் உங்கள் செயல்பாட்டை அவர்களுக்கு எப்படிக் காட்டுகின்றன என்பது இதுதான்! + +ஒவ்வொரு திறவுகோலும் மனிதர்கள் படிக்கக்கூடிய ABI துணுக்காகும் — அளவுருப் பெயர்கள் மற்றும் அளவுரு வகைகள் இரண்டும் உங்கள் ABI-யில் தோன்றுவது போலவே உள்ள செயல்பாட்டுக் கையொப்பம். + + +### எடுத்துக்காட்டு: ஒரு வில்லைப் பரிமாற்றத்தை விவரித்தல் {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### காட்சிப் புலங்கள் {#display-fields} + +- **`intent`** — **(தேவை)** "பரிமாற்றம்" போன்ற செயலின் சுருக்கமான, பயனர் நட்பு விளக்கம். +- **`interpolatedIntent`** — **(பரிந்துரைக்கப்படுகிறது)** `"Swap {amountIn} for at least {amountOutMin}"` போன்ற வடிவமைக்கப்பட்ட புல மதிப்புகளை உட்பொதிக்கும் ஒரு செழுமையான வாக்கிய வார்ப்புரு. எந்தவொரு காட்சிக் கட்டுப்பாடுகளும் வழங்கப்பட்டால் பணப்பைகள் காண்பிக்கத் தேர்வுசெய்யக்கூடிய இன்னும் பயனர் நட்பு விவரிப்பானை வழங்க, இதை `intent` உடன் சேர்க்கவும். +- **`fields`** — **(தேவை)** பணப்பைகள் பயனர்களுக்குக் காண்பிக்க வேண்டிய பரிவர்த்தனைப் புலங்களின் வரிசைப்படுத்தப்பட்ட பட்டியல். + - **`path`** — **(தேவை)** பரிவர்த்தனைத் தரவிற்கான குறிப்பு. `#.fieldName` என்பது ABI-யில் உள்ள பெயரின் மூலம் குறியீடு நீக்கப்பட்ட அழைப்புத் தரவு அளவுருவைக் குறிக்கிறது. `@.value` என்பது பரிவர்த்தனையுடன் அனுப்பப்பட்ட ETH மதிப்பைக் குறிக்கிறது. + - **`label`** — **(தேவை)** மதிப்பிற்கு அருகில் காட்டப்படும் மனிதர்கள் படிக்கக்கூடிய லேபிள். + - **`format`** — **(பரிந்துரைக்கப்படுகிறது)** மதிப்பு எவ்வாறு வழங்கப்பட வேண்டும் என்பதைக் கட்டுப்படுத்துகிறது. பொதுவான வடிவங்கள் பின்வருமாறு: + - `tokenAmount` + - `addressName` + - `date` + + கூடுதல் வடிவமைப்பு எதுவும் தேவையில்லாதபோது `raw` என்பதைப் பயன்படுத்தவும். சில வடிவங்கள் கூடுதல் **`params`** உள்ளமைவை ஏற்கின்றன. எடுத்துக்காட்டாக: + + - `tokenAmount` எந்த வில்லை முகவரி தசமங்கள் மற்றும் டிக்கர் மீத்தரவை வழங்குகிறது என்பதை அடையாளம் காண `tokenPath` என்பதைப் பயன்படுத்தலாம். + - `date` நேரமுத்திரை எவ்வாறு குறியாக்கம் செய்யப்பட்டுள்ளது என்பதை விவரிக்க `encoding` என்பதைப் பயன்படுத்தலாம். + + தேர்ந்தெடுக்கப்பட்ட வடிவத்திற்கு கூடுதல் தகவல் தேவையில்லை என்றால், `params` என்பதைத் தவிர்க்கவும். + +## முழுமையான விவரிப்பான் {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## படி 5: பதிவேட்டில் சமர்ப்பிக்கவும் {#step-5-submit-to-the-registry} + +[ERC-7730 பதிவேடு](https://github.com/ethereum/clear-signing-erc7730-registry) என்பது ஒரு நடுநிலை நிர்வாகியாக [எத்தீரியம் அறக்கட்டளை](/foundation/) வழங்கும் ஒரு திறந்த களஞ்சியமாகும். யார் வேண்டுமானாலும் இதை நகலெடுத்துச் சுய-வழங்கலாம் — பணப்பைகள் தாங்கள் நம்பும் பதிவேட்டு நிகழ்வுகளைச் சுயாதீனமாக முடிவு செய்கின்றன. + +1. GitHub-இல் களஞ்சியத்தைக் கவை (fork) செய்யவும் +2. `registry//` என்பதில் ஒரு கோப்புறையை உருவாக்கவும் +3. உங்கள் கோப்பை அதற்குள் வைக்கவும்: `registry/myproject/calldata-mycontract-0_0.json` +4. களஞ்சியத்திற்குள் பயன்படுத்தப்படும் தொடர்புடைய பாதைக்கு `$schema` புலத்தைப் புதுப்பிக்கவும்: `"../../specs/erc7730-v2.schema.json"` +5. ஒரு இழுப்பு கோரிக்கையை (pull request) திறக்கவும் + +நீங்கள் PR-ஐத் திறக்கும்போது, CI தானாகவே திட்டச் சரிபார்ப்பை இயக்குகிறது, செயல்பாட்டுக் கையொப்பங்கள் செல்லுபடியாகும் தேர்வுகளை உருவாக்குகின்றனவா என்பதைச் சரிபார்க்கிறது, ஒப்பந்த முகவரி Sourcify-இல் சரிபார்க்கப்பட்டதை உறுதிப்படுத்துகிறது மற்றும் ABI முரண்பாடுகளைக் கொடியிடுகிறது. சரிபார்ப்பு முடிவுகள் PR-இல் உள்ளமைவாகத் தோன்றும். பதிவேட்டுப் பராமரிப்பாளர்கள் தவறான அல்லது தீங்கிழைக்கக்கூடிய விவரிப்பான்களுக்கான சமர்ப்பிப்புகளைத் திரையிடுகிறார்கள். பதிவேட்டில் சேர்ப்பது தணிக்கை அல்லது ஒப்புதலைக் குறிக்காது. + + + + +**குறிப்பு:** உங்கள் PR ஏற்கப்படுவதற்கு முன்பு உங்கள் ஒப்பந்தம் Sourcify-இல் சரிபார்க்கப்பட வேண்டும். அது இன்னும் சரிபார்க்கப்படவில்லை என்றால், முதலில் சரிபார்ப்பைச் சமர்ப்பிக்கவும். + + + + +## ஒன்றிணைத்த பிறகு என்ன நடக்கும்? {#what-happens-after-merging} + +பதிவேட்டில் உள்ள அனைத்து விவரிப்பான்களும் தணிக்கையாளர்களுக்குத் திறந்திருக்கும். உங்கள் PR ஒன்றிணைக்கப்பட்ட பிறகு, எந்தவொரு தணிக்கையாளரும் உங்கள் விவரிப்பானை மதிப்பாய்வு செய்து, அதன் துல்லியத்தை உறுதிப்படுத்தும் ஒரு கிரிப்டோகிராஃபிக் சான்றளிப்பை ([ERC-8176](https://github.com/ethereum/ERCs/pull/1576) இன் கீழ்) வெளியிடலாம். + +இந்தச் சான்றளிப்பு சமிக்ஞைகள் பணப்பைகள் தங்களின் சொந்த நம்பிக்கைக் கொள்கைகளைப் பயன்படுத்த அனுமதிக்கின்றன — பல சுயாதீனச் சான்றளிப்புகளைக் கொண்ட ஒரு விவரிப்பான், சான்றளிப்பு இல்லாததை விட அதிக மதிப்பைக் கொண்டுள்ளது. [clearsigning.org](https://clearsigning.org) மூலம் நீங்கள் தணிக்கையாளர் சமூகத்தை அணுகலாம். + +பணப்பைகள் எந்தப் பதிவேட்டை ஆதரிக்கும் என்பதைத் தேர்வு செய்கின்றன. உங்கள் விவரிப்பான் பதிவேட்டில் வந்தவுடன், ERC-7730 ஐ ஆதரிக்கும் பணப்பைகள் அது அவற்றின் பதிவேட்டில் இருந்தால் அதைப் பெறத் தொடங்கும், மேலும் பயனர்கள் உங்கள் ஒப்பந்தத்துடன் தொடர்பு கொள்ளும்போது மனிதர்கள் படிக்கக்கூடிய தரவைக் காண்பிக்கும். + +## மேலும் படிக்க {#further-reading} + +- [ERC-7730 விவரக்குறிப்பு](https://eips.ethereum.org/EIPS/eip-7730) +- [ERC-7730 பதிவேடு](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — கருவிகள், சுற்றுச்சூழல் நிலை மற்றும் ஆளுகை +- [Sourcify ஒப்பந்தச் சரிபார்ப்பு](https://sourcify.dev) +- [டிரில்லியன் டாலர் பாதுகாப்பு முயற்சி](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/te/developers/tutorials/clear-signing/index.md b/public/content/translations/te/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..890b1d46703 --- /dev/null +++ b/public/content/translations/te/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "⁦ERC-7730⁩తో మీ ప్రోటోకాల్‌కు స్పష్టమైన సంతకం చేయడాన్ని జోడించండి" +description: "వినియోగదారులు సంతకం చేయడానికి ముందు వాలెట్‌లలో మానవులు చదవగలిగే వివరాలను ప్రదర్శించేలా మీ స్మార్ట్ కాంట్రాక్ట్ ఇంటరాక్షన్‌ల కోసం ⁦ERC-7730⁩ డిస్క్రిప్టర్‌ను ఎలా వ్రాయాలో తెలుసుకోండి." +author: "హెస్టర్ బ్రూక్‌మన్" +lang: te +tags: ["ERC-7730", "భద్రత", "సంతకం చేయడం", "స్మార్ట్ కాంట్రాక్ట్‌లు", "వాలెట్‌లు"] +skill: intermediate +breadcrumb: "స్పష్టమైన సంతకం చేయడం" +published: 2026-05-11 +--- + +చాలా ప్రధాన ఎథీరియం దోపిడీలు ఒకే చివరి దశను కలిగి ఉన్నాయి: వినియోగదారుడు తమకు అర్థం కాని లావాదేవీని ఆమోదించడం. హార్డ్‌వేర్ వాలెట్‌లు ముడి హెక్స్ కాల్ డేటాను చూపుతాయి మరియు మరింత దారుణంగా బ్లైండ్ సైనింగ్‌ను ఆన్ చేయమని మిమ్మల్ని బలవంతం చేస్తాయి. సాఫ్ట్‌వేర్ వాలెట్‌లు డీకోడ్ చేయబడిన ఫీల్డ్‌లను చూపుతాయి, కానీ అవి కాంట్రాక్ట్‌ను గుర్తించినప్పుడు మాత్రమే. ప్రోటోకాల్ కొత్తది కావడం వల్ల, యాప్ రాజీ పడటం వల్ల లేదా పరికరం ఆఫ్‌లైన్‌లో ఉండటం వల్ల అవి గుర్తించలేనప్పుడు, వినియోగదారులు గుడ్డిగా సంతకం చేస్తారు. + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) మీ కాంట్రాక్ట్ యొక్క ఫంక్షన్ కాల్‌ల *అర్థం* ఏమిటో వివరించడానికి ఒక ప్రామాణిక JSON ఆకృతిని నిర్వచిస్తుంది. + +ERC-7730కి మద్దతు ఇచ్చే వాలెట్ మీ డిస్క్రిప్టర్‌ను చదివి ఇలా చూపుతుంది: + +> **మార్పిడి** +> పంపండి: 1,000 USDC +> కనీసం స్వీకరించండి: 0.42 WETH +> ప్రోటోకాల్: యూనిస్వాప్ V3 + +లేదా మానవులు మరియు ఏజెంట్లు ఇద్దరూ చదవగలిగే ఒకే నిర్మిత వాక్యం: + +> కనీసం 0.42 WETH కోసం 1,000 USDCని మార్పిడి చేయండి + +ఫంక్షన్ సెలెక్టర్ మరియు ముడి పూర్ణాంక విలువల జాబితాకు బదులుగా. + +ఇదే [స్పష్టమైన సంతకం చేయడం](https://clearsigning.org/) — "మీరు చూసేదే మీరు సంతకం చేసేది." ఈ ట్యుటోరియల్ మీ స్వంత కాంట్రాక్ట్ కోసం డిస్క్రిప్టర్‌ను వ్రాయడం, అధికారిక CLI సాధనంతో దాన్ని ధృవీకరించడం మరియు ఓపెన్ రిజిస్ట్రీకి సమర్పించడం ద్వారా మీకు మార్గనిర్దేశం చేస్తుంది. + +## ముందస్తు అవసరాలు {#prerequisites} + +- Solidity మరియు స్మార్ట్ కాంట్రాక్ట్ ABIల గురించి అవగాహన +- ధృవీకరించబడిన ABIతో డిప్లాయ్ చేయబడిన స్మార్ట్ కాంట్రాక్ట్ (డిస్క్రిప్టర్‌ను రిజిస్ట్రీకి ఆమోదించడానికి ముందు [Sourcify](https://sourcify.dev) ధృవీకరణ అవసరం) +- ధృవీకరణ CLI కోసం Python 3.12+ +- ప్రాథమిక JSON పరిజ్ఞానం + +## ERC-7730 డిస్క్రిప్టర్ అంటే ఏమిటి? {#what-is-an-erc-7730-descriptor} + +డిస్క్రిప్టర్ అనేది మూడు విభాగాలతో కూడిన ఒకే JSON ఫైల్: + +| విభాగం | ప్రయోజనం | +| :---- | :---- | +| `context` | చైన్ ID మరియు చిరునామా ద్వారా నిర్దిష్ట కాంట్రాక్ట్ డిప్లాయ్‌మెంట్‌లకు డిస్క్రిప్టర్‌ను బంధిస్తుంది | +| `metadata` | ప్రాజెక్ట్‌కు పేరు పెడుతుంది మరియు పునర్వినియోగ స్థిరాంకాలను నిర్వచిస్తుంది | +| `display` | ప్రతి ఫంక్షన్ సంతకాన్ని మానవులు చదవగలిగే లేబుల్‌లు మరియు ఫీల్డ్ ఫార్మాట్‌లకు మ్యాప్ చేస్తుంది | + +డిస్క్రిప్టర్ కాంట్రాక్ట్ నుండి వేరుగా ఉన్నందున, మీరు మళ్లీ డిప్లాయ్ చేయకుండానే ఇప్పటికే ఉన్న ఏదైనా ప్రోటోకాల్‌కు స్పష్టమైన సంతకం చేసే మద్దతును జోడించవచ్చు. వాలెట్‌లు రిజిస్ట్రీ నుండి డిస్క్రిప్టర్‌లను తిరిగి పొందుతాయి మరియు సంతకం చేసే సమయంలో వాటిని ఉపయోగిస్తాయి. + +## దశ 1: ఫైల్ స్కెలిటన్‌ను సృష్టించండి {#step-1-create-the-file-skeleton} + +`calldata--.json` పేరుతో ఒక ఫైల్‌ను సృష్టించండి. `calldata-` ఉపసర్గ ఈ డిస్క్రిప్టర్ కాంట్రాక్ట్ ఫంక్షన్ కాల్‌లను కవర్ చేస్తుందని రిజిస్ట్రీకి చెబుతుంది, టైప్ చేసిన-డేటా సందేశాల కోసం `eip712-`కి విరుద్ధంగా. `descriptorversion` రిజిస్ట్రీకి డిస్క్రిప్టర్ ఫైల్ యొక్క సంస్కరణను చెబుతుంది, ఏ సంస్కరణ అందించబడకపోతే అప్రమేయంగా 0 ఉంటుంది. + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## దశ 2: కాంటెక్స్ట్ విభాగాన్ని వ్రాయండి {#step-2-write-the-context-section} + +`context` విభాగం డిస్క్రిప్టర్‌ను ఒకటి లేదా అంతకంటే ఎక్కువ కాంట్రాక్ట్ డిప్లాయ్‌మెంట్‌లకు బంధిస్తుంది. ఇన్‌కమింగ్ లావాదేవీని సరైన డిస్క్రిప్టర్‌తో సరిపోల్చడానికి వాలెట్‌లు దీన్ని ఉపయోగిస్తాయి. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### కాంటెక్స్ట్ ఫీల్డ్‌లు {#context-fields} + +- `context.$id` — ఈ డిస్క్రిప్టర్ పత్రం లేదా డిప్లాయ్‌మెంట్ కాన్ఫిగరేషన్ కోసం ఒక ప్రత్యేక ఐడెంటిఫైయర్. +- `contract.deployments` — ఈ డిస్క్రిప్టర్ వర్తించే డిప్లాయ్‌మెంట్‌ల సమితి. +- `deployments[].chainId` — డిప్లాయ్‌మెంట్ కోసం EVM చైన్ ID. మీ కాంట్రాక్ట్ డిప్లాయ్ చేయబడిన ప్రతి చైన్‌ను చేర్చండి. +- `deployments[].address` — వాలెట్‌లు ఈ డిస్క్రిప్టర్‌తో అనుబంధించాల్సిన కాంట్రాక్ట్ చిరునామా. ఎగ్జిక్యూషన్ లాజిక్‌ను కలిగి ఉన్న ఇంప్లిమెంటేషన్ చిరునామాను ఉపయోగించండి. + +## దశ 3: మెటాడేటా విభాగాన్ని వ్రాయండి {#step-3-write-the-metadata-section} + +మెటాడేటా విభాగం ఈ ఫైల్ ద్వారా వివరించబడిన ప్రాజెక్ట్ మరియు కాంట్రాక్ట్ గురించి మానవులు చదవగలిగే సమాచారాన్ని అందిస్తుంది. సంతకం చేసే సమయంలో ప్రోటోకాల్ పేర్లు, లింక్‌లు మరియు ఇతర సందర్భోచిత వివరాలను ప్రదర్శించడానికి వాలెట్‌లు ఈ సమాచారాన్ని ఉపయోగించవచ్చు. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### మెటాడేటా ఫీల్డ్‌లు {#metadata-fields} + +- `owner` — ఈ డిస్క్రిప్టర్‌కు బాధ్యత వహించే ప్రాజెక్ట్, ప్రోటోకాల్, సంస్థ లేదా నిర్వహించేవారు. +- `info.url` — అదనపు సందర్భం కోసం వాలెట్‌లు వినియోగదారులకు ప్రదర్శించగల కానానికల్ ప్రాజెక్ట్ లేదా డాక్యుమెంటేషన్ URL. +- `contractName` — ఈ ఫైల్ ద్వారా వివరించబడిన కాంట్రాక్ట్ లేదా ఇంప్లిమెంటేషన్ పేరు, సాధారణంగా ధృవీకరించబడిన సోర్స్ కోడ్ లేదా ABIతో సరిపోలుతుంది. + +మీ ERC-7730 ఫైల్ ERC-20 కాంట్రాక్ట్‌ను వివరిస్తే, మీరు టోకెన్ ఆబ్జెక్ట్‌ను కూడా జోడించాలి. + +## దశ 4: ప్రదర్శన ఫార్మాట్‌ల విభాగాన్ని వ్రాయండి {#step-4-write-the-displayformats-section} + +`display.formats` ఆబ్జెక్ట్ ఫంక్షన్ సంతకాలను మానవులు చదవగలిగే సంతకం సూచనలకు మ్యాప్ చేస్తుంది. వినియోగదారులు లావాదేవీని ఆమోదించడానికి ముందు వాలెట్‌లు మీ ఫంక్షన్‌ను వారికి ఈ విధంగా చూపుతాయి! + +ప్రతి కీ మానవులు చదవగలిగే ABI ఫ్రాగ్‌మెంట్ — మీ ABIలో కనిపించే విధంగానే పారామీటర్ పేర్లు మరియు పారామీటర్ రకాలు రెండింటినీ కలిగి ఉన్న ఫంక్షన్ సంతకం. + + +### ఉదాహరణ: టోకెన్ మార్పిడిని వివరించడం {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### ప్రదర్శన ఫీల్డ్‌లు {#display-fields} + +- **`intent`** — **(అవసరం)** "మార్పిడి" వంటి చర్య యొక్క చిన్న, వినియోగదారు-స్నేహపూర్వక వివరణ. +- **`interpolatedIntent`** — **(సిఫార్సు చేయబడింది)** `"Swap {amountIn} for at least {amountOutMin}"` వంటి ఫార్మాట్ చేయబడిన ఫీల్డ్ విలువలను పొందుపరిచే ధనిక వాక్య టెంప్లేట్. ఏవైనా ప్రదర్శన పరిమితులు ఉన్నప్పటికీ వాలెట్‌లు చూపించడానికి ఎంచుకోగల మరింత వినియోగదారు-స్నేహపూర్వక డిస్క్రిప్టర్‌ను అందించడానికి దీన్ని `intent`తో పాటు చేర్చండి. +- **`fields`** — **(అవసరం)** వాలెట్‌లు వినియోగదారులకు ప్రదర్శించాల్సిన లావాదేవీ ఫీల్డ్‌ల క్రమబద్ధీకరించబడిన జాబితా. + - **`path`** — **(అవసరం)** లావాదేవీ డేటాకు సూచన. `#.fieldName` అనేది ABIలోని పేరు ద్వారా డీకోడ్ చేయబడిన కాల్ డేటా పారామీటర్‌ను సూచిస్తుంది. `@.value` అనేది లావాదేవీతో పంపబడిన ETH విలువను సూచిస్తుంది. + - **`label`** — **(అవసరం)** విలువ పక్కన చూపబడే మానవులు చదవగలిగే లేబుల్. + - **`format`** — **(సిఫార్సు చేయబడింది)** విలువ ఎలా రెండర్ చేయబడాలో నియంత్రిస్తుంది. సాధారణ ఫార్మాట్‌లు ఇవి: + - `tokenAmount` + - `addressName` + - `date` + + అదనపు ఫార్మాటింగ్ అవసరం లేనప్పుడు `raw`ని ఉపయోగించండి. కొన్ని ఫార్మాట్‌లు అదనపు **`params`** కాన్ఫిగరేషన్‌ను అంగీకరిస్తాయి. ఉదాహరణకు: + + - ఏ టోకెన్ చిరునామా దశాంశాలు మరియు టిక్కర్ మెటాడేటాను అందిస్తుందో గుర్తించడానికి `tokenAmount` అనేది `tokenPath`ని ఉపయోగించవచ్చు. + - టైమ్‌స్టాంప్ ఎలా ఎన్‌కోడ్ చేయబడిందో వివరించడానికి `date` అనేది `encoding`ని ఉపయోగించవచ్చు. + + ఎంచుకున్న ఫార్మాట్‌కు అదనపు సమాచారం అవసరం లేకపోతే, `params`ని వదిలివేయండి. + +## పూర్తి డిస్క్రిప్టర్ {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## దశ 5: రిజిస్ట్రీకి సమర్పించండి {#step-5-submit-to-the-registry} + +[ERC-7730 రిజిస్ట్రీ](https://github.com/ethereum/clear-signing-erc7730-registry) అనేది తటస్థ నిర్వాహకుడిగా [ఎథీరియం ఫౌండేషన్](/foundation/) ద్వారా హోస్ట్ చేయబడిన ఓపెన్ రిపోజిటరీ. ఎవరైనా దీన్ని క్లోన్ చేయడానికి మరియు స్వీయ-హోస్ట్ చేయడానికి స్వేచ్ఛ ఉంది — వాలెట్‌లు ఏ రిజిస్ట్రీ ఇన్‌స్టాన్స్‌లను విశ్వసించాలో స్వతంత్రంగా నిర్ణయిస్తాయి. + +1. GitHubలో రిపోజిటరీని ఫోర్క్ చేయండి +2. `registry//` వద్ద ఫోల్డర్‌ను సృష్టించండి +3. మీ ఫైల్‌ను దాని లోపల ఉంచండి: `registry/myproject/calldata-mycontract-0_0.json` +4. రెపోలో ఉపయోగించిన సాపేక్ష మార్గానికి `$schema` ఫీల్డ్‌ను నవీకరించండి: `"../../specs/erc7730-v2.schema.json"` +5. పుల్ రిక్వెస్ట్‌ను తెరవండి + +మీరు PRని తెరిచినప్పుడు, CI స్వయంచాలకంగా స్కీమా ధృవీకరణను అమలు చేస్తుంది, ఫంక్షన్ సంతకాలు చెల్లుబాటు అయ్యే సెలెక్టర్‌లను ఉత్పత్తి చేస్తాయో లేదో తనిఖీ చేస్తుంది, కాంట్రాక్ట్ చిరునామా Sourcifyలో ధృవీకరించబడిందని నిర్ధారిస్తుంది మరియు ABI అసమానతలను ఫ్లాగ్ చేస్తుంది. తనిఖీ ఫలితాలు PRలో ఇన్‌లైన్‌లో కనిపిస్తాయి. రిజిస్ట్రీ నిర్వహించేవారు తప్పుగా రూపొందించబడిన లేదా హానికరమైన డిస్క్రిప్టర్‌ల కోసం సమర్పణలను పరిశీలిస్తారు. రిజిస్ట్రీలో చేర్చడం అనేది ఆడిట్ లేదా ఆమోదాన్ని సూచించదు. + + + + +**గమనిక:** మీ PR ఆమోదించబడటానికి ముందు మీ కాంట్రాక్ట్ Sourcifyలో ధృవీకరించబడాలి. ఇది ఇంకా ధృవీకరించబడకపోతే, ముందుగా ధృవీకరణను సమర్పించండి. + + + + +## విలీనం చేసిన తర్వాత ఏమి జరుగుతుంది? {#what-happens-after-merging} + +రిజిస్ట్రీలోని అన్ని డిస్క్రిప్టర్‌లు ఆడిటర్‌లకు అందుబాటులో ఉంటాయి. మీ PR విలీనం చేయబడిన తర్వాత, ఏ ఆడిటర్ అయినా మీ డిస్క్రిప్టర్‌ను సమీక్షించవచ్చు మరియు దాని ఖచ్చితత్వాన్ని నిర్ధారిస్తూ క్రిప్టోగ్రాఫిక్ ధృవీకరణను ([ERC-8176](https://github.com/ethereum/ERCs/pull/1576) కింద) ప్రచురించవచ్చు. + +ఈ ధృవీకరణ సంకేతాలు వాలెట్‌లు తమ స్వంత విశ్వాస విధానాలను వర్తింపజేయడానికి అనుమతిస్తాయి — బహుళ స్వతంత్ర ధృవీకరణలు ఉన్న డిస్క్రిప్టర్ లేని దానికంటే ఎక్కువ బరువును కలిగి ఉంటుంది. మీరు [clearsigning.org](https://clearsigning.org) ద్వారా ఆడిటర్ కమ్యూనిటీని చేరుకోవచ్చు. + +వాలెట్‌లు తాము ఏ రిజిస్ట్రీకి మద్దతు ఇస్తాయో ఎంచుకుంటాయి. మీ డిస్క్రిప్టర్ రిజిస్ట్రీలో ఉన్న తర్వాత, ERC-7730కి మద్దతు ఇచ్చే వాలెట్‌లు అది వాటి రిజిస్ట్రీలో ఉంటే దాన్ని పొందడం ప్రారంభిస్తాయి మరియు వినియోగదారులు మీ కాంట్రాక్ట్‌తో ఇంటరాక్ట్ అయినప్పుడు మానవులు చదవగలిగే డేటాను ప్రదర్శిస్తాయి. + +## మరింత చదవడానికి {#further-reading} + +- [ERC-7730 స్పెసిఫికేషన్](https://eips.ethereum.org/EIPS/eip-7730) +- [ERC-7730 రిజిస్ట్రీ](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — టూలింగ్, ఎకోసిస్టమ్ స్థితి మరియు పరిపాలన +- [Sourcify కాంట్రాక్ట్ ధృవీకరణ](https://sourcify.dev) +- [ట్రిలియన్ డాలర్ సెక్యూరిటీ ఇనిషియేటివ్](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/tr/developers/tutorials/clear-signing/index.md b/public/content/translations/tr/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..dbc03965db4 --- /dev/null +++ b/public/content/translations/tr/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "ERC-7730 ile protokolünüze açık imzalama ekleyin" +description: "Kullanıcılar imzalamadan önce akıllı sözleşme etkileşimlerinizin cüzdanlarda insan tarafından okunabilir ayrıntılar göstermesi için nasıl bir ERC-7730 tanımlayıcısı yazacağınızı öğrenin." +author: Hester Bruikman +lang: tr +tags: ["ERC-7730", "güvenlik", "imzalama", "akıllı sözleşmeler", "cüzdanlar"] +skill: intermediate +breadcrumb: "Açık imzalama" +published: 2026-05-11 +--- + +Çoğu büyük Ethereum istismarının aynı son adımı vardı: bir kullanıcının anlamlı bir şekilde anlayamadığı bir işlemi onaylaması. Donanım cüzdanları ham onaltılık (hex) çağrı verisini gösterir ve daha da kötüsü sizi kör imzalamayı (blind signing) açık tutmaya zorlar. Yazılım cüzdanları çözülmüş alanları gösterir, ancak yalnızca sözleşmeyi tanıdıklarında. Tanımadıklarında, protokol yeni olduğu için, uygulama tehlikeye girdiği için veya cihaz çevrimdışı olduğu için kullanıcılar körü körüne imzalama yaparlar. + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730), sözleşmenizin işlev çağrılarının ne *anlama geldiğini* açıklamak için standart bir JSON formatı tanımlar. + +ERC-7730'u destekleyen bir cüzdan tanımlayıcınızı okur ve şunları gösterir: + +> **Takas** +> Gönderilen: 1.000 USDC +> Alınan minimum: 0,42 WETH +> Protokol: Uniswap V3 + +Veya hem insanlar hem de aracılar tarafından okunabilen tek bir yapılandırılmış cümle: + +> 1.000 USDC'yi en az 0,42 WETH ile takas et + +Bir işlev seçici ve ham tam sayı değerleri listesi yerine. + +Bu [açık imzalama](https://clearsigning.org/)dır — "Ne Görüyorsan Onu İmzalarsın." Bu eğitim, kendi sözleşmeniz için bir tanımlayıcı yazma, onu resmi CLI aracıyla doğrulama ve açık kayıt defterine gönderme adımlarında size rehberlik eder. + +## Ön Koşullar {#prerequisites} + +- Solidity ve akıllı sözleşme ABI'lerine aşinalık +- Doğrulanmış bir ABI'ye sahip dağıtılmış bir akıllı sözleşme (Bir tanımlayıcının kayıt defterine kabul edilmesinden önce [Sourcify](https://sourcify.dev) doğrulaması gereklidir) +- Doğrulama CLI'si için Python 3.12+ +- Temel JSON bilgisi + +## ERC-7730 tanımlayıcısı nedir? {#what-is-an-erc-7730-descriptor} + +Bir tanımlayıcı, üç bölümden oluşan tek bir JSON dosyasıdır: + +| Bölüm | Amaç | +| :---- | :---- | +| `context` | Tanımlayıcıyı zincir kimliği ve adresine göre belirli sözleşme dağıtımlarına bağlar | +| `metadata` | Projeyi adlandırır ve yeniden kullanılabilir sabitleri tanımlar | +| `display` | Her işlev imzasını insan tarafından okunabilir etiketlerle ve alan formatlarıyla eşler | + +Tanımlayıcı sözleşmenin kendisinden ayrı olduğu için, yeniden dağıtım yapmadan mevcut herhangi bir protokole açık imzalama desteği ekleyebilirsiniz. Cüzdanlar tanımlayıcıları kayıt defterinden alır ve imzalama sırasında kullanır. + +## 1. Adım: Dosya iskeletini oluşturun {#step-1-create-the-file-skeleton} + +`calldata--.json` adında bir dosya oluşturun. `calldata-` öneki, kayıt defterine bu tanımlayıcının yazılı veri (typed-data) mesajları için olan `eip712-`'ın aksine sözleşme işlev çağrılarını kapsadığını söyler. `descriptorversion`, kayıt defterine tanımlayıcı dosyasının sürümünü söyler, sürüm sağlanmazsa varsayılan olarak 0'dır. + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## 2. Adım: Bağlam bölümünü yazın {#step-2-write-the-context-section} + +`context` bölümü, tanımlayıcıyı bir veya daha fazla sözleşme dağıtımına bağlar. Cüzdanlar bunu gelen bir işlemi doğru tanımlayıcıyla eşleştirmek için kullanır. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### Bağlam alanları {#context-fields} + +- `context.$id` — Bu tanımlayıcı belgesi veya dağıtım yapılandırması için benzersiz bir tanımlayıcı. +- `contract.deployments` — Bu tanımlayıcının uygulandığı dağıtımlar kümesi. +- `deployments[].chainId` — Bir dağıtım için EVM zincir kimliği. Sözleşmenizin dağıtıldığı her zinciri dahil edin. +- `deployments[].address` — Cüzdanların bu tanımlayıcıyla ilişkilendirmesi gereken sözleşme adresi. Yürütme mantığını barındıran uygulama adresini kullanın. + +## 3. Adım: Meta veri bölümünü yazın {#step-3-write-the-metadata-section} + +Meta veri bölümü, bu dosya tarafından açıklanan proje ve sözleşme hakkında insan tarafından okunabilir bilgiler sağlar. Cüzdanlar bu bilgileri imzalama sırasında protokol adlarını, bağlantıları ve diğer bağlamsal ayrıntıları görüntülemek için kullanabilir. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### Meta veri alanları {#metadata-fields} + +- `owner` — Bu tanımlayıcıdan sorumlu proje, protokol, kuruluş veya sürdürücü. +- `info.url` — Cüzdanların ek bağlam için kullanıcılara gösterebileceği kurallı bir proje veya belgelendirme URL'si. +- `contractName` — Bu dosya tarafından açıklanan, genellikle doğrulanmış kaynak kodu veya ABI ile eşleşen sözleşme veya uygulama adı. + +ERC-7730 dosyanız bir ERC-20 sözleşmesini açıklıyorsa, bir token nesnesi de eklemelisiniz. + +## 4. Adım: Görüntüleme formatları bölümünü yazın {#step-4-write-the-displayformats-section} + +`display.formats` nesnesi, işlev imzalarını insan tarafından okunabilir imzalama talimatlarıyla eşler. Cüzdanlar, kullanıcılar bir işlemi onaylamadan önce işlevinizi bu şekilde gösterir! + +Her anahtar, insan tarafından okunabilir bir ABI parçasıdır — hem parametre adlarını hem de parametre türlerini tam olarak ABI'nizde göründükleri gibi içeren işlev imzası. + + +### Örnek: Bir token takasını açıklama {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### Görüntüleme alanları {#display-fields} + +- **`intent`** — **(Gerekli)** Eylemin "Takas" gibi kısa, kullanıcı dostu bir açıklaması. +- **`interpolatedIntent`** — **(Önerilen)** `"Swap {amountIn} for at least {amountOutMin}"` gibi biçimlendirilmiş alan değerlerini yerleştiren daha zengin bir cümle şablonu. Cüzdanların herhangi bir görüntüleme kısıtlaması olması durumunda göstermeyi seçebileceği daha da kullanıcı dostu bir tanımlayıcı sağlamak için bunu `intent` ile birlikte ekleyin. +- **`fields`** — **(Gerekli)** Cüzdanların kullanıcılara göstermesi gereken işlem alanlarının sıralı listesi. + - **`path`** — **(Gerekli)** İşlem verilerine bir referans. `#.fieldName`, ABI'deki ada göre çözülmüş bir çağrı verisi parametresini işaret eder. `@.value`, işlemle birlikte gönderilen ETH değerini ifade eder. + - **`label`** — **(Gerekli)** Değerin yanında gösterilen insan tarafından okunabilir etiket. + - **`format`** — **(Önerilen)** Değerin nasıl işleneceğini kontrol eder. Yaygın formatlar şunları içerir: + - `tokenAmount` + - `addressName` + - `date` + + Ek biçimlendirme gerekmediğinde `raw` kullanın. Bazı formatlar ek **`params`** yapılandırmasını kabul eder. Örneğin: + + - `tokenAmount`, hangi token adresinin ondalık sayıları ve borsa sembolü meta verilerini sağladığını belirlemek için `tokenPath` kullanabilir. + - `date`, zaman damgasının nasıl kodlandığını açıklamak için `encoding` kullanabilir. + + Seçilen format ekstra bilgi gerektirmiyorsa, `params`'yi atlayın. + +## Tam tanımlayıcı {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## 5. Adım: Kayıt defterine gönderin {#step-5-submit-to-the-registry} + +[ERC-7730 kayıt defteri](https://github.com/ethereum/clear-signing-erc7730-registry), tarafsız bir yönetici olarak [Ethereum Vakfı](/foundation/) tarafından barındırılan açık bir depodur. Herkes onu klonlamakta ve kendi kendine barındırmakta özgürdür — cüzdanlar hangi kayıt defteri örneklerine güveneceklerine bağımsız olarak karar verirler. + +1. GitHub'da depoyu çatallayın (fork) +2. `registry//` konumunda bir klasör oluşturun +3. Dosyanızı içine yerleştirin: `registry/myproject/calldata-mycontract-0_0.json` +4. `$schema` alanını depo içinde kullanılan göreli yola güncelleyin: `"../../specs/erc7730-v2.schema.json"` +5. Bir çekme isteği (pull request) açın + +PR'ı açtığınızda, CI otomatik olarak şema doğrulaması çalıştırır, işlev imzalarının geçerli seçiciler ürettiğini kontrol eder, sözleşme adresinin Sourcify'da doğrulandığını onaylar ve ABI tutarsızlıklarını işaretler. Kontrol sonuçları PR üzerinde satır içi olarak görünür. Kayıt defteri sürdürücüleri, hatalı biçimlendirilmiş veya potansiyel olarak kötü niyetli tanımlayıcılar için gönderimleri inceler. Kayıt defterine dahil edilmek, denetim veya onay anlamına gelmez. + + + + +**Not:** PR'ınızın kabul edilebilmesi için sözleşmenizin Sourcify üzerinde doğrulanmış olması gerekir. Henüz doğrulanmadıysa, önce doğrulama gönderin. + + + + +## Birleştirmeden sonra ne olur? {#what-happens-after-merging} + +Kayıt defterindeki tüm tanımlayıcılar denetçilere açıktır. PR'ınız birleştirildikten sonra, herhangi bir denetçi tanımlayıcınızı inceleyebilir ve doğruluğunu onaylayan kriptografik bir onay ([ERC-8176](https://github.com/ethereum/ERCs/pull/1576) altında) yayınlayabilir. + +Bu onay sinyalleri, cüzdanların kendi güven politikalarını uygulamalarına olanak tanır — birden fazla bağımsız onaya sahip bir tanımlayıcı, onayı olmayan bir tanımlayıcıdan daha fazla ağırlık taşır. Denetçi topluluğuna [clearsigning.org](https://clearsigning.org) üzerinden ulaşabilirsiniz. + +Cüzdanlar hangi kayıt defterini destekleyeceklerini seçerler. Tanımlayıcınız kayıt defterine girdikten sonra, ERC-7730'u destekleyen cüzdanlar, kendi kayıt defterlerinde varsa onu getirmeye başlayacak ve kullanıcılar sözleşmenizle etkileşime girdiğinde insan tarafından okunabilir veriler gösterecektir. + +## Daha fazla bilgi {#further-reading} + +- [ERC-7730 spesifikasyonu](https://eips.ethereum.org/EIPS/eip-7730) +- [ERC-7730 kayıt defteri](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — araçlar, ekosistem durumu ve yönetişim +- [Sourcify sözleşme doğrulaması](https://sourcify.dev) +- [Trilyon Dolarlık Güvenlik girişimi](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/uk/developers/tutorials/clear-signing/index.md b/public/content/translations/uk/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..5ecb45c16a5 --- /dev/null +++ b/public/content/translations/uk/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "Додайте зрозуміле підписання до вашого протоколу за допомогою ERC-7730" +description: "Дізнайтеся, як написати дескриптор ERC-7730, щоб взаємодії з вашим смарт-контрактом відображали зрозумілі для людини деталі в гаманцях перед тим, як користувачі їх підпишуть." +author: "Гестер Брюкман" +lang: uk +tags: ["ERC-7730", "безпека", "підписання", "смарт-контракти", "гаманці"] +skill: intermediate +breadcrumb: "Зрозуміле підписання" +published: 2026-05-11 +--- + +Більшість великих експлойтів в Етеріумі мали однаковий останній крок: користувач схвалював транзакцію, яку не міг повноцінно зрозуміти. Апаратні гаманці показують необроблені шістнадцяткові дані виклику (calldata), і, що ще гірше, змушують вас вмикати сліпе підписання. Програмні гаманці показують розкодовані поля, але тільки тоді, коли вони розпізнають контракт. Коли ж вони цього не роблять — чи то через те, що протокол новий, застосунок скомпрометований, чи пристрій перебуває в автономному режимі — користувачі підписують наосліп. + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) визначає стандартний формат JSON для опису того, що *означають* виклики функцій вашого контракту. + +Гаманець, який підтримує ERC-7730, зчитує ваш дескриптор і показує: + +> **Обмін** +> Надіслати: 1,000 USDC +> Отримати мінімум: 0.42 WETH +> Протокол: Юнісвоп V3 + +Або єдине побудоване речення, зрозуміле як людям, так і агентам: + +> Обміняти 1,000 USDC на щонайменше 0.42 WETH + +Замість селектора функції та списку необроблених цілих значень. + +Це [зрозуміле підписання](https://clearsigning.org/) — «Що бачиш, те й підписуєш» (What You See Is What You Sign). Цей посібник допоможе вам написати дескриптор для власного контракту, перевірити його за допомогою офіційного інструменту CLI та надіслати до відкритого реєстру. + +## Передумови {#prerequisites} + +- Обізнаність із Solidity та ABI смарт-контрактів +- Розгорнутий смарт-контракт із верифікованим ABI (верифікація на [Sourcify](https://sourcify.dev) є обов'язковою вимогою перед прийняттям дескриптора до реєстру) +- Python 3.12+ для CLI-інструменту перевірки +- Базові знання JSON + +## Що таке дескриптор ERC-7730? {#what-is-an-erc-7730-descriptor} + +Дескриптор — це єдиний файл JSON із трьома розділами: + +| Розділ | Призначення | +| :---- | :---- | +| `context` | Прив'язує дескриптор до конкретних розгортань контракту за ідентифікатором ланцюга (chain ID) та адресою | +| `metadata` | Називає проєкт і визначає константи для багаторазового використання | +| `display` | Зіставляє кожну сигнатуру функції зі зрозумілими для людини мітками та форматами полів | + +Оскільки дескриптор відокремлений від самого контракту, ви можете додати підтримку зрозумілого підписання до будь-якого існуючого протоколу без повторного розгортання. Гаманці отримують дескриптори з реєстру та використовують їх під час підписання. + +## Крок 1: Створіть каркас файлу {#step-1-create-the-file-skeleton} + +Створіть файл із назвою `calldata--.json`. Префікс `calldata-` вказує реєстру, що цей дескриптор охоплює виклики функцій контракту, на відміну від `eip712-` для повідомлень із типізованими даними. `descriptorversion` вказує реєстру версію файлу дескриптора (за замовчуванням 0, якщо версія не вказана). + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## Крок 2: Напишіть розділ контексту {#step-2-write-the-context-section} + +Розділ `context` прив'язує дескриптор до одного або кількох розгортань контракту. Гаманці використовують це, щоб зіставити вхідну транзакцію з правильним дескриптором. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### Поля контексту {#context-fields} + +- `context.$id` — Унікальний ідентифікатор для цього документа дескриптора або конфігурації розгортання. +- `contract.deployments` — Набір розгортань, до яких застосовується цей дескриптор. +- `deployments[].chainId` — Ідентифікатор ланцюга EVM (chain ID) для розгортання. Включіть кожен ланцюг, де розгорнуто ваш контракт. +- `deployments[].address` — Адреса контракту, яку гаманці повинні асоціювати з цим дескриптором. Використовуйте адресу реалізації, яка містить логіку виконання. + +## Крок 3: Напишіть розділ метаданих {#step-3-write-the-metadata-section} + +Розділ метаданих надає зрозумілу для людини інформацію про проєкт і контракт, описані в цьому файлі. Гаманці можуть використовувати цю інформацію для відображення назв протоколів, посилань та інших контекстних деталей під час підписання. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### Поля метаданих {#metadata-fields} + +- `owner` — Проєкт, протокол, організація або супроводжувач, відповідальний за цей дескриптор. +- `info.url` — Канонічна URL-адреса проєкту або документації, яку гаманці можуть показувати користувачам для додаткового контексту. +- `contractName` — Назва контракту або реалізації, описана в цьому файлі, яка зазвичай збігається з верифікованим вихідним кодом або ABI. + +Якщо ваш файл ERC-7730 описує контракт ERC-20, вам також слід додати об'єкт токена. + +## Крок 4: Напишіть розділ форматів відображення {#step-4-write-the-displayformats-section} + +Об'єкт `display.formats` зіставляє сигнатури функцій зі зрозумілими для людини інструкціями щодо підписання. Саме так гаманці показують вашу функцію користувачам перед тим, як вони схвалюють транзакцію! + +Кожен ключ — це зрозумілий для людини фрагмент ABI: сигнатура функції, що включає як імена параметрів, так і їхні типи, точно так, як вони вказані у вашому ABI. + + +### Приклад: Опис обміну токенів {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### Поля відображення {#display-fields} + +- **`intent`** — **(Обов'язково)** Короткий, зручний для користувача опис дії, наприклад, «Обмін» (Swap). +- **`interpolatedIntent`** — **(Рекомендовано)** Більш розгорнутий шаблон речення, який містить відформатовані значення полів, наприклад `"Swap {amountIn} for at least {amountOutMin}"`. Додайте його разом із `intent`, щоб надати ще зручніший дескриптор, який гаманці зможуть відображати з урахуванням будь-яких обмежень екрана. +- **`fields`** — **(Обов'язково)** Впорядкований список полів транзакції, які гаманці повинні показувати користувачам. + - **`path`** — **(Обов'язково)** Посилання на дані транзакції. `#.fieldName` вказує на розкодований параметр даних виклику за іменем в ABI. `@.value` стосується значення ETH, надісланого з транзакцією. + - **`label`** — **(Обов'язково)** Зрозуміла для людини мітка, що відображається поруч зі значенням. + - **`format`** — **(Рекомендовано)** Керує тим, як має відображатися значення. Поширені формати включають: + - `tokenAmount` + - `addressName` + - `date` + + Використовуйте `raw`, коли додаткове форматування не потрібне. Деякі формати приймають додаткову конфігурацію **`params`**. Наприклад: + + - `tokenAmount` може використовувати `tokenPath` для визначення того, яка адреса токена надає метадані про десяткові знаки та тикер. + - `date` може використовувати `encoding` для опису того, як закодована часова мітка. + + Якщо вибраний формат не потребує додаткової інформації, пропустіть `params`. + +## Повний дескриптор {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## Крок 5: Надішліть до реєстру {#step-5-submit-to-the-registry} + +[Реєстр ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) — це відкритий репозиторій, який підтримується [Фундацією Ethereum](/foundation/) як нейтральним розпорядником. Будь-хто може вільно клонувати та самостійно розміщувати його — гаманці незалежно вирішують, яким екземплярам реєстру вони довіряють. + +1. Зробіть форк репозиторію на GitHub +2. Створіть папку за шляхом `registry//` +3. Помістіть свій файл у неї: `registry/myproject/calldata-mycontract-0_0.json` +4. Оновіть поле `$schema` на відносний шлях, що використовується в репозиторії: `"../../specs/erc7730-v2.schema.json"` +5. Відкрийте pull request (запит на злиття) + +Коли ви відкриваєте PR, CI автоматично запускає перевірку схеми, перевіряє, чи сигнатури функцій створюють дійсні селектори, підтверджує, що адреса контракту верифікована на Sourcify, і позначає невідповідності ABI. Результати перевірки з'являються безпосередньо в PR. Супроводжувачі реєстру перевіряють подання на наявність неправильно сформованих або потенційно шкідливих дескрипторів. Включення до реєстру не означає проведення аудиту або схвалення. + + + + +**Примітка:** Ваш контракт має бути верифікований на Sourcify перед тим, як ваш PR зможе бути прийнятий. Якщо він ще не верифікований, спочатку надішліть запит на верифікацію. + + + + +## Що відбувається після злиття? {#what-happens-after-merging} + +Усі дескриптори в реєстрі відкриті для аудиторів. Після злиття вашого PR будь-який аудитор може перевірити ваш дескриптор і опублікувати криптографічну атестацію (відповідно до [ERC-8176](https://github.com/ethereum/ERCs/pull/1576)), що підтверджує його точність. + +Ці сигнали атестації дозволяють гаманцям застосовувати власні політики довіри — дескриптор із кількома незалежними атестаціями має більшу вагу, ніж той, що їх не має. Ви можете зв'язатися зі спільнотою аудиторів через [clearsigning.org](https://clearsigning.org). + +Гаманці самі обирають, який реєстр вони підтримуватимуть. Щойно ваш дескриптор опиниться в реєстрі, гаманці, які підтримують ERC-7730, почнуть отримувати його (якщо він є в їхньому реєстрі) і відображатимуть зрозумілі для людини дані, коли користувачі взаємодіятимуть із вашим контрактом. + +## Додаткові матеріали {#further-reading} + +- [Специфікація ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) +- [Реєстр ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — інструменти, стан екосистеми та управління +- [Верифікація контрактів на Sourcify](https://sourcify.dev) +- [Ініціатива Trillion Dollar Security](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/ur/developers/tutorials/clear-signing/index.md b/public/content/translations/ur/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..89dc5545687 --- /dev/null +++ b/public/content/translations/ur/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "⁦ERC-7730⁩ کے ساتھ اپنے پروٹوکول میں واضح دستخط کرنا شامل کریں" +description: "جانیں کہ ⁦ERC-7730⁩ ڈسکرپٹر کیسے لکھا جائے تاکہ آپ کے سمارٹ کنٹریکٹ کے تعاملات صارفین کے دستخط کرنے سے پہلے والیٹس میں انسانی پڑھنے کے قابل تفصیلات دکھائیں۔" +author: "ہیسٹر بروکمین" +lang: ur +tags: ["ERC-7730", "سیکیورٹی", "دستخط کرنا", "سمارٹ کنٹریکٹس", "والیٹس"] +skill: intermediate +breadcrumb: "واضح دستخط کرنا" +published: 2026-05-11 +--- + +زیادہ تر بڑے ایتھیریم حملوں کا آخری مرحلہ ایک ہی تھا: ایک صارف ایسی ٹرانزیکشن کو منظور کرنا جسے وہ بامعنی طور پر سمجھ نہیں سکتا تھا۔ ہارڈویئر والیٹس خام ہیکس کال ڈیٹا دکھاتے ہیں، اور اس سے بھی بدتر یہ کہ آپ کو بلائنڈ سائننگ (اندھا دستخط) آن کرنے پر مجبور کرتے ہیں۔ سافٹ ویئر والیٹس ڈی کوڈ شدہ فیلڈز دکھاتے ہیں، لیکن صرف اس وقت جب وہ کنٹریکٹ کو پہچانتے ہوں۔ جب وہ ایسا نہیں کرتے، چاہے اس کی وجہ یہ ہو کہ پروٹوکول نیا ہے، ایپ سے سمجھوتہ کیا گیا ہے، یا ڈیوائس آف لائن ہے، تو صارفین اندھے دستخط کرتے ہیں۔ + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) ایک معیاری JSON فارمیٹ کی وضاحت کرتا ہے جو یہ بیان کرتا ہے کہ آپ کے کنٹریکٹ کی فنکشن کالز کا *مطلب* کیا ہے۔ + +ایک والیٹ جو ERC-7730 کو سپورٹ کرتا ہے وہ آپ کا ڈسکرپٹر پڑھتا ہے اور دکھاتا ہے: + +> **تبادلہ** +> بھیجیں: 1,000 USDC +> کم از کم وصول کریں: 0.42 WETH +> پروٹوکول: یونی سویپ V3 + +یا ایک واحد تشکیل شدہ جملہ جو انسانوں اور ایجنٹس دونوں کے لیے پڑھنے کے قابل ہو: + +> کم از کم 0.42 WETH کے لیے 1,000 USDC کا تبادلہ کریں + +فنکشن سلیکٹر اور خام انٹیجر ویلیوز کی فہرست کے بجائے۔ + +یہ [واضح دستخط کرنا](https://clearsigning.org/) ہے — "جو آپ دیکھتے ہیں وہی آپ دستخط کرتے ہیں۔" یہ ٹیوٹوریل آپ کو اپنے کنٹریکٹ کے لیے ڈسکرپٹر لکھنے، اسے آفیشل CLI ٹول کے ساتھ درست ثابت کرنے، اور اسے اوپن رجسٹری میں جمع کرانے کے عمل سے گزارتا ہے۔ + +## پیشگی شرائط {#prerequisites} + +- Solidity اور سمارٹ کنٹریکٹ ABIs سے واقفیت +- ایک تصدیق شدہ ABI کے ساتھ تعینات شدہ سمارٹ کنٹریکٹ (ڈسکرپٹر کو رجسٹری میں قبول کیے جانے سے پہلے [Sourcify](https://sourcify.dev) کی تصدیق درکار ہے) +- توثیق کرنے والے CLI کے لیے Python 3.12+ +- JSON کا بنیادی علم + +## ERC-7730 ڈسکرپٹر کیا ہے؟ {#what-is-an-erc-7730-descriptor} + +ڈسکرپٹر ایک واحد JSON فائل ہے جس کے تین حصے ہوتے ہیں: + +| سیکشن | مقصد | +| :---- | :---- | +| `context` | ڈسکرپٹر کو چین ID اور پتہ کے ذریعے مخصوص کنٹریکٹ کی تعیناتیوں سے جوڑتا ہے | +| `metadata` | پروجیکٹ کا نام دیتا ہے اور دوبارہ استعمال کے قابل کنسٹنٹس کی وضاحت کرتا ہے | +| `display` | ہر فنکشن کے دستخط کو انسانی پڑھنے کے قابل لیبلز اور فیلڈ فارمیٹس سے میپ کرتا ہے | + +چونکہ ڈسکرپٹر خود کنٹریکٹ سے الگ ہوتا ہے، اس لیے آپ دوبارہ تعیناتی کے بغیر کسی بھی موجودہ پروٹوکول میں واضح دستخط کرنے کی سپورٹ شامل کر سکتے ہیں۔ والیٹس رجسٹری سے ڈسکرپٹرز بازیافت کرتے ہیں اور انہیں دستخط کرنے کے وقت استعمال کرتے ہیں۔ + +## مرحلہ 1: فائل کا ڈھانچہ بنائیں {#step-1-create-the-file-skeleton} + +`calldata--.json` کے نام سے ایک فائل بنائیں۔ `calldata-` کا سابقہ رجسٹری کو بتاتا ہے کہ یہ ڈسکرپٹر ٹائپ شدہ ڈیٹا پیغامات کے لیے `eip712-` کے برعکس، کنٹریکٹ کی فنکشن کالز کا احاطہ کرتا ہے۔ `descriptorversion` رجسٹری کو ڈسکرپٹر فائل کا ورژن بتاتا ہے، اگر کوئی ورژن فراہم نہ کیا جائے تو یہ بائی ڈیفالٹ 0 ہوتا ہے۔ + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## مرحلہ 2: سیاق و سباق کا سیکشن لکھیں {#step-2-write-the-context-section} + +`context` سیکشن ڈسکرپٹر کو ایک یا زیادہ کنٹریکٹ کی تعیناتیوں سے جوڑتا ہے۔ والیٹس اسے آنے والی ٹرانزیکشن کو درست ڈسکرپٹر سے ملانے کے لیے استعمال کرتے ہیں۔ + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### سیاق و سباق کی فیلڈز {#context-fields} + +- `context.$id` — اس ڈسکرپٹر دستاویز یا تعیناتی کی کنفیگریشن کے لیے ایک منفرد شناخت کنندہ۔ +- `contract.deployments` — تعیناتیوں کا وہ سیٹ جس پر یہ ڈسکرپٹر لاگو ہوتا ہے۔ +- `deployments[].chainId` — تعیناتی کے لیے EVM چین ID۔ ہر اس چین کو شامل کریں جہاں آپ کا کنٹریکٹ تعینات ہے۔ +- `deployments[].address` — وہ کنٹریکٹ پتہ جسے والیٹس کو اس ڈسکرپٹر کے ساتھ منسلک کرنا چاہیے۔ عمل درآمد کا وہ پتہ استعمال کریں جس میں ایگزیکیوشن لاجک موجود ہو۔ + +## مرحلہ 3: میٹا ڈیٹا کا سیکشن لکھیں {#step-3-write-the-metadata-section} + +میٹا ڈیٹا کا سیکشن اس فائل کے ذریعے بیان کردہ پروجیکٹ اور کنٹریکٹ کے بارے میں انسانی پڑھنے کے قابل معلومات فراہم کرتا ہے۔ والیٹس اس معلومات کو دستخط کرنے کے دوران پروٹوکول کے نام، لنکس، اور دیگر سیاق و سباق کی تفصیلات دکھانے کے لیے استعمال کر سکتے ہیں۔ + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### میٹا ڈیٹا کی فیلڈز {#metadata-fields} + +- `owner` — وہ پروجیکٹ، پروٹوکول، تنظیم، یا مینٹینر جو اس ڈسکرپٹر کا ذمہ دار ہے۔ +- `info.url` — ایک مستند پروجیکٹ یا دستاویزات کا URL جسے والیٹس اضافی سیاق و سباق کے لیے صارفین کو دکھا سکتے ہیں۔ +- `contractName` — اس فائل کے ذریعے بیان کردہ کنٹریکٹ یا عمل درآمد کا نام، جو عام طور پر تصدیق شدہ سورس کوڈ یا ABI سے میل کھاتا ہے۔ + +اگر آپ کی ERC-7730 فائل کسی ERC-20 کنٹریکٹ کو بیان کرتی ہے، تو آپ کو ایک ٹوکن آبجیکٹ بھی شامل کرنا چاہیے۔ + +## مرحلہ 4: ڈسپلے فارمیٹس کا سیکشن لکھیں {#step-4-write-the-displayformats-section} + +`display.formats` آبجیکٹ فنکشن کے دستخطوں کو انسانی پڑھنے کے قابل دستخط کرنے کی ہدایات سے میپ کرتا ہے۔ اس طرح والیٹس صارفین کو ٹرانزیکشن منظور کرنے سے پہلے آپ کا فنکشن دکھاتے ہیں! + +ہر کلید ایک انسانی پڑھنے کے قابل ABI کا حصہ ہے — فنکشن کے دستخط جس میں پیرامیٹر کے نام اور پیرامیٹر کی اقسام بالکل اسی طرح شامل ہیں جیسے وہ آپ کے ABI میں ظاہر ہوتے ہیں۔ + + +### مثال: ٹوکن کے تبادلہ کو بیان کرنا {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### ڈسپلے کی فیلڈز {#display-fields} + +- **`intent`** — **(ضروری)** کارروائی کی ایک مختصر، صارف دوست تفصیل، جیسے "تبادلہ"۔ +- **`interpolatedIntent`** — **(تجویز کردہ)** ایک زیادہ جامع جملے کا ٹیمپلیٹ جو فارمیٹ شدہ فیلڈ ویلیوز کو شامل کرتا ہے، جیسے `"Swap {amountIn} for at least {amountOutMin}"`۔ اسے `intent` کے ساتھ شامل کریں تاکہ ایک اور بھی زیادہ صارف دوست ڈسکرپٹر فراہم کیا جا سکے جسے والیٹس کسی بھی ڈسپلے کی پابندیوں کے پیش نظر دکھانے کا انتخاب کر سکتے ہیں۔ +- **`fields`** — **(ضروری)** ٹرانزیکشن فیلڈز کی ترتیب وار فہرست جو والیٹس کو صارفین کو دکھانی چاہیے۔ + - **`path`** — **(ضروری)** ٹرانزیکشن ڈیٹا کا حوالہ۔ `#.fieldName` ABI میں نام کے ذریعے ڈی کوڈ شدہ کال ڈیٹا پیرامیٹر کی طرف اشارہ کرتا ہے۔ `@.value` ٹرانزیکشن کے ساتھ بھیجی گئی ETH ویلیو کا حوالہ دیتا ہے۔ + - **`label`** — **(ضروری)** ویلیو کے ساتھ دکھایا جانے والا انسانی پڑھنے کے قابل لیبل۔ + - **`format`** — **(تجویز کردہ)** کنٹرول کرتا ہے کہ ویلیو کو کیسے پیش کیا جانا چاہیے۔ عام فارمیٹس میں شامل ہیں: + - `tokenAmount` + - `addressName` + - `date` + + جب کسی اضافی فارمیٹنگ کی ضرورت نہ ہو تو `raw` استعمال کریں۔ کچھ فارمیٹس اضافی **`params`** کنفیگریشن قبول کرتے ہیں۔ مثال کے طور پر: + + - `tokenAmount` یہ شناخت کرنے کے لیے `tokenPath` استعمال کر سکتا ہے کہ کون سا ٹوکن پتہ ڈیسیملز اور ٹکر میٹا ڈیٹا فراہم کرتا ہے۔ + - `date` یہ بیان کرنے کے لیے `encoding` استعمال کر سکتا ہے کہ ٹائم اسٹیمپ کو کیسے انکوڈ کیا گیا ہے۔ + + اگر منتخب کردہ فارمیٹ کو اضافی معلومات کی ضرورت نہیں ہے، تو `params` کو چھوڑ دیں۔ + +## مکمل ڈسکرپٹر {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## مرحلہ 5: رجسٹری میں جمع کرائیں {#step-5-submit-to-the-registry} + +[ERC-7730 رجسٹری](https://github.com/ethereum/clear-signing-erc7730-registry) ایک اوپن ریپوزٹری ہے جس کی میزبانی [ایتھیریم فاؤنڈیشن](/foundation/) ایک غیر جانبدار منتظم کے طور پر کرتی ہے۔ کوئی بھی اسے کلون کرنے اور خود میزبانی کرنے کے لیے آزاد ہے — والیٹس آزادانہ طور پر فیصلہ کرتے ہیں کہ وہ کن رجسٹری انسٹینسز پر بھروسہ کرتے ہیں۔ + +1. GitHub پر ریپوزٹری کو فورک کریں +2. `registry//` پر ایک فولڈر بنائیں +3. اپنی فائل کو اس کے اندر رکھیں: `registry/myproject/calldata-mycontract-0_0.json` +4. `$schema` فیلڈ کو ریپو کے اندر استعمال ہونے والے متعلقہ پاتھ پر اپ ڈیٹ کریں: `"../../specs/erc7730-v2.schema.json"` +5. ایک پل ریکوئسٹ (pull request) کھولیں + +جب آپ PR کھولتے ہیں، تو CI خود بخود سکیما کی توثیق چلاتا ہے، چیک کرتا ہے کہ فنکشن کے دستخط درست سلیکٹرز تیار کرتے ہیں، تصدیق کرتا ہے کہ کنٹریکٹ کا پتہ Sourcify پر تصدیق شدہ ہے، اور ABI کی تضادات کی نشاندہی کرتا ہے۔ چیک کے نتائج PR پر ان لائن ظاہر ہوتے ہیں۔ رجسٹری کے منتظمین خراب یا ممکنہ طور پر نقصان دہ ڈسکرپٹرز کے لیے جمع کرائی گئی درخواستوں کی جانچ پڑتال کرتے ہیں۔ رجسٹری میں شمولیت کا مطلب آڈٹ یا توثیق نہیں ہے۔ + + + + +**نوٹ:** آپ کی PR قبول ہونے سے پہلے آپ کے کنٹریکٹ کی Sourcify پر تصدیق ہونی چاہیے۔ اگر اس کی ابھی تک تصدیق نہیں ہوئی ہے، تو پہلے تصدیق جمع کرائیں۔ + + + + +## ضم ہونے کے بعد کیا ہوتا ہے؟ {#what-happens-after-merging} + +رجسٹری میں موجود تمام ڈسکرپٹرز آڈیٹرز کے لیے کھلے ہیں۔ آپ کی PR ضم ہونے کے بعد، کوئی بھی آڈیٹر آپ کے ڈسکرپٹر کا جائزہ لے سکتا ہے اور اس کی درستگی کی تصدیق کرتے ہوئے ایک کرپٹوگرافک تصدیق ([ERC-8176](https://github.com/ethereum/ERCs/pull/1576) کے تحت) شائع کر سکتا ہے۔ + +یہ تصدیقی سگنلز والیٹس کو اپنی خود کی اعتماد کی پالیسیاں لاگو کرنے دیتے ہیں — ایک ڈسکرپٹر جس میں متعدد آزاد تصدیقات ہوں، اس کی اہمیت اس ڈسکرپٹر سے زیادہ ہوتی ہے جس میں کوئی تصدیق نہ ہو۔ آپ [clearsigning.org](https://clearsigning.org) کے ذریعے آڈیٹر کمیونٹی تک پہنچ سکتے ہیں۔ + +والیٹس انتخاب کرتے ہیں کہ وہ کس رجسٹری کو سپورٹ کریں گے۔ ایک بار جب آپ کا ڈسکرپٹر رجسٹری میں آجاتا ہے، تو وہ والیٹس جو ERC-7730 کو سپورٹ کرتے ہیں اسے بازیافت کرنا شروع کر دیں گے اگر یہ ان کی رجسٹری میں ہے اور جب صارفین آپ کے کنٹریکٹ کے ساتھ تعامل کریں گے تو انسانی پڑھنے کے قابل ڈیٹا دکھائیں گے۔ + +## مزید مطالعہ {#further-reading} + +- [ERC-7730 کی تفصیلات](https://eips.ethereum.org/EIPS/eip-7730) +- [ERC-7730 رجسٹری](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — ٹولنگ، ایکو سسٹم کی حیثیت، اور گورننس +- [Sourcify کنٹریکٹ کی تصدیق](https://sourcify.dev) +- [ٹریلین ڈالر سیکیورٹی اقدام](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/vi/developers/tutorials/clear-signing/index.md b/public/content/translations/vi/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..c62edb5ccc2 --- /dev/null +++ b/public/content/translations/vi/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "Thêm việc ký rõ ràng vào giao thức của bạn với ERC-7730" +description: "Tìm hiểu cách viết bộ mô tả ERC-7730 để các tương tác hợp đồng thông minh của bạn hiển thị chi tiết dễ đọc trong ví trước khi người dùng ký." +author: Hester Bruikman +lang: vi +tags: ["ERC-7730", "bảo mật", "việc ký", "hợp đồng thông minh", "ví"] +skill: intermediate +breadcrumb: "Việc ký rõ ràng" +published: 2026-05-11 +--- + +Hầu hết các vụ khai thác Ethereum lớn đều có cùng một bước cuối cùng: người dùng chấp thuận một giao dịch mà họ không thể hiểu rõ ý nghĩa. Ví phần cứng hiển thị dữ liệu lệnh gọi (calldata) dạng hex thô, và tệ hơn là buộc bạn phải bật tính năng ký mù (blind signing). Ví phần mềm hiển thị các trường đã được giải mã, nhưng chỉ khi chúng nhận diện được hợp đồng. Khi chúng không nhận diện được, cho dù vì giao thức còn mới, ứng dụng bị xâm phạm hay thiết bị đang ngoại tuyến, người dùng đều phải ký mù. + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) định nghĩa một định dạng JSON tiêu chuẩn để mô tả *ý nghĩa* của các lệnh gọi hàm trong hợp đồng của bạn. + +Một ví hỗ trợ ERC-7730 sẽ đọc bộ mô tả của bạn và hiển thị: + +> **Hoán đổi** +> Gửi: 1.000 USDC +> Nhận tối thiểu: 0,42 WETH +> Giao thức: Uniswap V3 + +Hoặc một câu hoàn chỉnh dễ đọc cho cả con người và các tác nhân (agent): + +> Hoán đổi 1.000 USDC để lấy ít nhất 0,42 WETH + +Thay vì một bộ chọn hàm (function selector) và một danh sách các giá trị số nguyên thô. + +Đây là [việc ký rõ ràng](https://clearsigning.org/) — "Những gì bạn thấy là những gì bạn ký" (What You See Is What You Sign). Hướng dẫn này sẽ dẫn dắt bạn qua quá trình viết một bộ mô tả cho hợp đồng của riêng bạn, xác thực nó bằng công cụ CLI chính thức và gửi nó lên sổ đăng ký mở (open registry). + +## Điều kiện tiên quyết {#prerequisites} + +- Làm quen với Solidity và ABI của hợp đồng thông minh +- Một hợp đồng thông minh đã được triển khai với ABI đã được xác minh (yêu cầu xác minh trên [Sourcify](https://sourcify.dev) trước khi bộ mô tả được chấp nhận vào sổ đăng ký) +- Python 3.12+ cho CLI xác thực +- Kiến thức cơ bản về JSON + +## Bộ mô tả ERC-7730 là gì? {#what-is-an-erc-7730-descriptor} + +Bộ mô tả là một tệp JSON duy nhất gồm ba phần: + +| Phần | Mục đích | +| :---- | :---- | +| `context` | Liên kết bộ mô tả với các đợt triển khai hợp đồng cụ thể theo ID chuỗi và địa chỉ | +| `metadata` | Đặt tên cho dự án và định nghĩa các hằng số có thể tái sử dụng | +| `display` | Ánh xạ từng chữ ký hàm với các nhãn và định dạng trường dễ đọc | + +Vì bộ mô tả tách biệt với bản thân hợp đồng, bạn có thể thêm hỗ trợ việc ký rõ ràng vào bất kỳ giao thức hiện có nào mà không cần triển khai lại. Các ví sẽ truy xuất bộ mô tả từ sổ đăng ký và sử dụng chúng tại thời điểm ký. + +## Bước 1: Tạo bộ khung tệp {#step-1-create-the-file-skeleton} + +Tạo một tệp có tên `calldata--.json`. Tiền tố `calldata-` cho sổ đăng ký biết rằng bộ mô tả này bao gồm các lệnh gọi hàm của hợp đồng, trái ngược với `eip712-` dành cho các tin nhắn dữ liệu có kiểu (typed-data). `descriptorversion` cho sổ đăng ký biết phiên bản của tệp mô tả, mặc định là 0 nếu không có phiên bản nào được cung cấp. + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## Bước 2: Viết phần ngữ cảnh (context) {#step-2-write-the-context-section} + +Phần `context` liên kết bộ mô tả với một hoặc nhiều đợt triển khai hợp đồng. Các ví sử dụng phần này để khớp một giao dịch đến với bộ mô tả chính xác. + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### Các trường ngữ cảnh {#context-fields} + +- `context.$id` — Một định danh duy nhất cho tài liệu mô tả hoặc cấu hình triển khai này. +- `contract.deployments` — Tập hợp các đợt triển khai mà bộ mô tả này áp dụng. +- `deployments[].chainId` — ID chuỗi EVM cho một đợt triển khai. Bao gồm mọi chuỗi nơi hợp đồng của bạn được triển khai. +- `deployments[].address` — Địa chỉ hợp đồng mà các ví nên liên kết với bộ mô tả này. Sử dụng địa chỉ triển khai (implementation address) chứa logic thực thi. + +## Bước 3: Viết phần siêu dữ liệu {#step-3-write-the-metadata-section} + +Phần siêu dữ liệu cung cấp thông tin dễ đọc về dự án và hợp đồng được mô tả bởi tệp này. Các ví có thể sử dụng thông tin này để hiển thị tên giao thức, liên kết và các chi tiết ngữ cảnh khác trong quá trình ký. + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### Các trường siêu dữ liệu {#metadata-fields} + +- `owner` — Dự án, giao thức, tổ chức hoặc người bảo trì chịu trách nhiệm cho bộ mô tả này. +- `info.url` — Một URL dự án hoặc tài liệu chính thức mà các ví có thể hiển thị cho người dùng để có thêm ngữ cảnh. +- `contractName` — Tên hợp đồng hoặc bản triển khai được mô tả bởi tệp này, thường khớp với mã nguồn hoặc ABI đã được xác minh. + +Nếu tệp ERC-7730 của bạn mô tả một hợp đồng ERC-20, bạn cũng nên thêm một đối tượng token. + +## Bước 4: Viết phần định dạng hiển thị {#step-4-write-the-displayformats-section} + +Đối tượng `display.formats` ánh xạ các chữ ký hàm với các hướng dẫn ký dễ đọc. Đây là cách các ví hiển thị hàm của bạn cho người dùng trước khi họ chấp thuận một giao dịch! + +Mỗi khóa (key) là một đoạn ABI dễ đọc — chữ ký hàm bao gồm cả tên tham số và kiểu tham số chính xác như chúng xuất hiện trong ABI của bạn. + + +### Ví dụ: Mô tả một giao dịch hoán đổi token {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### Các trường hiển thị {#display-fields} + +- **`intent`** — **(Bắt buộc)** Một mô tả ngắn gọn, thân thiện với người dùng về hành động, chẳng hạn như "Hoán đổi". +- **`interpolatedIntent`** — **(Được khuyến nghị)** Một mẫu câu phong phú hơn nhúng các giá trị trường đã được định dạng, chẳng hạn như `"Swap {amountIn} for at least {amountOutMin}"`. Bao gồm trường này cùng với `intent` để cung cấp một bộ mô tả thân thiện với người dùng hơn nữa mà các ví có thể chọn hiển thị tùy thuộc vào bất kỳ ràng buộc hiển thị nào. +- **`fields`** — **(Bắt buộc)** Danh sách có thứ tự các trường giao dịch mà ví nên hiển thị cho người dùng. + - **`path`** — **(Bắt buộc)** Một tham chiếu đến dữ liệu giao dịch. `#.fieldName` trỏ đến một tham số dữ liệu lệnh gọi đã được giải mã theo tên trong ABI. `@.value` đề cập đến giá trị ETH được gửi kèm theo giao dịch. + - **`label`** — **(Bắt buộc)** Nhãn dễ đọc được hiển thị bên cạnh giá trị. + - **`format`** — **(Được khuyến nghị)** Kiểm soát cách giá trị sẽ được hiển thị. Các định dạng phổ biến bao gồm: + - `tokenAmount` + - `addressName` + - `date` + + Sử dụng `raw` khi không cần định dạng bổ sung. Một số định dạng chấp nhận cấu hình **`params`** bổ sung. Ví dụ: + + - `tokenAmount` có thể sử dụng `tokenPath` để xác định địa chỉ token nào cung cấp số thập phân và siêu dữ liệu mã giao dịch (ticker). + - `date` có thể sử dụng `encoding` để mô tả cách dấu thời gian được mã hóa. + + Nếu định dạng được chọn không yêu cầu thông tin bổ sung, hãy bỏ qua `params`. + +## Bộ mô tả hoàn chỉnh {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## Bước 5: Gửi lên sổ đăng ký {#step-5-submit-to-the-registry} + +[Sổ đăng ký ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) là một kho lưu trữ mở được lưu trữ bởi [Tổ chức Ethereum](/foundation/) với tư cách là một người quản lý trung lập. Bất kỳ ai cũng có thể tự do sao chép (clone) và tự lưu trữ nó — các ví sẽ độc lập quyết định phiên bản sổ đăng ký nào mà họ tin tưởng. + +1. Fork kho lưu trữ trên GitHub +2. Tạo một thư mục tại `registry//` +3. Đặt tệp của bạn vào bên trong đó: `registry/myproject/calldata-mycontract-0_0.json` +4. Cập nhật trường `$schema` thành đường dẫn tương đối được sử dụng trong kho lưu trữ: `"../../specs/erc7730-v2.schema.json"` +5. Mở một pull request + +Khi bạn mở PR, CI sẽ tự động chạy xác thực lược đồ (schema validation), kiểm tra xem các chữ ký hàm có tạo ra các bộ chọn hợp lệ hay không, xác nhận địa chỉ hợp đồng đã được xác minh trên Sourcify và gắn cờ các điểm không nhất quán của ABI. Kết quả kiểm tra xuất hiện trực tiếp trên PR. Những người bảo trì sổ đăng ký sẽ sàng lọc các nội dung gửi lên để tìm các bộ mô tả bị lỗi định dạng hoặc có khả năng gây hại. Việc được đưa vào sổ đăng ký không ngụ ý rằng bộ mô tả đã được kiểm toán hoặc chứng thực. + + + + +**Lưu ý:** Hợp đồng của bạn phải được xác minh trên Sourcify trước khi PR của bạn có thể được chấp nhận. Nếu nó chưa được xác minh, hãy gửi xác minh trước. + + + + +## Điều gì xảy ra sau khi hợp nhất (merge)? {#what-happens-after-merging} + +Tất cả các bộ mô tả trong sổ đăng ký đều mở cho các kiểm toán viên. Sau khi PR của bạn được hợp nhất, bất kỳ kiểm toán viên nào cũng có thể xem xét bộ mô tả của bạn và xuất bản một chứng thực mật mã (theo [ERC-8176](https://github.com/ethereum/ERCs/pull/1576)) để xác nhận tính chính xác của nó. + +Các tín hiệu chứng thực này cho phép các ví áp dụng các chính sách tin cậy của riêng họ — một bộ mô tả có nhiều chứng thực độc lập sẽ có sức nặng hơn một bộ mô tả không có chứng thực nào. Bạn có thể tiếp cận cộng đồng kiểm toán viên thông qua [clearsigning.org](https://clearsigning.org). + +Các ví sẽ chọn sổ đăng ký nào mà họ sẽ hỗ trợ. Khi bộ mô tả của bạn nằm trong sổ đăng ký, các ví hỗ trợ ERC-7730 sẽ bắt đầu tìm nạp nó nếu nó nằm trong sổ đăng ký của họ và sẽ hiển thị dữ liệu dễ đọc khi người dùng tương tác với hợp đồng của bạn. + +## Đọc thêm {#further-reading} + +- [Đặc tả ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) +- [Sổ đăng ký ERC-7730](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — công cụ, trạng thái hệ sinh thái và Quản trị +- [Xác minh hợp đồng Sourcify](https://sourcify.dev) +- [Sáng kiến Bảo mật Nghìn tỷ Đô la (Trillion Dollar Security initiative)](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/zh-tw/developers/tutorials/clear-signing/index.md b/public/content/translations/zh-tw/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..df30709442e --- /dev/null +++ b/public/content/translations/zh-tw/developers/tutorials/clear-signing/index.md @@ -0,0 +1,296 @@ +--- +title: "透過 ERC-7730 為您的協定加入清晰簽署" +description: "了解如何撰寫 ERC-7730 描述檔,讓您的智能合約互動在使用者簽署前,於錢包中顯示人類可讀的詳細資訊。" +author: "赫斯特·布魯克曼" +lang: zh-tw +tags: + - ERC-7730 + - 安全性 + - 簽署 + - 智能合約 + - 錢包 +skill: intermediate +breadcrumb: "清晰簽署" +published: 2026-05-11 +--- + +大多數重大的以太坊漏洞利用都有相同的最後一步:使用者授權了一筆他們無法真正理解的交易。硬體錢包顯示原始的十六進位呼叫資料 (calldata),更糟的是強迫您開啟盲簽 (blind signing)。軟體錢包會顯示解碼後的欄位,但前提是它們認得該合約。當它們不認得時,無論是因為協定是新的、應用程式遭到入侵,還是裝置處於離線狀態,使用者都只能盲簽。 + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) 定義了一種標準的 JSON 格式,用於描述您的合約函式呼叫的*意義*。 + +支援 ERC-7730 的錢包會讀取您的描述檔並顯示: + +> **兌換** +> 發送:1,000 USDC +> 最低接收:0.42 WETH +> 協定:尤尼斯瓦普 (Uniswap) V3 + +或者是一句人類和代理程式都能讀懂的完整句子: + +> 將 1,000 USDC 兌換為至少 0.42 WETH + +而不是一個函式選擇器 (function selector) 和一串原始整數值。 + +這就是[清晰簽署](https://clearsigning.org/)——「所見即所簽 (What You See Is What You Sign)」。本教學將引導您為自己的合約撰寫描述檔、使用官方 CLI 工具進行驗證,並將其提交至開放的註冊表。 + +## 先決條件 {#prerequisites} + +- 熟悉 Solidity 與智能合約 ABI +- 已部署且具備已驗證 ABI 的智能合約(在描述檔被註冊表接受之前,需要通過 [Sourcify](https://sourcify.dev) 驗證) +- 用於驗證 CLI 的 Python 3.12+ +- 基本的 JSON 知識 + +## 什麼是 ERC-7730 描述檔? {#what-is-an-erc-7730-descriptor} + +描述檔是一個包含三個區塊的單一 JSON 檔案: + +| 區塊 | 目的 | +| :---- | :---- | +| `context` | 透過鏈 ID 和地址將描述檔綁定到特定的合約部署 | +| `metadata` | 命名專案並定義可重複使用的常數 | +| `display` | 將每個函式簽章對應到人類可讀的標籤和欄位格式 | + +由於描述檔與合約本身是分開的,您可以為任何現有的協定加入清晰簽署支援,而無需重新部署。錢包會從註冊表中擷取描述檔,並在簽署時使用它們。 + +## 步驟 1:建立檔案骨架 {#step-1-create-the-file-skeleton} + +建立一個名為 `calldata--.json` 的檔案。`calldata-` 前綴告訴註冊表此描述檔涵蓋合約函式呼叫,而不是用於類型化資料 (typed-data) 訊息的 `eip712-`。`descriptorversion` 告訴註冊表描述檔的版本,如果未提供版本,預設為 0。 + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## 步驟 2:撰寫 context 區塊 {#step-2-write-the-context-section} + +`context` 區塊將描述檔綁定到一個或多個合約部署。錢包使用它來將傳入的交易與正確的描述檔進行配對。 + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### Context 欄位 {#context-fields} + +- `context.$id` — 此描述檔文件或部署設定的唯一識別碼。 +- `contract.deployments` — 此描述檔適用的部署集合。 +- `deployments[].chainId` — 部署的 EVM 鏈 ID。請包含您的合約已部署的每一條鏈。 +- `deployments[].address` — 錢包應與此描述檔關聯的合約地址。請使用包含執行邏輯的實作地址。 + +## 步驟 3:撰寫 metadata 區塊 {#step-3-write-the-metadata-section} + +metadata 區塊提供有關此檔案所描述之專案和合約的人類可讀資訊。錢包可能會在簽署期間使用此資訊來顯示協定名稱、連結和其他上下文詳細資訊。 + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### Metadata 欄位 {#metadata-fields} + +- `owner` — 負責此描述檔的專案、協定、組織或維護者。 +- `info.url` — 錢包可能會向使用者顯示以提供額外上下文的權威專案或文件 URL。 +- `contractName` — 此檔案描述的合約或實作名稱,通常與已驗證的原始碼或 ABI 相符。 + +如果您的 ERC-7730 檔案描述的是 ERC-20 合約,您也應該加入一個代幣 (token) 物件。 + +## 步驟 4:撰寫 display formats 區塊 {#step-4-write-the-displayformats-section} + +`display.formats` 物件將函式簽章對應到人類可讀的簽署指示。這就是錢包在使用者授權交易之前向他們顯示您的函式的方式! + +每個鍵 (key) 都是一個人類可讀的 ABI 片段——包含參數名稱和參數類型的函式簽章,必須與它們在您的 ABI 中出現的完全一致。 + + +### 範例:描述代幣兌換 {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### Display 欄位 {#display-fields} + +- **`intent`** — **(必填)** 動作的簡短、使用者友善描述,例如「兌換 (Swap)」。 +- **`interpolatedIntent`** — **(建議)** 嵌入格式化欄位值的更豐富句子範本,例如 `"Swap {amountIn} for at least {amountOutMin}"`。將此與 `intent` 一起包含在內,以提供更使用者友善的描述檔,錢包可以根據任何顯示限制選擇顯示。 +- **`fields`** — **(必填)** 錢包應向使用者顯示的交易欄位排序清單。 + - **`path`** — **(必填)** 交易資料的參考。`#.fieldName` 透過 ABI 中的名稱指向解碼後的呼叫資料參數。`@.value` 則是指隨交易發送的 ETH 值。 + - **`label`** — **(必填)** 顯示在數值旁邊的人類可讀標籤。 + - **`format`** — **(建議)** 控制數值應如何呈現。常見的格式包括: + - `tokenAmount` + - `addressName` + - `date` + + 當不需要額外的格式化時,請使用 `raw`。某些格式接受額外的 **`params`** 設定。例如: + + - `tokenAmount` 可以使用 `tokenPath` 來識別哪個代幣地址提供小數位數和代號中繼資料。 + - `date` 可以使用 `encoding` 來描述時間戳記的編碼方式。 + + 如果所選格式不需要額外資訊,請省略 `params`。 + +## 完整的描述檔 {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## 步驟 5:提交至註冊表 {#step-5-submit-to-the-registry} + +[ERC-7730 註冊表](https://github.com/ethereum/clear-signing-erc7730-registry) 是一個由[以太坊基金會](/foundation/)作為中立管理者所託管的開放儲存庫。任何人都可以自由複製 (clone) 並自行託管——錢包會獨立決定他們信任哪些註冊表實例。 + +1. 在 GitHub 上分叉 (Fork) 該儲存庫 +2. 在 `registry//` 建立一個資料夾 +3. 將您的檔案放入其中:`registry/myproject/calldata-mycontract-0_0.json` +4. 將 `$schema` 欄位更新為儲存庫內使用的相對路徑:`"../../specs/erc7730-v2.schema.json"` +5. 開啟拉取請求 (Pull Request) + +當您開啟 PR 時,CI 會自動執行結構描述 (schema) 驗證、檢查函式簽章是否產生有效的選擇器、確認合約地址已在 Sourcify 上驗證,並標記 ABI 不一致之處。檢查結果會內嵌顯示在 PR 上。註冊表維護者會篩選格式錯誤或潛在惡意的描述檔提交。被納入註冊表並不代表經過稽核或背書。 + + + + +**注意:** 您的合約必須在 Sourcify 上驗證後,您的 PR 才能被接受。如果尚未驗證,請先提交驗證。 + + + + +## 合併後會發生什麼事? {#what-happens-after-merging} + +註冊表中的所有描述檔都對稽核員開放。在您的 PR 合併後,任何稽核員都可以審查您的描述檔,並發布密碼學證明(根據 [ERC-8176](https://github.com/ethereum/ERCs/pull/1576))以確認其準確性。 + +這些證明訊號讓錢包能夠套用自己的信任策略——擁有多個獨立證明的描述檔比沒有證明的描述檔更具份量。您可以透過 [clearsigning.org](https://clearsigning.org) 聯絡稽核員社群。 + +錢包會選擇他們將支援哪個註冊表。一旦您的描述檔進入註冊表,支援 ERC-7730 的錢包如果其註冊表中包含該描述檔,就會開始擷取它,並在使用者與您的合約互動時顯示人類可讀的資料。 + +## 延伸閱讀 {#further-reading} + +- [ERC-7730 規格](https://eips.ethereum.org/EIPS/eip-7730) +- [ERC-7730 註冊表](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — 工具、生態系狀態與治理 +- [Sourcify 合約驗證](https://sourcify.dev) +- [兆元安全倡議 (Trillion Dollar Security initiative)](https://trilliondollarsecurity.org) \ No newline at end of file diff --git a/public/content/translations/zh/developers/tutorials/clear-signing/index.md b/public/content/translations/zh/developers/tutorials/clear-signing/index.md new file mode 100644 index 00000000000..f84cea6c4be --- /dev/null +++ b/public/content/translations/zh/developers/tutorials/clear-signing/index.md @@ -0,0 +1,291 @@ +--- +title: "使用 ERC-7730 为你的协议添加明文签名" +description: "了解如何编写 ERC-7730 描述符,以便在用户签名前,你的智能合约交互能在钱包中显示人类可读的详细信息。" +author: "海斯特·布鲁克曼" +lang: zh +tags: ["ERC-7730", "安全", "签名", "智能合约", "钱包"] +skill: intermediate +breadcrumb: "明文签名" +published: 2026-05-11 +--- + +大多数重大的以太坊漏洞利用都有相同的最后一步:用户授权了一笔他们无法真正理解的交易。硬件钱包显示原始的十六进制调用数据,更糟糕的是,它们迫使你开启盲签。软件钱包会显示解码后的字段,但前提是它们能识别该合约。当它们无法识别时(无论是因为协议是新的、应用程序被攻破,还是设备离线),用户只能盲签。 + +[ERC-7730](https://eips.ethereum.org/EIPS/eip-7730) 定义了一种标准的 JSON 格式,用于描述你的合约函数调用的*含义*。 + +支持 ERC-7730 的钱包会读取你的描述符并显示: + +> **兑换** +> 发送:1,000 USDC +> 最低接收:0.42 WETH +> 协议:尤尼斯瓦普 V3 (Uniswap V3) + +或者是一句人类和代理都能读懂的完整句子: + +> 将 1,000 USDC 兑换为至少 0.42 WETH + +而不是一个函数选择器和一堆原始整数值。 + +这就是[明文签名](https://clearsigning.org/)——“所见即所签”。本教程将引导你为自己的合约编写描述符,使用官方 CLI 工具进行验证,并将其提交到开放注册表。 + +## 前提条件 {#prerequisites} + +- 熟悉 Solidity 和智能合约 ABI +- 一个已部署且具有已验证 ABI 的智能合约(在描述符被注册表接受之前,需要进行 [Sourcify](https://sourcify.dev) 验证) +- 用于验证 CLI 的 Python 3.12+ +- 基本的 JSON 知识 + +## 什么是 ERC-7730 描述符? {#what-is-an-erc-7730-descriptor} + +描述符是一个包含三个部分的单一 JSON 文件: + +| 部分 | 目的 | +| :---- | :---- | +| `context` | 通过链 ID 和地址将描述符绑定到特定的合约部署 | +| `metadata` | 命名项目并定义可重用的常量 | +| `display` | 将每个函数签名映射到人类可读的标签和字段格式 | + +由于描述符与合约本身是分离的,你可以为任何现有协议添加明文签名支持,而无需重新部署。钱包从注册表中检索描述符,并在签名时使用它们。 + +## 第 1 步:创建文件骨架 {#step-1-create-the-file-skeleton} + +创建一个名为 `calldata--.json` 的文件。`calldata-` 前缀告诉注册表此描述符涵盖合约函数调用,而不是用于类型化数据消息的 `eip712-`。`descriptorversion` 告诉注册表描述符文件的版本,如果未提供版本,则默认为 0。 + + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": {}, + "metadata": {}, + "display": { + "formats": {} + } +} +``` + +## 第 2 步:编写上下文部分 {#step-2-write-the-context-section} + +`context` 部分将描述符绑定到一个或多个合约部署。钱包使用它来将传入的交易与正确的描述符进行匹配。 + +```json +"context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { "chainId": 1, "address": "0xYourContractAddressOnMainnet" }, + { "chainId": 137, "address": "0xYourContractAddressOnPolygon" } + ] + } +} +``` + +### 上下文字段 {#context-fields} + +- `context.$id` — 此描述符文档或部署配置的唯一标识符。 +- `contract.deployments` — 此描述符适用的部署集合。 +- `deployments[].chainId` — 部署的 EVM 链 ID。包括你的合约部署的每条链。 +- `deployments[].address` — 钱包应与此描述符关联的合约地址。使用包含执行逻辑的实现地址。 + +## 第 3 步:编写元数据部分 {#step-3-write-the-metadata-section} + +元数据部分提供有关此文件描述的项目和合约的人类可读信息。钱包可能会在签名期间使用此信息来显示协议名称、链接和其他上下文详细信息。 + +```json +"metadata": { + "owner": "Example Swap Protocol", + "info": { "url": "https://example.xyz" }, + "contractName": "SwapRouter" +} +``` + +### 元数据字段 {#metadata-fields} + +- `owner` — 负责此描述符的项目、协议、组织或维护者。 +- `info.url` — 钱包可能向用户显示的规范项目或文档 URL,以提供额外的上下文。 +- `contractName` — 此文件描述的合约或实现名称,通常与已验证的源代码或 ABI 匹配。 + +如果你的 ERC-7730 文件描述的是一个 ERC-20 合约,你也应该添加一个代币对象。 + +## 第 4 步:编写显示格式部分 {#step-4-write-the-displayformats-section} + +`display.formats` 对象将函数签名映射到人类可读的签名指令。这就是钱包在用户授权交易之前向用户显示你的函数的方式! + +每个键都是一个人类可读的 ABI 片段——包含参数名称和参数类型的函数签名,与它们在你的 ABI 中出现的方式完全一致。 + + +### 示例:描述代币兑换 {#eg-describing-token-swap} + +```json +"display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } +} + +``` + +### 显示字段 {#display-fields} + +- **`intent`** — **(必填)** 操作的简短、用户友好的描述,例如“兑换”。 +- **`interpolatedIntent`** — **(推荐)** 嵌入格式化字段值的更丰富的句子模板,例如 `"Swap {amountIn} for at least {amountOutMin}"`。将其与 `intent` 一起包含,以提供更用户友好的描述符,钱包可以根据任何显示限制选择显示。 +- **`fields`** — **(必填)** 钱包应向用户显示的交易字段的有序列表。 + - **`path`** — **(必填)** 对交易数据的引用。`#.fieldName` 指向按 ABI 中名称解码的调用数据参数。`@.value` 指随交易发送的 ETH 值。 + - **`label`** — **(必填)** 显示在值旁边的人类可读标签。 + - **`format`** — **(推荐)** 控制应如何渲染该值。常见格式包括: + - `tokenAmount` + - `addressName` + - `date` + + 当不需要额外的格式化时,使用 `raw`。某些格式接受额外的 **`params`** 配置。例如: + + - `tokenAmount` 可以使用 `tokenPath` 来识别哪个代币地址提供小数位数和代码元数据。 + - `date` 可以使用 `encoding` 来描述时间戳的编码方式。 + + 如果所选格式不需要额外信息,请省略 `params`。 + +## 完整的描述符 {#the-complete-descriptor} + +```json +{ + "$schema": "https://eips.ethereum.org/assets/eip-7730/erc7730-v2.schema.json", + "context": { + "$id": "uniswap-v3-router-mainnet", + "contract": { + "deployments": [ + { + "chainId": 1, + "address": "0xYourContractAddressOnMainnet" + }, + { + "chainId": 137, + "address": "0xYourContractAddressOnPolygon" + } + ] + } + }, + "metadata": { + "owner": "Example Swap Protocol", + "info": { + "url": "https://example.xyz" + }, + "contractName": "SwapRouter" + }, + "display": { + "formats": { + "swapExactTokensForTokens(uint256 amountIn,uint256 amountOutMin,address[] path,address to,uint256 deadline)": { + "intent": "Swap", + "interpolatedIntent": "Swap {amountIn} for at least {amountOutMin}", + "fields": [ + { + "path": "#.amountIn", + "label": "Send", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[0]" + } + }, + { + "path": "#.amountOutMin", + "label": "Receive minimum", + "format": "tokenAmount", + "params": { + "tokenPath": "#.path[1]" + } + }, + { + "path": "#.to", + "label": "Recipient", + "format": "addressName", + "params": { + "types": ["eoa", "contract"], + "sources": ["local", "ens"] + } + }, + { + "path": "#.deadline", + "label": "Expires", + "format": "date", + "params": { + "encoding": "timestamp" + } + } + ] + } + } + } +} +``` + +## 第 5 步:提交到注册表 {#step-5-submit-to-the-registry} + +[ERC-7730 注册表](https://github.com/ethereum/clear-signing-erc7730-registry)是一个由[以太坊基金会](/foundation/)作为中立管理者托管的开放存储库。任何人都可以自由克隆并自行托管它——钱包独立决定它们信任哪些注册表实例。 + +1. 在 GitHub 上复刻 (Fork) 该存储库 +2. 在 `registry//` 处创建一个文件夹 +3. 将你的文件放入其中:`registry/myproject/calldata-mycontract-0_0.json` +4. 将 `$schema` 字段更新为存储库中使用的相对路径:`"../../specs/erc7730-v2.schema.json"` +5. 开启一个拉取请求 (Pull request) + +当你开启 PR 时,CI 会自动运行模式验证,检查函数签名是否生成有效的选择器,确认合约地址已在 Sourcify 上验证,并标记 ABI 不一致之处。检查结果会内联显示在 PR 上。注册表维护者会筛选提交的内容,以查找格式错误或潜在恶意的描述符。包含在注册表中并不意味着经过审计或认可。 + + + + +**注意:** 你的合约必须在 Sourcify 上验证后,你的 PR 才能被接受。如果尚未验证,请先提交验证。 + + + + +## 合并后会发生什么? {#what-happens-after-merging} + +注册表中的所有描述符都对审计员开放。在你的 PR 合并后,任何审计员都可以审查你的描述符并发布加密证明(根据 [ERC-8176](https://github.com/ethereum/ERCs/pull/1576))以确认其准确性。 + +这些证明信号让钱包能够应用自己的信任策略——具有多个独立证明的描述符比没有证明的描述符更有分量。你可以通过 [clearsigning.org](https://clearsigning.org) 联系审计员社区。 + +钱包选择它们将支持的注册表。一旦你的描述符进入注册表,支持 ERC-7730 的钱包如果其注册表中包含该描述符,就会开始获取它,并在用户与你的合约交互时显示人类可读的数据。 + +## 延伸阅读 {#further-reading} + +- [ERC-7730 规范](https://eips.ethereum.org/EIPS/eip-7730) +- [ERC-7730 注册表](https://github.com/ethereum/clear-signing-erc7730-registry) +- [clearsigning.org](https://clearsigning.org) — 工具、生态系统状态和治理 +- [Sourcify 合约验证](https://sourcify.dev) +- [万亿美元安全倡议 (Trillion Dollar Security initiative)](https://trilliondollarsecurity.org) \ No newline at end of file