-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.js
88 lines (81 loc) · 2 KB
/
index.js
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
import { DirectSecp256k1HdWallet } from '@cosmjs/proto-signing'
import { SigningStargateClient, StargateClient, assertIsDeliverTxSuccess } from '@cosmjs/stargate'
import { AminoTypes } from '@cosmjs/stargate'
import { crescentTypes } from './src/aminoConverter.js'
import { defaultRegistry as creRegistry } from './src/registry.js'
const creAminoTypes = new AminoTypes({
prefix: 'cre',
additions: crescentTypes
})
const mnemonic =
''
const wallet = await DirectSecp256k1HdWallet.fromMnemonic(mnemonic, {
prefix: 'cre'
})
const [firstAccount] = await wallet.getAccounts()
const address = firstAccount.address
const rpcEndpoint = 'https://mainnet.crescent.network:26657/'
const client = await SigningStargateClient.connectWithSigner(
rpcEndpoint,
wallet,
{
registry: creRegistry,
aminoTypes: creAminoTypes,
prefix: 'cre'
}
)
// Limit Order
const limitOrder = {
typeUrl: '/crescent.liquidity.v1beta1.MsgLimitOrder',
value: {
orderer: address,
// pair_id https://apigw.crescent.network/pair/info
pairId: 1,
// orderDirection = pairBaseDenom === offerDenom ? 2 : 1
direction: 2,
offerCoin: {
denom: 'ubcre',
// 1bcre = 1000000cre
amount: '100000'
},
demandCoinDenom: 'ucre',
price: `${1.2 * 10 ** 18}`,
amount: '100000',
orderLifespan: '0s'
}
}
// Market Order
const marketOrder = {
typeUrl: '/crescent.liquidity.v1beta1.MsgMarketOrder',
value: {
orderer: address,
// pair_id https://apigw.crescent.network/pair/info
pairId: 1,
// orderDirection = pairBaseDenom === offerDenom ? 2 : 1
direction: 2,
offerCoin: {
denom: 'ubcre',
// 1bcre = 1000000cre
amount: '100000'
},
demandCoinDenom: 'ucre',
amount: '10000000',
orderLifespan: '0s'
}
}
const fee = {
amount: [
{
"denom": "ucre",
"amount": "2000"
}
],
gas: "200000",
}
let result = client.signAndBroadcast(
address,
[limitOrder, marketOrder],
fee,
'GlacierLuo'
)
assertIsDeliverTxSuccess(result)