- Cryptography
- sha256
- basic checks:
- check usage in cell hash computation
- crc32c
- check mistakes in signed/unsigned conversions
- wrong crc32c table
- expected values
- checks in
serialized_boc#b5ee9c72.crc32c:has_crc32c?uint32
- serialization
- deserialization
- checks in
serialized_boc_idx_crc32c#acc3a728.crc32c:uint32
- serialization
- deserialization
- crc32
- check mistakes in signed/unsigned conversions
- wrong crc32 table
- check usage in TL constructor prefixes
- serialization boxed types
- deserialization boxed types
- check usage in TL-B constructor prefixes
- serialization
- deserialization
- check usage in TL constructor prefixes
- crc16
- check mistakes in signed/unsigned conversions
- wrong crc16 table
- basic checks
- check usage in
liteServer.runSmcMethod
function in Lite-API for method names - check usage in user-friendly (base64) address parsing
- hex
- check
UPPER CASE
andlower case
- check invalid characters
- basic checks with expected values
- incomplete hex (
AA_
) aka Fift-hex should be implemented as a separate function that reuses basic hex-function
- check
- ed25519 keypair
- sha256
- BitString
- BitString creation
- BitString concatenation without shifting
- BitString concatenation with shifting
- BitString concatenation with double-shifting
- BitString.toString() on a zero number
- check BitString.size in
0..1023
- BitString assertions for all tests
- from binary == from hex
- from binary toString() == from hex toString()
- from binary toBooleanArray() == from hex toBooleanArray()
- from binary toByteArray() == from hex toByteArray()
- from binary .size == from hex .size
- from binary with the specified size == from hex with the specified size
- created from byte array
- created from boolean array
- Cell
- check
cell.bits.size
in0..1023
- check references count
- check for
ORDINARY(-1)
in0..4
- check for
PRUNED(1)
==0
- check for
LIBRARY_REFERENCE(2)
in1..4
- check for
MERKLE_PROOF(3)
==1
- check for
MERKLE_UPDATE(4)
==2
- check for
- check representation bytes
- check computation of cell hash
- usage of sha256
- check
- CellSlice
- check
.endParse()
throws exception ifbitsPosition != bits.size
- check
.loadRef()
underflow ifrefsPosition > refs.size
- check
.loadBit()
use-cases- check bits overflow if
bitsPosition == bits.size
- check bits overflow if
- check
.loadBits(bits: Int)
use-cases- check bits overflow
- check that
bits
in0..1023
range
- check
.loadInt(bits: Int)
- check bits overflow
- check that
bits
in0..257
range
- check
.loadUint(bits: Int)
- check bits overflow
- check returns positive integer
- check that
bits
in0..257
range
- check
.toString()
returns string inx{FF},2
format where2
equalsrefs.size
- check
- CellBuilder
- check
beginCell().endCell()
equals empty cell - check
beginCell().storeBit(true).endCell()
size equals 1 - check storing BitString with size divide by 8
- check storing BitString with size divide by 4
- check storing BitString with size not divide by 4
- check storing more than 1023 bits
- check storing ints
- check
- Bag-of-Cells
- check Bag-of-Cells (de)serialization equals
- check Bag-of-Cells crc32c checksum calculation
- check that cell offset indexes greater than previous
- check cell references count in
0..4
- check invalid cell reference indexes
- check cell depth less than 1024
- check cell order algorithm. TODO: make unit-tests for illegal cell order
- Addresses
- Coins
- String to BigInt (nanocoins) coins conversion
- BigInt (nanocoins) to string conversion
- Smart Contract interfaces
- Wallet Contracts
- tonweb test-cases
- WalletV1R3
- check expected StateInit cell generation
- check expected address calculation
- check expected non-bounceable address calculation
- check expected bounceable address calculation
- check expected external message cell for initialization generation
- check expected Bag-of-Cell for deploy generation
- check expected external message cell with wallet commentary generation
- check expected Bag-of-Cell for transfer generation
- example usage
- WalletV2R2
- same cases like in WalletV1R3
- WalletV3R2
- same cases like in WalletV1R3
- WalletV4R2
- same cases like in WalletV1R3
- tonweb test-cases
- NFT
- Jettons
- DNS
- Payments
- Wallet Contracts