BlockchainTransactionSign (for Cardano)
BlockchainTransactionSign[obj,key]
指定された秘密鍵を使ってカルダノブロックチェーントランザクションにデジタル署名する.
BlockchainTransactionSign[obj,{key1,key2,…}]
すべての鍵 keyiを使ってトランザクションにデジタル署名する.
詳細
- 指定された秘密鍵を使ってカルダノブロックチェーントランザクションにデジタル署名する.
- BlockchainTransactionSign[obj,…]の obj はBlockchainTransactionオブジェクトである.
- BlockchainTransactionSignの鍵はPrivateKeyオブジェクトまたは秘密鍵を表す16進文字列でなければならない.
- BlockchainTransactionSignは,"Signed"特性の値としてTrueを持ち,追加特性とし"RawTransaction"を持つ,ブロックチェーントランザクションオブジェクトを返す.
例題
すべて開く すべて閉じる例 (1)
tx = BlockchainTransaction[<|
"Inputs" -> {
<|"TransactionID" -> "3cdc4c717fe0afc9719773d98bcb8bb973812609ae0a2a830bb92d92f0db54d8",
"Index" -> 0, "Amount" -> Quantity[10000000000, "CardanoLovelace"]|>
},
"Outputs" -> {
<|"Address" ->
"addr_test1vp849fern55cadj000n0ax200nvquaakutj4ahm3u6e2w2cyfnzpj",
"Amount" -> Quantity[1000000, "CardanoLovelace"]|>,
<|"Address" ->
"addr_test1vpyz5dxamauqdp60rgccfk47wkjsfyjnysqhhf04lpm063q8jq6nd",
"Amount" -> Quantity[9998800000, "CardanoLovelace"]|>
}
|>, BlockchainBase -> {"Cardano", "Testnet"}]PrivateKeyオブジェクトでトランザクションに署名する:
txSigned = BlockchainTransactionSign[tx, PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["CRb9/wGYfz5oZz8YQhKxvM84LHcukkkzB7z0zhuDqCQ="],
"PublicByteArray" -> ByteArray["WtEsLpoqZKvaNXCf3YEpB9EmCJbnQKtJCbLYANvXhc0="],
"PublicCurvePoint" ->
{46044890113541898896789348031293752076859711315152255740866360947115689145633,
35064569780309060437152448873386050273669255408446259663428204734187639198042}]]]スコープ (1)
複数の鍵の署名 (1)
カルダノトランザクションに複数の鍵で署名する.各鍵は1つの入力に対応する:
tx = BlockchainTransaction[<|
"Inputs" -> {<|"TransactionID" -> "2cb5254f4cc09224917e0519cd41e1eb5a737ca4b0b4cf51b5ae8e15a73aa009", "Index" -> 0, "Amount" -> Quantity[1500000, "CardanoLovelace"], "Tokens" -> {<|"AssetName" -> "736f6d6e6f6c656e6365", "PolicyID" -> "0b6c95869314d1de35460f61e861fa64873b627a4fbf386520f064b2", "Quantity" -> 110000|>}, "DatumHash" -> Missing["NotAvailable"]|>,
<|"TransactionID" -> "6660af2b1740c709f11092c47e04e79216b552b4148a360cfc2d8d5bc4cc5dd8", "Index" -> 2, "Amount" -> Quantity[503637826, "CardanoLovelace"], "Tokens" -> {}, "DatumHash" -> Missing["NotAvailable"]|>},
"Outputs" -> {
<|"Address" -> "addr_test1vzq2hvd64u5kzmaauu256p56y83ssugkgtqns7486d3kl0s8q5vkt", "Amount" -> Quantity[1500000, "CardanoLovelace"], "Tokens" -> {<|"AssetName" -> "736f6d6e6f6c656e6365", "PolicyID" -> "0b6c95869314d1de35460f61e861fa64873b627a4fbf386520f064b2", "Quantity" -> 55000|>} |>,
<|"Address" -> "addr_test1vpzwdr2nzekmazzeguz09amaezfn354q2eqpuf4uky9xmncxh7def", "Amount" -> Quantity[1500000, "CardanoLovelace"], "Tokens" -> {<|"AssetName" -> "736f6d6e6f6c656e6365", "PolicyID" -> "0b6c95869314d1de35460f61e861fa64873b627a4fbf386520f064b2", "Quantity" -> 55000|>} |>,
<|"Address" -> "addr_test1vpv4xjnr23e852ky3qu5f5gluhvkyrj8fnav5224zzge92start7r",
"Amount" -> Automatic|>
}
|>, BlockchainBase -> {"Cardano", "Testnet"}]BlockchainTransactionSign[tx, {PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["MjC8SnBmr4FPnIRbqxWsvZcAAfUKyRRg5cIIcNrg2Ng="],
"PublicByteArray" -> ByteArray["u3sj+LtGiT0Lbee25azDgeA28igPTxLu7Eni4/ycqYs="],
"PublicCurvePoint" ->
{47468148254471604714952315351219043243687327406112580539973685884079333988497,
5275121978699116683680077753742029815517849840936083681594502997075755760571}]], PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["ZS+tz1R5qEH1cjUb1CYjrM/D3NcKwi1Bq81uKLV5mfo="],
"PublicByteArray" -> ByteArray["cQgZRHEeKfwkcRlED1ne/gRioPUlscol+90Y2qfqT4c="],
"PublicCurvePoint" ->
{54789448609012894423837732655416846236491149459823016987951522245567818687067,
3307390392124908807609817216896188012777357359263186559572045863632433121393}]]}]アプリケーション (11)
暗号通貨を送信する (1)
エイダ暗号通貨を送金するカルダノブロックチェーントランザクションを作成する:
tx = BlockchainTransaction[<|
"Inputs" -> {
<|"TransactionID" -> "fbbef2bdcc75fde897cd21ea44da8f6cf3af70a58d32955d15b6e24939ff18d3", "Index" -> 0|>
},
"Outputs" -> {
<|"Address" -> "addr_test1vq6nyx7m0vher4u5mlyezcss6pn3w0hvx9m76sn3uyz03xq7wm3aj", "Amount" -> Quantity[1000000, "CardanoLovelace"]|>,
<|"Address" -> "addr_test1vp849fern55cadj000n0ax200nvquaakutj4ahm3u6e2w2cyfnzpj", "Amount" -> Automatic|>
}
|>, BlockchainBase -> {"Cardano", "Testnet"}]PrivateKeyオブジェクトでトランザクションに署名する:
txSigned = BlockchainTransactionSign[tx, PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["ZS+tz1R5qEH1cjUb1CYjrM/D3NcKwi1Bq81uKLV5mfo="],
"PublicByteArray" -> ByteArray["cQgZRHEeKfwkcRlED1ne/gRioPUlscol+90Y2qfqT4c="],
"PublicCurvePoint" ->
{54789448609012894423837732655416846236491149459823016987951522245567818687067,
3307390392124908807609817216896188012777357359263186559572045863632433121393}]]]txSubmitted = BlockchainTransactionSubmit[txSigned]"TransactionID"を使ってトランザクションを確認する:
BlockchainTransactionData[txSubmitted["TransactionID"], BlockchainBase -> {"Cardano", "Testnet"}]//Datasetトークンをミントする (1)
1,000,000トークンをミントして複数のアドレスに送信するために,カルダノブロックチェーンのトランザクションを作成する:
txMint1 = BlockchainTransaction[<|
"Inputs" -> {
<|"TransactionID" -> "52083f70cdfdf352e819a8f60f9c0a18325d5b636aff5bcfb7e51a1725c6a529", "Index" -> 1|>
},
"Mint" -> {
<|"AssetName" -> "736f6d6e6f6c656e6365", "PolicyID" -> "0b6c95869314d1de35460f61e861fa64873b627a4fbf386520f064b2", "Quantity" -> 1000000|>
},
"Outputs" -> {
<|"Address" -> "addr_test1vq6nyx7m0vher4u5mlyezcss6pn3w0hvx9m76sn3uyz03xq7wm3aj", "Amount" -> Quantity[1500000, "CardanoLovelace"], "Tokens" -> {<|"AssetName" -> "736f6d6e6f6c656e6365", "PolicyID" -> "0b6c95869314d1de35460f61e861fa64873b627a4fbf386520f064b2", "Quantity" -> 10000|>}
|>,
<|"Address" -> "addr_test1vp849fern55cadj000n0ax200nvquaakutj4ahm3u6e2w2cyfnzpj", "Amount" -> Quantity[1500000, "CardanoLovelace"], "Tokens" -> {<|"AssetName" -> "736f6d6e6f6c656e6365", "PolicyID" -> "0b6c95869314d1de35460f61e861fa64873b627a4fbf386520f064b2", "Quantity" -> 990000|>}
|>,
<|"Address" -> "addr_test1vp849fern55cadj000n0ax200nvquaakutj4ahm3u6e2w2cyfnzpj", "Amount" -> Automatic|>
},
"Scripts" -> {
<|"type" -> "sig", "keyHash" -> "37def1f6d17b09d6440917fb4a4241c634a49592eb2ae8f8be80ffd3"|>
}
|>, BlockchainBase -> {"Cardano", "Testnet"}]単一の出力で"Amount"をAutomaticに設定し,残りのトークンをそのアドレスに送信することもできる:
txMint2 = BlockchainTransaction[<|
"Inputs" -> {
<|"TransactionID" -> "52083f70cdfdf352e819a8f60f9c0a18325d5b636aff5bcfb7e51a1725c6a529", "Index" -> 1|>
},
"Mint" -> {
<|"AssetName" -> "736f6d6e6f6c656e6365", "PolicyID" -> "0b6c95869314d1de35460f61e861fa64873b627a4fbf386520f064b2", "Quantity" -> 1000000|>
},
"Outputs" -> {
<|"Address" -> "addr_test1vq6nyx7m0vher4u5mlyezcss6pn3w0hvx9m76sn3uyz03xq7wm3aj", "Amount" -> Quantity[1500000, "CardanoLovelace"], "Tokens" -> {<|"AssetName" -> "736f6d6e6f6c656e6365", "PolicyID" -> "0b6c95869314d1de35460f61e861fa64873b627a4fbf386520f064b2", "Quantity" -> 10000|>}
|>,
<|"Address" -> "addr_test1vp849fern55cadj000n0ax200nvquaakutj4ahm3u6e2w2cyfnzpj", "Amount" -> Quantity[1500000, "CardanoLovelace"], "Tokens" -> Automatic
|>,
<|"Address" -> "addr_test1vp849fern55cadj000n0ax200nvquaakutj4ahm3u6e2w2cyfnzpj", "Amount" -> Automatic|>
},
"Scripts" -> {
<|"type" -> "sig", "keyHash" -> "37def1f6d17b09d6440917fb4a4241c634a49592eb2ae8f8be80ffd3"|>
}
|>, BlockchainBase -> {"Cardano", "Testnet"}]txMint1["RawTransaction"] == txMint2["RawTransaction"]PrivateKeyオブジェクトでトランザクションに署名する:
signedTX = BlockchainTransactionSign[txMint2, {PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["ZS+tz1R5qEH1cjUb1CYjrM/D3NcKwi1Bq81uKLV5mfo="],
"PublicByteArray" -> ByteArray["cQgZRHEeKfwkcRlED1ne/gRioPUlscol+90Y2qfqT4c="],
"PublicCurvePoint" ->
{54789448609012894423837732655416846236491149459823016987951522245567818687067,
3307390392124908807609817216896188012777357359263186559572045863632433121393}]], PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["vnDTCvF1M1dpTUQbpgJFYsD9K8WofIKTi3P1vaeoOVw="],
"PublicByteArray" -> ByteArray["B/a3Az+3UZYN+UFWR0hZ+axnSTBdMMv0g8o/8xoJSWs="],
"PublicCurvePoint" ->
{13842668232556184559548318005004325513416029538334711005203417129689039515212,
48526517476431189075020784670340877228184510548669649384007169677815765792263}]]}]トークンをミントするためにトランザクションをカルダノブロックチェーンに送信する:
txSubmitted = BlockchainTransactionSubmit[signedTX]"TransactionID"を使ってトランザクションを確認する:
BlockchainTransactionData[txSubmitted["TransactionID"], BlockchainBase -> {"Cardano", "Testnet"}]//DatasetNFTをミントする (1)
nftImage = ImageCompose[ArrayPlot[CellularAutomaton[<|"Dimension" -> 2, "OuterTotalisticCode" -> 594|>, {{Table[1, 7]}, 0}, {{{150}}}], ColorFunction -> "RustTones"], Rasterize[ Text[Style["somnolence", Pink, 24, Background -> None], Background -> None], Background -> Black]]ExternalStorageUpload[Export[FileNameJoin[{$TemporaryDirectory, "nftImage.png"}], nftImage], ExternalStorageBase -> "IPFS"]nftCID = %["CID"]nftMetadata = <|
"721" -> <|
"version" -> "1.0",
"f793495e58b8a9439e1c2ea072f80082a6c4e380ed24bb87478b200f" -> <|
"736f6d6e6f6c656e6365" -> <|
"name" -> "Somnolence",
"image" -> "ipfs://" <> nftCID,
"mediaType" -> "image/png",
"description" -> "Somnolence Test NFT",
"files" -> {
<|
"name" -> "736f6d6e6f6c656e6365",
"src" -> "ipfs://" <> nftCID,
"mediaType" -> "image/png"
|>
}
|>
|>
|>|>;NFTをミントするためにカルダノブロックチェーントランザクションを作成する:
tx = BlockchainTransaction[<|
"Inputs" -> {
<|"TransactionID" -> "aaa608a331c50a87dfcfbba05e39474a58e3b5cce0def886ae78f5bf745b90d6", "Index" -> 2|>
},
"Mint" -> {
<|"AssetName" -> "736f6d6e6f6c656e6365", "PolicyID" -> "0b6c95869314d1de35460f61e861fa64873b627a4fbf386520f064b2", "Quantity" -> 1|>
},
"Outputs" -> {
<|"Address" -> "addr_test1vq6nyx7m0vher4u5mlyezcss6pn3w0hvx9m76sn3uyz03xq7wm3aj", "Amount" -> Quantity[1500000, "CardanoLovelace"], "Tokens" -> {<|"AssetName" -> "736f6d6e6f6c656e6365", "PolicyID" -> "0b6c95869314d1de35460f61e861fa64873b627a4fbf386520f064b2", "Quantity" -> 1|>}
|>,
<|"Address" -> "addr_test1vp849fern55cadj000n0ax200nvquaakutj4ahm3u6e2w2cyfnzpj", "Amount" -> Automatic|>
},
"Scripts" -> {
<|"type" -> "sig", "keyHash" -> "37def1f6d17b09d6440917fb4a4241c634a49592eb2ae8f8be80ffd3"|>
},
"Metadata" -> nftMetadata
|>, BlockchainBase -> {"Cardano", "Testnet"}]PrivateKeyオブジェクトでトランザクションに署名する:
nftTXSigned = BlockchainTransactionSign[tx, {PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["ZS+tz1R5qEH1cjUb1CYjrM/D3NcKwi1Bq81uKLV5mfo="],
"PublicByteArray" -> ByteArray["cQgZRHEeKfwkcRlED1ne/gRioPUlscol+90Y2qfqT4c="],
"PublicCurvePoint" ->
{54789448609012894423837732655416846236491149459823016987951522245567818687067,
3307390392124908807609817216896188012777357359263186559572045863632433121393}]], PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["vnDTCvF1M1dpTUQbpgJFYsD9K8WofIKTi3P1vaeoOVw="],
"PublicByteArray" -> ByteArray["B/a3Az+3UZYN+UFWR0hZ+axnSTBdMMv0g8o/8xoJSWs="],
"PublicCurvePoint" ->
{13842668232556184559548318005004325513416029538334711005203417129689039515212,
48526517476431189075020784670340877228184510548669649384007169677815765792263}]]}]NFTをミントするためにトランザクションをカルダノブロックチェーンに送信する:
nftTXSubmitted = BlockchainTransactionSubmit[nftTXSigned]"TransactionID"を使ってトランザクションを確認する:
BlockchainTransactionData[nftTXSubmitted["TransactionID"], BlockchainBase -> {"Cardano", "Testnet"}]//Datasetトークンを送信する (1)
トークンを送信するためにカルダノブロックチェーンのトランザクションを作成する:
tx = BlockchainTransaction[<|
"Inputs" -> {
<|"TransactionID" -> "aaa608a331c50a87dfcfbba05e39474a58e3b5cce0def886ae78f5bf745b90d6", "Index" -> 1, "Amount" -> Quantity[1500000, "CardanoLovelace"], "Tokens" -> {<|"AssetName" -> "736f6d6e6f6c656e6365", "PolicyID" -> "0b6c95869314d1de35460f61e861fa64873b627a4fbf386520f064b2", "Quantity" -> 990000|>}|>, <|"TransactionID" -> "7d532de7a92ddb43384349c18b9120f918915ca427f256a4e88e774de26c190c", "Index" -> 1, "Amount" -> Quantity[520648365, "CardanoLovelace"], "Tokens" -> {}|>
},
"Outputs" -> {
<|"Address" -> "addr_test1vq6nyx7m0vher4u5mlyezcss6pn3w0hvx9m76sn3uyz03xq7wm3aj", "Amount" -> Quantity[1500000, "CardanoLovelace"], "Tokens" -> {<|"AssetName" -> "736f6d6e6f6c656e6365", "PolicyID" -> "0b6c95869314d1de35460f61e861fa64873b627a4fbf386520f064b2", "Quantity" -> 110000|>}
|>,
<|"Address" -> "addr_test1vp849fern55cadj000n0ax200nvquaakutj4ahm3u6e2w2cyfnzpj", "Amount" -> Quantity[1500000, "CardanoLovelace"], "Tokens" -> {<|"AssetName" -> "736f6d6e6f6c656e6365", "PolicyID" -> "0b6c95869314d1de35460f61e861fa64873b627a4fbf386520f064b2", "Quantity" -> 880000|>}
|>, <|"Address" -> "addr_test1vp849fern55cadj000n0ax200nvquaakutj4ahm3u6e2w2cyfnzpj", "Amount" -> Automatic|>
}
|>, BlockchainBase -> {"Cardano", "Testnet"}]PrivateKeyオブジェクトでトランザクションに署名する:
txSigned = BlockchainTransactionSign[tx, PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["ZS+tz1R5qEH1cjUb1CYjrM/D3NcKwi1Bq81uKLV5mfo="],
"PublicByteArray" -> ByteArray["cQgZRHEeKfwkcRlED1ne/gRioPUlscol+90Y2qfqT4c="],
"PublicCurvePoint" ->
{54789448609012894423837732655416846236491149459823016987951522245567818687067,
3307390392124908807609817216896188012777357359263186559572045863632433121393}]]]txSubmitted = BlockchainTransactionSubmit[txSigned]"TransactionID"を使ってトランザクションを確認する:
BlockchainTransactionData[txSubmitted["TransactionID"], BlockchainBase -> {"Cardano", "Testnet"}]//Datasetトークンをバーンする (1)
トークンをバーンするためにカルダノブロックチェーントランザクションを作成する:
tx = BlockchainTransaction[<|
"Inputs" -> {
<|"TransactionID" -> "2cb5254f4cc09224917e0519cd41e1eb5a737ca4b0b4cf51b5ae8e15a73aa009",
"Index" -> 1, "Amount" -> Quantity[1500000, "CardanoLovelace"], "Tokens" -> {<|"AssetName" -> "736f6d6e6f6c656e6365", "PolicyID" -> "0b6c95869314d1de35460f61e861fa64873b627a4fbf386520f064b2", "Quantity" -> 880000|>}|>
},
"Mint" -> {
<|"AssetName" -> "736f6d6e6f6c656e6365", "PolicyID" -> "0b6c95869314d1de35460f61e861fa64873b627a4fbf386520f064b2", "Quantity" -> -880000|>
},
"Outputs" -> {
<|"Address" -> "addr_test1vp849fern55cadj000n0ax200nvquaakutj4ahm3u6e2w2cyfnzpj", "Amount" -> Automatic|>
},
"Scripts" -> {
<|"type" -> "sig", "keyHash" -> "37def1f6d17b09d6440917fb4a4241c634a49592eb2ae8f8be80ffd3"|>
}
|>, BlockchainBase -> {"Cardano", "Testnet"}]PrivateKeyオブジェクトでトランザクションに署名する:
txSigned = BlockchainTransactionSign[tx, {PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["ZS+tz1R5qEH1cjUb1CYjrM/D3NcKwi1Bq81uKLV5mfo="],
"PublicByteArray" -> ByteArray["cQgZRHEeKfwkcRlED1ne/gRioPUlscol+90Y2qfqT4c="],
"PublicCurvePoint" ->
{54789448609012894423837732655416846236491149459823016987951522245567818687067,
3307390392124908807609817216896188012777357359263186559572045863632433121393}]], PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["vnDTCvF1M1dpTUQbpgJFYsD9K8WofIKTi3P1vaeoOVw="],
"PublicByteArray" -> ByteArray["B/a3Az+3UZYN+UFWR0hZ+axnSTBdMMv0g8o/8xoJSWs="],
"PublicCurvePoint" ->
{13842668232556184559548318005004325513416029538334711005203417129689039515212,
48526517476431189075020784670340877228184510548669649384007169677815765792263}]]}]txSubmitted = BlockchainTransactionSubmit[txSigned]"TransactionID"を使ってトランザクションを確認する:
BlockchainTransactionData[txSubmitted["TransactionID"], BlockchainBase -> {"Cardano", "Testnet"}]//DatasetコンパイルされたPlutusスクリプトを配備する (1)
Short[Import[File["ExampleData/primeFactorV1.plutus"]], 3]この特定のスクリプトは,Redeemerのスクリプトデータがデータムの素因数のときかつそのときに限って成功する.データムについて,221を任意の半素数として選択する.スクリプトデータはカルダノの詳細JSONスキーマに準拠していなければならない:
<|"int" -> 221|>"Outputs"リスト内で指定することでデータムハッシュを持つPlutusスクリプトを配備する."Address"はスクリプトファイルを指し,"Datum"はスクリプトデータファイルを指す"Data"を持ち,"Hash"モードを使う:
tx = BlockchainTransaction[<|"Inputs" -> {<|"TransactionID" -> "2cb5254f4cc09224917e0519cd41e1eb5a737ca4b0b4cf51b5ae8e15a73aa009",
"Index" -> 2|>
},
"Outputs" -> {
<|"Address" -> File["ExampleData/primeFactorV1.plutus"],
"Amount" -> Quantity[3000000, "CardanoLovelace"], "Datum" -> <|"Data" -> <|"int" -> 221|>, "Mode" -> "Hash"|>|>, <|"Address" -> "addr_test1vp849fern55cadj000n0ax200nvquaakutj4ahm3u6e2w2cyfnzpj",
"Amount" -> Quantity[1000000, "CardanoLovelace"]|>, <|"Address" -> "addr_test1vp849fern55cadj000n0ax200nvquaakutj4ahm3u6e2w2cyfnzpj",
"Amount" -> Automatic|>
}
|>, BlockchainBase -> {"Cardano", "Testnet"}]PrivateKeyオブジェクトでトランザクションに署名する:
txSigned = BlockchainTransactionSign[tx, PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["ZS+tz1R5qEH1cjUb1CYjrM/D3NcKwi1Bq81uKLV5mfo="],
"PublicByteArray" -> ByteArray["cQgZRHEeKfwkcRlED1ne/gRioPUlscol+90Y2qfqT4c="],
"PublicCurvePoint" ->
{54789448609012894423837732655416846236491149459823016987951522245567818687067,
3307390392124908807609817216896188012777357359263186559572045863632433121393}]]]txSubmitted = BlockchainTransactionSubmit[txSigned]"TransactionID"を使ってトランザクションを確認する:
BlockchainTransactionData[txSubmitted["TransactionID"], BlockchainBase -> {"Cardano", "Testnet"}]//DatasetコンパイルされたPlutusスクリプトを使う (1)
"Inputs"リスト内の"Redeemer","Datum","Script"の各要素を使い,"CollateralInputs"内の担保入力を指定してPlutusスクリプトを使う:
txSpend = BlockchainTransaction[<|
"Inputs" -> {<|"TransactionID" -> "9906dd0d953ffefa58c6ffa6bb2e56d6e64c801ca627c39e22184cd9ce0f12cc",
"Index" -> 0, "Redeemer" -> <|"Tag" -> "Spend", "Data" -> <|"list" -> {<|"int" -> 17|>, <|"int" -> 13|>}|>|>, "Datum" -> <|"int" -> 221|>,
"Script" -> File["ExampleData/primeFactorV1.plutus"]|>
},
"CollateralInputs" -> {
<|"TransactionID" -> "9906dd0d953ffefa58c6ffa6bb2e56d6e64c801ca627c39e22184cd9ce0f12cc",
"Index" -> 1|>
},
"Outputs" -> {
<|"Address" -> "addr_test1vp849fern55cadj000n0ax200nvquaakutj4ahm3u6e2w2cyfnzpj",
"Amount" -> Automatic|>
}
|>, BlockchainBase -> {"Cardano", "Testnet"}]txSpend["Inputs"][[1, "Redeemer"]]PrivateKeyオブジェクトでトランザクションに署名する:
txSpendSigned = BlockchainTransactionSign[txSpend, PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["ZS+tz1R5qEH1cjUb1CYjrM/D3NcKwi1Bq81uKLV5mfo="],
"PublicByteArray" -> ByteArray["cQgZRHEeKfwkcRlED1ne/gRioPUlscol+90Y2qfqT4c="],
"PublicCurvePoint" ->
{54789448609012894423837732655416846236491149459823016987951522245567818687067,
3307390392124908807609817216896188012777357359263186559572045863632433121393}]]]txSpendSubmitted = BlockchainTransactionSubmit[txSpendSigned]"TransactionID"を使ってトランザクションを確認する:
BlockchainTransactionData[txSpendSubmitted["TransactionID"], BlockchainBase -> {"Cardano", "Testnet"}]//DatasetコンパイルされたPlutusスクリプトを必要な署名者で使う (1)
Short[Import[File["ExampleData/vestingV1.plutus"]], 3]この特定のスクリプトは,使うトランザクションが配備されたデータム内の公開鍵ハッシュに関連付けられた秘密鍵で署名されたときかつそのときに限って成功する:
privateKey = PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["ZS+tz1R5qEH1cjUb1CYjrM/D3NcKwi1Bq81uKLV5mfo="],
"PublicByteArray" -> ByteArray["cQgZRHEeKfwkcRlED1ne/gRioPUlscol+90Y2qfqT4c="],
"PublicCurvePoint" ->
{54789448609012894423837732655416846236491149459823016987951522245567818687067,
3307390392124908807609817216896188012777357359263186559572045863632433121393}]];publicKeyHash = Hash[privateKey["PublicByteArray"], {"BLAKE2b", 28 * 8}, "HexString"]datum = <|"fields" -> {<|"bytes" -> publicKeyHash|>}, "constructor" -> 0|>"Outputs"リスト内で指定してデータムハッシュを持つPlutusスクリプトを配備する."Address"はスクリプトファイルを指し,"Datum"はスクリプトデータファイルを指す"Data"を持ち,"Hash"モードを使う:
tx = BlockchainTransaction[<|
"Inputs" -> {
<|"TransactionID" -> "9906dd0d953ffefa58c6ffa6bb2e56d6e64c801ca627c39e22184cd9ce0f12cc",
"Index" -> 2|>
},
"Outputs" -> {
<|"Address" -> File["ExampleData/vestingV1.plutus"], "Amount" -> Quantity[10000000, "CardanoLovelace"], "Datum" -> <|"Data" -> datum, "Mode" -> "Hash"|>|>,
<|"Address" -> "addr_test1vp849fern55cadj000n0ax200nvquaakutj4ahm3u6e2w2cyfnzpj",
"Amount" -> Quantity[1000000, "CardanoLovelace"]|>,
<|"Address" -> "addr_test1vp849fern55cadj000n0ax200nvquaakutj4ahm3u6e2w2cyfnzpj",
"Amount" -> Automatic|>
}
|>, BlockchainBase -> {"Cardano", "Testnet"}]PrivateKeyオブジェクトでトランザクションに署名する:
txSigned = BlockchainTransactionSign[tx, PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["ZS+tz1R5qEH1cjUb1CYjrM/D3NcKwi1Bq81uKLV5mfo="],
"PublicByteArray" -> ByteArray["cQgZRHEeKfwkcRlED1ne/gRioPUlscol+90Y2qfqT4c="],
"PublicCurvePoint" ->
{54789448609012894423837732655416846236491149459823016987951522245567818687067,
3307390392124908807609817216896188012777357359263186559572045863632433121393}]]]txSubmitted = BlockchainTransactionSubmit[txSigned]署名者が必要なPlutusスクリプトを,"RequiredSigners"リスト内のPrivateKeyオブジェクト,PublicKeyオブジェクト,アドレスまたは公開鍵ハッシュで必要な署名者を指定して使う:
txSpend = BlockchainTransaction[<|
"Inputs" -> {
<|"TransactionID" -> "6660af2b1740c709f11092c47e04e79216b552b4148a360cfc2d8d5bc4cc5dd8",
"Index" -> 0,
"Datum" -> datum, "Redeemer" -> <|"Tag" -> "Spend", "Data" -> <|"fields" -> {}, "constructor" -> 0|>|>,
"Script" -> File["ExampleData/vestingV1.plutus"]|>
},
"CollateralInputs" -> {
<|"TransactionID" -> "6660af2b1740c709f11092c47e04e79216b552b4148a360cfc2d8d5bc4cc5dd8",
"Index" -> 1|>
},
"Outputs" -> {
<|"Address" -> "addr_test1vp849fern55cadj000n0ax200nvquaakutj4ahm3u6e2w2cyfnzpj",
"Amount" -> Automatic|>
},
"RequiredSigners" -> {privateKey}
|>, BlockchainBase -> {"Cardano", "Testnet"}]自動実行単位がリクエストされ,スクリプトが署名者を必要とするとき,必要な署名者の計算はトランザクションが署名されるまで遅延される.PrivateKeyオブジェクトを使ってトランザクションに署名する:
txSpendSigned = BlockchainTransactionSign[txSpend, PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["ZS+tz1R5qEH1cjUb1CYjrM/D3NcKwi1Bq81uKLV5mfo="],
"PublicByteArray" -> ByteArray["cQgZRHEeKfwkcRlED1ne/gRioPUlscol+90Y2qfqT4c="],
"PublicCurvePoint" ->
{54789448609012894423837732655416846236491149459823016987951522245567818687067,
3307390392124908807609817216896188012777357359263186559572045863632433121393}]]]txSpendSigned["Inputs"][[1, "Redeemer"]]txSpendSubmitted = BlockchainTransactionSubmit[txSpendSigned]"TransactionID"を使ってトランザクションを確認する:
BlockchainTransactionData[txSpendSubmitted["TransactionID"], BlockchainBase -> {"Cardano", "Testnet"}]//DatasetReferenceScriptとCollateralOutputsがあるPlutusスクリプトV2を配備して使う (3)
参照スクリプトを配備する (1)
Short[Import[File["ExampleData/primeFactorV2.plutus"]], 3]カルダノブロックチェーントランザクションを作成して参照スクリプトを配備する:
refFactor = BlockchainTransaction[<|
"Inputs" -> {<|"TransactionID" -> "843085e289f2d30e8c9a13950aa219502b306b4eeff85da627b2f3048f95ff11", "Index" -> 1|>},
"Outputs" -> {
<|"Address" -> "addr_test1vry7pc7qne7sjh58csx8knjx54gl7tucggja2jwlvf344wsyp9n97", "Amount" -> Quantity[11000000, "CardanoLovelace"], "ReferenceScript" -> File["ExampleData/primeFactorV2.plutus"]|>,
<|"Address" -> "addr_test1vry7pc7qne7sjh58csx8knjx54gl7tucggja2jwlvf344wsyp9n97", "Amount" -> Automatic|>
}
|>, BlockchainBase -> {"Cardano", "Testnet"}]PrivateKeyオブジェクトでトランザクションに署名する:
refFactorSigned = BlockchainTransactionSign[refFactor, PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["wjwlzavMCRbjTv0j/pPI4P1teSBGOkb/e9T9ou8B81g="],
"PublicByteArray" -> ByteArray["iUeghMqo1xlEucilNXKoldOrea/eyzFjx7MpBR2Vrok="],
"PublicCurvePoint" ->
{51732678281632644363349572710915894747281321558746030662008323822302304479697,
4379276169108678283621031508536050249012641784112399045680160333106218289033}]]]トランザクションをカルダノブロックチェーンに送信し,参照スクリプトを配備する:
refFactorSubmitted = BlockchainTransactionSubmit[refFactorSigned]"TransactionID"を使ってトランザクションを確認する:
BlockchainTransactionData[refFactorSubmitted["TransactionID"], BlockchainBase -> {"Cardano", "Testnet"}]//DatasetインラインデータムがあるPlutusスクリプトUTXOを配備する (1)
カルダノブロックチェーントランザクションを作成してスクリプトUTXOを配備する:
tx = BlockchainTransaction[<|
"Inputs" -> {<|"TransactionID" -> "16618b9652217f33b5f836dfefbb682b775fb7d10065f6c72972b9f018ef141d", "Index" -> 1|>},
"Outputs" -> {
<|"Address" -> File["ExampleData/primeFactorV2.plutus"], "Amount" -> Quantity[15000000, "CardanoLovelace"], "Datum" -> <|"Data" -> <|"int" -> 5917|>, "Mode" -> "Inline"|>|>,
<|"Address" -> "addr_test1vry7pc7qne7sjh58csx8knjx54gl7tucggja2jwlvf344wsyp9n97", "Amount" -> Automatic|>
}
|>, BlockchainBase -> {"Cardano", "Testnet"}]PrivateKeyオブジェクトでトランザクションに署名する:
txSigned = BlockchainTransactionSign[tx, PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["wjwlzavMCRbjTv0j/pPI4P1teSBGOkb/e9T9ou8B81g="],
"PublicByteArray" -> ByteArray["iUeghMqo1xlEucilNXKoldOrea/eyzFjx7MpBR2Vrok="],
"PublicCurvePoint" ->
{51732678281632644363349572710915894747281321558746030662008323822302304479697,
4379276169108678283621031508536050249012641784112399045680160333106218289033}]]]トランザクションをカルダノブロックチェーンに送信してスクリプトUTXOを配備する:
txSubmitted = BlockchainTransactionSubmit[txSigned]"TransactionID"を使ってトランザクションを確認する:
BlockchainTransactionData[txSubmitted["TransactionID"], BlockchainBase -> {"Cardano", "Testnet"}]//DatasetPlutusスクリプトを使う (1)
トークンを保持する以下のトランザクションは担保として使われる:
collSubmitted["TransactionID"] = "622f5ec916a194c406b124763a7a82d700cfafd937f3fb493eaf405339e6e5c4";BlockchainTransactionData[collSubmitted["TransactionID"], BlockchainBase -> {"Cardano", "Testnet"}]//Datasetカルダノブロックチェーントランザクションを作成し,参照スクリプトと担保出力でスクリプトUTXOを使う:
txSpend = BlockchainTransaction[<|
"Inputs" -> {<|"TransactionID" -> txSubmitted["TransactionID"], "Index" -> 0,
"Redeemer" -> <|"Tag" -> "Spend", "Data" -> <|"list" -> {<|"int" -> 61|>, <|"int" -> 97|>}|>|>,
"ReferenceScript" -> <|"TransactionID" -> refFactorSubmitted["TransactionID"], "Index" -> 0|>
|>},
"CollateralInputs" -> {<|"TransactionID" -> collSubmitted["TransactionID"], "Index" -> 0|>},
"CollateralOutputs" -> {<|"Address" -> "addr_test1vry7pc7qne7sjh58csx8knjx54gl7tucggja2jwlvf344wsyp9n97", "Amount" -> Automatic, "Tokens" -> Automatic|>},
"Outputs" -> {<|"Address" -> "addr_test1vry7pc7qne7sjh58csx8knjx54gl7tucggja2jwlvf344wsyp9n97", "Amount" -> Automatic|>}
|>, BlockchainBase -> {"Cardano", "Testnet"}]PrivateKeyオブジェクトでトランザクションに署名し,トランザクションをカルダノブロックチェーンに送信する:
txSpendSigned = BlockchainTransactionSign[txSpend, PrivateKey[Association["Type" -> "EdwardsCurve", "CurveName" -> "ed25519",
"PrivateByteArray" -> ByteArray["wjwlzavMCRbjTv0j/pPI4P1teSBGOkb/e9T9ou8B81g="],
"PublicByteArray" -> ByteArray["iUeghMqo1xlEucilNXKoldOrea/eyzFjx7MpBR2Vrok="],
"PublicCurvePoint" ->
{51732678281632644363349572710915894747281321558746030662008323822302304479697,
4379276169108678283621031508536050249012641784112399045680160333106218289033}]]];
txSpendSubmitted = BlockchainTransactionSubmit[txSpendSigned]"TransactionID"を使ってトランザクションを確認する:
BlockchainTransactionData[txSpendSubmitted["TransactionID"], BlockchainBase -> {"Cardano", "Testnet"}]//Dataset関連するガイド
履歴
2021 で導入 (13.0)
テキスト
Wolfram Research (2021), BlockchainTransactionSign, Wolfram言語関数, https://reference.wolfram.com/language/ref/blockchain/BlockchainTransactionSign-Cardano.html.
CMS
Wolfram Language. 2021. "BlockchainTransactionSign." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/blockchain/BlockchainTransactionSign-Cardano.html.
APA
Wolfram Language. (2021). BlockchainTransactionSign. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/blockchain/BlockchainTransactionSign-Cardano.html
BibTeX
@misc{reference.wolfram_2026_blockchaintransactionsign, author="Wolfram Research", title="{BlockchainTransactionSign}", year="2021", howpublished="\url{https://reference.wolfram.com/language/ref/blockchain/BlockchainTransactionSign-Cardano.html}", note=[Accessed: 05-July-2026]}
BibLaTeX
@online{reference.wolfram_2026_blockchaintransactionsign, organization={Wolfram Research}, title={BlockchainTransactionSign}, year={2021}, url={https://reference.wolfram.com/language/ref/blockchain/BlockchainTransactionSign-Cardano.html}, note=[Accessed: 05-July-2026]}