1
1
import { useChainInfoByNetwork } from 'src/rtk/features/multiChainInfo/multiChainInfoHooks'
2
- import { decodeExtrinsicString , getExtrinsicParams } from 'src/utils/extrinsicDecoder'
2
+ import {
3
+ decodeExtrinsicString ,
4
+ getExtrinsicParams ,
5
+ } from 'src/utils/extrinsicDecoder'
3
6
4
- const getCustomTransferParamId = ( token : string , network : string ) => `${ token } |${ network } `
7
+ const getCustomTransferParamId = ( token : string , network : string ) =>
8
+ `${ token } |${ network } `
5
9
export type SameChainTransferParamData = {
6
10
amount : string
7
11
recipient : string
8
12
tokenId ?: any
9
13
}
14
+
15
+ // balances.transfer - parallel, pioneer, romonomics, joystream, turing, parallel heiko, chainx
10
16
const customSameChainTransferConfig : {
11
17
[ key : string ] : {
12
- getParams : (
13
- data : SameChainTransferParamData ,
14
- ) => any [ ]
18
+ getParams : ( data : SameChainTransferParamData ) => any [ ]
15
19
extrinsic : string
16
20
}
17
21
} = {
18
22
[ getCustomTransferParamId ( 'KSM' , 'kusama' ) ] : {
19
23
extrinsic : 'balances.transferAllowDeath' ,
20
24
getParams : ( data ) => {
21
- return [ data . recipient , data . amount ]
25
+ return [ data . recipient , data . amount ]
22
26
} ,
23
27
} ,
24
28
[ getCustomTransferParamId ( 'DOT' , 'polkadot' ) ] : {
25
29
extrinsic : 'balances.transferAllowDeath' ,
26
30
getParams : ( data ) => {
27
- return [ data . recipient , data . amount ]
31
+ return [ data . recipient , data . amount ]
32
+ } ,
33
+ } ,
34
+ [ getCustomTransferParamId ( 'ACA' , 'acala' ) ] : {
35
+ extrinsic : 'balances.transferAllowDeath' ,
36
+ getParams : ( data ) => {
37
+ return [ data . recipient , data . amount ]
38
+ } ,
39
+ } ,
40
+ [ getCustomTransferParamId ( 'ASTR' , 'astar' ) ] : {
41
+ extrinsic : 'balances.transferAllowDeath' ,
42
+ getParams : ( data ) => {
43
+ return [ data . recipient , data . amount ]
44
+ } ,
45
+ } ,
46
+ [ getCustomTransferParamId ( 'BNC' , 'bifrostKusama' ) ] : {
47
+ extrinsic : 'balances.transferAllowDeath' ,
48
+ getParams : ( data ) => {
49
+ return [ data . recipient , data . amount ]
50
+ } ,
51
+ } ,
52
+ [ getCustomTransferParamId ( 'KSM' , 'statemine' ) ] : {
53
+ extrinsic : 'balances.transferAllowDeath' ,
54
+ getParams : ( data ) => {
55
+ return [ data . recipient , data . amount ]
56
+ } ,
57
+ } ,
58
+ [ getCustomTransferParamId ( 'DOT' , 'statemint' ) ] : {
59
+ extrinsic : 'balances.transferAllowDeath' ,
60
+ getParams : ( data ) => {
61
+ return [ data . recipient , data . amount ]
62
+ } ,
63
+ } ,
64
+ [ getCustomTransferParamId ( 'UNQ' , 'unique' ) ] : {
65
+ extrinsic : 'balances.transferAllowDeath' ,
66
+ getParams : ( data ) => {
67
+ return [ data . recipient , data . amount ]
68
+ } ,
69
+ } ,
70
+ [ getCustomTransferParamId ( 'KAR' , 'karura' ) ] : {
71
+ extrinsic : 'balances.transferAllowDeath' ,
72
+ getParams : ( data ) => {
73
+ return [ data . recipient , data . amount ]
74
+ } ,
75
+ } ,
76
+ [ getCustomTransferParamId ( 'PEN' , 'pendulum' ) ] : {
77
+ extrinsic : 'balances.transferAllowDeath' ,
78
+ getParams : ( data ) => {
79
+ return [ data . recipient , data . amount ]
80
+ } ,
81
+ } ,
82
+ [ getCustomTransferParamId ( 'HDX' , 'hydradx' ) ] : {
83
+ extrinsic : 'balances.transferAllowDeath' ,
84
+ getParams : ( data ) => {
85
+ return [ data . recipient , data . amount ]
86
+ } ,
87
+ } ,
88
+ [ getCustomTransferParamId ( 'SDN' , 'shiden' ) ] : {
89
+ extrinsic : 'balances.transferAllowDeath' ,
90
+ getParams : ( data ) => {
91
+ return [ data . recipient , data . amount ]
92
+ } ,
93
+ } ,
94
+ [ getCustomTransferParamId ( 'PHA' , 'khala' ) ] : {
95
+ extrinsic : 'balances.transferAllowDeath' ,
96
+ getParams : ( data ) => {
97
+ return [ data . recipient , data . amount ]
98
+ } ,
99
+ } ,
100
+ [ getCustomTransferParamId ( 'BNC' , 'bifrostPolkadot' ) ] : {
101
+ extrinsic : 'balances.transferAllowDeath' ,
102
+ getParams : ( data ) => {
103
+ return [ data . recipient , data . amount ]
104
+ } ,
105
+ } ,
106
+ [ getCustomTransferParamId ( 'AIR' , 'altair' ) ] : {
107
+ extrinsic : 'balances.transferAllowDeath' ,
108
+ getParams : ( data ) => {
109
+ return [ data . recipient , data . amount ]
110
+ } ,
111
+ } ,
112
+ [ getCustomTransferParamId ( 'BSX' , 'basilisk' ) ] : {
113
+ extrinsic : 'balances.transferAllowDeath' ,
114
+ getParams : ( data ) => {
115
+ return [ data . recipient , data . amount ]
116
+ } ,
117
+ } ,
118
+ [ getCustomTransferParamId ( 'KMA' , 'calamari' ) ] : {
119
+ extrinsic : 'balances.transferAllowDeath' ,
120
+ getParams : ( data ) => {
121
+ return [ data . recipient , data . amount ]
122
+ } ,
123
+ } ,
124
+ [ getCustomTransferParamId ( 'TEER' , 'integritee' ) ] : {
125
+ extrinsic : 'balances.transferAllowDeath' ,
126
+ getParams : ( data ) => {
127
+ return [ data . recipient , data . amount ]
128
+ } ,
129
+ } ,
130
+ [ getCustomTransferParamId ( 'NUUM' , 'continuum' ) ] : {
131
+ extrinsic : 'balances.transferAllowDeath' ,
132
+ getParams : ( data ) => {
133
+ return [ data . recipient , data . amount ]
134
+ } ,
135
+ } ,
136
+ [ getCustomTransferParamId ( 'CFG' , 'centrifuge' ) ] : {
137
+ extrinsic : 'balances.transferAllowDeath' ,
138
+ getParams : ( data ) => {
139
+ return [ data . recipient , data . amount ]
140
+ } ,
141
+ } ,
142
+ [ getCustomTransferParamId ( 'NEURO' , 'originTrail' ) ] : {
143
+ extrinsic : 'balances.transferAllowDeath' ,
144
+ getParams : ( data ) => {
145
+ return [ data . recipient , data . amount ]
146
+ } ,
147
+ } ,
148
+ [ getCustomTransferParamId ( 'MANTA' , 'manta' ) ] : {
149
+ extrinsic : 'balances.transferAllowDeath' ,
150
+ getParams : ( data ) => {
151
+ return [ data . recipient , data . amount ]
152
+ } ,
153
+ } ,
154
+ [ getCustomTransferParamId ( 'PICA' , 'picasso' ) ] : {
155
+ extrinsic : 'balances.transferAllowDeath' ,
156
+ getParams : ( data ) => {
157
+ return [ data . recipient , data . amount ]
158
+ } ,
159
+ } ,
160
+ [ getCustomTransferParamId ( 'PDEX' , 'polkadex-polkadot' ) ] : {
161
+ extrinsic : 'balances.transferAllowDeath' ,
162
+ getParams : ( data ) => {
163
+ return [ data . recipient , data . amount ]
164
+ } ,
165
+ } ,
166
+ [ getCustomTransferParamId ( 'NODL' , 'nodle' ) ] : {
167
+ extrinsic : 'balances.transferAllowDeath' ,
168
+ getParams : ( data ) => {
169
+ return [ data . recipient , data . amount ]
170
+ } ,
171
+ } ,
172
+ [ getCustomTransferParamId ( 'RING' , 'darwinia' ) ] : {
173
+ extrinsic : 'balances.transferAllowDeath' ,
174
+ getParams : ( data ) => {
175
+ return [ data . recipient , data . amount ]
176
+ } ,
177
+ } ,
178
+ [ getCustomTransferParamId ( 'CRAB' , 'darwinia-crab' ) ] : {
179
+ extrinsic : 'balances.transferAllowDeath' ,
180
+ getParams : ( data ) => {
181
+ return [ data . recipient , data . amount ]
182
+ } ,
183
+ } ,
184
+ [ getCustomTransferParamId ( 'TNKR' , 'invArch' ) ] : {
185
+ extrinsic : 'balances.transferAllowDeath' ,
186
+ getParams : ( data ) => {
187
+ return [ data . recipient , data . amount ]
188
+ } ,
189
+ } ,
190
+ [ getCustomTransferParamId ( 'VARCH' , 'invArch-polkadot' ) ] : {
191
+ extrinsic : 'balances.transferAllowDeath' ,
192
+ getParams : ( data ) => {
193
+ return [ data . recipient , data . amount ]
194
+ } ,
195
+ } ,
196
+ [ getCustomTransferParamId ( 'QTZ' , 'quartz' ) ] : {
197
+ extrinsic : 'balances.transferAllowDeath' ,
198
+ getParams : ( data ) => {
199
+ return [ data . recipient , data . amount ]
28
200
} ,
29
201
} ,
30
202
[ getCustomTransferParamId ( 'MGX' , 'mangata' ) ] : {
31
203
extrinsic : 'tokens.transfer' ,
32
204
getParams : ( data ) => {
33
- return [ data . recipient , 0 , data . amount ]
205
+ return [ data . recipient , 0 , data . amount ]
34
206
} ,
35
207
} ,
36
208
[ getCustomTransferParamId ( 'KINT' , 'kintsugi' ) ] : {
37
209
extrinsic : 'tokens.transfer' ,
38
210
getParams : ( data ) => {
39
- return [ data . recipient , { Token : 'KINT' } , data . amount ]
211
+ return [ data . recipient , { Token : 'KINT' } , data . amount ]
40
212
} ,
41
213
} ,
42
214
[ getCustomTransferParamId ( 'INTR' , 'interlay' ) ] : {
43
215
extrinsic : 'tokens.transfer' ,
44
216
getParams : ( data ) => {
45
- return [ data . recipient , { Token : 'INTR' } , data . amount ]
217
+ return [ data . recipient , { Token : 'INTR' } , data . amount ]
46
218
} ,
47
219
} ,
48
220
}
49
221
50
- export function useSameChainTransferExtrinsic ( network : string , token : string , getTransferData : ( ) => SameChainTransferParamData ) {
222
+ export function useSameChainTransferExtrinsic (
223
+ network : string ,
224
+ token : string ,
225
+ getTransferData : ( ) => SameChainTransferParamData
226
+ ) {
51
227
const chainInfo = useChainInfoByNetwork ( network )
52
228
53
229
const getExtrinsic = ( ) => {
54
230
const { tokenId } = getTransferData ( )
55
- const customConfig = customSameChainTransferConfig [ getCustomTransferParamId ( token , network ) ]
231
+ const customConfig =
232
+ customSameChainTransferConfig [ getCustomTransferParamId ( token , network ) ]
56
233
if ( customConfig ) {
57
234
return customConfig . extrinsic
58
235
} else if ( ! tokenId ) {
59
236
return 'balances.transfer'
60
237
} else {
61
- const { extrinsic } = decodeExtrinsicString ( chainInfo ?. tokenTransferMethod || '' )
238
+ const { extrinsic } = decodeExtrinsicString (
239
+ chainInfo ?. tokenTransferMethod || ''
240
+ )
62
241
return extrinsic
63
242
}
64
243
}
@@ -67,11 +246,12 @@ export function useSameChainTransferExtrinsic (network: string, token: string, g
67
246
const transferData = getTransferData ( )
68
247
const { amount, recipient, tokenId } = transferData
69
248
70
- const customGetter = customSameChainTransferConfig [ getCustomTransferParamId ( token , network ) ]
249
+ const customGetter =
250
+ customSameChainTransferConfig [ getCustomTransferParamId ( token , network ) ]
71
251
if ( customGetter ) return customGetter . getParams ( { ...transferData } )
72
252
73
253
if ( ! tokenId ) {
74
- return [ recipient , amount ]
254
+ return [ recipient , amount ]
75
255
}
76
256
77
257
const method = chainInfo ?. tokenTransferMethod
0 commit comments