From 2a0d8d6e9de604c69ae266bd297d5819fc3181ec Mon Sep 17 00:00:00 2001 From: Abhishek Uniyal <56363630+uniyalabhishek@users.noreply.github.com> Date: Thu, 5 Feb 2026 13:19:01 +0530 Subject: [PATCH] feat: Format known addresses in staking transactions Bump oasis-core to b9d1585cbc3b. --- cmd/common/json.go | 2 ++ cmd/common/json_test.go | 26 +++++++++++++++++++ examples/account/allow-negative.out.static | 2 +- examples/account/allow-paratime.y.out | 2 +- examples/account/allow.y.out | 2 +- .../account/transfer-named-no-paratime.y.out | 2 +- examples/transaction/show-invalid.out | 2 +- examples/transaction/show-unsigned.out | 2 +- examples/transaction/show.out | 2 +- examples/transaction/sign.y.out | 2 +- go.mod | 8 +++--- go.sum | 18 ++++++------- 12 files changed, 48 insertions(+), 22 deletions(-) diff --git a/cmd/common/json.go b/cmd/common/json.go index 248f1a67..3fc32098 100644 --- a/cmd/common/json.go +++ b/cmd/common/json.go @@ -13,6 +13,7 @@ import ( "github.com/oasisprotocol/oasis-core/go/common" coreSignature "github.com/oasisprotocol/oasis-core/go/common/crypto/signature" consensusPretty "github.com/oasisprotocol/oasis-core/go/common/prettyprint" + coreStaking "github.com/oasisprotocol/oasis-core/go/staking/api" "github.com/oasisprotocol/oasis-sdk/client-sdk/go/config" "github.com/oasisprotocol/oasis-sdk/client-sdk/go/crypto/signature" "github.com/oasisprotocol/oasis-sdk/client-sdk/go/types" @@ -191,6 +192,7 @@ func PrettyPrintWithTxDetails(npa *NPASelection, prefix string, blob interface{} ctx = context.WithValue(ctx, types.ContextKeyAccountNames, addrCtx.Names) ctx = context.WithValue(ctx, types.ContextKeyAccountEthMap, addrCtx.Eth) + ctx = context.WithValue(ctx, coreStaking.ContextKeyAccountNames, coreStaking.AccountNames(addrCtx.Names)) // Set up chain context for signature verification during pretty-printing. coreSignature.UnsafeResetChainContext() diff --git a/cmd/common/json_test.go b/cmd/common/json_test.go index d33ac6fb..c8fe1230 100644 --- a/cmd/common/json_test.go +++ b/cmd/common/json_test.go @@ -8,10 +8,12 @@ import ( "github.com/stretchr/testify/require" "github.com/oasisprotocol/oasis-core/go/common/quantity" + consensusStaking "github.com/oasisprotocol/oasis-core/go/staking/api" sdkConfig "github.com/oasisprotocol/oasis-sdk/client-sdk/go/config" sdkSignature "github.com/oasisprotocol/oasis-sdk/client-sdk/go/crypto/signature" "github.com/oasisprotocol/oasis-sdk/client-sdk/go/modules/accounts" + sdkTesting "github.com/oasisprotocol/oasis-sdk/client-sdk/go/testing" "github.com/oasisprotocol/oasis-sdk/client-sdk/go/types" ) @@ -53,3 +55,27 @@ func TestPrettyPrintWithTxDetails_PreservesUnnamedEthTo(t *testing.T) { require.Contains(out, "To: "+ethAddr.Hex()+" ("+to.String()+")") } + +func TestPrettyPrint_FormatsStakingAllowBeneficiary(t *testing.T) { + require := require.New(t) + + npa := &NPASelection{ + NetworkName: "testnet", + Network: &sdkConfig.Network{ + ChainContext: "test-chain-context", + Denomination: sdkConfig.DenominationInfo{ + Symbol: "TEST", + Decimals: 9, + }, + }, + } + + tx := consensusStaking.NewAllowTx(0, nil, &consensusStaking.Allow{ + Beneficiary: sdkTesting.Bob.Address.ConsensusAddress(), + AmountChange: *quantity.NewFromUint64(10), + }) + + out := PrettyPrint(npa, "", tx) + + require.Contains(out, "Beneficiary: test:bob ("+sdkTesting.Bob.Address.String()+")") +} diff --git a/examples/account/allow-negative.out.static b/examples/account/allow-negative.out.static index 749efa5e..ff69b76b 100644 --- a/examples/account/allow-negative.out.static +++ b/examples/account/allow-negative.out.static @@ -1,7 +1,7 @@ You are about to sign the following transaction: Method: staking.Allow Body: - Beneficiary: oasis1qpl4axynedmdrrgrg7dpw3yxc4a8crevr5dkuksl + Beneficiary: logan (oasis1qpl4axynedmdrrgrg7dpw3yxc4a8crevr5dkuksl) Amount change: -10.0 TEST Nonce: 0 Fee: diff --git a/examples/account/allow-paratime.y.out b/examples/account/allow-paratime.y.out index 9c5a91f5..f6b22928 100644 --- a/examples/account/allow-paratime.y.out +++ b/examples/account/allow-paratime.y.out @@ -1,7 +1,7 @@ You are about to sign the following transaction: Method: staking.Allow Body: - Beneficiary: oasis1qqczuf3x6glkgjuf0xgtcpjjw95r3crf7y2323xd + Beneficiary: paratime:sapphire (oasis1qqczuf3x6glkgjuf0xgtcpjjw95r3crf7y2323xd) Amount change: +10.0 TEST Nonce: 2 Fee: diff --git a/examples/account/allow.y.out b/examples/account/allow.y.out index 2c3ea136..c4a314b8 100644 --- a/examples/account/allow.y.out +++ b/examples/account/allow.y.out @@ -1,7 +1,7 @@ You are about to sign the following transaction: Method: staking.Allow Body: - Beneficiary: oasis1qpl4axynedmdrrgrg7dpw3yxc4a8crevr5dkuksl + Beneficiary: logan (oasis1qpl4axynedmdrrgrg7dpw3yxc4a8crevr5dkuksl) Amount change: +10.0 TEST Nonce: 2 Fee: diff --git a/examples/account/transfer-named-no-paratime.y.out b/examples/account/transfer-named-no-paratime.y.out index 58136449..37a7c654 100644 --- a/examples/account/transfer-named-no-paratime.y.out +++ b/examples/account/transfer-named-no-paratime.y.out @@ -1,7 +1,7 @@ You are about to sign the following transaction: Method: staking.Transfer Body: - To: oasis1qp87hflmelnpqhzcqcw8rhzakq4elj7jzv090p3e + To: oscar (oasis1qp87hflmelnpqhzcqcw8rhzakq4elj7jzv090p3e) Amount: 2.5 TEST Nonce: 0 Fee: diff --git a/examples/transaction/show-invalid.out b/examples/transaction/show-invalid.out index 1c614808..74f5ae09 100644 --- a/examples/transaction/show-invalid.out +++ b/examples/transaction/show-invalid.out @@ -5,7 +5,7 @@ Signer: NcPzNW3YU2T+ugNUtUWtoQnRvbOL9dYSaBfbjHLP1pE= Content: Method: staking.Transfer Body: - To: oasis1qrydpazemvuwtnp3efm7vmfvg3tde044qg6cxwzx + To: test:bob (oasis1qrydpazemvuwtnp3efm7vmfvg3tde044qg6cxwzx) Amount: 1.0 ROSE Nonce: 1 Fee: diff --git a/examples/transaction/show-unsigned.out b/examples/transaction/show-unsigned.out index fae60b02..b3cc724d 100644 --- a/examples/transaction/show-unsigned.out +++ b/examples/transaction/show-unsigned.out @@ -1,6 +1,6 @@ Method: staking.Transfer Body: - To: oasis1qrydpazemvuwtnp3efm7vmfvg3tde044qg6cxwzx + To: test:bob (oasis1qrydpazemvuwtnp3efm7vmfvg3tde044qg6cxwzx) Amount: 1.0 TEST Nonce: 32 Fee: diff --git a/examples/transaction/show.out b/examples/transaction/show.out index ee6bb9dc..4c9d8308 100644 --- a/examples/transaction/show.out +++ b/examples/transaction/show.out @@ -4,7 +4,7 @@ Signer: NcPzNW3YU2T+ugNUtUWtoQnRvbOL9dYSaBfbjHLP1pE= Content: Method: staking.Transfer Body: - To: oasis1qrydpazemvuwtnp3efm7vmfvg3tde044qg6cxwzx + To: test:bob (oasis1qrydpazemvuwtnp3efm7vmfvg3tde044qg6cxwzx) Amount: 1.0 TEST Nonce: 1 Fee: diff --git a/examples/transaction/sign.y.out b/examples/transaction/sign.y.out index 4f8c16f2..20258cb5 100644 --- a/examples/transaction/sign.y.out +++ b/examples/transaction/sign.y.out @@ -1,7 +1,7 @@ You are about to sign the following transaction: Method: staking.Transfer Body: - To: oasis1qrydpazemvuwtnp3efm7vmfvg3tde044qg6cxwzx + To: test:bob (oasis1qrydpazemvuwtnp3efm7vmfvg3tde044qg6cxwzx) Amount: 1.0 TEST Nonce: 32 Fee: diff --git a/go.mod b/go.mod index 6e619919..87ad044f 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/oasisprotocol/cli -go 1.25.4 +go 1.25.5 replace github.com/cometbft/cometbft => github.com/oasisprotocol/cometbft v0.37.15-oasis1 @@ -18,7 +18,7 @@ require ( github.com/oasisprotocol/curve25519-voi v0.0.0-20251114093237-2ab5a27a1729 github.com/oasisprotocol/deoxysii v0.0.0-20220228165953-2091330c22b7 github.com/oasisprotocol/metadata-registry-tools v0.0.0-20220406100644-7e9a2b991920 - github.com/oasisprotocol/oasis-core/go v0.2509.0 + github.com/oasisprotocol/oasis-core/go v0.2509.1-0.20260209145049-b9d1585cbc3b github.com/oasisprotocol/oasis-sdk/client-sdk/go v0.16.1 github.com/olekukonko/tablewriter v1.1.2 github.com/opencontainers/image-spec v1.1.1 @@ -56,7 +56,7 @@ require ( github.com/clipperhouse/stringish v0.1.1 // indirect github.com/clipperhouse/uax29/v2 v2.3.0 // indirect github.com/cloudflare/circl v1.3.7 // indirect - github.com/cometbft/cometbft v0.37.16 // indirect + github.com/cometbft/cometbft v0.37.18 // indirect github.com/consensys/gnark-crypto v0.18.0 // indirect github.com/crate-crypto/go-eth-kzg v1.4.0 // indirect github.com/crate-crypto/go-ipa v0.0.0-20240724233137-53bbb0ceb27a // indirect @@ -101,7 +101,7 @@ require ( github.com/klauspost/compress v1.18.0 // indirect github.com/klauspost/cpuid/v2 v2.2.10 // indirect github.com/libp2p/go-buffer-pool v0.1.0 // indirect - github.com/libp2p/go-libp2p v0.44.0 // indirect + github.com/libp2p/go-libp2p v0.46.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mattn/go-runewidth v0.0.19 // indirect diff --git a/go.sum b/go.sum index 8e4b4a7e..6e62e147 100644 --- a/go.sum +++ b/go.sum @@ -183,8 +183,6 @@ github.com/flynn/noise v1.1.0 h1:KjPQoQCEFdZDiP03phOvGi11+SVVhBG2wOWAorLsstg= github.com/flynn/noise v1.1.0/go.mod h1:xbMo+0i6+IGbYdJhF31t2eR1BIU0CYc12+BNAKwUTag= github.com/foxboron/go-uefi v0.0.0-20241017190036-fab4fdf2f2f3 h1:K8ADp66ulnZ0NhjzwVwE4E3g6Id5KMWu86l0vURusA8= github.com/foxboron/go-uefi v0.0.0-20241017190036-fab4fdf2f2f3/go.mod h1:ffg/fkDeOYicEQLoO2yFFGt00KUTYVXI+rfnc8il6vQ= -github.com/francoispqt/gojay v1.2.13 h1:d2m3sFjloqoIUQU3TsHBgj6qg/BVGlTBeHDUmyJnXKk= -github.com/francoispqt/gojay v1.2.13/go.mod h1:ehT5mTG4ua4581f1++1WLG0vPdaA9HaiDsoyrBGkyDY= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= @@ -352,8 +350,8 @@ github.com/libp2p/go-buffer-pool v0.1.0 h1:oK4mSFcQz7cTQIfqbe4MIj9gLW+mnanjyFtc6 github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QTWy5HSiZacSbPg= github.com/libp2p/go-flow-metrics v0.2.0 h1:EIZzjmeOE6c8Dav0sNv35vhZxATIXWZg6j/C08XmmDw= github.com/libp2p/go-flow-metrics v0.2.0/go.mod h1:st3qqfu8+pMfh+9Mzqb2GTiwrAGjIPszEjZmtksN8Jc= -github.com/libp2p/go-libp2p v0.44.0 h1:5Gtt8OrF8yiXmH+Mx4+/iBeFRMK1TY3a8OrEBDEqAvs= -github.com/libp2p/go-libp2p v0.44.0/go.mod h1:NovCojezAt4dnDd4fH048K7PKEqH0UFYYqJRjIIu8zc= +github.com/libp2p/go-libp2p v0.46.0 h1:0T2yvIKpZ3DVYCuPOFxPD1layhRU486pj9rSlGWYnDM= +github.com/libp2p/go-libp2p v0.46.0/go.mod h1:TbIDnpDjBLa7isdgYpbxozIVPBTmM/7qKOJP4SFySrQ= github.com/libp2p/go-libp2p-asn-util v0.4.1 h1:xqL7++IKD9TBFMgnLPZR6/6iYhawHKHl950SO9L6n94= github.com/libp2p/go-libp2p-asn-util v0.4.1/go.mod h1:d/NI6XZ9qxw67b4e+NgpQexCIiFYJjErASrYW4PFDN8= github.com/libp2p/go-msgio v0.3.0 h1:mf3Z8B1xcFN314sWX+2vOTShIE0Mmn2TXn3YCUQGNj0= @@ -430,8 +428,8 @@ github.com/oasisprotocol/deoxysii v0.0.0-20220228165953-2091330c22b7 h1:1102pQc2 github.com/oasisprotocol/deoxysii v0.0.0-20220228165953-2091330c22b7/go.mod h1:UqoUn6cHESlliMhOnKLWr+CBH+e3bazUPvFj1XZwAjs= github.com/oasisprotocol/metadata-registry-tools v0.0.0-20220406100644-7e9a2b991920 h1:rugJRYKamNl6WGBaU+b0wLQFkYcsnBr0ycX5QmB+AYU= github.com/oasisprotocol/metadata-registry-tools v0.0.0-20220406100644-7e9a2b991920/go.mod h1:MKr/giwakLyCCjSWh0W9Pbaf7rDD1K96Wr57OhNoUK0= -github.com/oasisprotocol/oasis-core/go v0.2509.0 h1:M8r/jGqtE2ZYU6bUKruNM8/9YLQnDx2l1+TaAN5tj60= -github.com/oasisprotocol/oasis-core/go v0.2509.0/go.mod h1:QtRUjSse8fqAF1TeWMn1SZlTtmkNBFJw8u4Q7OdXiqM= +github.com/oasisprotocol/oasis-core/go v0.2509.1-0.20260209145049-b9d1585cbc3b h1:KptgddqUkt6emLYmepC0ZzHi6NYlwqZniJD929xWIPY= +github.com/oasisprotocol/oasis-core/go v0.2509.1-0.20260209145049-b9d1585cbc3b/go.mod h1:rMXPp8STFOaDewqosy7D1OKNkAB3d0hTtgBsMK6E4F8= github.com/oasisprotocol/oasis-sdk/client-sdk/go v0.16.1 h1:nYd83QOnWavxAOiltVAsaOhVze+NLrYLlY2Ioll89io= github.com/oasisprotocol/oasis-sdk/client-sdk/go v0.16.1/go.mod h1:XWVBXiDxjr39P5Q1DdliPD80G6eduTaf83IZWefBau0= github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= @@ -516,10 +514,10 @@ github.com/prometheus/common v0.65.0 h1:QDwzd+G1twt//Kwj/Ww6E9FQq1iVMmODnILtW1t2 github.com/prometheus/common v0.65.0/go.mod h1:0gZns+BLRQ3V6NdaerOhMbwwRbNh9hkGINtQAsP5GS8= github.com/prometheus/procfs v0.16.1 h1:hZ15bTNuirocR6u0JZ6BAHHmwS1p8B4P6MRqxtzMyRg= github.com/prometheus/procfs v0.16.1/go.mod h1:teAbpZRB1iIAJYREa1LsoWUXykVXA1KlTmWl8x/U+Is= -github.com/quic-go/qpack v0.5.1 h1:giqksBPnT/HDtZ6VhtFKgoLOWmlyo9Ei6u9PqzIMbhI= -github.com/quic-go/qpack v0.5.1/go.mod h1:+PC4XFrEskIVkcLzpEkbLqq1uCoxPhQuvK5rH1ZgaEg= -github.com/quic-go/quic-go v0.55.0 h1:zccPQIqYCXDt5NmcEabyYvOnomjs8Tlwl7tISjJh9Mk= -github.com/quic-go/quic-go v0.55.0/go.mod h1:DR51ilwU1uE164KuWXhinFcKWGlEjzys2l8zUl5Ss1U= +github.com/quic-go/qpack v0.6.0 h1:g7W+BMYynC1LbYLSqRt8PBg5Tgwxn214ZZR34VIOjz8= +github.com/quic-go/qpack v0.6.0/go.mod h1:lUpLKChi8njB4ty2bFLX2x4gzDqXwUpaO1DP9qMDZII= +github.com/quic-go/quic-go v0.57.1 h1:25KAAR9QR8KZrCZRThWMKVAwGoiHIrNbT72ULHTuI10= +github.com/quic-go/quic-go v0.57.1/go.mod h1:ly4QBAjHA2VhdnxhojRsCUOeJwKYg+taDlos92xb1+s= github.com/quic-go/webtransport-go v0.9.0 h1:jgys+7/wm6JarGDrW+lD/r9BGqBAmqY/ssklE09bA70= github.com/quic-go/webtransport-go v0.9.0/go.mod h1:4FUYIiUc75XSsF6HShcLeXXYZJ9AGwo/xh3L8M/P1ao= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=