From a28871494f08ce87b5db4703412044962a8ca0d2 Mon Sep 17 00:00:00 2001 From: Lee ByeongJun Date: Tue, 21 Jan 2025 12:19:22 +0900 Subject: [PATCH] use strconv --- contract/r/gnoswap/common/halt.gno | 3 +- contract/r/gnoswap/common/limit_caller.gno | 3 +- .../gnoswap/community_pool/community_pool.gno | 5 +- contract/r/gnoswap/emission/distribution.gno | 19 +++--- contract/r/gnoswap/emission/emission.gno | 12 ++-- contract/r/gnoswap/emission/utils.gno | 27 ++++++++ contract/r/gnoswap/gns/gns.gno | 15 +++-- contract/r/gnoswap/gns/halving.gno | 10 ++- contract/r/gnoswap/gns/utils.gno | 27 ++++++++ contract/r/gnoswap/gov/governance/api.gno | 44 ++++++------- contract/r/gnoswap/gov/governance/config.gno | 20 +++--- contract/r/gnoswap/gov/governance/execute.gno | 2 +- .../r/gnoswap/gov/governance/proposal.gno | 22 +++---- .../gnoswap/gov/governance/proposal_test.gno | 10 +-- contract/r/gnoswap/gov/governance/utils.gno | 19 +++--- contract/r/gnoswap/gov/governance/vote.gno | 10 +-- .../r/gnoswap/gov/governance/vote_test.gno | 14 ++--- contract/r/gnoswap/gov/staker/staker.gno | 63 ------------------- contract/r/gnoswap/launchpad/deposit.gno | 6 +- contract/r/gnoswap/launchpad/launchpad.gno | 14 ++--- contract/r/gnoswap/launchpad/reward.gno | 5 +- contract/r/gnoswap/launchpad/util.gno | 13 +++- contract/r/gnoswap/pool/pool.gno | 14 ++--- contract/r/gnoswap/pool/pool_manager.gno | 4 +- .../pool/protocol_fee_pool_creation.gno | 4 +- .../gnoswap/pool/protocol_fee_withdrawal.gno | 6 +- contract/r/gnoswap/pool/swap.gno | 2 +- contract/r/gnoswap/pool/utils.gno | 31 +++++++++ contract/r/gnoswap/position/position.gno | 26 ++++---- contract/r/gnoswap/position/utils.gno | 31 +++++++++ .../r/gnoswap/protocol_fee/protocol_fee.gno | 3 +- .../r/gnoswap/router/protocol_fee_swap.gno | 6 +- contract/r/gnoswap/router/utils.gno | 13 ++++ .../r/gnoswap/staker/external_deposit_fee.gno | 4 +- .../staker/manage_pool_tier_and_warmup.gno | 8 +-- .../gnoswap/staker/protocol_fee_unstaking.gno | 12 ++-- contract/r/gnoswap/staker/staker.gno | 24 +++---- .../staker/staker_external_incentive.gno | 12 ++-- contract/r/gnoswap/staker/utils.gno | 30 +++++++++ 39 files changed, 349 insertions(+), 244 deletions(-) diff --git a/contract/r/gnoswap/common/halt.gno b/contract/r/gnoswap/common/halt.gno index 2ea37b471..14528c154 100644 --- a/contract/r/gnoswap/common/halt.gno +++ b/contract/r/gnoswap/common/halt.gno @@ -2,6 +2,7 @@ package common import ( "std" + "strconv" "gno.land/p/demo/ufmt" "gno.land/r/gnoswap/v1/consts" @@ -94,6 +95,6 @@ func setHalt(halt bool) { "setHalt", "prevAddr", prevAddr, "prevRealm", prevRealm, - "halt", ufmt.Sprintf("%t", halt), + "halt", strconv.FormatBool(halt), ) } diff --git a/contract/r/gnoswap/common/limit_caller.gno b/contract/r/gnoswap/common/limit_caller.gno index c12d3611b..66c3588a7 100644 --- a/contract/r/gnoswap/common/limit_caller.gno +++ b/contract/r/gnoswap/common/limit_caller.gno @@ -2,6 +2,7 @@ package common import ( "std" + "strconv" "gno.land/p/demo/ufmt" ) @@ -47,6 +48,6 @@ func SetLimitCaller(v bool) { "SetLimitCaller", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "limitCaller", ufmt.Sprintf("%t", v), + "limitCaller", strconv.FormatBool(v), ) } diff --git a/contract/r/gnoswap/community_pool/community_pool.gno b/contract/r/gnoswap/community_pool/community_pool.gno index 182a6dad9..1255405de 100644 --- a/contract/r/gnoswap/community_pool/community_pool.gno +++ b/contract/r/gnoswap/community_pool/community_pool.gno @@ -2,8 +2,7 @@ package community_pool import ( "std" - - "gno.land/p/demo/ufmt" + "strconv" "gno.land/r/gnoswap/v1/common" ) @@ -37,7 +36,7 @@ func transferToken(tokenPath string, to std.Address, amount uint64) { "prevRealm", prevRealm, "tokenPath", tokenPath, "to", to.String(), - "amount", ufmt.Sprintf("%d", amount), + "amount", strconv.FormatUint(amount, 10), ) } diff --git a/contract/r/gnoswap/emission/distribution.gno b/contract/r/gnoswap/emission/distribution.gno index ad5808733..596efd2af 100644 --- a/contract/r/gnoswap/emission/distribution.gno +++ b/contract/r/gnoswap/emission/distribution.gno @@ -122,14 +122,14 @@ func changeDistributionPcts( "ChangeDistributionPct", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "target01", strconv.Itoa(target01), - "pct01", strconv.FormatUint(pct01, 10), - "target02", strconv.Itoa(target02), - "pct02", strconv.FormatUint(pct02, 10), - "target03", strconv.Itoa(target03), - "pct03", strconv.FormatUint(pct03, 10), - "target04", strconv.Itoa(target04), - "pct04", strconv.FormatUint(pct04, 10), + "target01", formatInt(target01), + "pct01", formatUint(pct01), + "target02", formatInt(target02), + "pct02", formatUint(pct02), + "target03", formatInt(target03), + "pct03", formatUint(pct03), + "target04", formatInt(target04), + "pct04", formatUint(pct04), ) } @@ -179,7 +179,6 @@ func transferToTarget(target int, amount uint64) { gns.Transfer(a2u(consts.STAKER_ADDR), amount) distributedToStaker += amount accuDistributedToStaker += amount - println("\t\t\t=================>[", std.GetHeight(), "] distributeToTarget : to Staker (", " : ", amount, "), accum : ", accuDistributedToStaker) case DEVOPS: gns.Transfer(a2u(consts.DEV_OPS), amount) @@ -265,7 +264,7 @@ func setDistributionBpsPct(target int, pct uint64) { if !exist { panic("should not happen") } - + if oldPct.(uint64) != pct { callbackStakerEmissionChange(calculateAmount(gns.GetEmission(), pct)) } diff --git a/contract/r/gnoswap/emission/emission.gno b/contract/r/gnoswap/emission/emission.gno index 4f0937540..c91f41b7c 100644 --- a/contract/r/gnoswap/emission/emission.gno +++ b/contract/r/gnoswap/emission/emission.gno @@ -4,8 +4,6 @@ import ( "std" "time" - "gno.land/p/demo/ufmt" - "gno.land/r/gnoswap/v1/consts" "gno.land/r/gnoswap/v1/gns" ) @@ -46,11 +44,11 @@ func MintAndDistributeGns() uint64 { "MintAndDistributeGns", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "internal_lastHeight", ufmt.Sprintf("%d", lastExecutedHeight), - "internal_height", ufmt.Sprintf("%d", currentHeight), - "internal_time", ufmt.Sprintf("%d", time.Now().Unix()), - "internal_amount", ufmt.Sprintf("%d", mintedEmissionRewardAmount), - "internal_totalSupply", ufmt.Sprintf("%d", gns.TotalSupply()), + "internal_lastHeight", formatInt(lastExecutedHeight), + "internal_height", formatInt(currentHeight), + "internal_time", formatInt(time.Now().Unix()), + "internal_amount", formatUint(mintedEmissionRewardAmount), + "internal_totalSupply", formatUint(gns.TotalSupply()), ) setLastExecutedHeight(currentHeight) diff --git a/contract/r/gnoswap/emission/utils.gno b/contract/r/gnoswap/emission/utils.gno index e5f0a9ce2..4fefbb3e7 100644 --- a/contract/r/gnoswap/emission/utils.gno +++ b/contract/r/gnoswap/emission/utils.gno @@ -2,6 +2,7 @@ package emission import ( "std" + "strconv" "gno.land/p/demo/ufmt" pusers "gno.land/p/demo/users" @@ -90,3 +91,29 @@ func assertSumDistributionPct(pct01, pct02, pct03, pct04 uint64) { )) } } + +func formatUint(v interface{}) string { + switch v := v.(type) { + case uint8: + return strconv.FormatUint(uint64(v), 10) + case uint32: + return strconv.FormatUint(uint64(v), 10) + case uint64: + return strconv.FormatUint(v, 10) + default: + panic(ufmt.Sprintf("invalid type: %T", v)) + } +} + +func formatInt(v interface{}) string { + switch v := v.(type) { + case int32: + return strconv.FormatInt(int64(v), 10) + case int64: + return strconv.FormatInt(v, 10) + case int: + return strconv.Itoa(v) + default: + panic(ufmt.Sprintf("invalid type: %T", v)) + } +} diff --git a/contract/r/gnoswap/gns/gns.gno b/contract/r/gnoswap/gns/gns.gno index 039b215ee..614da7e8b 100644 --- a/contract/r/gnoswap/gns/gns.gno +++ b/contract/r/gnoswap/gns/gns.gno @@ -2,7 +2,6 @@ package gns import ( "std" - "strconv" "strings" "gno.land/p/demo/grc/grc20" @@ -134,10 +133,10 @@ func MintGns(address pusers.AddressOrName) uint64 { "MintGNS", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "mintedBlockHeight", strconv.FormatInt(currentHeight, 10), - "mintedGNSAmount", strconv.FormatUint(amountToMint, 10), - "accumMintedGNSAmount", strconv.FormatUint(GetMintedEmissionAmount(), 10), - "accumLeftMintGNSAmount", strconv.FormatUint(GetLeftEmissionAmount(), 10), + "mintedBlockHeight", formatInt(currentHeight), + "mintedGNSAmount", formatUint(amountToMint), + "accumMintedGNSAmount", formatUint(GetMintedEmissionAmount()), + "accumLeftMintGNSAmount", formatUint(GetLeftEmissionAmount()), ) return amountToMint @@ -155,10 +154,10 @@ func Burn(from pusers.AddressOrName, amount uint64) { "Burn", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "burnedBlockHeight", strconv.FormatInt(std.GetHeight(), 10), + "burnedBlockHeight", formatInt(std.GetHeight()), "burnFrom", fromAddr.String(), - "burnedGNSAmount", strconv.FormatUint(amount, 10), - "accumBurnedGNSAmount", strconv.FormatUint(GetBurnAmount(), 10), + "burnedGNSAmount", formatUint(amount), + "accumBurnedGNSAmount", formatUint(GetBurnAmount()), ) } diff --git a/contract/r/gnoswap/gns/halving.gno b/contract/r/gnoswap/gns/halving.gno index 1593081a8..22fdad2d8 100644 --- a/contract/r/gnoswap/gns/halving.gno +++ b/contract/r/gnoswap/gns/halving.gno @@ -61,7 +61,6 @@ type HalvingData struct { amountPerBlock []uint64 } - func (h *HalvingData) getStartBlockHeight(year int64) int64 { if year == 0 { return 0 @@ -339,8 +338,8 @@ func SetAvgBlockTimeInMsByAdmin(ms int64) { "SetAvgBlockTimeInMsByAdmin", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "prevAvgBlockTimeInMs", strconv.FormatInt(prevAvgBlockTimeInMs, 10), - "avgBlockTimeInMs", strconv.FormatInt(ms, 10), + "prevAvgBlockTimeInMs", formatInt(prevAvgBlockTimeInMs), + "avgBlockTimeInMs", formatInt(ms), ) } @@ -357,8 +356,8 @@ func SetAvgBlockTimeInMs(ms int64) { "SetAvgBlockTimeInMs", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "prevAvgBlockTimeInMs", strconv.FormatInt(prevAvgBlockTimeInMs, 10), - "avgBlockTimeInMs", strconv.FormatInt(ms, 10), + "prevAvgBlockTimeInMs", formatInt(prevAvgBlockTimeInMs), + "avgBlockTimeInMs", formatInt(ms), ) } @@ -421,7 +420,6 @@ func setAvgBlockTimeInMs(ms int64) { avgBlockTimeMs = ms - } // GetAmountByHeight returns the amount of gns to mint by height diff --git a/contract/r/gnoswap/gns/utils.gno b/contract/r/gnoswap/gns/utils.gno index 894a8d2c5..9a5069d59 100644 --- a/contract/r/gnoswap/gns/utils.gno +++ b/contract/r/gnoswap/gns/utils.gno @@ -2,6 +2,7 @@ package gns import ( "std" + "strconv" "gno.land/p/demo/ufmt" pusers "gno.land/p/demo/users" @@ -64,3 +65,29 @@ func i64Min(x, y int64) int64 { func secToMs(sec int64) int64 { return sec * consts.SECOND_IN_MILLISECOND } + +func formatUint(v interface{}) string { + switch v := v.(type) { + case uint8: + return strconv.FormatUint(uint64(v), 10) + case uint32: + return strconv.FormatUint(uint64(v), 10) + case uint64: + return strconv.FormatUint(v, 10) + default: + panic(ufmt.Sprintf("invalid type: %T", v)) + } +} + +func formatInt(v interface{}) string { + switch v := v.(type) { + case int32: + return strconv.FormatInt(int64(v), 10) + case int64: + return strconv.FormatInt(v, 10) + case int: + return strconv.Itoa(v) + default: + panic(ufmt.Sprintf("invalid type: %T", v)) + } +} diff --git a/contract/r/gnoswap/gov/governance/api.gno b/contract/r/gnoswap/gov/governance/api.gno index 6e879dd2d..063c92212 100644 --- a/contract/r/gnoswap/gov/governance/api.gno +++ b/contract/r/gnoswap/gov/governance/api.gno @@ -13,8 +13,8 @@ import ( func createProposalJsonNode(id uint64, proposal ProposalInfo) *json.Node { return json.Builder(). - WriteString("id", formatUint64(id)). - WriteString("configVersion", formatUint64(proposal.ConfigVersion)). + WriteString("id", formatUint(id)). + WriteString("configVersion", formatUint(proposal.ConfigVersion)). WriteString("proposer", proposal.Proposer.String()). WriteString("status", b64Encode(getProposalStatus(id))). WriteString("type", proposal.ProposalType.String()). @@ -53,7 +53,7 @@ func GetProposalById(id uint64) string { en.MintAndDistributeGns() updateProposalsState() - _, exists := proposals.Get(formatUint64(id)) + _, exists := proposals.Get(formatUint(id)) if !exists { return "" } @@ -78,13 +78,13 @@ func GetVoteStatusFromProposalById(id uint64) string { en.MintAndDistributeGns() updateProposalsState() - _, exists := proposals.Get(formatUint64(id)) + _, exists := proposals.Get(formatUint(id)) if !exists { return "" } votesObj := metaNode() - votesObj.AppendObject("proposalId", json.StringNode("proposalId", formatUint64(id))) + votesObj.AppendObject("proposalId", json.StringNode("proposalId", formatUint(id))) votesObj.AppendObject("votes", json.StringNode("votes", b64Encode(getProposalVotes(id)))) // max, yes, no return marshal(votesObj) @@ -139,17 +139,17 @@ func GetVoteByAddressFromProposalById(addr std.Address, id uint64) string { func createVoteJsonNode(addr std.Address, id uint64, vote voteWithWeight) *json.Node { return json.Builder(). - WriteString("proposalId", formatUint64(id)). + WriteString("proposalId", formatUint(id)). WriteString("voteYes", formatBool(vote.Yes)). - WriteString("voteWeight", formatUint64(vote.Weight)). - WriteString("voteHeight", formatUint64(vote.VotedHeight)). - WriteString("voteTimestamp", formatUint64(vote.VotedAt)). + WriteString("voteWeight", formatUint(vote.Weight)). + WriteString("voteHeight", formatUint(vote.VotedHeight)). + WriteString("voteTimestamp", formatUint(vote.VotedAt)). Node() } // getProposalExtraData returns the extra data of a proposal based on its type. func getProposalExtraData(proposalId uint64) string { - proposal, exist := proposals.Get(formatUint64(proposalId)) + proposal, exist := proposals.Get(formatUint(proposalId)) if !exist { return "" } @@ -176,7 +176,7 @@ func getCommunityPoolSpendProposalData(proposalId uint64) string { proposalObj := json.Builder(). WriteString("to", proposal.CommunityPoolSpend.To.String()). WriteString("tokenPath", proposal.CommunityPoolSpend.TokenPath). - WriteString("amount", formatUint64(proposal.CommunityPoolSpend.Amount)). + WriteString("amount", formatUint(proposal.CommunityPoolSpend.Amount)). Node() return marshal(proposalObj) @@ -194,7 +194,7 @@ func getParameterChangeProposalData(proposalId uint64) string { // getProposalStatus returns the status of a proposal. func getProposalStatus(id uint64) string { - prop, exist := proposals.Get(formatUint64(id)) + prop, exist := proposals.Get(formatUint(id)) if !exist { return "" } @@ -211,27 +211,27 @@ func getProposalStatus(id uint64) string { func createProposalStateNode(state ProposalState, votingStart, votingEnd uint64) *json.Node { return json.Builder(). - WriteString("createdAt", formatUint64(state.CreatedAt)). + WriteString("createdAt", formatUint(state.CreatedAt)). WriteString("upcoming", formatBool(state.Upcoming)). WriteString("active", formatBool(state.Active)). - WriteString("votingStart", formatUint64(votingStart)). - WriteString("votingEnd", formatUint64(votingEnd)). + WriteString("votingStart", formatUint(votingStart)). + WriteString("votingEnd", formatUint(votingEnd)). WriteString("passed", formatBool(state.Passed)). - WriteString("passedAt", formatUint64(state.PassedAt)). + WriteString("passedAt", formatUint(state.PassedAt)). WriteString("rejected", formatBool(state.Rejected)). - WriteString("rejectedAt", formatUint64(state.RejectedAt)). + WriteString("rejectedAt", formatUint(state.RejectedAt)). WriteString("canceled", formatBool(state.Canceled)). - WriteString("canceledAt", formatUint64(state.CanceledAt)). + WriteString("canceledAt", formatUint(state.CanceledAt)). WriteString("executed", formatBool(state.Executed)). - WriteString("executedAt", formatUint64(state.ExecutedAt)). + WriteString("executedAt", formatUint(state.ExecutedAt)). WriteString("expired", formatBool(state.Expired)). - WriteString("expiredAt", formatUint64(state.ExpiredAt)). + WriteString("expiredAt", formatUint(state.ExpiredAt)). Node() } // getProposalVotes returns the votes of a proposal. func getProposalVotes(id uint64) string { - prop, exist := proposals.Get(formatUint64(id)) + prop, exist := proposals.Get(formatUint(id)) if !exist { return "" } @@ -240,7 +240,7 @@ func getProposalVotes(id uint64) string { maxVoting := proposal.MaxVotingWeight.ToString() proposalObj := json.Builder(). - WriteString("quorum", formatUint64(proposal.QuorumAmount)). + WriteString("quorum", formatUint(proposal.QuorumAmount)). WriteString("max", maxVoting). WriteString("yes", proposal.Yea.ToString()). WriteString("no", proposal.Nay.ToString()). diff --git a/contract/r/gnoswap/gov/governance/config.gno b/contract/r/gnoswap/gov/governance/config.gno index 54a18e1f4..bbbe756ed 100644 --- a/contract/r/gnoswap/gov/governance/config.gno +++ b/contract/r/gnoswap/gov/governance/config.gno @@ -33,11 +33,11 @@ func init() { } func setConfigVersion(v uint64, cfg Config) { - configVersions.Set(formatUint64(v), cfg) + configVersions.Set(formatUint(v), cfg) } func getConfigByVersion(v uint64) (Config, bool) { - value, exists := configVersions.Get(formatUint64(v)) + value, exists := configVersions.Get(formatUint(v)) if !exists { return Config{}, false } @@ -115,14 +115,14 @@ func reconfigure( "Reconfigure", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "votingStartDelay", formatUint64(config.VotingStartDelay), - "votingPeriod", formatUint64(config.VotingPeriod), - "votingWeightSmoothingDuration", formatUint64(config.VotingWeightSmoothingDuration), - "quorum", formatUint64(config.Quorum), - "proposalCreationThreshold", formatUint64(config.ProposalCreationThreshold), - "executionDelay", formatUint64(config.ExecutionDelay), - "executionWindow", formatUint64(config.ExecutionWindow), - "newConfigVersion", formatUint64(newVersion), + "votingStartDelay", formatUint(config.VotingStartDelay), + "votingPeriod", formatUint(config.VotingPeriod), + "votingWeightSmoothingDuration", formatUint(config.VotingWeightSmoothingDuration), + "quorum", formatUint(config.Quorum), + "proposalCreationThreshold", formatUint(config.ProposalCreationThreshold), + "executionDelay", formatUint(config.ExecutionDelay), + "executionWindow", formatUint(config.ExecutionWindow), + "newConfigVersion", formatUint(newVersion), ) return newVersion diff --git a/contract/r/gnoswap/gov/governance/execute.gno b/contract/r/gnoswap/gov/governance/execute.gno index 10884f978..7c0c5336d 100644 --- a/contract/r/gnoswap/gov/governance/execute.gno +++ b/contract/r/gnoswap/gov/governance/execute.gno @@ -107,7 +107,7 @@ func Execute(proposalId uint64) error { "Execute", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "proposalId", strconv.Itoa(int(proposalId)), + "proposalId", formatUint(proposalId), ) return nil diff --git a/contract/r/gnoswap/gov/governance/proposal.gno b/contract/r/gnoswap/gov/governance/proposal.gno index 9f037332e..a0ba8de5a 100644 --- a/contract/r/gnoswap/gov/governance/proposal.gno +++ b/contract/r/gnoswap/gov/governance/proposal.gno @@ -72,7 +72,7 @@ func ProposeText( } proposalId++ - proposals.Set(formatUint64(proposalId), proposal) + proposals.Set(formatUint(proposalId), proposal) latestProposalByProposer.Set(proposer.String(), proposalId) prevAddr, prevPkgPath := getPrev() @@ -82,11 +82,11 @@ func ProposeText( "prevRealm", prevPkgPath, "title", title, "description", description, - "proposalId", formatUint64(proposalId), + "proposalId", formatUint(proposalId), "maxVotingWeight", proposal.MaxVotingWeight.ToString(), - "createdAt", formatUint64(proposal.State.CreatedAt), - "configVersion", formatUint64(proposal.ConfigVersion), - "quorumAmount", formatUint64(proposal.QuorumAmount), + "createdAt", formatUint(proposal.State.CreatedAt), + "configVersion", formatUint(proposal.ConfigVersion), + "quorumAmount", formatUint(proposal.QuorumAmount), ) return proposalId } @@ -144,7 +144,7 @@ func ProposeCommunityPoolSpend( } proposalId++ - proposals.Set(formatUint64(proposalId), proposal) + proposals.Set(formatUint(proposalId), proposal) latestProposalByProposer.Set(proposer.String(), proposalId) prevAddr, prevRealm := getPrev() @@ -156,8 +156,8 @@ func ProposeCommunityPoolSpend( "description", description, "to", to.String(), "tokenPath", tokenPath, - "amount", formatUint64(amount), - "internal_proposalId", formatUint64(proposalId), + "amount", formatUint(amount), + "internal_proposalId", formatUint(proposalId), ) return proposalId @@ -230,7 +230,7 @@ func ProposeParameterChange( } proposalId++ - proposals.Set(formatUint64(proposalId), proposal) + proposals.Set(formatUint(proposalId), proposal) latestProposalByProposer.Set(proposer.String(), proposalId) prevAddr, prevRealm := getPrev() @@ -240,9 +240,9 @@ func ProposeParameterChange( "prevRealm", prevRealm, "title", title, "description", description, - "numToExecute", formatUint64(numToExecute), + "numToExecute", formatUint(numToExecute), "executions", executions, - "internal_proposalId", formatUint64(proposalId), + "internal_proposalId", formatUint(proposalId), ) return proposalId diff --git a/contract/r/gnoswap/gov/governance/proposal_test.gno b/contract/r/gnoswap/gov/governance/proposal_test.gno index eeb9cc173..2664d7a28 100644 --- a/contract/r/gnoswap/gov/governance/proposal_test.gno +++ b/contract/r/gnoswap/gov/governance/proposal_test.gno @@ -79,7 +79,7 @@ func TestProposeText(t *testing.T) { uassert.NoError(t, err) - prop, exists := proposals.Get(formatUint64(pid)) + prop, exists := proposals.Get(formatUint(pid)) uassert.True(t, exists) proposal := prop.(ProposalInfo) @@ -146,7 +146,7 @@ func TestProposeCommunityPoolSpend(t *testing.T) { uassert.NoError(t, err) - prop, exists := proposals.Get(formatUint64(pid)) + prop, exists := proposals.Get(fomatUint(pid)) uassert.True(t, exists) proposal := prop.(ProposalInfo) @@ -284,11 +284,11 @@ func TestUpdateProposalsState(t *testing.T) { proposals = avl.NewTree() proposal := tt.setupProposal(tt.currentTime) - proposals.Set(formatUint64(1), proposal) + proposals.Set(fomatUint(1), proposal) updateProposalsState() - updatedProposal, exists := proposals.Get(formatUint64(1)) + updatedProposal, exists := proposals.Get(fomatUint(1)) uassert.True(t, exists) tt.validate(t, updatedProposal.(ProposalInfo)) }) @@ -339,7 +339,7 @@ func TestProposeParameterChange(t *testing.T) { uassert.NoError(t, err) - prop, exists := proposals.Get(formatUint64(pid)) + prop, exists := proposals.Get(fomatUint(pid)) uassert.True(t, exists) proposal := prop.(ProposalInfo) diff --git a/contract/r/gnoswap/gov/governance/utils.gno b/contract/r/gnoswap/gov/governance/utils.gno index 4ec337e34..e0fda06ab 100644 --- a/contract/r/gnoswap/gov/governance/utils.gno +++ b/contract/r/gnoswap/gov/governance/utils.gno @@ -13,7 +13,7 @@ import ( ) func mustGetProposal(proposalId uint64) ProposalInfo { - result, exists := proposals.Get(formatUint64(proposalId)) + result, exists := proposals.Get(formatUint(proposalId)) if !exists { panic(addDetailToError( errDataNotFound, @@ -111,12 +111,17 @@ func getPrev() (string, string) { return prev.Addr().String(), prev.PkgPath() } -func formatUint64(v uint64) string { - return strconv.FormatUint(v, 10) -} - -func formatInt(v int) string { - return strconv.FormatInt(int64(v), 10) +func formatUint(v interface{}) string { + switch v := v.(type) { + case uint8: + return strconv.FormatUint(uint64(v), 10) + case uint32: + return strconv.FormatUint(uint64(v), 10) + case uint64: + return strconv.FormatUint(v, 10) + default: + panic(ufmt.Sprintf("invalid type: %T", v)) + } } func formatBool(v bool) string { diff --git a/contract/r/gnoswap/gov/governance/vote.gno b/contract/r/gnoswap/gov/governance/vote.gno index 4a3a0855e..508999301 100644 --- a/contract/r/gnoswap/gov/governance/vote.gno +++ b/contract/r/gnoswap/gov/governance/vote.gno @@ -90,7 +90,7 @@ func Vote(pid uint64, yes bool) string { panic(err) } - proposals.Set(formatUint64(pid), proposal) + proposals.Set(formatUint(pid), proposal) setVote(pid, voter.String(), yes) setUserVote(voter, pid, voteWithWeight{ @@ -105,10 +105,10 @@ func Vote(pid uint64, yes bool) string { "Vote", "prevAddr", prevAddr, "prevPkgPath", prevPkgPath, - "proposalId", formatUint64(pid), + "proposalId", formatUint(pid), "voter", voter.String(), "yes", voteToString(yes), - "voteWeight", formatUint64(state.userWeight), + "voteWeight", formatUint(state.userWeight), ) return voteKey @@ -238,13 +238,13 @@ func Cancel(proposalId uint64) { proposal.State.Upcoming = false proposal.State.Active = false - proposals.Set(formatUint64(proposalId), proposal) + proposals.Set(formatUint(proposalId), proposal) prevAddr, prevRealm := getPrev() std.Emit( "Cancel", "prevAddr", prevAddr, "prevRealm", prevRealm, - "proposalId", formatUint64(proposalId), + "proposalId", formatUint(proposalId), ) } diff --git a/contract/r/gnoswap/gov/governance/vote_test.gno b/contract/r/gnoswap/gov/governance/vote_test.gno index 546d4a6bd..877f094d9 100644 --- a/contract/r/gnoswap/gov/governance/vote_test.gno +++ b/contract/r/gnoswap/gov/governance/vote_test.gno @@ -34,7 +34,7 @@ func TestVote(t *testing.T) { name: "Successful YES vote", setup: func() uint64 { pid := uint64(1) - proposals.Set(formatUint64(pid), ProposalInfo{ + proposals.Set(fomatUint(pid), ProposalInfo{ ConfigVersion: 1, State: ProposalState{ Created: true, @@ -51,7 +51,7 @@ func TestVote(t *testing.T) { yes: true, expectError: false, validate: func(t *testing.T, voteKey string) { - prop, exists := proposals.Get(formatUint64(1)) + prop, exists := proposals.Get(fomatUint(1)) if !exists { t.Error("Proposal was not stored") return @@ -84,7 +84,7 @@ func TestVote(t *testing.T) { name: "Successful NO vote", setup: func() uint64 { pid := uint64(2) - proposals.Set(formatUint64(pid), ProposalInfo{ + proposals.Set(fomatUint(pid), ProposalInfo{ ConfigVersion: 1, State: ProposalState{ Created: true, @@ -101,7 +101,7 @@ func TestVote(t *testing.T) { yes: false, expectError: false, validate: func(t *testing.T, voteKey string) { - prop, exists := proposals.Get(formatUint64(2)) + prop, exists := proposals.Get(fomatUint(2)) if !exists { t.Error("Proposal was not stored") return @@ -115,7 +115,7 @@ func TestVote(t *testing.T) { name: "Vote before voting period starts", setup: func() uint64 { pid := uint64(3) - proposals.Set(formatUint64(pid), ProposalInfo{ + proposals.Set(fomatUint(pid), ProposalInfo{ ConfigVersion: 1, State: ProposalState{ Created: true, @@ -133,7 +133,7 @@ func TestVote(t *testing.T) { name: "Vote on canceled proposal", setup: func() uint64 { pid := uint64(5) - proposals.Set(formatUint64(pid), ProposalInfo{ + proposals.Set(fomatUint(pid), ProposalInfo{ ConfigVersion: 1, State: ProposalState{ Created: true, @@ -152,7 +152,7 @@ func TestVote(t *testing.T) { name: "Double voting attempt", setup: func() uint64 { pid := uint64(6) - proposals.Set(formatUint64(pid), ProposalInfo{ + proposals.Set(fomatUint(pid), ProposalInfo{ ConfigVersion: 1, State: ProposalState{ Created: true, diff --git a/contract/r/gnoswap/gov/staker/staker.gno b/contract/r/gnoswap/gov/staker/staker.gno index e0305230f..934c86eee 100644 --- a/contract/r/gnoswap/gov/staker/staker.gno +++ b/contract/r/gnoswap/gov/staker/staker.gno @@ -392,69 +392,6 @@ func CollectRewardFromLaunchPad(to std.Address) { } -/* -func collectEmissionReward(addr std.Address) uint64 { - emissionReward := uint64(0) - if value, exists := userEmissionReward.Get(addr.String()); exists { - emissionReward = value.(uint64) - } - - if emissionReward <= 0 { - return 0 - } - - govStakerGnsBalance := gns.BalanceOf(a2u(consts.GOV_STAKER_ADDR)) - if govStakerGnsBalance < emissionReward { - panic(addDetailToError( - errNotEnoughBalance, - ufmt.Sprintf("not enough GNS(%d) in the realm to send emission reward(%d) for user %s", govStakerGnsBalance, emissionReward, addr.String()), - )) - } - - // transfer GNS to addr - gns.Transfer(a2u(addr), emissionReward) - userEmissionReward.Set(addr.String(), uint64(0)) - - return emissionReward -} - -func collectProtocolFeeReward(addr std.Address) map[string]uint64 { - collectedFees := make(map[string]uint64) - - value, exists := userProtocolFeeReward.Get(addr.String()) - if !exists { - return collectedFees - } - - userFees := value.(*avl.Tree) - if userFees.Size() == 0 { - return collectedFees - } - - userFees.Iterate("", "", func(tokenPath string, value interface{}) bool { - amount := value.(uint64) - if amount == 0 { - return false - } - - if tokenPath == consts.WUGNOT_PATH { - if amount > 0 { - wugnot.Withdraw(amount) - banker := std.GetBanker(std.BankerTypeRealmSend) - banker.SendCoins(consts.GOV_STAKER_ADDR, addr, std.Coins{{"ugnot", int64(amount)}}) - } - } else { - transferProtocolFee(tokenPath, addr, amount) - } - - userFees.Set(tokenPath, uint64(0)) - collectedFees[tokenPath] = amount - return false - }) - - return collectedFees -} -*/ func transferProtocolFee(tokenPath string, to std.Address, amount uint64) { common.MustRegistered(tokenPath) if !to.IsValid() { diff --git a/contract/r/gnoswap/launchpad/deposit.gno b/contract/r/gnoswap/launchpad/deposit.gno index caceffb16..215b2ce20 100644 --- a/contract/r/gnoswap/launchpad/deposit.gno +++ b/contract/r/gnoswap/launchpad/deposit.gno @@ -144,10 +144,10 @@ func DepositGns(targetProjectTierId string, amount uint64) string { "prevAddr", prevAddr, "prevRealm", prevPkgPath, "targetProjectTierId", targetProjectTierId, - "amount", strconv.FormatUint(amount, 10), + "amount", formatUint(amount), "depositId", deposit.id, - "claimableHeight", strconv.FormatUint(deposit.claimableHeight, 10), - "claimableTime", strconv.FormatUint(deposit.claimableTime, 10), + "claimableHeight", formatUint(deposit.claimableHeight), + "claimableTime", formatUint(deposit.claimableTime), "tierAmountPerBlockX128", tier.TierAmountPerBlockX128().ToString(), ) diff --git a/contract/r/gnoswap/launchpad/launchpad.gno b/contract/r/gnoswap/launchpad/launchpad.gno index b7976c6dc..4de842473 100644 --- a/contract/r/gnoswap/launchpad/launchpad.gno +++ b/contract/r/gnoswap/launchpad/launchpad.gno @@ -529,13 +529,13 @@ func TransferLeftFromProjectByAdmin(projectId string, recipient std.Address) uin "projectId", projectId, "recipient", recipient.String(), "tokenPath", project.tokenPath, - "leftReward", strconv.FormatUint(projectLeftReward, 10), - "tier30Full", strconv.FormatUint(project.tiers[30].tierAmount, 10), - "tier30Left", strconv.FormatUint(project.tiers[30].tierAmount-project.tiers[30].calculatedAmount, 10), - "tier90Full", strconv.FormatUint(project.tiers[90].tierAmount, 10), - "tier90Left", strconv.FormatUint(project.tiers[90].tierAmount-project.tiers[90].calculatedAmount, 10), - "tier180Full", strconv.FormatUint(project.tiers[180].tierAmount, 10), - "tier180Left", strconv.FormatUint(project.tiers[180].tierAmount-project.tiers[180].calculatedAmount, 10), + "leftReward", formatUint(projectLeftReward), + "tier30Full", formatUint(project.tiers[30].tierAmount), + "tier30Left", formatUint(project.tiers[30].tierAmount-project.tiers[30].calculatedAmount), + "tier90Full", formatUint(project.tiers[90].tierAmount), + "tier90Left", formatUint(project.tiers[90].tierAmount-project.tiers[90].calculatedAmount), + "tier180Full", formatUint(project.tiers[180].tierAmount), + "tier180Left", formatUint(project.tiers[180].tierAmount-project.tiers[180].calculatedAmount), ) return projectLeftReward diff --git a/contract/r/gnoswap/launchpad/reward.gno b/contract/r/gnoswap/launchpad/reward.gno index a3e2e3531..f4e29e503 100644 --- a/contract/r/gnoswap/launchpad/reward.gno +++ b/contract/r/gnoswap/launchpad/reward.gno @@ -3,7 +3,6 @@ package launchpad import ( "errors" "std" - "strconv" "time" "gno.land/p/demo/ufmt" @@ -93,7 +92,7 @@ func CollectRewardByProjectId(projectId string) uint64 { "prevRealm", prevPkgPath, "projectId", projectId, "depositId", depositId, - "amount", strconv.FormatUint(rewardAmount, 10), + "amount", formatUint(rewardAmount), ) project.setTier(convertTierTypeStrToUint64(deposit.Tier()), tier) @@ -169,7 +168,7 @@ func CollectRewardByDepositId(depositId string) uint64 { "prevAddr", prevAddr, "prevRealm", prevPkgPath, "depositId", depositId, - "amount", strconv.FormatUint(rewardAmount, 10), + "amount", formatUint(rewardAmount), ) project.setTier(convertTierTypeStrToUint64(deposit.Tier()), tier) diff --git a/contract/r/gnoswap/launchpad/util.gno b/contract/r/gnoswap/launchpad/util.gno index b105cb78c..4491687b6 100644 --- a/contract/r/gnoswap/launchpad/util.gno +++ b/contract/r/gnoswap/launchpad/util.gno @@ -105,8 +105,17 @@ func getPrevPkgPath() string { } // formatUint returns the string representation of the uint64 value. -func formatUint(value uint64) string { - return strconv.FormatUint(value, 10) +func formatUint(v interface{}) string { + switch v := v.(type) { + case uint8: + return strconv.FormatUint(uint64(v), 10) + case uint32: + return strconv.FormatUint(uint64(v), 10) + case uint64: + return strconv.FormatUint(v, 10) + default: + panic(ufmt.Sprintf("invalid type: %T", v)) + } } // formatInt returns the string representation of the int64 value. diff --git a/contract/r/gnoswap/pool/pool.gno b/contract/r/gnoswap/pool/pool.gno index 67308c228..0f743dcc2 100644 --- a/contract/r/gnoswap/pool/pool.gno +++ b/contract/r/gnoswap/pool/pool.gno @@ -267,11 +267,11 @@ func setFeeProtocolInternal(feeProtocol0, feeProtocol1 uint8, eventName string) eventName, "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "feeProtocol0Old", ufmt.Sprintf("%d", feeProtocol0Old), - "feeProtocol1Old", ufmt.Sprintf("%d", feeProtocol1Old), - "feeProtocol0", ufmt.Sprintf("%d", feeProtocol0), - "feeProtocol1", ufmt.Sprintf("%d", feeProtocol1), - "internal_newFee", ufmt.Sprintf("%d", newFee), + "feeProtocol0Old", formatUint(feeProtocol0Old), + "feeProtocol1Old", formatUint(feeProtocol1Old), + "feeProtocol0", formatUint(feeProtocol0), + "feeProtocol1", formatUint(feeProtocol1), + "internal_newFee", formatUint(newFee), ) } @@ -383,7 +383,7 @@ func CollectProtocolByAdmin( "prevRealm", prevPkgPath, "token0Path", token0Path, "token1Path", token1Path, - "fee", ufmt.Sprintf("%d", fee), + "fee", formatUint(fee), "recipient", recipient.String(), "internal_amount0", amount0, "internal_amount1", amount1, @@ -421,7 +421,7 @@ func CollectProtocol( "prevRealm", prevPkgPath, "token0Path", token0Path, "token1Path", token1Path, - "fee", ufmt.Sprintf("%d", fee), + "fee", formatUint(fee), "recipient", recipient.String(), "internal_amount0", amount0, "internal_amount1", amount1, diff --git a/contract/r/gnoswap/pool/pool_manager.gno b/contract/r/gnoswap/pool/pool_manager.gno index 2248ea447..c0c6a1deb 100644 --- a/contract/r/gnoswap/pool/pool_manager.gno +++ b/contract/r/gnoswap/pool/pool_manager.gno @@ -200,7 +200,7 @@ func CreatePool( "prevRealm", prevRealm, "internal_poolPath", poolPath, "internal_tokenPath", consts.GNS_PATH, - "internal_amount", ufmt.Sprintf("%d", poolCreationFee), + "internal_amount", formatUint(poolCreationFee), ) } @@ -213,7 +213,7 @@ func CreatePool( "prevRealm", prevRealm, "token0Path", token0Path, "token1Path", token1Path, - "fee", ufmt.Sprintf("%d", fee), + "fee", formatUint(fee), "sqrtPriceX96", sqrtPriceX96, "internal_poolPath", poolPath, ) diff --git a/contract/r/gnoswap/pool/protocol_fee_pool_creation.gno b/contract/r/gnoswap/pool/protocol_fee_pool_creation.gno index c6e4e06ae..9a62d69ed 100644 --- a/contract/r/gnoswap/pool/protocol_fee_pool_creation.gno +++ b/contract/r/gnoswap/pool/protocol_fee_pool_creation.gno @@ -37,7 +37,7 @@ func SetPoolCreationFee(fee uint64) { "SetPoolCreationFee", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "fee", ufmt.Sprintf("%d", fee), + "fee", formatUint(fee), ) } @@ -59,7 +59,7 @@ func SetPoolCreationFeeByAdmin(fee uint64) { "SetPoolCreationFeeByAdmin", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "fee", ufmt.Sprintf("%d", fee), + "fee", formatUint(fee), ) } diff --git a/contract/r/gnoswap/pool/protocol_fee_withdrawal.gno b/contract/r/gnoswap/pool/protocol_fee_withdrawal.gno index 80dc72451..9471d2230 100644 --- a/contract/r/gnoswap/pool/protocol_fee_withdrawal.gno +++ b/contract/r/gnoswap/pool/protocol_fee_withdrawal.gno @@ -81,7 +81,7 @@ func HandleWithdrawalFee( "WithdrawalFee", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "lpTokenId", ufmt.Sprintf("%d", tokenId), + "lpTokenId", formatUint(tokenId), "token0Path", token0Path, "token1Path", token1Path, "internal_fee0Amount", feeAmount0.ToString(), @@ -115,7 +115,7 @@ func SetWithdrawalFee(fee uint64) { "SetWithdrawalFee", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "fee", ufmt.Sprintf("%d", fee), + "fee", formatUint(fee), ) } @@ -135,7 +135,7 @@ func SetWithdrawalFeeByAdmin(fee uint64) { "SetWithdrawalFeeByAdmin", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "fee", ufmt.Sprintf("%d", fee), + "fee", formatUint(fee), ) } diff --git a/contract/r/gnoswap/pool/swap.gno b/contract/r/gnoswap/pool/swap.gno index 83dfcf947..a6f942cae 100644 --- a/contract/r/gnoswap/pool/swap.gno +++ b/contract/r/gnoswap/pool/swap.gno @@ -114,7 +114,7 @@ func Swap( "prevAddr", prevAddr, "prevRealm", prevPkgPath, "poolPath", GetPoolPath(token0Path, token1Path, fee), - "zeroForOne", ufmt.Sprintf("%t", zeroForOne), + "zeroForOne", formatBool(zeroForOne), "amountSpecified", amountSpecified, "sqrtPriceLimitX96", sqrtPriceLimitX96, "payer", payer.String(), diff --git a/contract/r/gnoswap/pool/utils.gno b/contract/r/gnoswap/pool/utils.gno index c731d3618..9e9256c97 100644 --- a/contract/r/gnoswap/pool/utils.gno +++ b/contract/r/gnoswap/pool/utils.gno @@ -2,6 +2,7 @@ package pool import ( "std" + "strconv" "gno.land/p/demo/ufmt" pusers "gno.land/p/demo/users" @@ -275,3 +276,33 @@ func assertOnlyGovernance() { func assertOnlyRegistered(tokenPath string) { common.MustRegistered(tokenPath) } + +func formatUint(v interface{}) string { + switch v := v.(type) { + case uint8: + return strconv.FormatUint(uint64(v), 10) + case uint32: + return strconv.FormatUint(uint64(v), 10) + case uint64: + return strconv.FormatUint(v, 10) + default: + panic(ufmt.Sprintf("invalid type: %T", v)) + } +} + +func formatInt(v interface{}) string { + switch v := v.(type) { + case int32: + return strconv.FormatInt(int64(v), 10) + case int64: + return strconv.FormatInt(v, 10) + case int: + return strconv.Itoa(v) + default: + panic(ufmt.Sprintf("invalid type: %T", v)) + } +} + +func formatBool(v bool) string { + return strconv.FormatBool(v) +} diff --git a/contract/r/gnoswap/position/position.gno b/contract/r/gnoswap/position/position.gno index 4717cad33..16c766b83 100644 --- a/contract/r/gnoswap/position/position.gno +++ b/contract/r/gnoswap/position/position.gno @@ -237,12 +237,12 @@ func Mint( "Mint", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "tickLower", ufmt.Sprintf("%d", processedInput.tickLower), - "tickUpper", ufmt.Sprintf("%d", processedInput.tickUpper), + "tickLower", formatInt(processedInput.tickLower), + "tickUpper", formatInt(processedInput.tickUpper), "poolPath", processedInput.poolPath, "mintTo", mintTo.String(), "caller", caller.String(), - "lpTokenId", ufmt.Sprintf("%d", tokenId), + "lpTokenId", formatUint(tokenId), "liquidity", liquidity.ToString(), "amount0", amount0.ToString(), "amount1", amount1.ToString(), @@ -624,7 +624,7 @@ func IncreaseLiquidity( "prevRealm", prevPkgPath, "poolPath", poolPath, "caller", caller.String(), - "lpTokenId", ufmt.Sprintf("%d", tokenId), + "lpTokenId", formatUint(tokenId), "liquidity", liquidity.ToString(), "amount0", amount0.ToString(), "amount1", amount1.ToString(), @@ -783,7 +783,7 @@ func DecreaseLiquidity( "DecreaseLiquidity", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "lpTokenId", ufmt.Sprintf("%d", tokenId), + "lpTokenId", formatUint(tokenId), "removeLiquidity", liquidityStr, "internal_poolPath", poolPath, "internal_liquidity", liquidity.ToString(), @@ -791,7 +791,7 @@ func DecreaseLiquidity( "internal_fee1", fee1.ToString(), "internal_amount0", amount0.ToString(), "internal_amount1", amount1.ToString(), - "internal_unwrapResult", ufmt.Sprintf("%t", unwrapResult), + "internal_unwrapResult", formatBool(unwrapResult), "internal_sqrtPriceX96", poolSqrtPriceX96, ) @@ -981,11 +981,11 @@ func CollectFee(tokenId uint64, unwrapResult bool) (uint64, string, string, stri "CollectSwapFee", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "lpTokenId", ufmt.Sprintf("%d", tokenId), + "lpTokenId", formatUint(tokenId), "fee0", withoutFee0, "fee1", withoutFee1, "poolPath", position.poolKey, - "unwrapResult", ufmt.Sprintf("%t", unwrapResult), + "unwrapResult", formatBool(unwrapResult), ) return tokenId, withoutFee0, withoutFee1, position.poolKey, amount0, amount1 @@ -1101,14 +1101,14 @@ func Reposition( "Reposition", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "lpTokenId", ufmt.Sprintf("%d", tokenId), - "tickLower", ufmt.Sprintf("%d", tickLower), - "tickUpper", ufmt.Sprintf("%d", tickUpper), + "lpTokenId", formatUint(tokenId), + "tickLower", formatInt(tickLower), + "tickUpper", formatInt(tickUpper), "liquidity", liquidity.ToString(), "amount0", amount0.ToString(), "amount1", amount1.ToString(), - "oldTickLower", ufmt.Sprintf("%d", oldTickLower), - "oldTickUpper", ufmt.Sprintf("%d", oldTickUpper), + "oldTickLower", formatInt(oldTickLower), + "oldTickUpper", formatInt(oldTickUpper), "poolPath", position.poolKey, "sqrtPriceX96", poolSqrtPriceX96, ) diff --git a/contract/r/gnoswap/position/utils.gno b/contract/r/gnoswap/position/utils.gno index fa9f4cddd..012107392 100644 --- a/contract/r/gnoswap/position/utils.gno +++ b/contract/r/gnoswap/position/utils.gno @@ -367,3 +367,34 @@ func verifySlippageAmounts(amount0, amount1, amount0Min, amount1Min *u256.Uint) )) } } + + +func formatUint(v interface{}) string { + switch v := v.(type) { + case uint8: + return strconv.FormatUint(uint64(v), 10) + case uint32: + return strconv.FormatUint(uint64(v), 10) + case uint64: + return strconv.FormatUint(v, 10) + default: + panic(ufmt.Sprintf("invalid type: %T", v)) + } +} + +func formatInt(v interface{}) string { + switch v := v.(type) { + case int32: + return strconv.FormatInt(int64(v), 10) + case int64: + return strconv.FormatInt(v, 10) + case int: + return strconv.Itoa(v) + default: + panic(ufmt.Sprintf("invalid type: %T", v)) + } +} + +func formatBool(v bool) string { + return strconv.FormatBool(v) +} diff --git a/contract/r/gnoswap/protocol_fee/protocol_fee.gno b/contract/r/gnoswap/protocol_fee/protocol_fee.gno index 4fbd76eac..ce36e320e 100644 --- a/contract/r/gnoswap/protocol_fee/protocol_fee.gno +++ b/contract/r/gnoswap/protocol_fee/protocol_fee.gno @@ -2,6 +2,7 @@ package protocol_fee import ( "std" + "strconv" "gno.land/p/demo/avl" "gno.land/p/demo/ufmt" @@ -98,7 +99,7 @@ func setDevOpsPct(pct uint64) { "SetDevOpsPct", "prevAddr", prevAddr, "prevRealm", prevRealm, - "pct", ufmt.Sprintf("%d", pct), + "pct", strconv.FormatUint(pct, 10), ) } diff --git a/contract/r/gnoswap/router/protocol_fee_swap.gno b/contract/r/gnoswap/router/protocol_fee_swap.gno index 067a60ff2..97faa86bd 100644 --- a/contract/r/gnoswap/router/protocol_fee_swap.gno +++ b/contract/r/gnoswap/router/protocol_fee_swap.gno @@ -45,7 +45,7 @@ func SetSwapFeeByAdmin(fee uint64) { "SetSwapFeeByAdmin", "prevAddr", prevAddr, "prevRealm", prevRealm, - "fee", ufmt.Sprintf("%d", fee), + "fee", formatUint(fee), ) } @@ -68,7 +68,7 @@ func SetSwapFee(fee uint64) { "SetSwapFee", "prevAddr", prevAddr, "prevRealm", prevRealm, - "fee", ufmt.Sprintf("%d", fee), + "fee", formatUint(fee), ) } @@ -110,7 +110,7 @@ func handleSwapFee( "prevAddr", prevAddr, "prevRealm", prevRealm, "internal_tokenPath", outputToken, - "internal_amount", ufmt.Sprintf("%d", feeAmountUint64), + "internal_amount", formatUint(feeAmountUint64), ) toUserAfterProtocol := new(u256.Uint).Sub(amount, feeAmount) diff --git a/contract/r/gnoswap/router/utils.gno b/contract/r/gnoswap/router/utils.gno index 61aed1c15..972cc7ec7 100644 --- a/contract/r/gnoswap/router/utils.gno +++ b/contract/r/gnoswap/router/utils.gno @@ -215,3 +215,16 @@ func splitSingleChar(s string, sep byte) []string { result = append(result, s[start:]) return result } + +func formatUint(v interface{}) string { + switch v := v.(type) { + case uint8: + return strconv.FormatUint(uint64(v), 10) + case uint32: + return strconv.FormatUint(uint64(v), 10) + case uint64: + return strconv.FormatUint(v, 10) + default: + panic(ufmt.Sprintf("invalid type: %T", v)) + } +} diff --git a/contract/r/gnoswap/staker/external_deposit_fee.gno b/contract/r/gnoswap/staker/external_deposit_fee.gno index 725bfb4fe..dbb604981 100644 --- a/contract/r/gnoswap/staker/external_deposit_fee.gno +++ b/contract/r/gnoswap/staker/external_deposit_fee.gno @@ -45,7 +45,7 @@ func SetDepositGnsAmountByAdmin(amount uint64) { "SetDepositGnsAmountByAdmin", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "amount", ufmt.Sprintf("%d", amount), + "amount", formatUint(amount), ) } @@ -66,7 +66,7 @@ func SetDepositGnsAmount(amount uint64) { "SetDepositGnsAmount", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "amount", ufmt.Sprintf("%d", amount), + "amount", formatUint(amount), ) } diff --git a/contract/r/gnoswap/staker/manage_pool_tier_and_warmup.gno b/contract/r/gnoswap/staker/manage_pool_tier_and_warmup.gno index fc89a3e5e..24705ec71 100644 --- a/contract/r/gnoswap/staker/manage_pool_tier_and_warmup.gno +++ b/contract/r/gnoswap/staker/manage_pool_tier_and_warmup.gno @@ -43,7 +43,7 @@ func setPoolTier(poolPath string, tier uint64) { "prevAddr", prevAddr, "prevRealm", prevRealm, "poolPath", poolPath, - "tier", ufmt.Sprintf("%d", tier), + "tier", formatUint(tier), ) } @@ -74,7 +74,7 @@ func changePoolTier(poolPath string, tier uint64) { "prevAddr", prevAddr, "prevRealm", prevRealm, "poolPath", poolPath, - "tier", ufmt.Sprintf("%d", tier), + "tier", formatUint(tier), ) } @@ -132,8 +132,8 @@ func setWarmUp(pct, blockDuration int64) { "SetWarmUp", "prevAddr", prevAddr, "prevRealm", prevRealm, - "pct", ufmt.Sprintf("%d", pct), - "blockDuration", ufmt.Sprintf("%d", blockDuration), + "pct", formatUint(pct), + "blockDuration", formatInt(blockDuration), ) } diff --git a/contract/r/gnoswap/staker/protocol_fee_unstaking.gno b/contract/r/gnoswap/staker/protocol_fee_unstaking.gno index e15bb0489..5b8b0863a 100644 --- a/contract/r/gnoswap/staker/protocol_fee_unstaking.gno +++ b/contract/r/gnoswap/staker/protocol_fee_unstaking.gno @@ -57,10 +57,10 @@ func handleUnstakingFee( "ProtocolFeeInternalReward", "prevAddr", prevAddr, "prevRealm", prevRealm, - "internal_lpTokenId", ufmt.Sprintf("%d", tokenId), + "internal_lpTokenId", formatUint(tokenId), "internal_poolPath", poolPath, "internal_tokenPath", consts.GNS_PATH, - "internal_amount", ufmt.Sprintf("%d", feeAmount), + "internal_amount", formatUint(feeAmount), ) } else { // external contract has fee @@ -72,10 +72,10 @@ func handleUnstakingFee( "ProtocolFeeExternalReward", "prevAddr", prevAddr, "prevRealm", prevRealm, - "internal_lpTokenId", ufmt.Sprintf("%d", tokenId), + "internal_lpTokenId", formatUint(tokenId), "internal_poolPath", poolPath, "internal_tokenPath", tokenPath, - "internal_amount", ufmt.Sprintf("%d", feeAmount), + "internal_amount", formatUint(feeAmount), ) } @@ -112,7 +112,7 @@ func SetUnstakingFeeByAdmin(fee uint64) { "SetUnstakingFeeByAdmin", "prevAddr", prevAddr, "prevRealm", prevRealm, - "fee", ufmt.Sprintf("%d", fee), + "fee", formatUint(fee), ) } @@ -140,7 +140,7 @@ func SetUnstakingFee(fee uint64) { "SetUnstakingFee", "prevAddr", prevAddr, "prevRealm", prevRealm, - "fee", ufmt.Sprintf("%d", fee), + "fee", formatUint(fee), ) } diff --git a/contract/r/gnoswap/staker/staker.gno b/contract/r/gnoswap/staker/staker.gno index 2d16f8f2c..4aafa8243 100644 --- a/contract/r/gnoswap/staker/staker.gno +++ b/contract/r/gnoswap/staker/staker.gno @@ -302,8 +302,8 @@ func StakeToken(tokenId uint64) (string, string, string) { "amount0", token0Amount, "amount1", token1Amount, "liquidity", liquidity.ToString(), - "currentTick", strconv.FormatInt(int64(currentTick), 10), - "isInRange", strconv.FormatBool(isInRange), + "currentTick", formatInt(currentTick), + "isInRange", formatBool(isInRange), ) // positionsInternalWarmUpAmount[tokenId] = warmUpAmount{} @@ -468,19 +468,19 @@ func CollectReward(tokenId uint64, unwrapResult bool) (string, string) { "CollectReward", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "lpTokenId", strconv.FormatUint(tokenId, 10), + "lpTokenId", formatUint(tokenId), "internal_poolPath", deposit.targetPoolPath, "internal_incentiveId", "INTERNAL", "internal_rewardToken", consts.GNS_PATH, "internal_recipient", deposit.owner.String(), - "internal_reward", strconv.FormatUint(reward.Internal, 10), - "internal_toUser", strconv.FormatUint(toUser, 10), - "internal_toFee", strconv.FormatUint(reward.Internal-toUser, 10), - "internal_toPenalty", strconv.FormatUint(reward.InternalPenalty, 10), - "internal_unClaimable", strconv.FormatUint(unClaimableInternal, 10), + "internal_reward", formatUint(reward.Internal), + "internal_toUser", formatUint(toUser), + "internal_toFee", formatUint(reward.Internal-toUser), + "internal_toPenalty", formatUint(reward.InternalPenalty), + "internal_unClaimable", formatUint(unClaimableInternal), ) - return strconv.FormatUint(toUser, 10), strconv.FormatUint(reward.InternalPenalty, 10) + return formatUint(toUser), formatUint(reward.InternalPenalty) } // UnstakeToken withdraws an LP token from staking, collecting all pending rewards @@ -533,8 +533,8 @@ func UnstakeToken(tokenId uint64, unwrapResult bool) (string, string, string) { "UnstakeToken", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "lpTokenId", ufmt.Sprintf("%d", tokenId), - "unwrapResult", ufmt.Sprintf("%t", unwrapResult), + "lpTokenId", formatUint(tokenId), + "unwrapResult", formatBool(unwrapResult), "internal_poolPath", poolPath, "internal_from", deposit.owner.String(), "internal_to", consts.STAKER_ADDR.String(), @@ -584,7 +584,7 @@ func applyUnStake(tokenId uint64) { "UnstakeToken", "prevAddr", prevAddr, "prevRealm", prevPkgPath, - "lpTokenId", strconv.FormatUint(tokenId, 10), + "lpTokenId", formatUint(tokenId), "internal_poolPath", deposit.targetPoolPath, "internal_from", GetOrigPkgAddr().String(), "internal_to", deposit.owner.String(), diff --git a/contract/r/gnoswap/staker/staker_external_incentive.gno b/contract/r/gnoswap/staker/staker_external_incentive.gno index 48f981740..0345a1f45 100644 --- a/contract/r/gnoswap/staker/staker_external_incentive.gno +++ b/contract/r/gnoswap/staker/staker_external_incentive.gno @@ -132,11 +132,11 @@ func CreateExternalIncentive( "prevRealm", prevRealm, "poolPath", targetPoolPath, "rewardToken", rewardToken, - "rewardAmount", ufmt.Sprintf("%d", rewardAmount), - "startTimestamp", ufmt.Sprintf("%d", startTimestamp), - "endTimestamp", ufmt.Sprintf("%d", endTimestamp), + "rewardAmount", formatUint(rewardAmount), + "startTimestamp", formatInt(startTimestamp), + "endTimestamp", formatInt(endTimestamp), "internal_incentiveId", incentiveId, - "internal_depositGnsAmount", ufmt.Sprintf("%d", depositGnsAmount), + "internal_depositGnsAmount", formatUint(depositGnsAmount), "internal_external", "created", ) } @@ -213,8 +213,8 @@ func EndExternalIncentive(refundee std.Address, targetPoolPath, rewardToken stri "rewardToken", rewardToken, "refundee", refundee.String(), "internal_endBy", ictv.refundee.String(), - "internal_refundAmount", ufmt.Sprintf("%d", refund), - "internal_refundGnsAmount", ufmt.Sprintf("%d", ictv.depositGnsAmount), + "internal_refundAmount", formatUint(refund), + "internal_refundGnsAmount", formatUint(ictv.depositGnsAmount), "internal_incentiveId", ufmt.Sprintf("%d:%d:%s:%s", startTimestamp, endTimestamp, refundee, rewardToken), ) } diff --git a/contract/r/gnoswap/staker/utils.gno b/contract/r/gnoswap/staker/utils.gno index d55645118..64b9fe0f0 100644 --- a/contract/r/gnoswap/staker/utils.gno +++ b/contract/r/gnoswap/staker/utils.gno @@ -186,3 +186,33 @@ func isUserCall() bool { func assertOnlyNotHalted() { common.IsHalted() } + +func formatUint(v interface{}) string { + switch v := v.(type) { + case uint8: + return strconv.FormatUint(uint64(v), 10) + case uint32: + return strconv.FormatUint(uint64(v), 10) + case uint64: + return strconv.FormatUint(v, 10) + default: + panic(ufmt.Sprintf("invalid type: %T", v)) + } +} + +func formatInt(v interface{}) string { + switch v := v.(type) { + case int32: + return strconv.FormatInt(int64(v), 10) + case int64: + return strconv.FormatInt(v, 10) + case int: + return strconv.Itoa(v) + default: + panic(ufmt.Sprintf("invalid type: %T", v)) + } +} + +func formatBool(v bool) string { + return strconv.FormatBool(v) +}