This commit is contained in:
aozhiwei 2024-07-04 04:15:28 +08:00
parent 7f288800e2
commit b9066d9939
4 changed files with 29 additions and 3 deletions

View File

@ -2,21 +2,25 @@
{ {
"name": "Ethereum", "name": "Ethereum",
"contract_address": "0xe9E96d1aad82562b7588F03f49aD34186f996478", "contract_address": "0xe9E96d1aad82562b7588F03f49aD34186f996478",
"decimals": 18,
"current_price": 3371.1 "current_price": 3371.1
}, },
{ {
"name": "USDC", "name": "USDC",
"contract_address": "0x3b2d8a1931736fc321c24864bceee981b11c3c57", "contract_address": "0x3b2d8a1931736fc321c24864bceee981b11c3c57",
"decimals": 6,
"current_price": 0.999334 "current_price": 0.999334
}, },
{ {
"name": "Immutable", "name": "Immutable",
"contract_address": "0x1ccca691501174b4a623ceda58cc8f1a76dc3439", "contract_address": "0x1ccca691501174b4a623ceda58cc8f1a76dc3439",
"decimals": 18,
"current_price": 1.54 "current_price": 1.54
}, },
{ {
"name": "NATIVE", "name": "NATIVE",
"contract_address": "0xFd42bfb03212dA7e1A4608a44d7658641D99CF34", "contract_address": "0xFd42bfb03212dA7e1A4608a44d7658641D99CF34",
"current_price": 1.54 "decimals": 18,
"current_price": 3371.1
} }
] ]

View File

@ -99,6 +99,7 @@ type BcCurrency struct {
name string name string
contract_address string contract_address string
current_price float64 current_price float64
decimals int32
_flags1_ uint64 _flags1_ uint64
_flags2_ uint64 _flags2_ uint64
@ -492,6 +493,14 @@ func (this *BcCurrency) HasCurrentPrice() bool {
return (this._flags1_ & (uint64(1) << 4)) > 0 return (this._flags1_ & (uint64(1) << 4)) > 0
} }
func (this *BcCurrency) GetDecimals() int32 {
return this.decimals
}
func (this *BcCurrency) HasDecimals() bool {
return (this._flags1_ & (uint64(1) << 5)) > 0
}
func (this *RankSeason) GetId() int32 { func (this *RankSeason) GetId() int32 {
return this.id return this.id
} }
@ -628,6 +637,7 @@ func (this *BcCurrency) LoadFromKv(kv map[string]interface{}) {
f5.ReadMetaTableField(&this.name, "name", &this._flags1_, 1, kv) f5.ReadMetaTableField(&this.name, "name", &this._flags1_, 1, kv)
f5.ReadMetaTableField(&this.contract_address, "contract_address", &this._flags1_, 3, kv) f5.ReadMetaTableField(&this.contract_address, "contract_address", &this._flags1_, 3, kv)
f5.ReadMetaTableField(&this.current_price, "current_price", &this._flags1_, 4, kv) f5.ReadMetaTableField(&this.current_price, "current_price", &this._flags1_, 4, kv)
f5.ReadMetaTableField(&this.decimals, "decimals", &this._flags1_, 5, kv)
} }
func (this *RankSeason) LoadFromKv(kv map[string]interface{}) { func (this *RankSeason) LoadFromKv(kv map[string]interface{}) {

View File

@ -82,6 +82,7 @@ message BcCurrency
optional string name = 1; optional string name = 1;
optional string contract_address = 3; optional string contract_address = 3;
optional double current_price = 4; optional double current_price = 4;
optional int32 decimals = 5;
} }
message RankSeason message RankSeason

View File

@ -53,11 +53,22 @@ func (this *bcCurrency) ExchangeUSD(amount string, itemType string, contractAddr
if !ok { if !ok {
return 0, "0" return 0, "0"
} }
bnDecimal := big.NewInt(DECIMALS) //bnDecimal := big.NewInt(DECIMALS)
bnDecimalEx := big.NewInt(100000000000000000)
{
usdcMeta := mt.Table.BcCurrency.GetByName(jccommon.BC_CURRENCY_NAME_USDC)
if usdcMeta != nil && strings.ToLower(usdcMeta.GetContractAddress()) == contractAddress {
bnDecimalEx = big.NewInt(100000)
}
}
//if itemType == jccommon.BC_CURRENCY_NAME_USDC {
//bnDecimalEx = big.NewInt(100000)
//}
bnPrice := big.NewInt(0) bnPrice := big.NewInt(0)
bnRate := big.NewInt(rate) bnRate := big.NewInt(rate)
bnPrice.Mul(bnAmount, bnRate) bnPrice.Mul(bnAmount, bnRate)
bnPrice.Div(bnPrice, bnDecimal) //bnPrice.Mul(bnPrice, bnDecimal)
bnPrice.Div(bnPrice, bnDecimalEx)
return rate, bnPrice.String() return rate, bnPrice.String()
} }