Relink empowers new blockchains, or those with less focus, to access established services on the major chains.
Chainlink itself supports only a few chains at all. At the same time, the speed at which new chains are deployed is constantly increasing. Be it as L2s or even L3s or as another competitive L1s.
Relink has developed a proxy service solution that forwards the random data request to an officially from Chainlink supported chain and processes the result accordingly.
A Relink oracle network signs the data generated by Chainlink and passes the original data along with the signatures to the callback method. The signature checks in the consumer base contract mean that no data can be changed on the way from the relaying backend.
Relink Proxy Addresses:
- Soroban Mainnet:
not yet available
- Soroban Testnet:
not yet available
- Soroban Futurenet:
CB62TWCGJ4QPPG7DCM6MNCKPX6QVVNFDBOSDXROPL6XR2ZJ7BCSGNGFD
Setup Soroban: https://soroban.stellar.org/docs/getting-started/setup
soroban contract build
./build.sh
cargo test
soroban contract bindings typescript \
--network futurenet \
--output-dir bindings/relink-vrf-direct-funding-proxy-client \
--contract-id CB62TWCGJ4QPPG7DCM6MNCKPX6QVVNFDBOSDXROPL6XR2ZJ7BCSGNGFD \
--wasm target/wasm32-unknown-unknown/release/relink_vrf_direct_funding_proxy.wasm
Locally run a standalone node
docker run --rm -it --platform linux/amd64 -p 8000:8000 --name stellar stellar/quickstart:soroban-dev --standalone --enable-soroban-rpc
Make sure the following Soroban identities exist:
alice
is used for all deployments and will be the owner of the proxy contractbackend
is automatically whitelisted on the proxy contractbob
is used to call the consumer contract
To generate and fund an identity this can be used:
soroban config identity generate alice
curl "http://localhost:8000/friendbot?addr=$(soroban config identity address alice)"
Run build and deployment script and source the results:
./build.sh
./deploy.sh --network standalone --source alice > .soroban/standalone.env
source .soroban/standalone.env
Request randomness and note the RequestId:
./request.sh --network standalone --source bob
["ce2cd94dbccd8fab617893437c996b8d551c18482b494a1081888a3909ba5a93"]
randomness requested
To execute the response update the RequestId in response.sh and call:
./response.sh --network standalone --source backend
Read the contracts balance:
soroban contract invoke --id $TOKEN_ADDRESS --source alice --network standalone -- balance --id $PROXY_ADDRESS
Note: This test does not provide oracle signatures and sets the oracle signature threshold on the proxy to zero, effectively disabling the signature verification.
To deploy additional consumers this script can be used:
./deploy-consumer.sh --network standalone --source someone