crates.io docs.rs Github Actions

timestampvm-rs

Timestamp VM in Rust

See tests/e2e for full end-to-end tests.

Example

```bash

to build the timestampvm plugin, run e2e tests, and keep the network running

add NETWORKRUNNERSKIP_SHUTDOWN=1 to tests.e2e.sh to shut down network afterwards

./scripts/build.release.sh \ && VMPLUGINPATH=$(pwd)/target/release/timestampvm \ ./scripts/tests.e2e.sh

or specify the custom avalanchego binary

./scripts/build.release.sh \ && VMPLUGINPATH=$(pwd)/target/release/timestampvm \ ./scripts/tests.e2e.sh ~/go/src/github.com/ava-labs/avalanchego/build/avalanchego ```

To test timestampvm API manually:

```bash

"tGas3T58KzdjcJ2iKSyiYsWiqYctRXaPTqBCA11BqEkNg8kPc" is the Vm Id

e.g., timestampvm vm-id timestampvm

curl -X POST --data '{ "jsonrpc": "2.0", "id" : 1, "method" : "timestampvm.ping", "params" : [] }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/vm/tGas3T58KzdjcJ2iKSyiYsWiqYctRXaPTqBCA11BqEkNg8kPc/static

{"jsonrpc":"2.0","result":{"success":true},"id":1}

```

```bash

"2wb1UXxAstB8ywwv4rU2rFCjLgXnhT44hbLPbwpQoGvFb2wRR7" is the blockchain Id

curl -X POST --data '{ "jsonrpc": "2.0", "id" : 1, "method" : "timestampvm.ping", "params" : [] }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/2wb1UXxAstB8ywwv4rU2rFCjLgXnhT44hbLPbwpQoGvFb2wRR7/rpc

{"jsonrpc":"2.0","result":{"success":true},"id":1}

```

```bash

to get genesis block

"2wb1UXxAstB8ywwv4rU2rFCjLgXnhT44hbLPbwpQoGvFb2wRR7" is the blockchain Id

curl -X POST --data '{ "jsonrpc": "2.0", "id" : 1, "method" : "timestampvm.lastAccepted", "params" : [] }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/2wb1UXxAstB8ywwv4rU2rFCjLgXnhT44hbLPbwpQoGvFb2wRR7/rpc

{"jsonrpc":"2.0","result":{"id":"SDfFUzkdzWZbJ6YMysPPNEF5dWLp9q35mEMaLa8Ha2w9aMKoC"},"id":1}

"2wb1UXxAstB8ywwv4rU2rFCjLgXnhT44hbLPbwpQoGvFb2wRR7" is the blockchain Id

curl -X POST --data '{ "jsonrpc": "2.0", "id" : 1, "method" : "timestampvm.getBlock", "params" : [{"id":"SDfFUzkdzWZbJ6YMysPPNEF5dWLp9q35mEMaLa8Ha2w9aMKoC"}] }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/2wb1UXxAstB8ywwv4rU2rFCjLgXnhT44hbLPbwpQoGvFb2wRR7/rpc

{"jsonrpc":"2.0","result":{"block":{"data":"0x32596655705939524358","height":0,"parent_id":"11111111111111111111111111111111LpoYY","timestamp":0}},"id":1}

```

```bash

to propose data

echo 1 | base64 | tr -d \n

MQo=

curl -X POST --data '{ "jsonrpc": "2.0", "id" : 1, "method" : "timestampvm.proposeBlock", "params" : [{"data":"MQo="}] }' -H 'content-type:application/json;' 127.0.0.1:9650/ext/bc/2wb1UXxAstB8ywwv4rU2rFCjLgXnhT44hbLPbwpQoGvFb2wRR7/rpc

{"jsonrpc":"2.0","result":{"success":true},"id":1}

```