Solidity is a contract-oriented, high-level programming
language for writing smart contracts which run on Ethereum Virtual Machine.
Solidity language is statically typed and follows object-oriented
principles. It supports inheritance,
libraries and complex user-defined types. Solidity’s syntax is similar to that
of ECMA Script (JavaScript) syntax making it familiar for existing web
developers.
Here is the Hello World solidity code we looked earlier.
pragma solidity ^0.4.14;
contract HelloWorld {
function
greet()
public constant returns (string) {
return "Hello World!";
}
}
Solidity code is compiled to bytecode that is executable on
the EVM. We can use solc, the solidity compiler, or developer editors such as
Visual Studio Code to compile and generate the bytecode. Here is the bytecode
for the above Hello World sample.
6060604052341561000c57fe5b5b6101498061001c6000396000f300606060405263ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663cfae3217811461003a575bfe5b341561004257fe5b61004a6100ca565b604080516020808252835181830152835191928392908301918501908083838215610090575b80518252602083111561009057601f199092019160209182019101610070565b505050905090810190601f1680156100bc5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6100d261010b565b5060408051808201909152600c81527f48656c6c6f20576f726c6421000000000000000000000000000000000000000060208201525b90565b604080516020810190915260008152905600a165627a7a723058205168b085c257b42e405c11a8e900935fd85bd351767a3ed78211b54b7c6df2e10029
Solidity also uses an application binary interface (ABI).
ABI defines the structure and methods used in the contract. Ethereum internally
uses ABI for encoding and decoding data into and out of transactions. We can
use this ABI during contract deploying and also to decode the data passed with transactions.
Here is the ABI for our Hello World code.
[{"constant":true,"inputs":[],"name":"greet","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"}]
No comments:
Post a Comment