MCPcopy Create free account
hub / github.com/Acode-Foundation/Acode / waitForRewardedResult

Function waitForRewardedResult

src/lib/adRewards.js:208–247  ·  view source on GitHub ↗
(ad)

Source from the content-addressed store, hash-verified

206}
207
208function waitForRewardedResult(ad) {
209 return new Promise((resolve, reject) => {
210 let earned = false;
211 let settled = false;
212 const timeoutId = setTimeout(() => {
213 fail(
214 new Error("Rewarded ad timed out before completion. Please try again."),
215 );
216 }, REWARDED_RESULT_TIMEOUT_MS);
217
218 const finish = (result) => {
219 if (settled) return;
220 settled = true;
221 clearTimeout(timeoutId);
222 resolve(result);
223 };
224
225 const fail = (error) => {
226 if (settled) return;
227 settled = true;
228 clearTimeout(timeoutId);
229 reject(
230 error instanceof Error
231 ? error
232 : new Error(error?.message || "Rewarded ad failed."),
233 );
234 };
235
236 ad.on("reward", () => {
237 earned = true;
238 });
239
240 ad.on("dismiss", () => {
241 finish({ earned });
242 });
243
244 ad.on("showfail", fail);
245 ad.on("loadfail", fail);
246 });
247}
248
249async function showRewardedStep(offer, step, sessionId) {
250 const rewardedAd = await createRewardedAd(offer, step, sessionId);

Callers 1

showRewardedStepFunction · 0.85

Calls 3

failFunction · 0.85
finishFunction · 0.70
onMethod · 0.45

Tested by

no test coverage detected