diff --git a/packages/Cargo.lock b/packages/Cargo.lock index 4a7f2ba..c30e20c 100644 --- a/packages/Cargo.lock +++ b/packages/Cargo.lock @@ -552,11 +552,45 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "cardano-serialization-lib" +version = "13.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a060cf6912878c0132ce9ac8577eb62f151ba8f00fe2e75a57f85260c696e421" +dependencies = [ + "bech32 0.7.3", + "cbor_event", + "cfg-if", + "clear_on_drop", + "cryptoxide", + "digest 0.9.0", + "ed25519-bip32", + "getrandom", + "hashlink", + "hex", + "itertools 0.10.5", + "js-sys", + "noop_proc_macro", + "num", + "num-bigint", + "num-derive", + "num-integer", + "num-traits", + "rand", + "rand_os", + "schemars", + "serde", + "serde-wasm-bindgen 0.4.5", + "serde_json", + "sha2 0.9.9", + "wasm-bindgen", +] + [[package]] name = "cardano-serialization-lib-json-schema-gen" version = "0.0.1" dependencies = [ - "cardano-serialization-lib", + "cardano-serialization-lib 12.0.1", "schemars", "serde_json", ] @@ -2644,9 +2678,9 @@ dependencies = [ [[package]] name = "sidan-csl-rs" -version = "0.9.3" +version = "0.9.4" dependencies = [ - "cardano-serialization-lib", + "cardano-serialization-lib 13.1.0", "cryptoxide", "getrandom", "hex", @@ -3258,7 +3292,7 @@ dependencies = [ [[package]] name = "whisky" -version = "0.9.3" +version = "0.9.4" dependencies = [ "async-trait", "cryptoxide", @@ -3283,7 +3317,7 @@ dependencies = [ [[package]] name = "whisky-examples" -version = "0.9.3" +version = "0.9.4" dependencies = [ "actix-cors", "actix-web", diff --git a/packages/Cargo.toml b/packages/Cargo.toml index 88be690..e70be8d 100644 --- a/packages/Cargo.toml +++ b/packages/Cargo.toml @@ -1,5 +1,5 @@ [workspace] -version = "0.9.3" +version = "0.9.4" resolver = "2" members = [ "sidan-csl-rs", diff --git a/packages/sidan-csl-rs/Cargo.toml b/packages/sidan-csl-rs/Cargo.toml index e921824..23c86c9 100644 --- a/packages/sidan-csl-rs/Cargo.toml +++ b/packages/sidan-csl-rs/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "sidan-csl-rs" -version = "0.9.3" +version = "0.9.4" edition = "2021" license = "Apache-2.0" description = "Wrapper around the cardano-serialization-lib for easier transaction building, heavily inspired by cardano-cli APIs" @@ -10,7 +10,7 @@ crate-type = ["cdylib", "rlib"] [dependencies] getrandom = { version = "0.2", features = ["js"] } -cardano-serialization-lib = "=12.0.1" +cardano-serialization-lib = "=13.1.0" hex = "0.4" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" diff --git a/packages/sidan-csl-rs/src/core/core_csl.rs b/packages/sidan-csl-rs/src/core/core_csl.rs index 09d4b2c..73176a2 100644 --- a/packages/sidan-csl-rs/src/core/core_csl.rs +++ b/packages/sidan-csl-rs/src/core/core_csl.rs @@ -217,7 +217,12 @@ impl MeshCSL { &csl::TransactionHash::from_hex(&ref_input.tx_hash)?, ref_input.tx_index, ); - self.tx_builder.add_reference_input(&csl_ref_input); + if ref_input.script_size.is_some() { + self.tx_builder + .add_script_reference_input(&csl_ref_input, ref_input.script_size.unwrap()); + } else { + self.tx_builder.add_reference_input(&csl_ref_input); + } Ok(()) } diff --git a/packages/sidan-csl-rs/src/model/tx_builder_types/tx_in.rs b/packages/sidan-csl-rs/src/model/tx_builder_types/tx_in.rs index 29e218e..9801ff9 100644 --- a/packages/sidan-csl-rs/src/model/tx_builder_types/tx_in.rs +++ b/packages/sidan-csl-rs/src/model/tx_builder_types/tx_in.rs @@ -20,6 +20,7 @@ pub enum TxIn { pub struct RefTxIn { pub tx_hash: String, pub tx_index: u32, + pub script_size: Option, } #[derive(Clone, Debug, PartialEq, Serialize, Deserialize)] diff --git a/packages/sidan-csl-rs/src/wasm/txbuilder.rs b/packages/sidan-csl-rs/src/wasm/txbuilder.rs index 88aff6c..58e60f2 100644 --- a/packages/sidan-csl-rs/src/wasm/txbuilder.rs +++ b/packages/sidan-csl-rs/src/wasm/txbuilder.rs @@ -41,9 +41,9 @@ pub fn js_serialize_tx_body(tx_builder_body_json: &str, params_json: &str) -> Wa #[test] fn test_js_serialize_tx_body() { - // let tx_builder_body_json = r#"{"inputs":[{"scriptTxIn":{"txIn":{"txHash":"72a934097270cfdf8cdc445deba5928a004c52c78cbfe94c0024d4f043cc0e77","txIndex":0,"amount":[{"unit":"lovelace","quantity":"1017160"}],"address":"addr_test1wrw35u9mkg76cj0h3npuu4d5zjc3kyl57kyx460cu6zu93gpjj7h0"},"scriptTxIn":{"scriptSource":{"providedScriptSource":{"scriptCbor":"59032759032401010033333323232323232322322322322322322533300c323232323253323301230013013375400426464646464a66602e66e1d20000011533301a301937540102a0042c2a66602e600c0022a66603460326ea8020540085854ccc05ccdc3a40080022a66603460326ea8020540085854ccc05ccdc3a400c0022a66603460326ea8020540085858c05cdd5003899191929919980c99b87480000104cc008dd59801980d9baa00c30013301d375202a97ae01533301930080041330023756600660366ea8030c004cc074dd4809a5eb8054ccc064cdc3a40080082660046eacc00cc06cdd500618009980e9ba90114bd7009919299980d99198008009bac3021302230223022302200322533302000114a0264a66603c66e3cdd7181180100e0a511330030030013023001100114a064a66603c002294054ccc078c0840044c8c8c94ccc078cdc79bae30230030141533301e3371e002038266e1c009200114a02940dd7181118118011bad302130223022001375860400022940c8cc004004dd5981000111299980f8008a5eb804c8ccc888c8cc00400400c894ccc094004400c4c8cc09cdd3998139ba90063302730240013302730250014bd7019801801981480118138009bae301e0013756603e0026600600660460046042002603e603e603e603e60366ea8030dd2a400444646600200200644a66603c00229404c94ccc070cdd7802180e98108010a5113300300300130210012301c301d301d301d301d301d301d0013016375400c60326034004603000260286ea8008dc3a40042c602a602c004602800260280046024002601c6ea800452613656375c0026eb8004dd70009bae001375c002ae6955ceaab9e5573eae815d0aba24c011e581cd161d64eef0eeb59f9124f520f8c8f3b717ed04198d54c8b17e604ae004c011e581c3dc7e4d31bf34d68a822712c47bbf544d74c22fe2350ae7bb51a3f02004c011e581c3dc7e4d31bf34d68a822712c47bbf544d74c22fe2350ae7bb51a3f02004c011e581c18c154376a49c965027adb6afbe97ce43c96a2f9b8bf0eaf9ff15851004c011e581ccc0932775ffd17eba5738509ad28e45637b3d3d45d182d5f1fbf9fe20001","languageVersion":"v3"}},"datumSource":{"inlineDatumSource":{"txHash":"72a934097270cfdf8cdc445deba5928a004c52c78cbfe94c0024d4f043cc0e77","txIndex":0}},"redeemer":{"data":"d87980","exUnits":{"mem":7000000,"steps":3000000000}}}}},{"pubKeyTxIn":{"txIn":{"txHash":"3c05db00dfec497ce870faaa67e6176f8e08352689bee93e203c12cc800c3ebc","txIndex":4,"amount":[{"unit":"lovelace","quantity":"106756821"}],"address":"addr_test1qrgkr4jwau8wkk0ezf84yruv3uahzlksgxvd2nytzlnqft4x8s2nlvl23f82fut92a82jytnw4k7p0esygk2p626vjdqu58u9n"}}}],"outputs":[],"collaterals":[{"txIn":{"txHash":"3c05db00dfec497ce870faaa67e6176f8e08352689bee93e203c12cc800c3ebc","txIndex":0,"amount":[{"unit":"lovelace","quantity":"5000000"}],"address":"addr_test1qrgkr4jwau8wkk0ezf84yruv3uahzlksgxvd2nytzlnqft4x8s2nlvl23f82fut92a82jytnw4k7p0esygk2p626vjdqu58u9n"}}],"requiredSignatures":["d161d64eef0eeb59f9124f520f8c8f3b717ed04198d54c8b17e604ae","5ca51b304b1f79d92eada8c58c513e969458dcd27ce4f5bc47823ffa"],"referenceInputs":[{"txHash":"8d68748457cd0f1a8596f41fd2125a415315897d2da4a4b94335829cee7198ae","txIndex":0}],"mints":[],"changeAddress":"addr_test1qrgkr4jwau8wkk0ezf84yruv3uahzlksgxvd2nytzlnqft4x8s2nlvl23f82fut92a82jytnw4k7p0esygk2p626vjdqu58u9n","metadata":[],"validityRange":{"invalidBefore":null,"invalidHereafter":null},"certificates":[],"signingKey":[],"withdrawals":[{"plutusScriptWithdrawal":{"address":"stake_test17q7u0exnr0e5669gyfcjc3am74zdwnpzlc34ptnmk5dr7qszs53fr","coin":0,"scriptSource":{"inlineScriptSource":{"refTxIn":{"txHash":"f75b8c0ce490b11ba002bc7ed483119665eb8b52d9a11afb0b4a448ca2663d52","txIndex"#; - let tx_builder_body_json = r#"{"inputs":[{"pubKeyTxIn":{"txIn":{"txHash":"5b0145fe7b0212a7807e7dba24997049374d965f587300a2039b73cd30806c78","txIndex":1,"amount":[{"unit":"lovelace","quantity":"1132923230"}],"address":"addr_test1qq0yavv5uve45rwvfaw96qynrqt8ckpmkwcg08vlwxxdncxk82f5wz75mzaesmqzl79xqsmedwgucwtuav5str6untqqmykcpn"}}}],"outputs":[{"address":"addr_test1wpnlxv2xv9a9ucvnvzqakwepzl9ltx7jzgm53av2e9ncv4sysemm8","amount":[{"unit":"lovelace","quantity":"1600000"}],"datum":{"hash":{"type":"Mesh","content":"supersecret"}},"referenceScript":null}],"collaterals":[{"txIn":{"txHash":"ec0c2e70b898cf531b03c9db937602e98c45378d9fa8e8a5b5a91ec5c1d7540d","txIndex":5,"amount":[{"unit":"lovelace","quantity":"5000000"}],"address":"addr_test1qq0yavv5uve45rwvfaw96qynrqt8ckpmkwcg08vlwxxdncxk82f5wz75mzaesmqzl79xqsmedwgucwtuav5str6untqqmykcpn"}}],"requiredSignatures":[],"referenceInputs":[],"mints":[],"changeAddress":"addr_test1qq0yavv5uve45rwvfaw96qynrqt8ckpmkwcg08vlwxxdncxk82f5wz75mzaesmqzl79xqsmedwgucwtuav5str6untqqmykcpn","metadata":[],"validityRange":{"invalidBefore":null,"invalidHereafter":null},"certificates":[],"signingKey":[],"withdrawals":[]}"#; - let params_json = r#"{"epoch":0,"coinsPerUtxoSize":0,"priceMem":0,"priceStep":0,"minFeeA":0,"minFeeB":0,"keyDeposit":2000000,"maxTxSize":16384,"maxValSize":5000,"poolDeposit":500000000,"maxCollateralInputs":3,"decentralisation":0,"maxBlockSize":65536,"collateralPercent":150,"maxBlockHeaderSize":1100,"minPoolCost":"340000000","maxTxExMem":"14000000","maxTxExSteps":"10000000000","maxBlockExMem":"62000000","maxBlockExSteps":"20000000000","minFeeRefScriptCostPerByte":15}"#; - let tx_build_result = js_serialize_tx_body(tx_builder_body_json, params_json); + let mesh_tx_builder_body_json = r#"{"inputs":[{"pubKeyTxIn":{"txIn":{"txHash":"e637646b721e730e7f8f1336cb46736c796d069e4af9b5ad175f3805fd4253ef","txIndex":0,"amount":[{"unit":"lovelace","quantity":"3008380"}],"address":"addr_test1vpvx0sacufuypa2k4sngk7q40zc5c4npl337uusdh64kv0c7e4cxr"}}},{"pubKeyTxIn":{"txIn":{"txHash":"bb5c5a24c7bbfb819e5560e73b5bfa22982cb2bced632eb25d6ee7ed5a6b6e60","txIndex":1,"amount":[{"unit":"lovelace","quantity":"47321359"}],"address":"addr_test1qpvx0sacufuypa2k4sngk7q40zc5c4npl337uusdh64kv0uafhxhu32dys6pvn6wlw8dav6cmp4pmtv7cc3yel9uu0nq93swx9"}}}],"outputs":[{"address":"addr_test1vpvx0sacufuypa2k4sngk7q40zc5c4npl337uusdh64kv0c7e4cxr","amount":[],"datum":null,"referenceScript":{"providedScriptSource":{"scriptCbor":"5906d05906cd01010032323232323232253330023232323232533233008300130093754004264646464646464a66601e60060022a66602460226ea8028540085854ccc03cc02000454ccc048c044dd50050a8010b0a9998079802000899191919299980b180c8010a8030b1bae30170013017002375c602a00260226ea802854ccc03ccdc3a400c0022a66602460226ea8028540085858c03cdd5004899191919192999809180318099baa008132323232323232323232323232323232323232323232325333029301d00713333001019011300200f4800854ccc0a4c08801c4cccc004064034c00802d2002132533302a301f00813232323232325333033303600213253330313026303237540022646464a6660686050606a6ea800c4c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc12cc1380084cc0540444cc0540344cc05401c4c94ccc124c8cc004004cc138dd4815198271ba90294bd701129998270008a51132533304c3302303b375c60a20042660060060022940c144004400452819baf0173232323232323230223305330540073305330540063305330540053305330540043305330540033305330540023305330540013305330543055001330533752048660a66ea408d2f5c060a800260a600260a400260a200260a0002609e00260946ea80d858dd7182600098260011bae304a001304a002375a60900026090004608c002608c0046eb8c110004c110008dd698210009821001182000098200011bae303e001303e002303c001303c002375c6074002606c6ea800c58894ccc0d4c0a4c0d8dd5001099191919299981e181f80109980380189919299981d9817800899192999820182180109919299981f981980089919299982218238010998078008a8020b182280098209baa0031533303f303800113232323232325333048304b0021500816375a609200260920046eb4c11c004c11c008dd6982280098209baa00316303f37540042a0082c6082002607a6ea800c54ccc0ecc0d000454ccc0f8c0f4dd50018a8010b0b181d9baa0021500516303d001303d002303b001303737540042c4464a66606a605200226464a666074607a0042a0082c6eb8c0ec004c0dcdd50018a99981a981700089919299981d181e8010a8020b1bae303b001303737540062c606a6ea8008c0d8c0ccdd50008b181a981b181b18191baa001163034001323300100102122533303300114bd70099192999819299981919baf3037303437540040382605664a666066605860686ea8004520001375a6070606a6ea8004c94ccc0ccc0b0c0d0dd50008a60103d87a80001323300100137566072606c6ea8008894ccc0e0004530103d87a800013232323253330393372291100002153330393371e9101000021300c3303d375000297ae014c0103d87a8000133006006003375a60740066eb8c0e0008c0f0008c0e8004c8cc004004dd5981c181c981a9baa00322533303700114c103d87a80001323232325333038337220480042a66607066e3c0900084c02ccc0f0dd3000a5eb80530103d87a8000133006006003375660720066eb8c0dc008c0ec008c0e400452809981b00119802002000899802002000981b801181a8009ba548000dd7181898190011bae3030001302c375404a2a666054660020320122666600403402c91100480045281119198008008019129998180008a50132533302e3371e6eb8c0cc008010528899801801800981980091111929998180008a50153330303033001132323253330303371e6eb8c0d400c01c54ccc0c0cdc7800803099b8700200514a02940dd7181a181a8011bad303330343034001375860640022940c8cc004004014894ccc0c400452f5c0264666444646600200200644a66606e0022006264660726e9ccc0e4dd48031981c981b0009981c981b800a5eb80cc00c00cc0ec008c0e4004dd718180009bab30310013300300330350023033001232337140029101012900337149110a5265676973747279202800330020013300400148008c0040048894ccc0a0c0840044cdc599b80002481812210013371666e00cdc1801000a40c066600600666e18008004cdc1800a40286002002444a66604c66e2000920141001133300300333706004900a19b8200148050c08cdd500e9bae30263027002375c604a002604a0046eb4c08c004c08cc08c008dd7181080098108011bad301f001301f301f002375c603a002603a004603600260360046eb8c064004c054dd5000980b980a1baa008163758602c602e602e602e602e0046eacc054004c054c054008dd618098009809980998079baa00a370e90001b8748010c03cc040008c038004c028dd50011b874800858c02cc030008c028004c028008c020004c010dd50008a4c26cacae6955ceaab9e5573eae815d0aba201","languageVersion":"v3"}}}],"collaterals":[],"requiredSignatures":[],"referenceInputs":[],"mints":[],"changeAddress":"addr_test1qpvx0sacufuypa2k4sngk7q40zc5c4npl337uusdh64kv0uafhxhu32dys6pvn6wlw8dav6cmp4pmtv7cc3yel9uu0nq93swx9","metadata":[],"validityRange":{"invalidBefore":null,"invalidHereafter":null},"certificates":[],"signingKey":[],"withdrawals":[],"votes":[],"network":"preprod"}"#; + // let mesh_tx_builder_body_json = r#"{"inputs":[{"pubKeyTxIn":{"txIn":{"txHash":"5b0145fe7b0212a7807e7dba24997049374d965f587300a2039b73cd30806c78","txIndex":1,"amount":[{"unit":"lovelace","quantity":"1132923230"}],"address":"addr_test1qq0yavv5uve45rwvfaw96qynrqt8ckpmkwcg08vlwxxdncxk82f5wz75mzaesmqzl79xqsmedwgucwtuav5str6untqqmykcpn"}}}],"outputs":[{"address":"addr_test1wpnlxv2xv9a9ucvnvzqakwepzl9ltx7jzgm53av2e9ncv4sysemm8","amount":[{"unit":"lovelace","quantity":"1600000"}],"datum":{"hash":{"type":"Mesh","content":"supersecret"}},"referenceScript":null}],"collaterals":[{"txIn":{"txHash":"ec0c2e70b898cf531b03c9db937602e98c45378d9fa8e8a5b5a91ec5c1d7540d","txIndex":5,"amount":[{"unit":"lovelace","quantity":"5000000"}],"address":"addr_test1qq0yavv5uve45rwvfaw96qynrqt8ckpmkwcg08vlwxxdncxk82f5wz75mzaesmqzl79xqsmedwgucwtuav5str6untqqmykcpn"}}],"requiredSignatures":[],"referenceInputs":[],"mints":[],"changeAddress":"addr_test1qq0yavv5uve45rwvfaw96qynrqt8ckpmkwcg08vlwxxdncxk82f5wz75mzaesmqzl79xqsmedwgucwtuav5str6untqqmykcpn","metadata":[],"validityRange":{"invalidBefore":null,"invalidHereafter":null},"certificates":[],"signingKey":[],"withdrawals":[]}"#; + let params_json = r#"{"epoch":0,"coinsPerUtxoSize":4310,"priceMem":0.0577,"priceStep":0.0000721,"minFeeA":44,"minFeeB":155381,"keyDeposit":2000000,"maxTxSize":16384,"maxValSize":5000,"poolDeposit":500000000,"maxCollateralInputs":3,"decentralisation":0,"maxBlockSize":65536,"collateralPercent":150,"maxBlockHeaderSize":1100,"minPoolCost":"340000000","maxTxExMem":"14000000","maxTxExSteps":"10000000000","maxBlockExMem":"62000000","maxBlockExSteps":"20000000000","minFeeRefScriptCostPerByte":15}"#; + let tx_build_result = js_serialize_tx_body(mesh_tx_builder_body_json, params_json); println!("{:?}", tx_build_result); } diff --git a/packages/sidan-csl-rs/tests/transaction_tests.rs b/packages/sidan-csl-rs/tests/transaction_tests.rs index 8e9d142..266fb44 100644 --- a/packages/sidan-csl-rs/tests/transaction_tests.rs +++ b/packages/sidan-csl-rs/tests/transaction_tests.rs @@ -113,7 +113,7 @@ mod transaction_tests { let signing_keys = ["5820010f2ecd1312019694f7cc3bba11cdc386ed320906881cd0a3a8ca05988882ba"]; let signed_tx = sign_transaction("84a30081825820616733c08d8e5846b2669f78074c6c0d1e0e63ec8ef33acbe573aff1f622748e010182a200581d70a67529ee536a0dc1cd6d138ac6644baa11a0858bb32a46b1e9834a97011a001e8480a200581d602aa80698b309b95c849a426edc5b600b8fe6cf2598bc14a3b444bdfd011b0000000253c9cc4e021a00028759a0f5f6", &signing_keys).unwrap(); println!("{}", signed_tx); - assert!(signed_tx == "84a30081825820616733c08d8e5846b2669f78074c6c0d1e0e63ec8ef33acbe573aff1f622748e010182a200581d70a67529ee536a0dc1cd6d138ac6644baa11a0858bb32a46b1e9834a97011a001e8480a200581d602aa80698b309b95c849a426edc5b600b8fe6cf2598bc14a3b444bdfd011b0000000253c9cc4e021a00028759a10081825820f444bd136f6b12767072dc541571412479280efd367335afcf15c5ddf09a98335840ea5ac790a6f75d47da28b13d55021c234ec961f81e35d5b9c447055377c70b066fb28a7e2c01978439712cc85d42f5e00b8c07b6b2b8f36d87178de6ee6d4e02f5f6") + assert!(signed_tx == "84a30081825820616733c08d8e5846b2669f78074c6c0d1e0e63ec8ef33acbe573aff1f622748e010182a200581d70a67529ee536a0dc1cd6d138ac6644baa11a0858bb32a46b1e9834a97011a001e8480a200581d602aa80698b309b95c849a426edc5b600b8fe6cf2598bc14a3b444bdfd011b0000000253c9cc4e021a00028759a100d9010281825820f444bd136f6b12767072dc541571412479280efd367335afcf15c5ddf09a98335840ea5ac790a6f75d47da28b13d55021c234ec961f81e35d5b9c447055377c70b066fb28a7e2c01978439712cc85d42f5e00b8c07b6b2b8f36d87178de6ee6d4e02f5f6") } #[test] diff --git a/packages/whisky-examples/Cargo.toml b/packages/whisky-examples/Cargo.toml index 4e04d9d..3e1db95 100644 --- a/packages/whisky-examples/Cargo.toml +++ b/packages/whisky-examples/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "whisky-examples" -version = "0.9.3" +version = "0.9.4" edition = "2021" license = "Apache-2.0" description = "The Cardano Rust SDK, inspired by MeshJS" @@ -13,4 +13,4 @@ path = "src/server.rs" actix-cors = "0.7.0" actix-web = "4.9.0" serde = "1.0.209" -whisky = { version = "=0.9.3", path = "../whisky" } +whisky = { version = "=0.9.4", path = "../whisky" } diff --git a/packages/whisky/Cargo.toml b/packages/whisky/Cargo.toml index 9c4f823..944d9e3 100644 --- a/packages/whisky/Cargo.toml +++ b/packages/whisky/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "whisky" -version = "0.9.3" +version = "0.9.4" edition = "2021" license = "Apache-2.0" description = "The Cardano Rust SDK, inspired by MeshJS" @@ -24,7 +24,7 @@ pallas-codec = { version = "0.30.2", features = ["num-bigint"] } pallas-primitives = "0.30.2" pallas-traverse = "0.30.2" maestro-rust-sdk = "1.1.3" -sidan-csl-rs = { version = "=0.9.3", path = "../sidan-csl-rs" } +sidan-csl-rs = { version = "=0.9.4", path = "../sidan-csl-rs" } reqwest = "0.12.5" tokio = { version = "1.38.0", features = ["macros", "rt-multi-thread"] } diff --git a/packages/whisky/src/builder/certificate.rs b/packages/whisky/src/builder/certificate.rs index 5cc21a5..2d787c8 100644 --- a/packages/whisky/src/builder/certificate.rs +++ b/packages/whisky/src/builder/certificate.rs @@ -537,6 +537,8 @@ impl TxBuilder { ref_tx_in: RefTxIn { tx_hash: tx_hash.to_string(), tx_index, + // Script size is already accounted for in script source + script_size: None, }, script_hash: script_hash.to_string(), language_version: lang_ver, @@ -552,6 +554,8 @@ impl TxBuilder { ref_tx_in: RefTxIn { tx_hash: tx_hash.to_string(), tx_index, + // Script size is already accounted for in script source + script_size: None, }, simple_script_hash: script_hash.to_string(), script_size, @@ -569,6 +573,8 @@ impl TxBuilder { ref_tx_in: RefTxIn { tx_hash: tx_hash.to_string(), tx_index, + // Script size is already accounted for in script source + script_size: None, }, script_hash: script_hash.to_string(), language_version: lang_ver, diff --git a/packages/whisky/src/builder/mint.rs b/packages/whisky/src/builder/mint.rs index 8537eee..2504aa5 100644 --- a/packages/whisky/src/builder/mint.rs +++ b/packages/whisky/src/builder/mint.rs @@ -178,6 +178,8 @@ impl TxBuilder { ref_tx_in: RefTxIn { tx_hash: tx_hash.to_string(), tx_index, + // Script size is already accounted for in script source + script_size: None, }, script_hash: script_hash.to_string(), language_version: self @@ -194,6 +196,8 @@ impl TxBuilder { ref_tx_in: RefTxIn { tx_hash: tx_hash.to_string(), tx_index, + // Script size is already accounted for in script source + script_size: None, }, simple_script_hash: script_hash.to_string(), script_size, diff --git a/packages/whisky/src/builder/tx_in.rs b/packages/whisky/src/builder/tx_in.rs index 97cd4d6..7f905a6 100644 --- a/packages/whisky/src/builder/tx_in.rs +++ b/packages/whisky/src/builder/tx_in.rs @@ -282,7 +282,7 @@ impl TxBuilder { /// * `tx_hash` - The transaction hash /// * `tx_index` - The transaction index /// * `script_hash` - The spending script hash - /// * `scrip_size` - Size of the script + /// * `script_size` - Size of the script /// /// ### Returns /// @@ -310,6 +310,8 @@ impl TxBuilder { ref_tx_in: RefTxIn { tx_hash: tx_hash.to_string(), tx_index, + // Script size is already accounted for in script source + script_size: None, }, script_hash: script_hash.to_string(), language_version: self @@ -358,17 +360,24 @@ impl TxBuilder { /// /// * `tx_hash` - The transaction hash /// * `tx_index` - The transaction index + /// * `script_size` - The size of the script contained at the reference input (None if it doesn't contain a script) /// /// ### Returns /// /// * `Self` - The TxBuilder instance - pub fn read_only_tx_in_reference(&mut self, tx_hash: &str, tx_index: u32) -> &mut Self { + pub fn read_only_tx_in_reference( + &mut self, + tx_hash: &str, + tx_index: u32, + script_size: Option, + ) -> &mut Self { self.core .tx_builder_body .reference_inputs .push(RefTxIn { tx_hash: tx_hash.to_string(), tx_index, + script_size, }); self } diff --git a/packages/whisky/src/builder/vote.rs b/packages/whisky/src/builder/vote.rs index ed73e56..297ec0c 100644 --- a/packages/whisky/src/builder/vote.rs +++ b/packages/whisky/src/builder/vote.rs @@ -95,6 +95,8 @@ impl TxBuilder { ref_tx_in: RefTxIn { tx_hash: tx_hash.to_string(), tx_index, + // Script size is already accounted for in script source + script_size: None, }, simple_script_hash: vote_script_hash.to_string(), script_size, @@ -107,6 +109,8 @@ impl TxBuilder { ref_tx_in: RefTxIn { tx_hash: tx_hash.to_string(), tx_index, + // Script size is already accounted for in script source + script_size: None, }, script_hash: vote_script_hash.to_string(), language_version: self diff --git a/packages/whisky/src/builder/withdrawal.rs b/packages/whisky/src/builder/withdrawal.rs index c3eb959..39323fe 100644 --- a/packages/whisky/src/builder/withdrawal.rs +++ b/packages/whisky/src/builder/withdrawal.rs @@ -94,6 +94,7 @@ impl TxBuilder { ref_tx_in: RefTxIn { tx_hash: tx_hash.to_string(), tx_index, + script_size: None, }, simple_script_hash: withdrawal_script_hash.to_string(), script_size, @@ -106,6 +107,8 @@ impl TxBuilder { ref_tx_in: RefTxIn { tx_hash: tx_hash.to_string(), tx_index, + // Script size is already accounted for in script source + script_size: None, }, script_hash: withdrawal_script_hash.to_string(), language_version: self diff --git a/packages/whisky/tests/integration_tests.rs b/packages/whisky/tests/integration_tests.rs index 6925e2a..0fb6b23 100644 --- a/packages/whisky/tests/integration_tests.rs +++ b/packages/whisky/tests/integration_tests.rs @@ -65,6 +65,7 @@ mod int_tests { .read_only_tx_in_reference( "8b7ea04a142933b3d8005bf98be906bdba10978891593b383deac933497e2ea7", 1, + None, ) .mint_plutus_script_v2() .mint(1, cns_policy_id, domain_with_ext) @@ -452,7 +453,7 @@ mod int_tests { steps: 44400485 }}) .withdrawal_tx_in_reference("e4e94d4369b5a1b6366d468bf01bf4d332d29abd8061889e6d80fc5074248ed1", 0, "237948b06719bdca9c9ae03c7d9f70a070514758a4fb4514ba2c2ecb", 953) - .read_only_tx_in_reference("d3e7e43ec9c85cfdb90f98fb40bb4edd58fdd3d056e32f827739fe0b915c6eb7", 0) + .read_only_tx_in_reference("d3e7e43ec9c85cfdb90f98fb40bb4edd58fdd3d056e32f827739fe0b915c6eb7", 0, None) .change_address("addr_test1qqjcvv7huxlf9epjq49j4952pez8l4zyrm6c4wrf2vtcym4jg6fd5d54p0k5mqy46ph5z3r59tkhnhjvsxx53dq5rvdsnaeh3a") .tx_in_collateral("3fbdf2b0b4213855dd9b87f7c94a50cf352ba6edfdded85ecb22cf9ceb75f814", 7, &[Asset::new_from_str("lovelace", "10000000")], "addr_test1vpw22xesfv0hnkfw4k5vtrz386tfgkxu6f7wfadug7prl7s6gt89x") .required_signer_hash("258633d7e1be92e432054b2a968a0e447fd4441ef58ab8695317826e") @@ -573,7 +574,8 @@ mod int_tests { ) .vote(&Voter::DRepId("drep1j6257gz2swty9ut46lspyvujkt02pd82am2zq97p7p9pv2euzs7".to_string()), &RefTxIn { tx_hash: "2cb57168ee66b68bd04a0d595060b546edf30c04ae1031b883c9ac797967dd85".to_string(), - tx_index: 2 + tx_index: 2, + script_size: None, }, &VotingProcedure { vote_kind: VoteKind::Abstain, anchor: Some(Anchor { @@ -609,7 +611,8 @@ mod int_tests { ) .vote(&Voter::ConstitutionalCommitteeHotCred(Credential::KeyHash("e3a4c41d67592a1b8d87c62e5c5d73f7e8db836171945412d13f40f8".to_string())), &RefTxIn { tx_hash: "2cb57168ee66b68bd04a0d595060b546edf30c04ae1031b883c9ac797967dd85".to_string(), - tx_index: 2 + tx_index: 2, + script_size: None }, &VotingProcedure { vote_kind: VoteKind::Abstain, anchor: Some(Anchor { diff --git a/packages/whisky/tests/tx_builder.rs b/packages/whisky/tests/tx_builder.rs index 1b7bc3b..503e026 100644 --- a/packages/whisky/tests/tx_builder.rs +++ b/packages/whisky/tests/tx_builder.rs @@ -220,6 +220,7 @@ mod tx_builder_core_tests { .read_only_tx_in_reference( "8b7ea04a142933b3d8005bf98be906bdba10978891593b383deac933497e2ea7", 1, + None, ); }