🧪
The Soroban's Token Playground
  • README
  • Index
    • 1: Introduction & Motivation.
    • 2 : Basic Concepts
    • 3 : Environment preparation
    • 4 : Issue and Mint Asset in Stellar.
    • 5: Get info about a token in Classic.
    • 6 : Wrap a token from Stellar Classic to Soroban.
    • 7 : Mint from a wrapped token in Soroban.
    • 8 : Use the native Stellar Lumens (XLM) the classic way.
    • 9 : Read the native token (XLM) using soroban-cli.
    • 10 : Write the native token (XLM) using soroban-cli.
    • 11 : Use the native token (XLM) inside a smart contract.
    • 12 : Identify a Stellar Classic Asset using stellar-sdk.
    • 13 : Wrap an asset using stellar-sdk.
Powered by GitBook
On this page
  • Token Playground Chapter 3 : Environment preparation
  • Introduction:
  • 1. Configure Docker
  • 2. Configure Two Stellar Accounts
  • 3. Next
Edit on GitHub
  1. Index

3 : Environment preparation

Previous2 : Basic ConceptsNext4 : Issue and Mint Asset in Stellar.

Last updated 1 year ago

Token Playground Chapter 3 : Environment preparation

  • Check this guide in

  • Edit this guide in it's repo:

  • Contribute to this guide in the of the repo

Introduction:

In this chapte we will prepare our system in order to use this Playground. You need to have Docker installed in your system, configure at least 2 stellar accounts, and edit the settings.js file.

Remember to follow the code in the . Also, you can clone the code by doing

git clone https://github.com/esteblock/token-playground/

Also you'll need to install the node packages:

yarn

1. Configure Docker

Here we detail the steps to follow in order to configure your Docker envirenoment:

  • Install Docker in your system.

  • Create a common docker network

  • Run a docker container with the esteblock/soroban-preview image, that includes soroban cli, rust and other tools that this uses

  • Run a docker container with the stellar/quickstart image, that provides a local stellar and soroban node

1.1. Install Docker in your system

1.2. Create a common docker network (only once)

Establishing a shared Docker network will enable seamless communication between the two Docker containers that we are about to create in the following steps.

Here we will name this network as soroban-network, but you can choose the name you want. You can create this network by:

docker network create soroban-network

1.3. Run a soroban-preview docker container:

cd token-playground
currentDir=$(pwd)
docker run --volume  ${currentDir}:/workspace \
           --name soroban-preview-10 \
           --interactive \
           --tty \
           -p 8001:8000 \
           --detach \
           --ipc=host \
           --network soroban-network \
           esteblock/soroban-preview:10

Here we used the flag --network soroban-network, so any other container in the same network can call each other just using its name. In this case, this container's name is soroban-preview-10

1.4.- Run a stellar/quickstart docker container

Stellar provides a docker image that contains an stellar node including Soroban, an stellar core program and the horizon server. You can initialize the node as standalone (transactions will not be synced to the network), futurenet (transactions will be synced to futurenet network), or mainnet.

You can run this container by doing:

docker run --rm -ti \
  --platform linux/amd64 \
  --name stellar \
  --network soroban-network \
  -p 8000:8000 \
  stellar/quickstart:soroban-dev@sha256:8a99332f834ca82e3ac1418143736af59b5288e792d1c4278d6c547c6ed8da3b \
  standalone \
  --enable-soroban-rpc \
  --protocol-version 20 

Then, if the soroban-preview-10 containter want's to call the RPC of the stellar container, it can use the following RPC URL

http://stellar:8000

1.4. Use the Playground code

./quickstart.sh standalone

2. Configure Two Stellar Accounts

2.1. Get two new accounts from the Stellar Laboratory

You will need two stellar accounts to use this token playground. The first one will be the receiver address, responsible of creating and issuing Stellar Assets, the second one wiil be the destination address that will need to create a trustline to the asset and then will receive the tokens.

2.2. Configure settings.js

