Solana 文档基础设施即代码标准库

标准函数

这些函数作为标准库的一部分,在所有 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")
}

十六进制函数

// 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?

Table of Contents

Edit Page
©️ 2026 Solana 基金会版权所有