.gitpod.yml
README.md
contract
    Cargo.toml
    README.md
    build.sh
    compile.js
    src
        approval.rs
        assistance.rs
        enumeration.rs
        events.rs
        internal.rs
        lib.rs
        metadata.rs
        mint.rs
        nft_core.rs
        royalty.rs
frontend
    components
        inputs
            index.ts
        near
            contract.ts
            near.ts
        utils.ts
    config.ts
    hooks
        useAuth.ts
        useNear.ts
        useNotify.ts
        useUser.ts
    models
        ContractsContainer.ts
        Event.ts
        ExtraMetadata.ts
        Network.ts
        Sale.ts
        Token.ts
        TokenMetadata.ts
        TokenSeries.ts
        TokenSeriesJson.ts
        User.ts
    next-env.d.ts
    next.config.js
    package-lock.json
    package.json
    pages
        api
            hello.ts
            sitemap.ts
    postcss.config.js
    public
        vercel.svg
    styles
        Home.module.css
        globals.css
    tailwind.config.js
    tsconfig.json
package.json

template Smart Contract
==================

A [smart contract] written in [Rust] for an app initialized with [create-near-app]

Quick Start
===========

Before you compile this code, you will need to install Rust with [correct target]

Exploring The Code
==================

1. The main smart contract code lives in `src/lib.rs`. You can compile and deploy the contract running ./build.sh. To make it executable run `chmod u+x build.sh`. After making it executable run `./build.sh` this will build and deploy the contract.
2. Tests: You can run smart contract tests with the `./test` script. This runs
   standard Rust tests using [cargo] with a `--nocapture` flag so that you
   can see any debug info you print to the console.

  [smart contract]: https://docs.near.org/docs/develop/contracts/overview
  [Rust]: https://www.rust-lang.org/
  [create-near-app]: https://github.com/near/create-near-app
  [correct target]: https://github.com/near/near-sdk-rs#pre-requisites
  [cargo]: https://doc.rust-lang.org/book/ch01-03-hello-cargo.html
Quick Start
===========

To run this project locally:

1. Prerequisites: Make sure you've installed [Node.js] ≥ 12
2. Install dependencies: `npm install`
3. Go into frontend folder and run `npm install` to install Typescript and Tailwind.
4. Run the frontend from the frontend folder using: `npm run dev`

Exploring The Code
==================

1. The "backend" code lives in the `/contract` folder. See the README there for
   more info.
2. The frontend code lives in the `/frontend` folder.
3. Tests: there are different kinds of tests for the frontend and the smart
   contract. See `contract/README` for info about how it's tested.

Deploy
======

Every smart contract in NEAR has its [own associated account][NEAR accounts]. When you run `yarn dev`, your smart contract gets deployed to the live NEAR TestNet with a throwaway account. When you're ready to make it permanent, here's how.

Step 0: Install near-cli (optional)
-------------------------------------

[near-cli] is a command line interface (CLI) for interacting with the NEAR blockchain. It was installed to the local `node_modules` folder when you ran `yarn install`, but for best ergonomics you may want to install it globally:

    yarn install --global near-cli

Or, if you'd rather use the locally-installed version, you can prefix all `near` commands with `npx`

Ensure that it's installed with `near --version` (or `npx near --version`)

Step 1: Create an account for the contract
------------------------------------------

Each account on NEAR can have at most one contract deployed to it. If you've already created an account such as `your-name.testnet`, you can deploy your contract to `template.your-name.testnet`. Assuming you've already created an account on [NEAR Wallet], here's how to create `template.your-name.testnet`:

1. Authorize NEAR CLI, following the commands it gives you:

      near login

2. Create a subaccount (replace `YOUR-NAME` below with your actual account name):

      near create-account template.YOUR-NAME.testnet --masterAccount YOUR-NAME.testnet

Step 2: set contract name in code
---------------------------------

Modify the line in `src/config.js` that sets the account name of the contract. Set it to the account id you used above.

    const CONTRACT_NAME = process.env.CONTRACT_NAME || 'template.YOUR-NAME.testnet'

Step 3: deploy!
---------------

One command:

    yarn deploy

As you can see in `package.json`:

1. builds & deploys smart contract to NEAR TestNet

Author:
@sebasvivas1 - mzterdox.near
