model.go (1978B)
1 package main 2 3 import ( 4 "fmt" 5 ) 6 7 // https://docs.taler.net/core/api-common.html#hash-codes 8 type WithdrawalIdentifier string 9 10 // https://docs.taler.net/core/api-common.html#cryptographic-primitives 11 type EddsaPublicKey string 12 13 // https://docs.taler.net/core/api-common.html#hash-codes 14 type HashCode string 15 16 // https://docs.taler.net/core/api-common.html#hash-codes 17 type ShortHashCode string 18 19 // https://docs.taler.net/core/api-common.html#timestamps 20 type Timestamp struct { 21 Ts int `json:"t_s"` 22 } 23 24 // https://docs.taler.net/core/api-common.html#wadid 25 type WadId [6]uint32 26 27 // according to https://docs.taler.net/core/api-bank-integration.html#tsref-type-BankWithdrawalOperationStatus 28 type WithdrawalOperationStatus string 29 30 const ( 31 PENDING WithdrawalOperationStatus = "pending" 32 SELECTED WithdrawalOperationStatus = "selected" 33 ABORTED WithdrawalOperationStatus = "aborted" 34 CONFIRMED WithdrawalOperationStatus = "confirmed" 35 ) 36 37 func ToWithdrawalOpStatus(s string) (WithdrawalOperationStatus, error) { 38 switch s { 39 case string(PENDING): 40 return PENDING, nil 41 case string(SELECTED): 42 return SELECTED, nil 43 case string(ABORTED): 44 return ABORTED, nil 45 case string(CONFIRMED): 46 return CONFIRMED, nil 47 default: 48 return "", fmt.Errorf("unknown withdrawal operation status '%s'", s) 49 } 50 } 51 52 type C2ECWithdrawRegistration struct { 53 ReservePubKey EddsaPublicKey `json:"reserve_pub_key"` 54 } 55 56 type C2ECWithdrawalStatus struct { 57 Status WithdrawalOperationStatus `json:"status"` 58 Amount string `json:"amount"` 59 CardFees string `json:"card_fees"` 60 SenderWire string `json:"sender_wire"` 61 WireTypes []string `json:"wire_types"` 62 ReservePubKey EddsaPublicKey `json:"selected_reserve_pub"` 63 Aborted bool `json:"aborted"` 64 SelectionDone bool `json:"selection_done"` 65 TransferDone bool `json:"transfer_done"` 66 }