Hello guys. I’m trying to run a DryrunRequest using the AlgoSDK and goal clerk. My objective is to debug a transaction group, so I collect the txns and logicsigs as follows:
algosdk.assignGroupID(this.groupTx)
const signedGroup = []
const drtxns = []
let i = 0
for (const tx of this.groupTx) {
console.log('signing: ' + tx.txID())
const lsig = new algosdk.LogicSigAccount(programBytes, [Buffer.from(sigSubsets[i++], 'hex')])
const stxn = algosdk.signLogicSigTransaction(tx, lsig)
drtxns.push({ txn: stxn.blob, lsig: lsig.lsig })
signedGroup.push(stxn.blob)
}
const dr = new algosdk.modelsv2.DryrunRequest(({
txns: drtxns,
sources: undefined
}))
fs.writeFileSync('dump.dr', algosdk.encodeObj(dr.get_obj_for_encoding(true)))
The msgpack dump of the result file is :
{
"txns": [
{
"lsig": {
"arg": [
"ACz6sN4/x/j8H907foM+UK1UO9zg7Rqo50mS2SngPLwTPm0P+Uexa4w/fayUQs4QivmuqUvw1toUOYLzwQzYs30AAVRQPSJxWPncwCQEkM9HHLltinVmE1hoyeDVst3z8b/qFHLGfQsPZh9otDhUJS3xFvBL+ZsIv1QJNS+a5ro6a6UBAmtC6m+KJsYJQ3xSP5LXKdKHOOYg7B9BYjaHOb+MKjUpLnX6Cqfuoxt/h7ZPKdblI4K0Z2LAlUQteTzeRmS86OkAA3gfbDojPgQdFJIdVPpGiU+HoanJVXnj9cUlDvpkJyxTFGsBlAwEa5aUunVH1rPn6BzdWBsUG7uox35ak3Ia0jsBBNY/jqWIOgN5dJjG2pfQTEUViit261lYsLsLTDi8IePcLeTB6JBDYsUPt0QaO6zly5H744tpK9Ge/kJc0RdmhbEABcxEKXME8xaVKuZZzlWObtEe6sKxYH/DjsKfjjphXibgWr9yk5XpqXPJ30zwNc9/TciLC33PUN8DmER0XSTsc/AA"
],
"l:b64": "BSAGAQYAIEIUJgEAMQGB6AcORDEbgQMSRC0VMRY2GgIXiABWIQQLEkQxIDIDEkQxGIH+8emMAhJEMRAjEkQyBDYaAheIACoSRC0xBTYaAYgAS0QiQzUCNQE0ATQCGCQTQAAGNAE0AgqJNAE0AgoiCIk1ADQAI4j/3Ik1BDUDNAQjGCQSQAAUNAM0BIj/4yIJDEAABTQEIxiJI4kjiTUHNQY1BSg18Cg18SQ1CiQ1CCQ1CTQINAUVDEEAXjQFNAgiWBc0CjEWIwsIEkQ0BgI0BTQIgUEIIlgXNAU0CCIIJVg0BTQIgSEIJVgHADXxNfA0BzQJIQVYNPA08VACgQwlUhJENAghBAg1CDQJIQUINQk0CiIINQpC/5kiiQ=="
},
"txn:b64": "gqRsc2lngqNhcmeRxQGMACz6sN4/x/j8H907foM+UK1UO9zg7Rqo50mS2SngPLwTPm0P+Uexa4w/fayUQs4QivmuqUvw1toUOYLzwQzYs30AAVRQPSJxWPncwCQEkM9HHLltinVmE1hoyeDVst3z8b/qFHLGfQsPZh9otDhUJS3xFvBL+ZsIv1QJNS+a5ro6a6UBAmtC6m+KJsYJQ3xSP5LXKdKHOOYg7B9BYjaHOb+MKjUpLnX6Cqfuoxt/h7ZPKdblI4K0Z2LAlUQteTzeRmS86OkAA3gfbDojPgQdFJIdVPpGiU+HoanJVXnj9cUlDvpkJyxTFGsBlAwEa5aUunVH1rPn6BzdWBsUG7uox35ak3Ia0jsBBNY/jqWIOgN5dJjG2pfQTEUViit261lYsLsLTDi8IePcLeTB6JBDYsUPt0QaO6zly5H744tpK9Ge/kJc0RdmhbEABcxEKXME8xaVKuZZzlWObtEe6sKxYH/DjsKfjjphXibgWr9yk5XpqXPJ30zwNc9/TciLC33PUN8DmER0XSTsc/AAoWzFARsFIAYBBgAgQhQmAQAxAYHoBw5EMRuBAxJELRUxFjYaAheIAFYhBAsSRDEgMgMSRDEYgf7x6YwCEkQxECMSRDIENhoCF4gAKhJELTEFNhoBiABLRCJDNQI1ATQBNAIYJBNAAAY0ATQCCok0ATQCCiIIiTUANAAjiP/ciTUENQM0BCMYJBJAABQ0AzQEiP/jIgkMQAAFNAQjGIkjiSOJNQc1BjUFKDXwKDXxJDUKJDUIJDUJNAg0BRUMQQBeNAU0CCJYFzQKMRYjCwgSRDQGAjQFNAiBQQgiWBc0BTQIIgglWDQFNAiBIQglWAcANfE18DQHNAkhBVg08DTxUAKBDCVSEkQ0CCEECDUINAkhBQg1CTQKIgg1CkL/mSKJo3R4boukYXBhYZPEBnZlcmlmecR4E5R71IsY5T/a7ud/NHM5GscnxjjxirusBzdB3Q8AIUe3Nf9kLz0RP5klqU3AQ9CAP471AtLbFcrJ4C12nk7C2Sr4YCvOdKJ/mag2+TxKMeScQMQFKjCSr7jJm5hfzftYbtGcmLhgIM8SYqpN1Vcq92kj4nEWmiynxAgAAAAAAAAAE6RhcGlkziGaeP6jZmVlzQPoomZ2zgDi5g6jZ2VurGJldGFuZXQtdjEuMKJnaMQgmFgazF+2uRS1tMiL9dsj01hJGySEmPN28B/TjjvpVW2jZ3JwxCAj/imAX1MAe2NasM+EqG4cb1hk5FC/TVo6QCYvaPHVq6Jsds4A4un2pG5vdGXEyAAAAAEAAAABAAE6/ahBwfQ919VGyKWBuh+SoTn0Ez+farCVVY9qNZ311AAAAAAAAAAAADJXSAABASMKv+DsO0YL1V/E+zY1ZxYymRUUVJcgK464vxr2oKO5/mUPA2fUp++YFaWT6hXTZZPwZDqq8BSbsEvmerhR3s0BAAAALxclQ4j////3AAAALu1z2QAAAAAAcNO0PwAAAAA3+qA9AAAAAA6eVVEAAAAAiUrxHAAAAAA3+qA9AAAAAA3abrgBAAAAAABhpf+ao3NuZMQgJlvzvxes4ourw0ERxV4y+WLyy5CTFSExiR3n4qb74fOkdHlwZaRhcHBs"
},
{
"lsig": {
"arg": [
"BiUe3kq3wDjEMDv+/cAyZEDcz27gaO+aGtrIDcoLPuIoDB4ziD8Jyhr8UU71JgEoiw2BGuA19smx+OMoSMlo+ycBB2isrxQgVt3SNyQYcbi//4tCMrkOHga12gWLvx3Hfz3pQ2yd86LpaXAXzQG5AdaJ4eY+vwiid0GwaSnYXFBGNRUACN0PMlFalhkAES1BcWQn6J7vRqPK1U9s64DTbAmUzkgKdQkyE4qklxFpoKc3Jou01mf3tg1HmVensQlLb0O680oACSskyrgy6Csey329TWkqoR742NsbVGb+ngDrUKboBHijCG6G/NhhFChvNgfRHgmGRB9euAl5wRd3DC/VvXqKRjwACu+VIfSNWZfe3X7ZwI1adY5dfkK9TakyyD045RPn2xEZHlkhsicfDfRz3AfmpyGEBOKr6ZEUi6i4VmMCnhzOjrYAC+5S5IfJhm4h3KoJ5EDUm1/AYzuiRMl6ivet5foMy5LfecpKeM+SDtmCYXTEIF611XBhcKbJDZIUWtDBHloffbwB"
],
"l:b64": "BSAGAQYAIEIUJgEAMQGB6AcORDEbgQMSRC0VMRY2GgIXiABWIQQLEkQxIDIDEkQxGIH+8emMAhJEMRAjEkQyBDYaAheIACoSRC0xBTYaAYgAS0QiQzUCNQE0ATQCGCQTQAAGNAE0AgqJNAE0AgoiCIk1ADQAI4j/3Ik1BDUDNAQjGCQSQAAUNAM0BIj/4yIJDEAABTQEIxiJI4kjiTUHNQY1BSg18Cg18SQ1CiQ1CCQ1CTQINAUVDEEAXjQFNAgiWBc0CjEWIwsIEkQ0BgI0BTQIgUEIIlgXNAU0CCIIJVg0BTQIgSEIJVgHADXxNfA0BzQJIQVYNPA08VACgQwlUhJENAghBAg1CDQJIQUINQk0CiIINQpC/5kiiQ=="
},
"txn:b64": "gqRsc2lngqNhcmeRxQGMBiUe3kq3wDjEMDv+/cAyZEDcz27gaO+aGtrIDcoLPuIoDB4ziD8Jyhr8UU71JgEoiw2BGuA19smx+OMoSMlo+ycBB2isrxQgVt3SNyQYcbi//4tCMrkOHga12gWLvx3Hfz3pQ2yd86LpaXAXzQG5AdaJ4eY+vwiid0GwaSnYXFBGNRUACN0PMlFalhkAES1BcWQn6J7vRqPK1U9s64DTbAmUzkgKdQkyE4qklxFpoKc3Jou01mf3tg1HmVensQlLb0O680oACSskyrgy6Csey329TWkqoR742NsbVGb+ngDrUKboBHijCG6G/NhhFChvNgfRHgmGRB9euAl5wRd3DC/VvXqKRjwACu+VIfSNWZfe3X7ZwI1adY5dfkK9TakyyD045RPn2xEZHlkhsicfDfRz3AfmpyGEBOKr6ZEUi6i4VmMCnhzOjrYAC+5S5IfJhm4h3KoJ5EDUm1/AYzuiRMl6ivet5foMy5LfecpKeM+SDtmCYXTEIF611XBhcKbJDZIUWtDBHloffbwBoWzFARsFIAYBBgAgQhQmAQAxAYHoBw5EMRuBAxJELRUxFjYaAheIAFYhBAsSRDEgMgMSRDEYgf7x6YwCEkQxECMSRDIENhoCF4gAKhJELTEFNhoBiABLRCJDNQI1ATQBNAIYJBNAAAY0ATQCCok0ATQCCiIIiTUANAAjiP/ciTUENQM0BCMYJBJAABQ0AzQEiP/jIgkMQAAFNAQjGIkjiSOJNQc1BjUFKDXwKDXxJDUKJDUIJDUJNAg0BRUMQQBeNAU0CCJYFzQKMRYjCwgSRDQGAjQFNAiBQQgiWBc0BTQIIgglWDQFNAiBIQglWAcANfE18DQHNAkhBVg08DTxUAKBDCVSEkQ0CCEECDUINAkhBQg1CTQKIgg1CkL/mSKJo3R4boukYXBhYZPEBnZlcmlmecR4GTdhf+HtgB+6FL2Lue3sunqUL/6UdbjUXd5TYU2Sx3l4fCf+LvaHUhWlOyLCirx7EIYSFGtqqkpTe6MFY4QmV8esfjewT752uMVO/gFNBOGUjKG79LhY3xpQW0xpxcYb2VoSvaaSPiJZ+LVUHtGOQQuN3uYYM3/wxAgAAAAAAAAAE6RhcGlkziGaeP6jZmVlzQPoomZ2zgDi5g6jZ2VurGJldGFuZXQtdjEuMKJnaMQgmFgazF+2uRS1tMiL9dsj01hJGySEmPN28B/TjjvpVW2jZ3JwxCAj/imAX1MAe2NasM+EqG4cb1hk5FC/TVo6QCYvaPHVq6Jsds4A4un2pG5vdGXEyAAAAAEAAAABAAE6/ahBwfQ919VGyKWBuh+SoTn0Ez+farCVVY9qNZ311AAAAAAAAAAAADJXSAABASMKv+DsO0YL1V/E+zY1ZxYymRUUVJcgK464vxr2oKO5/mUPA2fUp++YFaWT6hXTZZPwZDqq8BSbsEvmerhR3s0BAAAALxclQ4j////3AAAALu1z2QAAAAAAcNO0PwAAAAA3+qA9AAAAAA6eVVEAAAAAiUrxHAAAAAA3+qA9AAAAAA3abrgBAAAAAABhpf+ao3NuZMQgJlvzvxes4ourw0ERxV4y+WLyy5CTFSExiR3n4qb74fOkdHlwZaRhcHBs"
},
{
"lsig": {
"arg": [
"DMFjNIXyBbOeJ7f4oAne8CyHG2YT3GhPXcjt1kLWsYjBFSFQ4lWZUfW7GshTqNtvs47ibBHROH3Bk5WIfiiV2EQADQXt2wcObnMWuooMip+3oqCXximRreBc7RwJLMsZZMFNKjHCmoJXAsfvY9EzDa6a1rQbEbSrx4jECq4zHQD08P0ADgpNpk1ppRfbTczrHFQeU6EkaCPweAhBYWPfrV6I3/EOcxVO8t6Azt5N5YSHla/Syyx+QfdH0QxJAqim5GGUexsAD+lfQXfPkB2BqRauBtcZaL/dqxqxdHCXwlG5t+U2TiG8CskePkZIjfeUmO6zyArGs6ALZJeR8Nj073Mzx722m+QAELYR8/waQYObYIxwRHHZulFJNFzlVGL5vzJ9lqU16F/9DvEKVlEno/QBaQJocQ6TO6JV14mhtF0Q8uz89m9/CjsBEdKznC3in5tXqjBKaNFrLiTkcA0Bcs4zteNyirMYWXydb8yMt/LiFNQnSww82ied5bbpqDFUOde//3jr1N9wF/cA"
],
"l:b64": "BSAGAQYAIEIUJgEAMQGB6AcORDEbgQMSRC0VMRY2GgIXiABWIQQLEkQxIDIDEkQxGIH+8emMAhJEMRAjEkQyBDYaAheIACoSRC0xBTYaAYgAS0QiQzUCNQE0ATQCGCQTQAAGNAE0AgqJNAE0AgoiCIk1ADQAI4j/3Ik1BDUDNAQjGCQSQAAUNAM0BIj/4yIJDEAABTQEIxiJI4kjiTUHNQY1BSg18Cg18SQ1CiQ1CCQ1CTQINAUVDEEAXjQFNAgiWBc0CjEWIwsIEkQ0BgI0BTQIgUEIIlgXNAU0CCIIJVg0BTQIgSEIJVgHADXxNfA0BzQJIQVYNPA08VACgQwlUhJENAghBAg1CDQJIQUINQk0CiIINQpC/5kiiQ=="
},
"txn:b64": "gqRsc2lngqNhcmeRxQGMDMFjNIXyBbOeJ7f4oAne8CyHG2YT3GhPXcjt1kLWsYjBFSFQ4lWZUfW7GshTqNtvs47ibBHROH3Bk5WIfiiV2EQADQXt2wcObnMWuooMip+3oqCXximRreBc7RwJLMsZZMFNKjHCmoJXAsfvY9EzDa6a1rQbEbSrx4jECq4zHQD08P0ADgpNpk1ppRfbTczrHFQeU6EkaCPweAhBYWPfrV6I3/EOcxVO8t6Azt5N5YSHla/Syyx+QfdH0QxJAqim5GGUexsAD+lfQXfPkB2BqRauBtcZaL/dqxqxdHCXwlG5t+U2TiG8CskePkZIjfeUmO6zyArGs6ALZJeR8Nj073Mzx722m+QAELYR8/waQYObYIxwRHHZulFJNFzlVGL5vzJ9lqU16F/9DvEKVlEno/QBaQJocQ6TO6JV14mhtF0Q8uz89m9/CjsBEdKznC3in5tXqjBKaNFrLiTkcA0Bcs4zteNyirMYWXydb8yMt/LiFNQnSww82ied5bbpqDFUOde//3jr1N9wF/cAoWzFARsFIAYBBgAgQhQmAQAxAYHoBw5EMRuBAxJELRUxFjYaAheIAFYhBAsSRDEgMgMSRDEYgf7x6YwCEkQxECMSRDIENhoCF4gAKhJELTEFNhoBiABLRCJDNQI1ATQBNAIYJBNAAAY0ATQCCok0ATQCCiIIiTUANAAjiP/ciTUENQM0BCMYJBJAABQ0AzQEiP/jIgkMQAAFNAQjGIkjiSOJNQc1BjUFKDXwKDXxJDUKJDUIJDUJNAg0BRUMQQBeNAU0CCJYFzQKMRYjCwgSRDQGAjQFNAiBQQgiWBc0BTQIIgglWDQFNAiBIQglWAcANfE18DQHNAkhBVg08DTxUAKBDCVSEkQ0CCEECDUINAkhBQg1CTQKIgg1CkL/mSKJo3R4boukYXBhYZPEBnZlcmlmecR49nja9LfyeJqoiggWGKqWbWo54GSM8xAhg4qLP/pDpxpQYJh3hG+ebesVvPKuT5VwEjMLR0Hs4yQt6WGEzDdmoD5PrsRL2npG2eoqnRJOm/iEH0mbqJpqjp3Sc7rYK+sXUJTl1/XyuCV25soXll3uhT0Iu7Rx+iQzxAgAAAAAAAAAE6RhcGlkziGaeP6jZmVlzQPoomZ2zgDi5g6jZ2VurGJldGFuZXQtdjEuMKJnaMQgmFgazF+2uRS1tMiL9dsj01hJGySEmPN28B/TjjvpVW2jZ3JwxCAj/imAX1MAe2NasM+EqG4cb1hk5FC/TVo6QCYvaPHVq6Jsds4A4un2pG5vdGXEyAAAAAEAAAABAAE6/ahBwfQ919VGyKWBuh+SoTn0Ez+farCVVY9qNZ311AAAAAAAAAAAADJXSAABASMKv+DsO0YL1V/E+zY1ZxYymRUUVJcgK464vxr2oKO5/mUPA2fUp++YFaWT6hXTZZPwZDqq8BSbsEvmerhR3s0BAAAALxclQ4j////3AAAALu1z2QAAAAAAcNO0PwAAAAA3+qA9AAAAAA6eVVEAAAAAiUrxHAAAAAA3+qA9AAAAAA3abrgBAAAAAABhpf+ao3NuZMQgJlvzvxes4ourw0ERxV4y+WLyy5CTFSExiR3n4qb74fOkdHlwZaRhcHBs"
},
{
"lsig": {
"arg": [
"EvOjfIUXBb3ni6j3GRVwqnd4hluRY2J7a0MPZDopMe/qUTj4Y1UmujvckGpuodArcliXQTB2DSlP2y3dSKtlflAB"
],
"l:b64": "BSAGAQYAIEIUJgEAMQGB6AcORDEbgQMSRC0VMRY2GgIXiABWIQQLEkQxIDIDEkQxGIH+8emMAhJEMRAjEkQyBDYaAheIACoSRC0xBTYaAYgAS0QiQzUCNQE0ATQCGCQTQAAGNAE0AgqJNAE0AgoiCIk1ADQAI4j/3Ik1BDUDNAQjGCQSQAAUNAM0BIj/4yIJDEAABTQEIxiJI4kjiTUHNQY1BSg18Cg18SQ1CiQ1CCQ1CTQINAUVDEEAXjQFNAgiWBc0CjEWIwsIEkQ0BgI0BTQIgUEIIlgXNAU0CCIIJVg0BTQIgSEIJVgHADXxNfA0BzQJIQVYNPA08VACgQwlUhJENAghBAg1CDQJIQUINQk0CiIINQpC/5kiiQ=="
},
"txn:b64": "gqRsc2lngqNhcmeRxEIS86N8hRcFveeLqPcZFXCqd3iGW5FjYntrQw9kOikx7+pROPhjVSa6O9yQam6h0CtyWJdBMHYNKU/bLd1Iq2V+UAGhbMUBGwUgBgEGACBCFCYBADEBgegHDkQxG4EDEkQtFTEWNhoCF4gAViEECxJEMSAyAxJEMRiB/vHpjAISRDEQIxJEMgQ2GgIXiAAqEkQtMQU2GgGIAEtEIkM1AjUBNAE0AhgkE0AABjQBNAIKiTQBNAIKIgiJNQA0ACOI/9yJNQQ1AzQEIxgkEkAAFDQDNASI/+MiCQxAAAU0BCMYiSOJI4k1BzUGNQUoNfAoNfEkNQokNQgkNQk0CDQFFQxBAF40BTQIIlgXNAoxFiMLCBJENAYCNAU0CIFBCCJYFzQFNAgiCCVYNAU0CIEhCCVYBwA18TXwNAc0CSEFWDTwNPFQAoEMJVISRDQIIQQINQg0CSEFCDUJNAoiCDUKQv+ZIomjdHhui6RhcGFhk8QGdmVyaWZ5xBQrwrEgRZnUyg1N3kplikLE3RMQOsQIAAAAAAAAABOkYXBpZM4hmnj+o2ZlZc0D6KJmds4A4uYOo2dlbqxiZXRhbmV0LXYxLjCiZ2jEIJhYGsxftrkUtbTIi/XbI9NYSRskhJjzdvAf04476VVto2dycMQgI/4pgF9TAHtjWrDPhKhuHG9YZORQv01aOkAmL2jx1auibHbOAOLp9qRub3RlxMgAAAABAAAAAQABOv2oQcH0PdfVRsilgbofkqE59BM/n2qwlVWPajWd9dQAAAAAAAAAAAAyV0gAAQEjCr/g7DtGC9VfxPs2NWcWMpkVFFSXICuOuL8a9qCjuf5lDwNn1KfvmBWlk+oV02WT8GQ6qvAUm7BL5nq4Ud7NAQAAAC8XJUOI////9wAAAC7tc9kAAAAAAHDTtD8AAAAAN/qgPQAAAAAOnlVRAAAAAIlK8RwAAAAAN/qgPQAAAAAN2m64AQAAAAAAYaX/mqNzbmTEICZb878XrOKLq8NBEcVeMvli8suQkxUhMYkd5+Km++HzpHR5cGWkYXBwbA=="
}
]
}
But goal clerk will yell at me with:
root@47d99e4cfffc:~/testnetwork/Node# goal clerk dryrun-remote -D dump.dr
dryrun-remote: HTTP 400 Bad Request: {"message":"failed to decode object: msgpack decode error [pos 711]: only encoded map or array can be decoded into a struct"}
I’m missing something?
Also I must provide sources
to be able to track execution in the dump, this is correct?
Thanks!