Skip to content

Commit 26f6db8

Browse files
authored
feat: Add stake migration tx (#408)
* feat: Add stake migration tx * update msg * v1.0.2 * Fix the order of message structure
1 parent aa9d28e commit 26f6db8

File tree

5 files changed

+94
-3
lines changed

5 files changed

+94
-3
lines changed

docs/api-docs/classes/bncclient.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ get open orders for an address
332332

333333
Name | Type | Default | Description |
334334
------ | ------ | ------ | ------ |
335-
`address` | string | this.address! | binance address |
335+
`address` | string | this.address! | bnb address |
336336

337337
**Returns:** *Promise‹object | never[]*
338338

@@ -465,7 +465,7 @@ Name | Type | Default | Description |
465465

466466
**Returns:** *Promise‹object | never[]*
467467

468-
resolves with http response ([more details](https://docs.bnbchain.org/docs/beaconchain/develop/api-reference/dex-api/block-service/#apiv1txs))
468+
resolves with http response ([more details](https://docs.binance.org/api-reference/dex-api/block-service.html#apiv1txs))
469469
```js
470470
// Example:
471471
const client = new BncClient('https://testnet-api.binance.org')

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@bnb-chain/javascript-sdk",
3-
"version": "0.0.0-development",
3+
"version": "1.0.2",
44
"license": "Apache-2.0",
55
"main": "lib/index.js",
66
"typings": "lib/index.d.ts",

src/types/msg/stake/index.ts

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export * from "./bscDelegateMsg"
22
export * from "./bscUndelegateMsg"
33
export * from "./bscRedelegateMsg"
4+
export * from "./stakeMigrationMsg"
+89
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
import { BaseMsg, Msg, SignMsg, Coin } from ".."
2+
import * as crypto from "../../../crypto"
3+
import { AminoPrefix } from "../../tx"
4+
5+
export interface SignedStakeMigrationMsg extends SignMsg {
6+
delegator_addr: string
7+
validator_src_addr: string
8+
validator_dst_addr: string
9+
refund_addr: string
10+
amount: Coin
11+
}
12+
13+
export interface StakeMigrationData extends Msg {
14+
validator_src_addr: Buffer
15+
validator_dst_addr: Buffer
16+
delegator_addr: Buffer
17+
refund_addr: Buffer
18+
amount: Coin
19+
aminoPrefix: AminoPrefix
20+
}
21+
22+
export class StakeMigrationMsg extends BaseMsg {
23+
private delegator_addr: string
24+
private validator_src_addr: string
25+
private validator_dst_addr: string
26+
private refund_addr: string
27+
private amount: Coin
28+
29+
constructor({
30+
delegator_addr,
31+
validator_src_addr,
32+
validator_dst_addr,
33+
amount,
34+
refund_addr,
35+
}: {
36+
delegator_addr: string
37+
validator_src_addr: string
38+
validator_dst_addr: string
39+
amount: Coin
40+
refund_addr: string
41+
}) {
42+
super()
43+
this.delegator_addr = delegator_addr
44+
this.validator_src_addr = validator_src_addr
45+
this.validator_dst_addr = validator_dst_addr
46+
this.amount = amount
47+
this.refund_addr = refund_addr
48+
}
49+
50+
getSignMsg() {
51+
const { denom, amount } = this.amount
52+
const signMsg: SignedStakeMigrationMsg = {
53+
validator_src_addr: this.validator_src_addr,
54+
validator_dst_addr: this.validator_dst_addr,
55+
delegator_addr: this.delegator_addr,
56+
refund_addr: this.refund_addr,
57+
amount: { denom, amount: String(amount) },
58+
}
59+
60+
return {
61+
type: "cosmos-sdk/MsgSideChainStakeMigration",
62+
value: signMsg,
63+
}
64+
}
65+
66+
getMsg() {
67+
const data: StakeMigrationData = {
68+
validator_src_addr: crypto.decodeAddress(this.validator_src_addr),
69+
validator_dst_addr: Buffer.from(this.validator_dst_addr.slice(2), "hex"),
70+
delegator_addr: Buffer.from(this.delegator_addr.slice(2), "hex"),
71+
refund_addr: crypto.decodeAddress(this.refund_addr),
72+
amount: this.amount,
73+
aminoPrefix: AminoPrefix.MsgSideChainStakeMigration,
74+
}
75+
76+
return data
77+
}
78+
79+
static defaultMsg() {
80+
return {
81+
validator_src_addr: Buffer.from(""),
82+
validator_dst_addr: Buffer.from(""),
83+
delegator_addr: Buffer.from(""),
84+
refund_addr: Buffer.from(""),
85+
amount: [{ denom: "", amount: 0 }],
86+
aminoPrefix: AminoPrefix.MsgSideChainStakeMigration,
87+
}
88+
}
89+
}

src/types/tx/stdTx.ts

+1
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ export enum AminoPrefix {
6565
MsgSideChainDelegate = "E3A07FD2",
6666
MsgSideChainRedelegate = "E3CED364",
6767
MsgSideChainUndelegate = "514F7E0E",
68+
MsgSideChainStakeMigration = "38589196",
6869
Claim = "4E781C11",
6970
ClaimMsg = "175A0521",
7071
BindMsg = "B9AE640C",

0 commit comments

Comments
 (0)