aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lib/tickets.js52
-rw-r--r--src/routes/launch/+page.svelte37
-rw-r--r--src/routes/launch/purchase/+page.server.js24
-rw-r--r--src/routes/launch/purchase/+page.svelte20
4 files changed, 110 insertions, 23 deletions
diff --git a/src/lib/tickets.js b/src/lib/tickets.js
new file mode 100644
index 00000000..b0ca0ac0
--- /dev/null
+++ b/src/lib/tickets.js
@@ -0,0 +1,52 @@
+export default [
+ 'QmPbFkiXNuaQyfwD4W9GcXP7qWaNd6wFd9KCnJir5mes1J',
+ 'QmPVjvbaMxSJRpDxMLYTdUWQbknej1vYLckBQ2pAgxZgJN',
+ 'QmVasycSFzCYhyXrcvTE7mN3d6W78RFnrhzg5cRF6Dp6Zq',
+ 'QmTmnhjpTBjZdeHwXgT9Dftc3uWMW73qsZpZ5ECrTyiKKZ',
+ 'QmWDBiyVPyFkzUrEdvy7DSJe1rBQpene1m6quKAtyjBP6a',
+ 'QmcxxzQZwgG7SE9QbHNvoTiCi6Dhs9rrz9roqvxm2JQA88',
+ 'Qmd9ThEpXLLHimEzRUWEFrAGLSw5PAHzn2SmwfCnjNLwWt',
+ 'Qmc7pWw1yxc2ARBWitDMYiyPkWK61NsXXU8oYAQwNAvcx1',
+ 'QmX9Hgw1rMFUgBBuq8QfZZDzLjN5xCED19fwFdDeDDqwmr',
+ 'QmconCAyNyaagqKvvfKCbG7Eu8c6vCtkv2ivvxMoFN9YwA',
+ 'QmWbFmvViy5gx4JdD5sw5YJETet4ZQcXtYgijYnrsnSZ3a',
+ 'QmP6QiiJwoqkduZMqdd5e5htHZ4aYHCsvEu7WEEUknKYa5',
+ 'QmefHk8hvBUHsuKugntok5u75Q8i886cnPwsj4LZZB6uWg',
+ 'QmdrSDK5ByYHxc88hfDu8hQgK5XYFpXSfPorUXdyTbE437',
+ 'QmZ6ZycjRzYpsjnLm1Lfgk1fXXDdhcYRkyfmqYJZVGwADy',
+ 'QmSkBxS5yLPjB2VPs89oQRZANsoyodK6s8s52E8GKXr2zt',
+ 'QmSn8TCPwq3UZ1Z4eyko76CvQo2H2Hyef1NGboDQN22m5i',
+ 'QmP6CTH5zrKMzZwtjy7VaK9NXiq4Gw53kmuRjUbJjeovoe',
+ 'QmdwT4yvz9Xf8g3t6irKRoh3Wa7MwRQrcUJckQxyQe1Bc5',
+ 'QmcwuHH3bD5JExqjDvKqRQ3V5xEVGqs94qPNVDzaCqJa5a',
+ 'QmRfVduHwn8sXwSoyfgZpxSi8L7EjP4LMp6fmijo9VApDp',
+ 'Qmc4TGj1Ahbg9HJ9WDXDm2bXsNkT4zRDp8Wdw9wqqdEwuH',
+ 'QmY8uQiHMWA8ztf2wAurNFW7eiTHQEUiLTQ2vGceMwVqz3',
+ 'QmXiXbaD12F4mkbUSQcKhWshkPU4oi29cUawZGnPk86VVU',
+ 'QmZaiAGjvBZBw4suz33s9JQNzY2Kshean2mQQPCa6gKMQe',
+ 'Qme8bDSdzX7tanPYf672xXW8vPdkLkeSLqLzHJqidRXsYJ',
+ 'QmRJirjuUKgh2AMyBF4jNquaXHFPBtDJf3gKFC614hX7qu',
+ 'QmdRoSKSgabcrpekNBPB6T47RBtJnCETYE8ry2a3P37MUe',
+ 'QmXoqArruHSghrUGW35vVQHPknBG5Cj939iWWHHXU3B616',
+ 'QmYCxtDuoHLMAFhNpifUsLU9ptAeFKwyxSiSEJhDQLMZtN',
+ 'QmQZQBw8wgzUsrmVDEejdePK23AEJbk9aUracvxLPyHz2x',
+ 'QmSsbu7U3i62AQKuYqfisRo5E6nqdMZfHRKWYJgouaXDxD',
+ 'QmaP4adVQuWyqtN4QCXeYXj4nr19Je4EqsaTG1zM9ywqFS',
+ 'QmPPsvgfXsiN3wNqdAwHAhQVpw6SZWNpry9Na6R2Xb7zXY',
+ 'QmR7z6wQmcfZUvRsVK83GRRboyvwZEDQujLwumMY33nAit',
+ 'QmQXgkgorDLPUyQpFbW8aLUW6jioQjUKamtXw5UuNCttDg',
+ 'QmcwYBeXt1BPfdSrtSrXFpWctRZ7RDHvmKTttC5hPPTSzG',
+ 'QmTUexZnw3xPy3YVdUsqJALwTvy2qFax5b3QpJVMvTCJQb',
+ 'QmNLkYXFUvctpfeeDTZxruZE2f834EUnYMM6JJUeTcUB4J',
+ 'QmT7544UaTPgKFYMCpPE4unXphNGX71BLZBPKLkxAijSmj',
+ 'QmTpVR4dqX1QV4fae5pZ1ACtRcANHwEWCLwpMXFmwE95Sm',
+ 'Qmdfyps5fW8d8wstXMfpvpei2DTmaADBWgmxLT7e7uan4P',
+ 'QmUSK8byipYoG3H97QpmPrHw9vYrvHygyhkiM81XmaKyxS',
+ 'QmQUGRvp96LTw5i8Ly9f5LoMvUpeQHCLGNqC88KV74wEHK',
+ 'Qma693TFLh9Z1MeBFzhPHi6Yk4tmTcZY2jogwJ8cPkU2B4',
+ 'QmNu8FyMpmkFdbCXGRVG8mKJtMvvCoLP8LNzFsxBQwxQeS',
+ 'QmWZHE87PKujL1MGLuFgP3D12o5GQxYbvbeTRgr12f1XMu',
+ 'QmcZJn8gPGd3poS9yuiNJh6iP4cn9uy5fnypky71r4sSSw',
+ 'QmTwrAF4E9ucpdnrUZFj6EfrQamGv7Qyn7ceSx1DUQYceC',
+ 'QmexssxU5iTXypgNqrmrQwMDJnTNxyZUxor5wDLnwb5TZp'
+];
diff --git a/src/routes/launch/+page.svelte b/src/routes/launch/+page.svelte
index 04f53086..a2e14738 100644
--- a/src/routes/launch/+page.svelte
+++ b/src/routes/launch/+page.svelte
@@ -14,33 +14,46 @@
});
</script>
-<div class="flex mt-20 px-8">
- <img src="/images/ticket.webp" class="mb-8 md:max-w-xl mx-auto border border-gray-400" />
-</div>
-<div class="mx-auto flex items-center justify-center px-8">
- <div class="flex flex-col w-full bg-white rounded shadow-lg sm:w-3/4 md:w-1/2 lg:w-3/5">
+<div class="mx-auto flex items-center justify-center px-8 mt-20">
+ <div class="flex flex-col w-full bg-white rounded shadow-lg sm:w-3/4 lg:w-3/5">
<div class="flex flex-col w-full md:flex-row">
<div
class="flex flex-row justify-around p-4 font-bold leading-none text-gray-800 uppercase bg-gray-400 rounded md:flex-col md:items-center md:justify-center md:w-1/4"
>
<div class="md:text-3xl">Oct</div>
- <div class="md:text-6xl">5</div>
+ <div class="md:text-6xl">26</div>
<div class="md:text-xl">6 pm</div>
</div>
- <div class="p-4 font-normal text-gray-800 md:w-3/4">
+ <div class="p-4 font-normal text-gray-800 md:w-3/4 space-y-5">
<h1 class="mb-4 text-4xl font-bold leading-none tracking-tight text-gray-800">
Coinos Launch Party!
</h1>
<p class="leading-normal mb-2">
- Come join us at our launch party celebrating 10 years in business! We'll be introducing
- our newly designed payments interface and afterwards we'll network and enjoy tasty food
- and drinks from <a href="https://loftondenman.com/" class="underline">The Loft</a>!
+ Come join us at our launch party celebrating 10 years in business!
+ </p>
+ <div class="ml-8">
+ <p><b>When</b></p>
+ <p>6pm on October 26</p>
+ </div>
+ <div class="ml-8">
+ <p><b>Where</b></p>
+ <p>1184 Denman Street, #203</p>
+ <p>Vancouver, BC</p>
+ </div>
+
+ <p>
+ We'll be introducing our newly designed payments interface and afterwards we'll network
+ and enjoy tasty food and drinks from <a href="https://loftondenman.com/" class="underline"
+ >The Loft</a
+ >!
</p>
+ <p>We're charging a $6 entry fee to help us know how much space to reserve. There will be complimentary appies and prize giveaways!</p>
+
<div class="flex w-full my-8">
- <a href={link}>
+ <a href={link} class="mx-auto">
<button
- class="bg-white text-black border rounded-full px-8 py-4 font-bold hover:opacity-80 mx-auto text-2xl"
+ class="bg-white text-black border rounded-full px-8 py-4 font-bold hover:opacity-80 text-2xl"
>
Purchase Ticket
</button>
diff --git a/src/routes/launch/purchase/+page.server.js b/src/routes/launch/purchase/+page.server.js
index f6314f7f..48c5c7d3 100644
--- a/src/routes/launch/purchase/+page.server.js
+++ b/src/routes/launch/purchase/+page.server.js
@@ -1,8 +1,26 @@
-export const load = ({ parent }) => parent();
+import { auth, get, post } from '$lib/utils';
+import tickets from "$lib/tickets";
+
+export const load = () => get('/ticket');
export const actions = {
default: async ({ cookies, request }) => {
- let form = Object.fromEntries(await request.formData());
- console.log(form);
+ let { ticket } = Object.fromEntries(await request.formData());
+
+ let r = await post(
+ '/assets',
+ {
+ name: 'Launch Party Ticket',
+ ticker: 'LPT',
+ precision: 0,
+ asset_amount: '1',
+ token_amount: 0,
+ domain: 'coinos.io',
+ filename: tickets[ticket],
+ },
+ auth(cookies)
+ );
+
+ console.log(r);
}
};
diff --git a/src/routes/launch/purchase/+page.svelte b/src/routes/launch/purchase/+page.svelte
index df3048f3..b00b6baf 100644
--- a/src/routes/launch/purchase/+page.svelte
+++ b/src/routes/launch/purchase/+page.svelte
@@ -6,12 +6,15 @@
export let data;
- let amount = 35000;
+ let amount = 25000;
let {
+ address,
account: { balance },
username
} = data.user;
+ let { ticket } = data;
+
let invoice;
let get = async (network) => {
let { uuid } = await post('/invoice', {
@@ -31,23 +34,24 @@
</script>
<div class="mx-auto h-screen flex items-center justify-center px-8">
- <div class="p-4 font-normal text-gray-800 mx-auto mb-8">
+ <div class="p-4 font-normal text-gray-800 mx-auto mb-8 space-y-5">
{#if balance > amount}
<h1 class="mb-4 text-4xl font-bold leading-none tracking-tight text-gray-800 text-center">
- Buy Your Launch Party Ticket?
+ Confirm Purchase
</h1>
- <div class="text-center text-4xl mb-12">{amount} sats</div>
+ <img src={`/tickets/${(ticket + 1).toString().padStart(2, '0')}.png`} class="my-8" />
- <div class="w-full flex">
- <form method="POST" use:enhance>
+ <form method="POST" use:enhance>
+ <input type="hidden" name="ticket" value={ticket} />
+ <div class="w-full flex">
<button
class="bg-black text-white border rounded-full px-8 py-4 font-bold hover:opacity-80 mx-auto text-2xl"
>
Count me in
</button>
- </form>
- </div>
+ </div>
+ </form>
{:else}
<h1 class="mb-4 text-4xl font-bold leading-none tracking-tight text-gray-800 text-center">
Ticket Price