Scaffolding for a dapp built on Solana

Overview

🏗 Solana App Scaffold

Scaffolding for a dapp built on Solana

Quickstart

git clone https://github.com/solana-labs/dapp-scaffold.git

cd dapp-scaffold
yarn
yarn start

Environment Setup

  1. Install Rust from https://rustup.rs/
  2. Install Solana v1.6.7 or later from https://docs.solana.com/cli/install-solana-cli-tools#use-solanas-install-tool
  3. Install Node
  4. Install NPM, Yarn

Build Smart Contract (compiled for BPF)

Run the following from the program/ subdirectory:

$ cargo build-bpf
$ cargo test-bpf

Directory structure

program

Solana program template in Rust

program/src/lib.rs

  • process_instruction function is used to run all calls issued to the smart contract

src/actions

Setup here actions that will interact with Solana programs using sendTransaction function

src/contexts

React context objects that are used propagate state of accounts across the application

src/hooks

Generic react hooks to interact with token program:

  • useUserBalance - query for balance of any user token by mint, returns:
    • balance
    • balanceLamports
    • balanceInUSD
  • useUserTotalBalance - aggregates user balance across all token accounts and returns value in USD
    • balanceInUSD
  • useAccountByMint
  • useTokenName
  • useUserAccounts

src/views

  • home - main page for your app
  • faucet - airdrops SOL on Testnet and Devnet
