Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for gift card with SKU 18732 #349

Closed
rndquu opened this issue Oct 23, 2024 · 28 comments · Fixed by #362
Closed

Add support for gift card with SKU 18732 #349

rndquu opened this issue Oct 23, 2024 · 28 comments · Fixed by #362

Comments

@rndquu
Copy link
Member

rndquu commented Oct 23, 2024

We have the feature of minting gift cards for crypto rewards which works this way:

  1. pay.ubq.fi checks contributor's country
  2. If contributor's country is in the MC allow list 3052024.xlsx then offer gift card with SKU 18597
  3. Otherwise try to find the best card SKU from MasterCard International.xlsx

Reloadly has recently added a new tokenized card SKU:

We have a new sku that may be of interest to you: 

SKU: 18732
Name: Mastercard Prepaid USD Debit (Virtual only) US
5 - 1000 USD

Product Description:
Your Virtual Promotional Prepaid Mastercard can be used online, for phone/mail orders, or in stores that accept mobile wallet where Debit Mastercard is accepted. This card must be used within 6 months from the time you receive your link. Please Note: A 2% currency conversion fee will apply if the merchant settles in a currency other than USD

This card works in 130 Countries

SKU_ 18732 - Countries covered (5).xlsx

It makes sense to support a new SKU 18732 this way:

  1. pay.ubq.fi checks contributor's country
  2. If contributor's country is in the MC allow list 3052024.xlsx then offer gift card with SKU 18597
  3. If contributor's country is in the SKU_ 18732 - Countries covered (5).xlsx the offer gift card with SKU 18732
  4. Otherwise try to find the best card SKU from MasterCard International.xlsx

So as a part of this issue we should make sure that SKU 18732 is supported in these pages:

Related comment.

@0x4007
Copy link
Member

0x4007 commented Nov 1, 2024

What's so special about this specific product and why would we need to allocate 4 hours of work just to add a single extra card? Don't we already have hundreds of options?

@EresDev
Copy link
Contributor

EresDev commented Nov 18, 2024

What's so special about this specific product

Previous fallback mastercared SKU 18597 and this new SKU 18732, both support the same list of 139 countries. The special thing about this card is that it is now 2nd mastercard in the Reloadly list, which supports the full Mastercard supported countries list.

This new SKU 18732 can be used as a second fallback card.

Moreover, it appears reloadly is replacing old-18597 with new-18732. Or at least it is the situation for now. Because the reloadly dashboard is also offering new-18732, and I don't see old-18597 on their dashboard anymore. It could also be a temporary out of stock problem. I will ask them in chat and will update here.

@rndquu
Copy link
Member Author

rndquu commented Dec 9, 2024

@EresDev Help

Right now pay.ubq.fi doesn't return any available cards for South Korea ip address:
5091477442585014323

Do you think implementing current github task could help?

@EresDev
Copy link
Contributor

EresDev commented Dec 9, 2024

Right now pay.ubq.fi doesn't return any available cards for South Korea ip address:
Do you think implementing current github task could help?

The old fallback cards 18597 or 18593 should be available to South Korea. But I haven't seen them being available at all in the last few times I checked. Adding this new card 18732 as the first fallback card will be very helpful. @rndquu

@rndquu
Copy link
Member Author

rndquu commented Dec 10, 2024

Right now pay.ubq.fi doesn't return any available cards for South Korea ip address:
Do you think implementing current github task could help?

The old fallback cards 18597 or 18593 should be available to South Korea. But I haven't seen them being available at all in the last few times I checked. Adding this new card 18732 as the first fallback card will be very helpful. @rndquu

It seems that SKU 18597 is no longer supported because reloadly API returns the The product was either not found or is no longer available, Please contact support error for that SKU. It was the only reloadly visa/mastercard product that supported South Korea so empty gift cards result for South Korean ip address is expected.

Anyway the new SKU 18732 seems to be available in South Korea so it makes sense to add support for it. @EresDev Could you make a priority for this task? Also pls set the time estimate.

@0x4007
Copy link
Member

0x4007 commented Dec 10, 2024

@EresDev Could you make a priority for this task?

Yes please focus on implementing because I can't demo this conveniently where I'm based.

It could be really interesting to do some automated tests using proxies to see if major cities are covered? At least where the conferences we plan to attend are.

@rndquu
Copy link
Member Author

rndquu commented Dec 10, 2024

It could be really interesting to do some automated tests using proxies to see if major cities are covered? At least where the conferences we plan to attend are.

Gift cards are grouped by countries. If a particular city is in the country from this list SKU_ 18732 - Countries covered (5).xlsx then gift card with SKU 18732 should work there.

