diff --git a/bridges/ethMultiversX/bridgeExecutor.go b/bridges/ethMultiversX/bridgeExecutor.go index e5308be7..ce1b844f 100644 --- a/bridges/ethMultiversX/bridgeExecutor.go +++ b/bridges/ethMultiversX/bridgeExecutor.go @@ -527,7 +527,7 @@ func (executor *bridgeExecutor) SignTransferOnEthereum() error { return ErrNilBatch } - argLists, err := batchProcessor.ExtractList(executor.batch) + argLists, err := batchProcessor.ExtractListMvxToEth(executor.batch) if err != nil { return err } @@ -558,12 +558,12 @@ func (executor *bridgeExecutor) PerformTransferOnEthereum(ctx context.Context) e executor.log.Debug("fetched quorum size", "quorum", quorumSize.Int64()) - argLists, err := batchProcessor.ExtractList(executor.batch) + argLists, err := batchProcessor.ExtractListMvxToEth(executor.batch) if err != nil { return err } - err = executor.checkAvailableTokensOnEthereum(ctx, argLists.Tokens, argLists.ConvertedTokenBytes, argLists.Amounts) + err = executor.checkAvailableTokensOnEthereum(ctx, argLists.EthTokens, argLists.MvxTokenBytes, argLists.Amounts) if err != nil { return err } @@ -647,18 +647,18 @@ func (executor *bridgeExecutor) isMintBurnOnMultiversX(ctx context.Context, toke return isMintBurn } -func (executor *bridgeExecutor) checkAvailableTokensOnEthereum(ctx context.Context, tokens []common.Address, convertedTokens [][]byte, amounts []*big.Int) error { - tokens, convertedTokens, amounts = executor.getCumulatedTransfers(tokens, convertedTokens, amounts) +func (executor *bridgeExecutor) checkAvailableTokensOnEthereum(ctx context.Context, ethTokens []common.Address, mvxTokens [][]byte, amounts []*big.Int) error { + ethTokens, mvxTokens, amounts = executor.getCumulatedTransfers(ethTokens, mvxTokens, amounts) - return executor.checkCumulatedTransfers(ctx, tokens, convertedTokens, amounts) + return executor.checkCumulatedTransfers(ctx, ethTokens, mvxTokens, amounts) } -func (executor *bridgeExecutor) getCumulatedTransfers(tokens []common.Address, convertedTokens [][]byte, amounts []*big.Int) ([]common.Address, [][]byte, []*big.Int) { +func (executor *bridgeExecutor) getCumulatedTransfers(ethTokens []common.Address, mvxTokens [][]byte, amounts []*big.Int) ([]common.Address, [][]byte, []*big.Int) { cumulatedAmounts := make(map[common.Address]*big.Int) uniqueTokens := make([]common.Address, 0) uniqueConvertedTokens := make([][]byte, 0) - for i, token := range tokens { + for i, token := range ethTokens { existingValue, exists := cumulatedAmounts[token] if exists { existingValue.Add(existingValue, amounts[i]) @@ -667,7 +667,7 @@ func (executor *bridgeExecutor) getCumulatedTransfers(tokens []common.Address, c cumulatedAmounts[token] = amounts[i] uniqueTokens = append(uniqueTokens, token) - uniqueConvertedTokens = append(uniqueConvertedTokens, convertedTokens[i]) + uniqueConvertedTokens = append(uniqueConvertedTokens, mvxTokens[i]) } finalAmounts := make([]*big.Int, len(uniqueTokens)) diff --git a/bridges/ethMultiversX/bridgeExecutor_test.go b/bridges/ethMultiversX/bridgeExecutor_test.go index 915a5f4d..d5d35ca7 100644 --- a/bridges/ethMultiversX/bridgeExecutor_test.go +++ b/bridges/ethMultiversX/bridgeExecutor_test.go @@ -1255,8 +1255,8 @@ func TestMultiversXToEthBridgeExecutor_PerformTransferOnEthereum(t *testing.T) { assert.Equal(t, providedBatch.Deposits[i].Amount, batch.Amounts[i]) assert.Equal(t, providedBatch.Deposits[i].Nonce, batch.Nonces[i].Uint64()) assert.Equal(t, providedBatch.Deposits[i].ToBytes, batch.Recipients[i].Bytes()) - assert.Equal(t, providedBatch.Deposits[i].TokenBytes, batch.Tokens[i].Bytes()) - assert.Equal(t, providedBatch.Deposits[i].ConvertedTokenBytes, batch.ConvertedTokenBytes[i]) + assert.Equal(t, providedBatch.Deposits[i].SourceTokenBytes, batch.EthTokens[i].Bytes()) + assert.Equal(t, providedBatch.Deposits[i].DestinationTokenBytes, batch.MvxTokenBytes[i]) } assert.True(t, providedQuorum == quorum) diff --git a/clients/batch.go b/clients/batch.go index 27290d8e..6a479514 100644 --- a/clients/batch.go +++ b/clients/batch.go @@ -65,18 +65,18 @@ func (tb *TransferBatch) ResolveNewDeposits(newNumDeposits int) { // DepositTransfer is the deposit transfer structure agnostic of any chain implementation type DepositTransfer struct { - Nonce uint64 `json:"nonce"` - ToBytes []byte `json:"-"` - DisplayableTo string `json:"to"` - FromBytes []byte `json:"-"` - DisplayableFrom string `json:"from"` - TokenBytes []byte `json:"-"` - ConvertedTokenBytes []byte `json:"-"` - DisplayableToken string `json:"token"` - Amount *big.Int `json:"amount"` - ExtraGasLimit uint64 `json:"gasLimit"` - Data []byte `json:"-"` - DisplayableData string `json:"data"` + Nonce uint64 `json:"nonce"` + ToBytes []byte `json:"-"` + DisplayableTo string `json:"to"` + FromBytes []byte `json:"-"` + DisplayableFrom string `json:"from"` + SourceTokenBytes []byte `json:"-"` + DestinationTokenBytes []byte `json:"-"` + DisplayableToken string `json:"token"` + Amount *big.Int `json:"amount"` + ExtraGasLimit uint64 `json:"gasLimit"` + Data []byte `json:"-"` + DisplayableData string `json:"data"` } // String will convert the deposit transfer to a string @@ -85,26 +85,26 @@ func (dt *DepositTransfer) String() string { dt.DisplayableTo, dt.DisplayableFrom, dt.DisplayableToken, dt.Amount, dt.Nonce, dt.ExtraGasLimit, dt.DisplayableData) } -// Clone will deep clone the current DepositTransfer instance +// Clone will deeply clone the current DepositTransfer instance func (dt *DepositTransfer) Clone() *DepositTransfer { cloned := &DepositTransfer{ - Nonce: dt.Nonce, - ToBytes: make([]byte, len(dt.ToBytes)), - DisplayableTo: dt.DisplayableTo, - FromBytes: make([]byte, len(dt.FromBytes)), - DisplayableFrom: dt.DisplayableFrom, - TokenBytes: make([]byte, len(dt.TokenBytes)), - ConvertedTokenBytes: make([]byte, len(dt.ConvertedTokenBytes)), - DisplayableToken: dt.DisplayableToken, - Amount: big.NewInt(0), - Data: make([]byte, len(dt.Data)), - DisplayableData: dt.DisplayableData, + Nonce: dt.Nonce, + ToBytes: make([]byte, len(dt.ToBytes)), + DisplayableTo: dt.DisplayableTo, + FromBytes: make([]byte, len(dt.FromBytes)), + DisplayableFrom: dt.DisplayableFrom, + SourceTokenBytes: make([]byte, len(dt.SourceTokenBytes)), + DestinationTokenBytes: make([]byte, len(dt.DestinationTokenBytes)), + DisplayableToken: dt.DisplayableToken, + Amount: big.NewInt(0), + Data: make([]byte, len(dt.Data)), + DisplayableData: dt.DisplayableData, } copy(cloned.ToBytes, dt.ToBytes) copy(cloned.FromBytes, dt.FromBytes) - copy(cloned.TokenBytes, dt.TokenBytes) - copy(cloned.ConvertedTokenBytes, dt.ConvertedTokenBytes) + copy(cloned.SourceTokenBytes, dt.SourceTokenBytes) + copy(cloned.DestinationTokenBytes, dt.DestinationTokenBytes) copy(cloned.Data, dt.Data) if dt.Amount != nil { cloned.Amount.Set(dt.Amount) diff --git a/clients/batch_test.go b/clients/batch_test.go index 196a1633..17b88204 100644 --- a/clients/batch_test.go +++ b/clients/batch_test.go @@ -11,16 +11,16 @@ func TestDepositTransfer_Clone(t *testing.T) { t.Parallel() dt := &DepositTransfer{ - Nonce: 112334, - ToBytes: []byte("to"), - DisplayableTo: "to", - FromBytes: []byte("from"), - DisplayableFrom: "from", - TokenBytes: []byte("token"), - DisplayableToken: "token", - Amount: big.NewInt(7463), - ConvertedTokenBytes: []byte("converted token"), - Data: []byte("tx data"), + Nonce: 112334, + ToBytes: []byte("to"), + DisplayableTo: "to", + FromBytes: []byte("from"), + DisplayableFrom: "from", + SourceTokenBytes: []byte("source token"), + DisplayableToken: "token", + Amount: big.NewInt(7463), + DestinationTokenBytes: []byte("destination token"), + Data: []byte("tx data"), } cloned := dt.Clone() @@ -38,7 +38,7 @@ func TestDepositTransfer_String(t *testing.T) { DisplayableTo: "to", FromBytes: []byte("from"), DisplayableFrom: "from", - TokenBytes: []byte("token"), + SourceTokenBytes: []byte("source token"), DisplayableToken: "token", Amount: big.NewInt(7463), } @@ -54,28 +54,28 @@ func TestTransferBatch_Clone(t *testing.T) { ID: 2243, Deposits: []*DepositTransfer{ { - Nonce: 1, - ToBytes: []byte("to1"), - DisplayableTo: "to1", - FromBytes: []byte("from1"), - DisplayableFrom: "from1", - TokenBytes: []byte("token1"), - DisplayableToken: "token1", - Amount: big.NewInt(3344), - ConvertedTokenBytes: []byte("converted token1"), - Data: []byte("tx data"), + Nonce: 1, + ToBytes: []byte("to1"), + DisplayableTo: "to1", + FromBytes: []byte("from1"), + DisplayableFrom: "from1", + SourceTokenBytes: []byte("source token1"), + DisplayableToken: "token1", + Amount: big.NewInt(3344), + DestinationTokenBytes: []byte("destination token1"), + Data: []byte("tx data"), }, { - Nonce: 2, - ToBytes: []byte("to2"), - DisplayableTo: "to2", - FromBytes: []byte("from2"), - DisplayableFrom: "from2", - TokenBytes: []byte("token2"), - DisplayableToken: "token2", - Amount: big.NewInt(5566), - ConvertedTokenBytes: []byte("converted token2"), - Data: []byte("tx data"), + Nonce: 2, + ToBytes: []byte("to2"), + DisplayableTo: "to2", + FromBytes: []byte("from2"), + DisplayableFrom: "from2", + SourceTokenBytes: []byte("source token2"), + DisplayableToken: "token2", + Amount: big.NewInt(5566), + DestinationTokenBytes: []byte("destination token2"), + Data: []byte("tx data"), }, }, Statuses: []byte{Executed, Rejected}, @@ -99,7 +99,7 @@ func TestTransferBatch_String(t *testing.T) { DisplayableTo: "to1", FromBytes: []byte("from1"), DisplayableFrom: "from1", - TokenBytes: []byte("token1"), + SourceTokenBytes: []byte("source token1"), DisplayableToken: "token1", Amount: big.NewInt(3344), }, @@ -109,7 +109,7 @@ func TestTransferBatch_String(t *testing.T) { DisplayableTo: "to2", FromBytes: []byte("from2"), DisplayableFrom: "from2", - TokenBytes: []byte("token2"), + SourceTokenBytes: []byte("source token2"), DisplayableToken: "token2", Amount: big.NewInt(5566), }, diff --git a/clients/ethereum/client.go b/clients/ethereum/client.go index dc1c817d..9c1acf74 100644 --- a/clients/ethereum/client.go +++ b/clients/ethereum/client.go @@ -181,19 +181,19 @@ func (c *client) GetBatch(ctx context.Context, nonce uint64) (*clients.TransferB DisplayableTo: c.addressConverter.ToBech32StringSilent(toBytes), FromBytes: fromBytes, DisplayableFrom: c.addressConverter.ToHexString(fromBytes), - TokenBytes: tokenBytes, + SourceTokenBytes: tokenBytes, DisplayableToken: c.addressConverter.ToHexString(tokenBytes), Amount: big.NewInt(0).Set(deposit.Amount), } storedConvertedTokenBytes, exists := cachedTokens[depositTransfer.DisplayableToken] if !exists { - depositTransfer.ConvertedTokenBytes, err = c.tokensMapper.ConvertToken(ctx, depositTransfer.TokenBytes) + depositTransfer.DestinationTokenBytes, err = c.tokensMapper.ConvertToken(ctx, depositTransfer.SourceTokenBytes) if err != nil { return nil, err } - cachedTokens[depositTransfer.DisplayableToken] = depositTransfer.ConvertedTokenBytes + cachedTokens[depositTransfer.DisplayableToken] = depositTransfer.DestinationTokenBytes } else { - depositTransfer.ConvertedTokenBytes = storedConvertedTokenBytes + depositTransfer.DestinationTokenBytes = storedConvertedTokenBytes } transferBatch.Deposits = append(transferBatch.Deposits, depositTransfer) @@ -267,7 +267,7 @@ func (c *client) GenerateMessageHash(batch *batchProcessor.ArgListsBatch, batchI return common.Hash{}, err } - pack, err := args.Pack(batch.Recipients, batch.Tokens, batch.Amounts, batch.Nonces, big.NewInt(0).SetUint64(batchId), "ExecuteBatchedTransfer") + pack, err := args.Pack(batch.Recipients, batch.EthTokens, batch.Amounts, batch.Nonces, big.NewInt(0).SetUint64(batchId), "ExecuteBatchedTransfer") if err != nil { return common.Hash{}, err } @@ -360,7 +360,7 @@ func (c *client) ExecuteTransfer( auth.Nonce = big.NewInt(nonce) auth.Value = big.NewInt(0) - auth.GasLimit = c.transferGasLimitBase + uint64(len(argLists.Tokens))*c.transferGasLimitForEach + auth.GasLimit = c.transferGasLimitBase + uint64(len(argLists.EthTokens))*c.transferGasLimitForEach auth.Context = ctx auth.GasPrice = gasPrice @@ -382,7 +382,7 @@ func (c *client) ExecuteTransfer( } batchID := big.NewInt(0).SetUint64(batchId) - tx, err := c.clientWrapper.ExecuteTransfer(auth, argLists.Tokens, argLists.Recipients, argLists.Amounts, argLists.Nonces, batchID, signatures) + tx, err := c.clientWrapper.ExecuteTransfer(auth, argLists.EthTokens, argLists.Recipients, argLists.Amounts, argLists.Nonces, batchID, signatures) if err != nil { return "", err } diff --git a/clients/ethereum/client_test.go b/clients/ethereum/client_test.go index e3c16262..20ccd7b5 100644 --- a/clients/ethereum/client_test.go +++ b/clients/ethereum/client_test.go @@ -67,26 +67,26 @@ func createMockTransferBatch() *clients.TransferBatch { ID: 332, Deposits: []*clients.DepositTransfer{ { - Nonce: 10, - ToBytes: []byte("to1"), - DisplayableTo: "to1", - FromBytes: []byte("from1"), - DisplayableFrom: "from1", - TokenBytes: []byte("token1"), - DisplayableToken: "token1", - Amount: big.NewInt(20), - ConvertedTokenBytes: []byte("ERC20token1"), + Nonce: 10, + ToBytes: []byte("to1"), + DisplayableTo: "to1", + FromBytes: []byte("from1"), + DisplayableFrom: "from1", + SourceTokenBytes: []byte("source token1"), + DisplayableToken: "token1", + Amount: big.NewInt(20), + DestinationTokenBytes: []byte("ERC20token1"), }, { - Nonce: 30, - ToBytes: []byte("to2"), - DisplayableTo: "to2", - FromBytes: []byte("from2"), - DisplayableFrom: "from2", - TokenBytes: []byte("token2"), - DisplayableToken: "token2", - Amount: big.NewInt(40), - ConvertedTokenBytes: []byte("ERC20token2"), + Nonce: 30, + ToBytes: []byte("to2"), + DisplayableTo: "to2", + FromBytes: []byte("from2"), + DisplayableFrom: "from2", + SourceTokenBytes: []byte("source token2"), + DisplayableToken: "token2", + Amount: big.NewInt(40), + DestinationTokenBytes: []byte("ERC20token2"), }, }, Statuses: make([]byte, 2), @@ -320,26 +320,26 @@ func TestClient_GetBatch(t *testing.T) { ID: 112243, Deposits: []*clients.DepositTransfer{ { - Nonce: 10, - ToBytes: recipient1.AddressBytes(), - DisplayableTo: bech32Recipient1Address, - FromBytes: from1[:], - DisplayableFrom: hex.EncodeToString(from1[:]), - TokenBytes: token1[:], - DisplayableToken: hex.EncodeToString(token1[:]), - Amount: big.NewInt(20), - ConvertedTokenBytes: append([]byte("ERC20"), token1[:]...), + Nonce: 10, + ToBytes: recipient1.AddressBytes(), + DisplayableTo: bech32Recipient1Address, + FromBytes: from1[:], + DisplayableFrom: hex.EncodeToString(from1[:]), + SourceTokenBytes: token1[:], + DisplayableToken: hex.EncodeToString(token1[:]), + Amount: big.NewInt(20), + DestinationTokenBytes: append([]byte("ERC20"), token1[:]...), }, { - Nonce: 30, - ToBytes: recipient2.AddressBytes(), - DisplayableTo: bech32Recipient2Address, - FromBytes: from2[:], - DisplayableFrom: hex.EncodeToString(from2[:]), - TokenBytes: token2[:], - DisplayableToken: hex.EncodeToString(token2[:]), - Amount: big.NewInt(40), - ConvertedTokenBytes: append([]byte("ERC20"), token2[:]...), + Nonce: 30, + ToBytes: recipient2.AddressBytes(), + DisplayableTo: bech32Recipient2Address, + FromBytes: from2[:], + DisplayableFrom: hex.EncodeToString(from2[:]), + SourceTokenBytes: token2[:], + DisplayableToken: hex.EncodeToString(token2[:]), + Amount: big.NewInt(40), + DestinationTokenBytes: append([]byte("ERC20"), token2[:]...), }, }, Statuses: make([]byte, 2), @@ -367,9 +367,9 @@ func TestClient_GenerateMessageHash(t *testing.T) { }) t.Run("should work", func(t *testing.T) { c, _ := NewEthereumClient(args) - argLists, _ := batchProcessor.ExtractList(batch) + argLists, _ := batchProcessor.ExtractListMvxToEth(batch) assert.Equal(t, expectedAmounts, argLists.Amounts) - assert.Equal(t, expectedTokens, argLists.Tokens) + assert.Equal(t, expectedTokens, argLists.EthTokens) assert.Equal(t, expectedRecipients, argLists.Recipients) assert.Equal(t, expectedNonces, argLists.Nonces) @@ -425,7 +425,7 @@ func TestClient_ExecuteTransfer(t *testing.T) { args := createMockEthereumClientArgs() batch := createMockTransferBatch() - argLists, _ := batchProcessor.ExtractList(batch) + argLists, _ := batchProcessor.ExtractListMvxToEth(batch) signatures := make([][]byte, 10) for i := range signatures { signatures[i] = []byte(fmt.Sprintf("sig %d", i)) @@ -544,17 +544,17 @@ func TestClient_ExecuteTransfer(t *testing.T) { } newBatch := batch.Clone() newBatch.Deposits = append(newBatch.Deposits, &clients.DepositTransfer{ - Nonce: 40, - ToBytes: []byte("to3"), - DisplayableTo: "to3", - FromBytes: []byte("from3"), - DisplayableFrom: "from3", - TokenBytes: []byte("token1"), - DisplayableToken: "token1", - Amount: big.NewInt(80), - ConvertedTokenBytes: []byte("ERC20token1"), + Nonce: 40, + ToBytes: []byte("to3"), + DisplayableTo: "to3", + FromBytes: []byte("from3"), + DisplayableFrom: "from3", + SourceTokenBytes: []byte("source token1"), + DisplayableToken: "token1", + Amount: big.NewInt(80), + DestinationTokenBytes: []byte("ERC20token1"), }) - newArgLists, _ := batchProcessor.ExtractList(newBatch) + newArgLists, _ := batchProcessor.ExtractListMvxToEth(newBatch) hash, err := c.ExecuteTransfer(context.Background(), common.Hash{}, newArgLists, newBatch.ID, 9) assert.Equal(t, "", hash) assert.True(t, errors.Is(err, errInsufficientBalance)) diff --git a/clients/multiversx/client.go b/clients/multiversx/client.go index 448bb034..cb666ef5 100644 --- a/clients/multiversx/client.go +++ b/clients/multiversx/client.go @@ -245,20 +245,20 @@ func (c *client) createPendingBatchFromResponse(ctx context.Context, responseDat DisplayableFrom: c.addressPublicKeyConverter.ToBech32StringSilent(responseData[i+2]), ToBytes: responseData[i+3], DisplayableTo: c.addressPublicKeyConverter.ToHexStringWithPrefix(responseData[i+3]), - TokenBytes: responseData[i+4], + SourceTokenBytes: responseData[i+4], DisplayableToken: string(responseData[i+4]), Amount: amount, } storedConvertedTokenBytes, exists := cachedTokens[deposit.DisplayableToken] if !exists { - deposit.ConvertedTokenBytes, err = c.tokensMapper.ConvertToken(ctx, deposit.TokenBytes) + deposit.DestinationTokenBytes, err = c.tokensMapper.ConvertToken(ctx, deposit.SourceTokenBytes) if err != nil { return nil, fmt.Errorf("%w while converting token bytes, transfer index %d", err, transferIndex) } - cachedTokens[deposit.DisplayableToken] = deposit.ConvertedTokenBytes + cachedTokens[deposit.DisplayableToken] = deposit.DestinationTokenBytes } else { - deposit.ConvertedTokenBytes = storedConvertedTokenBytes + deposit.DestinationTokenBytes = storedConvertedTokenBytes } batch.Deposits = append(batch.Deposits, deposit) @@ -317,7 +317,7 @@ func (c *client) ProposeTransfer(ctx context.Context, batch *clients.TransferBat for _, dt := range batch.Deposits { txBuilder.ArgBytes(dt.FromBytes). ArgBytes(dt.ToBytes). - ArgBytes(dt.ConvertedTokenBytes). + ArgBytes(dt.DestinationTokenBytes). ArgBigInt(dt.Amount). ArgInt64(int64(dt.Nonce)) diff --git a/clients/multiversx/client_test.go b/clients/multiversx/client_test.go index 425ce5d0..3ea04ccb 100644 --- a/clients/multiversx/client_test.go +++ b/clients/multiversx/client_test.go @@ -336,26 +336,26 @@ func TestClient_GetPending(t *testing.T) { ID: 44562, Deposits: []*clients.DepositTransfer{ { - Nonce: 5000, - ToBytes: bytes.Repeat([]byte{2}, 20), - DisplayableTo: "0x0202020202020202020202020202020202020202", - FromBytes: bytes.Repeat([]byte{1}, 32), - DisplayableFrom: "erd1qyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqsl6e0p7", - TokenBytes: tokenBytes1, - ConvertedTokenBytes: append([]byte("converted_"), tokenBytes1...), - DisplayableToken: string(tokenBytes1), - Amount: big.NewInt(10000), + Nonce: 5000, + ToBytes: bytes.Repeat([]byte{2}, 20), + DisplayableTo: "0x0202020202020202020202020202020202020202", + FromBytes: bytes.Repeat([]byte{1}, 32), + DisplayableFrom: "erd1qyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqsl6e0p7", + SourceTokenBytes: tokenBytes1, + DestinationTokenBytes: append([]byte("converted_"), tokenBytes1...), + DisplayableToken: string(tokenBytes1), + Amount: big.NewInt(10000), }, { - Nonce: 5001, - ToBytes: bytes.Repeat([]byte{5}, 20), - DisplayableTo: "0x0505050505050505050505050505050505050505", - FromBytes: bytes.Repeat([]byte{4}, 32), - DisplayableFrom: "erd1qszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqxjfvxn", - TokenBytes: tokenBytes2, - ConvertedTokenBytes: append([]byte("converted_"), tokenBytes2...), - DisplayableToken: string(tokenBytes2), - Amount: big.NewInt(20000), + Nonce: 5001, + ToBytes: bytes.Repeat([]byte{5}, 20), + DisplayableTo: "0x0505050505050505050505050505050505050505", + FromBytes: bytes.Repeat([]byte{4}, 32), + DisplayableFrom: "erd1qszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqxjfvxn", + SourceTokenBytes: tokenBytes2, + DestinationTokenBytes: append([]byte("converted_"), tokenBytes2...), + DisplayableToken: string(tokenBytes2), + Amount: big.NewInt(20000), }, }, Statuses: make([]byte, 2), @@ -606,7 +606,7 @@ func depositToStrings(dt *clients.DepositTransfer) []string { result := []string{ hex.EncodeToString(dt.FromBytes), hex.EncodeToString(dt.ToBytes), - hex.EncodeToString(dt.ConvertedTokenBytes), + hex.EncodeToString(dt.DestinationTokenBytes), hex.EncodeToString(dt.Amount.Bytes()), hex.EncodeToString(big.NewInt(int64(dt.Nonce)).Bytes()), } diff --git a/clients/multiversx/mxClientDataGetter.go b/clients/multiversx/mxClientDataGetter.go index 97331632..ed880ceb 100644 --- a/clients/multiversx/mxClientDataGetter.go +++ b/clients/multiversx/mxClientDataGetter.go @@ -472,7 +472,7 @@ func addBatchInfo(builder builders.VMQueryBuilder, batch *clients.TransferBatch) for _, dt := range batch.Deposits { builder.ArgBytes(dt.FromBytes). ArgBytes(dt.ToBytes). - ArgBytes(dt.ConvertedTokenBytes). + ArgBytes(dt.DestinationTokenBytes). ArgBigInt(dt.Amount). ArgInt64(int64(dt.Nonce)) diff --git a/clients/multiversx/mxClientDataGetter_test.go b/clients/multiversx/mxClientDataGetter_test.go index 06e2ab2c..b9ba823f 100644 --- a/clients/multiversx/mxClientDataGetter_test.go +++ b/clients/multiversx/mxClientDataGetter_test.go @@ -65,26 +65,26 @@ func createMockBatch() *clients.TransferBatch { ID: 112233, Deposits: []*clients.DepositTransfer{ { - Nonce: 1, - ToBytes: []byte("to1"), - DisplayableTo: "to1", - FromBytes: []byte("from1"), - DisplayableFrom: "from1", - TokenBytes: []byte("token1"), - ConvertedTokenBytes: []byte("converted_token1"), - DisplayableToken: "token1", - Amount: big.NewInt(2), + Nonce: 1, + ToBytes: []byte("to1"), + DisplayableTo: "to1", + FromBytes: []byte("from1"), + DisplayableFrom: "from1", + SourceTokenBytes: []byte("token1"), + DestinationTokenBytes: []byte("converted_token1"), + DisplayableToken: "token1", + Amount: big.NewInt(2), }, { - Nonce: 3, - ToBytes: []byte("to2"), - DisplayableTo: "to2", - FromBytes: []byte("from2"), - DisplayableFrom: "from2", - TokenBytes: []byte("token2"), - ConvertedTokenBytes: []byte("converted_token2"), - DisplayableToken: "token2", - Amount: big.NewInt(4), + Nonce: 3, + ToBytes: []byte("to2"), + DisplayableTo: "to2", + FromBytes: []byte("from2"), + DisplayableFrom: "from2", + SourceTokenBytes: []byte("token2"), + DestinationTokenBytes: []byte("converted_token2"), + DisplayableToken: "token2", + Amount: big.NewInt(4), }, }, Statuses: []byte{clients.Rejected, clients.Executed}, diff --git a/core/batchProcessor/batchProcessor.go b/core/batchProcessor/batchProcessor.go index 3d7240cd..e45436f6 100644 --- a/core/batchProcessor/batchProcessor.go +++ b/core/batchProcessor/batchProcessor.go @@ -1,30 +1,32 @@ package batchProcessor import ( + "math/big" + "github.com/ethereum/go-ethereum/common" "github.com/multiversx/mx-bridge-eth-go/clients" - "math/big" ) // ArgListsBatch is a struct that contains the batch data in a format that is easy to use type ArgListsBatch struct { - Tokens []common.Address - Recipients []common.Address - ConvertedTokenBytes [][]byte - Amounts []*big.Int - Nonces []*big.Int + EthTokens []common.Address + Recipients []common.Address + MvxTokenBytes [][]byte + Amounts []*big.Int + Nonces []*big.Int } -// ExtractList will extract the batch data into a format that is easy to use -func ExtractList(batch *clients.TransferBatch) (*ArgListsBatch, error) { +// ExtractListMvxToEth will extract the batch data into a format that is easy to use +// The transfer is from MultiversX to Ethereum +func ExtractListMvxToEth(batch *clients.TransferBatch) (*ArgListsBatch, error) { arg := ArgListsBatch{} for _, dt := range batch.Deposits { recipient := common.BytesToAddress(dt.ToBytes) arg.Recipients = append(arg.Recipients, recipient) - token := common.BytesToAddress(dt.ConvertedTokenBytes) - arg.Tokens = append(arg.Tokens, token) + token := common.BytesToAddress(dt.DestinationTokenBytes) + arg.EthTokens = append(arg.EthTokens, token) amount := big.NewInt(0).Set(dt.Amount) arg.Amounts = append(arg.Amounts, amount) @@ -32,7 +34,7 @@ func ExtractList(batch *clients.TransferBatch) (*ArgListsBatch, error) { nonce := big.NewInt(0).SetUint64(dt.Nonce) arg.Nonces = append(arg.Nonces, nonce) - arg.ConvertedTokenBytes = append(arg.ConvertedTokenBytes, dt.ConvertedTokenBytes) + arg.MvxTokenBytes = append(arg.MvxTokenBytes, dt.SourceTokenBytes) } return &arg, nil