Comments
  • Adds solana wallet adapter

    Adds solana wallet adapter

    • This PR cleans up the dapp scaffold by removing code that was moved into the new solana-wallet-adapter
    • But also integrates the new solana-wallet-adapter, making the dapp scaffold a lot easier to understand
    • Fixes a tiny unhandled error with the airdrop functionality.
    • Also cleaned up a little bit of code deprecations (Account -> Keypair)

    DApp Starter _ Solana

    opened by kevinrodriguez-io 10
  • chore(deps): bump @solana/web3.js from 1.31.0 to 1.47.1

    chore(deps): bump @solana/web3.js from 1.31.0 to 1.47.1

    Bumps @solana/web3.js from 1.31.0 to 1.47.1.

    Release notes

    Sourced from @​solana/web3.js's releases.

    v1.47.1

    1.47.1 (2022-07-01)

    Bug Fixes

    • web3.js; maxRetries no longer stripped when zero (#26345) (ea9dffa)

    v1.47.0

    1.47.0 (2022-06-30)

    Features

    • web3.js RPC errors now hold the error code and data on the error object (#26318) (f4d9f51)

    v1.46.0

    1.46.0 (2022-06-29)

    Features

    • add minContextSlot configuration to (almost) all web3.js methods (#26296) (6482d0d)

    v1.45.0

    1.45.0 (2022-06-29)

    Features

    • add custom version HTTP header string to RPC requests (6e009d8)

    v1.44.3

    1.44.3 (2022-06-27)

    Bug Fixes

    • always use the nonce as the recent blockhash; never overwrite it (#25829) (2f80949)

    v1.44.2

    1.44.2 (2022-06-21)

    Bug Fixes

    • getTransactions() now returns the expected datatype (#26099) (af0d949)

    v1.44.1

    1.44.1 (2022-06-17)

    ... (truncated)

    Commits
    • ea9dffa fix: web3.js; maxRetries no longer stripped when zero (#26345)
    • f4d9f51 feat: web3.js RPC errors now hold the error code and data on the error ob...
    • 6482d0d feat: add minContextSlot configuration to (almost) all web3.js methods (#26...
    • 6e009d8 feat: add custom version HTTP header string to RPC requests
    • 5790271 test: compile web3.js tests in such a way that you can use es2020+ syntax wit...
    • 5a8625a chore: upgrade rpc-websockets to eliminate bad circular-json dependency
    • 2f80949 fix: always use the nonce as the recent blockhash; never overwrite it (#25829)
    • 0b3de2b chore: fix types of RpcRequest and RpcBatchRequest (#26102)
    • af0d949 fix: getTransactions() now returns the expected datatype (#26099)
    • fb2aeaa fix: export custom transaction confirmation error classes
    • Additional commits viewable in compare view
    Maintainer changes

    This version was pushed to npm by _chido, a new releaser for @​solana/web3.js since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 4
  • Airdrop Button Spinner

    Airdrop Button Spinner

    Show a spinning loader icon in the UI while the airdrop button awaits a response

    https://user-images.githubusercontent.com/61704946/162640950-af192274-7391-4a7e-acce-115b96ce6ad1.mov

    Issue #150

    Notes

    1. I'm unable to generalize this into an intermediary and reusable component, because publicKey / useWallet() doesn't seem to work in callback functions
    opened by 32jvilla 4
  • Default token mints subscriptions, killer for public rpc and private pools

    Default token mints subscriptions, killer for public rpc and private pools

    Every single token mint in spl-token-registry is added to the cache

    https://github.com/solana-labs/dapp-scaffold/blob/9352c93fe34fb061eed33030dc406074295a69b0/src/contexts/connection.tsx#L97-L125

    Adding to the cache has a side effect, creating a subscription to the added account: https://github.com/solana-labs/dapp-scaffold/blob/eef68f4a46717b81549211594334d98bf358f87d/src/contexts/accounts.tsx#L361-L371

    This problem is invisible on devnet as the token list is small, but once plugged to mainnet this is a node/rpcpool killer as the code will open a great number of account subscriptions through onAccountChange

    In most cases an up to date token mint is not required, only in rare cases it is useful (LP token supply...).

    This should be reworked so the dapp-scaffold boilerplate is not a trap.

    Here is a screenshot of the swarm of accountSubscribe in the websocket, it can't even fit on the screen Screenshot from 2021-07-22 18-39-12

    Some of which are essential tokens to be monitored Screenshot from 2021-07-22 17-54-47

    opened by Arrowana 4
  • cargo test-bpf fails on M1 Mac

    cargo test-bpf fails on M1 Mac

    I've been trying to set this up per the instructions. Once I run

    cargo test-bpf

    I get the foll0wing error: failed to run custom build command forring v0.16.12`

    When I try to update to update it per the seggestion of dev of ring https://github.com/briansmith/ring/issues/1163 by adding

    ring = "0.16.19"

    to the Cargo.tml, I get the following:

    Failed to obtain package metadata: Error during execution of `cargo metadata`:     Updating crates.io index
    error: failed to select a version for `cc`.
        ... required by package `ring v0.16.19`
        ... which is depended on by `bpf-program-template v0.1.0 (/Users/erick/Documents/Code/dapp-scaffold/program)`
    versions that meet the requirements `^1.0.62` are: 1.0.67, 1.0.66, 1.0.65, 1.0.64, 1.0.63, 1.0.62
    
    all possible versions conflict with previously selected packages.
    
      previously selected package `cc v1.0.45`
        ... which is depended on by `solana-crate-features v1.6.7`
        ... which is depended on by `solana-sdk v1.6.7`
        ... which is depended on by `bpf-program-template v0.1.0 (/Users/erick/Documents/Code/dapp-scaffold/program)`
    
    failed to select a version for `cc` which could resolve this conflict
    

    How do I move past this? I tied adding: cc = "^1.0.62"

    to the Cargo.toml, and it still has issues:

    
    Failed to obtain package metadata: Error during execution of `cargo metadata`:     Updating crates.io index
    error: failed to select a version for `cc`.
        ... required by package `bpf-program-template v0.1.0 (/Users/erick/Documents/Code/dapp-scaffold/program)`
    versions that meet the requirements `^1.0.62` are: 1.0.67, 1.0.66, 1.0.65, 1.0.64, 1.0.63, 1.0.62
    
    all possible versions conflict with previously selected packages.
    
      previously selected package `cc v1.0.45`
        ... which is depended on by `solana-crate-features v1.6.7`
        ... which is depended on by `solana-sdk v1.6.7`
        ... which is depended on by `bpf-program-template v0.1.0 (/Users/erick/Documents/Code/dapp-scaffold/program)`
    
    failed to select a version for `cc` which could resolve this conflict
    

    What can be done to resolve this?

    opened by ericklind 4
  • "Expired transaction" - ERROR

    We are getting "expired transaction error" in phatom while trying to send any transaction in the devnet or testnet. Signing a message works fine. It pop ups the error without any possibility to click the approve button or anything. This doesn't happen in the mainnet weirdly, just the other 2 nets.

    opened by mrbotnft 3
  • Transaction creation failed.

    Transaction creation failed.

    Just trying the out of the box transaction an error:

    Phantom - RPC Error: Transaction creation failed. {code: -32003, message: 'Transaction creation failed.'}

    opened by breadbaker 3
  • Error on startup: unhandled rejection

    Error on startup: unhandled rejection

    Error seen by me and another dev on discord, it happens when the app first starts and is loaded by the browser

    Error is Unhandled Rejection: failed to get info about account Invalid Param: Wrong Size

    I tracked it down to the getMultipleAccounts call in connection.tsx Some of the known mint addresses had a trailing space in the address.

    The below patch fixed it for me , but not sure if there is a better way to patch upstream of this to fix the addresses

    diff --git a/src/contexts/connection.tsx b/src/contexts/connection.tsx
    index 5d864e9..215eea5 100644
    --- a/src/contexts/connection.tsx
    +++ b/src/contexts/connection.tsx
    @@ -105,7 +105,7 @@ export function ConnectionProvider({ children = undefined as any }) {
             .excludeByTag("nft")
             .getList();
           const knownMints = list.reduce((map, item) => {
    -        map.set(item.address, item);
    +        map.set(item.address.trim(), item);
             return map;
           }, new Map<string, TokenInfo>());
     
    
    opened by brnllski 3
  • Unhandled Rejection (error): Not a valid Mint

    Unhandled Rejection (error): Not a valid Mint

    https://github.com/solana-labs/dapp-scaffold/blob/b4bd88a405edc5ce103539e2f837fedcd6a0f8b7/src/contexts/accounts.tsx#L610

    Reproduction: git clone https://github.com/solana-labs/dapp-scaffold.git yarn yarn start

    Run on an incognito window or a browser that hadn't cached anything before.

    If an invalid token is provided by a TokenProvider, it crashes the whole app.

    A solution is wrapping https://github.com/solana-labs/dapp-scaffold/blob/b4bd88a405edc5ce103539e2f837fedcd6a0f8b7/src/contexts/accounts.tsx#L155 In a try-catch block.

    opened by alexgfh 3
  • Add Usage with SWR Example Page

    Add Usage with SWR Example Page

    Add Usage with SWR Example Page

    Description

    Added a new page with an example showing how Vercel's SWR data fetching library can be leveraged for asynchronous Solana calls. The new page can be accessed via the /with-swr path or by clicking the "Solana + SWR" link on the AppBar.

    If the user is not logged in, they will not be able to interact with the example components and will instead see a "Connect your wallet to continue" message. Once the user has been authenticated, two components will be rendered:

    • TransactionForm. Form component consisting of two entries: one to enter an amount in SOL and another to enter a writable address to which the previously entered amount will be sent.
    • TransactionTable. Table listing relevant information about the latest transactions associated with the authenticated wallet. To ensure that the information displayed is always up to date and in sync with the server, this component takes advantage of a custom hook, useSignatures, which is built on top of SWR's own useSWR hook. With this setup, useSignatures was configured to revalidate signature data every 1000ms (see the "Revalidate on Interval" section in the SWR docs).

    Upon submitting the transaction form, a transaction approval window will be triggered based on the selected wallet provider. If the entered amount exceeds the current wallet balance, an error will be thrown and no changes will take effect.

    Once the user has approved the ongoing transaction, changes to the current balance and most recent transactions will be immediately reflected in the user interface. By calling the mutate method from the useSWRConfig hook (see useSWRConfig()), these changes will reflect the latest server state. In the TransactionTable component, since data is automatically revalidated, most recent transactions will initially show a status of "Confirmed," which will change to "Finalized" after a few seconds.

    Demo

    Screen Recording 2022-06-17 at 18 58 46

    opened by hreyesm 2
  • How to use with Anchor

    How to use with Anchor

    Does anyone have tips or an example on how to use this scaffold and all of the wallet plumbing that goes with it, to load an IDL from a program built and deployed with Anchor and interact with it? For the life of me I cannot find a working example.

    opened by ezeev 2
  • chore(deps): bump @solana/wallet-adapter-wallets from 0.19.4 to 0.19.10

    chore(deps): bump @solana/wallet-adapter-wallets from 0.19.4 to 0.19.10

    Bumps @solana/wallet-adapter-wallets from 0.19.4 to 0.19.10.

    Release notes

    Sourced from @​solana/wallet-adapter-wallets's releases.

    @​solana/wallet-adapter-wallets@​0.19.10

    Patch Changes

    • Updated dependencies [21d2c863]
      • @​solana/wallet-adapter-solflare@​0.6.21

    @​solana/wallet-adapter-wallets@​0.19.9

    Patch Changes

    • Updated dependencies [912cc0e]
      • @​solana/wallet-adapter-fractal@​0.1.5
      • @​solana/wallet-adapter-phantom@​0.9.19
      • @​solana/wallet-adapter-alpha@​0.1.7
      • @​solana/wallet-adapter-avana@​0.1.10
      • @​solana/wallet-adapter-backpack@​0.1.11
      • @​solana/wallet-adapter-bitkeep@​0.3.16
      • @​solana/wallet-adapter-bitpie@​0.5.15
      • @​solana/wallet-adapter-blocto@​0.5.19
      • @​solana/wallet-adapter-brave@​0.1.14
      • @​solana/wallet-adapter-censo@​0.1.1
      • @​solana/wallet-adapter-clover@​0.4.16
      • @​solana/wallet-adapter-coin98@​0.5.17
      • @​solana/wallet-adapter-coinbase@​0.1.15
      • @​solana/wallet-adapter-coinhub@​0.3.15
      • @​solana/wallet-adapter-exodus@​0.1.15
      • @​solana/wallet-adapter-glow@​0.1.15
      • @​solana/wallet-adapter-huobi@​0.1.12
      • @​solana/wallet-adapter-hyperpay@​0.1.11
      • @​solana/wallet-adapter-keystone@​0.1.9
      • @​solana/wallet-adapter-krystal@​0.1.9
      • @​solana/wallet-adapter-ledger@​0.9.22
      • @​solana/wallet-adapter-magiceden@​0.1.10
      • @​solana/wallet-adapter-mathwallet@​0.9.15
      • @​solana/wallet-adapter-neko@​0.2.9
      • @​solana/wallet-adapter-nightly@​0.1.12
      • @​solana/wallet-adapter-nufi@​0.1.13
      • @​solana/wallet-adapter-onto@​0.1.4
      • @​solana/wallet-adapter-particle@​0.1.7
      • @​solana/wallet-adapter-safepal@​0.5.15
      • @​solana/wallet-adapter-saifu@​0.1.12
      • @​solana/wallet-adapter-salmon@​0.1.11
      • @​solana/wallet-adapter-sky@​0.1.12
      • @​solana/wallet-adapter-slope@​0.5.18
      • @​solana/wallet-adapter-solflare@​0.6.20
      • @​solana/wallet-adapter-sollet@​0.11.14
      • @​solana/wallet-adapter-solong@​0.9.15
      • @​solana/wallet-adapter-spot@​0.1.12
      • @​solana/wallet-adapter-strike@​0.1.10
      • @​solana/wallet-adapter-tokenary@​0.1.9
      • @​solana/wallet-adapter-tokenpocket@​0.4.16

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • chore(deps-dev): bump eslint from 8.7.0 to 8.31.0

    chore(deps-dev): bump eslint from 8.7.0 to 8.31.0

    Bumps eslint from 8.7.0 to 8.31.0.

    Release notes

    Sourced from eslint's releases.

    v8.31.0

    Features

    • 52c7c73 feat: check assignment patterns in no-underscore-dangle (#16693) (Milos Djermanovic)
    • b401cde feat: add options to check destructuring in no-underscore-dangle (#16006) (Morten Kaltoft)
    • 30d0daf feat: group properties with values in parentheses in key-spacing (#16677) (Francesco Trotta)

    Bug Fixes

    • 35439f1 fix: correct syntax error in prefer-arrow-callback autofix (#16722) (Francesco Trotta)
    • 87b2470 fix: new instance of FlatESLint should load latest config file version (#16608) (Milos Djermanovic)

    Documentation

    • 4339dc4 docs: Update README (GitHub Actions Bot)
    • 4e4049c docs: optimize code block structure (#16669) (Sam Chen)
    • 54a7ade docs: do not escape code blocks of formatters examples (#16719) (Sam Chen)
    • e5ecfef docs: Add function call example for no-undefined (#16712) (Elliot Huffman)
    • a3262f0 docs: Add mastodon link (#16638) (Amaresh S M)
    • a14ccf9 docs: clarify files property (#16709) (Sam Chen)
    • 3b29eb1 docs: fix npm link (#16710) (Abdullah Osama)
    • a638673 docs: fix search bar focus on Esc (#16700) (Shanmughapriyan S)
    • f62b722 docs: country flag missing in windows (#16698) (Shanmughapriyan S)
    • 4d27ec6 docs: display zh-hans in the docs language switcher (#16686) (Percy Ma)
    • 8bda20e docs: remove manually maintained anchors (#16685) (Percy Ma)
    • b68440f docs: User Guide Getting Started expansion (#16596) (Ben Perlmutter)

    Chores

    • 65d4e24 chore: Upgrade @​eslint/eslintrc@​1.4.1 (#16729) (Brandon Mills)
    • 8d93081 chore: fix CI failure (#16721) (Sam Chen)
    • 8f17247 chore: Set up automatic updating of README (#16717) (Nicholas C. Zakas)
    • 4cd87cb ci: bump actions/stale from 6 to 7 (#16713) (dependabot[bot])
    • fd20c75 chore: sort package.json scripts in alphabetical order (#16705) (Darius Dzien)
    • 10a5c78 chore: update ignore patterns in eslint.config.js (#16678) (Milos Djermanovic)

    v8.30.0

    Features

    • 075ef2c feat: add suggestion for no-return-await (#16637) (Daniel Bartholomae)
    • 7190d98 feat: update globals (#16654) (Sébastien Règne)

    Bug Fixes

    • 1a327aa fix: Ensure flat config unignores work consistently like eslintrc (#16579) (Nicholas C. Zakas)
    • 9b8bb72 fix: autofix recursive functions in no-var (#16611) (Milos Djermanovic)

    Documentation

    • 6a8cd94 docs: Clarify Discord info in issue template config (#16663) (Nicholas C. Zakas)
    • ad44344 docs: CLI documentation standardization (#16563) (Ben Perlmutter)
    • 293573e docs: fix broken line numbers (#16606) (Sam Chen)
    • fa2c64b docs: use relative links for internal links (#16631) (Percy Ma)
    • 75276c9 docs: reorder options in no-unused-vars (#16625) (Milos Djermanovic)
    • 7276fe5 docs: Fix anchor in URL (#16628) (Karl Horky)
    • 6bef135 docs: don't apply layouts to html formatter example (#16591) (Tanuj Kanti)
    • dfc7ec1 docs: Formatters page updates (#16566) (Ben Perlmutter)

    ... (truncated)

    Changelog

    Sourced from eslint's changelog.

    v8.31.0 - December 31, 2022

    • 65d4e24 chore: Upgrade @​eslint/eslintrc@​1.4.1 (#16729) (Brandon Mills)
    • 35439f1 fix: correct syntax error in prefer-arrow-callback autofix (#16722) (Francesco Trotta)
    • 87b2470 fix: new instance of FlatESLint should load latest config file version (#16608) (Milos Djermanovic)
    • 8d93081 chore: fix CI failure (#16721) (Sam Chen)
    • 4339dc4 docs: Update README (GitHub Actions Bot)
    • 8f17247 chore: Set up automatic updating of README (#16717) (Nicholas C. Zakas)
    • 4e4049c docs: optimize code block structure (#16669) (Sam Chen)
    • 54a7ade docs: do not escape code blocks of formatters examples (#16719) (Sam Chen)
    • 52c7c73 feat: check assignment patterns in no-underscore-dangle (#16693) (Milos Djermanovic)
    • e5ecfef docs: Add function call example for no-undefined (#16712) (Elliot Huffman)
    • a3262f0 docs: Add mastodon link (#16638) (Amaresh S M)
    • 4cd87cb ci: bump actions/stale from 6 to 7 (#16713) (dependabot[bot])
    • a14ccf9 docs: clarify files property (#16709) (Sam Chen)
    • 3b29eb1 docs: fix npm link (#16710) (Abdullah Osama)
    • fd20c75 chore: sort package.json scripts in alphabetical order (#16705) (Darius Dzien)
    • a638673 docs: fix search bar focus on Esc (#16700) (Shanmughapriyan S)
    • f62b722 docs: country flag missing in windows (#16698) (Shanmughapriyan S)
    • 4d27ec6 docs: display zh-hans in the docs language switcher (#16686) (Percy Ma)
    • 8bda20e docs: remove manually maintained anchors (#16685) (Percy Ma)
    • b401cde feat: add options to check destructuring in no-underscore-dangle (#16006) (Morten Kaltoft)
    • b68440f docs: User Guide Getting Started expansion (#16596) (Ben Perlmutter)
    • 30d0daf feat: group properties with values in parentheses in key-spacing (#16677) (Francesco Trotta)
    • 10a5c78 chore: update ignore patterns in eslint.config.js (#16678) (Milos Djermanovic)

    v8.30.0 - December 16, 2022

    • f2c4737 chore: upgrade @​eslint/eslintrc@​1.4.0 (#16675) (Milos Djermanovic)
    • 1a327aa fix: Ensure flat config unignores work consistently like eslintrc (#16579) (Nicholas C. Zakas)
    • 075ef2c feat: add suggestion for no-return-await (#16637) (Daniel Bartholomae)
    • ba74253 chore: standardize npm script names per #14827 (#16315) (Patrick McElhaney)
    • 6a8cd94 docs: Clarify Discord info in issue template config (#16663) (Nicholas C. Zakas)
    • 0d9af4c ci: fix npm v9 problem with file: (#16664) (Milos Djermanovic)
    • 7190d98 feat: update globals (#16654) (Sébastien Règne)
    • ad44344 docs: CLI documentation standardization (#16563) (Ben Perlmutter)
    • 90c9219 refactor: migrate off deprecated function-style rules in all tests (#16618) (Bryan Mishkin)
    • 9b8bb72 fix: autofix recursive functions in no-var (#16611) (Milos Djermanovic)
    • 293573e docs: fix broken line numbers (#16606) (Sam Chen)
    • fa2c64b docs: use relative links for internal links (#16631) (Percy Ma)
    • 75276c9 docs: reorder options in no-unused-vars (#16625) (Milos Djermanovic)
    • 7276fe5 docs: Fix anchor in URL (#16628) (Karl Horky)
    • 6bef135 docs: don't apply layouts to html formatter example (#16591) (Tanuj Kanti)
    • dfc7ec1 docs: Formatters page updates (#16566) (Ben Perlmutter)
    • 8ba124c docs: update the prefer-const example (#16607) (Pavel)
    • e6cb05a docs: fix css leaking (#16603) (Sam Chen)

    v8.29.0 - December 2, 2022

    • 0311d81 docs: Configuring Plugins page intro, page tweaks, and rename (#16534) (Ben Perlmutter)

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • Refactor: Update confirmTransaction strategy

    Refactor: Update confirmTransaction strategy

    connection.confirmTransaction by only transaction signature is deprecated. Updated confirmTransaction to use BlockheightBasedTransactionConfirmationStrategy

    opened by GHesericsu 1
  • chore(deps-dev): bump postcss from 8.4.5 to 8.4.20

    chore(deps-dev): bump postcss from 8.4.5 to 8.4.20

    Bumps postcss from 8.4.5 to 8.4.20.

    Release notes

    Sourced from postcss's releases.

    8.4.20

    • Fixed source map generation for childless at-rules like @layer.

    8.4.19

    • Fixed whitespace preserving after AST transformations (by @​romainmenke).

    8.4.18

    • Fixed an error on absolute: true with empty sourceContent (by @​KingSora).

    8.4.17

    8.4.16

    • Fixed Root AST migration.

    8.4.15

    • Fixed AST normalization after using custom parser with old PostCSS AST.

    8.4.14

    • Print “old plugin API” warning only if plugin was used (by @​zardoy).

    8.4.13

    8.4.12

    • Fixed package.funding to have same value between all PostCSS packages.

    8.4.11

    • Fixed Declaration#raws.value type.

    8.4.10

    • Fixed package.funding URL format.

    8.4.9

    8.4.8

    • Fixed end position in empty Custom Properties.

    8.4.7

    • Fixed Node#warn() type (by @​ybiquitous).
    • Fixed comment removal in values after ,.

    8.4.6

    • Prevented comment removing when it change meaning of CSS.
    • Fixed parsing space in last semicolon-less CSS Custom Properties.
    • Fixed comment cleaning in CSS Custom Properties with space.
    • Fixed throwing an error on .root access for plugin-less case.
    Changelog

    Sourced from postcss's changelog.

    8.4.20

    • Fixed source map generation for childless at-rules like @layer.

    8.4.19

    • Fixed whitespace preserving after AST transformations (by Romain Menke).

    8.4.18

    • Fixed an error on absolute: true with empty sourceContent (by Rene Haas).

    8.4.17

    • Fixed Node.before() unexpected behavior (by Romain Menke).
    • Added TOC to docs (by Mikhail Dedov).

    8.4.16

    • Fixed Root AST migration.

    8.4.15

    • Fixed AST normalization after using custom parser with old PostCSS AST.

    8.4.14

    • Print “old plugin API” warning only if plugin was used (by @​zardoy).

    8.4.13

    • Fixed append() error after using .parent (by Jordan Pittman).

    8.4.12

    • Fixed package.funding to have same value between all PostCSS packages.

    8.4.11

    • Fixed Declaration#raws.value type.

    8.4.10

    • Fixed package.funding URL format.

    8.4.9

    • Fixed package.funding (by Álvaro Mondéjar).

    8.4.8

    • Fixed end position in empty Custom Properties.

    8.4.7

    • Fixed Node#warn() type (by Masafumi Koba).
    • Fixed comment removal in values after ,.

    8.4.6

    • Prevented comment removing when it change meaning of CSS.
    • Fixed parsing space in last semicolon-less CSS Custom Properties.
    • Fixed comment cleaning in CSS Custom Properties with space.
    • Fixed throwing an error on .root access for plugin-less case.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
  • chore(deps-dev): bump autoprefixer from 10.4.2 to 10.4.13

    chore(deps-dev): bump autoprefixer from 10.4.2 to 10.4.13

    Bumps autoprefixer from 10.4.2 to 10.4.13.

    Release notes

    Sourced from autoprefixer's releases.

    10.4.13

    • Fixed missed prefixes on vendor prefixes in name of CSS Custom Property.

    10.4.12

    • Fixed support of unit-less zero angle in backgrounds (by @​yisibl).

    10.4.11

    • Fixed text-decoration prefixes by moving to MDN data (by @​romainmenke).

    10.4.10

    • Fixed unicode-bidi prefixes by moving to MDN data.

    10.4.9

    • Fixed css-unicode-bidi issue from latest Can I Use.

    10.4.8

    • Do not print color-adjust warning if print-color-adjust also is in rule.

    10.4.7

    • Fixed print-color-adjust support in Firefox.

    10.4.6

    • Fixed print-color-adjust support.

    10.4.5

    10.4.4

    • Fixed package.funding to have same value between all PostCSS packages.

    10.4.3

    Changelog

    Sourced from autoprefixer's changelog.

    10.4.13

    • Fixed missed prefixes on vendor prefixes in name of CSS Custom Property.

    10.4.12

    • Fixed support of unit-less zero angle in backgrounds (by 一丝).

    10.4.11

    • Fixed text-decoration prefixes by moving to MDN data (by Romain Menke).

    10.4.10

    • Fixed unicode-bidi prefixes by moving to MDN data.

    10.4.9

    • Fixed css-unicode-bidi issue from latest Can I Use.

    10.4.8

    • Do not print color-adjust warning if print-color-adjust also is in rule.

    10.4.7

    • Fixed print-color-adjust support in Firefox.

    10.4.6

    • Fixed print-color-adjust support.

    10.4.5

    10.4.4

    • Fixed package.funding to have same value between all PostCSS packages.

    10.4.3

    • Fixed package.funding (by Álvaro Mondéjar).
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies javascript 
    opened by dependabot[bot] 0
Owner
Solana Foundation
Solana Foundation
✏️ Extended Writer supercharges Kirby's built-in Writer field with useful marks, nodes and features you wish were built-in

Extended Writer Extended Writer supercharges Kirby's built-in Writer field and block with useful marks, nodes and features you wish were built-in. Fea

coralic 21 Nov 10, 2022
A simple Node.js ORM for PostgreSQL, MySQL and SQLite3 built on top of Knex.js

bookshelf.js Bookshelf is a JavaScript ORM for Node.js, built on the Knex SQL query builder. It features both Promise-based and traditional callback i

Bookshelf.js 6.3k Jan 2, 2023
Modular Redis connection and PUBSUB subscription manager for node. Easily extendable. Built for performance, powered by ioredis.

RediBox Redis connection and PUBSUB subscription manager for node. Built for performance, powered by ioredis (for now). Maintained by TeamFA. What is

RediBox 83 Dec 15, 2022
A MongoDB-like database built on top of Hyperbee with support for indexing

hyperbeedeebee A MongoDB-like database built on top of Hyperbee with support for indexing WIP: There may be breaking changes in the indexing before th

null 35 Dec 12, 2022
A simple url shorter API built with nodejs running on Kubernetes in Google Cloud, using PostgreSQL for storage and cloud sql proxy.

Simple URL Shorter - Google Cloud - Kubernetes A simple url shorter API built with nodejs running on Kubernetes in Google Cloud, using PostgreSQL for

null 3 Nov 25, 2021
A Crypto App built to pracitse GraphQL Federation

Getting Started To start this project please first create a .env file in the root of your project with the following: REACT_APP_ASTRA_TOKEN={your_astr

Ania Kubow 34 Dec 28, 2022
A Gmail Clone which built with ReactJS and Redux. You can sign in with your Google Account, compose a new e-mail and send realtime emails to the project.

Gmail Clone with ReactJS A Gmail Clone that you can sign in with your Google Account, compose a new e-mail and send realtime emails to the project. Cl

Özge Coşkun Gürsucu 49 Nov 14, 2022
~900 byte minified CSV parser and builder. Smaller when compressed. Built in ESM only.

but-csv ~900 byte minified CSV parser and builder. Smaller when compressed. Built in ESM only. Doesn't care about headers, keyed rows, anything but st

Sam Thorogood 16 Nov 13, 2022
A simple easy-to-use database, built for beginners.

ByteDatabase: Built for Beginners Table of Content Features Installation Changelog Quick Examples Contributors Features Persistent Storage: Data store

CloudTeam 9 Nov 20, 2022
Complete Open Source Front End Candy Machine V2 Minter dAPP Built For The Frog Nation NFT Solana Project. Built With React, Candy Machine V2, Typescript

Complete Open Source Front End Candy Machine V2 Minter dAPP Built For The Frog Nation NFT Solana Project. Built With React, Candy Machine V2, Typescript

null 17 Sep 24, 2022
Grupprojekt för kurserna 'Javascript med Ramverk' och 'Agil Utveckling'

JavaScript-med-Ramverk-Laboration-3 Grupprojektet för kurserna Javascript med Ramverk och Agil Utveckling. Utvecklingsguide För information om hur utv

Svante Jonsson IT-Högskolan 3 May 18, 2022
Hemsida för personer i Sverige som kan och vill erbjuda boende till människor på flykt

Getting Started with Create React App This project was bootstrapped with Create React App. Available Scripts In the project directory, you can run: np

null 4 May 3, 2022
Kurs-repo för kursen Webbserver och Databaser

Webbserver och databaser This repository is meant for CME students to access exercises and codealongs that happen throughout the course. I hope you wi

null 14 Jan 3, 2023
Basic Dapp showing how a React Dapp can connect to Cronos using MetaMask and Crypto.com Defi Wallet

cronos-dapp-basic Basic Dapp showing how a React Dapp can connect to Cronos using MetaMask and Crypto.com Defi Wallet You need to have node version 14

Acclrate 1 Dec 31, 2021
Elven Tools Dapp - Elrond blockckchain frontend dapp demo. Primarily for NFT minting, but it can be used for other purposes.

Elven Tools Dapp Docs: elven.tools/docs/landing-page.html Demo: dapp-demo.elven.tools Sneak peek: youtu.be/ATSxD3mD4dc The Dapp is built using Nextjs

Elven Tools 24 Jan 1, 2023
This repo contains instructions on how to create your NFT in Solana(using Metaplex and Candy Machine) and mint it using your custom front-end Dapp

Solana-NFT minting Dapp Create your own NFT's on Solana, and mint them from your custom front-end Dapp. Tools used Metaplex -> Metaplex is the NFT sta

Udit Sankhadasariya 12 Nov 2, 2022
A simple Rust DApp Calculator in Solana 🦀

Rust Calculator ?? in Solana ?? This Calculator written Rust using Anchor ⚓ Setting up the Environment: Rust Installation: curl --proto '=https' --tls

Ritesh 7 Oct 11, 2022
🛠 Solana Web3 Tools - A set of tools to improve the user experience on Web3 Solana Frontends.

?? Solana Web3 Tools - A set of tools to improve the user experience on Web3 Solana Frontends.

Holaplex 30 May 21, 2022
solana-base-app is a base level, including most of the common features and wallet connectivity, try using `npx solana-base-app react my-app`

solana-base-app solana-base-app is for Solana beginners to get them up and running fast. To start run : run npx solana-base-app react my-app change th

UjjwalGupta49 33 Dec 27, 2022
Solana Boilerplate - Lightweight boilerplate for Solana dapps. Allows quick building and prototyping.

Lightweight boilerplate for Solana dapps. Allows quick building and prototyping. Feel free to contribute or fork this repository. Make it yours! Leave us a ⭐️ if this repo helped you.

null 21 Nov 15, 2022