Skip to content

Commit e075ad4

Browse files
committed
add GetTwoWayPegData RPC
1 parent b23aca0 commit e075ad4

File tree

1 file changed

+105
-4
lines changed

1 file changed

+105
-4
lines changed

proto/mainchain.proto

+105-4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@
33
syntax = "proto3";
44
package cusf.mainchain;
55

6+
enum AddressType {
7+
ADDRESS_TYPE_UNSPECIFIED = 0;
8+
ADDRESS_TYPE_DEFAULT = 1;
9+
ADDRESS_TYPE_BECH32 = 2;
10+
ADDRESS_TYPE_LEGACY = 3;
11+
ADDRESS_TYPE_P2SH_SEGWIT = 4;
12+
}
13+
614
message BlockHeaderInfo {
715
bytes block_hash = 1;
816
bytes prev_block_hash = 2;
@@ -11,10 +19,28 @@ message BlockHeaderInfo {
1119
bytes work = 4;
1220
}
1321

22+
enum Network {
23+
NETWORK_UNSPECIFIED = 0;
24+
NETWORK_MAINNET = 1;
25+
NETWORK_REGTEST = 2;
26+
NETWORK_SIGNET = 3;
27+
NETWORK_TESTNET = 4;
28+
}
29+
30+
message OutPoint {
31+
bytes txid = 1;
32+
uint32 vout = 2;
33+
}
34+
35+
message Output {
36+
bytes address = 2;
37+
uint64 value_sats = 3;
38+
}
39+
1440
message Deposit {
1541
uint64 sequence_number = 1;
16-
bytes address = 2;
17-
uint64 value = 3;
42+
OutPoint outpoint = 2;
43+
Output output = 3;
1844
}
1945

2046
enum WithdrawalBundleEventType {
@@ -28,22 +54,67 @@ message WithdrawalBundleEvent {
2854
WithdrawalBundleEventType withdrawal_bundle_event_type = 2;
2955
}
3056

57+
// Specific to an individual sidechain slot
3158
message BlockInfo {
3259
repeated Deposit deposits = 1;
3360
optional WithdrawalBundleEvent withdrawal_bundle_event = 2;
34-
repeated bytes bmm_hashes = 3;
61+
optional bytes bmm_commitment = 3;
3562
}
3663

3764
service Mainchain {
65+
rpc BroadcastWithdrawalBundle(BroadcastWithdrawalBundleRequest)
66+
returns (BroadcastWithdrawalBundleResponse);
67+
rpc CreateBmmCriticalDataTransaction(CreateBmmCriticalDataTransactionRequest)
68+
returns (CreateBmmCriticalDataTransactionResponse);
69+
rpc CreateNewAddress(CreateNewAddressRequest)
70+
returns (CreateNewAddressResponse);
71+
// Regtest only
72+
rpc GenerateBlocks(GenerateBlocksRequest)
73+
returns (GenerateBlocksResponse);
3874
rpc GetBlockHeaderInfo(GetBlockHeaderInfoRequest)
3975
returns (GetBlockHeaderInfoResponse);
4076
rpc GetBlockInfo(GetBlockInfoRequest) returns (GetBlockInfoResponse);
4177
rpc GetBmmHStarCommitments(GetBmmHStarCommitmentsRequest)
4278
returns (GetBmmHStarCommitmentsResponse);
79+
rpc GetChainInfo(GetChainInfoRequest) returns (GetChainInfoResponse);
4380
rpc GetChainTip(GetChainTipRequest) returns (GetChainTipResponse);
81+
rpc GetTwoWayPegData(GetTwoWayPegDataRequest)
82+
returns (GetTwoWayPegDataResponse);
4483
rpc SubscribeEvents(SubscribeEventsRequest) returns (stream EventResponse);
4584
}
4685

86+
message BroadcastWithdrawalBundleRequest {
87+
uint32 sidechain_id = 1;
88+
bytes transaction = 2;
89+
}
90+
message BroadcastWithdrawalBundleResponse {
91+
}
92+
93+
message CreateBmmCriticalDataTransactionRequest {
94+
uint32 sidechain_id = 1;
95+
uint64 value_sats = 2;
96+
uint32 height = 3;
97+
bytes critical_hash = 4;
98+
bytes prev_bytes = 5;
99+
}
100+
message CreateBmmCriticalDataTransactionResponse {
101+
bytes txid = 1;
102+
}
103+
104+
message CreateNewAddressRequest {
105+
optional string label = 1;
106+
AddressType address_type = 2;
107+
}
108+
message CreateNewAddressResponse {
109+
string address = 1;
110+
}
111+
112+
message GenerateBlocksRequest {
113+
uint32 blocks = 1;
114+
}
115+
message GenerateBlocksResponse {
116+
}
117+
47118
message GetBlockHeaderInfoRequest {
48119
bytes block_hash = 1;
49120
}
@@ -53,6 +124,7 @@ message GetBlockHeaderInfoResponse {
53124

54125
message GetBlockInfoRequest {
55126
bytes block_hash = 1;
127+
uint32 sidechain_id = 2;
56128
}
57129
message GetBlockInfoResponse {
58130
BlockHeaderInfo header_info = 1;
@@ -64,7 +136,22 @@ message GetBmmHStarCommitmentsRequest {
64136
uint32 sidechain_id = 2;
65137
}
66138
message GetBmmHStarCommitmentsResponse {
67-
repeated bytes commitments = 1;
139+
message BlockNotFoundError {
140+
bytes block_hash = 1;
141+
}
142+
message Commitments {
143+
repeated bytes commitments = 1;
144+
}
145+
oneof result {
146+
BlockNotFoundError block_not_found = 1;
147+
Commitments commitments = 2;
148+
}
149+
}
150+
151+
message GetChainInfoRequest {
152+
}
153+
message GetChainInfoResponse {
154+
Network network = 1;
68155
}
69156

70157
message GetChainTipRequest {
@@ -73,7 +160,21 @@ message GetChainTipResponse {
73160
BlockHeaderInfo block_header_info = 1;
74161
}
75162

163+
message GetTwoWayPegDataRequest {
164+
uint32 sidechain_id = 1;
165+
optional bytes start_block_hash = 2;
166+
bytes end_block_hash = 3;
167+
}
168+
message GetTwoWayPegDataResponse {
169+
message ResponseItem {
170+
BlockHeaderInfo block_header_info = 1;
171+
BlockInfo block_info = 2;
172+
}
173+
repeated ResponseItem blocks = 1;
174+
}
175+
76176
message SubscribeEventsRequest {
177+
uint32 sidechain_id = 1;
77178
}
78179
message EventResponse {
79180
message Event {

0 commit comments

Comments
 (0)