Skip to content Search Apps Documentation Source Content File Folder Download Copy Actions State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

utils.gno

0.90 Kb · 37 lines
 1package staker
 2
 3import (
 4	"errors"
 5	"strconv"
 6	"strings"
 7
 8	"gno.land/p/nt/grc721/v0"
 9)
10
11// poolPathDivide splits a pool path into token addresses and fee tier.
12func poolPathDivide(poolPath string) (string, string, string) {
13	res := strings.Split(poolPath, ":")
14	if len(res) != 3 {
15		panic(errors.New(errInvalidPoolPath))
16	}
17
18	pToken0, pToken1, fee := res[0], res[1], res[2]
19	return pToken0, pToken1, fee
20}
21
22// positionIdFrom converts a uint64 position ID to grc721.TokenID.
23func positionIdFrom(positionId uint64) grc721.TokenID {
24	return grc721.TokenID(strconv.FormatUint(positionId, 10))
25}
26
27// contains checks if a string exists in a slice.
28func contains(slice []string, item string) bool {
29	// We can use strings.EqualFold here, but this function should be case-sensitive.
30	// So, it is better to compare strings directly.
31	for _, element := range slice {
32		if element == item {
33			return true
34		}
35	}
36	return false
37}