diff --git a/docs/runtime/transactions.md b/docs/runtime/transactions.md new file mode 100644 index 0000000000..9b95c14b37 --- /dev/null +++ b/docs/runtime/transactions.md @@ -0,0 +1,161 @@ +# Runtime Transactions + +This section describes the format of all supported runtime methods and queries +with references to go, rust and typescript bindings in Oasis SDK. + +## Methods + +### accounts.Transfer [[go][go-accounts.Transfer]|[rust][rust-accounts.Transfer]|[typescript][ts-accounts.Transfer]] + +Parameters: [[rust][rust-params-accounts.Transfer]] + +[go-accounts.Transfer]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/contracts.go#L112-L118 +[rust-accounts.Transfer]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/lib.rs#L486-L528 +[ts-accounts.Transfer]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/contracts.ts#L50-L52 +[rust-params-accounts.Transfer]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/types.rs#L140-L149 + +### contracts.Call [[go][go-contracts.Call]|[rust][rust-contracts.Call]|[typescript][ts-contracts.Call]] + +Parameters: [rust][rust-params-contracts.Call] + +- `id: InstanceId` + + Instance identifier. + +- `data: Vec` + + Call arguments. + +- `tokens: Vec` + + Tokens that should be sent to the contract as part of the call. + +[go-contracts.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/contracts.go#L112-L118 +[rust-contracts.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/lib.rs#L486-L528 +[ts-contracts.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/contracts.ts#L50-L52 +[rust-params-contracts.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/types.rs#L140-L149 + +### contracts.Instantiate [[go][go-contracts.Instantiate]|[rust][rust-contracts.Instantiate]|[typescript][ts-contracts.Instantiate]] + +Parameters: [[rust][rust-params-contracts.Instantiate]] + +- `code_id: CodeId` + + Identifier of code used by the instance. + +- `upgrades_policy: Policy` + + Who is allowed to upgrade this instance. + +- `data: Vec` + + Arguments to contract's instantiation function. + +- `tokens: Vec` + + Tokens that should be sent to the contract as part of the instantiate call. + +[go-contracts.Instantiate]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/contracts.go#L112-L118 +[rust-contracts.Instantiate]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/lib.rs#L424-L483 +[ts-contracts.Instantiate]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/contracts.ts#L50-L52 +[rust-params-contracts.Instantiate]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/types.rs#L115-L129 + +### contracts.Upgrade [[go][go-contracts.Upgrade]|[rust][rust-contracts.Upgrade]|[typescript][ts-contracts.Upgrade]] + +Parameters: [[rust][rust-params-contracts.Upgrade]] + +- `id: InstanceId` + + Instance identifier. + +- `code_id: CodeId` + + Updated code identifier. + +- `data: Vec` + + Arguments to contract's upgrade function. + +- `tokens: Vec` + + Tokens that should be sent to the contract as part of the call. + +[go-contracts.Upgrade]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/contracts.go#L112-L118 +[rust-contracts.Upgrade]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/lib.rs#L531-L597 +[ts-contracts.Upgrade]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/contracts.ts#L50-L52 +[rust-params-contracts.Upgrade]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/types.rs#L156-L170 + +### contracts.Upload [[go][go-contracts.Upload]|[rust][rust-contracts.Upload]|[typescript][ts-contracts.Upload]] + +Parameters: [[rust][rust-params-contracts.Upload]] + +- `abi: ABI` + + ABI + +- `instantiate_policy: Policy` + + Who is allowed to instantiate this code. + +- `code: Vec` + + Compiled contract code. + +[go-contracts.Upload]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/contracts.go#L112-L118 +[rust-contracts.Upload]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/lib.rs#L332-L421 +[ts-contracts.Upload]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/contracts.ts#L50-L52 +[rust-params-contracts.Upload]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/types.rs#L95-L106 + +### evm.Call [[go]|[rust]|[typescript]] + +### evm.Create [[go]|[rust]|[typescript]] + +### consensus.Deposit [[go]|[rust]|[typescript]] + +### consensus.Withdraw [[go]|[rust]|[typescript]] + +## Queries + +### accounts.Addresses [[go]|[rust]|[typescript]] + +### consensus.Balance [[go]|[rust]|[typescript]] + +### accounts.Balances [[go]|[rust]|[typescript]] + +### accounts.DenominationInfo [[go]|[rust]|[typescript]] + +### accounts.Nonce [[go]|[rust]|[typescript]] + +### contracts.Code [[go]|[rust]|[typescript]] + +### contracts.Custom [[go]|[rust]|[typescript]] + +### contracts.Instance [[go]|[rust]|[typescript]] + +### contracts.InstanceStorage [[go]|[rust]|[typescript]] + +### contracts.PublicKey [[go]|[rust]|[typescript]] + +### consensus.Account [[go]|[rust]|[typescript]] + +### core.EstimateGas [[go]|[rust]|[typescript]] + +### core.CallDataPublicKey [[go]|[rust]|[typescript]] + +### core.CheckInvariants [[go]|[rust]|[typescript]] + +### core.MinGasPrice [[go]|[rust]|[typescript]] + +### core.RuntimeInfo [[go]|[rust]|[typescript]] + +### evm.Balance [[go]|[rust]|[typescript]] + +### evm.Code [[go]|[rust]|[typescript]] + +### evm.SimulateCall [[go]|[rust]|[typescript]] + +### evm.Storage [[go]|[rust]|[typescript]] + +[go]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/contracts.go#L112-L118 +[rust]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/lib.rs#L600-L605 +[typescript]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/contracts.ts#L50-L52