testnet-laconicd-stack/ops/nitro-token-ops.md
nabarun 81923f5323 Add deployment details for fixturenet-eth (#30)
Part of [Create bridge channel in go-nitro](https://www.notion.so/Create-bridge-channel-in-go-nitro-22ce80a0d8ae4edb80020a8f250ea270)

Co-authored-by: Shreerang Kale <shreerangkale@gmail.com>
Reviewed-on: #30
2024-10-21 11:07:01 +00:00

2.1 KiB

Nitro Token Ops

Setup

  • Go to the directory where nitro-contracts-deployment is present:

    cd /srv/bridge
    

Deploy new token

  • To deploy another token:

    # These values can be changed to deploy another token with different name and symbol
    export TOKEN_NAME="TestToken2"
    export TOKEN_SYMBOL="TST2"
    
    # Note: Token supply denotes actual number of tokens and not the supply in Wei
    export INITIAL_TOKEN_SUPPLY="129600"
    
    laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "TOKEN_NAME=$TOKEN_NAME TOKEN_SYMBOL=$TOKEN_SYMBOL INITIAL_TOKEN_SUPPLY=$INITIAL_TOKEN_SUPPLY /app/deploy-l1-tokens.sh"
    
  • Recreate assets.json to include newly deployed token address:

    export GETH_CHAIN_ID="1212"
    
    laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq --arg chainId \"$GETH_CHAIN_ID\" '{
      (\$chainId): [
        {
          \"name\": .[\$chainId][0].name,
          \"chainId\": .[\$chainId][0].chainId,
          \"contracts\": (
            .[\$chainId][0].contracts
            | to_entries
            | map(select(.key | in({\"ConsensusApp\":1, \"NitroAdjudicator\":1, \"VirtualPaymentApp\":1}) | not))
            | from_entries
          )
        }
      ]
    }' /app/deployment/nitro-addresses.json" > assets.json
    
    • The required config file should be generated at /srv/bridge/assets.json

    • Check in the generated file at location ops/stage2/assets.json within this repository

Transfer deployed tokens to given address

  • To transfer a token to an account:

    export GETH_CHAIN_ID=1212
    export TOKEN_NAME="<name-of-token-to-be-transferred>"
    export ASSET_ADDRESS=$(laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "jq -r '.\"$GETH_CHAIN_ID\"[0].contracts.$TOKEN_NAME.address' /app/deployment/nitro-addresses.json")
    export ACCOUNT="<target-account-address>"
    export AMOUNT="<transfer-amount>"
    
    laconic-so deployment --dir nitro-contracts-deployment exec nitro-contracts "cd packages/nitro-protocol && yarn hardhat transfer --contract $ASSET_ADDRESS --to $ACCOUNT --amount 1000 --network geth"