pub const LINERA_SOL: &str = "// Copyright (c) Zefchain Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\npragma solidity ^0.8.0;\n\n// Precompile keys:\n// 0: try_call_application\n// 1: try_query_application\n\nlibrary Linera {\n function try_call_application(bytes32 universal_address, bytes memory operation) internal returns (bytes memory) {\n address precompile = address(0x0b);\n bytes1 input1 = bytes1(uint8(0));\n bytes memory input2 = abi.encodePacked(input1, universal_address, operation);\n (bool success, bytes memory output) = precompile.call(input2);\n require(success);\n return output;\n }\n\n function try_query_application(bytes32 universal_address, bytes memory argument) internal returns (bytes memory) {\n address precompile = address(0x0b);\n bytes1 input1 = bytes1(uint8(1));\n bytes memory input2 = abi.encodePacked(input1, universal_address, argument);\n (bool success, bytes memory output) = precompile.call(input2);\n require(success);\n return output;\n }\n\n}\n";
Expand description
The linera.sol
library code to be included in solidity smart
contracts using Linera features.