diff --git a/build.sh b/build.sh old mode 100644 new mode 100755 index f0cf841..560d85e --- a/build.sh +++ b/build.sh @@ -1 +1,5 @@ -go build -o tonutils-reverse-proxy cmd/proxy/main.go +GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o build/tonutils-reverse-proxy-linux-amd64 cmd/proxy/main.go +GOOS=linux GOARCH=arm64 go build -ldflags="-s -w" -o build/tonutils-reverse-proxy-linux-arm64 cmd/proxy/main.go +GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o build/tonutils-reverse-proxy-windows-x64.exe cmd/proxy/main.go +GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o build/tonutils-reverse-proxy-mac-amd64 cmd/proxy/main.go +GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o build/tonutils-reverse-proxy-mac-arm64 cmd/proxy/main.go diff --git a/cmd/proxy/main.go b/cmd/proxy/main.go index 2df3d6e..c80035c 100644 --- a/cmd/proxy/main.go +++ b/cmd/proxy/main.go @@ -10,6 +10,7 @@ import ( "fmt" "github.com/mdp/qrterminal/v3" "github.com/sigurn/crc16" + "github.com/ton-utils/reverse-proxy/config" "github.com/xssnick/tonutils-go/adnl" "github.com/xssnick/tonutils-go/adnl/dht" rldphttp "github.com/xssnick/tonutils-go/adnl/rldp/http" @@ -46,14 +47,16 @@ type Handler struct { func (h Handler) ServeHTTP(writer http.ResponseWriter, request *http.Request) { hdr := http.Header{} for k := range request.Header { - // exception for ton.run, make headers canonical - hdr.Set(k, request.Header.Get(k)) + // make headers canonical + for _, s := range request.Header.Values(k) { + hdr.Add(k, s) + } } request.Header = hdr log.Println("request:", request.Method, request.Host, request.RequestURI) - writer.Header().Set("Ton-Reverse-Proxy", "Tonutils Reverse Proxy v0.2.0") + writer.Header().Set("Ton-Reverse-Proxy", "Tonutils Reverse Proxy v0.3.0") h.h.ServeHTTP(writer, request) } @@ -68,9 +71,14 @@ func main() { ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) defer cancel() - netCfg, err := liteclient.GetConfigFromUrl(ctx, cfg.NetworkConfigURL) + netCfg, err := liteclient.GetConfigFromUrl(context.Background(), cfg.NetworkConfigURL) if err != nil { - panic("failed to load network config: " + err.Error()) + log.Println("failed to download ton config:", err.Error(), "; we will take it from static cache") + netCfg = &liteclient.GlobalConfig{} + if err = json.NewDecoder(bytes.NewBufferString(config.FallbackNetworkConfig)).Decode(netCfg); err != nil { + log.Println("failed to parse fallback ton config:", err.Error()) + os.Exit(1) + } } client := liteclient.NewConnectionPool() @@ -91,7 +99,7 @@ func main() { panic("failed to load network config: " + err.Error()) } - dhtClient, err := dht.NewClientFromConfig(ctx, gateway, netCfg) + dhtClient, err := dht.NewClientFromConfig(gateway, netCfg) if err != nil { panic(err) } @@ -161,7 +169,7 @@ func loadConfig() (*Config, error) { return nil, err } cfg.PrivateKey = srvKey.Seed() - cfg.NetworkConfigURL = "https://ton-blockchain.github.io/global.config.json" + cfg.NetworkConfigURL = "https://ton.org/global.config.json" cfg.ExternalIP, err = getPublicIP() if err != nil { @@ -194,7 +202,7 @@ func loadConfig() (*Config, error) { // backwards compatibility with old configs if cfg.NetworkConfigURL == "" { - cfg.NetworkConfigURL = "https://ton-blockchain.github.io/global.config.json" + cfg.NetworkConfigURL = "https://ton.org/global.config.json" } return &cfg, nil @@ -221,7 +229,7 @@ func setupDomain(client *liteclient.ConnectionPool, domain string, adnlAddr []by record, isStorage := domainInfo.GetSiteRecord() if isStorage || !bytes.Equal(record, adnlAddr) { data := domainInfo.BuildSetSiteRecordPayload(adnlAddr, false).ToBOCWithFlags(false) - args := "?bin=" + base64.URLEncoding.EncodeToString(data) + "&amount=" + tlb.MustFromTON("0.02").NanoTON().String() + args := "?bin=" + base64.URLEncoding.EncodeToString(data) + "&amount=" + tlb.MustFromTON("0.02").Nano().String() nftData, err := domainInfo.GetNFTData(context.Background()) if err != nil { diff --git a/config/fallback.go b/config/fallback.go new file mode 100644 index 0000000..120d0a1 --- /dev/null +++ b/config/fallback.go @@ -0,0 +1,464 @@ +package config + +const FallbackNetworkConfig = `{ + "@type": "config.global", + "dht": { + "@type": "dht.config.global", + "k": 6, + "a": 3, + "static_nodes": { + "@type": "dht.nodes", + "nodes": [ + { + "@type": "dht.node", + "id": { + "@type": "pub.ed25519", + "key": "6PGkPQSbyFp12esf1NqmDOaLoFA8i9+Mp5+cAx5wtTU=" + }, + "addr_list": { + "@type": "adnl.addressList", + "addrs": [ + { + "@type": "adnl.address.udp", + "ip": -1185526007, + "port": 22096 + } + ], + "version": 0, + "reinit_date": 0, + "priority": 0, + "expire_at": 0 + }, + "version": -1, + "signature": "L4N1+dzXLlkmT5iPnvsmsixzXU0L6kPKApqMdcrGP5d9ssMhn69SzHFK+yIzvG6zQ9oRb4TnqPBaKShjjj2OBg==" + }, + { + "@type": "dht.node", + "id": { + "@type": "pub.ed25519", + "key": "4R0C/zU56k+x2HGMsLWjX2rP/SpoTPIHSSAmidGlsb8=" + }, + "addr_list": { + "@type": "adnl.addressList", + "addrs": [ + { + "@type": "adnl.address.udp", + "ip": -1952265919, + "port": 14395 + } + ], + "version": 0, + "reinit_date": 0, + "priority": 0, + "expire_at": 0 + }, + "version": -1, + "signature": "0uwWyCFn2KjPnnlbSFYXLZdwIakaSgI9WyRo87J3iCGwb5TvJSztgA224A9kNAXeutOrXMIPYv1b8Zt8ImsrCg==" + }, + { + "@type": "dht.node", + "id": { + "@type": "pub.ed25519", + "key": "/YDNd+IwRUgL0mq21oC0L3RxrS8gTu0nciSPUrhqR78=" + }, + "addr_list": { + "@type": "adnl.addressList", + "addrs": [ + { + "@type": "adnl.address.udp", + "ip": -1402455171, + "port": 14432 + } + ], + "version": 0, + "reinit_date": 0, + "priority": 0, + "expire_at": 0 + }, + "version": -1, + "signature": "6+oVk6HDtIFbwYi9khCc8B+fTFceBUo1PWZDVTkb4l84tscvr5QpzAkdK7sS5xGzxM7V7YYQ6gUQPrsP9xcLAw==" + }, + { + "@type": "dht.node", + "id": { + "@type": "pub.ed25519", + "key": "DA0H568bb+LoO2LGY80PgPee59jTPCqqSJJzt1SH+KE=" + }, + "addr_list": { + "@type": "adnl.addressList", + "addrs": [ + { + "@type": "adnl.address.udp", + "ip": -1402397332, + "port": 14583 + } + ], + "version": 0, + "reinit_date": 0, + "priority": 0, + "expire_at": 0 + }, + "version": -1, + "signature": "cL79gDTrixhaM9AlkCdZWccCts7ieQYQBmPxb/R7d7zHw3bEHL8Le96CFJoB1KHu8C85iDpFK8qlrGl1Yt/ZDg==" + }, + { + "@type": "dht.node", + "id": { + "@type": "pub.ed25519", + "key": "MJr8xja0xpu9DoisFXBrkNHNx1XozR7HHw9fJdSyEdo=" + }, + "addr_list": { + "@type": "adnl.addressList", + "addrs": [ + { + "@type": "adnl.address.udp", + "ip": -2018147130, + "port": 6302 + } + ], + "version": 0, + "reinit_date": 0, + "priority": 0, + "expire_at": 0 + }, + "version": -1, + "signature": "XcR5JaWcf4QMdI8urLSc1zwv5+9nCuItSE1EDa0dSwYF15R/BtJoKU5YHA4/T8SiO18aVPQk2SL1pbhevuMrAQ==" + }, + { + "@type": "dht.node", + "id": { + "@type": "pub.ed25519", + "key": "Fhldu4zlnb20/TUj9TXElZkiEmbndIiE/DXrbGKu+0c=" + }, + "addr_list": { + "@type": "adnl.addressList", + "addrs": [ + { + "@type": "adnl.address.udp", + "ip": -2018147075, + "port": 6302 + } + ], + "version": 0, + "reinit_date": 0, + "priority": 0, + "expire_at": 0 + }, + "version": -1, + "signature": "nUGB77UAkd2+ZAL5PgInb3TvtuLLXJEJ2icjAUKLv4qIGB3c/O9k/v0NKwSzhsMP0ljeTGbcIoMDw24qf3goCg==" + }, + { + "@type": "dht.node", + "id": { + "@type": "pub.ed25519", + "key": "gzUNJnBJhdpooYCE8juKZo2y4tYDIQfoCvFm0yBr7y0=" + }, + "addr_list": { + "@type": "adnl.addressList", + "addrs": [ + { + "@type": "adnl.address.udp", + "ip": 89013260, + "port": 54390 + } + ], + "version": 0, + "reinit_date": 0, + "priority": 0, + "expire_at": 0 + }, + "version": -1, + "signature": "LCrCkjmkMn6AZHW2I+oRm1gHK7CyBPfcb6LwsltskCPpNECyBl1GxZTX45n0xZtLgyBd/bOqMPBfawpQwWt1BA==" + }, + { + "@type": "dht.node", + "id": { + "@type": "pub.ed25519", + "key": "jXiLaOQz1HPayilWgBWhV9xJhUIqfU95t+KFKQPIpXg=" + }, + "addr_list": { + "@type": "adnl.addressList", + "addrs": [ + { + "@type": "adnl.address.udp", + "ip": 94452896, + "port": 12485 + } + ], + "version": 0, + "reinit_date": 0, + "priority": 0, + "expire_at": 0 + }, + "version": -1, + "signature": "fKSZh9nXMx+YblkQXn3I/bndTD0JZ1yAtK/tXPIGruNglpe9sWMXR+8fy3YogPhLJMdjNiMom1ya+tWG7qvBAQ==" + }, + { + "@type": "dht.node", + "id": { + "@type": "pub.ed25519", + "key": "vhFPq+tgjJi+4ZbEOHBo4qjpqhBdSCzNZBdgXyj3NK8=" + }, + "addr_list": { + "@type": "adnl.addressList", + "addrs": [ + { + "@type": "adnl.address.udp", + "ip": 85383775, + "port": 36752 + } + ], + "version": 0, + "reinit_date": 0, + "priority": 0, + "expire_at": 0 + }, + "version": -1, + "signature": "kBwAIgJVkz8AIOGoZcZcXWgNmWq8MSBWB2VhS8Pd+f9LLPIeeFxlDTtwAe8Kj7NkHDSDC+bPXLGQZvPv0+wHCg==" + }, + { + "@type": "dht.node", + "id": { + "@type": "pub.ed25519", + "key": "sbsuMcdyYFSRQ0sG86/n+ZQ5FX3zOWm1aCVuHwXdgs0=" + }, + "addr_list": { + "@type": "adnl.addressList", + "addrs": [ + { + "@type": "adnl.address.udp", + "ip": 759132846, + "port": 50187 + } + ], + "version": 0, + "reinit_date": 0, + "priority": 0, + "expire_at": 0 + }, + "version": -1, + "signature": "9FJwbFw3IECRFkb9bA54YaexjDmlNBArimWkh+BvW88mjm3K2i5V2uaBPS3GubvXWOwdHLE2lzQBobgZRGMyCg==" + }, + { + "@type": "dht.node", + "id": { + "@type": "pub.ed25519", + "key": "aeMgdMdkkbkfAS4+n4BEGgtqhkf2/zXrVWWECOJ/h3A=" + }, + "addr_list": { + "@type": "adnl.addressList", + "addrs": [ + { + "@type": "adnl.address.udp", + "ip": -1481887565, + "port": 25975 + } + ], + "version": 0, + "reinit_date": 0, + "priority": 0, + "expire_at": 0 + }, + "version": -1, + "signature": "z5ogivZWpQchkS4UR4wB7i2pfOpMwX9Nd/USxinL9LvJPa+/Aw3F1AytR9FX0BqDftxIYvblBYAB5JyAmlj+AA==" + }, + { + "@type": "dht.node", + "id": { + "@type": "pub.ed25519", + "key": "rNzhnAlmtRn9rTzW6o2568S6bbOXly7ddO1olDws5wM=" + }, + "addr_list": { + "@type": "adnl.addressList", + "addrs": [ + { + "@type": "adnl.address.udp", + "ip": -2134428422, + "port": 45943 + } + ], + "version": 0, + "reinit_date": 0, + "priority": 0, + "expire_at": 0 + }, + "version": -1, + "signature": "sn/+ZfkfCSw2bHnEnv04AXX/Goyw7+StHBPQOdPr+wvdbaJ761D7hyiMNdQGbuZv2Ep2cXJpiwylnZItrwdUDg==" + } + ] + } + }, + "liteservers": [ + { + "ip": 84478511, + "port": 19949, + "id": { + "@type": "pub.ed25519", + "key": "n4VDnSCUuSpjnCyUk9e3QOOd6o0ItSWYbTnW3Wnn8wk=" + } + }, + { + "ip": 84478479, + "port": 48014, + "id": { + "@type": "pub.ed25519", + "key": "3XO67K/qi+gu3T9v8G2hx1yNmWZhccL3O7SoosFo8G0=" + } + }, + { + "ip": -2018135749, + "port": 53312, + "id": { + "@type": "pub.ed25519", + "key": "aF91CuUHuuOv9rm2W5+O/4h38M3sRm40DtSdRxQhmtQ=" + } + }, + { + "ip": -2018145068, + "port": 13206, + "id": { + "@type": "pub.ed25519", + "key": "K0t3+IWLOXHYMvMcrGZDPs+pn58a17LFbnXoQkKc2xw=" + } + }, + { + "ip": -2018145059, + "port": 46995, + "id": { + "@type": "pub.ed25519", + "key": "wQE0MVhXNWUXpWiW5Bk8cAirIh5NNG3cZM1/fSVKIts=" + } + }, + { + "ip": 1091931625, + "port": 30131, + "id": { + "@type": "pub.ed25519", + "key": "wrQaeIFispPfHndEBc0s0fx7GSp8UFFvebnytQQfc6A=" + } + }, + { + "ip": 1091931590, + "port": 47160, + "id": { + "@type": "pub.ed25519", + "key": "vOe1Xqt/1AQ2Z56Pr+1Rnw+f0NmAA7rNCZFIHeChB7o=" + } + }, + { + "ip": 1091931623, + "port": 17728, + "id": { + "@type": "pub.ed25519", + "key": "BYSVpL7aPk0kU5CtlsIae/8mf2B/NrBi7DKmepcjX6Q=" + } + }, + { + "ip": 1091931589, + "port": 13570, + "id": { + "@type": "pub.ed25519", + "key": "iVQH71cymoNgnrhOT35tl/Y7k86X5iVuu5Vf68KmifQ=" + } + }, + { + "ip": -1539021362, + "port": 52995, + "id": { + "@type": "pub.ed25519", + "key": "QnGFe9kihW+TKacEvvxFWqVXeRxCB6ChjjhNTrL7+/k=" + } + }, + { + "ip": -1539021936, + "port": 20334, + "id": { + "@type": "pub.ed25519", + "key": "gyLh12v4hBRtyBygvvbbO2HqEtgl+ojpeRJKt4gkMq0=" + } + }, + { + "ip": -1136338705, + "port": 19925, + "id": { + "@type": "pub.ed25519", + "key": "ucho5bEkufbKN1JR1BGHpkObq602whJn3Q3UwhtgSo4=" + } + }, + { + "ip": 868465979, + "port": 19434, + "id": { + "@type": "pub.ed25519", + "key": "J5CwYXuCZWVPgiFPW+NY2roBwDWpRRtANHSTYTRSVtI=" + } + }, + { + "ip": 868466060, + "port": 23067, + "id": { + "@type": "pub.ed25519", + "key": "vX8d0i31zB0prVuZK8fBkt37WnEpuEHrb7PElk4FJ1o=" + } + }, + { + "ip": -2018147130, + "port": 53560, + "id": { + "@type": "pub.ed25519", + "key": "NlYhh/xf4uQpE+7EzgorPHqIaqildznrpajJTRRH2HU=" + } + }, + { + "ip": -2018147075, + "port": 46529, + "id": { + "@type": "pub.ed25519", + "key": "jLO6yoooqUQqg4/1QXflpv2qGCoXmzZCR+bOsYJ2hxw=" + } + }, + { + "ip": 908566172, + "port": 51565, + "id": { + "@type": "pub.ed25519", + "key": "TDg+ILLlRugRB4Kpg3wXjPcoc+d+Eeb7kuVe16CS9z8=" + } + }, + { + "ip": -1185526007, + "port": 4701, + "id": { + "@type": "pub.ed25519", + "key": "G6cNAr6wXBBByWDzddEWP5xMFsAcp6y13fXA8Q7EJlM=" + } + } + ], + "validator": { + "@type": "validator.config.global", + "zero_state": { + "workchain": -1, + "shard": -9223372036854775808, + "seqno": 0, + "root_hash": "F6OpKZKqvqeFp6CQmFomXNMfMj2EnaUSOXN+Mh+wVWk=", + "file_hash": "XplPz01CXAps5qeSWUtxcyBfdAo5zVb1N979KLSKD24=" + }, + "init_block": { + "root_hash": "VpWyfNOLm8Rqt6CZZ9dZGqJRO3NyrlHHYN1k1oLbJ6g=", + "seqno": 34835953, + "file_hash": "8o12KX54BtJM8RERD1J97Qe1ZWk61LIIyXydlBnixK8=", + "workchain": -1, + "shard": -9223372036854775808 + }, + "hardforks": [ + { + "file_hash": "t/9VBPODF7Zdh4nsnA49dprO69nQNMqYL+zk5bCjV/8=", + "seqno": 8536841, + "root_hash": "08Kpc9XxrMKC6BF/FeNHPS3MEL1/Vi/fQU/C9ELUrkc=", + "workchain": -1, + "shard": -9223372036854775808 + } + ] + } +} +` diff --git a/go.mod b/go.mod index 0b566e2..652ac12 100644 --- a/go.mod +++ b/go.mod @@ -5,12 +5,12 @@ go 1.19 require ( github.com/mdp/qrterminal/v3 v3.0.0 github.com/sigurn/crc16 v0.0.0-20211026045750-20ab5afb07e3 - github.com/xssnick/tonutils-go v1.7.0 + github.com/xssnick/tonutils-go v1.8.9-0.20240125180557-86af89e735af ) require ( github.com/oasisprotocol/curve25519-voi v0.0.0-20220328075252-7dd334e3daae // indirect - golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064 // indirect - golang.org/x/sys v0.0.0-20220325203850-36772127a21f // indirect + golang.org/x/crypto v0.17.0 // indirect + golang.org/x/sys v0.15.0 // indirect rsc.io/qr v0.2.0 // indirect ) diff --git a/go.sum b/go.sum index 056a2bd..e959a91 100644 --- a/go.sum +++ b/go.sum @@ -7,68 +7,12 @@ github.com/oasisprotocol/curve25519-voi v0.0.0-20220328075252-7dd334e3daae h1:7s github.com/oasisprotocol/curve25519-voi v0.0.0-20220328075252-7dd334e3daae/go.mod h1:hVoHR2EVESiICEMbg137etN/Lx+lSrHPTD39Z/uE+2s= github.com/sigurn/crc16 v0.0.0-20211026045750-20ab5afb07e3 h1:aQKxg3+2p+IFXXg97McgDGT5zcMrQoi0EICZs8Pgchs= github.com/sigurn/crc16 v0.0.0-20211026045750-20ab5afb07e3/go.mod h1:9/etS5gpQq9BJsJMWg1wpLbfuSnkm8dPF6FdW2JXVhA= -github.com/xssnick/tonutils-go v1.4.1-0.20230104071121-ea298b3f43bf h1:7/1TG+QtY+2iShUDBrk5md2MsoQdQoDTVA0Y5wQzWqo= -github.com/xssnick/tonutils-go v1.4.1-0.20230104071121-ea298b3f43bf/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230105102919-ccef5d2df6d6 h1:+pjQm/XaGEkM8EvAIH71LYublRbQd9FHQu/QmMNlVZY= -github.com/xssnick/tonutils-go v1.4.1-0.20230105102919-ccef5d2df6d6/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230105104053-4383b5685f25 h1:j3rldNOsZcvXI5S4a11d1VGMBba6iQMbR5tFA6XePHw= -github.com/xssnick/tonutils-go v1.4.1-0.20230105104053-4383b5685f25/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230105112003-8e5bcf7996e3 h1:7YzXrjRkfi88sIFLb0zMA/ObM0zco1NNdmmkLGassXY= -github.com/xssnick/tonutils-go v1.4.1-0.20230105112003-8e5bcf7996e3/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230105125805-e2f0ce4ff0ca h1:Dipt8QfSXxOtUi4r/6hehFyFQKPFoFm7J4ylgAyVM+w= -github.com/xssnick/tonutils-go v1.4.1-0.20230105125805-e2f0ce4ff0ca/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230105130210-7dac9b385ae8 h1:aFxrX4LlLF8fFxvc63krftBIr4GniQwYtD+Qa+qpUjM= -github.com/xssnick/tonutils-go v1.4.1-0.20230105130210-7dac9b385ae8/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230105135949-07e7d310b500 h1:CYN52UHshsRqKQVTCsglpkDYeUiCiDmJ9XvBl4TYPmM= -github.com/xssnick/tonutils-go v1.4.1-0.20230105135949-07e7d310b500/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230105144157-1acc5c35ec55 h1:Xjpp89zv1j3leioWKyI/jNBoEs9RRYZLMsBt9Vqmcl4= -github.com/xssnick/tonutils-go v1.4.1-0.20230105144157-1acc5c35ec55/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230105145124-7ec08990ca0d h1:r6EyJ4FF2nkQxQoCw4rk4xWH1i5iv65w8pNMBYmI30Y= -github.com/xssnick/tonutils-go v1.4.1-0.20230105145124-7ec08990ca0d/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230105145223-b2cdf00d4217 h1:Y+FJwD3rdLnJ26AduivKzDXM24HMpdYlmOlm5yIq/es= -github.com/xssnick/tonutils-go v1.4.1-0.20230105145223-b2cdf00d4217/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230105150812-e8e62fd3c7ed h1:ceisfLz1F82Rw2ceMHjeuS0jKFmuc1zJD3X0IRC63Oc= -github.com/xssnick/tonutils-go v1.4.1-0.20230105150812-e8e62fd3c7ed/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230105200446-7b4bf40f6bc4 h1:RfKzgt+SnfUy+52bK8qhCS51VNgHKA+03Xgfh2YGnUM= -github.com/xssnick/tonutils-go v1.4.1-0.20230105200446-7b4bf40f6bc4/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230106083652-c58b9000f753 h1:b3mFOW1pzhm6ZCO0vJfsCMqPMUASZc0iKSiMXFavwCs= -github.com/xssnick/tonutils-go v1.4.1-0.20230106083652-c58b9000f753/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230109071734-fdbe878619c6 h1:tDOyRZMFTkBg8fIVsIKEzLSYi0G2LSqe/l21OHP/AeU= -github.com/xssnick/tonutils-go v1.4.1-0.20230109071734-fdbe878619c6/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230109084518-8de341ed7173 h1:MK9hEX1LIaeDBfemVGg4VsybMOxXV+x6wSnCl9Parcg= -github.com/xssnick/tonutils-go v1.4.1-0.20230109084518-8de341ed7173/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230109100406-c0dbfa18acae h1:/MrClKyZdLDOeBsnf63JMSve/VOjr7t2qnhXa4XA1ZE= -github.com/xssnick/tonutils-go v1.4.1-0.20230109100406-c0dbfa18acae/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230109121500-218a56a37064 h1:KHegLxTVABg2ooy+e/r6wyego5pYmhb7zJzoEeZMwug= -github.com/xssnick/tonutils-go v1.4.1-0.20230109121500-218a56a37064/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230109125855-ce4e62c44be4 h1:ihkJUII8dOq5SjDEt+kfg18I/5eLJrGwcKsVgEt5apc= -github.com/xssnick/tonutils-go v1.4.1-0.20230109125855-ce4e62c44be4/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230109130346-b0cd607f9ab5 h1:BkYqyX87xkZ1MmlP5SGV42lSnewJPrB2WCArPDzaVCI= -github.com/xssnick/tonutils-go v1.4.1-0.20230109130346-b0cd607f9ab5/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230111063410-3fe2a189cd60 h1:Tc9Lm9G3VGjIb29/tjKk2tgwlSFBIvnwpgGaMF6B+4U= -github.com/xssnick/tonutils-go v1.4.1-0.20230111063410-3fe2a189cd60/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230111065721-26547c5ebc1e h1:V09j1fNm1pWsdULpeTic2r16nqH00A41kBlzjurc/UA= -github.com/xssnick/tonutils-go v1.4.1-0.20230111065721-26547c5ebc1e/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.4.1-0.20230111070238-84e56fb29fc5 h1:21bO7IXo0gjG5HwkMg6VqbOMUzwP7C4eMeMFACjGuVw= -github.com/xssnick/tonutils-go v1.4.1-0.20230111070238-84e56fb29fc5/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.5.1-0.20230123133014-c4a895d57e23 h1:bJfFUtWMQC9QkdOtnQQuWmFgYHMefUyZUmQeed6MkKE= -github.com/xssnick/tonutils-go v1.5.1-0.20230123133014-c4a895d57e23/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.5.1-0.20230131083811-f2432838f9cc h1:TEyycMu6wLBthFjeBeFvPfdQwfK3LdWnJkx5iYH1TgQ= -github.com/xssnick/tonutils-go v1.5.1-0.20230131083811-f2432838f9cc/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.5.3-0.20230220100828-dbce647061b4 h1:xptXTCkdt07WLQUct8tLrzwMWYCndvdcOjoy3sa22m4= -github.com/xssnick/tonutils-go v1.5.3-0.20230220100828-dbce647061b4/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.5.3-0.20230224103525-a740f2b2aa76 h1:6W7QanatmrKV4JvoBndRC97VS8k4HKzB1io/RW3oMcM= -github.com/xssnick/tonutils-go v1.5.3-0.20230224103525-a740f2b2aa76/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.6.2 h1:K8Kp2pQ9n8i+73gCepcdf0GJnTK826ZxGWjQk4l0i4I= -github.com/xssnick/tonutils-go v1.6.2/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.6.3-0.20230423122435-b62f87f2b31f h1:tTasbzy5XTyWPGh0kY5LBcpcIMinof0aMxrM+qDMxJA= -github.com/xssnick/tonutils-go v1.6.3-0.20230423122435-b62f87f2b31f/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -github.com/xssnick/tonutils-go v1.7.0 h1:Zhmupzicy3Hf8afCnhYj+ev9g+pR9nGc18a6fLd0NiI= -github.com/xssnick/tonutils-go v1.7.0/go.mod h1:wH8ldhLueyfXW15r3MyaIq9YzA+8bzvL6UMU2BLp08g= -golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064 h1:S25/rfnfsMVgORT4/J61MJ7rdyseOZOyvLIrZEZ7s6s= -golang.org/x/crypto v0.0.0-20220321153916-2c7772ba3064/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +github.com/xssnick/tonutils-go v1.8.9-0.20240125180557-86af89e735af h1:gWcFk6S4bY1ypuVB+W4YTlaHYpOYgdlps86QQvRoU1E= +github.com/xssnick/tonutils-go v1.8.9-0.20240125180557-86af89e735af/go.mod h1:p1l1Bxdv9sz6x2jfbuGQUGJn6g5cqg7xsTp8rBHFoJY= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20220325203850-36772127a21f h1:TrmogKRsSOxRMJbLYGrB4SBbW+LJcEllYBLME5Zk5pU= -golang.org/x/sys v0.0.0-20220325203850-36772127a21f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= rsc.io/qr v0.2.0 h1:6vBLea5/NRMVTz8V66gipeLycZMl/+UlFmk8DvqQ6WY= rsc.io/qr v0.2.0/go.mod h1:IF+uZjkb9fqyeF/4tlBoynqmQxUoPfWEKh921coOuXs=