Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update cionswap LPT denom #217

Closed
wants to merge 3 commits into from
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 41 additions & 2 deletions modules/coinswap/keeper/keeper.go
Original file line number Diff line number Diff line change
Expand Up @@ -321,8 +321,47 @@ func (k Keeper) GetUniDenomFromDenoms(ctx sdk.Context, denom1, denom2 string) (s
if denom1 != standardDenom && denom2 != standardDenom {
return "", sdkerrors.Wrap(types.ErrNotContainStandardDenom, fmt.Sprintf("standard denom: %s,denom1: %s,denom2: %s", standardDenom, denom1, denom2))
}
Value := k.GetAutoIncrementId(ctx)
LptId, _ := strconv.Atoi(Value)
defer k.SetAutoIncrementId(ctx, strconv.Itoa(LptId+1))
if denom1 == standardDenom {
return fmt.Sprintf(types.FormatUniDenom, denom2), nil
return fmt.Sprintf(types.FormatUniDenom, strconv.Itoa(LptId+1)), nil
}
return fmt.Sprintf(types.FormatUniDenom, denom1), nil
return fmt.Sprintf(types.FormatUniDenom, strconv.Itoa(LptId+1)), nil
}

// SetAutoIncrementId sets Lpt AutoIncrementId for the coinswap module.
func (k Keeper) SetAutoIncrementId(ctx sdk.Context, AutoIncrementId string) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • rename AutoIncrementId to lptID
  • define lptID as uint64, serialize as follows
    lptIDBz = make([]byte, 8)
    binary.BigEndian.PutUint64(lptIDBz, lptID)

store := ctx.KVStore(k.storeKey)
IdWrap := gogotypes.StringValue{Value: AutoIncrementId}
bz := k.cdc.MustMarshalBinaryBare(&IdWrap)
store.Set(types.KeyLptId, bz)
}

// GetAutoIncrementId returns Lpt AutoIncrementId of the coinswap module.
func (k Keeper) GetAutoIncrementId(ctx sdk.Context) string {
store := ctx.KVStore(k.storeKey)
bz := store.Get(types.KeyLptId)

var LptId = gogotypes.StringValue{}
k.cdc.MustUnmarshalBinaryBare(bz, &LptId)
return LptId.Value
}

// SetAutoIncrementId sets Tibcid AutoIncrementId for the coinswap module.
func (k Keeper) SetTibcAutoIncrementId(ctx sdk.Context, AutoIncrementId string) {
store := ctx.KVStore(k.storeKey)
IdWrap := gogotypes.StringValue{Value: AutoIncrementId}
bz := k.cdc.MustMarshalBinaryBare(&IdWrap)
store.Set(types.KeyTibcId, bz)
}

// GetAutoIncrementId returns Tibcid AutoIncrementId of the coinswap module.
func (k Keeper) GetTibcAutoIncrementId(ctx sdk.Context) string {
store := ctx.KVStore(k.storeKey)
bz := store.Get(types.KeyTibcId)

var tibcid = gogotypes.StringValue{}
k.cdc.MustUnmarshalBinaryBare(bz, &tibcid)
return tibcid.Value
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is the usage of these two methods?

}
9 changes: 9 additions & 0 deletions modules/coinswap/spec/fix_coinswap.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#Coinswap LP Denom 优化需求
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

delete this file

1、修改 LP Denom 规范为:lpt-{index}
修改 LP Denom 规范为:lpt-{index};
编号从 1 开始递增
更新 Coin Spec,新增预留前缀 “lpt”、“tibc”,删除原预留前缀 “swap”

2、数据迁移

主网升级时,迁移原来已存在的 LP Token 到新的规范
7 changes: 4 additions & 3 deletions modules/coinswap/types/msgs.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,11 @@ var (

const (
// FormatUniABSPrefix defines the prefix of liquidity token
FormatUniABSPrefix = "swap"
FormatUniABSPrefix = "lpt-"
// FormatUniDenom defines the name of liquidity token
FormatUniDenom = "swap%s"

FormatUniDenom = "lpt-%s"
// FormatTibcPrefix defines the prefix of liquidity token
FormatTibcPrefix = "tibc"
// TypeMsgAddLiquidity defines the type of MsgAddLiquidity
TypeMsgAddLiquidity = "add_liquidity"
// TypeMsgRemoveLiquidity defines the type of MsgRemoveLiquidity
Expand Down
2 changes: 2 additions & 0 deletions modules/coinswap/types/params.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import (
var (
KeyFee = []byte("Fee") // fee key
KeyStandardDenom = []byte("StandardDenom") // standard token denom key
KeyLptId = []byte("LptId") // LptId key
KeyTibcId = []byte("TibcId") // TibcId key
)

// NewParams is the coinswap params constructor
Expand Down