솔라나 문서코드형 인프라표준 라이브러리

표준 함수

이 함수들은 표준 라이브러리의 일부로 모든 Runbook에서 사용할 수 있습니다.

연산자

기본 수학 및 비교 연산자:

// Addition
output "sum" {
value = 1 + 2 // or std::add(1, 2)
}
// Subtraction
output "diff" {
value = 5 - 3 // or std::minus(5, 3)
}
// Multiplication
output "product" {
value = 4 * 3 // or std::multiply(4, 3)
}
// Division
output "quotient" {
value = 10 / 2 // or std::div(10, 2)
}
// Modulo
output "remainder" {
value = 10 % 3 // or std::modulo(10, 3)
}

해시 함수

// SHA256 hash
output "hash" {
value = std::sha256("hello world")
}
// Keccak256 hash
output "keccak" {
value = std::keccak256("hello world")
}

16진수 함수

// Encode string's raw bytes to hex (returns string with 0x prefix)
output "hex" {
value = std::encode_hex("hello, world")
}
// > hex: 0x68656c6c6f2c20776f726c64
// Decode from hex (returns buffer)
output "decoded" {
value = std::decode_hex("0x68656c6c6f2c20776f726c64")
}
// > decoded: 0x68656c6c6f2c20776f726c64

Base58 함수

// Encode to base58 (accepts buffer or hex string)
output "base58" {
value = std::encode_base58("0x68656c6c6f")
}
// > base58: Cn8eVZg
// Decode from base58 (returns buffer)
output "decoded" {
value = std::decode_base58("Cn8eVZg")
}
// > decoded: 0x68656c6c6f

Base64 함수

// Encode to base64 (accepts buffer or hex string)
output "encoded" {
value = std::encode_base64("0x48656c6c6f20776f726c6421")
}
// > encoded: SGVsbG8gd29ybGQh
// Decode from base64 (returns buffer)
output "decoded" {
value = std::decode_base64("SGVsbG8gd29ybGQh")
}
// > decoded: 0x48656c6c6f20776f726c6421

JSON 함수

// Query JSON with jq syntax
output "message" {
value = std::jq("{ \"message\": \"Hello world!\" }", ".message")
}

리스트 함수

// Get element at index
output "entry" {
value = std::index(['a', 'b', 'c'], 1) // Returns 'b'
}

어설션 함수

// Assert equality
output "check_eq" {
value = std::assert_eq(action.example.result, 1)
}
// Assert not equal
output "check_ne" {
value = std::assert_ne(action.example.result, 0)
}
// Assert greater than / greater than or equal
output "check_gt" {
value = std::assert_gt(action.example.result, 0)
}
// Assert less than / less than or equal
output "check_lt" {
value = std::assert_lt(action.example.result, 100)
}

Is this page helpful?

목차

페이지 편집