← Back to Blog

Arbitrum Stylus Rust Contract Testing Motsu


수정 내역 요약

# 심각도 항목 수정 내용
1 🔴 sol_interface! 바인딩 호출 vault.withdraw(self, Call::new())? 패턴으로 교체. SDK 시그니처 설명 추가
2 🔴 RawCall vs call() API 혼용 call(Call::new().value(value), addr, &calldata)? 자유함수 패턴으로 전면 교체. 두 API 차이를 FAQ에 추가
3 🔴 Motsu Contract<T> 직접 호출 contract.sender(alice).call(\|c\| c.method(...)) 패턴으로 모든 테스트 교체
4 🔴 Raw pointer UB 기반 재진입 테스트 Rc<RefCell<VaultWrapper>> 패턴으로 교체. wrapper_ptr unsafe 블록 완전 제거
5 🔴 Box<dyn Fn()> 이동 후 재사용 Box<dyn FnOnce()>로 변경. 콜백 호출 후 재삽입 코드 제거
6 🟡 OZ v5 변경점 미반영 SafeVault 코드 블록 주석에 OZ v5 _reentrancyGuardEntered() 및 내부 타입 변경 명시
7 🟢 0xd0e30db0 주석 혼란 "no-argument deposit()의 보편적 선택자" 임을 명확히 기술
8 🟢 AI 슬롭 문구 "high-performance smart contracts", "Master... defend...", "meticulous", "directly dictates testability", "Ensure your cross-language WASM architecture is resilient against..." 등 제거

체크리스트 이슈: Pre-deployment 섹션의 RawCall::new().value(amount) 패턴 권장 문구도 올바른 call() free function API로 수정했습니다.

Scan your contract for this vulnerability
Free QuickScan — Unlimited quick scans. No signup required.. No signup required.
Scan a Contract →