Project अवलोकन और root directory file structure
जब आपtenderly actions init command चलाते हैं, तो Tenderly CLI आवश्यक files के साथ एक actions root directory बनाएगा। default रूप से, actions root directory का नाम actions होता है।
हालाँकि, आप initialization प्रक्रिया के दौरान एक अलग नाम निर्दिष्ट करने में सक्षम हैं। एक बार initialize होने के बाद, root directory का नाम अभी भी folder name और tenderly.yaml file के भीतर sources field को बदलकर समायोजित किया जा सकता है।
TypeScript-आधारित Web3 Actions project structure का एक उदाहरण:
example
actions/example.ts: default रूप से, इस file में सभी Web3 Actions होती हैं।tenderly.yaml: यह एक configuration file है जो project में सभी Web3 Actions के लिए सेटिंग्स निर्दिष्ट करती हैtenderly-schema.json: स्वचालित रूप से उत्पन्न JSON Schema जोtenderly.yamlके लिए IDE validation और autocomplete सक्षम करता है,tenderly-schema.jsonको हाथ से edit न करें
tenderly.yaml file संरचना
tenderly.yaml file में Tenderly project और सभी Web3 Actions के लिए configurations और सेटिंग्स होती हैं।
इस गाइड के प्रयोजन के लिए, पूर्ण उदाहरण tenderly.yaml file इस तरह दिखेगी:
example.yaml
$schema field को tenderly actions init द्वारा स्वचालित रूप से जोड़ा जाता है और यह उत्पन्न tenderly-schema.json file की ओर इंगित करता है। JSON Schema का समर्थन करने वाले IDEs (VS Code, JetBrains) इसका उपयोग tenderly.yaml को edit करते समय autocompletion और inline validation प्रदान करने के लिए करते हैं। schema file को हर बार tenderly actions init चलाने पर भी regenerate किया जाता है। यदि आप इसे commit नहीं करना चाहते हैं तो tenderly-schema.json को अपने .gitignore में जोड़ें।tenderly.yaml को दो प्राथमिक अनुभागों वाला मानें:
- General configuration: वह अनुभाग जिसमें account और project का नाम शामिल है जिससे Web3 Action जुड़ा है।
- Web3 Actions configuration: वह अनुभाग जिसमें Web3 Action के लिए configurations शामिल हैं, अनिवार्य रूप से Tenderly को यह सूचित करते हुए कि इसे कब चलाना चाहिए।
General configuration
general configuration अनुभाग में निम्न key-value pairs शामिल हैं:example.yaml
account_id: आपका usernameproject_slug: Web3 Action से जुड़े project का slug (वैकल्पिक, खाली छोड़ा जा सकता है)
Web3 Actions configuration
actions object वह है जहाँ आप अपनी Web3 Actions को परिभाषित करना शुरू करते हैं, जिसमें project settings शामिल हैं, जैसे runtime, sources location, और वास्तविक Web3 Action declaration।
example.yaml
Project निर्दिष्ट करना
Tenderly के भीतर project को विशिष्ट रूप से पहचानने वाली composite key निर्दिष्ट करके शुरू करें।username/project-slug: व्यक्तिगत developers से संबंधित projects के लिए Username और project slugorg-name/project-slug: यदि आपका project किसी organization से संबंधित है तो Organization name और project slug
Tenderly Dashboard में आपके पास पहुँच रखने वाले कई projects के लिए एक ही Web3 Actions project का उपयोग करना संभव है।
runtime को Configure करना
इसके बाद, आपको runtime version और वह directory निर्दिष्ट करने की आवश्यकता है जिसमें आपका Web3 Action code है। इस data का उपयोग Tenderly CLI द्वारा आपके code को bundle और Tenderly की infrastructure पर Web3 Actions runtime में deploy करने के लिए किया जाता है। निम्न सेटिंग्स अनिवार्य हैं:runtime: runtime version। वर्तमान में, हम v2 का समर्थन करते हैं, जो Node 20 के अनुरूप है।sources: Web3 Action source files का location। value एक path होना चाहिए जोtenderly.yamlfile वाले folder के सापेक्ष actions root directory की ओर इंगित करता है। यह उस path से मेल खाना चाहिए जो आपने init command चलाते समय निर्दिष्ट किया था।
web3-actions होगा।
example
यदि आप
sources value बदलते हैं, तो actions root के सापेक्ष निर्दिष्ट path पर एक directory मौजूद होनी चाहिए, और इसमें आपकी Web3 Action functions वाली source files होनी चाहिए।Web3 Actions सेटिंग्स परिभाषित करना
व्यक्तिगत Web3 Actions कोspecs object के तहत declare किया जाता है। आप एक single tenderly.yaml file में कई Web3 Actions declare कर सकते हैं।
प्रत्येक Web3 Action को उस key से शुरू होना चाहिए जो action name (bestActionEver) का प्रतिनिधित्व करती है। action name project level पर unique होना चाहिए और letter से शुरू होना चाहिए जिसके बाद letters, digits, hyphens, या underscores हों (pattern: ^[a-zA-Z][a-zA-Z0-9_-]*$)। यह key यह दर्शाती है कि deploy की गई Web3 Action को Tenderly Dashboard में कैसे नाम दिया गया है और प्रस्तुत किया गया है।
description key को भी शामिल किया जाना चाहिए। description आम तौर पर एक या दो वाक्य होते हैं जो बताते हैं कि Web3 Action क्या करती है।
example.yaml
function key निर्दिष्ट करने की आवश्यकता है जिसे आप चलाना चाहते हैं। Web3 Actions के लिए source code को कई files के बीच विभाजित किया जा सकता है या custom directory structure में nested किया जा सकता है। tenderly.yaml file seamless referencing की अनुमति देती है।
उदाहरण के लिए, actions/very/organized/file.ts में स्थित एक function bestActionEver yaml में इस तरह referenced होगा:
example.yaml
bestActionEver Web3 Action एक बार चलेगी।
example.yaml