Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import (
"math/big"
)

type EvmFungibleToken interface {
type EvmRegularToken interface {
Decimals(opts *bind.CallOpts) (uint8, error)
Name(opts *bind.CallOpts) (string, error)
Symbol(opts *bind.CallOpts) (string, error)
Expand Down
4 changes: 2 additions & 2 deletions app/domain/service/assets.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,6 @@ type Assets interface {
FungibleAssetInfo(networkId uint64, assetAddress string) (assetInfo *assetModel.FungibleAssetInfo, exist bool)
// FetchHederaTokenReserveAmount Gets Hedera's Token Reserve Amount
FetchHederaTokenReserveAmount(assetId string, mirrorNode client.MirrorNode, isNative bool, hederaTokenBalances map[string]int) (reserveAmount *big.Int, err error)
// FetchEvmFungibleReserveAmount Gets EVM's Fungible Token Reserve Amount
FetchEvmFungibleReserveAmount(networkId uint64, assetAddress string, isNative bool, evmTokenClient client.EvmFungibleToken, routerContractAddress string) (inLowestDenomination *big.Int, err error)
// FetchEvmRegularReserveAmount Gets EVM's Fungible Token Reserve Amount
FetchEvmRegularReserveAmount(networkId uint64, assetAddress string, isNative bool, evmTokenClient client.EvmRegularToken, routerContractAddress string) (inLowestDenomination *big.Int, err error)
}
1 change: 1 addition & 0 deletions app/model/asset/asset.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ type NativeAsset struct {
ChainId uint64
Asset string
FeePercentage int64
ReleaseTimestamp uint64
}

type FungibleAssetInfo struct {
Expand Down
2 changes: 1 addition & 1 deletion app/model/bridge-config-event/params.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,6 @@ import (
type Params struct {
Bridge *config.Bridge
ParsedBridge *parser.Bridge
EvmFungibleTokenClients map[uint64]map[string]client.EvmFungibleToken
EvmRegularTokenClients map[uint64]map[string]client.EvmRegularToken
RouterClients map[uint64]client.DiamondRouter
}
12 changes: 6 additions & 6 deletions app/process/watcher/assets/watcher.go
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ var (

type Watcher struct {
mirrorNode client.MirrorNode
evmFungibleTokenClients map[uint64]map[string]client.EvmFungibleToken
evmRegularTokenClients map[uint64]map[string]client.EvmRegularToken
bridgeCfg *config.Bridge
assetsService service.Assets
paused bool
Expand All @@ -49,13 +49,13 @@ type Watcher struct {
func NewWatcher(
mirrorNode client.MirrorNode,
bridgeCfg *config.Bridge,
EvmFungibleTokenClients map[uint64]map[string]client.EvmFungibleToken,
EvmRegularTokenClients map[uint64]map[string]client.EvmRegularToken,
assetsService service.Assets,
) *Watcher {

instance := &Watcher{
mirrorNode: mirrorNode,
evmFungibleTokenClients: EvmFungibleTokenClients,
evmRegularTokenClients: EvmRegularTokenClients,
bridgeCfg: bridgeCfg,
logger: config.GetLoggerFor(fmt.Sprintf("Assets Watcher on interval [%v]", sleepTime)),
assetsService: assetsService,
Expand Down Expand Up @@ -125,11 +125,11 @@ func (pw *Watcher) updateAssetInfo(networkId uint64, assetId string, hederaToken
if networkId == constants.HederaNetworkId {
reserveAmount, err = pw.assetsService.FetchHederaTokenReserveAmount(assetId, pw.mirrorNode, isNative, hederaTokenBalances)
} else {
reserveAmount, err = pw.assetsService.FetchEvmFungibleReserveAmount(
reserveAmount, err = pw.assetsService.FetchEvmRegularReserveAmount(
networkId,
assetId,
isNative,
pw.evmFungibleTokenClients[networkId][assetId],
pw.evmRegularTokenClients[networkId][assetId],
pw.bridgeCfg.EVMs[networkId].RouterContractAddress,
)
}
Expand All @@ -152,7 +152,7 @@ func bridgeCfgUpdateEventHandler(e event.Event, instance *Watcher) error {
log.Errorf(errMsg)
return errors.New(errMsg)
}
instance.evmFungibleTokenClients = params.EvmFungibleTokenClients
instance.evmRegularTokenClients = params.EvmRegularTokenClients
instance.bridgeCfg = params.Bridge
instance.watchIteration()

Expand Down
8 changes: 4 additions & 4 deletions app/process/watcher/prometheus/watcher.go
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ var (
type Watcher struct {
dashboardPolling time.Duration
mirrorNode client.MirrorNode
evmFungibleTokenClients map[uint64]map[string]client.EvmFungibleToken
evmRegularTokenClients map[uint64]map[string]client.EvmRegularToken
bridgeCfg *config.Bridge
prometheusService service.Prometheus
logger *log.Entry
Expand All @@ -69,13 +69,13 @@ func NewWatcher(
mirrorNode client.MirrorNode,
bridgeCfg *config.Bridge,
prometheusService service.Prometheus,
EvmFungibleTokenClients map[uint64]map[string]client.EvmFungibleToken,
EvmRegularTokenClients map[uint64]map[string]client.EvmRegularToken,
assetsService service.Assets,
) *Watcher {
instance := &Watcher{
dashboardPolling: dashboardPolling,
mirrorNode: mirrorNode,
evmFungibleTokenClients: EvmFungibleTokenClients,
evmRegularTokenClients: EvmRegularTokenClients,
bridgeCfg: bridgeCfg,
prometheusService: prometheusService,
logger: config.GetLoggerFor(fmt.Sprintf("Prometheus Metrics Watcher on interval [%s]", dashboardPolling)),
Expand Down Expand Up @@ -368,7 +368,7 @@ func bridgeCfgUpdateEventHandler(e event.Event, instance *Watcher) error {
log.Errorf(errMsg)
return errors.New(errMsg)
}
instance.evmFungibleTokenClients = params.EvmFungibleTokenClients
instance.evmRegularTokenClients = params.EvmRegularTokenClients
instance.bridgeCfg = params.Bridge
// Clear All Metrics
for _, metricsInNetwork := range instance.assetsMetrics {
Expand Down
14 changes: 0 additions & 14 deletions app/process/watcher/transfer/watcher_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ import (
iservice "github.com/limechain/hedera-eth-bridge-validator/app/domain/service"
"github.com/limechain/hedera-eth-bridge-validator/app/model/asset"
"github.com/limechain/hedera-eth-bridge-validator/app/model/pricing"
"github.com/limechain/hedera-eth-bridge-validator/config/parser"
"github.com/limechain/hedera-eth-bridge-validator/constants"
"github.com/limechain/hedera-eth-bridge-validator/test/mocks"
"github.com/shopspring/decimal"
Expand Down Expand Up @@ -66,19 +65,6 @@ var (
ConsensusTimestamp: "1631092491.483966000",
}

networks = map[uint64]*parser.Network{
network0: {
Tokens: parser.Tokens{
Fungible: map[string]parser.Token{
nativeTokenAddressNetwork0: {
Networks: map[uint64]string{
network3: wrappedTokenAddressNetwork3,
},
},
},
},
},
}
)

func Test_NewMemo_MissingWrappedCorrelation(t *testing.T) {
Expand Down
10 changes: 7 additions & 3 deletions app/router/assets/assets.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,12 +79,16 @@ func generateResponseContent(assetsService service.Assets, pricingService servic
fungibleAssetInfo, existInfo := assetsService.FungibleAssetInfo(networkId, assetAddress)
minAmount, existMinAmount := pricingService.GetTokenPriceInfo(networkId, assetAddress)
if existInfo && existMinAmount {
bridgeTokenInfo := bridgeCfg.Networks[networkId].Tokens.Fungible[assetAddress]
var nativeAsset *asset.NativeAsset
var tokenNetworks map[uint64]string
if !fungibleAssetInfo.IsNative {
nativeAsset = assetsService.WrappedToNative(assetAddress, networkId)
if nativeAsset != nil {
tokenNetworks = assetsService.WrappedFromNative(nativeAsset.ChainId, nativeAsset.Asset)
}
} else {
nativeAsset = assetsService.FungibleNativeAsset(networkId, assetAddress)
tokenNetworks = assetsService.WrappedFromNative(networkId, assetAddress)
}
feePercentage := nativeAsset.FeePercentage

Expand All @@ -93,9 +97,9 @@ func generateResponseContent(assetsService service.Assets, pricingService servic
FeePercentage: feePercentageInfo{feePercentage, constants.FeeMaxPercentage},
MinAmount: minAmount.MinAmountWithFee.String(),
UsdPrice: minAmount.UsdPrice.String(),
Networks: bridgeTokenInfo.Networks,
Networks: tokenNetworks,
ReserveAmount: fungibleAssetInfo.ReserveAmount.String(),
ReleaseTimestamp: bridgeTokenInfo.ReleaseTimestamp,
ReleaseTimestamp: nativeAsset.ReleaseTimestamp,
}
response[networkId].Fungible[assetAddress] = fungibleAssetDetails
}
Expand Down
7 changes: 7 additions & 0 deletions app/router/assets/assets_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,16 @@ func Test_assetsResponse(t *testing.T) {
if fungibleAssetInfo.IsNative {
mocks.MAssetsService.On("FungibleNativeAsset", networkId, networkAsset).
Return(testConstants.FungibleNativeAssets[networkId][networkAsset], true)
mocks.MAssetsService.On("WrappedFromNative", networkId, networkAsset).
Return(testConstants.NativeToWrapped[networkId][networkAsset])
} else {
mocks.MAssetsService.On("WrappedToNative", networkAsset, networkId).
Return(testConstants.WrappedToNative[networkId][networkAsset], true)
wrappedNative := testConstants.WrappedToNative[networkId][networkAsset]
if wrappedNative != nil {
mocks.MAssetsService.On("WrappedFromNative", wrappedNative.ChainId, wrappedNative.Asset).
Return(testConstants.NativeToWrapped[wrappedNative.ChainId][wrappedNative.Asset])
}
}
}
}
Expand Down
Loading
Loading