A blockchain smart contract is a program deployed in a blockchain network that can be run to generate new data states for the blockchain. Generally speaking, the business logic of smart contract programs needs to be open, transparent, and source code auditable. Blockchain users generate new states of contract related blockchain data by driving the operation of smart contracts through messages or transactions. At present, popular smart contract languages are divided into stack script and Turing complete virtual machine support Scripting language, such as Bitcoin’s P2PKH/P2SH, Ethereum’s Solidity/Vyper, etc.
In theory, there are no specific limitations to the programming language of smart contracts, and the implementation mainly considers cross platform software compatibility. The smart contract language of Hyperchain adopts JavaScript by default, which fully supports the ES2019 syntax specification, 100% passes the ECMAScript test, and supports mathematical extensions: BigInt, BigFloat, Operator overloading, bigint mode, math mode. Compared with other smart contract languages, we choose JavaScript because JavaScript is more mature, stable, widely compatible in Internet applications,a richer toolchain and a more active community and developer community.