)
const (
- //define the Max transaction size and Max block size
+ // define the Max transaction size and Max block size
MaxTxSize = uint64(1024)
MaxBlockSzie = uint64(16384)
baseSubsidy = uint64(624000000000)
)
+// define the BTM asset id, the soul asset of Bytom
+var BTMAssetID = &bc.AssetID{
+ V0: uint64(18446744073709551615),
+ V1: uint64(18446744073709551615),
+ V2: uint64(18446744073709551615),
+ V3: uint64(18446744073709551615),
+}
+
// HashToBig converts a *bc.Hash into a big.Int that can be used to
// perform math comparisons.
func HashToBig(hash *bc.Hash) *big.Int {
}
builder := txbuilder.NewBuilder(time.Now())
- builder.AddOutput(legacy.NewTxOutput(*validation.BTMAssetID, amount, cbScript, nil))
+ builder.AddOutput(legacy.NewTxOutput(*consensus.BTMAssetID, amount, cbScript, nil))
_, txData, err := builder.Build()
tx := &legacy.Tx{
TxData: *txData,
package legacy
import (
+ "blockchain/consensus"
"bytes"
"testing"
"github.com/davecgh/go-spew/spew"
"github.com/bytom/protocol/bc"
- "github.com/bytom/protocol/validation"
)
func TestMapTx(t *testing.T) {
Version: 1,
Inputs: []*TxInput{},
Outputs: []*TxOutput{
- NewTxOutput(*validation.BTMAssetID, 800000000000, []byte{1}, nil),
+ NewTxOutput(*consensus.BTMAssetID, 800000000000, []byte{1}, nil),
},
}
oldOut := oldTx.Outputs[0]
package protocol
import (
+ "blockchain/consensus"
"testing"
"github.com/bytom/protocol/bc/legacy"
- "github.com/bytom/protocol/validation"
)
func TestTxPool(t *testing.T) {
oldTx := &legacy.TxData{
SerializedSize: serializedSize,
Outputs: []*legacy.TxOutput{
- legacy.NewTxOutput(*validation.BTMAssetID, amount, []byte{1}, nil),
+ legacy.NewTxOutput(*consensus.BTMAssetID, amount, []byte{1}, nil),
},
}
gasRate = int64(1000)
)
-var BTMAssetID = &bc.AssetID{
- V0: uint64(18446744073709551615),
- V1: uint64(18446744073709551615),
- V2: uint64(18446744073709551615),
- V3: uint64(18446744073709551615),
-}
-
type gasState struct {
gasLeft int64
gasUsed int64
return errWrongCoinbaseTransaction
}
- if *e.WitnessDestination.Value.AssetId != *BTMAssetID {
+ if *e.WitnessDestination.Value.AssetId != *consensus.BTMAssetID {
return errWrongCoinbaseAsset
}
parity[*dest.Value.AssetId] = diff
}
- if amount, ok := parity[*BTMAssetID]; ok {
+ if amount, ok := parity[*consensus.BTMAssetID]; ok {
if err = vs.gas.setGas(amount); err != nil {
return err
}
}
for assetID, amount := range parity {
- if amount != 0 && assetID != *BTMAssetID {
+ if amount != 0 && assetID != *consensus.BTMAssetID {
return errors.WithDetailf(errUnbalanced, "asset %x sources - destinations = %d (should be 0)", assetID.Bytes(), amount)
}
}
package validation
import (
+ "blockchain/consensus"
"fmt"
"math"
"testing"
"github.com/bytom/errors"
"github.com/bytom/protocol/bc"
"github.com/bytom/protocol/bc/legacy"
- "github.com/bytom/protocol/validation"
"github.com/bytom/protocol/vm"
"github.com/bytom/testutil"
func mockCoinbaseTx(amount uint64) *bc.Tx {
return legacy.MapTx(&legacy.TxData{
Outputs: []*legacy.TxOutput{
- legacy.NewTxOutput(*BTMAssetID, amount, []byte{1}, nil),
+ legacy.NewTxOutput(*consensus.BTMAssetID, amount, []byte{1}, nil),
},
})
}
func mockGasTxInput() *legacy.TxInput {
- return legacy.NewSpendInput([][]byte{}, *newHash(8), *validation.BTMAssetID, 100000000, 0, []byte{byte(vm.OP_TRUE)}, *newHash(9), []byte{})
+ return legacy.NewSpendInput([][]byte{}, *newHash(8), *consensus.BTMAssetID, 100000000, 0, []byte{byte(vm.OP_TRUE)}, *newHash(9), []byte{})
}
// Like errors.Root, but also unwraps vm.Error objects.