본문 바로가기
반응형

TACT6

[Tact] Strings Stringshttps://tact-by-example.org/02-stringsTACT는 strings 을 기본적으로 지원문자열은 유니코드를 지원하며, ‘/n’ 과 같은 특수 이스케이프 문자가 없음.스마트 컨트랙트 내에서 문자열의 사용은 제한적이며, 수정이 불가능하다.특징 3가지문자열의 제한된 사용자금을 관리하기 위한 정확한 프로그램이 때문에, 문자열은 로깅이나 오류 메시지 출력과 같은 용도로만 사용불변성한 번 생성된 문자열은 수정할 수 없음StringBuilder의 활용런타임에서 연결해야할 때, StringBuilder 를 사용한다.StringBuilder는 문자열을 효율적으로 처리하며, 문자열을 추가할 수 있는 append() 메서드를 제공 예제 코드를 살펴보면 아래와 같다.import "@stdl.. 2024. 5. 17.
[Tact] Addresses Addresseshttps://tact-by-example.org/02-addresses 이더리움과 마찬가지로 주소는 기본 데이터 유형 중 하나이다. 주소는 스마트 컨트랙트와 사용자 주소를 식별하는 데 사용된다. 각 스마트 컨트랙트, 사용자 주소는 고유한 값이며, 이를 통해 TON 네트워크 상에서 서로 상호작용하게 된다. 톤은 부하를 분산시키기 위해 워크체인라고 불리는 여러 체인으로 분할되어 있다. 표준 워크체인은 워크체인 ID 가 0인데 이는 일반 사용자의 스마트 컨트랙트와 사용자 계정을 위한 것이며, 워크체인 ID 가 1인 마스터체인은 검증자를 위한 것이다. 마스터체인은 가스비용이 훨씬 더 비싸지만, 보안적으로 훨씬 더 안정적이라는 특징이 있다. 주소는 일반적으로 워크체인 ID 와 계정 ID 로 구성.. 2024. 5. 17.
[Tact] Bools https://tact-by-example.org/02-bools Bools이전에 정수에 대해 살펴봤었는데, 이제는 bools 이다. The bools 는 다른 언어와 마찬가지로 true나 false 의 값을 가질 수 있다. Bool 은 boolean 혹은 logical 연산에 편리하며, 플래그를 저장하는데도 효율적이다.boolean 으로 지원되는 연산은 && || !  이다. bools 는 1 bit 밖에 차지하지 않기 때문에 굉장히 공간 효율적이며, 1000 bools 를 저장하는데 일년에 필요한 비용은 0.00072 TON 정도이다. import "@stdlib/deploy";contract Bools with Deployable { // contract persistent state var.. 2024. 5. 15.
[Tact] Integer Opertaions https://tact-by-example.org/02-integer-ops정수 연산Tact는 정수를 사용한 모든 런타임 계산을 257 비트에서 수행한다. 이 비트의 크기는 큰 수를 다룰 수 있지만, 수학 연산의 결과가 너무 커서 맞지 않으면 오버플로우가 발생할 수 있다. 하지만, 결과가 이 범위를 벗어나게 되면 시스템은 예외를 발생시키고 트랜잭션을 실패시킨다. 이것이 Tact가 안전한 수학 연산을 보장하는 방식이다. 또한, Tact는 서로 다른 크기의 변수를 혼합하여 사용해도 문제가 없도록 설계되었다. 모든 변수는 런타임 시 동일한 유형으로 처리되며, 이는 항상 부호가 있는 257 정수이다. 예를 들어, 달러를 사용한 산술에는 소수점 이하 두 자리가 필요하다. 하지만, 달러를 다룰 때에는 소수점 이하 .. 2024. 5. 15.
[Tact] Simple 카운터 💡 심플 카운터https://tact-by-example.org/01-a-simple-counter 사용자 요청에 따라 값을 1씩 증가시키는 카운터를 아래와 같이 구현했다.get fun 이 getter 함수였다면, receive 가 tact에서는 setter 함수인 듯하다. 처음에 눈으로 훑었을 땐, 솔리디티의 event 를 recieve 로 표현하나 싶었는데 그게 아니였다.contract Counter { // persistent state variable of type Int to hold the counter value val: Int as uint32; // initialize the state variable when contract is deployed init() .. 2024. 5. 7.
[TACT] TON 블록체인 개발을 위한 언어 💡 Tact?Tact는 효율성과 단순성에 초점을 맞춘 TON 블록체인을 위한 프로그래밍 언어이다. Tact를 공부하려다 보니 Solidity 와는 다르게 정보가 가 많이 없다. 최대한 여러 다큐먼트들을 찾아보면서 정리해볼 계획. https://tact-lang.org/ 일단, Tact는 개발자들이 많이 사용하는 Javascript, Typescript, Rust, Swift 와 비슷해 다른 언어를 사용하는 개발자들이 배우기에 어렵지는 않은편으로 일단은 보인다. 아래 예시를 보면, 문법은 모르지만 코드가 이해는 간다.receive("increment") { self.val = self.val + 1; } get fun value(input: Int): Int { return input + se.. 2024. 5. 7.
728x90