55 lines
1.3 KiB
Markdown
55 lines
1.3 KiB
Markdown
# Example Project: xMint
|
|
|
|
## Summary
|
|
|
|
xMint is a sample project that uses Ultra Light Clients and Contract Controlled Transfers to allow users to to pay in their native currency to receive tokens from a foreign chain. It does this by bridging the native currency over to the foreign chain, then purchasing the foreign tokens, and bridging the foreign tokens back to their native chain wallet.
|
|
|
|
Behind this simple transaction is a set of complex Wormhole interactions.
|
|
|
|
|
|
## Setup
|
|
Prerequisites:
|
|
|
|
- wormhole-local-validator installed and running
|
|
- anchor
|
|
- foundry-rs
|
|
|
|
```bash
|
|
# starting in xmint root directory
|
|
yarn
|
|
cd chains/solana
|
|
yarn
|
|
anchor build
|
|
cd ../evm
|
|
forge install
|
|
cd ../..
|
|
|
|
cp keypairs/evm0.key.example keypairs/evm0.key
|
|
cp keypairs/evm1.key.example keypairs/evm1.key
|
|
cp keypairs/sol0.key.example keypairs/sol0.key
|
|
|
|
npx ts-node orchestrator.ts deploy evm0
|
|
npx ts-node orchestrator.ts deploy evm1
|
|
npx ts-node orchestrator.ts deploy sol0
|
|
|
|
ts-node orchestrator.ts register-app evm0 evm1
|
|
ts-node orchestrator.ts register-app evm1 evm0
|
|
ts-node orchestrator.ts register-app evm0 sol0
|
|
ts-node orchestrator.ts register-app evm1 sol0
|
|
ts-node orchestrator.ts register-app sol0 evm0
|
|
ts-node orchestrator.ts register-app sol0 evm1
|
|
|
|
ts-node orchestrator.ts buy-token evm0 evm1 5
|
|
```
|
|
|
|
### Contract Deploy
|
|
|
|
### Register App
|
|
|
|
## Calls
|
|
|
|
### Buy Token
|
|
|
|
### Sell Token
|
|
|
|
### Balance |