UNPKG

@arcblock/did-playground

Version:

React components that works with wallet-playground

528 lines (527 loc) • 13 kB
import _ from "mustache"; async function c(a) { return { tid: (await a.post("/api/did/swap", {})).data.traceId }; } const n = (a, e) => Number(a) >= 0 ? a : Number(e) >= 0 ? e : 1, t = (a = "", e = {}) => { try { return _.render( a, { user: e.user || {}, token: e.token || {}, balance: e.balance || {} }, {}, ["(%", "%)"] ); } catch { return console.error("Cannot render message", { message: a, session: e }), a; } }, m = { // Currency receive_local_token: { action: "receive_token", extraParams: (a) => ({ chain: "local", amount: a.amount || 1 }) }, receive_foreign_token: { action: "receive_token", extraParams: (a) => ({ chain: "foreign", amount: a.amount || 1 }) }, send_local_token: { action: "send_token", extraParams: (a) => ({ chain: "local", amount: a.amount || 1 }) }, send_foreign_token: { action: "send_token", extraParams: (a) => ({ chain: "foreign", amount: a.amount || 1 }) }, exchange_to_foreign_token: { action: "swap_token", onStart: c, extraParams: (a) => ({ action: "buy", rate: a.exchangeRate, amount: a.amount || 1 }) }, exchange_to_local_token: { action: "swap_token", onStart: c, extraParams: (a) => ({ action: "sell", rate: a.exchangeRate, amount: a.amount || 1 }) }, exchange_to_foreign_token_v2: { action: "swap_token_v2", onStart: c, extraParams: (a) => ({ action: "buy", rate: a.exchangeRate, amount: a.amount || 1 }) }, exchange_to_local_token_v2: { action: "swap_token_v2", onStart: c, extraParams: (a) => ({ action: "sell", rate: a.exchangeRate, amount: a.amount || 1 }) }, // Cross chain assets and tokens buy_foreign_certificate_with_local_token: { action: "swap_asset", onStart: c, extraParams: (a, e) => ({ action: "buy", type: "certificate", pfc: "local", price: a.price || 1, name: t(a.name, e), desc: t(a.description, e), loc: t(a.location, e), bg: a.backgroundUrl, logo: a.logoUrl }) }, buy_foreign_badge_with_local_token: { action: "swap_asset", onStart: c, extraParams: (a, e) => ({ action: "buy", type: "badge", pfc: "local", price: a.price || 1, name: t(a.name, e), desc: t(a.description, e), loc: t(a.location, e), bg: a.backgroundUrl, logo: a.logoUrl, svg: a.svg }) }, buy_foreign_ticket_with_local_token: { action: "swap_asset", onStart: c, extraParams: (a, e) => ({ action: "buy", type: "ticket", pfc: "local", price: a.price || 1, name: t(a.name, e), desc: t(a.description, e), loc: t(a.location, e), bg: a.backgroundUrl, logo: a.logoUrl }) }, sell_foreign_certificate_for_local_token: { action: "swap_asset", onStart: c, extraParams: (a, e) => ({ action: "sell", type: "certificate", pfc: "local", price: a.price || 1, name: t(a.name, e) }) }, sell_foreign_badge_for_local_token: { action: "swap_asset", onStart: c, extraParams: (a, e) => ({ action: "sell", type: "badge", pfc: "local", price: a.price || 1, name: t(a.name, e) }) }, sell_foreign_ticket_for_local_token: { action: "swap_asset", onStart: c, extraParams: (a, e) => ({ action: "sell", type: "ticket", pfc: "local", price: a.price || 1, name: t(a.name, e) }) }, buy_foreign_certificate_with_local_token_v2: { action: "swap_asset_v2", extraParams: (a, e) => ({ action: "buy", type: "certificate", pfc: "local", price: a.price || 1, name: t(a.name, e), desc: t(a.description, e), loc: t(a.location, e), bg: a.backgroundUrl, logo: a.logoUrl }) }, buy_foreign_badge_with_local_token_v2: { action: "swap_asset_v2", extraParams: (a, e) => ({ action: "buy", type: "badge", pfc: "local", price: a.price || 1, name: t(a.name, e), desc: t(a.description, e), loc: t(a.location, e), bg: a.backgroundUrl, logo: a.logoUrl, svg: a.svg }) }, buy_foreign_ticket_with_local_token_v2: { action: "swap_asset_v2", extraParams: (a, e) => ({ action: "buy", type: "ticket", pfc: "local", price: a.price || 1, name: t(a.name, e), desc: t(a.description, e), loc: t(a.location, e), bg: a.backgroundUrl, logo: a.logoUrl }) }, sell_foreign_certificate_for_local_token_v2: { action: "swap_asset_v2", extraParams: (a, e) => ({ action: "sell", type: "certificate", pfc: "local", price: a.price || 1, name: t(a.name, e) }) }, sell_foreign_badge_for_local_token_v2: { action: "swap_asset_v2", extraParams: (a, e) => ({ action: "sell", type: "badge", pfc: "local", price: a.price || 1, name: t(a.name, e) }) }, sell_foreign_ticket_for_local_token_v2: { action: "swap_asset_v2", extraParams: (a, e) => ({ action: "sell", type: "ticket", pfc: "local", price: a.price || 1, name: t(a.name, e) }) }, buy_local_certificate_with_foreign_token: { action: "swap_asset", onStart: c, extraParams: (a, e) => ({ action: "buy", type: "certificate", pfc: "foreign", price: a.price || 1, name: t(a.name, e), desc: t(a.description, e), loc: t(a.location, e), bg: a.backgroundUrl, logo: a.logoUrl }) }, buy_local_badge_with_foreign_token: { action: "swap_asset", onStart: c, extraParams: (a, e) => ({ action: "buy", type: "badge", pfc: "foreign", price: a.price || 0, name: t(a.name, e), desc: t(a.description, e), loc: t(a.location, e), bg: a.backgroundUrl, logo: a.logoUrl, svg: a.svg }) }, buy_local_ticket_with_foreign_token: { action: "swap_asset", onStart: c, extraParams: (a, e) => ({ action: "buy", type: "ticket", pfc: "foreign", price: a.price || 1, name: t(a.name, e), desc: t(a.description, e), loc: t(a.location, e), bg: a.backgroundUrl, logo: a.logoUrl }) }, sell_local_certificate_for_foreign_token: { action: "swap_asset", onStart: c, extraParams: (a, e) => ({ action: "sell", type: "certificate", pfc: "foreign", price: a.price || 1, name: t(a.name, e) }) }, sell_local_badge_for_foreign_token: { action: "swap_asset", onStart: c, extraParams: (a, e) => ({ action: "sell", type: "vc", pfc: "foreign", price: a.price || 1, name: t(a.name, e) }) }, sell_local_ticket_for_foreign_token: { action: "swap_asset", onStart: c, extraParams: (a, e) => ({ action: "sell", type: "ticket", pfc: "foreign", price: a.price || 1, name: t(a.name, e) }) }, buy_local_certificate_with_foreign_token_v2: { action: "swap_asset_v2", extraParams: (a, e) => ({ pa: n(a.payAmount, a.price), pt: "token", ra: a.receiveAmount || 1, rt: "certificate", name: t(a.name, e), desc: t(a.description, e), loc: t(a.location, e), bg: a.backgroundUrl, logo: a.logoUrl }) }, buy_local_badge_with_foreign_token_v2: { action: "swap_asset_v2", extraParams: (a, e) => ({ pa: n(a.payAmount, a.price), pt: "token", ra: a.receiveAmount || 1, rt: "badge", name: t(a.name, e), desc: t(a.description, e), loc: t(a.location, e), bg: a.backgroundUrl, logo: a.logoUrl, svg: a.svg }) }, buy_local_ticket_with_foreign_token_v2: { action: "swap_asset_v2", extraParams: (a, e) => ({ pa: n(a.payAmount, a.price), pt: "token", ra: a.receiveAmount || 1, rt: "badge", name: t(a.name, e), desc: t(a.description, e), loc: t(a.location, e), bg: a.backgroundUrl, logo: a.logoUrl }) }, sell_local_certificate_for_foreign_token_v2: { action: "swap_asset_v2", extraParams: (a, e) => ({ pa: a.payAmount || 1, pt: "certificate", ra: n(a.receiveAmount, a.price), rt: "token", name: t(a.name, e) }) }, sell_local_badge_for_foreign_token_v2: { action: "swap_asset_v2", extraParams: (a, e) => ({ pa: a.payAmount || 1, pt: "badge", ra: n(a.receiveAmount, a.price), rt: "token", name: t(a.name, e) }) }, sell_local_ticket_for_foreign_token_v2: { action: "swap_asset_v2", extraParams: (a, e) => ({ pa: a.payAmount || 1, pt: "ticket", ra: n(a.receiveAmount, a.price), rt: "token", name: t(a.name, e) }) }, // Exchange Scenarios buy_local_certificate_with_local_token: { action: "exchange_assets", extraParams: (a, e) => ({ pa: n(a.payAmount, a.price), pt: "token", ra: a.receiveAmount || 1, rt: "certificate", name: t(a.name, e), desc: t(a.description, e), loc: t(a.location, e), bg: a.backgroundUrl, logo: a.logoUrl }) }, sell_local_certificate_for_local_token: { action: "exchange_assets", extraParams: (a, e) => ({ pa: a.payAmount || 1, pt: "certificate", ra: n(a.receiveAmount, a.price), rt: "token", name: t(a.name, e) }) }, buy_local_badge_with_local_token: { action: "exchange_assets", extraParams: (a, e) => ({ pa: n(a.payAmount, a.price), pt: "token", ra: a.receiveAmount || 1, rt: "badge", name: t(a.name, e), desc: t(a.description, e), loc: t(a.location, e), bg: a.backgroundUrl, logo: a.logoUrl, svg: a.svg }) }, sell_local_badge_for_local_token: { action: "exchange_assets", extraParams: (a, e) => ({ pa: a.payAmount || 1, pt: "badge", ra: n(a.receiveAmount, a.price), rt: "token", name: t(a.name, e) }) }, buy_local_ticket_with_local_token: { action: "exchange_assets", extraParams: (a, e) => ({ pa: n(a.payAmount, a.price), pt: "token", ra: a.receiveAmount || 1, rt: "ticket", name: t(a.name, e), desc: t(a.description, e), loc: t(a.location, e), bg: a.backgroundUrl, logo: a.logoUrl }) }, sell_local_ticket_for_local_token: { action: "exchange_assets", extraParams: (a, e) => ({ pa: a.payAmount || 1, pt: "ticket", ra: n(a.receiveAmount, a.price), rt: "token", name: t(a.name, e) }) }, buy_local_ticket_with_local_certificate: { action: "exchange_assets", extraParams: (a, e) => ({ pa: a.payAmount || 1, pt: "certificate", ra: a.receiveAmount || 1, rt: "ticket", name: t(a.name, e) }) }, buy_local_certificate_with_local_ticket: { action: "exchange_assets", extraParams: (a, e) => ({ pa: a.payAmount || 1, pt: "ticket", ra: a.receiveAmount || 1, rt: "certificate", name: t(a.name, e) }) }, consume_local_asset: { action: "consume_asset", extraParams: ({ type: a, typeUrl: e, name: o, did: i }, r) => ({ pfc: "local", type: a, tu: e, name: t(o, r), did: i }) }, consume_foreign_asset: { action: "consume_asset", extraParams: ({ type: a, typeUrl: e, name: o, did: i }, r) => ({ pfc: "foreign", type: a, tu: e, name: t(o, r), did: i }) }, consume_local_asset_by_name: { action: "consume_asset", extraParams: ({ name: a }, e) => ({ pfc: "local", name: t(a, e) }) }, consume_foreign_asset_by_name: { action: "consume_asset", extraParams: ({ name: a }, e) => ({ pfc: "foreign", name: t(a, e) }) }, consume_local_asset_by_did: { action: "consume_asset", extraParams: ({ did: a }) => ({ pfc: "local", did: a }) }, consume_foreign_asset_by_did: { action: "consume_asset", extraParams: ({ did: a }) => ({ pfc: "foreign", did: a }) }, claim_signature: { action: "claim_signature", extraParams: ({ type: a }) => ({ type: a }) }, consume_email_vc: { action: "consume_vc", extraParams: {} } }, g = (a, e) => { if (typeof a == "string") return a; if (typeof a.action == "string") return a.action; if (typeof a.action == "function") return a.action(e); throw new Error("Cannot determine playground button action"); }, u = (a, e, o) => typeof a == "string" ? {} : a.extraParams ? typeof a.extraParams == "function" ? a.extraParams(e, o) : typeof a.extraParams == "object" ? a.extraParams : {} : {}; export { m as actions, g as getActionName, u as getActionParams, t as getMessage };