개요
하이레벨 언어인 FunC는 TON에서 스마트 컨트랙트를 프로그래밍하는 데 사용됩니다.
FunC는 도메인에 특화된 C와 유사한 정적 타입의 언어입니다. 다음은 FunC로 작성된 간단한 송금 메서드 예제입니다:
() send_money(slice address, int amount) impure inline {
var msg = begin_cell()
.store_uint(0x10, 6) ;; nobounce
.store_slice(address)
.store_coins(amount)
.end_cell();
send_raw_message(msg, 64);
}
FunC 프로그램은 Fift 어셈블러 코드로 컴파일되어 [TON 가상 머신]에 해당하는 바이트코드를 생성합니다(/learn/tvm-instructions/tvm-overview).
또한 이 바이트코드(실제로는 TON 블록체인의 다른 데이터와 마찬가지로 셀 트리입니다)는 블록체인에서 스마트 컨트랙트를 생성하는 데 사용하거나 TVM의 로컬 인스턴스에서 실행할 수 있습니다.
FunC 요리책
FunC 문서
컴파일러
JS로 컴파일
스마트 컨트랙트 개발과 컴파일을 시작하는 가장 편리하고 빠른 방법은 블루프린트 프레임워크를 사용하는 것입니다. 자세한 내용은 [블루프린트](/개발/스마트 컨트랙트/sdk/자바스크립트) 섹션을 참조하세요.
npm create ton@latest
원본 바이너리로 컴파일
로컬에서 네이티브 TON 컴파일러 FunC를 사용하려면 컴퓨터에 바이너리를 설정해야 합니다. Windows, MacOS(Intel/M1) 및 Ubuntu용 FunC 컴파일러 바이너리는 다음에서 다운로드할 수 있습니다:
동시에 언제든지 다음과 같은 소스에서 바이너리를 만들 수 있습니다:\ FunC 컴파일러 소스 코드(소스에서 컴파일하는 방법 참조).
TON 코스: FunC
톤 블록체인 코스](https://stepik.org/course/176754/)는 톤 블록체인 개발을 위한 종합 가이드입니다.
모듈 4는 FunC 언어와 스마트 컨트랙트 개발을 완전히 다룹니다.
TON 블록체인 코스 확인
튜토리얼
FunC를 사용하여 개발을 시작하기 가장 좋은 곳: 소개
커뮤니티의 전문가들이 친절하게 제공하는 기타 자료도 있습니다:
- Func & 청사진 by @MarcoDaTr0p0je
- 몇 분 안에 FunC 배우기 by @romanovichim
- 톤 헬로 월드: 첫 스마트 컨트랙트 작성을 위한 단계별 가이드
- 톤 헬로 월드: 첫 스마트 컨트랙트 테스트를 위한 단계별 가이드
- 10 FunC 레슨 작성자 @romanovichim, 청사진 사용
- 10 FunC 레슨 (RU) 작성자 @romanovichim, 청사진 사용
- 펀씨 퀴즈 작성자 바딤 - 자가 점검에 좋습니다. 10~15분 정도 소요됩니다. 질문은 주로 FunС에 대한 질문과 TON에 대한 몇 가지 일반적인 질문으로 구성됩니다.
- 펀씨 퀴즈 (RU) 작성자 Vadim - 러시아어로 된 펀씨 퀴즈
콘테스트
콘테스트](https://t.me/toncontests)에 참여하는 것도 FunC를 배울 수 있는 좋은 방법입니다.
학습 목적으로 이전 대회를 공부할 수도 있습니다.
콘테스트 레거시
콘테스트 설명 | 작업 | 솔루션 |
---|---|---|
TSC #5(2023년 12월) | 작업 | |
TSC #4(2023년 9월) | 작업 | 솔루션 |
TSC #3(2022년 12월) | 작업 | 솔루션 |
TSC #2(2022년 7월) | 작업 | 솔루션 |
TSC #1(2022년 3월) | 작업 | 솔루션 |
스마트 컨트랙트 예시
지갑, 선거인(TON에서 검증을 관리), 다중 서명 지갑 등과 같은 표준 기본 스마트 컨트랙트는 공부할 때 참고할 수 있습니다.