Skip to content

Commit 6743eeb

Browse files
committed
docs: Add runtime transactions
1 parent 6379b37 commit 6743eeb

1 file changed

Lines changed: 274 additions & 0 deletions

File tree

docs/runtime/transactions.md

Lines changed: 274 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,274 @@
1+
# Runtime Transactions
2+
3+
This section describes the format of all supported runtime methods and queries
4+
with references to Go, Rust and TypeScript bindings in Oasis SDK.
5+
6+
## Methods
7+
8+
### accounts.Transfer [[Go][go-accounts.Transfer]|[Rust][rust-accounts.Transfer]|[TypeScript][ts-accounts.Transfer]]
9+
10+
Transfer call.
11+
12+
#### Parameters [[Go][go-params-accounts.Transfer]|[Rust][rust-params-accounts.Transfer]|[TypeScript][ts-params-accounts.Transfer]]
13+
14+
- `to: Address`
15+
- `amount: token::BaseUnits`
16+
17+
[go-accounts.Transfer]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/accounts/accounts.go#L55-L61
18+
[rust-accounts.Transfer]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/src/modules/accounts/mod.rs#L690-L703
19+
[ts-accounts.Transfer]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/accounts.ts#L35-L37
20+
[go-params-accounts.Transfer]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/accounts/types.go#L7-L11
21+
[rust-params-accounts.Transfer]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/src/modules/accounts/types.rs#L10-L13
22+
[ts-params-accounts.Transfer]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/types.ts#L132-L138
23+
24+
### contracts.Call [[Go][go-contracts.Call]|[Rust][rust-contracts.Call]|[TypeScript][ts-contracts.Call]]
25+
26+
Contract call.
27+
28+
#### Parameters [[Go][go-params-contracts.Call]|[Rust][rust-params-contracts.Call]|[TypeScript][ts-params-contracts.Call]]
29+
30+
- `id: InstanceId`
31+
32+
Instance identifier.
33+
34+
- `data: Vec<u8>`
35+
36+
Call arguments.
37+
38+
- `tokens: Vec<token::BaseUnits>`
39+
40+
Tokens that should be sent to the contract as part of the call.
41+
42+
#### Result [[Go][go-result-contracts.Call]|[Rust][rust-result-contracts.Call]|[TypeScript][ts-result-contracts.Call]]
43+
44+
- `Vec<u8>`
45+
46+
[go-contracts.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/contracts.go#L144-L147
47+
[rust-contracts.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/lib.rs#L486-L528
48+
[ts-contracts.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/contracts.ts#L58-L60
49+
[go-params-contracts.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/types.go#L109-L117
50+
[rust-params-contracts.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/types.rs#L140-L149
51+
[ts-params-contracts.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/types.ts#L263-L243
52+
[go-result-contracts.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/types.go#L119-L120
53+
[rust-result-contracts.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/types.rs#L151-L154
54+
[ts-result-contracts.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/types.ts#L245-L252
55+
56+
### contracts.Instantiate [[Go][go-contracts.Instantiate]|[Rust][rust-contracts.Instantiate]|[TypeScript][ts-contracts.Instantiate]]
57+
58+
Instantiate call.
59+
60+
#### Parameters [[Go][go-params-contracts.Instantiate]|[Rust][rust-params-contracts.Instantiate]|[TypeScript][ts-params-contracts.Instantiate]]
61+
62+
- `code_id: CodeId`
63+
64+
Identifier of code used by the instance.
65+
66+
- `upgrades_policy: Policy`
67+
68+
Who is allowed to upgrade this instance.
69+
70+
- `data: Vec<u8>`
71+
72+
Arguments to contract's instantiation function.
73+
74+
- `tokens: Vec<token::BaseUnits>`
75+
76+
Tokens that should be sent to the contract as part of the instantiate call.
77+
78+
#### Result [[Go][go-result-contracts.Instantiate]|[Rust][rust-result-contracts.Instantiate]|[TypeScript][ts-result-contracts.Instantiate]]
79+
80+
- `id: InstanceId`
81+
82+
Assigned instance identifier.
83+
84+
[go-contracts.Instantiate]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/contracts.go#L130-L133
85+
[rust-contracts.Instantiate]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/lib.rs#L424-L483
86+
[ts-contracts.Instantiate]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/contracts.ts#L53-L57
87+
[go-params-contracts.Instantiate]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/types.go#L91-L101
88+
[rust-params-contracts.Instantiate]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/types.rs#L115-L129
89+
[ts-params-contracts.Instantiate]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/types.ts#L502-L522
90+
[go-result-contracts.Instantiate]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/contracts.go#L103-L107
91+
[rust-result-contracts.Instantiate]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/types.rs#L131-L136
92+
[ts-result-contracts.Instantiate]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/types.ts#L524-L532
93+
94+
### contracts.Upgrade [[Go][go-contracts.Upgrade]|[Rust][rust-contracts.Upgrade]|[TypeScript][ts-contracts.Upgrade]]
95+
96+
Upgrade call.
97+
98+
#### Parameters [[Go][go-params-contracts.Upgrade]|[Rust][rust-params-contracts.Upgrade]|[TypeScript][ts-params-contracts.Upgrade]]
99+
100+
- `id: InstanceId`
101+
102+
Instance identifier.
103+
104+
- `code_id: CodeId`
105+
106+
Updated code identifier.
107+
108+
- `data: Vec<u8>`
109+
110+
Arguments to contract's upgrade function.
111+
112+
- `tokens: Vec<token::BaseUnits>`
113+
114+
Tokens that should be sent to the contract as part of the call.
115+
116+
[go-contracts.Upgrade]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/contracts.go#L159-L162
117+
[rust-contracts.Upgrade]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/lib.rs#L531-L597
118+
[ts-contracts.Upgrade]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/contracts.ts#L61-L63
119+
[go-params-contracts.Upgrade]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/types.go#L122-L132
120+
[rust-params-contracts.Upgrade]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/types.rs#L156-L170
121+
[ts-params-contracts.Upgrade]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/types.ts#L552-L572
122+
123+
### contracts.Upload [[Go][go-contracts.Upload]|[Rust][rust-contracts.Upload]|[TypeScript][ts-contracts.Upload]]
124+
125+
Upload call.
126+
127+
#### Parameters [[Go][go-params-contracts.Upload]|[Rust][rust-params-contracts.Upload]|[TypeScript][ts-params-contracts.Upload]]
128+
129+
- `abi: ABI`
130+
131+
ABI
132+
133+
- `instantiate_policy: Policy`
134+
135+
Who is allowed to instantiate this code.
136+
137+
- `code: Vec<u8>`
138+
139+
Compiled contract code.
140+
141+
#### Result [[Go][go-result-contracts.Upload]|[Rust][rust-result-contracts.Upload]|[TypeScript][ts-result-contracts.Upload]]
142+
143+
- `id: CodeId`
144+
145+
Assigned code identifier.
146+
147+
[go-contracts.Upload]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/contracts.go#L111-L118
148+
[rust-contracts.Upload]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/lib.rs#L332-L421
149+
[ts-contracts.Upload]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/contracts.ts#L50-L52
150+
[go-params-contracts.Upload]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/types.go#L73-L83
151+
[rust-params-contracts.Upload]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/types.rs#L95-L106
152+
[ts-params-contracts.Upload]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/types.ts#L474-L490
153+
[go-result-contracts.Upload]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/types.go#L85-L89
154+
[rust-result-contracts.Upload]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/types.rs#L108-L113
155+
[ts-result-contracts.Upload]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/types.ts#L492-L500
156+
157+
### evm.Call [[Go][go-evm.Call]|[Rust][rust-evm.Call]|[TypeScript][ts-evm.Call]]
158+
159+
Transaction body for calling an EVM contract.
160+
161+
#### Parameters [[Go][go-params-evm.Call]|[Rust][rust-params-evm.Call]|[TypeScript][ts-params-evm.Call]]
162+
163+
- `address: H160`
164+
- `value: U256`
165+
- `data: Vec<u8>`
166+
167+
[go-evm.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/evm/evm.go#L73-L80
168+
[rust-evm.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/evm/src/lib.rs#L599-L601
169+
[ts-evm.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/evm.ts#L40-L42
170+
[go-params-evm.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/evm/types.go#L12-L17
171+
[rust-params-evm.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/evm/src/types.rs#L10-L16
172+
[ts-params-evm.Call]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/types.ts#L402-L409
173+
174+
### evm.Create [[Go][go-evm.Create]|[Rust][rust-evm.Create]|[TypeScript][ts-evm.Create]]
175+
176+
Transaction body for creating an EVM contract.
177+
178+
#### Parameters [[Go][go-params-evm.Create]|[Rust][rust-params-evm.Create]|[TypeScript][ts-params-evm.Create]]
179+
180+
- `value: U256`
181+
- `init_code: Vec<u8>`
182+
183+
[go-evm.Create]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/evm/evm.go#L65-L71
184+
[rust-evm.Create]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/evm/src/lib.rs#L594-L596
185+
[ts-evm.Create]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/evm.ts#L36-L38
186+
[go-params-evm.Create]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/evm/types.go#L6-L10
187+
[rust-params-evm.Create]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/evm/src/types.rs#L3-L8
188+
[ts-params-evm.Create]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/types.ts#L394-L400
189+
190+
### consensus.Deposit [[Go][go-consensus.Deposit]|[Rust][rust-consensus.Deposit]|[TypeScript][ts-consensus.Deposit]]
191+
192+
Deposit into runtime call.
193+
Transfer from consensus staking to an account in this runtime.
194+
The transaction signer has a consensus layer allowance benefiting this runtime's staking
195+
address. The `to` address runtime account gets the tokens.
196+
197+
#### Parameters [[Go][go-params-consensus.Deposit]|[Rust][rust-params-consensus.Deposit]|[TypeScript][ts-params-consensus.Deposit]]
198+
199+
- `to: Option<Address>`
200+
- `amount: token::BaseUnits`
201+
202+
[go-consensus.Deposit]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/consensusaccounts/consensus_accounts.go#L52-L58
203+
[rust-consensus.Deposit]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/src/modules/consensus_accounts/mod.rs#L230-L240
204+
[ts-consensus.Deposit]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/consensus_accounts.ts#L31-L33
205+
[go-params-consensus.Deposit]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/consensusaccounts/types.go#L5-L9
206+
[rust-params-consensus.Deposit]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/src/modules/consensus_accounts/types.rs#L4-L13
207+
[ts-params-consensus.Deposit]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/types.ts#L336-L342
208+
209+
### consensus.Withdraw [[Go][go-consensus.Withdraw]|[Rust][rust-consensus.Withdraw]|[TypeScript][ts-consensus.Withdraw]]
210+
211+
Withdraw from runtime call.
212+
Transfer from an account in this runtime to consensus staking.
213+
The `to` address consensus staking account gets the tokens.
214+
215+
#### Parameters [[Go][go-params-consensus.Withdraw]|[Rust][rust-params-consensus.Withdraw]|[TypeScript][ts-params-consensus.Withdraw]]
216+
217+
- `to: Option<Address>`
218+
- `amount: token::BaseUnits`
219+
220+
[go-consensus.Withdraw]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/consensusaccounts/consensus_accounts.go#L60-L66
221+
[rust-consensus.Withdraw]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/src/modules/consensus_accounts/mod.rs#L244-L260
222+
[ts-consensus.Withdraw]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/consensus_accounts.ts#L35-L37
223+
[go-params-consensus.Withdraw]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/consensusaccounts/types.go#L11-L15
224+
[rust-params-consensus.Withdraw]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/src/modules/consensus_accounts/types.rs#L15-L23
225+
[ts-params-consensus.Withdraw]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/types.ts#L344-L350
226+
227+
## Queries
228+
229+
TODO
230+
231+
### accounts.Addresses [[Go]|[Rust]|[TypeScript]]
232+
233+
### consensus.Balance [[Go]|[Rust]|[TypeScript]]
234+
235+
### accounts.Balances [[Go]|[Rust]|[TypeScript]]
236+
237+
### accounts.DenominationInfo [[Go]|[Rust]|[TypeScript]]
238+
239+
### accounts.Nonce [[Go]|[Rust]|[TypeScript]]
240+
241+
### contracts.Code [[Go]|[Rust]|[TypeScript]]
242+
243+
### contracts.Custom [[Go]|[Rust]|[TypeScript]]
244+
245+
### contracts.Instance [[Go]|[Rust]|[TypeScript]]
246+
247+
### contracts.InstanceStorage [[Go]|[Rust]|[TypeScript]]
248+
249+
### contracts.PublicKey [[Go]|[Rust]|[TypeScript]]
250+
251+
### consensus.Account [[Go]|[Rust]|[TypeScript]]
252+
253+
### core.EstimateGas [[Go]|[Rust]|[TypeScript]]
254+
255+
### core.CallDataPublicKey [[Go]|[Rust]|[TypeScript]]
256+
257+
### core.CheckInvariants [[Go]|[Rust]|[TypeScript]]
258+
259+
### core.MinGasPrice [[Go]|[Rust]|[TypeScript]]
260+
261+
### core.RuntimeInfo [[Go]|[Rust]|[TypeScript]]
262+
263+
### evm.Balance [[Go]|[Rust]|[TypeScript]]
264+
265+
### evm.Code [[Go]|[Rust]|[TypeScript]]
266+
267+
### evm.SimulateCall [[Go]|[Rust]|[TypeScript]]
268+
269+
### evm.Storage [[Go]|[Rust]|[TypeScript]]
270+
271+
<!-- dummy links -->
272+
[Go]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/go/modules/contracts/contracts.go#L112-L118
273+
[Rust]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/runtime-sdk/modules/contracts/src/lib.rs#L600-L605
274+
[TypeScript]: https://github.com/oasisprotocol/oasis-sdk/blob/656b0a21527149c690c3daf3ce25becea6e9bad3/client-sdk/ts-web/rt/src/contracts.ts#L50-L52

0 commit comments

Comments
 (0)