mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-03-30 15:08:33 +00:00
[NOD-244] Don't validate subnetwork registry transactions when they are being registered (#354)
This commit is contained in:
parent
2147d16c1f
commit
54b681460d
@ -28,15 +28,12 @@ func newSubnetworkStore(db database.DB) *SubnetworkStore {
|
||||
// subnetwork based on it.
|
||||
// This function returns an error if one or more transactions are invalid
|
||||
func registerSubnetworks(dbTx database.Tx, txs []*util.Tx) error {
|
||||
validSubnetworkRegistryTxs := make([]*wire.MsgTx, 0)
|
||||
subnetworkRegistryTxs := make([]*wire.MsgTx, 0)
|
||||
for _, tx := range txs {
|
||||
msgTx := tx.MsgTx()
|
||||
|
||||
if msgTx.SubnetworkID.IsEqual(subnetworkid.SubnetworkIDRegistry) {
|
||||
err := validateSubnetworkRegistryTransaction(msgTx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
validSubnetworkRegistryTxs = append(validSubnetworkRegistryTxs, msgTx)
|
||||
subnetworkRegistryTxs = append(subnetworkRegistryTxs, msgTx)
|
||||
}
|
||||
|
||||
if subnetworkid.Less(subnetworkid.SubnetworkIDRegistry, &msgTx.SubnetworkID) {
|
||||
@ -47,7 +44,7 @@ func registerSubnetworks(dbTx database.Tx, txs []*util.Tx) error {
|
||||
}
|
||||
}
|
||||
|
||||
for _, registryTx := range validSubnetworkRegistryTxs {
|
||||
for _, registryTx := range subnetworkRegistryTxs {
|
||||
subnetworkID, err := TxToSubnetworkID(registryTx)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -216,6 +216,13 @@ func CheckTransactionSanity(tx *util.Tx, subnetworkID *subnetworkid.SubnetworkID
|
||||
"registry subnetworks has gas > 0 ")
|
||||
}
|
||||
|
||||
if msgTx.SubnetworkID.IsEqual(subnetworkid.SubnetworkIDRegistry) {
|
||||
err := validateSubnetworkRegistryTransaction(msgTx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
if msgTx.SubnetworkID.IsEqual(subnetworkid.SubnetworkIDNative) &&
|
||||
len(msgTx.Payload) > 0 {
|
||||
|
||||
@ -223,14 +230,6 @@ func CheckTransactionSanity(tx *util.Tx, subnetworkID *subnetworkid.SubnetworkID
|
||||
"transaction in the native subnetwork includes a payload")
|
||||
}
|
||||
|
||||
if msgTx.SubnetworkID.IsEqual(subnetworkid.SubnetworkIDRegistry) &&
|
||||
len(msgTx.Payload) != 8 {
|
||||
|
||||
return ruleError(ErrInvalidPayload,
|
||||
"transaction in the subnetwork registry include a payload "+
|
||||
"with length != 8 bytes")
|
||||
}
|
||||
|
||||
// If we are a partial node, only transactions on built in subnetworks
|
||||
// or our own subnetwork may have a payload
|
||||
isLocalNodeFull := subnetworkID == nil
|
||||
|
Loading…
x
Reference in New Issue
Block a user