{   "issuerSecret": "SAHC723FQTC3MARBNUZLUFEIYI62VQDQH7FHLD2FGV6GROQQ7ULMHQGH",   
    "issuerPublic": "GAM5XOXRUWPMKENBGOEAKMLRQ4ENHLHDSU2L2J7TVJ34ZI7S6PHMYIGI",    
    "receiverSecret": "SBFJKSFA5YK2SUAVVSMEKDA44MYCBFSNNAORJSO7J437HJWU6G7SGAVF",
    "receiverPublic": "GDGYEYETZ2AWW3M3XUEAZN7LZPCL4BTKROEDE5LLOU6GTJRNG4FX3IEQ",
    "thirdParty": "GBIZQR4QEOFHONNJAC72H2TYTMINJXNQ4J63VGCKT2X5VMJ4IQE3OWZM", 
    "assetCode": "MYASSETCODE", // assset code of the asset issued
    "horizonUrl": "http://stellar:8000", //url to request horizon api
    "networkPassphrase": "Standalone Network ; February 2017", 
    "amount": "5", //amount will be issued in asset creation
    "limit": "1000"  //limit ammount to  receive
}

Here, you need to edit:

  • For the issuer account: issuerSecret and issuerPublic

  • For the receiver account: receiverSecret and receiverPublic.

thirdParty will be configured later... or you can leave it like this

2.3. Fund your accounts

Stellar accounts need to be funded wit at least 1 XLM before existing. Stellar provide the friendbot utility that can fund test networks like futurenet.

If you already have your stellar/quickstart docker container, because it's sharing its 8000 port, you can call the Friendbot by doing

TOKEN_ADMIN_ADDRESS="GCUA5RTRR4N4ILSMORG3XFXJZB6KRG4QB22Z45BUNO5LIBCOYYPZ6TPZ"
FRIENDBOT_URL="http://localhost:8000/soroban/rpc/friendbot"
curl --silent -X POST "FRIENDBOT_URL?addr=TOKEN_ADMIN_ADDRESS" >/dev/null

If you want to call this from the soroban-preview-10 docker container, be sure to change http://localhost:8000 to http://stellar:8000 because the two docker container are using the same docker network and can be called by their name. You can also use https://friendbot-futurenet.stellar.org/ in case your request is to the futurenet directly.

2.4. Use our code

docker exec soroban-preview-10 node src/friendbot.js
import fetch from 'node-fetch'
import settings from "../settings.json"  assert { type: "json" };

await fetch( settings.horizonUrl+'/friendbot?addr='+settings.issuerPublic, {method: 'POST'})
await fetch( settings.horizonUrl+'/friendbot?addr='+settings.receiverPublic, {method: 'POST'})

3. Next


Follow the instructions from the

The allow developers to work in different projects that use different (with different versions of soroban-cli, rust and others).

The soroban-preview docker images are hosted in . In this example we will use the Soroban Preview Release #10, hence we will use the esteblock/soroban-preview:10 image. To run a container with this image, do:

Here we are using the stellar/quickstart:soroban-dev@sha256:8a99332f834ca82e3ac1418143736af59b5288e792d1c4278d6c547c6ed8da3b beacuse this is the image used in the , and we are using the same network with the flag --network soroban-network

In this playground we prepared the scipt that will do steps 1.2, 1.3 and 1.4. Just do.

You can use to create the accounts.

The file include a set of variables required to run the different scripts of the token playground. Here you have a sample:

If you want to use our code, we prepared the script that can be called by the soroban-preview-10 docker container:

This script will take the issuer and receiver addresses from the file:

In the we will use this docker containers in order to issue and mint a new (classic) Stellar Asset

This Playgound has been developed by in collaboration with from

https://token-playground.gitbook.io/
https://github.com/esteblock/token-playground/
./docs folder
Token Playground's Repo
playground
Docker's web page
soroban-preview docker images
Soroban Preview Releases
Read more here
docker hub
Soroban Preview #10
quickstart.sh
the stellar laboratory
settings.json
Token Playground's Repo
src/friendbot.js
seetings.json
next chapter
@esteblock
@marcos74
@Dogstarcoin