func (m *Memory) Set32(offset uint64, val *big.Int) {
	if offset+32 > uint64(len(m.store)) {
		panic("invalid memory: store empty")
	}
	copy(m.store[offset:offset+32], []byte{0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0})
	math.ReadBits(val, m.store[offset:offset+32])
}
Set32 sets the 32 bytes starting at offset to the value of val, left-padded with zeros to 32 bytes
package vm
import (
	"fmt"
	"math/big"
	"github.com/Dipper-Labs/Dipper-Protocol/app/v0/vm/common/math"
)
type Memory struct {
	store       []byte
	lastGasCost uint64
}
func NewMemory() *Memory {
	return &Memory{}
}
func (m *Memory) Set(offset, size uint64, value []byte) {
	if size > 0 {
		if offset+size > uint64(len(m.store)) {
			panic("invalid memory: store empty")
		}
		copy(m.store[offset:offset+size], value)
	}
}