tron driver removed

This commit is contained in:
Stephan D
2026-01-30 15:42:50 +01:00
parent 51f5b0804a
commit bc46eccbe0
25 changed files with 247 additions and 894 deletions

View File

@@ -9,6 +9,7 @@ import (
chainasset "github.com/tech/sendico/pkg/chain"
"github.com/tech/sendico/pkg/merrors"
pmodel "github.com/tech/sendico/pkg/model"
describablev1 "github.com/tech/sendico/pkg/proto/common/describable/v1"
moneyv1 "github.com/tech/sendico/pkg/proto/common/money/v1"
paginationv1 "github.com/tech/sendico/pkg/proto/common/pagination/v1"
@@ -18,6 +19,7 @@ import (
"google.golang.org/grpc/credentials"
"google.golang.org/grpc/credentials/insecure"
"google.golang.org/protobuf/types/known/structpb"
"google.golang.org/protobuf/types/known/wrapperspb"
)
const chainConnectorID = "chain"
@@ -149,17 +151,17 @@ func (c *chainGatewayClient) ListManagedWallets(ctx context.Context, req *chainv
ctx, cancel := c.callContext(ctx)
defer cancel()
assetString := ""
ownerRef := ""
orgRef := ""
var page *paginationv1.CursorPageRequest
var ownerRefFilter *wrapperspb.StringValue
if req != nil {
assetString = chainasset.AssetString(req.GetAsset())
ownerRef = strings.TrimSpace(req.GetOwnerRef())
orgRef = strings.TrimSpace(req.GetOrganizationRef())
ownerRefFilter = req.GetOwnerRefFilter()
page = req.GetPage()
}
resp, err := c.client.ListAccounts(ctx, &connectorv1.ListAccountsRequest{
OwnerRef: ownerRef,
OwnerRefFilter: ownerRefFilter,
OrganizationRef: orgRef,
Kind: connectorv1.AccountKind_CHAIN_MANAGED_WALLET,
Asset: assetString,
@@ -448,6 +450,7 @@ func operationFromTransfer(req *chainv1.SubmitTransferRequest) (*connectorv1.Ope
return nil, err
}
op.To = to
setOperationRolesFromMetadata(op, req.GetMetadata())
return op, nil
}
@@ -465,6 +468,22 @@ func destinationToParty(dest *chainv1.TransferDestination) (*connectorv1.Operati
}
}
func setOperationRolesFromMetadata(op *connectorv1.Operation, metadata map[string]string) {
if op == nil || len(metadata) == 0 {
return
}
if raw := strings.TrimSpace(metadata[pmodel.MetadataKeyFromRole]); raw != "" {
if role, ok := pmodel.Parse(raw); ok && role != "" {
op.FromRole = pmodel.ToProto(role)
}
}
if raw := strings.TrimSpace(metadata[pmodel.MetadataKeyToRole]); raw != "" {
if role, ok := pmodel.Parse(raw); ok && role != "" {
op.ToRole = pmodel.ToProto(role)
}
}
}
func transferFromReceipt(req *chainv1.SubmitTransferRequest, receipt *connectorv1.OperationReceipt) *chainv1.Transfer {
transfer := &chainv1.Transfer{}
if req != nil {

View File

@@ -8,6 +8,7 @@ import (
connectorv1 "github.com/tech/sendico/pkg/proto/connector/v1"
chainv1 "github.com/tech/sendico/pkg/proto/gateway/chain/v1"
"google.golang.org/grpc"
"google.golang.org/protobuf/types/known/wrapperspb"
)
type stubConnectorClient struct {
@@ -53,7 +54,7 @@ func TestListManagedWallets_ForwardsOrganizationRef(t *testing.T) {
_, err := client.ListManagedWallets(context.Background(), &chainv1.ListManagedWalletsRequest{
OrganizationRef: "org-1",
OwnerRef: "owner-1",
OwnerRefFilter: wrapperspb.String("owner-1"),
Asset: &chainv1.Asset{
Chain: chainv1.ChainNetwork_CHAIN_NETWORK_ETHEREUM_MAINNET,
TokenSymbol: "USDC",
@@ -62,6 +63,6 @@ func TestListManagedWallets_ForwardsOrganizationRef(t *testing.T) {
require.NoError(t, err)
require.NotNil(t, stub.listReq)
require.Equal(t, "org-1", stub.listReq.GetOrganizationRef())
require.Equal(t, "owner-1", stub.listReq.GetOwnerRef())
require.Equal(t, "owner-1", stub.listReq.GetOwnerRefFilter().GetValue())
require.Equal(t, connectorv1.AccountKind_CHAIN_MANAGED_WALLET, stub.listReq.GetKind())
}

View File

@@ -5,6 +5,7 @@ import (
"strings"
"github.com/tech/sendico/pkg/merrors"
pmodel "github.com/tech/sendico/pkg/model"
"github.com/tech/sendico/pkg/payments/rail"
moneyv1 "github.com/tech/sendico/pkg/proto/common/money/v1"
chainv1 "github.com/tech/sendico/pkg/proto/gateway/chain/v1"
@@ -106,7 +107,7 @@ func (g *chainRailGateway) Send(ctx context.Context, req rail.TransferRequest) (
Amount: amountValue,
},
Fees: fees,
Metadata: cloneMetadata(req.Metadata),
Metadata: transferMetadataWithRoles(req.Metadata, req.FromRole, req.ToRole),
ClientReference: strings.TrimSpace(req.ClientReference),
})
if err != nil {
@@ -254,6 +255,26 @@ func railMoneyFromProto(m *moneyv1.Money) *rail.Money {
}
}
func transferMetadataWithRoles(metadata map[string]string, fromRole, toRole pmodel.AccountRole) map[string]string {
result := cloneMetadata(metadata)
if strings.TrimSpace(string(fromRole)) != "" {
if result == nil {
result = map[string]string{}
}
result[pmodel.MetadataKeyFromRole] = strings.TrimSpace(string(fromRole))
}
if strings.TrimSpace(string(toRole)) != "" {
if result == nil {
result = map[string]string{}
}
result[pmodel.MetadataKeyToRole] = strings.TrimSpace(string(toRole))
}
if len(result) == 0 {
return nil
}
return result
}
func cloneMetadata(input map[string]string) map[string]string {
if len(input) == 0 {
return nil