-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConflict_Resolution
43 lines (35 loc) · 1.46 KB
/
Conflict_Resolution
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
// app/app.go
// ...
// Транзакция для инициирования разрешения спора через децентрализованный арбитражный суд
type InitiateDisputeResolutionTx struct {
Initiator sdk.AccAddress
CounterParty sdk.AccAddress
}
func NewInitiateDisputeResolutionTx(initiator, counterParty sdk.AccAddress) InitiateDisputeResolutionTx {
return InitiateDisputeResolutionTx{
Initiator: initiator,
CounterParty: counterParty,
}
}
func (tx InitiateDisputeResolutionTx) ValidateBasic() error {
// Валидация транзакции
// ...
}
func (tx InitiateDisputeResolutionTx) GetSignBytes() []byte {
// Получение байт для подписи
// ...
}
func (tx InitiateDisputeResolutionTx) GetSigners() []sdk.AccAddress {
return []sdk.AccAddress{tx.Initiator}
}
// Обработчик транзакции для инициирования разрешения спора
func handleInitiateDisputeResolution(ctx sdk.Context, keeper arbitration.Keeper, tx InitiateDisputeResolutionTx) sdk.Result {
// Проверки и логика для обработки транзакции
// ...
// Инициирование разрешения спора с помощью Keeper модуля арбитража
err := keeper.InitiateDisputeResolution(ctx, tx.Initiator, tx.CounterParty)
if err != nil {
return sdk.ErrInternal("unable to initiate dispute resolution").Result()
}
return sdk.Result{}
}