P
P
Plutus Docs
Search
K
Comment on page

Token Contract Interaction

For the token contract interaction, you first need to clone the following repository: https://github.com/stellar/soroban-examples/ and build the token project. This will generate a soroban_token_contract.wasm file which we can deploy to interact with the token contract.

Deploy:

This deploys the token contract to the futurenet. You will receive a contract ID (TOKEN_CONTRACT_ID).
soroban contract deploy \
--wasm target/wasm32-unknown-unknown/release/soroban_token_contract.wasm \
--rpc-url https://rpc-futurenet.stellar.org:443 \
--network-passphrase 'Test SDF Future Network ; October 2022'

Check Balance:

You can check the balance of any USER_ADDRESS with the following command:
soroban contract invoke \
--wasm target/wasm32-unknown-unknown/release/soroban_token_contract.wasm \
--id ${TOKEN_CONTRACT_ID} \
--rpc-url https://rpc-futurenet.stellar.org:443 \
--network-passphrase 'Test SDF Future Network ; October 2022' \
-- balance --id ${USER_ADDRESS}

Make Admin:

An existing admin can promote any USER_ADDRESS to admin status using the following command:
soroban contract invoke \
--wasm target/wasm32-unknown-unknown/release/soroban_token_contract.wasm \
--id ${TOKEN_CONTRACT_ID} \
--source ${ADMIN_SECRET_KEY} \
--rpc-url https://rpc-futurenet.stellar.org:443 \
--network-passphrase 'Test SDF Future Network ; October 2022' \
-- set_admin --new_admin ${USER_ADDRESS}

Check Authorization:

You can check if USER_ADDRESS is authorized to spend their balance with the following command:
soroban contract invoke \
--wasm target/wasm32-unknown-unknown/release/soroban_token_contract.wasm \
--id ${TOKEN_CONTRACT_ID} \
--rpc-url https://rpc-futurenet.stellar.org:443 \
--network-passphrase 'Test SDF Future Network ; October 2022' \
-- authorized --id ${USER_ADDRESS}

Change Authorization:

An admin can authorize any USER_ADDRESS to spend their balance with the following command:
soroban contract invoke \
--wasm target/wasm32-unknown-unknown/release/soroban_token_contract.wasm \
--id ${TOKEN_CONTRACT_ID} \
--source ${ADMIN_SECRET_KEY} \
--rpc-url https://rpc-futurenet.stellar.org:443 \
--network-passphrase 'Test SDF Future Network ; October 2022' \
-- set_authorized --id ${USER_ADDRESS} -authorize
Remember to replace ${TOKEN_CONTRACT_ID}, ${USER_ADDRESS}, and ${ADMIN_SECRET_KEY} with actual values in your environment.