Skip to content

Commit 7cb41f3

Browse files
authored
Merge pull request #164 from dappforce/fix/transfers
Fix transfers for all chains
2 parents f78fe80 + 7cf0f76 commit 7cb41f3

File tree

6 files changed

+655
-102
lines changed

6 files changed

+655
-102
lines changed

.github/workflows/check-build-front.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99

1010
strategy:
1111
matrix:
12-
node-version: [16.x]
12+
node-version: [18.x]
1313

1414
steps:
1515
- uses: actions/checkout@v4

docker/Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM node:16-alpine3.16 as dependencies
1+
FROM node:18-alpine3.19 as dependencies
22

33
ARG GH_BACKEND_URL
44
ARG GH_IPFS_URL
@@ -24,7 +24,7 @@ RUN set -x \
2424
&& mv ci.env .env \
2525
&& NODE_ENV=production yarn build
2626

27-
FROM gcr.io/distroless/nodejs:16 AS runner
27+
FROM gcr.io/distroless/nodejs:18 AS runner
2828

2929
ARG GH_BACKEND_URL
3030
ARG GH_IPFS_URL

package.json

+3-4
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,9 @@
5252
"typescript": "4.9.5"
5353
},
5454
"resolutions": {
55-
"@types/react": "^17.x.x",
56-
"@polkadot/types": "^10.9.1",
57-
"@polkadot/api": "^10.9.1",
58-
"@polkadot/util": "^12.5.1"
55+
"@polkadot/types": "^13.0.1",
56+
"@polkadot/api": "^13.0.1",
57+
"@polkadot/util": "^13.0.2"
5958
},
6059
"dependencies": {
6160
"@amplitude/analytics-browser": "^2.2.2",

src/components/transfer/configs/same-chain.ts

+195-15
Original file line numberDiff line numberDiff line change
@@ -1,64 +1,243 @@
11
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'
36

4-
const getCustomTransferParamId = (token: string, network: string) => `${token}|${network}`
7+
const getCustomTransferParamId = (token: string, network: string) =>
8+
`${token}|${network}`
59
export type SameChainTransferParamData = {
610
amount: string
711
recipient: string
812
tokenId?: any
913
}
14+
15+
// balances.transfer - parallel, pioneer, romonomics, joystream, turing, parallel heiko, chainx
1016
const customSameChainTransferConfig: {
1117
[key: string]: {
12-
getParams: (
13-
data: SameChainTransferParamData,
14-
) => any[]
18+
getParams: (data: SameChainTransferParamData) => any[]
1519
extrinsic: string
1620
}
1721
} = {
1822
[getCustomTransferParamId('KSM', 'kusama')]: {
1923
extrinsic: 'balances.transferAllowDeath',
2024
getParams: (data) => {
21-
return [ data.recipient, data.amount ]
25+
return [data.recipient, data.amount]
2226
},
2327
},
2428
[getCustomTransferParamId('DOT', 'polkadot')]: {
2529
extrinsic: 'balances.transferAllowDeath',
2630
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]
28200
},
29201
},
30202
[getCustomTransferParamId('MGX', 'mangata')]: {
31203
extrinsic: 'tokens.transfer',
32204
getParams: (data) => {
33-
return [ data.recipient, 0, data.amount ]
205+
return [data.recipient, 0, data.amount]
34206
},
35207
},
36208
[getCustomTransferParamId('KINT', 'kintsugi')]: {
37209
extrinsic: 'tokens.transfer',
38210
getParams: (data) => {
39-
return [ data.recipient, { Token: 'KINT' }, data.amount ]
211+
return [data.recipient, { Token: 'KINT' }, data.amount]
40212
},
41213
},
42214
[getCustomTransferParamId('INTR', 'interlay')]: {
43215
extrinsic: 'tokens.transfer',
44216
getParams: (data) => {
45-
return [ data.recipient, { Token: 'INTR' }, data.amount ]
217+
return [data.recipient, { Token: 'INTR' }, data.amount]
46218
},
47219
},
48220
}
49221

50-
export function useSameChainTransferExtrinsic (network: string, token: string, getTransferData: () => SameChainTransferParamData) {
222+
export function useSameChainTransferExtrinsic(
223+
network: string,
224+
token: string,
225+
getTransferData: () => SameChainTransferParamData
226+
) {
51227
const chainInfo = useChainInfoByNetwork(network)
52228

53229
const getExtrinsic = () => {
54230
const { tokenId } = getTransferData()
55-
const customConfig = customSameChainTransferConfig[getCustomTransferParamId(token, network)]
231+
const customConfig =
232+
customSameChainTransferConfig[getCustomTransferParamId(token, network)]
56233
if (customConfig) {
57234
return customConfig.extrinsic
58235
} else if (!tokenId) {
59236
return 'balances.transfer'
60237
} else {
61-
const { extrinsic } = decodeExtrinsicString(chainInfo?.tokenTransferMethod || '')
238+
const { extrinsic } = decodeExtrinsicString(
239+
chainInfo?.tokenTransferMethod || ''
240+
)
62241
return extrinsic
63242
}
64243
}
@@ -67,11 +246,12 @@ export function useSameChainTransferExtrinsic (network: string, token: string, g
67246
const transferData = getTransferData()
68247
const { amount, recipient, tokenId } = transferData
69248

70-
const customGetter = customSameChainTransferConfig[getCustomTransferParamId(token, network)]
249+
const customGetter =
250+
customSameChainTransferConfig[getCustomTransferParamId(token, network)]
71251
if (customGetter) return customGetter.getParams({ ...transferData })
72252

73253
if (!tokenId) {
74-
return [ recipient, amount ]
254+
return [recipient, amount]
75255
}
76256

77257
const method = chainInfo?.tokenTransferMethod

src/rtk/features/prices/pricesHooks.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,14 @@ export const overriddenChainNames: Record<string, string> = {
2020
continuum: 'mnet-continuum',
2121
}
2222

23-
export const statemineAssets = ['rmrk']
24-
const additionalTokens = ['zenlink-network-token', 'weth', 'wrapped-bitcoin']
23+
export const statemineAssets = [ 'rmrk' ]
24+
const additionalTokens = [ 'zenlink-network-token', 'weth', 'wrapped-bitcoin' ]
2525

2626
export const getChainsNamesForCoinGecko = (chainsInfo: MultiChainInfo) => {
2727
let keys: string[] = []
2828

2929
if (chainsInfo && !isEmptyObj(chainsInfo)) {
30-
keys = [...Object.keys(chainsInfo), ...statemineAssets, ...additionalTokens]
30+
keys = [ ...Object.keys(chainsInfo), ...statemineAssets, ...additionalTokens ]
3131
}
3232

3333
return keys

0 commit comments

Comments
 (0)