Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rc/v1.6.0 #149

Merged
merged 30 commits into from
Jan 4, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
5537ffb
add isDataTrieMigrated func on proxy
BeniaminDrasovean Jun 21, 2023
87fad76
Merge remote-tracking branch 'origin/main' into add-isDataTrieMigrate…
BeniaminDrasovean Jul 20, 2023
c5efc89
fix after merge
BeniaminDrasovean Jul 20, 2023
74b13fb
update go mod
BeniaminDrasovean Aug 4, 2023
31cdfc6
add missing comments
BeniaminDrasovean Aug 4, 2023
22b1ff8
Merge pull request #147 from multiversx/go-mod-updates-rc/v1.6.0
BeniaminDrasovean Aug 7, 2023
38e2d21
Merge remote-tracking branch 'origin/rc/v1.6.0' into add-isDataTrieMi…
BeniaminDrasovean Aug 17, 2023
ad0bcbd
fix after merge
BeniaminDrasovean Aug 17, 2023
5bd5a71
Merge remote-tracking branch 'origin/main' into merge-main-in-rc/v1.6…
BeniaminDrasovean Aug 29, 2023
5fb9b9c
update go mod
BeniaminDrasovean Aug 29, 2023
6c3f8c0
Merge pull request #150 from multiversx/merge-main-in-rc/v1.6.0-29aug
BeniaminDrasovean Aug 29, 2023
a341273
Merge remote-tracking branch 'origin/rc/v1.6.0' into add-isDataTrieMi…
BeniaminDrasovean Aug 29, 2023
779969a
fix after review + unit tests
BeniaminDrasovean Aug 31, 2023
9680ea9
Merge pull request #144 from multiversx/add-isDataTrieMigrated-endpoint
BeniaminDrasovean Aug 31, 2023
671ec3c
- integrated mx-chain-go v1.6.3
iulianpascalau Oct 30, 2023
4e5de92
Merge pull request #152 from multiversx/integrate-latest-mx-chain-go-…
iulianpascalau Oct 30, 2023
9bd2ada
- fixed & simplified nonce transactions v2
iulianpascalau Dec 21, 2023
1c8977f
- reverted code, renamed method
iulianpascalau Dec 21, 2023
7a682b5
- fixes after review + further cleaning
iulianpascalau Dec 21, 2023
725bb5a
- optimized code, added protection & fixed tests
iulianpascalau Dec 21, 2023
3c0bf24
- activated workflows for `rc/*` branches
iulianpascalau Dec 21, 2023
924cb31
Merge branch 'main' into merge-main-rc-v1.6.0-2023.12.21
iulianpascalau Dec 21, 2023
44346a0
- fixes after merge
iulianpascalau Dec 21, 2023
fe20c41
Merge pull request #164 from multiversx/merge-main-rc-v1.6.0-2023.12.21
iulianpascalau Dec 22, 2023
5f28d7c
- linter fixes
iulianpascalau Dec 22, 2023
629ba2a
Merge branch 'rc/v1.6.0' into fixed-nonce-transaction-handler-v2
iulianpascalau Dec 22, 2023
eaca0ea
Merge pull request #163 from multiversx/fixed-nonce-transaction-handl…
iulianpascalau Dec 22, 2023
edc6dd2
- latest libraries
iulianpascalau Dec 22, 2023
3ef3ec9
Merge branch 'rc/v1.6.0' into latest-libs-2023.12.22
iulianpascalau Dec 22, 2023
b5fbd1e
Merge pull request #165 from multiversx/latest-libs-2023.12.22
iulianpascalau Dec 22, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/golangci-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: golangci-lint

