# VEP-10: Vite TestNet-PreMainnet Data Migration Plan
# Background
Due to massive optimizations made in blockchain's data structure and consensus algorithm, old transaction data cannot be verified in the pre-mainnet. Therefore, transactions in TestNet will not be retained after the migration, but only account status will be.
# Objectives
- Keep complete account state information
- Ensure consensus works smoothly when pre-mainnet launches
# Migration Plan
Generate a genesis block on each account involved to store balance, contract states and other information that should be migrated. Then snapshot these genesis account blocks into a genesis snapshot block.
# User Account
User account status includes account balance and un-received transactions.
- Balance is directly saved
- Amounts of all un-received transactions are summed up and added into account balance
- Only balances of VITE and VCP are retained
# Contract Account
Contract account status includes contract information (code, delegated consensus group that the contract belongs to), contract states (contract storage), contract account balance and un-received transactions.
# Built-in Contracts
- Balance is directly saved
- Amounts of all un-received transactions are returned to original accounts
- Only balances of VITE and VCP are retained
Staking contract (address vite_0000000000000000000000000000000000000003f6af7459b9
)
- Retain all staking information with new expiration height 1 (can be retrieved immediately after the pre-mainnet launches)
Original SBP registration contract, voting contract and consensus group contract are merged into new consensus group contract (address vite_0000000000000000000000000000000000000004d28108e76b
)
- Retain all valid SBP registrations with new registration expiration height 7776000 (about 3 months after pre-mainnet launches)
- Retain all voting information
- Retain all settings in snapshot consensus group and public delegated consensus group
Mintage contract (address vite_000000000000000000000000000000000000000595292d996d
)
- Retain token information for VITE and VCP
- Change VITE to re-issuable
- For other tokens, token issuance fee (1,000 VITE each) is refunded to issuer's account and the relevant token will not be retained
# User-deployed Contracts
- User-deployed contracts will not be retained
- Contract deployment fee (10 VITE each) is refunded to contract creator
- Contract balance is returned to contract creator
- Amounts of all un-received transactions are returned to original accounts
- Only balances of VITE and VCP are retained
# Conclusion
- Consensus state is carried over from TestNet. The snapshot consensus group info and SBP ranking is unchanged
- Account information remain unchanged, including balance, staking, voting, SBP registration and token issuance information
- All user-issued tokens need to be re-minted in pre-mainnet
- All user-deployed smart contracts need to be re-deployed in pre-mainnet