@@ -10,7 +10,7 @@ import (
10
10
"github.com/arkeonetwork/arkeo/x/claim/types"
11
11
)
12
12
13
- func TestClaimThorchain (t * testing.T ) {
13
+ func TestClaimThorchainTestnetAddress (t * testing.T ) {
14
14
msgServer , keepers , ctx := setupMsgServer (t )
15
15
sdkCtx := sdk .UnwrapSDKContext (ctx )
16
16
@@ -81,3 +81,75 @@ func TestClaimThorchain(t *testing.T) {
81
81
_ , err = msgServer .ClaimThorchain (ctx , & claimMessage )
82
82
require .ErrorIs (t , err , types .ErrNoClaimableAmount )
83
83
}
84
+
85
+ func TestClaimThorchainMainnetAddress (t * testing.T ) {
86
+ msgServer , keepers , ctx := setupMsgServer (t )
87
+ sdkCtx := sdk .UnwrapSDKContext (ctx )
88
+
89
+ config := sdk .GetConfig ()
90
+ config .SetBech32PrefixForAccount ("arkeo" , "arkeopub" )
91
+
92
+ arkeoServerAddress , err := sdk .AccAddressFromBech32 ("arkeo1z02ke8639m47g9dfrheegr2u9zecegt50fjg7v" )
93
+ require .NoError (t , err )
94
+
95
+ fromAddr := utils .GetRandomArkeoAddress ()
96
+ toAddr := utils .GetRandomArkeoAddress ()
97
+
98
+ claimRecordFrom := types.ClaimRecord {
99
+ Chain : types .ARKEO ,
100
+ Address : fromAddr .String (),
101
+ AmountClaim : sdk .NewInt64Coin (types .DefaultClaimDenom , 100 ),
102
+ AmountVote : sdk .NewInt64Coin (types .DefaultClaimDenom , 100 ),
103
+ AmountDelegate : sdk .NewInt64Coin (types .DefaultClaimDenom , 100 ),
104
+ }
105
+ claimRecordTo := types.ClaimRecord {
106
+ Chain : types .ARKEO ,
107
+ Address : toAddr .String (),
108
+ AmountClaim : sdk .NewInt64Coin (types .DefaultClaimDenom , 100 ),
109
+ AmountVote : sdk .NewInt64Coin (types .DefaultClaimDenom , 100 ),
110
+ AmountDelegate : sdk .NewInt64Coin (types .DefaultClaimDenom , 100 ),
111
+ }
112
+ err = keepers .ClaimKeeper .SetClaimRecord (sdkCtx , claimRecordFrom )
113
+ require .NoError (t , err )
114
+ err = keepers .ClaimKeeper .SetClaimRecord (sdkCtx , claimRecordTo )
115
+ require .NoError (t , err )
116
+
117
+ // mint coins to module account
118
+ err = keepers .BankKeeper .MintCoins (sdkCtx , types .ModuleName , sdk .NewCoins (sdk .NewInt64Coin (types .DefaultClaimDenom , 10000 )))
119
+ require .NoError (t , err )
120
+
121
+ invalidClaimMessage := types.MsgClaimThorchain {
122
+ Creator : fromAddr .String (),
123
+ FromAddress : fromAddr .String (),
124
+ ToAddress : toAddr .String (),
125
+ }
126
+ _ , err = msgServer .ClaimThorchain (ctx , & invalidClaimMessage )
127
+ require .ErrorIs (t , types .ErrInvalidCreator , err )
128
+
129
+ claimMessage := types.MsgClaimThorchain {
130
+ Creator : arkeoServerAddress .String (),
131
+ FromAddress : fromAddr .String (),
132
+ ToAddress : toAddr .String (),
133
+ }
134
+ _ , err = msgServer .ClaimThorchain (ctx , & claimMessage )
135
+ require .NoError (t , err )
136
+
137
+ // check if claimrecord is updated
138
+ claimRecordFrom , err = keepers .ClaimKeeper .GetClaimRecord (sdkCtx , fromAddr .String (), types .ARKEO )
139
+ require .NoError (t , err )
140
+ require .True (t , claimRecordFrom .IsEmpty ())
141
+
142
+ claimRecordTo , err = keepers .ClaimKeeper .GetClaimRecord (sdkCtx , toAddr .String (), types .ARKEO )
143
+ require .NoError (t , err )
144
+ require .True (t , ! claimRecordTo .IsEmpty ())
145
+
146
+ require .Equal (t , claimRecordTo .Address , toAddr .String ())
147
+ require .Equal (t , claimRecordTo .Chain , types .ARKEO )
148
+ require .Equal (t , claimRecordTo .AmountClaim , sdk .NewInt64Coin (types .DefaultClaimDenom , 200 ))
149
+ require .Equal (t , claimRecordTo .AmountVote , sdk .NewInt64Coin (types .DefaultClaimDenom , 200 ))
150
+ require .Equal (t , claimRecordTo .AmountDelegate , sdk .NewInt64Coin (types .DefaultClaimDenom , 200 ))
151
+
152
+ // attempt to claim again to ensure it fails.
153
+ _ , err = msgServer .ClaimThorchain (ctx , & claimMessage )
154
+ require .ErrorIs (t , err , types .ErrNoClaimableAmount )
155
+ }
0 commit comments