Skip to content

Commit

Permalink
chore: presale texts revisions (#351)
Browse files Browse the repository at this point in the history
* chore: add @types/uuid

* chore: add @types/uuid

* fix(app-lib): tsconfig pkg extends

* fix: missing encoding dep

* feat: sitemap (#290)

* feat: add sitemap

* fix: error handling

* fix: move common types

* fix: update base url in sitemap

* Update apps/webapp/app/(routes)/[lang]/blog/[category]/sitemap.ts

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* Update apps/webapp/app/(routes)/[lang]/wallet/sitemap.ts

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* Update apps/webapp/app/(routes)/[lang]/whitepaper/sitemap.ts

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* fix: build error

* fix: remove unnecessary async declarative

* vendor: add @types/uuid

* fix: remove console log for debug

* fix: add 'async' to all sitemaps

* fix: make ProjectPageParams extends CommonPageParams

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* fix(webapp): UI/UX tweaks and upts from final v1 landing designs (#291)

* (webapp)fix:FAQ border radi + muted color

* (webapp)fix:newsletter spacing

* (webapp)fix:participate spacing and font family

* (webapp)fix:header spacing + bitlauncher logo size

* (webapp)fix:blog section 4 per row + purple link + gap

* (webapp)fix:hero-card spacing

* (webapp)fix:auction-card spaces

* (webapp)fix:Upcoming grid gap

* (webapp)fix:article card - text-left

* (webapp)fix:media-card text-start

* (webapp)fix:media-section purple link + space

* (webapp)fix:participate gap + section font and padding

* (webapp)fix:footer links padding + other spacing fix

* (webapp)fix:upcoming background circle

* (webapp)fix:footer margin-10

* (webapp)fix:upcoming bg shape

* (webapp)-andler-changes-request

* (webapp)-debug-toggle navigation icon

* (webapp)-create-mobile-navigation-context

* (webapp)-create-mobile-navigation-context

* (webapp)-fix navigation bug - add key

* (webapp)-Andler-changes

* (webapp)-responsive - upcoming

* (webapp)-fix-responsive-whychooseUs

* (webapp)-fix-responsive-participate

* (webapp)-fix-responsive-media

* (webapp)-fix-responsive-articles

* (webapp)-responsive-project-header+info+sharebtn

* (webapp)-feat-about-base

* (webapp)-feat-about-landing-complete

* (webapp)-feat-security-updated

* (webapp)-fix-steps-padding

* fix typo

* fix bgHeader type

* fix bgHeader type

* impr(webapp): layout tweaks

* impr(webapp): info pages img asset + css class

* fix: bun.lockb

---------

Co-authored-by: Roberto Lucas <[email protected]>

* feat: multichain indexer ( part 1 ) (#293)

* chore: update app-contracts

* feat: multichain indexer

* feat: prod chains

* feat: presale wallet

* feat: blpl token

* feat: blpl token

* chore: update bunlock

* feat: blpl token

* feat: presale evm contribs

* feat: blpl token

* wip: presale indexer

* chore(indexer): fix dockerfile

* feat: presale transaction indexing (#296)

* feat: report transaction id

* feat: save deposits data

* feat: save deposits data

* feat: read presale transactions

* chore: disable view all

* feat: update presale deposits ui

* feat: display amount raised and contributors

* chore: environment chains and tokens

* fix(webapp): desktop padding (#297)

* feat: multichain presale deposits (#298)

* chore: environment chains and tokens

* fix: chain switch

* fix: chain switch

* feat: update nav links (#299)

* chore: environment chains and tokens

* feat: update nav links

* chore: renable swaps service, index token from latest block

* feat(webapp): wallet ui updates (#300)

* fix: wagmi config

* feat(webapp): presale contribution report

* feat: realtime presale data

* feat: realtime presale data

* feat: update dropdown menu

* feat(supabase): update schema and types

* chore: debug presale token issuance

* feat: show issuance trx link on table

* impr(webapp): upt mob ver of more info cards (#294)

* styles: update mobile version for information cards of home page

* styles: use tailwind css variables

* styles: add font family futura pt

* styles, config: add cornflowerblue variables on tailwind config and update information cards' background

* config: update font importation

* chore: replace BC with BL

* chore: replace bc files with bl files

* chore: replace bc files with bl files

---------

Co-authored-by: Roberto Lucas <[email protected]>

* impr(webapp): upt mob ver of more info cards (#294) (#305)

* styles: update mobile version for information cards of home page

* styles: use tailwind css variables

* styles: add font family futura pt

* styles, config: add cornflowerblue variables on tailwind config and update information cards' background

* config: update font importation

* chore: replace BC with BL

* chore: replace bc files with bl files

* chore: replace bc files with bl files

---------

Co-authored-by: Leandro Gavidia Santamaria <[email protected]>

* fix(impr): verify font-style and text wording across landing (#309)

* fix(impr): verify font-style across landing

* fix(webapp): lufga bold font config

* fix(webapp): investor wording to contributor on texts

* fix(webapp): investors wording to contributors on texts (plural)

* chore(webapp): text, invest wording upt to contribute

* config: add multibase custom hook (#310)

* config: add multibase custom hook

* chore: update multibase hook and session hook

* chore: change inverted params

* impr(fix): multibase init call

---------

Co-authored-by: Roberto Lucas <[email protected]>

* feat: referral section ui - ver 0.1a (#311)

* chore(webapp): update gitignore

* chore: update cursor agent rules

* fix: action example on cursor rules

* fix: action example on cursor rules

* fix: action example on cursor rules

* feat(webapp): use dynamic loading in homepage (#313)

* feat: token issuance with trigger.dev and alchemy hooks - part 1 (#312)

* feat: alchemy transfer hooks

* feat(trigger): listen token transfers

* feat(app-lib): add pino logger

* feat(trigger): address activity handler

* feat(indexer): security updates and alchemy proxy

* fix(webapp): logger bug

* chore(indexer): sentry middleware and app config

* chore(indexer): cleanup

* chore: update bunlock

* docs: update readme

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* feat(indexer): trigger address activity job (#316)

* impr(webapp): check short link gen (#301)

* fix(webapp): desktop padding

* wip(imp): check user share link

* fix(webapp): error var name scope

* chore: updating supabase schema & types

* feat(webapp): user table short link + session upsert

* chore: use biome 🚀 (#317)

* chore: use biome

* chore: use biome

* chore(indexer): verify call with alchemy signing key (#318)

* devops(indexer): update dockerfile

* chore(indexer): cleanup

* chore: update gitignore

* debug(indexer): gcloud deployment

* debug(indexer): gcloud deployment

* debug(indexer): gcloud deployment

* debug(indexer): gcloud deployment

* debug(indexer): gcloud deployment

* fix(trigger): install right trigger.dev dep

* chore: august 2nd release [at TEST]  (#315)

* impr(webapp): upt mob ver of more info cards (#294)

* styles: update mobile version for information cards of home page

* styles: use tailwind css variables

* styles: add font family futura pt

* styles, config: add cornflowerblue variables on tailwind config and update information cards' background

* config: update font importation

* chore: replace BC with BL

* chore: replace bc files with bl files

* chore: replace bc files with bl files

---------

Co-authored-by: Roberto Lucas <[email protected]>

* fix(impr): verify font-style and text wording across landing (#309)

* fix(impr): verify font-style across landing

* fix(webapp): lufga bold font config

* fix(webapp): investor wording to contributor on texts

* fix(webapp): investors wording to contributors on texts (plural)

* chore(webapp): text, invest wording upt to contribute

* config: add multibase custom hook (#310)

* config: add multibase custom hook

* chore: update multibase hook and session hook

* chore: change inverted params

* impr(fix): multibase init call

---------

Co-authored-by: Roberto Lucas <[email protected]>

* feat: referral section ui - ver 0.1a (#311)

* chore(webapp): update gitignore

* chore: update cursor agent rules

* fix: action example on cursor rules

* fix: action example on cursor rules

* fix: action example on cursor rules

* feat(webapp): use dynamic loading in homepage (#313)

* feat: token issuance with trigger.dev and alchemy hooks - part 1 (#312)

* feat: alchemy transfer hooks

* feat(trigger): listen token transfers

* feat(app-lib): add pino logger

* feat(trigger): address activity handler

* feat(indexer): security updates and alchemy proxy

* fix(webapp): logger bug

* chore(indexer): sentry middleware and app config

* chore(indexer): cleanup

* chore: update bunlock

* docs: update readme

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* feat(indexer): trigger address activity job (#316)

* impr(webapp): check short link gen (#301)

* fix(webapp): desktop padding

* wip(imp): check user share link

* fix(webapp): error var name scope

* chore: updating supabase schema & types

* feat(webapp): user table short link + session upsert

* chore: use biome 🚀 (#317)

* chore: use biome

* chore: use biome

* chore(indexer): verify call with alchemy signing key (#318)

* devops(indexer): update dockerfile

* chore(indexer): cleanup

* chore: update gitignore

* debug(indexer): gcloud deployment

* debug(indexer): gcloud deployment

* debug(indexer): gcloud deployment

* debug(indexer): gcloud deployment

* debug(indexer): gcloud deployment

* fix(trigger): install right trigger.dev dep

---------

Co-authored-by: Leandro Gavidia Santamaria <[email protected]>
Co-authored-by: Gabo Esquivel <[email protected]>
Co-authored-by: Gabo Esquivel <[email protected]>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* fix: merge typo

* fix: tailwind font config

* fix(indexer): trust proxy

* feat: token issuance trigger part 2 (#321)

* chore(alchemy): use gcloud endpoint

* docs(alchemy): update readme file

* docs(indexer): update readme file

* debug(indexer): gcloud automated deployment

* chore(alchemy): env values validation

* chore(indexer): improve logging

* chore(indexer): improve logging

* chore(indexer): stringify all logs

* debug(indexer): disable alchemy signature validation

* debug(indexer): disable alchemy signature validation

* chore(indexer): validate env and use trigger secret

* debug(faucet): save dist/ empty folder in git

* chore: update deps

* chore: improve env validations

* fix(alchemy): wrong import

* chore(indexer): improve logging

* debug(indexer): alchemy webhook handler

* debug(indexer): disable helmet

* debug(indexer): alchemy hook handler

* debug(indexer): alchemy hook handler

* debug(indexer): alchemy hook handler

* debug(indexer): alchemy hook handler

* feat(indexer): alchemy signature middleware

* feat(indexer): validate alchemy signature

* chore(indexer): security improvements (#323)

* chore(indexer): disable alchemy validation

* feat: presale token issuance part 3 (#325)

* chore(alchemy): export types

* chore(indexer): log process event id

* chore(indexer): log process event id

* chore: prod network conig, validate networks

* wip(indexer): validate before triggering

* chore: add try catch

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: clean up

* devops(indexer): update dockerfile

* chore: format code

* devops: remove lhci reports

* fix(indexer): wrong import

* feat(trigger): transfer blpl token (#327)

* feat(trigger): transfer blpl token

* docs(trigger): token issuance jsdocs

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* devops(indexer): update dockerfile

* chore: remove type:module (#329)

* chore: remove type:module

* chore: remove type:module

* devops(indexer): test deployment

* devops(indexer): test deployment

* chore(supabase): use module

* feat(trigger): presale token issuance

* chore: format

* chore: use type:module for monorepo

* impr(webapp): add multibase provider (#326)

* config: create multibase provider

* chore: update multibase env variable

* impr(webapp): UI Update (#314)

* (wepapp)impr:landing distribution + filenames

* (wepapp)impr:auction card badge

* (wepapp)impr:steps pading + new text-size

* (wepapp)impr:text-size

* (wepapp)impr:refactored about us section

* (wepapp)impr:new tittles learning section

* (wepapp)impr:security section

* (wepapp)impr:tittle style and fonts

* (wepapp)impr:responsive impr

* fix:about section text-18 instead of text-sm

* fix:security responsive

* fix:hero padding

* fix:Final Mobil Tweaks

* impr(webapp): landing heros + mob-nav spacing

* impr(webapp): landing learn section updated blog links

* fix(webapp): info text foreground color

* impr(webapp): landing responsiveness

* imp(webapp): 3 steps needed responsiveness

* chore(webapp): rm duplicate component

---------

Co-authored-by: Roberto Lucas <[email protected]>

* feat: security updates (#331)

* feat(indexer): validate right usdt,usdc address

* feat(indexer): wait for finality and trx log

* fix(indexer): wrong import

* chore(indexer): fix build

* chore(webapp): format

* feat(webapp): bitlauncher blog category + blog tweaks (#324)

* wip: static blog files upt

* fix(webapp): blog article file gen + article ui tweaks

* chore(webapp): app ver upt + cms gen script

* docs: upt cms-ql.sh

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* impr(webapp): upt /services/datocms/datocms-blog.service.ts

coderabbitai suggestion.

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* impr(webapp): upt /services/datocms/datocms-blog.service.ts

coderabbitai suggestion.

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(webapp): app build, missing file

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: format files

* fix(webapp): cached files error catch

* impr(webapp): static blog file error catch

* fix(webapp): static cached file chk

* feat: supabase schema and webapp updates  (#335)

* feat(indexer): add address registration validation

* feat: update database schema to support presales

* feat: repo/tokens (#336)

* chore: update repo packages (#338)

* feat: stable coin selector

* feat: presale ux ui

* chore: repo/contracts pkg

* chore: repo/utils pkg

* chore: repo/tsconfig pkg

* chore: repo/alchemy pkg

* chore: repo/jobs pkg

* chore: repo/supabase pkg

* docs: update readme

* chore: update bunlock

* chore(indexer): alchemy webhook

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* docs: update readme

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* docs: update readme

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* chore(alchemy): invert ternary

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* chore: not nullable values, format code

* chore: update node:crypto

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat(indexer): alchemy signature validation

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: fix build (#339)

* feat: validate user registration on event proxy (#340)

* chore: fix imports

* feat(indexer): validate user is registered

* feat: add presale deposit checks (#341)

* feat(indexer): is registered address

* feat(indexer): validate amount and timing

* wip(webapp): update project, presale and auction pages

* chore(webapp): improve error handling

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: realtime presale data (#342)

* feat: real time presale data

* feat: real time presale data

* fix(webapp): header margin (#343)

* webapp:fix margin top

* webapp:add header tag

* webapp:fix margin top

* webapp:add md top

* webapp:add md top

* webapp:fix project tittle + pills responsive

* chore: august 3rd release [pre-prod] (#334)

* impr(webapp): upt mob ver of more info cards (#294)

* styles: update mobile version for information cards of home page

* styles: use tailwind css variables

* styles: add font family futura pt

* styles, config: add cornflowerblue variables on tailwind config and update information cards' background

* config: update font importation

* chore: replace BC with BL

* chore: replace bc files with bl files

* chore: replace bc files with bl files

---------

Co-authored-by: Roberto Lucas <[email protected]>

* fix(impr): verify font-style and text wording across landing (#309)

* fix(impr): verify font-style across landing

* fix(webapp): lufga bold font config

* fix(webapp): investor wording to contributor on texts

* fix(webapp): investors wording to contributors on texts (plural)

* chore(webapp): text, invest wording upt to contribute

* config: add multibase custom hook (#310)

* config: add multibase custom hook

* chore: update multibase hook and session hook

* chore: change inverted params

* impr(fix): multibase init call

---------

Co-authored-by: Roberto Lucas <[email protected]>

* feat: referral section ui - ver 0.1a (#311)

* chore(webapp): update gitignore

* chore: update cursor agent rules

* fix: action example on cursor rules

* fix: action example on cursor rules

* fix: action example on cursor rules

* feat(webapp): use dynamic loading in homepage (#313)

* feat: token issuance with trigger.dev and alchemy hooks - part 1 (#312)

* feat: alchemy transfer hooks

* feat(trigger): listen token transfers

* feat(app-lib): add pino logger

* feat(trigger): address activity handler

* feat(indexer): security updates and alchemy proxy

* fix(webapp): logger bug

* chore(indexer): sentry middleware and app config

* chore(indexer): cleanup

* chore: update bunlock

* docs: update readme

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* feat(indexer): trigger address activity job (#316)

* impr(webapp): check short link gen (#301)

* fix(webapp): desktop padding

* wip(imp): check user share link

* fix(webapp): error var name scope

* chore: updating supabase schema & types

* feat(webapp): user table short link + session upsert

* chore: use biome 🚀 (#317)

* chore: use biome

* chore: use biome

* chore(indexer): verify call with alchemy signing key (#318)

* devops(indexer): update dockerfile

* chore(indexer): cleanup

* chore: update gitignore

* debug(indexer): gcloud deployment

* debug(indexer): gcloud deployment

* debug(indexer): gcloud deployment

* debug(indexer): gcloud deployment

* debug(indexer): gcloud deployment

* fix(trigger): install right trigger.dev dep

* fix(indexer): trust proxy

* feat: token issuance trigger part 2 (#321)

* chore(alchemy): use gcloud endpoint

* docs(alchemy): update readme file

* docs(indexer): update readme file

* debug(indexer): gcloud automated deployment

* chore(alchemy): env values validation

* chore(indexer): improve logging

* chore(indexer): improve logging

* chore(indexer): stringify all logs

* debug(indexer): disable alchemy signature validation

* debug(indexer): disable alchemy signature validation

* chore(indexer): validate env and use trigger secret

* debug(faucet): save dist/ empty folder in git

* chore: update deps

* chore: improve env validations

* fix(alchemy): wrong import

* chore(indexer): improve logging

* debug(indexer): alchemy webhook handler

* debug(indexer): disable helmet

* debug(indexer): alchemy hook handler

* debug(indexer): alchemy hook handler

* debug(indexer): alchemy hook handler

* debug(indexer): alchemy hook handler

* feat(indexer): alchemy signature middleware

* feat(indexer): validate alchemy signature

* chore(indexer): security improvements (#323)

* chore(indexer): disable alchemy validation

* feat: presale token issuance part 3 (#325)

* chore(alchemy): export types

* chore(indexer): log process event id

* chore(indexer): log process event id

* chore: prod network conig, validate networks

* wip(indexer): validate before triggering

* chore: add try catch

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: clean up

* devops(indexer): update dockerfile

* chore: format code

* devops: remove lhci reports

* fix(indexer): wrong import

* feat(trigger): transfer blpl token (#327)

* feat(trigger): transfer blpl token

* docs(trigger): token issuance jsdocs

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* devops(indexer): update dockerfile

* chore: remove type:module (#329)

* chore: remove type:module

* chore: remove type:module

* devops(indexer): test deployment

* devops(indexer): test deployment

* chore(supabase): use module

* feat(trigger): presale token issuance

* chore: format

* chore: use type:module for monorepo

* impr(webapp): add multibase provider (#326)

* config: create multibase provider

* chore: update multibase env variable

* impr(webapp): UI Update (#314)

* (wepapp)impr:landing distribution + filenames

* (wepapp)impr:auction card badge

* (wepapp)impr:steps pading + new text-size

* (wepapp)impr:text-size

* (wepapp)impr:refactored about us section

* (wepapp)impr:new tittles learning section

* (wepapp)impr:security section

* (wepapp)impr:tittle style and fonts

* (wepapp)impr:responsive impr

* fix:about section text-18 instead of text-sm

* fix:security responsive

* fix:hero padding

* fix:Final Mobil Tweaks

* impr(webapp): landing heros + mob-nav spacing

* impr(webapp): landing learn section updated blog links

* fix(webapp): info text foreground color

* impr(webapp): landing responsiveness

* imp(webapp): 3 steps needed responsiveness

* chore(webapp): rm duplicate component

---------

Co-authored-by: Roberto Lucas <[email protected]>

* feat: security updates (#331)

* feat(indexer): validate right usdt,usdc address

* feat(indexer): wait for finality and trx log

* fix(indexer): wrong import

* chore(indexer): fix build

* chore(webapp): format

* feat(webapp): bitlauncher blog category + blog tweaks (#324)

* wip: static blog files upt

* fix(webapp): blog article file gen + article ui tweaks

* chore(webapp): app ver upt + cms gen script

* docs: upt cms-ql.sh

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* impr(webapp): upt /services/datocms/datocms-blog.service.ts

coderabbitai suggestion.

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* impr(webapp): upt /services/datocms/datocms-blog.service.ts

coderabbitai suggestion.

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* fix(webapp): app build, missing file

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: format files

* fix(webapp): cached files error catch

* impr(webapp): static blog file error catch

* fix(webapp): static cached file chk

* feat: supabase schema and webapp updates  (#335)

* feat(indexer): add address registration validation

* feat: update database schema to support presales

* feat: repo/tokens (#336)

* chore: update repo packages (#338)

* feat: stable coin selector

* feat: presale ux ui

* chore: repo/contracts pkg

* chore: repo/utils pkg

* chore: repo/tsconfig pkg

* chore: repo/alchemy pkg

* chore: repo/jobs pkg

* chore: repo/supabase pkg

* docs: update readme

* chore: update bunlock

* chore(indexer): alchemy webhook

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* docs: update readme

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* docs: update readme

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* chore(alchemy): invert ternary

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>

* chore: not nullable values, format code

* chore: update node:crypto

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat(indexer): alchemy signature validation

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* chore: fix build (#339)

* feat: validate user registration on event proxy (#340)

* chore: fix imports

* feat(indexer): validate user is registered

* feat: add presale deposit checks (#341)

* feat(indexer): is registered address

* feat(indexer): validate amount and timing

* wip(webapp): update project, presale and auction pages

* chore(webapp): improve error handling

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* feat: realtime presale data (#342)

* feat: real time presale data

* feat: real time presale data

* fix(webapp): header margin (#343)

* webapp:fix margin top

* webapp:add header tag

* webapp:fix margin top

* webapp:add md top

* webapp:add md top

* webapp:fix project tittle + pills responsive

---------

Co-authored-by: Leandro Gavidia Santamaria <[email protected]>
Co-authored-by: Gabo Esquivel <[email protected]>
Co-authored-by: Gabo Esquivel <[email protected]>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: Brandon Fernández <[email protected]>

* chore(fix): update apps/trigger package.json dep

* fix: cms gen merged files + use-session table upt + trigger/tsconfig upt

* fix: registration logic and indexer checks (#347)

* feat(indexer): check if address already bought

* fix(webapp): registration logic

* chore: update bunlock

* fix(webapp): arrow icon

* fix(webapp): arrow icon

* feat: upsert accounts table on login

* fix(webapp): move accounts to session hook

* feat: webapp/hotfix bl project status tag (#348)

* fix(webapp): tablet/small-screen header breakpoint

* impr(webapp): project page hero + blog links upt

* fix(webapp): project badge text upt

* content(webapp): token sale date tbd

* fix(webapp): hero title size (#350)

* fix(webapp): hero title size

* impr(webapp): share link toaster msg

* chore: presale hardcoded txt tweak

---------

Co-authored-by: Gabo Esquivel <[email protected]>
Co-authored-by: Nathanael Liu <[email protected]>
Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com>
Co-authored-by: Brandon Fernández <[email protected]>
Co-authored-by: Leandro Gavidia Santamaria <[email protected]>
Co-authored-by: Gabo Esquivel <[email protected]>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
  • Loading branch information
8 people authored Aug 28, 2024
1 parent 6056b98 commit 6c76e8d
Show file tree
Hide file tree
Showing 14 changed files with 349 additions and 190 deletions.
2 changes: 1 addition & 1 deletion apps/webapp/app/(routes)/[lang]/[project]/presale/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ export default async function ProjectPage({ params }: ProjectPageProps) {
<Card className="border-card/30 bg-card/60 backdrop-blur-lg">
<Countdown
targetDate={new Date(presaleData.end_timestamptz)}
heading="Pre-Sale Countdown"
heading="Pre-Sale End Countdown"
/>
<CardContent>
<ProjectPresaleData presaleData={presaleData} />
Expand Down
2 changes: 1 addition & 1 deletion apps/webapp/app/(routes)/[lang]/blog/[category]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export default async function Page(props: CategoryPageProps) {
heading={pageSeo.title}
subheading={pageSeo.description}
className="!text-6xl [&_+_div]:md:!text-2xl [&_+_div]:md:!py-0"
imageSrc="/images/blog/temp-bg-concept.webp"
background="about"
/>
<div className="narrow-container">
<BlogSections sections={sections} lang={lang} category={category} />
Expand Down
2 changes: 1 addition & 1 deletion apps/webapp/app/(routes)/[lang]/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ export default async function RootLayout({
disableTransitionOnChange
>
<Header lang={params.lang} dict={dict} />
<Toaster />
<Toaster position="bottom-right" />
<main
className={cn(
'flex w-full max-w-[100vw] flex-1 flex-col',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ export default async function AboutPage({ params }: CommonPageProps) {
<BgHeader
heading={heading}
subheading={subheading}
imageSrc="/images/blog/temp-bg-concept.webp"
/>

<div className="content-container z-30 bg-background !py-10 px-7 md:px-3 md:py-24">
Expand Down
1 change: 0 additions & 1 deletion apps/webapp/app/(routes)/[lang]/learn/security/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ export default async function SecurityTips({ params }: CommonPageProps) {
<BgHeader
heading={heading}
subheading={'Be Part of the Intelligent Future'}
imageSrc={''}
/>
<div className="content-container z-30 bg-background !py-10 px-7 text-center md:px-3 md:py-24">
<PageContent data={content} />
Expand Down
2 changes: 1 addition & 1 deletion apps/webapp/app/(routes)/[lang]/whitepaper/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export default async function BitlauncherWhitePaper({
<BgHeader
heading={'Bitlauncher Whitepaper'}
subheading={'Be Part of the Intelligent Future'}
imageSrc="/images/blog/temp-bg-concept.webp"
background="whitepaper"
/>

<div className="content-container z-30 bg-background !py-10 px-7 md:px-3 md:py-24">
Expand Down
2 changes: 1 addition & 1 deletion apps/webapp/app/globals.css
Original file line number Diff line number Diff line change
Expand Up @@ -309,7 +309,7 @@ iframe[title="reCAPTCHA"],

/* Heading in About - Security - Whitepaper */
.sectionsHeading {
@apply text-[4.188rem] font-normal leading-tight md:text-[4.3504rem] lg:text-[5.438rem];
@apply text-[3.5rem] sm:text-[4.2rem] font-bold leading-[1.1] lg:text-[4.5rem];
}

/* Subheading in About - Security - Whitepaper */
Expand Down
2 changes: 2 additions & 0 deletions apps/webapp/components/routes/home/auction-card-buttons.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,8 @@ export function AuctionCardButtons({ project }: { project: Project }) {
<ExternalLinkButton
key={`card-button-${index}`}
variant="outline"
// ? Currently, Bitlauncher Community does not have a Telegram group (got blocked). Only Bitcash but the legacy channel.
disabled={project.id === 1 && socialTitle === 'Telegram Group'}
size="icon"
link={link}
className={buttonLinkClassName}
Expand Down
26 changes: 14 additions & 12 deletions apps/webapp/components/routes/project/copy-shorlink.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import { AnimatePresence } from 'framer-motion'
import { LucideCheck, LucideLoader2, LucideShare, LucideX } from 'lucide-react'
import { useParams } from 'next/navigation'
import { useState } from 'react'
import toast from 'react-hot-toast'

export function CopyShortlinkIcon() {
const [status, setStatus] = useState<
Expand All @@ -19,23 +20,20 @@ export function CopyShortlinkIcon() {
: ''

const checkShareLink = async () => {
if (!session?.account) {
return { data: null, error: 'Please log in to share this project and refer friends.' }
}

const { data, error } = await supabase
.from('account')
// select shareLink from user where linkPath = 'https://bitlauncher.ai${window.location.pathname}${param}'
.select('account, short_link')
.eq('account', session?.account || '')
.eq('account', session?.account)
.single()

if (error) {
console.error('Failed to check share link:', error)
setStatus('error')

return { data: null, error }
}

let returnData = data

if (!data.short_link) {
if (!returnData?.short_link) {
const { data: dubCoShortLink, error: dubCoError } =
await generateShortLink(
`https://bitlauncher.ai${window.location.pathname}${param}`,
Expand All @@ -48,7 +46,7 @@ export function CopyShortlinkIcon() {
return { data: null, error: dubCoError }
}

await supabase.from('account').upsert(
const { data: user } = await supabase.from('account').upsert(
{
account: session?.account || '',
short_link: dubCoShortLink?.shortLink,
Expand All @@ -57,8 +55,10 @@ export function CopyShortlinkIcon() {
onConflict: 'account',
},
)
.select('*')
.single()

returnData = { ...data, short_link: dubCoShortLink?.shortLink as string }
returnData = { account: user?.account as string, short_link: dubCoShortLink?.shortLink || null }

setTimeout(() => setStatus('default'), 5000)
}
Expand All @@ -71,13 +71,15 @@ export function CopyShortlinkIcon() {
try {
const { data, error } = await checkShareLink()

if (error || !data) throw new Error(error?.message || 'Unknown error')
if (error || !data) throw new Error(error || 'Unknown error')
navigator.clipboard.writeText(data?.short_link || '')
setStatus('copied')
toast.success('Link copied to clipboard!')
setTimeout(() => setStatus('default'), 5000)
} catch (error) {
console.error('Failed to copy share link:', error)
setStatus('error')
toast.error((error as Error).message)
setTimeout(() => setStatus('default'), 5000)
}
}
Expand Down
12 changes: 8 additions & 4 deletions apps/webapp/components/routes/project/project-info.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,9 @@ function ListItem({ label, value }: ItemProps) {
<div className="flex justify-between w-full">
<h3 className="flex items-center justify-between w-full">
<span className="font-futura-pt-demi opacity-70">{label}: </span>
<span className="text-right text-sm">{typeof value === 'string' ? value : null}</span>
<span className="text-right text-sm">
{typeof value === 'string' ? value : null}
</span>
</h3>
</div>
)
Expand All @@ -37,12 +39,12 @@ export function ProjectInfo({
}) {
const fields: Array<Array<ItemProps>> = [
[
{ label: 'Presale', value: '9/15/24 - 10/15/24' },
{ label: 'Presale', value: '9/15/24 - 11/15/24' },
{ label: 'Fundraising Goal', value: '$150,000' },
{ label: 'Max Allocation', value: '$1,500' },
],
[
{ label: 'Token Sale', value: '11/2/24 - 11/30/24' },
{ label: 'Token Sale', value: 'TBD' },
{ label: 'Fundraising Goal', value: '$250,000' },
{ label: 'Max Allocation', value: '$10,000' },
],
Expand All @@ -65,7 +67,9 @@ export function ProjectInfo({
className="flex w-full min-w-[250px] flex-col justify-evenly rounded-sm bg-muted px-4 py-3 md:min-w-[203px]"
>
{items.map((item, ik) => (
<Fragment key={`pre-sale-field-${(item.label || 'default').replace(/\s/g, '_')}`}>
<Fragment
key={`pre-sale-field-${(item.label || 'default').replace(/\s/g, '_')}`}
>
<ListItem {...item} />

{ik < items.length - 1 && (
Expand Down
2 changes: 2 additions & 0 deletions apps/webapp/components/routes/project/project-share.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,8 @@ export function ProjectShare({ project }: { project: Project }) {
className={cn(
buttonVariants({ variant: 'outline', size: 'icon' }),
'relative size-[50px] rounded-full px-0 py-0 pr-1',
// ? Currently, Bitlauncher Community does not have a Telegram group (got blocked). Only Bitcash but the legacy channel.
{ 'pointer-events-none cursor-not-allowed opacity-50': project.id === 1 },
)}
target="_blank"
rel="noopener noreferrer"
Expand Down
9 changes: 6 additions & 3 deletions apps/webapp/components/shared/bg-header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import Balancer from 'react-wrap-balancer'
export function BgHeader({
heading,
subheading,
imageSrc,
background = 'security',
className,
}: {
heading: string
imageSrc: string
background?: 'security' | 'whitepaper' | 'about'
subheading?: string
className?: string
}) {
Expand All @@ -22,7 +22,10 @@ export function BgHeader({
</h2>
<div className="sectionsSubheading">{subheading}</div>
</div>
<div className="infopages-background infopages-background--security">
<div className={cn(
'infopages-background',
`infopages-background--${background}`
)}>
<div className="absolute bottom-0 m-4">
<CommunityCard />
</div>
Expand Down
Loading

0 comments on commit 6c76e8d

Please sign in to comment.