@EresDev
Copy link
Contributor

EresDev commented Dec 10, 2024

Yes please focus on implementing because I can't demo this conveniently where I'm based.

Sure. The UbiquityOS has become aggressive recently :D and it might unassign me from the other task, but I am going to work on this anyway.

It could be really interesting to do some automated tests using proxies to see if major cities are covered? At least where the conferences we plan to attend are.

We have a decent set of tests. We do need to improve the e2e tests. But the suggested use case still needs more manual preparation. A gift card that is available now in tests or in a manual preparation might be out of stock/unavailable in the next hour. I have seen this happening. So for every presentation you need to prepare a series of backups for the presentation.

  • check if a card is available, and redeemable for your location
  • later if the card becomes out of stock pick a different proxy location. Usually, the US and Canada have more card options. But could face problems in redeeming. Here you can just stop at minting and do not redeem.
  • Use a recorded video and play it
  • Use sandbox

Many parts are out of control here for us, and probably even out of control of Reloadly. Redeeming, and probably even the minting also happens at a different service. So, more manual preparation should help.

@EresDev
Copy link
Contributor

EresDev commented Dec 10, 2024

It could be really interesting to do some automated tests using proxies to see if major cities are covered? At least where the conferences we plan to attend are.

The unavailability of a card is mostly not a bug. So, it doesn't need tests. However, I understand that you want to have monitoring for the payment cards. And if we have that, you probably will not be able to redeem cards that you bought for different locations. So, manual preparation still seems more useful to me.

@0x4007
Copy link
Member

0x4007 commented Dec 10, 2024

So, manual preparation still seems more useful to me.

I don't know what "manual preparation" means

@rndquu
Copy link
Member Author

rndquu commented Dec 10, 2024

So, manual preparation still seems more useful to me.

I don't know what "manual preparation" means

Have a plan B for the demo because gift card with sku 18732 (supported in South Korea) might be out of stock occasionally. In that case the simplest option is to use USA/Canada VPN.

@0x4007
Copy link
Member

0x4007 commented Dec 10, 2024

If this system doesn't work does that mean we need to use another card provider?

@rndquu
Copy link
Member Author

rndquu commented Dec 10, 2024

If this system doesn't work does that mean we need to use another card provider?

If reloadly stops providing cards available in South Korea and we consider that a critical issue then, yes, we need to find another card provider

@EresDev
Copy link
Contributor

EresDev commented Dec 10, 2024

/start

@EresDev
Copy link
Contributor

EresDev commented Dec 11, 2024

With this card, I see they also have added a new required field in the card minting request. It is userId. I am going to use user's wallet address for this.
image

@0x4007
Copy link
Member

0x4007 commented Dec 11, 2024

For reference some conferences we are likely to see:

  • eth denver
  • Consensus HK
  • eth cc
  • token2049 dubai
  • token2049 sg
  • Korea blockchain week
  • Japan blockchain week
  • Taipei blockchain week

@rndquu
Copy link
Member Author

rndquu commented Dec 11, 2024

- eth denver (USA)
- Consensus HK (Hong Kong)
- eth cc (France)
- token2049 dubai (UAE)
- token2049 sg (Singapore)
- Korea blockchain week (South Korea)
- Japan blockchain week (Japan)
- Taipei blockchain week (Taiwan)

All countries are supported

Copy link
Contributor

ubiquity-os bot commented Dec 13, 2024

+ Evaluating results. Please wait...

Copy link
Contributor

ubiquity-os bot commented Dec 13, 2024

 [ 42.813 UUSD ] 

@0x4007
Contributions Overview
ViewContributionCountReward
IssueComment527.813
ReviewComment115
Conversation Incentives
CommentFormattingRelevancePriorityReward
What's so special about this specific product and why would we n…
2
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 34
  wordValue: 0.1
  result: 2
0.533
Yes please focus on implementing because I can't demo this conve…
2.54
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 45
  wordValue: 0.1
  result: 2.54
0.735.334
I don't know what "manual preparation" means
0.59
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 8
  wordValue: 0.1
  result: 0.59
0.330.531
If this system doesn't work does that mean we need to use anothe…
1.06
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 16
  wordValue: 0.1
  result: 1.06
0.631.908
For reference some conferences we are likely to see:- eth denve…
6.7
content:
  content:
    p:
      score: 0
      elementCount: 1
    ul:
      score: 1
      elementCount: 1
    li:
      score: 0.5
      elementCount: 8
  result: 5
regex:
  wordCount: 28
  wordValue: 0.1
  result: 1.7
