مواد پر جائیں
AtheronLABS

آپ کا ملک: ریاست ہائے متحدہ امریکہ۔ قیمتیں امریکی ڈالر میں دکھائی جا رہی ہیں۔ درست نہیں؟

labs@atheron:⁨~/open-source/lens⁩$ ⁨lens scan ./contracts⁩

⁨Atheron Lens⁩

ڈیپلائے سے پہلے کنٹریکٹ کی خامیاں پکڑیں۔

اسمارٹ کنٹریکٹس کے لیے ایک اوپن سورس اسٹیٹک تجزیہ کار۔ یہ آپ کا کوڈ پڑھتا ہے، وہ خامیاں نمایاں کرتا ہے جو آڈیٹر سب سے زیادہ پاتے ہیں، اور ہر ایک کو ٹھیک کرنے کا طریقہ بتاتا ہے۔

// صورتحال

تیاری میں۔

⁨Lens⁩ ابھی بن رہا ہے۔ سورس کوڈ لانچ پر ⁨GitHub⁩ پر کھلے گا، اور اسی دن اس صفحے پر لنک آ جائے گا۔

سورس کوڈ
لانچ پر کھلے گا
لائسنس
⁨Apache-2.0⁩ اور ⁨MIT⁩
کمانڈ
lens

// یہ کیا کرتا ہے

ہر کمٹ پر ایک اور نظر۔

⁨Lens⁩ آپ کے کنٹریکٹس کو چلائے بغیر جانچتا ہے۔ یہ خطرے کے معلوم نمونے تلاش کرتا ہے اور ہر نتیجہ بتاتا ہے: وہ کہاں ہے، کیوں اہم ہے، اور اسے ٹھیک کرنے کا اشارہ۔

  • پہلے ورژن میں تقریباً ۲۵ مؤثر جانچیں: ری اینٹرنسی، بغیر جانچی کالز، رسائی کا کنٹرول، ⁨tx.origin⁩، ⁨delegatecall⁩ اور پراکسیز، انیشیلائزرز، درستی، دستخط کا دوبارہ استعمال، بے ترتیبی، اوریکل میں ہیرا پھیری، اور گیس کے ذریعے سروس کی بندش۔
  • ⁨GitHub⁩ کوڈ اسکیننگ کے لیے ⁨SARIF⁩ میں رپورٹیں، اور لوگوں کے لیے ⁨Markdown⁩ میں۔
  • ہر پلیٹ فارم کے لیے ایک ہی فائل، اتنی تیز کہ بڑا منصوبہ چند سیکنڈ میں جانچ لے۔
  • جانچ کے دوران کوئی نیٹ ورک کال نہیں۔ آپ کا کوڈ آپ کی مشین پر رہتا ہے۔

// کس کے لیے

ہر اس شخص کے لیے جو کنٹریکٹ جاری کرتا ہے۔

01

کنٹریکٹ ڈیولپرز

ہر بار محفوظ کرنے یا کمٹ پر، واضح خامیاں خود پکڑیں، کسی جائزہ کار سے پہلے۔

02

آڈٹ سے پہلے ٹیمیں

پہلے آسان نتائج نمٹا لیں، تاکہ آڈٹ کا معاوضہ والا وقت مشکل سوالوں پر لگے۔

03

جائزہ کار اور آڈیٹر

کسی کوڈ بیس پر تیز پہلا جائزہ، ایسے نتائج کے ساتھ جنہیں آپ برآمد کر کے ٹریک کر سکیں۔

// زبانیں

کنٹریکٹس کی تمام بڑی زبانیں۔

ایک ہی انجن، ہر زبان ایک ماڈیول کے طور پر۔ پہلا ورژن ⁨EVM⁩ کا احاطہ کرتا ہے؛ باقی اسی ترتیب سے آئیں گی۔

EVM
⁨Solidity⁩ اور ⁨Vyper⁩پہلا ورژن
Rust
⁨Solana⁩ (نیٹو اور ⁨Anchor⁩)، ⁨CosmWasm⁩، ⁨ink!⁩اس کے بعد
Move
⁨Aptos⁩ اور ⁨Sui⁩اس کے بعد
Cairo
⁨Starknet⁩اس کے بعد
WebAssembly
کمپائل شدہ ⁨Wasm⁩ کنٹریکٹس، چاہے کسی بھی زبان سے بنے ہوںاس کے بعد

// فوری آغاز

جانچ کے لیے ایک کمانڈ۔

⁨Lens⁩ ایک کمانڈ لائن ٹول ہے جس کا نام ⁨lens⁩ ہے۔ جو ورژن ہم بنا رہے ہیں اس میں یہ ایسے کام کرتا ہے؛ لانچ سے پہلے تفصیلات بدل سکتی ہیں۔

// کنٹریکٹس کا ایک فولڈر جانچیں

lens scan ./contracts

// ⁨GitHub⁩ کوڈ اسکیننگ کے لیے ⁨SARIF⁩ رپورٹ لکھیں

lens scan ./contracts --format sarif > lens.sarif

// ہر پُل ریکویسٹ پر اسے چلائیں

- name: Atheron Lens
  run: lens scan ./contracts --format sarif > lens.sarif

ہر پلیٹ فارم کے لیے انسٹال کرنے کے مراحل لانچ پر سورس کوڈ کے ساتھ شائع ہوں گے۔

// نمونہ رپورٹ

ایک نتیجہ ایسا دکھتا ہے۔

ایک نتیجے کے لیے ⁨Lens⁩ کی لکھی رپورٹ کا نمونہ۔ کنٹریکٹ اور لائن اس صفحے کے لیے فرضی ہیں۔

HIGH  reentrancy  contracts/Vault.sol:42

  withdraw() sends ETH before it updates balances[msg.sender].
  A contract that calls back into withdraw() can drain the vault.

  fix: update the balance first (checks, effects, interactions),
       or guard withdraw() with a reentrancy lock.

// آپ کے ایڈیٹر میں

ٹائپ کرتے ہی نتائج۔

کمانڈ لائن کے بعد، ⁨Lens⁩ ایک لینگویج سرور کے ذریعے ایڈیٹرز میں آئے گا، اس ترتیب سے:

  • ⁨VS Code⁩، ⁨Marketplace⁩ اور ⁨Open VSX⁩ پر (یوں ⁨Cursor⁩، ⁨Windsurf⁩ اور ⁨VSCodium⁩ میں بھی)
  • ⁨Remix IDE⁩
  • ⁨JetBrains⁩ کے آئی ڈی ای
  • ⁨Neovim⁩، ⁨Zed⁩، ⁨Helix⁩، ⁨Sublime Text⁩ اور ⁨Emacs⁩

// لائسنس

مفت، دو لائسنسوں کے تحت۔

⁨Lens⁩ دوہرے لائسنس، ⁨Apache-2.0⁩ اور ⁨MIT⁩ کے تحت ہے۔ جو آپ کے لیے موزوں ہو، وہ چنیں۔

// مزید ضرورت

ساتھ میں کوئی انسان بھی چاہیے؟

ٹول نمونے پکڑتا ہے۔ ہمارے انجینئر ⁨Lens⁩ سے شروع کر کے آپ کے کنٹریکٹس کا ہاتھ سے جائزہ لے سکتے ہیں۔

⁨Atheron Lens⁩ | ⁨Atheron Network Labs⁩