-
Notifications
You must be signed in to change notification settings - Fork 22
/
MsgSetBeforeSendHook.ts
125 lines (111 loc) 路 3.16 KB
/
MsgSetBeforeSendHook.ts
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
import { JSONSerializable } from '../../util/json';
import { AccAddress } from '../bech32';
import { Any } from '@terra-money/terra.proto/google/protobuf/any';
import { MsgSetBeforeSendHook as MsgSetBeforeSendHook_pb } from '@terra-money/terra.proto/osmosis/tokenfactory/v1beta1/tx';
/**
* MsgSetBeforeSendHook allows setting a hook for a specific denom
* to keep track of the token transfers or block specific transfers.
*/
export class MsgSetBeforeSendHook extends JSONSerializable<
MsgSetBeforeSendHook.Amino,
MsgSetBeforeSendHook.Data,
MsgSetBeforeSendHook.Proto
> {
/**
*
* @param sender internal account or external sender address
* @param denom with the format factory/terra1address/subdenom
* @param cosmwasmAddress the cosmwasm contract address
*/
constructor(
public sender: AccAddress,
public denom: string,
public cosmwasmAddress: string
) {
super();
}
public toAmino(_?: boolean): MsgSetBeforeSendHook.Amino {
_;
const { sender, denom, cosmwasmAddress } = this;
return {
type: 'osmosis/tokenfactory/set-beforesend-hook',
value: { sender, denom, cosmwasmAddress },
};
}
public static fromProto(
proto: MsgSetBeforeSendHook.Proto,
_?: boolean
): MsgSetBeforeSendHook {
_;
return new MsgSetBeforeSendHook(
proto.sender,
proto.denom,
proto.cosmwasmAddress
);
}
public toProto(_?: boolean): MsgSetBeforeSendHook.Proto {
_;
const { sender, denom, cosmwasmAddress } = this;
return MsgSetBeforeSendHook_pb.fromPartial({
sender,
denom,
cosmwasmAddress,
});
}
public packAny(_?: boolean): Any {
_;
return Any.fromPartial({
typeUrl: '/osmosis.tokenfactory.v1beta1.MsgSetBeforeSendHook',
value: MsgSetBeforeSendHook_pb.encode(this.toProto()).finish(),
});
}
public static unpackAny(msgAny: Any, _?: boolean): MsgSetBeforeSendHook {
_;
return MsgSetBeforeSendHook.fromProto(
MsgSetBeforeSendHook_pb.decode(msgAny.value)
);
}
public static fromData(
data: MsgSetBeforeSendHook.Data,
_?: boolean
): MsgSetBeforeSendHook {
_;
const { sender, denom, cosmwasmAddress } = data;
return new MsgSetBeforeSendHook(sender, denom, cosmwasmAddress);
}
public toData(_?: boolean): MsgSetBeforeSendHook.Data {
_;
const { sender, denom, cosmwasmAddress } = this;
return {
'@type': '/osmosis.tokenfactory.v1beta1.MsgSetBeforeSendHook',
sender,
denom,
cosmwasmAddress,
};
}
public static fromAmino(
data: MsgSetBeforeSendHook.Amino
): MsgSetBeforeSendHook {
const {
value: { sender, denom, cosmwasmAddress },
} = data;
return new MsgSetBeforeSendHook(sender, denom, cosmwasmAddress);
}
}
export namespace MsgSetBeforeSendHook {
export interface Amino {
type: 'osmosis/tokenfactory/set-beforesend-hook';
value: {
sender: AccAddress;
denom: string;
cosmwasmAddress: string;
};
}
export interface Data {
'@type': '/osmosis.tokenfactory.v1beta1.MsgSetBeforeSendHook';
sender: AccAddress;
denom: string;
cosmwasmAddress: string;
}
export type Proto = MsgSetBeforeSendHook_pb;
}