diff --git a/services/wallet/api.go b/services/wallet/api.go index c3f7c4890..e04695d9c 100644 --- a/services/wallet/api.go +++ b/services/wallet/api.go @@ -180,6 +180,23 @@ func (api *API) GetFavourites(ctx context.Context) ([]*Favourite, error) { func (api *API) AddFavourite(ctx context.Context, favourite Favourite) error { log.Debug("call to create or update favourites") err := api.s.db.AddFavourite(favourite) - log.Debug("result from database for create or update favouritesn", "err", err) + log.Debug("result from database for create or update favourites", "err", err) return err } + +func (api *API) GetCryptoOnRamps(ctx context.Context) ([]CryptoOnRamp, error) { + if api.s.cryptoOnRampManager == nil { + // TODO Add settings and then build options based on settings + opts := &CryptoOnRampOptions{ + dataSourceType: DataSourceStatic, + } + api.s.cryptoOnRampManager = NewCryptoOnRampManager(opts) + } + + rs, err := api.s.cryptoOnRampManager.Get() + if err != nil { + return nil, err + } + + return rs, nil +} diff --git a/services/wallet/on_ramp.go b/services/wallet/on_ramp.go new file mode 100644 index 000000000..17a944ed7 --- /dev/null +++ b/services/wallet/on_ramp.go @@ -0,0 +1,170 @@ +package wallet + +import ( + "encoding/json" + "errors" + "fmt" + "io/ioutil" + "net/http" + "time" +) + +const ( + cryptoOnRampsData = "https://raw.githubusercontent.com/status-im/crypto-on-ramps/master/ramps.json" + + DataSourceHTTP DataSourceType = iota + 1 + DataSourceStatic +) + +type CryptoOnRamp struct { + Name string `json:"name"` + Description string `json:"description"` + Fees string `json:"fees"` + Region string `json:"region"` + LogoURL string `json:"logoUrl"` + SiteURL string `json:"siteUrl"` + Hostname string `json:"hostname"` +} + +type DataSourceType int + +type CryptoOnRampOptions struct { + dataSource string + dataSourceType DataSourceType +} + +type CryptoOnRampManager struct { + options *CryptoOnRampOptions + ramps []CryptoOnRamp + LastCalled time.Time +} + +func NewCryptoOnRampManager(options *CryptoOnRampOptions) *CryptoOnRampManager { + return &CryptoOnRampManager{ + options: options, + } +} + +func (c *CryptoOnRampManager) Get() ([]CryptoOnRamp, error) { + var data []byte + var err error + + switch c.options.dataSourceType { + case DataSourceHTTP: + if !c.hasCacheExpired(time.Now()) { + return c.ramps, nil + } + data, err = c.getFromHTTPDataSource() + c.LastCalled = time.Now() + case DataSourceStatic: + data, err = c.getFromStaticDataSource() + default: + return nil, fmt.Errorf("unsupported CryptoOnRampManager.dataSourceType '%d'", c.options.dataSourceType) + } + if err != nil { + return nil, err + } + + err = json.Unmarshal(data, &c.ramps) + if err != nil { + return nil, err + } + + return c.ramps, nil +} + +func (c *CryptoOnRampManager) hasCacheExpired(t time.Time) bool { + // If LastCalled + 1 hour is before the given time, then 1 hour hasn't passed yet + return c.LastCalled.Add(time.Hour).Before(t) +} + +func (c *CryptoOnRampManager) getFromHTTPDataSource() ([]byte, error) { + if c.options.dataSource == "" { + return nil, errors.New("data source is not set for CryptoOnRampManager") + } + + sgc := http.Client{ + Timeout: time.Second * 5, + } + + req, err := http.NewRequest(http.MethodGet, c.options.dataSource, nil) + if err != nil { + return nil, err + } + req.Header.Set("User-Agent", "status-go") + + res, err := sgc.Do(req) + if err != nil { + return nil, err + } + + if res.Body != nil { + defer res.Body.Close() + } + + body, err := ioutil.ReadAll(res.Body) + if err != nil { + return nil, err + } + + return body, nil +} + +func (c *CryptoOnRampManager) getFromStaticDataSource() ([]byte, error) { + logoWyre := "data:image/jpeg;base64,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PHPYtpSq1G74LDlAthxpLmXcQ9qAT2ZVdOWIAZ15flj2LuYlravr/Kvr/Kvt/Kklj4/tVg3ay896Jumkn6qQh+AuDsceNQcSc5f0Ov5TzasJlePJqNF1UQtwLYAroCy+I9f5krS7Vu/HWv0mv0iv0io8hsGE9m8qze/5XAOwJMDlTeSNWXyqzurKHD6f5uehdHn3fTwx+g8U/jOr6s/1YSwscdqhpwfBbbbItnw/2q5RFss7H/an/9oADAMBAAIAAwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAEEEEEEEEEEEEEEEEEEEEEEEEEAgQAAAAAAgAAAAAgQAAAAgQAAPNONOPPNONOPPMONOPPNONOPM44Yo4o444o4o44YoYo4o4oYo7PPLLPLPPLLPPPPOPPPPLPPPLMMMMs41AMMscscMMsMsMMMMMsMIII3zyAIIIMAA8MAM4cMUQIIIMMBfzgGoPSvVeSyMSbrCnMQMMAhDWRiY0Tm9/+jqo/2smpUcAgAAALzhiUAfzTKC7IBciLkMAAA0013nBQs000003Q8000000000CDCTDHQBCDCBCBCACBCBABCBA0000000000000000000000003DDDjDDCDDjTDDDDDDBCDDDDBB+98898+9+9+9+988+8+888+9/brbjTzTjTjTrbrbrbjTrTjTrT/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AO++++6+++++++++6+++++++++99999999999999999999999999999999999999999999999999wwwwwwwwwwwwwwwwwww0wwwww//EACYRAAMAAgIBAwMFAAAAAAAAAAABERAhMUFRIGGRQFBxYHCB4fD/2gAIAQMBAT8Q/a+lKUpSlKUuKXFKUpSlKUv1rkIIrap7RASb+mgm+amW2So004xeDDSq0xM2k8JqqTGESN+mzg0EbRDQq29FKI2SQlSdYq+WPl12KY1wUff8jG/5wJJKIveEyKSkAbOXyL7Bm4Kp8s6RDWJFCo1Dspc2JUStxB+cbLAsfljGiw2ghgX+4Is7bY5rFAJ8gWn0SvyXCPiIVFEkDPUF2frPsxGgf9GG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" + logoMoonPay := "data:image/jpeg;base64,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" + logoTransak := "data:image/jpeg;base64,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" + logoRamp := "data:image/png;base64,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" + logoLocalCryptos := "data:image/jpeg;base64,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VwcYVc+T/Y/239g7aeAnmJxOEmrxs5LRtVm2bhT2izbNwp7VZtm4U9qs2zcKe1WbZuFParNs3CntVm2bhT2qzbNwp7VZtm4U9qs3pdEcRi/eU3iMxryjCvMvEWLuEGfSBH32FParNWyQAvWHZNcv+w8FtUS6SN6fRdBo4fWcyLSoQkx95hT2qzVHjLaw4RBsD1ekm5LrdsfuJZ82e7wp7VZqVBATVwItSUS3mb1HC3MreQ+Pd4U9qs1Nj59Ypn4BZPlvgsTwQdCCX4II4s8DCl4XBdxMKCyJ+pg5xqfusKe1WagEVgQyc5WJwwdqEBMsVu3c4ICWQMKBLGklzCrObRvxyomYs5kX6y91hT2izUSnZSPspKakZNkWHnrVMZClGGPb4/MlVlyJdTFkCVLRH3WFPE2DclAidovSTTO68j0rz0sqOyAmxedo40GZN7BcbN3tmhSTOC7Yr62VNMH0Be40/wCuYV9ucIbkxkIAmB96rf0a/e971paiRYMEfqkCr5zsqsMeKX2sIEVb1/Ga6pEJoTLFaOA7DQZNT8RafFIecpjrKoFOiHmieEmKvHdNiSbmHOalQztswwYEMA4mZQsm3x1DcTmGiWL4Iv8AntsS+xbAcwpJOC0Rujhe5b1IuZXL6QqGuNx47QkX70okbGDexIGuFMXF67FtiLMMe/h6iSyYWFx2MZAJYjGOAsQ8oRGSST0XhhaPubiCYALA2RN+R37RMMBjQQlLP7vWERkkvwCsgnCMs/nl1iQ7iv4Wd4dJSznlu2aDIjMnFrPtoLkZkS/QR//aAAwDAQACAAMAAAAQ88888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888888jjN8888888888888888888888G8u8888888888888888888888W8+8888888888888888888888W8+8888888888888888888888W8+8888888888888888888888W8+8888DCG088888888888888W8+888ee/8AzsvPPPPPPPPPPPPFvPvPNf8Azhv/AMR888888888888W8+83/wDwvPP/AGjzzzzzzzzzzzxby/0j/u/zw6bzzzzzzzzzzzzxX777r39vzzzXzzzzzzzzzzzzzyw00P8A/g88/wD4PPPPPPPPPPPPPPPPPH/eQD3/AG/zzzzzzzzzzzzzzzzxXf33/v3zzzzzzzzzzzzzzzzzzwFNbuLzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz/8QAIREAAQQCAgIDAAAAAAAAAAAAAQAQETEhQCAwUXBBYXH/2gAIAQMBAT8Q9BgEmAwBnXs12vZrNezWa9ms17NZxiV9SisaFms4fKgAFPYInds1j4pMSAJKKMYwAgoiDHbZrGAkwgIENhHvESBaMGQ7bPDwgS5yXBhT3FHBZzppUqVEBeQeKTCBhqYAURI8pTTB0jnIQQkcQxDUBDIQFr8o+I9Dp//EACkRAQABAQYFBAMBAAAAAAAAAAERABAhMWGhwUBBUXGxMIGR0SDh8HD/2gAIAQIBAT8Q/wADhdLR0D5rAqy4fQblmgfHD6Dcs0D44fQblmgfHD6Dcs0D44fQblmgfH4uwJcqGw+J+qDkncTgNBuWaB8WgAlagGL/AC9+qiSGRYg0Iwz1Ln+71eW94Ozn62g3LNA+LYy3vwOti6EHNqMMzu+6hVeg3TtZhcv9PtWMSo9XQblmgfFijYoPmsMAIPawOPLO/NsFGSnNfIfv4qGAM2KYiRiXPL1dBuWGZYVlPgoLCJkWOFSOubNuKIpRKz6ycUSXfJUOtQqHWmQsMqgoPK1FAU4JHr51Z1Z1M43CT250M2OpgsnZv/VoQl7n2wPuj4kKEBEkoYTwROXkP372F5uGD/YlQQBkm8UHSOgvXYoCcBQCVdFlu7FxpwWLc5nU/sKk33OZ3/BYpLSZxHTob8IPYsqNgGl0u0oI3P1Ti5O7OxQbD6C4/fv/AIN//8QAKxABAAECAwcEAwEBAQAAAAAAAREAITFBYRAgUXGBofBAUJGxMMHR8ZDh/9oACAEBAAE/EP8AgH09vyqalJCwXBX6O1IWLV3YkAIvOS+1A3RgkTis/bXCkBVbb8ANudJgFBA6+2jTw9DbnXa+2xp4ehtzrs/bQ08PQ2512ftoaeHobc67P20NPD0Nuddn7aGnh6G3Ouz9tDTw9DbnXZ+2hp4ehtzrs/xiNt/XtPD0Nuddn+ETFWlziRyJlqxPfIhUzR1allB8S9FBywK+ZmgJER9c08PQ2512e6LRV6EG0ogDitDTmEmG549MGtWMHrWuCF05rTfHdjyxOec89lDLSxKR8r1J5UJY4QDmesaeHobc67PdGdS7UJnwAzXIrPkEjgTN0wO/4e9F+8BAcNXzR7JpZjmJkjZPVtPD0Nuddnuh8ZFoAJVpkPDB/wBD2LcZ2W29amMasbkOMdy2H1LLo5UQx6pp4ehtzrs90JEInMi26kehruYVPSkAYvAYrl1SoqXutPxIO60OBHql+ZpTqGd5D4ipMCIWJZGc+TXLcSiFEuJSvckOLaXqR1Vl6lp4ehtzrs9oypiQCq5BV+0HGBY9AVN42xMREYFwPFWOrlQ/YBwDaUynRMg5JQ5kPCs28fojnt6VLDENbFqGqJ6o08PQ2512+0FLm8HdUONYV6VhUXnackKLGZDlZUy3Rvz5TdHTJX+NhfCv2EC9YKa65mIHFluo0Avjj6pp4ehtxqbSuaJIezXin8rxT+Vd/n/KZriYokEnvuoagG1DPes92JxpyxYtPlKAjxNsVYy9W4V4ehuY1arVjXzB9bmhYUQIIA33nV/WZV5Gh+DyGm5M2Re9YHL8HT1oREQZiAR4TEzr+Dsb63RLZPjR/dZ7rzorwdza0wYt+6hCOIyesg4Ugq1xU1/iq/xVf4qv8VX+Kq5+lTpIBGQBfr3bttCK8FfYB61nup6RCgICmoS9KZG0olXiuzWezfahDgWpuQsiwTjOM+smpqampqaKkaGHGMvkbsYoULwEH4B6qN14ipMwFEecS6m4R+XOCELoj2NJIpgKFDDFA5M9G4W4eJBhVy3ScnymmJ3crbJo7AEN5Y04uXwVJbqPA4BoEBobil0lbvirkoKHsbndYi/2BEnJM91fEkGVxEwo0KYLxOEgvNmhQ4lUPif3QC8gM6gWjPGmTy0NNmOx0QQ4owFS3gRIHv1EvWs/Y8SmesAcfHmvw6RR+KYpKATmRs8kSHVyPZjPggSI4iZlIDSQ3/WaYmU5M3IhEhH8AKwXajMVZPtaGLpQjkAEAGAHs+WFT5qWf5suoahdrdbfJu+elPRpnT0iz81MguCRXSpklwCaBBnIXWrHzUwfbtt8YoINuLA8mHQTrR7RlsKQ4FaPWMd6CxHj/wCNaVKIdqiMArP/AIDf/9k=" + + data := fmt.Sprintf(` +[ + { + "name": "Wyre", + "description": "A secure bridge for fiat and crypto", + "fees": "from 2.9%%", + "region": "US & Europe", + "logoUrl": "%s", + "siteUrl": "https://pay.sendwyre.com/purchase", + "hostname": "sendwyre.com" + }, + { + "name": "MoonPay", + "description": "The new standard for fiat to crypto", + "fees": "1%%-4.5%%", + "region": "US & Europe", + "logoUrl": "%s", + "siteUrl": "https://buy.moonpay.com", + "hostname": "moonpay.com" + }, + { + "name": "Transak", + "description": "Global fiat <-> crypto payment gateway", + "fees": "1%%-4.5%%", + "region": "Global", + "logoUrl": "%s", + "siteUrl": "https://global.transak.com", + "hostname": "transak.com" + }, + { + "name": "Ramp", + "description": "Global crypto to fiat flow", + "fees": "1.5%%", + "region": "Global", + "logoUrl": "%s", + "siteUrl": "https://ramp.network/buy/", + "hostname": "ramp.network" + }, + { + "name": "LocalCryptos", + "description": "Non-custodial crypto marketplace", + "fees": "1.5%%", + "region": "Global", + "logoUrl": "%s", + "siteUrl": "https://localcryptos.com", + "hostname": "localcryptos.com" + } +]`, logoWyre, logoMoonPay, logoTransak, logoRamp, logoLocalCryptos) + + return []byte(data), nil +} diff --git a/services/wallet/on_ramp_test.go b/services/wallet/on_ramp_test.go new file mode 100644 index 000000000..095acb229 --- /dev/null +++ b/services/wallet/on_ramp_test.go @@ -0,0 +1,42 @@ +package wallet + +import ( + "testing" + "time" + + "github.com/stretchr/testify/require" +) + +func TestCryptoOnRamps_Get(t *testing.T) { + cs := []*CryptoOnRampManager{ + {options: &CryptoOnRampOptions{dataSourceType: DataSourceStatic}}, + {options: &CryptoOnRampOptions{ + dataSourceType: DataSourceHTTP, + dataSource: cryptoOnRampsData, + }}, + } + + for _, corm := range cs { + require.Equal(t, 0, len(corm.ramps)) + + rs, err := corm.Get() + require.NoError(t, err) + require.Greater(t, len(rs), 0) + } +} + +func TestCryptoOnRampManager_hasCacheExpired(t *testing.T) { + corm := NewCryptoOnRampManager(&CryptoOnRampOptions{ + dataSourceType: DataSourceHTTP, + dataSource: cryptoOnRampsData, + }) + nt := time.Time{}.Add(30 * time.Minute) + + require.False(t, corm.hasCacheExpired(nt)) + require.True(t, corm.hasCacheExpired(time.Now())) + + _, err := corm.Get() + require.NoError(t, err) + require.False(t, corm.hasCacheExpired(time.Now())) + require.True(t, corm.hasCacheExpired(time.Now().Add(2*time.Hour))) +} diff --git a/services/wallet/service.go b/services/wallet/service.go index 1368dd9b4..d117a1111 100644 --- a/services/wallet/service.go +++ b/services/wallet/service.go @@ -29,12 +29,13 @@ func NewService(db *Database, accountsFeed *event.Feed) *Service { // Service is a wallet service. type Service struct { - feed *event.Feed - db *Database - reactor *Reactor - signals *SignalsTransmitter - client *ethclient.Client - started bool + feed *event.Feed + db *Database + reactor *Reactor + signals *SignalsTransmitter + client *ethclient.Client + cryptoOnRampManager *CryptoOnRampManager + started bool group *Group accountsFeed *event.Feed