Bootstrap copied BFF and local accounts with public Sendico contracts (#34)
This commit is contained in:
1 parent
67dc5b5b1e
commit
7062672a87
556 files changed
+42291
-777
No files matched your search
@@ -0,0 +1,105 @@
|
||||
package model
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"git.sendico.io/tech/sxchnge/bff/pkg/db/storable"
|
||||
"git.sendico.io/tech/sxchnge/bff/pkg/mservice"
|
||||
)
|
||||
|
||||
type WalletProvisioningState string
|
||||
|
||||
const (
|
||||
WalletProvisioningStateProvisioning WalletProvisioningState = "provisioning"
|
||||
WalletProvisioningStateCompleted WalletProvisioningState = "completed"
|
||||
WalletProvisioningStateFailed WalletProvisioningState = "failed"
|
||||
)
|
||||
|
||||
type WalletProvisioningTargetState string
|
||||
|
||||
const (
|
||||
WalletProvisioningTargetStatePending WalletProvisioningTargetState = "pending"
|
||||
WalletProvisioningTargetStateWalletReady WalletProvisioningTargetState = "wallet_ready"
|
||||
WalletProvisioningTargetStateSuspended WalletProvisioningTargetState = "suspended"
|
||||
WalletProvisioningTargetStateRouted WalletProvisioningTargetState = "routed"
|
||||
)
|
||||
|
||||
type WalletProvisioningTarget struct {
|
||||
TargetID string `bson:"targetId" json:"targetId"`
|
||||
Chain ChainNetwork `bson:"chain" json:"chain"`
|
||||
Currency string `bson:"currency" json:"currency"`
|
||||
ContractAddress string `bson:"contractAddress,omitempty" json:"contractAddress,omitempty"`
|
||||
GatewayID string `bson:"gatewayId,omitempty" json:"gatewayId,omitempty"`
|
||||
GatewayURI string `bson:"gatewayUri,omitempty" json:"gatewayUri,omitempty"`
|
||||
WalletIdempotencyKey string `bson:"walletIdempotencyKey,omitempty" json:"walletIdempotencyKey,omitempty"`
|
||||
State WalletProvisioningTargetState `bson:"state" json:"state"`
|
||||
WalletRef string `bson:"walletRef,omitempty" json:"walletRef,omitempty"`
|
||||
Address string `bson:"address,omitempty" json:"address,omitempty"`
|
||||
RouteRef string `bson:"routeRef,omitempty" json:"routeRef,omitempty"`
|
||||
LastError string `bson:"lastError,omitempty" json:"lastError,omitempty"`
|
||||
}
|
||||
|
||||
func (t *WalletProvisioningTarget) Normalize() {
|
||||
if t == nil {
|
||||
return
|
||||
}
|
||||
t.TargetID = strings.TrimSpace(t.TargetID)
|
||||
t.Currency = strings.ToUpper(strings.TrimSpace(t.Currency))
|
||||
t.ContractAddress = strings.TrimSpace(t.ContractAddress)
|
||||
if strings.HasPrefix(strings.ToLower(t.ContractAddress), "0x") {
|
||||
t.ContractAddress = strings.ToLower(t.ContractAddress)
|
||||
}
|
||||
t.GatewayID = strings.TrimSpace(t.GatewayID)
|
||||
t.GatewayURI = strings.TrimSpace(t.GatewayURI)
|
||||
t.WalletIdempotencyKey = strings.TrimSpace(t.WalletIdempotencyKey)
|
||||
t.WalletRef = strings.TrimSpace(t.WalletRef)
|
||||
t.Address = strings.TrimSpace(t.Address)
|
||||
t.RouteRef = strings.TrimSpace(t.RouteRef)
|
||||
t.LastError = strings.TrimSpace(t.LastError)
|
||||
if t.State == "" {
|
||||
t.State = WalletProvisioningTargetStatePending
|
||||
}
|
||||
}
|
||||
|
||||
type WalletProvisioningRecord struct {
|
||||
storable.Base `bson:",inline" json:",inline"`
|
||||
|
||||
ProvisioningRef string `bson:"provisioningRef" json:"provisioningRef"`
|
||||
OrganizationRef string `bson:"organizationRef" json:"organizationRef"`
|
||||
OwnerRef string `bson:"ownerRef,omitempty" json:"ownerRef,omitempty"`
|
||||
LedgerAccountRef string `bson:"ledgerAccountRef" json:"ledgerAccountRef"`
|
||||
ActorRef string `bson:"actorRef,omitempty" json:"actorRef,omitempty"`
|
||||
Reason string `bson:"reason" json:"reason"`
|
||||
Currency string `bson:"currency" json:"currency"`
|
||||
State WalletProvisioningState `bson:"state" json:"state"`
|
||||
Targets []WalletProvisioningTarget `bson:"targets" json:"targets"`
|
||||
LastError string `bson:"lastError,omitempty" json:"lastError,omitempty"`
|
||||
// Version fences concurrent journal writers: Save replaces only the
|
||||
// revision this attempt read, so a stale attempt whose lease was taken
|
||||
// over cannot roll back the checkpoints of the attempt that owns it now.
|
||||
Version int64 `bson:"version" json:"-"`
|
||||
}
|
||||
|
||||
func (*WalletProvisioningRecord) Collection() string {
|
||||
return mservice.WalletProvisioning
|
||||
}
|
||||
|
||||
func (r *WalletProvisioningRecord) Normalize() {
|
||||
if r == nil {
|
||||
return
|
||||
}
|
||||
r.ProvisioningRef = strings.TrimSpace(r.ProvisioningRef)
|
||||
r.OrganizationRef = strings.TrimSpace(r.OrganizationRef)
|
||||
r.OwnerRef = strings.TrimSpace(r.OwnerRef)
|
||||
r.LedgerAccountRef = strings.TrimSpace(r.LedgerAccountRef)
|
||||
r.ActorRef = strings.TrimSpace(r.ActorRef)
|
||||
r.Reason = strings.TrimSpace(r.Reason)
|
||||
r.Currency = strings.ToUpper(strings.TrimSpace(r.Currency))
|
||||
r.LastError = strings.TrimSpace(r.LastError)
|
||||
for index := range r.Targets {
|
||||
r.Targets[index].Normalize()
|
||||
}
|
||||
if r.State == "" {
|
||||
r.State = WalletProvisioningStateProvisioning
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user