The missing slangroom executor. We are working the .wasm transpile of the
slangroom, but in the meantime this repo could be used similar to the zencode-exec
to embed https://dyne.org/slangroom into other languages.
slangroom-exec
is a simple utility that reads from STDIN the following content
- conf
- slangroom-contract
- data
- keys
- extra
- context
separated each per new-line and encoded in base64
and outputs the slangroom execution to stoud.
wget https://github.com/dyne/slangroom-exec/releases/latest/download/slangroom-exec-$(uname)-$(uname -m) -O ~/.local/bin/slangroom-exec && chmod +x ~/.local/bin/slangroom-exec
check that works by running:
wget -O - https://raw.githubusercontent.com/dyne/slangroom-exec/main/test/fixtures/welcome.slex| slangroom-exec
This script is used to encode the format of the slangroom-exec command into a string that can be used in the slangroom-exec command.
The script accepts the six parameters that are used in the slangroom-exec command and encodes them into a string. The encoded string is then printed to stdout.
For each of the parameters, the script also has option flags:
-c or --conf for conf
-s or --slangroom-contract for slangroom-contract
-d or --data for data
-k or --keys for keys
-e or --extra for extra
-x or --context for context
-F or --filename lookup files based on a prefix
-h or --help to print the help message
When you have a suite of files if you follow the formal slangroom name convention as such:
conf: `${prefix}.conf`
slangroom-contract: `${prefix}.slang`
data: `${prefix}.data.json`
keys: `${prefix}.keys.json`
extra: `${prefix}.extra.json`
context: `${prefix}.context`
you can just run:
slangroom-exec -F prefix
if you just pass something in /dev/stdin
is interpreted as the contract.
This also overwrites the --slangroom-contract
option flag if passed as a duplicate.
To encode a slangroom-contract, you can run:
cat slangroom-contract.slang | slexfe
To encode parameters from a file, you can run:
slexfe -s slangroom-contract.slang
To load data and keys
slexfe -s slangroom-contract.slang -d slangroom-contract.data.keys -k slangroom-contract.keys.json
To load many files with a correct naming convention
slexfe -F prefix