Added ownership reference + wallet creation methods
This commit is contained in:
45
api/server/internal/mutil/proto/chain.go
Normal file
45
api/server/internal/mutil/proto/chain.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package proto
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/tech/sendico/pkg/merrors"
|
||||
"github.com/tech/sendico/pkg/model"
|
||||
chainv1 "github.com/tech/sendico/pkg/proto/gateway/chain/v1"
|
||||
)
|
||||
|
||||
func Network2Proto(network model.ChainNetwork) (chainv1.ChainNetwork, error) {
|
||||
switch network {
|
||||
case model.ChainNetworkARB:
|
||||
return chainv1.ChainNetwork_CHAIN_NETWORK_ARBITRUM_ONE, nil
|
||||
case model.ChainNetworkEthMain:
|
||||
return chainv1.ChainNetwork_CHAIN_NETWORK_ETHEREUM_MAINNET, nil
|
||||
case model.ChainNetworkTronMain:
|
||||
return chainv1.ChainNetwork_CHAIN_NETWORK_TRON_MAINNET, nil
|
||||
case model.ChainNetworkTronNile:
|
||||
return chainv1.ChainNetwork_CHAIN_NETWORK_TRON_NILE, nil
|
||||
case model.ChainNetworkUnspecified:
|
||||
return chainv1.ChainNetwork_CHAIN_NETWORK_UNSPECIFIED, nil
|
||||
default:
|
||||
return chainv1.ChainNetwork_CHAIN_NETWORK_UNSPECIFIED, merrors.InvalidArgument(fmt.Sprintf("Unkwnown chain network value '%s'", network), "network")
|
||||
}
|
||||
}
|
||||
|
||||
func Asset2Proto(asset *model.ChainAsset) (*chainv1.Asset, error) {
|
||||
if asset == nil {
|
||||
return nil, merrors.InvalidArgument("Asset must be provided", "asset")
|
||||
}
|
||||
netw, err := Network2Proto(asset.Chain)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var contract string
|
||||
if asset.ContractAddress != nil {
|
||||
contract = *asset.ContractAddress
|
||||
}
|
||||
return &chainv1.Asset{
|
||||
Chain: netw,
|
||||
TokenSymbol: asset.TokenSymbol,
|
||||
ContractAddress: contract,
|
||||
}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user