Viction
  • Getting Started
  • General
    • Overview
    • Viction Blockchain
      • PoSV Consensus
      • Comparison
    • Staking
      • Staking Requirements
      • Staking Rewards
      • How to stake on Viction Wallet
    • Network Information
      • Viction Mainnet
      • Viction Testnet
    • Viction RPC API
  • Smart Contract Development
    • Solidity
      • A Simple Smart Contract
      • Solidity by Example
    • Standards & Specification
      • VRC25 Specification
      • VRC725 Specification
    • IDEs and Tools
      • Remix
      • Ethers.js
      • web3.js
      • thirdweb CLI
    • Deployment & Verification
      • Hardhat
      • Foundry
  • DApp Development
    • Integration
      • Exchange/Wallet integration
      • VRC25 Exchange/Wallet integration
      • Viction Staking Governance
      • VIC ZeroGas
      • VRRF
    • Data and analytics
    • Embedded Wallet (MPC)
    • Walkthrough: Build a Dapp on Viction
      • Setup Environment
      • Write the Smart Contract
      • Interacting with the Dapp in a browser
  • Masternode
    • Requirements
    • Run a Full Node
      • Binary
      • Create a Viction Masternode
      • Tmn
      • Docker
    • Apply Your Node
    • Slashing Mechanism
    • Chain Data Snapshots
    • Troubleshooting
  • Viction Wallet
    • User Guide
      • Authentication
      • How to create a new wallet
      • How to restore a wallet?
      • Wallet settings
      • Send & Receive Tokens
      • Add custom token
      • Manage Tokens
      • Send NFT
      • General settings
    • Developer Guide
    • Privacy Policy
    • Term and Services
  • Viction Bridge
    • Spacegate
    • Arken Bridge
    • Hyperlane
  • Viction Data Availability
    • Viction DA RPC API
    • DA Integration Use cases
      • Simple Guide for Integrating OP Stack Rollup with Viction DA Layer
  • How to
    • How to Connect to Viction Blockchain
      • Coin98 Super Wallet
      • Metamask
      • Ledger
    • How to troubleshoot when the node is up but couldn't begin to sync block
    • How to Vote for Viction Saigon Network Upgrade Proposal
    • How to issue a token via VICIssuer
    • How to verify if a contract has been issued via VICIssuer
    • How to deploy the VRC725 contract
    • How to apply ZeroGas for VRC725 contract
    • How to Migrate Dapps from Ethereum
    • How to register Token or NFT logo on Vicscan
    • How to verify a contract on Vicscan
    • How to confirm a project on Vicscan
    • How to check if a token is gas sponsored on Viction
    • How to verify gas sponsored transactions
    • How to create Telegram Mini Apps
    • How to use VictionSafe (Multisig)
  • FAQ
    • APIs
    • General
      • Viction
      • Ecosystem
      • VIC - Economics
      • Contact & Support
    • Masternodes and Voting
      • Masternodes
      • Voter
    • Products
      • VicScan (Explorer)
      • VicMaster
      • VicStats
      • VicIssuer
        • How to Verify & Publish Contract Source Code on VicScan
      • Viction Wallet
      • Viction Data Availability Network
  • Legal
    • Terms of Use
    • Privacy Policy
  • Whitepaper and Research
  • Archive
    • TOMOE
    • How to Deploy a VRC25 Token on Viction
    • How to deploy an ICO smart contract on Viction
    • How to deploy an NFT token
    • An Example of Building a Dapp on Viction
    • Migrate Ethereum Dapp to Viction
    • TomoMasterDAO
      • Introduction
      • Governance model
        • On-Chain vs Off-Chain Voting
        • Board
        • Proposals
        • Voting and Outcome
      • Tokenomics
      • How to utilize and trade tDAO
      • Proposal guidelines for TomoMasterDAO
    • Old Viction Testnet
    • Deploy on Viction
      • CLI Commands
      • Viction Private Testnet Setup
Powered by GitBook
On this page
  • About
  • Solidity in Viction
  • Example
  1. Smart Contract Development

Solidity

This page is a reduced version of the Solidity docs site that is adapted to Viction network to avoid overwhelming information.

PreviousSmart Contract DevelopmentNextA Simple Smart Contract

Last updated 8 months ago

About

Solidity is a contract-oriented, high-level language for implementing smart contracts. It was influenced by Python and JavaScript and is designed to target the Ethereum Virtual Machine (EVM) both Ethereum and Viction.

Solidity is statically typed, supports inheritance, libraries and complex user-defined types among other features.

Solidity in Viction

Viction support Solidity compiler version <=0.8.17, which targets London hardfork in Ethereum. However, due the fee mechanism in Viction, BASEFEE opcode is unused and not supported by the runtime.

For Solidity compiler version >=0.8.18, you may still compile and deploy to Viction. However, use it at your own risk.

The table below describes all the opcodes that isn't available in Viction:

Opcode
Description

BASEFEE

TLOAD

This opcode using for Access List Transaction Type, which hasn’t have any implement for now

TSTORE

This opcode using for Access List Transaction Type

PUSH0

This opcode pushes the constant value 0 onto the stack. It is generated in Solidity version 0.8.20 or higher.

INVALID

Improve the traces process.

BLOBHASH

Which is specific to DankSharing hardfork.

Example

As you will see, it is possible to create contracts for voting, crowdfunding, blind auctions, multi-signature wallets and more.

The best way to try out Solidity right now is using (it can take a while to load, please be patient). Remix is a web browser-based IDE that allows you to write Solidity smart contracts, then deploy and run the smart contracts.

The last and most extensive section will cover all aspects of Solidity in depth.

hello.sh
# Ain't no code for that yet, sorry
echo 'You got to trust me on this, I saved the world'

Return base fee of block, this using for on London hardfork.

Once you're strong enough, on the next pages, we will first see a written in Solidity followed by the basics about and the .

The next section will explain several features of Solidity by giving useful . Remember that you can always try out the contracts !

If you still have questions, you can try searching or asking on the site, or come to our . Ideas for improving Solidity or this documentation are always welcome! the world:

Remix
simple smart contract
blockchains
Ethereum Virtual Machine
example contracts
in your browser
Ethereum Stackexchange
Gitter channel
https://eips.ethereum.org/EIPS/eip-1559