diff --git a/.github/workflows/stellar-rpc.yml b/.github/workflows/stellar-rpc.yml index 8083ce160..1effd1e8f 100644 --- a/.github/workflows/stellar-rpc.yml +++ b/.github/workflows/stellar-rpc.yml @@ -104,8 +104,12 @@ jobs: # Pinned to 3367 (3589a696b), which includes stellar-core#5329 — the # fix for the QueryServer.cpp:124 contiguous-snapshot assertion that # aborted captive-core catchup on builds 3313..3366. - core_deb_version: '27.0.1-3367.3589a696b.jammy~vnext' - core_docker_img: 'stellar/unsafe-stellar-core:27.0.1-3367.3589a696b.jammy-vnext' + # + # CAP-0084: pinned to the -vnext build 3395 (4cdd2fc9e) matching + # stellar-core#5337 HEAD, so RPC integration now exercises the CAP-0084 + # muxed-contract SAC host behavior. Plain `~vnext` variant (not `~buildtests`). + core_deb_version: '27.1.1-3395.4cdd2fc9e.jammy~vnext' + core_docker_img: 'stellar/unsafe-stellar-core:27.1.1-3395.4cdd2fc9e.jammy-vnext' # integration-p25-src: # name: Integration tests (p25, core from source) diff --git a/.golangci.yml b/.golangci.yml index d5155295d..a5f204b03 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -39,6 +39,11 @@ linters: funlen: lines: 100 statements: 50 + gomoddirectives: + # SPIKE: CAP-0084 Go XDR pin (go-stellar-sdk#... unmerged). Remove this and + # the replace directive together once the upstream SDK PR is released. + replace-allow-list: + - github.com/stellar/go-stellar-sdk misspell: locale: US testifylint: diff --git a/Cargo.lock b/Cargo.lock index 7c82ea64b..2c2264d20 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -649,12 +649,6 @@ dependencies = [ "allocator-api2", ] -[[package]] -name = "hashbrown" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d" - [[package]] name = "hex" version = "0.4.3" @@ -727,7 +721,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4b0f83760fb341a774ed326568e19f5a863af4a952def8c39f9ab92fd95b88e5" dependencies = [ "equivalent", - "hashbrown 0.16.0", + "hashbrown 0.15.5", "serde", "serde_core", ] @@ -914,9 +908,9 @@ dependencies = [ "serde_json", "sha2", "soroban-env-host 27.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "soroban-env-host 27.0.0 (git+https://github.com/stellar/rs-soroban-env?rev=883fd56374fc619afaa4c4c7489563555b7173f2)", + "soroban-env-host 27.0.0 (git+https://github.com/sisuresh/rs-soroban-env?rev=26b035c00663a424a0cdc4732911d49ddb6bb26f)", "soroban-simulation 27.0.0 (registry+https://github.com/rust-lang/crates.io-index)", - "soroban-simulation 27.0.0 (git+https://github.com/stellar/rs-soroban-env?rev=883fd56374fc619afaa4c4c7489563555b7173f2)", + "soroban-simulation 27.0.0 (git+https://github.com/sisuresh/rs-soroban-env?rev=26b035c00663a424a0cdc4732911d49ddb6bb26f)", ] [[package]] @@ -1215,7 +1209,7 @@ dependencies = [ [[package]] name = "soroban-builtin-sdk-macros" version = "27.0.0" -source = "git+https://github.com/stellar/rs-soroban-env?rev=883fd56374fc619afaa4c4c7489563555b7173f2#883fd56374fc619afaa4c4c7489563555b7173f2" +source = "git+https://github.com/sisuresh/rs-soroban-env?rev=26b035c00663a424a0cdc4732911d49ddb6bb26f#26b035c00663a424a0cdc4732911d49ddb6bb26f" dependencies = [ "itertools", "proc-macro2", @@ -1237,24 +1231,24 @@ dependencies = [ "soroban-env-macros 27.0.0 (registry+https://github.com/rust-lang/crates.io-index)", "soroban-wasmi 0.31.1-soroban.20.0.1 (registry+https://github.com/rust-lang/crates.io-index)", "static_assertions", - "stellar-xdr", + "stellar-xdr 27.0.0", "wasmparser", ] [[package]] name = "soroban-env-common" version = "27.0.0" -source = "git+https://github.com/stellar/rs-soroban-env?rev=883fd56374fc619afaa4c4c7489563555b7173f2#883fd56374fc619afaa4c4c7489563555b7173f2" +source = "git+https://github.com/sisuresh/rs-soroban-env?rev=26b035c00663a424a0cdc4732911d49ddb6bb26f#26b035c00663a424a0cdc4732911d49ddb6bb26f" dependencies = [ "arbitrary", "crate-git-revision 0.0.9", "ethnum", "num-derive", "num-traits", - "soroban-env-macros 27.0.0 (git+https://github.com/stellar/rs-soroban-env?rev=883fd56374fc619afaa4c4c7489563555b7173f2)", + "soroban-env-macros 27.0.0 (git+https://github.com/sisuresh/rs-soroban-env?rev=26b035c00663a424a0cdc4732911d49ddb6bb26f)", "soroban-wasmi 0.31.1-soroban.20.0.1 (git+https://github.com/stellar/wasmi?rev=0ed3f3dee30dc41ebe21972399e0a73a41944aa0)", "static_assertions", - "stellar-xdr", + "stellar-xdr 28.0.0", "wasmparser", ] @@ -1298,7 +1292,7 @@ dependencies = [ [[package]] name = "soroban-env-host" version = "27.0.0" -source = "git+https://github.com/stellar/rs-soroban-env?rev=883fd56374fc619afaa4c4c7489563555b7173f2#883fd56374fc619afaa4c4c7489563555b7173f2" +source = "git+https://github.com/sisuresh/rs-soroban-env?rev=26b035c00663a424a0cdc4732911d49ddb6bb26f#26b035c00663a424a0cdc4732911d49ddb6bb26f" dependencies = [ "ark-bls12-381", "ark-bn254", @@ -1323,8 +1317,8 @@ dependencies = [ "sec1", "sha2", "sha3", - "soroban-builtin-sdk-macros 27.0.0 (git+https://github.com/stellar/rs-soroban-env?rev=883fd56374fc619afaa4c4c7489563555b7173f2)", - "soroban-env-common 27.0.0 (git+https://github.com/stellar/rs-soroban-env?rev=883fd56374fc619afaa4c4c7489563555b7173f2)", + "soroban-builtin-sdk-macros 27.0.0 (git+https://github.com/sisuresh/rs-soroban-env?rev=26b035c00663a424a0cdc4732911d49ddb6bb26f)", + "soroban-env-common 27.0.0 (git+https://github.com/sisuresh/rs-soroban-env?rev=26b035c00663a424a0cdc4732911d49ddb6bb26f)", "soroban-wasmi 0.31.1-soroban.20.0.1 (git+https://github.com/stellar/wasmi?rev=0ed3f3dee30dc41ebe21972399e0a73a41944aa0)", "static_assertions", "stellar-strkey", @@ -1342,21 +1336,21 @@ dependencies = [ "quote", "serde", "serde_json", - "stellar-xdr", + "stellar-xdr 27.0.0", "syn", ] [[package]] name = "soroban-env-macros" version = "27.0.0" -source = "git+https://github.com/stellar/rs-soroban-env?rev=883fd56374fc619afaa4c4c7489563555b7173f2#883fd56374fc619afaa4c4c7489563555b7173f2" +source = "git+https://github.com/sisuresh/rs-soroban-env?rev=26b035c00663a424a0cdc4732911d49ddb6bb26f#26b035c00663a424a0cdc4732911d49ddb6bb26f" dependencies = [ "itertools", "proc-macro2", "quote", "serde", "serde_json", - "stellar-xdr", + "stellar-xdr 28.0.0", "syn", ] @@ -1376,11 +1370,11 @@ dependencies = [ [[package]] name = "soroban-simulation" version = "27.0.0" -source = "git+https://github.com/stellar/rs-soroban-env?rev=883fd56374fc619afaa4c4c7489563555b7173f2#883fd56374fc619afaa4c4c7489563555b7173f2" +source = "git+https://github.com/sisuresh/rs-soroban-env?rev=26b035c00663a424a0cdc4732911d49ddb6bb26f#26b035c00663a424a0cdc4732911d49ddb6bb26f" dependencies = [ "anyhow", "rand", - "soroban-env-host 27.0.0 (git+https://github.com/stellar/rs-soroban-env?rev=883fd56374fc619afaa4c4c7489563555b7173f2)", + "soroban-env-host 27.0.0 (git+https://github.com/sisuresh/rs-soroban-env?rev=26b035c00663a424a0cdc4732911d49ddb6bb26f)", "static_assertions", "thiserror", ] @@ -1450,11 +1444,26 @@ checksum = "05ff843326969bdf1ef673dcdba94c08f4a3c8f1e58d6e6ef39b1bd4f749179a" dependencies = [ "arbitrary", "base64", - "cfg_eval", "crate-git-revision 0.0.6", "escape-bytes", "ethnum", "hex", + "sha2", + "stellar-strkey", +] + +[[package]] +name = "stellar-xdr" +version = "28.0.0" +source = "git+https://github.com/sisuresh/rs-stellar-xdr?rev=cf7fdedf7ca95fccf45c82e6829d14637c9b5e4c#cf7fdedf7ca95fccf45c82e6829d14637c9b5e4c" +dependencies = [ + "arbitrary", + "base64", + "cfg_eval", + "crate-git-revision 0.0.9", + "escape-bytes", + "ethnum", + "hex", "serde", "serde_with", "sha2", @@ -1741,7 +1750,7 @@ dependencies = [ "rand", "serde_json", "sha2", - "stellar-xdr", + "stellar-xdr 28.0.0", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index c57082fd7..b2ce00a53 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -24,8 +24,11 @@ version = "=27.0.0" # Bump the rev as rs-soroban-env evolves on its protocol-next track. [workspace.dependencies.soroban-env-host-curr] package = "soroban-env-host" -git = "https://github.com/stellar/rs-soroban-env" -rev = "883fd56374fc619afaa4c4c7489563555b7173f2" +git = "https://github.com/sisuresh/rs-soroban-env" +rev = "26b035c00663a424a0cdc4732911d49ddb6bb26f" +# `next` now pulls in CAP-0084: rs-soroban-env#1700 gates the CAP on the umbrella +# `next` (which enables stellar-xdr/cap_0084_muxed_contract), so the host's +# SCAddress match handles the new MUXED_CONTRACT arm. features = ["next"] [workspace.dependencies.soroban-simulation-prev] @@ -34,16 +37,27 @@ version = "=27.0.0" [workspace.dependencies.soroban-simulation-curr] package = "soroban-simulation" -git = "https://github.com/stellar/rs-soroban-env" -rev = "883fd56374fc619afaa4c4c7489563555b7173f2" +git = "https://github.com/sisuresh/rs-soroban-env" +rev = "26b035c00663a424a0cdc4732911d49ddb6bb26f" features = ["unstable-next-api"] [workspace.dependencies.stellar-xdr] -version = "=27.0.0" +# SPIKE: rs-stellar-xdr#552 (CAP-0084) — fork branch sisuresh/rs-stellar-xdr@p28-cap-0084. +# MUST match the git source+rev that rs-soroban-env#1700 uses, so cargo unifies +# the preflight's stellar-xdr with the host's into one package. +# Productionize -> stellar/rs-stellar-xdr merged SHA (or crates.io =28.x) once #552 lands. +git = "https://github.com/sisuresh/rs-stellar-xdr" +# Pinned to rs-stellar-xdr#552's head (cf7fded), which is exactly the rev that +# rs-soroban-env#1700 pins — env#1700 and xdr#552 heads are now aligned, so the +# "must match the git source+rev env uses" invariant holds and cargo unifies +# preflight's stellar-xdr with the host's into one package. +rev = "cf7fdedf7ca95fccf45c82e6829d14637c9b5e4c" # `type_enum` provides the `Type`/`TypeVariant` reflection enums used by # xdr2json. It was enabled by default in stellar-xdr v26 but is opt-in in v27. # `cap_0083` gates the Protocol 28 EmptyTxSet StellarValueType variant. -features = ["serde", "type_enum", "cap_0083"] +# `cap_0084_muxed_contract` gates the Protocol 28 muxed contract addresses +# (SC_ADDRESS_TYPE_MUXED_CONTRACT / struct MuxedContract / SCAddress arm). +features = ["serde", "type_enum", "cap_0083", "cap_0084_muxed_contract"] [workspace.dependencies.rand] version = "0.8.5" diff --git a/go.mod b/go.mod index d7022535d..0e93865a8 100644 --- a/go.mod +++ b/go.mod @@ -17,7 +17,7 @@ require ( github.com/sirupsen/logrus v1.9.3 github.com/spf13/cobra v1.7.0 github.com/spf13/pflag v1.0.5 - github.com/stellar/go-stellar-sdk v0.6.1-0.20260616165505-26fec7c0e891 + github.com/stellar/go-stellar-sdk v0.6.1-0.20260625060941-069643df4897 github.com/stretchr/testify v1.11.1 ) @@ -148,3 +148,9 @@ require ( gopkg.in/tylerb/graceful.v1 v1.2.15 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) + +// SPIKE (CAP-0084): the go-stellar-sdk CAP-0084 regen is not yet released, so +// pin to the fork branch sisuresh/go@p28-cap-0084 (go-stellar-sdk#5961). Remove +// this replace (and the .golangci.yml gomoddirectives allow-list) once the +// upstream SDK PR merges and the pseudo-version resolves via the module proxy. +replace github.com/stellar/go-stellar-sdk => github.com/sisuresh/go v0.0.0-20260701230520-eeca7aa4a3bc diff --git a/go.sum b/go.sum index eef6c4427..cdd91c666 100644 --- a/go.sum +++ b/go.sum @@ -415,6 +415,8 @@ github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sisuresh/go v0.0.0-20260701230520-eeca7aa4a3bc h1:WVa7+1/bWNhqwKTBIZ+yHdANMwmXDb4VOym4bn2YpME= +github.com/sisuresh/go v0.0.0-20260701230520-eeca7aa4a3bc/go.mod h1:IkcqcrE9UQi7n/1y+MxKB+7qzdjG1T2kGOD7Ss8dqjw= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= github.com/spf13/afero v1.10.0 h1:EaGW2JJh15aKOejeuJ+wpFSHnbd7GE6Wvp3TsNhb6LY= @@ -429,8 +431,6 @@ github.com/spf13/viper v1.17.0 h1:I5txKw7MJasPL/BrfkbA0Jyo/oELqVmux4pR/UxOMfI= github.com/spf13/viper v1.17.0/go.mod h1:BmMMMLQXSbcHK6KAOiFLz0l5JHrU89OdIRHvsk0+yVI= github.com/spiffe/go-spiffe/v2 v2.6.0 h1:l+DolpxNWYgruGQVV0xsfeya3CsC7m8iBzDnMpsbLuo= github.com/spiffe/go-spiffe/v2 v2.6.0/go.mod h1:gm2SeUoMZEtpnzPNs2Csc0D/gX33k1xIx7lEzqblHEs= -github.com/stellar/go-stellar-sdk v0.6.1-0.20260616165505-26fec7c0e891 h1:Y/PtLm4L4ZHLDI1dXIflRjI5pY+m+KD7FUVFM07tV+E= -github.com/stellar/go-stellar-sdk v0.6.1-0.20260616165505-26fec7c0e891/go.mod h1:IkcqcrE9UQi7n/1y+MxKB+7qzdjG1T2kGOD7Ss8dqjw= github.com/stellar/go-xdr v0.0.0-20260529210834-0bf8f4956364 h1:gOKrfuWdZ92LFlv0TAwgZ7OsWKeBsOMDlGLyFgduI1w= github.com/stellar/go-xdr v0.0.0-20260529210834-0bf8f4956364/go.mod h1:If+U9Z1W5xU97VrOgJandQT+2dN7/iOpkCrxBJEyF80= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=