diff --git a/builtInFunctions/migrateDataTrie.go b/builtInFunctions/migrateDataTrie.go index 09fe0b3..218a78a 100644 --- a/builtInFunctions/migrateDataTrie.go +++ b/builtInFunctions/migrateDataTrie.go @@ -1,6 +1,7 @@ package builtInFunctions import ( + "bytes" "fmt" "sync" @@ -35,7 +36,7 @@ func NewMigrateDataTrieFunc( accounts: accounts, } - mdt.baseActiveHandler.activeHandler = enableEpochsHandler.IsAutoBalanceDataTriesEnabled + mdt.baseActiveHandler.activeHandler = enableEpochsHandler.IsMigrateDataTrieEnabled return mdt, nil } @@ -64,9 +65,18 @@ func (mdt *migrateDataTrie) ProcessBuiltinFunction( NewVersion: core.AutoBalanceEnabled, TrieMigrator: dtm, } - err = acntDst.AccountDataHandler().MigrateDataTrieLeaves(argsMigrateDataTrie) - if err != nil { - return nil, err + + shouldMigrateAcntDst := bytes.Equal(acntDst.AddressBytes(), vmcommon.SystemAccountAddress) || !vmcommon.IsSystemAccountAddress(acntDst.AddressBytes()) + if shouldMigrateAcntDst { + err = acntDst.AccountDataHandler().MigrateDataTrieLeaves(argsMigrateDataTrie) + if err != nil { + return nil, err + } + } else { + err = mdt.migrateSystemAccount(argsMigrateDataTrie) + if err != nil { + return nil, err + } } vmOutput := &vmcommon.VMOutput{ @@ -77,6 +87,34 @@ func (mdt *migrateDataTrie) ProcessBuiltinFunction( return vmOutput, nil } +func (mdt *migrateDataTrie) migrateSystemAccount(argsMigrateDataTrie vmcommon.ArgsMigrateDataTrieLeaves) error { + account, err := mdt.getExistingAccount(vmcommon.SystemAccountAddress) + if err != nil { + return err + } + + err = account.AccountDataHandler().MigrateDataTrieLeaves(argsMigrateDataTrie) + if err != nil { + return err + } + + return mdt.accounts.SaveAccount(account) +} + +func (mdt *migrateDataTrie) getExistingAccount(address []byte) (vmcommon.UserAccountHandler, error) { + account, err := mdt.accounts.GetExistingAccount(address) + if err != nil { + return nil, err + } + + userAccount, ok := account.(vmcommon.UserAccountHandler) + if !ok { + return nil, ErrWrongTypeAssertion + } + + return userAccount, nil +} + // SetNewGasConfig is called whenever gas cost is changed func (mdt *migrateDataTrie) SetNewGasConfig(gasCost *vmcommon.GasCost) { if gasCost == nil { diff --git a/builtInFunctions/migrateDataTrie_test.go b/builtInFunctions/migrateDataTrie_test.go index 98b52d1..afd567f 100644 --- a/builtInFunctions/migrateDataTrie_test.go +++ b/builtInFunctions/migrateDataTrie_test.go @@ -1,6 +1,7 @@ package builtInFunctions import ( + "bytes" "errors" "math/big" "strings" @@ -24,7 +25,6 @@ func TestNewMigrateDataTrieFunc(t *testing.T) { assert.True(t, check.IfNil(mdtf)) assert.Equal(t, ErrNilEnableEpochsHandler, err) }) - t.Run("nil accountsDB", func(t *testing.T) { t.Parallel() @@ -32,19 +32,18 @@ func TestNewMigrateDataTrieFunc(t *testing.T) { assert.True(t, check.IfNil(mdtf)) assert.Equal(t, ErrNilAccountsAdapter, err) }) - t.Run("should work", func(t *testing.T) { t.Parallel() enableEpochs := &mock.EnableEpochsHandlerStub{ - IsAutoBalanceDataTriesEnabledField: true, + IsMigrateDataTrieEnabledField: true, } mdtf, err := NewMigrateDataTrieFunc(vmcommon.BuiltInCost{}, enableEpochs, &mock.AccountsStub{}) assert.False(t, check.IfNil(mdtf)) assert.Nil(t, err) assert.True(t, mdtf.IsActive()) - enableEpochs.IsAutoBalanceDataTriesEnabledField = false + enableEpochs.IsMigrateDataTrieEnabledField = false assert.False(t, mdtf.IsActive()) }) } @@ -60,7 +59,6 @@ func TestMigrateDataTrie_ProcessBuiltinFunction(t *testing.T) { assert.Nil(t, vmOutput) assert.Equal(t, ErrNilVmInput, err) }) - t.Run("not enough gas provided for at least one migration", func(t *testing.T) { t.Parallel() @@ -79,7 +77,6 @@ func TestMigrateDataTrie_ProcessBuiltinFunction(t *testing.T) { assert.Nil(t, vmOutput) assert.True(t, strings.Contains(err.Error(), "not enough gas")) }) - t.Run("invalid call value", func(t *testing.T) { t.Parallel() @@ -94,13 +91,28 @@ func TestMigrateDataTrie_ProcessBuiltinFunction(t *testing.T) { assert.Nil(t, vmOutput) assert.Equal(t, ErrBuiltInFunctionCalledWithValue, err) }) + t.Run("invalid number of arguments", func(t *testing.T) { + t.Parallel() + input := &vmcommon.ContractCallInput{ + VMInput: vmcommon.VMInput{ + CallValue: big.NewInt(0), + Arguments: [][]byte{[]byte("arg1")}, + }, + } + + mdtf, _ := NewMigrateDataTrieFunc(vmcommon.BuiltInCost{}, &mock.EnableEpochsHandlerStub{}, &mock.AccountsStub{}) + vmOutput, err := mdtf.ProcessBuiltinFunction(mock.NewUserAccount([]byte("sender")), nil, input) + assert.Nil(t, vmOutput) + assert.True(t, errors.Is(err, ErrInvalidNumberOfArguments)) + }) t.Run("nil dest account", func(t *testing.T) { t.Parallel() input := &vmcommon.ContractCallInput{ VMInput: vmcommon.VMInput{ - CallValue: big.NewInt(0), + CallValue: big.NewInt(0), + CallerAddr: []byte("caller"), }, } @@ -109,6 +121,113 @@ func TestMigrateDataTrie_ProcessBuiltinFunction(t *testing.T) { assert.Nil(t, vmOutput) assert.True(t, errors.Is(err, ErrNilSCDestAccount)) }) + t.Run("address is system account address from shard 0", func(t *testing.T) { + t.Parallel() + + migrateCalled := false + saveCalled := false + input := &vmcommon.ContractCallInput{ + VMInput: vmcommon.VMInput{ + CallValue: big.NewInt(0), + CallerAddr: []byte("12345678912345678912345678912345"), + }, + } + systemAcc := &mock.UserAccountStub{ + AccountDataHandlerCalled: func() vmcommon.AccountDataHandler { + return &mock.DataTrieTrackerStub{ + MigrateDataTrieLeavesCalled: func(args vmcommon.ArgsMigrateDataTrieLeaves) error { + migrateCalled = true + return nil + }, + } + }, + } + adb := &mock.AccountsStub{ + GetExistingAccountCalled: func(address []byte) (vmcommon.AccountHandler, error) { + return systemAcc, nil + }, + SaveAccountCalled: func(account vmcommon.AccountHandler) error { + assert.Equal(t, systemAcc, account) + saveCalled = true + return nil + }, + } + + mdtf, _ := NewMigrateDataTrieFunc(vmcommon.BuiltInCost{}, &mock.EnableEpochsHandlerStub{}, adb) + + shard0SystemAccAddr := bytes.Repeat([]byte{255}, 30) + shard0SystemAccAddr = append(shard0SystemAccAddr, []byte{0, 0}...) + vmOutput, err := mdtf.ProcessBuiltinFunction(mock.NewUserAccount([]byte("sender")), mock.NewUserAccount(shard0SystemAccAddr), input) + assert.Nil(t, err) + assert.NotNil(t, vmOutput) + assert.True(t, migrateCalled) + assert.True(t, saveCalled) + }) + t.Run("address is system account address from shard 1", func(t *testing.T) { + t.Parallel() + + migrateCalled := false + input := &vmcommon.ContractCallInput{ + VMInput: vmcommon.VMInput{ + CallValue: big.NewInt(0), + CallerAddr: []byte("12345678912345678912345678912345"), + }, + } + systemAcc := &mock.UserAccountStub{ + AccountDataHandlerCalled: func() vmcommon.AccountDataHandler { + return &mock.DataTrieTrackerStub{ + MigrateDataTrieLeavesCalled: func(args vmcommon.ArgsMigrateDataTrieLeaves) error { + migrateCalled = true + return nil + }, + } + }, + } + adb := &mock.AccountsStub{ + GetExistingAccountCalled: func(address []byte) (vmcommon.AccountHandler, error) { + assert.Fail(t, "should not be called") + return nil, nil + }, + SaveAccountCalled: func(account vmcommon.AccountHandler) error { + assert.Fail(t, "should not be called") + return nil + }, + } + + mdtf, _ := NewMigrateDataTrieFunc(vmcommon.BuiltInCost{}, &mock.EnableEpochsHandlerStub{}, adb) + + vmOutput, err := mdtf.ProcessBuiltinFunction(mock.NewUserAccount([]byte("sender")), systemAcc, input) + assert.Nil(t, err) + assert.NotNil(t, vmOutput) + assert.True(t, migrateCalled) + }) + t.Run("should work", func(t *testing.T) { + t.Parallel() + + migrateCalled := false + input := &vmcommon.ContractCallInput{ + VMInput: vmcommon.VMInput{ + CallValue: big.NewInt(0), + CallerAddr: []byte("sender"), + }, + } + destAcc := &mock.UserAccountStub{ + AccountDataHandlerCalled: func() vmcommon.AccountDataHandler { + return &mock.DataTrieTrackerStub{ + MigrateDataTrieLeavesCalled: func(args vmcommon.ArgsMigrateDataTrieLeaves) error { + migrateCalled = true + return nil + }, + } + }, + } + + mdtf, _ := NewMigrateDataTrieFunc(vmcommon.BuiltInCost{}, &mock.EnableEpochsHandlerStub{}, &mock.AccountsStub{}) + vmOutput, err := mdtf.ProcessBuiltinFunction(mock.NewUserAccount([]byte("sender")), destAcc, input) + assert.Nil(t, err) + assert.NotNil(t, vmOutput) + assert.True(t, migrateCalled) + }) } func TestMigrateDataTrie_SetNewGasConfig(t *testing.T) { @@ -126,10 +245,16 @@ func TestMigrateDataTrie_Concurrency(t *testing.T) { VMInput: vmcommon.VMInput{ CallValue: big.NewInt(0), GasProvided: 10000, + CallerAddr: []byte("sender"), + }, + } + adb := &mock.AccountsStub{ + LoadAccountCalled: func(address []byte) (vmcommon.AccountHandler, error) { + return mock.NewUserAccount(address), nil }, } - mdtf, _ := NewMigrateDataTrieFunc(vmcommon.BuiltInCost{}, &mock.EnableEpochsHandlerStub{}, &mock.AccountsStub{}) + mdtf, _ := NewMigrateDataTrieFunc(vmcommon.BuiltInCost{}, &mock.EnableEpochsHandlerStub{}, adb) numOperations := 1000 wg := sync.WaitGroup{} diff --git a/coverage.txt b/coverage.txt index c837c64..a157f43 100644 --- a/coverage.txt +++ b/coverage.txt @@ -130,6 +130,20 @@ github.com/Dharitri-org/drtg-vm-common/returnCodes.go:26.25,27.31 1 0 github.com/Dharitri-org/drtg-vm-common/returnCodes.go:28.23,29.28 1 0 github.com/Dharitri-org/drtg-vm-common/returnCodes.go:30.23,31.28 1 0 github.com/Dharitri-org/drtg-vm-common/returnCodes.go:32.10,33.52 1 0 +github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:12.30,16.2 1 13 +github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:19.62,25.2 4 107 +github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:29.67,33.9 3 102 +github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:33.9,35.3 1 101 +github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:37.2,39.12 2 102 +github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:43.59,47.2 3 215 +github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:50.45,54.2 3 102 +github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:57.31,62.2 3 4 +github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:65.42,68.27 3 102 +github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:68.27,70.3 1 303 +github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:71.2,73.13 2 102 +github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:77.44,80.34 3 103 +github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:80.34,82.3 1 5159 +github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:83.2,85.15 2 103 github.com/Dharitri-org/drtg-vm-common/parsers/callArgsParser.go:9.42,11.2 1 4 github.com/Dharitri-org/drtg-vm-common/parsers/callArgsParser.go:15.80,20.16 4 5 github.com/Dharitri-org/drtg-vm-common/parsers/callArgsParser.go:20.16,22.3 1 2 @@ -381,20 +395,6 @@ github.com/Dharitri-org/drtg-vm-common/parsers/dataField/utils.go:104.39,105.34 github.com/Dharitri-org/drtg-vm-common/parsers/dataField/utils.go:105.34,106.34 1 315 github.com/Dharitri-org/drtg-vm-common/parsers/dataField/utils.go:106.34,108.4 1 4 github.com/Dharitri-org/drtg-vm-common/parsers/dataField/utils.go:111.2,111.13 1 31 -github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:12.30,16.2 1 13 -github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:19.62,25.2 4 107 -github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:29.67,33.9 3 102 -github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:33.9,35.3 1 101 -github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:37.2,39.12 2 102 -github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:43.59,47.2 3 215 -github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:50.45,54.2 3 102 -github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:57.31,62.2 3 4 -github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:65.42,68.27 3 102 -github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:68.27,70.3 1 303 -github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:71.2,73.13 2 102 -github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:77.44,80.34 3 103 -github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:80.34,82.3 1 5154 -github.com/Dharitri-org/drtg-vm-common/container/mutexMap.go:83.2,85.15 2 103 github.com/Dharitri-org/drtg-vm-common/builtInFunctions/baseAccountGuarder.go:32.86,33.34 1 29 github.com/Dharitri-org/drtg-vm-common/builtInFunctions/baseAccountGuarder.go:33.34,35.3 1 3 github.com/Dharitri-org/drtg-vm-common/builtInFunctions/baseAccountGuarder.go:36.2,36.43 1 26 @@ -1889,32 +1889,45 @@ github.com/Dharitri-org/drtg-vm-common/builtInFunctions/logsAndEvents.go:88.2,88 github.com/Dharitri-org/drtg-vm-common/builtInFunctions/logsAndEvents.go:88.50,90.3 1 1 github.com/Dharitri-org/drtg-vm-common/builtInFunctions/logsAndEvents.go:92.2,95.35 3 3 github.com/Dharitri-org/drtg-vm-common/builtInFunctions/logsAndEvents.go:98.33,100.2 1 4 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:25.29,26.38 1 10 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:26.38,28.3 1 1 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:29.2,29.27 1 9 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:29.27,31.3 1 1 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:33.2,40.17 3 8 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:48.31,52.16 3 504 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:52.16,54.3 1 4 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:56.2,68.16 5 500 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:68.16,70.3 1 0 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:72.2,77.22 2 500 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:81.72,82.20 1 502 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:82.20,84.3 1 0 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:86.2,88.27 3 502 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:91.98,101.2 5 504 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:104.51,106.2 1 4 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:112.9,113.18 1 504 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:113.18,115.3 1 1 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:116.2,116.68 1 503 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:116.68,118.3 1 1 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:119.2,119.36 1 502 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:119.36,121.3 1 1 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:122.2,122.31 1 501 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:122.31,124.3 1 0 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:125.2,125.26 1 501 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:125.26,127.3 1 1 -github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:129.2,129.12 1 500 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:26.29,27.38 1 14 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:27.38,29.3 1 1 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:30.2,30.27 1 13 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:30.27,32.3 1 1 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:34.2,41.17 3 12 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:49.31,53.16 3 508 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:53.16,55.3 1 5 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:57.2,70.26 5 503 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:70.26,72.17 2 502 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:72.17,74.4 1 0 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:75.8,77.17 2 1 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:77.17,79.4 1 0 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:82.2,87.22 2 503 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:90.112,92.16 2 1 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:92.16,94.3 1 0 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:96.2,97.16 2 1 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:97.16,99.3 1 0 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:101.2,101.42 1 1 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:104.101,106.16 2 1 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:106.16,108.3 1 0 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:110.2,111.9 2 1 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:111.9,113.3 1 0 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:115.2,115.25 1 1 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:119.72,120.20 1 502 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:120.20,122.3 1 0 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:124.2,126.27 3 502 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:129.98,139.2 5 508 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:142.51,144.2 1 4 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:150.9,151.18 1 508 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:151.18,153.3 1 1 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:154.2,154.68 1 507 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:154.68,156.3 1 1 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:157.2,157.36 1 506 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:157.36,159.3 1 1 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:160.2,160.31 1 505 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:160.31,162.3 1 1 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:163.2,163.26 1 504 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:163.26,165.3 1 1 +github.com/Dharitri-org/drtg-vm-common/builtInFunctions/migrateDataTrie.go:167.2,167.12 1 503 github.com/Dharitri-org/drtg-vm-common/builtInFunctions/multiDCTNFTTransfer.go:45.33,46.29 1 31 github.com/Dharitri-org/drtg-vm-common/builtInFunctions/multiDCTNFTTransfer.go:46.29,48.3 1 1 github.com/Dharitri-org/drtg-vm-common/builtInFunctions/multiDCTNFTTransfer.go:49.2,49.40 1 30 diff --git a/go.mod b/go.mod index ed9c330..37f9d90 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/Dharitri-org/drtg-vm-common go 1.20 require ( - github.com/Dharitri-org/drtg-core v0.1.0 + github.com/Dharitri-org/drtg-core v0.1.4 github.com/Dharitri-org/drtg-logger v0.0.6 github.com/mitchellh/mapstructure v1.4.1 github.com/stretchr/testify v1.9.0 diff --git a/go.sum b/go.sum index 7f188bc..2637c99 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,5 @@ -github.com/Dharitri-org/drtg-core v0.1.0 h1:Wn311G1rRpGP3ecFwT9wfOPFZnQMhFwB2Fk+dtGBQxU= -github.com/Dharitri-org/drtg-core v0.1.0/go.mod h1:9Db4lPAEqY6cn2bzLF9cynojYNhaOrVKgeAY3GA0pdU= +github.com/Dharitri-org/drtg-core v0.1.4 h1:HHjdp/Fn/QTRwRo9u7Mz2nS1V9Myp03lJzH3vzgNyCI= +github.com/Dharitri-org/drtg-core v0.1.4/go.mod h1:9Db4lPAEqY6cn2bzLF9cynojYNhaOrVKgeAY3GA0pdU= github.com/Dharitri-org/drtg-logger v0.0.6 h1:WwjhSjDDnKd1eZZiQyDjqhfpu/zTJbJ9I+jNHbyPvEY= github.com/Dharitri-org/drtg-logger v0.0.6/go.mod h1:6FQNxKifjwYlnSjjC0t140ZArOdGCbP9iVpbabHBE94= github.com/Dharitri-org/protobuf v1.3.2 h1:G3mbGffEoUVcSnMRYeC1kyZI3+VUvEB4fOcLKYe98/o= diff --git a/interface.go b/interface.go index 17ad0c1..f25496d 100644 --- a/interface.go +++ b/interface.go @@ -390,6 +390,7 @@ type EnableEpochsHandler interface { IsScToScEventLogEnabled() bool IsConsistentTokensValuesLengthCheckEnabled() bool IsAutoBalanceDataTriesEnabled() bool + IsMigrateDataTrieEnabled() bool IsChangeOwnerAddressCrossShardThroughSCEnabled() bool FixGasRemainingForSaveKeyValueBuiltinFunctionEnabled() bool diff --git a/mock/enableEpochsHandlerStub.go b/mock/enableEpochsHandlerStub.go index 78f2c8d..d0fc008 100644 --- a/mock/enableEpochsHandlerStub.go +++ b/mock/enableEpochsHandlerStub.go @@ -40,6 +40,7 @@ type EnableEpochsHandlerStub struct { IsScToScEventLogEnabledField bool IsConsistentTokensValuesLengthCheckEnabledField bool IsAutoBalanceDataTriesEnabledField bool + IsMigrateDataTrieEnabledField bool IsChangeOwnerAddressCrossShardThroughSCEnabledField bool FixGasRemainingForSaveKeyValueBuiltinFunctionEnabledField bool MultiDCTTransferAsyncCallBackEnableEpochField uint32 @@ -296,6 +297,11 @@ func (stub *EnableEpochsHandlerStub) IsAutoBalanceDataTriesEnabled() bool { return stub.IsAutoBalanceDataTriesEnabledField } +// IsMigrateDataTrieEnabled - +func (stub *EnableEpochsHandlerStub) IsMigrateDataTrieEnabled() bool { + return stub.IsMigrateDataTrieEnabledField +} + // IsChangeOwnerAddressCrossShardThroughSCEnabled - func (stub *EnableEpochsHandlerStub) IsChangeOwnerAddressCrossShardThroughSCEnabled() bool { return stub.IsChangeOwnerAddressCrossShardThroughSCEnabledField