Closed: BNT-6 - Point-of-Sale Payment Dapp

great demo! out of curiosity, what did you use to record it?

1 Like

Congrats. Looks great.

1 Like

Thanks! I used https://www.screen.studio/

1 Like

Hi! Will be back in business again tomorrow but found some time today as well.

  • :white_check_mark: Sound notifications
  • :white_check_mark: Background email notifications. But. Only works when running locally. Some debugging remains.
  • :green_square: SMS notifications remains to be done.

There is not way to access debug logs when running on ic, right?

2 Likes

Hi all,

My friend and I decided to take a stab at this bounty…we’re both relatively new to the IC / Motoko so it was quite a learning experience. I recently completed the Motoko bootcamp and have been working in the ecommerce space for a while so I figured this project would be a great way to dive into the IC.

We ran into some roadblocks with trying to use courier to do email/sms notifications - mainly, their api doesn’t support IPV6 so couldn’t get it working with https-outcalls. Trying to send notifications client-side resulting in CORS issues - will figure something out this week.

Our approach was to support both ckBTC and ICP as it would seem like the natural progression of this type of app - support any kind of token in the long run.

props to @kristofer for cranking his version out so quickly and super polished code.

fun project and we’ll continue to work on it …cheers!

4 Likes

There’s this logger you can use, which afaik is has been something of an IC standard for a while–compatible with both Motoko and Rust:

There was a project a couple months ago offering SMS services for canisters, not sure it was open source but iirc it was working so I’m sure there are ipv6 compatible sms relays out there.

1 Like

Also, in case a suitable QR code scanner library hasn’t been found, this article lays out the process well:

1 Like

Hey there, we misread the deadline and thought submissions were due July 18th (Tuesday) at 11:59 UT. Is it still possible to submit a project?

Glad to hear you’re working on the bounty! Here is some code that handles sending SMS via courier. Note the ‘sendSMS’ function. Docs and the project itself are still in progress. Hope this helps!

Thanks, I added a super basic log function to the canister that worked well for debugging. Blocking issue is the lack of IPv4 support for HTTP outcalls.

Yep, the IPv4 issue seems difficult to get around. I haven’t been able to find any transactional email services supporting IPv6. Will continue to look though.

What’s your solution for determining if an API is compatible with IPV6 only replies? I found an online lookup that worked, but I’m guessing there’s an easier way to do this from the command line, if anyone knows?

just ping the domain and if it resolves to an IPV4 address chances are the outcall won’t work

I had a friend who used this a while back for setting up cryptonotifications, I remember it being open source when I first visited it, but maybe it’d still work for doing outcalls from the IC:

Hey everybody,

Thanks a lot for the submissions. If the other participants don’t have an issue with it I’d be happy to see @kryptik’s submission as well.

@kristofer @icplonger I’m sorry that you ran into the IPv6 issues, I was under the impression that the Courier API has been used on mainnet before, but it seems that’s not the case. It’d be very helpful to find an alternative service. Otherwise, there’s no way around some proxy service.

Unfortunately not. See this recent discussion: Canister Logging

Sure, I already pushed for the deadline to be moved once, don’t see why @kryptik shouldn’t be given the same chance. Look forward to see what you come up with!

2 Likes

No objections to extending the deadline, thanks.

Also, seems that IFTTT works with IPV6 - its like a poor mans zapier I managed to get email notifications working with their webhooks its clunky but works for now. They support SMS only through 3rd party providers


Capture

all you need to do is send a post with your json payload to

https://maker.ifttt.com/trigger/${eventName}/with/key/${apiKey}

where eventName is your IFTTT webhook applet name

Hope this helps anyone looking for a workaround

2 Likes

Nice, do they support the Idempotency-Key header though? Otherwise multiple emails could be sent when deployed to ic network (I guess).

Awesome! We are a few hours away from completion. Excited to share.

great question, I don’t think they do according to their docs no mention of idempotency keys

and testing this on live caused a reject error - but I did get 13 emails and a notice from IFTTT that my daily limit on the free account almost met :joy:

so yeah we need a better workaround… to me we should have a fire and forget http outcall that doesn’t go through consensus

draft-ietf-httpapi-idempotency-key-header-03 - The Idempotency-Key HTTP Header Field is still in draft but waiting for services to implement it will slow things down, I mean just look at all the webservices that support IPV6 :upside_down_face:

2 Likes