on:
push:
branches: [ main, development, feat/* ]
branches: [ main, feat/*, rc/* ]
pull_request:
branches: [ main, development, feat/* ]
branches: [ main, feat/*, rc/* ]

permissions:
contents: read
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/pr-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Tests

on:
push:
branches: [ main, feat/* ]
branches: [ main, feat/*, rc/* ]
pull_request:
branches: [ main, feat/* ]
branches: [ main, feat/*, rc/* ]

jobs:
test:
Expand Down
24 changes: 24 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# Binaries for programs and plugins
*.exe
*.exe~
*.dll
*.so
*.dylib

# Test binary, build with `go test -c`
*.test

# Output of the go coverage tool, specifically when used with LiteIDE
*.out

opcode.trace

.*
!/.gitignore
!/.github

/vendor
/esdata
.env
*.log

4 changes: 2 additions & 2 deletions aggregator/httpResponseGetter.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package aggregator
import (
"context"
"encoding/json"
"io/ioutil"
"io"
"net/http"
)

Expand Down Expand Up @@ -35,7 +35,7 @@ func (getter *httpResponseGetter) Get(ctx context.Context, url string, response
return err
}

respBytes, err := ioutil.ReadAll(resp.Body)
respBytes, err := io.ReadAll(resp.Body)
if err != nil {
return nil
}
Expand Down
7 changes: 6 additions & 1 deletion aggregator/notifees/mxNotifee.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,10 +101,15 @@ func (en *mxNotifee) PriceChanged(ctx context.Context, priceChanges []*aggregato
return err
}

receiverAddressAsBech32, err := en.contractAddress.AddressAsBech32String()
if err != nil {
return err
}

gasLimit := en.baseGasLimit + uint64(len(priceChanges))*en.gasLimitForEach
tx := &transaction.FrontendTransaction{
Value: zeroString,
Receiver: en.contractAddress.AddressAsBech32String(),
Receiver: receiverAddressAsBech32,
GasPrice: networkConfigs.MinGasPrice,
GasLimit: gasLimit,
Data: txData,
Expand Down
4 changes: 2 additions & 2 deletions authentication/native/semiIntegrated_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import (
"github.com/multiversx/mx-chain-crypto-go/signing"
"github.com/multiversx/mx-chain-crypto-go/signing/ed25519"
"github.com/multiversx/mx-chain-go/testscommon"
logger "github.com/multiversx/mx-chain-logger-go"
"github.com/multiversx/mx-sdk-go/authentication"
"github.com/multiversx/mx-sdk-go/blockchain/cryptoProvider"
"github.com/multiversx/mx-sdk-go/data"
Expand All @@ -23,6 +22,7 @@ import (
)

var keyGen = signing.NewKeyGenerator(ed25519.NewEd25519())
var hrp = "erd"

func TestNativeserver_ClientServer(t *testing.T) {

Expand Down Expand Up @@ -80,7 +80,7 @@ func createNativeClient(pem string, proxy workflows.ProxyHandler, tokenHandler a
}

func createNativeServer(httpClientWrapper authentication.HttpClientWrapper, tokenHandler authentication.AuthTokenHandler) *authServer {
converter, _ := pubkeyConverter.NewBech32PubkeyConverter(32, logger.GetOrCreate("testscommon"))
converter, _ := pubkeyConverter.NewBech32PubkeyConverter(32, hrp)

serverArgs := ArgsNativeAuthServer{
HttpClientWrapper: httpClientWrapper,
Expand Down
6 changes: 3 additions & 3 deletions authentication/native/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -171,7 +171,7 @@ func TestNativeserver_Validate(t *testing.T) {
return buff, http.StatusOK, nil
},
}
args.PubKeyConverter = &genesisMock.PubkeyConverterStub{
args.PubKeyConverter = &testscommon.PubkeyConverterStub{
DecodeCalled: func(humanReadable string) ([]byte, error) {
return nil, expectedErr
},
Expand Down Expand Up @@ -204,7 +204,7 @@ func TestNativeserver_Validate(t *testing.T) {
return nil, expectedErr
},
}
args.PubKeyConverter = &genesisMock.PubkeyConverterStub{
args.PubKeyConverter = &testscommon.PubkeyConverterStub{
DecodeCalled: func(humanReadable string) ([]byte, error) {
return nil, nil
},
Expand Down Expand Up @@ -363,7 +363,7 @@ func createMockArgsNativeAuthServer() ArgsNativeAuthServer {
HttpClientWrapper: &testsCommon.HTTPClientWrapperStub{},
TokenHandler: &mock.AuthTokenHandlerStub{},
Signer: &testsCommon.SignerStub{},
PubKeyConverter: &genesisMock.PubkeyConverterStub{},
PubKeyConverter: &testscommon.PubkeyConverterStub{},
KeyGenerator: &genesisMock.KeyGeneratorStub{},
TimestampsCacher: &testscommon.CacherStub{},
}
Expand Down
39 changes: 20 additions & 19 deletions blockchain/addressGenerator.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,23 +38,24 @@ func NewAddressGenerator(coordinator *shardCoordinator) (*addressGenerator, erro
builtInFuncs := &disabled.BuiltInFunctionContainer{}

var argsHook = hooks.ArgBlockChainHook{
Accounts: &disabled.Accounts{},
PubkeyConv: core.AddressPublicKeyConverter,
StorageService: &disabled.StorageService{},
BlockChain: &disabled.Blockchain{},
ShardCoordinator: &disabled.ShardCoordinator{},
Marshalizer: &marshal.JsonMarshalizer{},
Uint64Converter: uint64ByteSlice.NewBigEndianConverter(),
BuiltInFunctions: builtInFuncs,
DataPool: &disabled.DataPool{},
CompiledSCPool: storage.NewMapCacher(),
NilCompiledSCStore: true,
NFTStorageHandler: &disabled.SimpleESDTNFTStorageHandler{},
EpochNotifier: &disabled.EpochNotifier{},
GlobalSettingsHandler: &disabled.GlobalSettingsHandler{},
EnableEpochsHandler: &disabled.EnableEpochsHandler{},
GasSchedule: &disabled.GasScheduleNotifier{},
Counter: &disabled.BlockChainHookCounter{},
Accounts: &disabled.Accounts{},
PubkeyConv: core.AddressPublicKeyConverter,
StorageService: &disabled.StorageService{},
BlockChain: &disabled.Blockchain{},
ShardCoordinator: &disabled.ShardCoordinator{},
Marshalizer: &marshal.JsonMarshalizer{},
Uint64Converter: uint64ByteSlice.NewBigEndianConverter(),
BuiltInFunctions: builtInFuncs,
DataPool: &disabled.DataPool{},
CompiledSCPool: storage.NewMapCacher(),
NilCompiledSCStore: true,
NFTStorageHandler: &disabled.SimpleESDTNFTStorageHandler{},
EpochNotifier: &disabled.EpochNotifier{},
GlobalSettingsHandler: &disabled.GlobalSettingsHandler{},
EnableEpochsHandler: &disabled.EnableEpochsHandler{},
GasSchedule: &disabled.GasScheduleNotifier{},
Counter: &disabled.BlockChainHookCounter{},
MissingTrieNodesNotifier: &disabled.MissingTrieNodesNotifier{},
}
blockchainHook, err := hooks.NewBlockChainHookImpl(argsHook)
if err != nil {
Expand Down Expand Up @@ -89,9 +90,9 @@ func (ag *addressGenerator) CompatibleDNSAddressFromUsername(username string) (c
return ag.CompatibleDNSAddress(lastByte)
}

// ComputeArwenScAddress will return the smart contract address that will be generated by the Arwen VM providing
// ComputeWasmVMScAddress will return the smart contract address that will be generated by the Wasm VM providing
// the owner's address & nonce
func (ag *addressGenerator) ComputeArwenScAddress(address core.AddressHandler, nonce uint64) (core.AddressHandler, error) {
func (ag *addressGenerator) ComputeWasmVMScAddress(address core.AddressHandler, nonce uint64) (core.AddressHandler, error) {
if check.IfNil(address) {
return nil, ErrNilAddress
}
Expand Down
16 changes: 11 additions & 5 deletions blockchain/addressGenerator_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,14 @@ func TestGenerateSameDNSAddress(t *testing.T) {
newDNS, err := ag.CompatibleDNSAddressFromUsername("laura.elrond")
require.Nil(t, err)

fmt.Printf("Compatibile DNS address is %s\n", newDNS.AddressAsBech32String())
assert.Equal(t, "erd1qqqqqqqqqqqqqpgqvrsdh798pvd4x09x0argyscxc9h7lzfhqz4sttlatg", newDNS.AddressAsBech32String())
newDnsAsBech32, err := newDNS.AddressAsBech32String()
require.Nil(t, err)

fmt.Printf("Compatibile DNS address is %s\n", newDnsAsBech32)
assert.Equal(t, "erd1qqqqqqqqqqqqqpgqvrsdh798pvd4x09x0argyscxc9h7lzfhqz4sttlatg", newDnsAsBech32)
}

func TestAddressGenerator_ComputeArwenScAddress(t *testing.T) {
func TestAddressGenerator_ComputeWasmVMScAddress(t *testing.T) {
t.Parallel()

coord, err := NewShardCoordinator(3, 0)
Expand All @@ -62,8 +65,11 @@ func TestAddressGenerator_ComputeArwenScAddress(t *testing.T) {
owner, err := data.NewAddressFromBech32String("erd1dglncxk6sl9a3xumj78n6z2xux4ghp5c92cstv5zsn56tjgtdwpsk46qrs")
require.Nil(t, err)

scAddress, err := ag.ComputeArwenScAddress(owner, 10)
scAddress, err := ag.ComputeWasmVMScAddress(owner, 10)
require.Nil(t, err)

scAddressAsBech32, err := scAddress.AddressAsBech32String()
require.Nil(t, err)

assert.Equal(t, "erd1qqqqqqqqqqqqqpgqxcy5fma93yhw44xcmt3zwrl0tlhaqmxrdwpsr2vh8p", scAddress.AddressAsBech32String())
assert.Equal(t, "erd1qqqqqqqqqqqqqpgqxcy5fma93yhw44xcmt3zwrl0tlhaqmxrdwpsr2vh8p", scAddressAsBech32)
}
5 changes: 4 additions & 1 deletion blockchain/cryptoProvider/cryptoComponentsHolder.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,10 @@ func NewCryptoComponentsHolder(keyGen crypto.KeyGenerator, skBytes []byte) (*cry
return nil, err
}
addressHandler := data.NewAddressFromBytes(publicKeyBytes)
bech32Address := addressHandler.AddressAsBech32String()
bech32Address, err := addressHandler.AddressAsBech32String()
if err != nil {
return nil, err
}

return &cryptoComponentsHolder{
privateKey: privateKey,
Expand Down
12 changes: 10 additions & 2 deletions blockchain/cryptoProvider/cryptoComponentsHolder_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,11 @@ func TestNewCryptoComponentsHolder(t *testing.T) {

privateKey := &testsCommon.PrivateKeyStub{
GeneratePublicCalled: func() crypto.PublicKey {
return &testsCommon.PublicKeyStub{}
return &testsCommon.PublicKeyStub{
ToByteArrayCalled: func() ([]byte, error) {
return make([]byte, 32), nil
},
}
},
}
keyGenInstance := &cryptoMocks.KeyGenStub{
Expand Down Expand Up @@ -82,7 +86,11 @@ func TestNewCryptoComponentsHolder(t *testing.T) {

bech32Address := holder.GetBech32()
addressHandler := holder.GetAddressHandler()
require.Equal(t, addressHandler.AddressAsBech32String(), bech32Address)

addressAsBech32String, err := addressHandler.AddressAsBech32String()
require.Nil(t, err)

require.Equal(t, addressAsBech32String, bech32Address)
require.Equal(t, "erd1j84k44nsqsme8r6e5aawutx0z2cd6cyx3wprkzdh73x2cf0kqvksa3snnq", bech32Address)
})
}
6 changes: 6 additions & 0 deletions blockchain/endpointProviders/baseEndpointProvider.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ const (
esdt = "address/%s/esdt/%s"
nft = "address/%s/nft/%s/nonce/%d"
nodeGetGuardianData = "address/%s/guardian-data"
isDataTrieMigrated = "address/%s/is-data-trie-migrated"
)

type baseEndpointProvider struct{}
Expand Down Expand Up @@ -126,3 +127,8 @@ func (base *baseEndpointProvider) GetRawStartOfEpochMetaBlock(epoch uint32) stri
func (base *baseEndpointProvider) GetValidatorsInfo(epoch uint32) string {
return fmt.Sprintf(rawStartOfEpochValidators, epoch)
}

// IsDataTrieMigrated returns true if the data trie of the given address is migrated
func (base *baseEndpointProvider) IsDataTrieMigrated(addressAsBech32 string) string {
return fmt.Sprintf(isDataTrieMigrated, addressAsBech32)
}
1 change: 1 addition & 0 deletions blockchain/factory/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ type EndpointProvider interface {
GetProcessedTransactionStatus(hexHash string) string
GetESDTTokenData(addressAsBech32 string, tokenIdentifier string) string
GetNFTTokenData(addressAsBech32 string, tokenIdentifier string, nonce uint64) string
IsDataTrieMigrated(addressAsBech32 string) string
IsInterfaceNil() bool
}

Expand Down
1 change: 1 addition & 0 deletions blockchain/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ type EndpointProvider interface {
GetProcessedTransactionStatus(hexHash string) string
GetESDTTokenData(addressAsBech32 string, tokenIdentifier string) string
GetNFTTokenData(addressAsBech32 string, tokenIdentifier string, nonce uint64) string
IsDataTrieMigrated(addressAsBech32 string) string
IsInterfaceNil() bool
}

Expand Down
Loading