@swapkit/toolboxes 1.0.0-beta.0 → 1.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-0f0249b1.js +3 -0
- package/dist/chunk-0f0249b1.js.map +10 -0
- package/dist/chunk-0h4xdrwz.js +4 -0
- package/dist/chunk-0h4xdrwz.js.map +10 -0
- package/dist/chunk-4yap1fvd.js +3 -0
- package/dist/chunk-4yap1fvd.js.map +10 -0
- package/dist/chunk-fjfxga2v.js +3 -0
- package/dist/chunk-fjfxga2v.js.map +10 -0
- package/dist/{chunk-tvrdndbw.js → chunk-p1kdg37m.js} +2 -2
- package/dist/{chunk-tvrdndbw.js.map → chunk-p1kdg37m.js.map} +1 -1
- package/dist/cosmos/index.cjs +2 -2
- package/dist/cosmos/index.cjs.map +10 -13
- package/dist/cosmos/index.js +2 -2
- package/dist/cosmos/index.js.map +10 -13
- package/dist/evm/index.cjs +2 -2
- package/dist/evm/index.cjs.map +10 -16
- package/dist/evm/index.js +2 -2
- package/dist/evm/index.js.map +10 -16
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +4 -3
- package/dist/index.js +2 -2
- package/dist/index.js.map +4 -3
- package/dist/radix/index.cjs +2 -2
- package/dist/radix/index.cjs.map +3 -3
- package/dist/radix/index.js +2 -2
- package/dist/radix/index.js.map +3 -3
- package/dist/ripple/index.cjs +3 -0
- package/dist/ripple/index.cjs.map +10 -0
- package/dist/ripple/index.js +3 -0
- package/dist/ripple/index.js.map +10 -0
- package/dist/solana/index.cjs +2 -2
- package/dist/solana/index.cjs.map +3 -3
- package/dist/solana/index.js +2 -2
- package/dist/solana/index.js.map +3 -3
- package/dist/substrate/index.cjs +2 -2
- package/dist/substrate/index.cjs.map +5 -6
- package/dist/substrate/index.js +2 -2
- package/dist/substrate/index.js.map +5 -6
- package/dist/utxo/index.cjs +2 -2
- package/dist/utxo/index.cjs.map +9 -11
- package/dist/utxo/index.js +2 -2
- package/dist/utxo/index.js.map +9 -11
- package/package.json +27 -23
- package/src/cosmos/index.ts +2 -9
- package/src/cosmos/thorchainUtils/addressFormat.ts +1 -2
- package/src/cosmos/thorchainUtils/index.ts +1 -1
- package/src/cosmos/thorchainUtils/messages.ts +74 -56
- package/src/cosmos/thorchainUtils/registry.ts +19 -26
- package/src/cosmos/thorchainUtils/types/{proto/MsgCompiled.ts → MsgCompiled.ts} +1 -3
- package/src/cosmos/thorchainUtils/types/client-types.ts +16 -23
- package/src/cosmos/toolbox/cosmos.ts +334 -0
- package/src/cosmos/toolbox/index.ts +33 -0
- package/src/cosmos/toolbox/thorchain.ts +125 -137
- package/src/cosmos/types.ts +37 -18
- package/src/cosmos/util.ts +24 -74
- package/src/evm/__tests__/ethereum.test.ts +110 -116
- package/src/evm/api.ts +11 -147
- package/src/evm/helpers.ts +111 -83
- package/src/evm/index.ts +1 -17
- package/src/evm/toolbox/baseEVMToolbox.ts +744 -0
- package/src/evm/toolbox/evm.ts +69 -0
- package/src/evm/toolbox/index.ts +36 -0
- package/src/evm/toolbox/op.ts +97 -143
- package/src/evm/types.ts +50 -28
- package/src/index.ts +235 -0
- package/src/radix/index.ts +18 -19
- package/src/ripple/index.ts +199 -0
- package/src/solana/index.ts +11 -5
- package/src/solana/toolbox.ts +227 -137
- package/src/substrate/index.ts +2 -3
- package/src/substrate/{toolbox/baseSubstrateToolbox.ts → substrate.ts} +104 -72
- package/src/substrate/types.ts +120 -0
- package/src/utils.ts +27 -0
- package/src/utxo/helpers/api.ts +27 -23
- package/src/utxo/helpers/bchaddrjs.ts +21 -21
- package/src/utxo/helpers/index.ts +0 -1
- package/src/utxo/helpers/txSize.ts +3 -4
- package/src/utxo/index.ts +3 -7
- package/src/utxo/toolbox/bitcoinCash.ts +165 -155
- package/src/utxo/toolbox/index.ts +63 -24
- package/src/utxo/toolbox/utxo.ts +376 -229
- package/src/utxo/types.ts +26 -39
- package/src/cosmos/thorchainUtils/types/proto/MsgCompiled.js +0 -2806
- package/src/cosmos/thorchainUtils/util.ts +0 -46
- package/src/cosmos/toolbox/BaseCosmosToolbox.ts +0 -254
- package/src/cosmos/toolbox/gaia.ts +0 -39
- package/src/cosmos/toolbox/getToolboxByChain.ts +0 -29
- package/src/cosmos/toolbox/kujira.ts +0 -61
- package/src/evm/provider.ts +0 -6
- package/src/evm/toolbox/EVMToolbox.ts +0 -662
- package/src/evm/toolbox/arb.ts +0 -61
- package/src/evm/toolbox/avax.ts +0 -36
- package/src/evm/toolbox/base.ts +0 -42
- package/src/evm/toolbox/bsc.ts +0 -34
- package/src/evm/toolbox/eth.ts +0 -44
- package/src/evm/toolbox/getToolboxByChain.ts +0 -42
- package/src/evm/toolbox/matic.ts +0 -42
- package/src/radix/toolbox.ts +0 -693
- package/src/substrate/toolbox/index.ts +0 -40
- package/src/substrate/types/index.ts +0 -2
- package/src/substrate/types/network.ts +0 -42
- package/src/substrate/types/wallet.ts +0 -78
- package/src/utxo/helpers/utils.ts +0 -45
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "../util";
|
|
10
10
|
|
|
11
11
|
import { createDefaultAminoTypes, createDefaultRegistry } from "./registry";
|
|
12
|
-
import type {
|
|
12
|
+
import type { ThorchainCreateTransactionParams } from "./types";
|
|
13
13
|
|
|
14
14
|
type MsgSend = ReturnType<typeof transferMsgAmino>;
|
|
15
15
|
type MsgDeposit = ReturnType<typeof depositMsgAmino>;
|
|
@@ -22,40 +22,40 @@ export const THORCHAIN_GAS_VALUE = getDefaultChainFee(Chain.THORChain).gas;
|
|
|
22
22
|
export const MAYA_GAS_VALUE = getDefaultChainFee(Chain.Maya).gas;
|
|
23
23
|
|
|
24
24
|
export const transferMsgAmino = ({
|
|
25
|
-
|
|
25
|
+
sender,
|
|
26
26
|
recipient,
|
|
27
27
|
assetValue,
|
|
28
|
-
chain,
|
|
29
28
|
}: {
|
|
30
|
-
|
|
29
|
+
sender: string;
|
|
31
30
|
recipient?: string;
|
|
32
31
|
assetValue: AssetValue;
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
32
|
+
}) => {
|
|
33
|
+
const chain = assetValue.chain as Chain.THORChain | Chain.Maya;
|
|
34
|
+
return {
|
|
35
|
+
type: `${chain === Chain.Maya ? "mayachain" : "thorchain"}/MsgSend` as const,
|
|
36
|
+
value: {
|
|
37
|
+
from_address: sender,
|
|
38
|
+
to_address: recipient,
|
|
39
|
+
amount: [
|
|
40
|
+
{
|
|
41
|
+
amount: assetValue.getBaseValue("string"),
|
|
42
|
+
denom: getMsgSendDenom(assetValue.symbol, true),
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
},
|
|
46
|
+
};
|
|
47
|
+
};
|
|
47
48
|
|
|
48
49
|
export const depositMsgAmino = ({
|
|
49
|
-
|
|
50
|
+
sender,
|
|
50
51
|
assetValue,
|
|
51
52
|
memo = "",
|
|
52
|
-
chain,
|
|
53
53
|
}: {
|
|
54
|
-
|
|
54
|
+
sender: string;
|
|
55
55
|
assetValue: AssetValue;
|
|
56
56
|
memo?: string;
|
|
57
|
-
chain: Chain.THORChain | Chain.Maya;
|
|
58
57
|
}) => {
|
|
58
|
+
const chain = assetValue.chain as Chain.THORChain | Chain.Maya;
|
|
59
59
|
return {
|
|
60
60
|
type: `${chain === Chain.Maya ? "mayachain" : "thorchain"}/MsgDeposit` as const,
|
|
61
61
|
value: {
|
|
@@ -65,36 +65,33 @@ export const depositMsgAmino = ({
|
|
|
65
65
|
asset: getDenomWithChain(assetValue),
|
|
66
66
|
},
|
|
67
67
|
],
|
|
68
|
-
signer:
|
|
68
|
+
signer: sender,
|
|
69
69
|
memo,
|
|
70
70
|
},
|
|
71
71
|
};
|
|
72
72
|
};
|
|
73
73
|
|
|
74
74
|
export const buildAminoMsg = ({
|
|
75
|
-
|
|
75
|
+
sender,
|
|
76
76
|
recipient,
|
|
77
77
|
assetValue,
|
|
78
78
|
memo,
|
|
79
|
-
chain,
|
|
80
79
|
}: {
|
|
81
|
-
|
|
80
|
+
sender: string;
|
|
82
81
|
recipient?: string;
|
|
83
82
|
assetValue: AssetValue;
|
|
84
83
|
memo?: string;
|
|
85
|
-
chain: Chain.THORChain | Chain.Maya;
|
|
86
84
|
}) => {
|
|
87
85
|
const isDeposit = !recipient;
|
|
88
86
|
const msg = isDeposit
|
|
89
|
-
? depositMsgAmino({
|
|
90
|
-
: transferMsgAmino({
|
|
87
|
+
? depositMsgAmino({ sender, assetValue, memo })
|
|
88
|
+
: transferMsgAmino({ sender, recipient, assetValue });
|
|
91
89
|
|
|
92
90
|
return msg;
|
|
93
91
|
};
|
|
94
92
|
|
|
95
|
-
// TODO I think the msg typing is wrong it should be not prepared for broadcast
|
|
96
93
|
export const convertToSignable = async (
|
|
97
|
-
msg:
|
|
94
|
+
msg: MsgSend | MsgDeposit,
|
|
98
95
|
chain: Chain.THORChain | Chain.Maya,
|
|
99
96
|
) => {
|
|
100
97
|
const aminoTypes = await createDefaultAminoTypes(chain);
|
|
@@ -102,16 +99,9 @@ export const convertToSignable = async (
|
|
|
102
99
|
return aminoTypes.fromAmino(msg);
|
|
103
100
|
};
|
|
104
101
|
|
|
105
|
-
const getAccount = async ({
|
|
106
|
-
rpcUrl,
|
|
107
|
-
from,
|
|
108
|
-
}: {
|
|
109
|
-
from: string;
|
|
110
|
-
rpcUrl: string;
|
|
111
|
-
}) => {
|
|
102
|
+
const getAccount = async ({ rpcUrl, sender }: { sender: string; rpcUrl: string }) => {
|
|
112
103
|
const client = await createStargateClient(rpcUrl);
|
|
113
|
-
|
|
114
|
-
const account = await client.getAccount(from);
|
|
104
|
+
const account = await client.getAccount(sender);
|
|
115
105
|
|
|
116
106
|
if (!account) {
|
|
117
107
|
throw new Error("Account does not exist");
|
|
@@ -120,24 +110,50 @@ const getAccount = async ({
|
|
|
120
110
|
return account;
|
|
121
111
|
};
|
|
122
112
|
|
|
113
|
+
export function getCreateTransaction(rpcUrl: string) {
|
|
114
|
+
return function createTransaction(params: ThorchainCreateTransactionParams) {
|
|
115
|
+
const { assetValue, recipient, memo, sender, asSignable, asAminoMessage } = params;
|
|
116
|
+
|
|
117
|
+
if (recipient) {
|
|
118
|
+
return buildTransferTx(rpcUrl)({
|
|
119
|
+
sender,
|
|
120
|
+
recipient,
|
|
121
|
+
assetValue,
|
|
122
|
+
memo,
|
|
123
|
+
asSignable,
|
|
124
|
+
asAminoMessage,
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return buildDepositTx(rpcUrl)({
|
|
129
|
+
sender,
|
|
130
|
+
assetValue,
|
|
131
|
+
memo,
|
|
132
|
+
asSignable,
|
|
133
|
+
asAminoMessage,
|
|
134
|
+
});
|
|
135
|
+
};
|
|
136
|
+
}
|
|
137
|
+
|
|
123
138
|
export const buildTransferTx =
|
|
124
139
|
(rpcUrl: string) =>
|
|
125
140
|
async ({
|
|
126
|
-
|
|
141
|
+
sender,
|
|
127
142
|
recipient,
|
|
128
143
|
assetValue,
|
|
129
144
|
memo = "",
|
|
130
|
-
chain,
|
|
131
145
|
asSignable = true,
|
|
132
146
|
asAminoMessage = false,
|
|
133
|
-
|
|
134
|
-
|
|
147
|
+
sequence,
|
|
148
|
+
accountNumber,
|
|
149
|
+
}: ThorchainCreateTransactionParams) => {
|
|
150
|
+
const account = await getAccount({ rpcUrl, sender });
|
|
151
|
+
const chain = assetValue.chain as Chain.THORChain | Chain.Maya;
|
|
135
152
|
|
|
136
153
|
const transferMsg = transferMsgAmino({
|
|
137
|
-
|
|
154
|
+
sender,
|
|
138
155
|
recipient,
|
|
139
156
|
assetValue,
|
|
140
|
-
chain,
|
|
141
157
|
});
|
|
142
158
|
|
|
143
159
|
const msg = asSignable
|
|
@@ -149,8 +165,8 @@ export const buildTransferTx =
|
|
|
149
165
|
|
|
150
166
|
const transaction = {
|
|
151
167
|
chainId: ChainToChainId[chain],
|
|
152
|
-
accountNumber: account.accountNumber,
|
|
153
|
-
sequence: account.sequence,
|
|
168
|
+
accountNumber: accountNumber || account.accountNumber,
|
|
169
|
+
sequence: sequence || account.sequence,
|
|
154
170
|
msgs: [msg],
|
|
155
171
|
fee: getDefaultChainFee(assetValue.chain as Chain.THORChain | Chain.Maya),
|
|
156
172
|
memo,
|
|
@@ -162,16 +178,18 @@ export const buildTransferTx =
|
|
|
162
178
|
export const buildDepositTx =
|
|
163
179
|
(rpcUrl: string) =>
|
|
164
180
|
async ({
|
|
165
|
-
|
|
181
|
+
sender,
|
|
166
182
|
assetValue,
|
|
167
183
|
memo = "",
|
|
168
|
-
chain,
|
|
169
184
|
asSignable = true,
|
|
170
185
|
asAminoMessage = false,
|
|
171
|
-
|
|
172
|
-
|
|
186
|
+
sequence,
|
|
187
|
+
accountNumber,
|
|
188
|
+
}: ThorchainCreateTransactionParams) => {
|
|
189
|
+
const account = await getAccount({ rpcUrl, sender });
|
|
190
|
+
const chain = assetValue.chain as Chain.THORChain | Chain.Maya;
|
|
173
191
|
|
|
174
|
-
const depositMsg = depositMsgAmino({
|
|
192
|
+
const depositMsg = depositMsgAmino({ sender, assetValue, memo });
|
|
175
193
|
|
|
176
194
|
const msg = asSignable
|
|
177
195
|
? await convertToSignable(
|
|
@@ -182,8 +200,8 @@ export const buildDepositTx =
|
|
|
182
200
|
|
|
183
201
|
const transaction = {
|
|
184
202
|
chainId: ChainToChainId[chain],
|
|
185
|
-
accountNumber: account.accountNumber,
|
|
186
|
-
sequence: account.sequence,
|
|
203
|
+
accountNumber: accountNumber || account.accountNumber,
|
|
204
|
+
sequence: sequence || account.sequence,
|
|
187
205
|
msgs: [msg],
|
|
188
206
|
fee: getDefaultChainFee(assetValue.chain as Chain.THORChain | Chain.Maya),
|
|
189
207
|
memo,
|
|
@@ -214,7 +232,7 @@ export function parseAminoMessageForDirectSigning<T extends MsgDeposit | MsgSend
|
|
|
214
232
|
asset: {
|
|
215
233
|
chain,
|
|
216
234
|
symbol,
|
|
217
|
-
ticker:
|
|
235
|
+
ticker: assetValue.ticker,
|
|
218
236
|
synth: assetValue.isSynthetic,
|
|
219
237
|
},
|
|
220
238
|
};
|
|
@@ -1,47 +1,40 @@
|
|
|
1
1
|
import { Chain } from "@swapkit/helpers";
|
|
2
|
-
import * as types from "../thorchainUtils/types/proto/MsgCompiled";
|
|
3
2
|
import { base64ToBech32, bech32ToBase64 } from "./addressFormat";
|
|
4
3
|
|
|
5
4
|
export async function createDefaultRegistry() {
|
|
6
|
-
const {
|
|
7
|
-
const {
|
|
5
|
+
const { $root } = await import("./types/MsgCompiled");
|
|
6
|
+
const { Registry } = (await import("@cosmjs/proto-signing")).default;
|
|
7
|
+
const { defaultRegistryTypes } = (await import("@cosmjs/stargate")).default;
|
|
8
8
|
|
|
9
9
|
return new Registry([
|
|
10
10
|
...defaultRegistryTypes,
|
|
11
|
-
["/types.MsgSend",
|
|
12
|
-
["/types.MsgDeposit",
|
|
11
|
+
["/types.MsgSend", $root.types.MsgSend],
|
|
12
|
+
["/types.MsgDeposit", $root.types.MsgDeposit],
|
|
13
13
|
]);
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export async function createDefaultAminoTypes(chain: Chain.THORChain | Chain.Maya) {
|
|
17
|
-
const { AminoTypes } = await import("@cosmjs/stargate");
|
|
17
|
+
const { AminoTypes } = (await import("@cosmjs/stargate")).default;
|
|
18
|
+
const aminoTypePrefix = chain === Chain.THORChain ? "thorchain" : "mayachain";
|
|
18
19
|
|
|
19
20
|
return new AminoTypes({
|
|
20
21
|
"/types.MsgSend": {
|
|
21
|
-
aminoType: `${
|
|
22
|
-
toAmino: (
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
22
|
+
aminoType: `${aminoTypePrefix}/MsgSend`,
|
|
23
|
+
toAmino: ({ fromAddress, toAddress, ...rest }: any) => ({
|
|
24
|
+
...rest,
|
|
25
|
+
from_address: base64ToBech32(fromAddress),
|
|
26
|
+
to_address: base64ToBech32(toAddress),
|
|
26
27
|
}),
|
|
27
|
-
fromAmino: (
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
fromAmino: ({ from_address, to_address, ...rest }: any) => ({
|
|
29
|
+
...rest,
|
|
30
|
+
fromAddress: bech32ToBase64(from_address),
|
|
31
|
+
toAddress: bech32ToBase64(to_address),
|
|
31
32
|
}),
|
|
32
33
|
},
|
|
33
34
|
"/types.MsgDeposit": {
|
|
34
|
-
aminoType: `${
|
|
35
|
-
toAmino: (
|
|
36
|
-
|
|
37
|
-
memo: params.memo,
|
|
38
|
-
coins: [...params.coins],
|
|
39
|
-
}),
|
|
40
|
-
fromAmino: (params: any) => ({
|
|
41
|
-
signer: bech32ToBase64(params.signer),
|
|
42
|
-
memo: params.memo,
|
|
43
|
-
coins: [...params.coins],
|
|
44
|
-
}),
|
|
35
|
+
aminoType: `${aminoTypePrefix}/MsgDeposit`,
|
|
36
|
+
toAmino: ({ signer, ...rest }: any) => ({ ...rest, signer: base64ToBech32(signer) }),
|
|
37
|
+
fromAmino: ({ signer, ...rest }: any) => ({ ...rest, signer: bech32ToBase64(signer) }),
|
|
45
38
|
},
|
|
46
39
|
});
|
|
47
40
|
}
|
|
@@ -8,7 +8,7 @@ const $util = $protobuf.util;
|
|
|
8
8
|
|
|
9
9
|
// Exported root namespace
|
|
10
10
|
|
|
11
|
-
const $root = ($protobuf.roots
|
|
11
|
+
export const $root = ($protobuf.roots.default || ($protobuf.roots.default = {})) as any;
|
|
12
12
|
|
|
13
13
|
$root.common = (() => {
|
|
14
14
|
/**
|
|
@@ -2798,5 +2798,3 @@ $root.cosmos = (() => {
|
|
|
2798
2798
|
|
|
2799
2799
|
return cosmos;
|
|
2800
2800
|
})();
|
|
2801
|
-
|
|
2802
|
-
export default $root;
|
|
@@ -1,6 +1,10 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
|
|
1
|
+
import type { EncodeObject } from "@cosmjs/proto-signing";
|
|
2
|
+
import type {
|
|
3
|
+
Asset,
|
|
4
|
+
ChainId,
|
|
5
|
+
GenericCreateTransactionParams,
|
|
6
|
+
GenericTransferParams,
|
|
7
|
+
} from "@swapkit/helpers";
|
|
4
8
|
|
|
5
9
|
enum TxType {
|
|
6
10
|
Transfer = "transfer",
|
|
@@ -21,13 +25,6 @@ export type NodeUrl = {
|
|
|
21
25
|
rpc: string;
|
|
22
26
|
};
|
|
23
27
|
|
|
24
|
-
export type DepositParam = {
|
|
25
|
-
signer?: OfflineDirectSigner | OfflineAminoSigner;
|
|
26
|
-
walletIndex?: number;
|
|
27
|
-
assetValue: AssetValue;
|
|
28
|
-
memo: string;
|
|
29
|
-
};
|
|
30
|
-
|
|
31
28
|
export type TxData = Pick<Tx, "from" | "to" | "type">;
|
|
32
29
|
|
|
33
30
|
/**
|
|
@@ -59,22 +56,18 @@ export type TransferTransaction = {
|
|
|
59
56
|
fee: { amount: { denom: string; amount: string }[]; gas: string };
|
|
60
57
|
};
|
|
61
58
|
|
|
62
|
-
export type
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
assetValue: AssetValue;
|
|
66
|
-
memo?: string;
|
|
67
|
-
fee?: string;
|
|
59
|
+
export type CosmosCreateTransactionParams = GenericCreateTransactionParams & {
|
|
60
|
+
accountNumber?: number;
|
|
61
|
+
sequence?: number;
|
|
68
62
|
};
|
|
69
63
|
|
|
70
|
-
export type
|
|
71
|
-
|
|
72
|
-
recipient
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
chain: Chain.THORChain | Chain.Maya;
|
|
64
|
+
export type ThorchainCreateTransactionParams = Omit<
|
|
65
|
+
CosmosCreateTransactionParams,
|
|
66
|
+
"feeRate" | "recipient"
|
|
67
|
+
> & {
|
|
68
|
+
recipient?: string;
|
|
76
69
|
asSignable?: boolean;
|
|
77
70
|
asAminoMessage?: boolean;
|
|
78
71
|
};
|
|
79
72
|
|
|
80
|
-
export type
|
|
73
|
+
export type ThorchainDepositParams = Omit<GenericTransferParams, "recipient">;
|