status-go/services/wallet/onramp/provider_moonpay.go

51 lines
7.8 KiB
Go

package onramp
import (
"context"
"fmt"
walletCommon "github.com/status-im/status-go/services/wallet/common"
)
const moonpayID = "moonpay"
const moonpayURL = "https://buy.moonpay.com/?apiKey=pk_live_YQC6CQPA5qqDu0unEwHJyAYQyeIqFGR"
type MoonPayProvider struct{}
func NewMoonPayProvider() *MoonPayProvider {
return &MoonPayProvider{}
}
func (p *MoonPayProvider) ID() string {
return moonpayID
}
func (p *MoonPayProvider) GetCryptoOnRamp(ctx context.Context) (CryptoOnRamp, error) {
const (
logoMoonPay = "data:image/jpeg;base64,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"
)
onramp := CryptoOnRamp{
ID: moonpayID,
Name: "MoonPay",
Description: "The new standard for fiat to crypto",
Fees: "1% - 4.5%",
LogoURL: logoMoonPay,
Hostname: "moonpay.com",
SupportsSinglePurchase: true,
SupportsRecurrentPurchase: false,
SupportedChainIDs: []uint64{walletCommon.EthereumMainnet, walletCommon.ArbitrumMainnet, walletCommon.OptimismMainnet},
URLsNeedParameters: false,
SiteURL: moonpayURL,
}
return onramp, nil
}
func (p *MoonPayProvider) GetURL(ctx context.Context, parameters Parameters) (string, error) {
if !parameters.IsRecurrent {
return moonpayURL, nil
}
return "", fmt.Errorf("Recurrent transactions are not supported by MoonPay")
}