Skip to content

Commit

Permalink
Merge pull request #149 from multiversx/rc/v1.6.0
Browse files Browse the repository at this point in the history
Rc/v1.6.0
  • Loading branch information
AdoAdoAdo authored Jan 4, 2024
2 parents f934238 + b5fbd1e commit 23f6a82
Show file tree
Hide file tree
Showing 50 changed files with 783 additions and 741 deletions.
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

0 comments on commit 23f6a82

Please sign in to comment.