package model import ( "strings" "testing" ) func TestTransferNormalizePreservesBase58ExternalAddress(t *testing.T) { address := "TGBDXEg9rxSqGFJDcb889zqTjDwx1bmLRF" transfer := &Transfer{ IdempotencyKey: "idemp", TransferRef: "ref", OrganizationRef: "org", SourceWalletRef: "wallet", Network: "tron_mainnet", TokenSymbol: "USDT", Destination: TransferDestination{ ExternalAddress: address, ExternalAddressOriginal: address, }, } transfer.Normalize() if transfer.Destination.ExternalAddress != address { t.Fatalf("expected external address to preserve case, got %q", transfer.Destination.ExternalAddress) } if transfer.Destination.ExternalAddressOriginal != address { t.Fatalf("expected external address original to preserve case, got %q", transfer.Destination.ExternalAddressOriginal) } } func TestTransferNormalizeLowercasesHexExternalAddress(t *testing.T) { address := "0xAABBCCDDEEFF00112233445566778899AABBCCDD" transfer := &Transfer{ Destination: TransferDestination{ ExternalAddress: address, ExternalAddressOriginal: address, }, } transfer.Normalize() if transfer.Destination.ExternalAddress != strings.ToLower(address) { t.Fatalf("expected hex external address to be lowercased, got %q", transfer.Destination.ExternalAddress) } if transfer.Destination.ExternalAddressOriginal != address { t.Fatalf("expected external address original to preserve case, got %q", transfer.Destination.ExternalAddressOriginal) } }