0.4317.04
![image](https://github.com/user-attachments/assets/d29375ba-2d4…
5
content:
  content:
    p:
      score: 0
      elementCount: 1
    img:
      score: 5
      elementCount: 1
  result: 5
regex:
  wordCount: 0
  wordValue: 0.1
  result: 0
0315

 [ 76.089 UUSD ] 

@EresDev
Contributions Overview
ViewContributionCountReward
IssueComment576.089
ReviewComment10
Conversation Incentives
CommentFormattingRelevancePriorityReward
Previous fallback mastercared SKU 18597 and this new SKU 18732, …
5.64
content:
  content:
    p:
      score: 0
      elementCount: 3
  result: 0
regex:
  wordCount: 115
  wordValue: 0.1
  result: 5.64
1316.92
The old fallback cards 18597 or 18593 should be available to Sou…
2.54
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 45
  wordValue: 0.1
  result: 2.54
0.936.858
Sure. The UbiquityOS has become aggressive recently :D and it mi…
11.61
content:
  content:
    p:
      score: 0
      elementCount: 7
    ul:
      score: 1
      elementCount: 1
    li:
      score: 0.5
      elementCount: 4
  result: 3
regex:
  wordCount: 189
  wordValue: 0.1
  result: 8.61
0.7327.081
The unavailability of a card is mostly not a bug. So, it doesn't…
3.15
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 58
  wordValue: 0.1
  result: 3.15
0.635.67
With this card, I see they also have added a new required field …
6.9
content:
  content:
    p:
      score: 0
      elementCount: 2
    img:
      score: 5
      elementCount: 1
  result: 5
regex:
  wordCount: 32
  wordValue: 0.1
  result: 1.9
0.8319.56
Resolves #349Other than the addition of the new mastercard 187…
24.5
content:
  content:
    p:
      score: 0
      elementCount: 13
    ul:
      score: 1
      elementCount: 2
    li:
      score: 0.5
      elementCount: 7
    h2:
      score: 1
      elementCount: 1
    h3:
      score: 1
      elementCount: 1
    h4:
      score: 1
      elementCount: 2
    img:
      score: 5
      elementCount: 2
    a:
      score: 5
      elementCount: 1
  result: 24.5
regex:
  wordCount: 176
  wordValue: 0
  result: 0
0.930

 [ 483.495 UUSD ] 

@rndquu
Contributions Overview
ViewContributionCountReward
IssueSpecification1404.73
IssueComment674.898
ReviewComment23.867
Conversation Incentives
CommentFormattingRelevancePriorityReward
We have the feature of minting gift cards for crypto rewards whi…
44.97
content:
  content:
    p:
      score: 0
      elementCount: 15
    ol:
      score: 1
      elementCount: 2
    li:
      score: 0.5
      elementCount: 9
    ul:
      score: 1
      elementCount: 1
    a:
      score: 5
      elementCount: 6
  result: 37.5
regex:
  wordCount: 160
  wordValue: 0.1
  result: 7.47
13404.73
@EresDev HelpRight now `pay.ubq.fi` doesn't return any…
6.49
content:
  content:
    p:
      score: 0
      elementCount: 4
    img:
      score: 5
      elementCount: 1
  result: 5
regex:
  wordCount: 24
  wordValue: 0.1
  result: 1.49
0.9319.023
It seems that SKU 18597 is no longer supported because reloadly …
4.06
content:
  content:
    p:
      score: 0
      elementCount: 2
  result: 0
regex:
  wordCount: 78
  wordValue: 0.1
  result: 4.06
1312.18
Gift cards are grouped by countries. If a particular city is in …
6.9
content:
  content:
    p:
      score: 0
      elementCount: 1
    a:
      score: 5
      elementCount: 1
  result: 5
regex:
  wordCount: 32
  wordValue: 0.1
  result: 1.9
0.8319.56
Have a plan B for the demo because gift card with sku 18732 (sup…
2.05
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 35
  wordValue: 0.1
  result: 2.05
0.734.305
If reloadly stops providing cards available in South Korea and w…
6.54
content:
  content:
    p:
      score: 0
      elementCount: 1
    a:
      score: 5
      elementCount: 1
  result: 5
regex:
  wordCount: 25
  wordValue: 0.1
  result: 1.54
0.9319.158
```- eth denver (USA)- Consensus HK (Hong Kong)…
0.32
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 4
  wordValue: 0.1
  result: 0.32
0.730.672
Works fine, South Korea is covered now
0.52
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 7
  wordValue: 0.1
  result: 0.52
0.731.092
Cloudflare deployment previews work in reloadly sandbox environm…
1.85
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 31
  wordValue: 0.1
  result: 1.85
0.532.775

@0x4007 0x4007 reopened this Dec 13, 2024
@0x4007 0x4007 closed this as completed Dec 13, 2024
Copy link
Contributor

ubiquity-os bot commented Dec 13, 2024

+ Evaluating results. Please wait...

Copy link
Contributor

ubiquity-os bot commented Dec 13, 2024

 [ 150 UUSD ] 

@EresDev
Contributions Overview
ViewContributionCountReward
IssueTask1150
IssueComment50
ReviewComment10
Conversation Incentives
CommentFormattingRelevancePriorityReward
Previous fallback mastercared SKU 18597 and this new SKU 18732, …
0
content:
  content:
    p:
      score: 0
      elementCount: 3
  result: 0
regex:
  wordCount: 115
  wordValue: 0
  result: 0
130
The old fallback cards 18597 or 18593 should be available to Sou…
0
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 45
  wordValue: 0
  result: 0
130
Sure. The UbiquityOS has become aggressive recently :D and it mi…
3
content:
  content:
    p:
      score: 0
      elementCount: 7
    ul:
      score: 1
      elementCount: 1
    li:
      score: 0.5
      elementCount: 4
  result: 3
regex:
  wordCount: 189
  wordValue: 0
  result: 0
0.830
The unavailability of a card is mostly not a bug. So, it doesn't…
0
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 58
  wordValue: 0
  result: 0
0.630
With this card, I see they also have added a new required field …
5
content:
  content:
    p:
      score: 0
      elementCount: 2
    img:
      score: 5
      elementCount: 1
  result: 5
regex:
  wordCount: 32
  wordValue: 0
  result: 0
0.930
Resolves #349Other than the addition of the new mastercard 187…
24.5
content:
  content:
    p:
      score: 0
      elementCount: 13
    ul:
      score: 1
      elementCount: 2
    li:
      score: 0.5
      elementCount: 7
    h2:
      score: 1
      elementCount: 1
    h3:
      score: 1
      elementCount: 1
    h4:
      score: 1
      elementCount: 2
    img:
      score: 5
      elementCount: 2
    a:
      score: 5
      elementCount: 1
  result: 24.5
regex:
  wordCount: 176
  wordValue: 0
  result: 0
0.930

 [ 42.723 UUSD ] 

@0x4007
Contributions Overview
ViewContributionCountReward
IssueComment527.723
ReviewComment115
Conversation Incentives
CommentFormattingRelevancePriorityReward
What's so special about this specific product and why would we n…
2
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 34
  wordValue: 0.1
  result: 2
0.432.4
Yes please focus on implementing because I can't demo this conve…
2.54
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 45
  wordValue: 0.1
  result: 2.54
0.735.334
I don't know what "manual preparation" means
0.59
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 8
  wordValue: 0.1
  result: 0.59
0.330.531
If this system doesn't work does that mean we need to use anothe…
1.06
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 16
  wordValue: 0.1
  result: 1.06
0.631.908
For reference some conferences we are likely to see:- eth denve…
6.7
content:
  content:
    p:
      score: 0
      elementCount: 1
    ul:
      score: 1
      elementCount: 1
    li:
      score: 0.5
      elementCount: 8
  result: 5
regex:
  wordCount: 28
  wordValue: 0.1
  result: 1.7
0.5317.55
![image](https://github.com/user-attachments/assets/d29375ba-2d4…
5
content:
  content:
    p:
      score: 0
      elementCount: 1
    img:
      score: 5
      elementCount: 1
  result: 5
regex:
  wordCount: 0
  wordValue: 0.1
  result: 0
0315

 [ 150 UUSD ] 

@rndquu
⚠️ Your rewards have been limited to the task price of 150 UUSD.
Contributions Overview
ViewContributionCountReward
IssueSpecification1404.73
IssueComment674.706
ReviewComment25.532
Conversation Incentives
CommentFormattingRelevancePriorityReward
We have the feature of minting gift cards for crypto rewards whi…
44.97
content:
  content:
    p:
      score: 0
      elementCount: 15
    ol:
      score: 1
      elementCount: 2
    li:
      score: 0.5
      elementCount: 9
    ul:
      score: 1
      elementCount: 1
    a:
      score: 5
      elementCount: 6
  result: 37.5
regex:
  wordCount: 160
  wordValue: 0.1
  result: 7.47
13404.73
@EresDev HelpRight now `pay.ubq.fi` doesn't return any…
6.49
content:
  content:
    p:
      score: 0
      elementCount: 4
    img:
      score: 5
      elementCount: 1
  result: 5
regex:
  wordCount: 24
  wordValue: 0.1
  result: 1.49
0.9319.023
It seems that SKU 18597 is no longer supported because reloadly …
4.06
content:
  content:
    p:
      score: 0
      elementCount: 2
  result: 0
regex:
  wordCount: 78
  wordValue: 0.1
  result: 4.06
1312.18
Gift cards are grouped by countries. If a particular city is in …
6.9
content:
  content:
    p:
      score: 0
      elementCount: 1
    a:
      score: 5
      elementCount: 1
  result: 5
regex:
  wordCount: 32
  wordValue: 0.1
  result: 1.9
0.8319.56
Have a plan B for the demo because gift card with sku 18732 (sup…
2.05
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 35
  wordValue: 0.1
  result: 2.05
0.734.305
If reloadly stops providing cards available in South Korea and w…
6.54
content:
  content:
    p:
      score: 0
      elementCount: 1
    a:
      score: 5
      elementCount: 1
  result: 5
regex:
  wordCount: 25
  wordValue: 0.1
  result: 1.54
0.9319.158
```- eth denver (USA)- Consensus HK (Hong Kong)…
0.32
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 4
  wordValue: 0.1
  result: 0.32
0.530.48
Works fine, South Korea is covered now
0.52
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 7
  wordValue: 0.1
  result: 0.52
0.731.092
Cloudflare deployment previews work in reloadly sandbox environm…
1.85
content:
  content:
    p:
      score: 0
      elementCount: 1
  result: 0
regex:
  wordCount: 31
  wordValue: 0.1
  result: 1.85
0.834.44

@0x4007
Copy link
Member

0x4007 commented Dec 13, 2024

@gentlementlegen I am leaning towards that rewards should always be limited even if there is no assignee? I can't think of a scenario where we would need no limits with no assignees.

Also as a side note, I think that it would be nice to add the comment incentive for the pull body as well. So in theory the max rewards for an assignee could be 3x the limit (spec, pull body, task)

@rndquu if I invalidate the [ 483.495 UUSD ] permit, it won't affect the other permit from being able to be claimed due to the nonce, right? Please try to claim your other permit to confirm.

Do you think you can work on a comprehensive plan to make UUSD cash outs more convenient? We should be slowly migrating all of our payouts to it but as I understand there are still some hoops to jump through making it confusing for contributors.


South Korea QA:

image

@gentlementlegen
Copy link
Member

The non-assignee scenario was changed dunno if I merged it to the main branch.

Sure can be changed, at the moment the cap is at 2x the reward (spec + reward)

@0x4007
Copy link
Member

0x4007 commented Dec 13, 2024

Sure can be changed, at the moment the cap is at 2x the reward (spec + reward)

We should probably make this configurable.

I'm assuming I can target pull body with PULL_SPECIFICATION

0x4007 added a commit that referenced this issue Dec 13, 2024
Normalized rewards and added credit for pull body based on #349 (comment)
0x4007 added a commit to ubiquity/work.ubq.fi that referenced this issue Dec 13, 2024
Normalized rewards and added credit for pull body based on ubiquity/pay.ubq.fi#349 (comment)
@rndquu
Copy link
Member Author

rndquu commented Dec 13, 2024

@rndquu if I invalidate the [ 483.495 UUSD ] permit, it won't affect the other permit from being able to be claimed due to the nonce, right?

No, if this one is invalidated (for a particular user) then the latest one is also invalidated (only for a particular user) because permit nonce is based on github issue id.

Please try to claim your other permit to confirm.

Can't claim, as expected.

Do you think you can work on a comprehensive plan to make UUSD cash outs more convenient?

I don't fully understand what're the main pain points.

  1. Get a reward in UUSD
  2. Swap UUSD for WXDAI in the curve pool
  3. Off-ramp

@rndquu rndquu removed this from Development Dec 14, 2024
@0x4007
Copy link
Member

0x4007 commented Dec 14, 2024

Perhaps we should research a more precise revocation strategy.

I know keyrxng made a proposal about how they don't want to receive payouts in UUSD until it's more convenient to cash out with. Surely 1. they aren't the only one who feels this way 2. there's many aspects to solving this problem

@rndquu
Copy link
Member Author

rndquu commented Dec 17, 2024

they don't want to receive payouts in UUSD until it's more convenient to cash out with

Payout tokens are totally up to a partner. Contributors can always swap whatever the reward token is to whatever is more convenient to cash out.

@0x4007
Copy link
Member

0x4007 commented Dec 17, 2024

Payout tokens are totally up to a partner. Contributors can always swap whatever the reward token is to whatever is more convenient to cash out.

I'm aware of this but our job is to make more people want to use our stable coin. There's a lot of aspects to this including making sure that it works on cowswap etc

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants