diff --git a/examples/amm/tealscript_artifacts/ConstantProductAMM.approval.teal b/examples/amm/tealscript_artifacts/ConstantProductAMM.approval.teal index 8e49d84b6..6307b4f2b 100644 --- a/examples/amm/tealscript_artifacts/ConstantProductAMM.approval.teal +++ b/examples/amm/tealscript_artifacts/ConstantProductAMM.approval.teal @@ -277,9 +277,6 @@ tokensToSwap: // examples/amm/amm.algo.ts:73 // factor = SCALE - FEE - int 995 - frame_bury -4 // factor: uint64 - // examples/amm/amm.algo.ts:74 // return wideRatio([inAmount, factor, outSupply], [inSupply * SCALE + inAmount * factor]); frame_dig -1 // inAmount: uint64 diff --git a/examples/amm/tealscript_artifacts/ConstantProductAMM.json b/examples/amm/tealscript_artifacts/ConstantProductAMM.json index 3dc056627..364c0c27f 100644 --- a/examples/amm/tealscript_artifacts/ConstantProductAMM.json +++ b/examples/amm/tealscript_artifacts/ConstantProductAMM.json @@ -80,7 +80,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgY3JlYXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjIwCgkvLyB0aGlzLmdvdmVybm9yLnZhbHVlID0gdGhpcy50eG4uc2VuZGVyCglieXRlIDB4NjcgLy8gImciCgl0eG4gU2VuZGVyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgpkb0NyZWF0ZVBvb2xUb2tlbjoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoyNgoJLy8gcmV0dXJuIHNlbmRBc3NldENyZWF0aW9uKHsKCS8vICAgICAgIGNvbmZpZ0Fzc2V0TmFtZTogJ0RQVC0nICsgYUFzc2V0LnVuaXROYW1lICsgJy0nICsgYkFzc2V0LnVuaXROYW1lLAoJLy8gICAgICAgY29uZmlnQXNzZXRVbml0TmFtZTogJ2RwdCcsCgkvLyAgICAgICBjb25maWdBc3NldFRvdGFsOiBUT1RBTF9TVVBQTFksCgkvLyAgICAgICBjb25maWdBc3NldERlY2ltYWxzOiAzLAoJLy8gICAgICAgY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXRSZXNlcnZlOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgIH0pOwoJaXR4bl9iZWdpbgoJaW50IGFjZmcKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MjcKCS8vIGNvbmZpZ0Fzc2V0TmFtZTogJ0RQVC0nICsgYUFzc2V0LnVuaXROYW1lICsgJy0nICsgYkFzc2V0LnVuaXROYW1lCglieXRlIDB4NDQ1MDU0MmQgLy8gIkRQVC0iCglmcmFtZV9kaWcgLTEgLy8gYUFzc2V0OiBhc3NldAoJYXNzZXRfcGFyYW1zX2dldCBBc3NldFVuaXROYW1lCglhc3NlcnQKCWNvbmNhdAoJYnl0ZSAweDJkIC8vICItIgoJY29uY2F0CglmcmFtZV9kaWcgLTIgLy8gYkFzc2V0OiBhc3NldAoJYXNzZXRfcGFyYW1zX2dldCBBc3NldFVuaXROYW1lCglhc3NlcnQKCWNvbmNhdAoJaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MjgKCS8vIGNvbmZpZ0Fzc2V0VW5pdE5hbWU6ICdkcHQnCglieXRlIDB4NjQ3MDc0IC8vICJkcHQiCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MjkKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IFRPVEFMX1NVUFBMWQoJaW50IDEwXzAwMF8wMDBfMDAwCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzAKCS8vIGNvbmZpZ0Fzc2V0RGVjaW1hbHM6IDMKCWludCAzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RGVjaW1hbHMKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzEKCS8vIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjMyCgkvLyBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gQ3JlYXRlZEFzc2V0SUQKCXJldHN1YgoKZG9BeGZlcjoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czozNwoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogcmVjZWl2ZXIsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IGFzc2V0LAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IGFtb3VudCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjM4CgkvLyBhc3NldFJlY2VpdmVyOiByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHJlY2VpdmVyOiBhY2NvdW50CglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzkKCS8vIHhmZXJBc3NldDogYXNzZXQKCWZyYW1lX2RpZyAtMiAvLyBhc3NldDogYXNzZXQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjQwCgkvLyBhc3NldEFtb3VudDogYW1vdW50CglmcmFtZV9kaWcgLTMgLy8gYW1vdW50OiB1aW50NjQKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCmRvT3B0SW46Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NDUKCS8vIHRoaXMuZG9BeGZlcih0aGlzLmFwcC5hZGRyZXNzLCBhc3NldCwgMCkKCWludCAwCglmcmFtZV9kaWcgLTEgLy8gYXNzZXQ6IGFzc2V0CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJY2FsbHN1YiBkb0F4ZmVyCglyZXRzdWIKCnRva2Vuc1RvTWludEludGlhbDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo0OQoJLy8gcmV0dXJuIHNxcnQoYUFtb3VudCAqIGJBbW91bnQpOwoJZnJhbWVfZGlnIC0xIC8vIGFBbW91bnQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGJBbW91bnQ6IHVpbnQ2NAoJKgoJc3FydAoJcmV0c3ViCgp0b2tlbnNUb01pbnQ6Cglwcm90byA4IDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NTMKCS8vIGFSYXRpbyA9IHdpZGVSYXRpbyhbYUFtb3VudCwgU0NBTEVdLCBbYVN1cHBseV0pCglmcmFtZV9kaWcgLTQgLy8gYUFtb3VudDogdWludDY0CglpbnQgMV8wMDAKCW11bHcKCWludCAwCglmcmFtZV9kaWcgLTIgLy8gYVN1cHBseTogdWludDY0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoJYXNzZXJ0CglmcmFtZV9idXJ5IC02IC8vIGFSYXRpbzogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjU0CgkvLyBiUmF0aW8gPSB3aWRlUmF0aW8oW2JBbW91bnQsIFNDQUxFXSwgW2JTdXBwbHldKQoJZnJhbWVfZGlnIC01IC8vIGJBbW91bnQ6IHVpbnQ2NAoJaW50IDFfMDAwCgltdWx3CglpbnQgMAoJZnJhbWVfZGlnIC0zIC8vIGJTdXBwbHk6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCWFzc2VydAoJZnJhbWVfYnVyeSAtNyAvLyBiUmF0aW86IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1NgoJLy8gcmF0aW8gPSBhUmF0aW8gPCBiUmF0aW8gPyBhUmF0aW8gOiBiUmF0aW8KCWZyYW1lX2RpZyAtNiAvLyBhUmF0aW86IHVpbnQ2NAoJZnJhbWVfZGlnIC03IC8vIGJSYXRpbzogdWludDY0Cgk8CglieiB0ZXJuYXJ5MV9mYWxzZQoJZnJhbWVfZGlnIC02IC8vIGFSYXRpbzogdWludDY0CgliIHRlcm5hcnkxX2VuZAoKdGVybmFyeTFfZmFsc2U6CglmcmFtZV9kaWcgLTcgLy8gYlJhdGlvOiB1aW50NjQKCnRlcm5hcnkxX2VuZDoKCWZyYW1lX2J1cnkgLTggLy8gcmF0aW86IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1OAoJLy8gcmV0dXJuIHdpZGVSYXRpbyhbcmF0aW8sIGlzc3VlZF0sIFtTQ0FMRV0pOwoJZnJhbWVfZGlnIC04IC8vIHJhdGlvOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBpc3N1ZWQ6IHVpbnQ2NAoJbXVsdwoJaW50IDAKCWludCAxXzAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCWFzc2VydAoJcmV0c3ViCgpjb21wdXRlUmF0aW86Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NjIKCS8vIHJldHVybiB3aWRlUmF0aW8oCgkvLyAgICAgICBbdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UodGhpcy5hc3NldEEudmFsdWUpLCBTQ0FMRV0sCgkvLyAgICAgICBbdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UodGhpcy5hc3NldEIudmFsdWUpXQoJLy8gICAgICk7CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJYXNzZXJ0CglpbnQgMV8wMDAKCW11bHcKCWludCAwCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYnl0ZSAweDYyIC8vICJiIgoJYXBwX2dsb2JhbF9nZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJYXNzZXJ0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoJYXNzZXJ0CglyZXRzdWIKCnRva2Vuc1RvQnVybjoKCXByb3RvIDMgMQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo2OQoJLy8gcmV0dXJuIHdpZGVSYXRpbyhbc3VwcGx5LCBhbW91bnRdLCBbaXNzdWVkXSk7CglmcmFtZV9kaWcgLTIgLy8gc3VwcGx5OiB1aW50NjQKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnQ6IHVpbnQ2NAoJbXVsdwoJaW50IDAKCWZyYW1lX2RpZyAtMSAvLyBpc3N1ZWQ6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCWFzc2VydAoJcmV0c3ViCgp0b2tlbnNUb1N3YXA6Cglwcm90byA0IDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NzMKCS8vIGZhY3RvciA9IFNDQUxFIC0gRkVFCglpbnQgOTk1CglmcmFtZV9idXJ5IC00IC8vIGZhY3RvcjogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjc0CgkvLyByZXR1cm4gd2lkZVJhdGlvKFtpbkFtb3VudCwgZmFjdG9yLCBvdXRTdXBwbHldLCBbaW5TdXBwbHkgKiBTQ0FMRSArIGluQW1vdW50ICogZmFjdG9yXSk7CglmcmFtZV9kaWcgLTEgLy8gaW5BbW91bnQ6IHVpbnQ2NAoJaW50IDk5NSAvLyBmYWN0b3I6IHVpbnQ2NAoJbXVsdwoJZnJhbWVfZGlnIC0zIC8vIG91dFN1cHBseTogdWludDY0Cgl1bmNvdmVyIDIKCWRpZyAxCgkqCgljb3ZlciAyCgltdWx3Cgljb3ZlciAyCgkrCglzd2FwCglpbnQgMAoJZnJhbWVfZGlnIC0yIC8vIGluU3VwcGx5OiB1aW50NjQKCWludCAxXzAwMAoJKgoJZnJhbWVfZGlnIC0xIC8vIGluQW1vdW50OiB1aW50NjQKCWludCA5OTUgLy8gZmFjdG9yOiB1aW50NjQKCSoKCSsKCWRpdm1vZHcKCXBvcAoJcG9wCglzd2FwCgkhCglhc3NlcnQKCXJldHN1YgoKLy8gc2V0X2dvdmVybm9yKGFjY291bnQpdm9pZAphYmlfcm91dGVfc2V0X2dvdmVybm9yOgoJLy8gZ292ZXJub3I6IGFjY291bnQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFjY291bnRzCgoJLy8gZXhlY3V0ZSBzZXRfZ292ZXJub3IoYWNjb3VudCl2b2lkCgljYWxsc3ViIHNldF9nb3Zlcm5vcgoJaW50IDEKCXJldHVybgoKc2V0X2dvdmVybm9yOgoJcHJvdG8gMSAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjc4CgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsgc2VuZGVyOiB0aGlzLmdvdmVybm9yLnZhbHVlIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCgl0eG4gU2VuZGVyCglieXRlIDB4NjcgLy8gImciCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo3OQoJLy8gdGhpcy5nb3Zlcm5vci52YWx1ZSA9IGdvdmVybm9yCglieXRlIDB4NjcgLy8gImciCglmcmFtZV9kaWcgLTEgLy8gZ292ZXJub3I6IGFjY291bnQKCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCi8vIGJvb3RzdHJhcChhc3NldCxhc3NldCxwYXkpdWludDY0CmFiaV9yb3V0ZV9ib290c3RyYXA6CgkvLyBiQXNzZXQ6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBhQXNzZXQ6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBzZWVkOiBwYXkKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IHBheQoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYm9vdHN0cmFwKGFzc2V0LGFzc2V0LHBheSl1aW50NjQKCWNhbGxzdWIgYm9vdHN0cmFwCglpbnQgMQoJcmV0dXJuCgpib290c3RyYXA6Cglwcm90byAzIDAKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6ODMKCS8vIHZlcmlmeVR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHRoaXMuZ292ZXJub3IudmFsdWUgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2NyAvLyAiZyIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjg1CgkvLyBhc3NlcnQoZ2xvYmFscy5ncm91cFNpemUgPT09IDIpCglnbG9iYWwgR3JvdXBTaXplCglpbnQgMgoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo4NwoJLy8gdmVyaWZ5VHhuKHNlZWQsIHsgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsIGFtb3VudDogeyBncmVhdGVyVGhhbkVxdWFsVG86IDMwMF8wMDAgfSB9KQoJLy8gdmVyaWZ5IHJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gc2VlZDogcGF5CglndHhucyBSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYW1vdW50CglmcmFtZV9kaWcgLTEgLy8gc2VlZDogcGF5CglndHhucyBBbW91bnQKCWludCAzMDBfMDAwCgk+PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjg4CgkvLyBhc3NlcnQoYUFzc2V0IDwgYkFzc2V0KQoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogYXNzZXQKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IGFzc2V0Cgk8Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6OTAKCS8vIHRoaXMuYXNzZXRBLnZhbHVlID0gYUFzc2V0CglieXRlIDB4NjEgLy8gImEiCglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBhc3NldAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6OTEKCS8vIHRoaXMuYXNzZXRCLnZhbHVlID0gYkFzc2V0CglieXRlIDB4NjIgLy8gImIiCglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBhc3NldAoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6OTIKCS8vIHRoaXMucG9vbFRva2VuLnZhbHVlID0gdGhpcy5kb0NyZWF0ZVBvb2xUb2tlbihhQXNzZXQsIGJBc3NldCkKCWJ5dGUgMHg3MCAvLyAicCIKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IGFzc2V0CglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBhc3NldAoJY2FsbHN1YiBkb0NyZWF0ZVBvb2xUb2tlbgoJYXBwX2dsb2JhbF9wdXQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6OTQKCS8vIHRoaXMuZG9PcHRJbihhQXNzZXQpCglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBhc3NldAoJY2FsbHN1YiBkb09wdEluCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjk1CgkvLyB0aGlzLmRvT3B0SW4oYkFzc2V0KQoJZnJhbWVfZGlnIC0zIC8vIGJBc3NldDogYXNzZXQKCWNhbGxzdWIgZG9PcHRJbgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5NwoJLy8gcmV0dXJuIHRoaXMucG9vbFRva2VuLnZhbHVlOwoJYnl0ZSAweDcwIC8vICJwIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWJ5dGUgMHgxNTFmN2M3NQoJc3dhcAoJY29uY2F0Cglsb2cKCXJldHN1YgoKLy8gbWludChhc3NldCxhc3NldCxhc3NldCxheGZlcixheGZlcil2b2lkCmFiaV9yb3V0ZV9taW50OgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBiQXNzZXQ6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBhQXNzZXQ6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBwb29sQXNzZXQ6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBiWGZlcjogYXhmZXIKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IGF4ZmVyCgk9PQoJYXNzZXJ0CgoJLy8gYVhmZXI6IGF4ZmVyCgl0eG4gR3JvdXBJbmRleAoJaW50IDIKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBheGZlcgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgbWludChhc3NldCxhc3NldCxhc3NldCxheGZlcixheGZlcil2b2lkCgljYWxsc3ViIG1pbnQKCWludCAxCglyZXR1cm4KCm1pbnQ6Cglwcm90byA2IDAKCgkvLyB3ZWxsIGZvcm1lZCBtaW50CgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTAyCgkvLyBhc3NlcnQoYUFzc2V0ID09PSB0aGlzLmFzc2V0QS52YWx1ZSkKCWZyYW1lX2RpZyAtNCAvLyBhQXNzZXQ6IGFzc2V0CglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMDMKCS8vIGFzc2VydChiQXNzZXQgPT09IHRoaXMuYXNzZXRCLnZhbHVlKQoJZnJhbWVfZGlnIC01IC8vIGJBc3NldDogYXNzZXQKCWJ5dGUgMHg2MiAvLyAiYiIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEwNAoJLy8gYXNzZXJ0KHBvb2xBc3NldCA9PT0gdGhpcy5wb29sVG9rZW4udmFsdWUpCglmcmFtZV9kaWcgLTMgLy8gcG9vbEFzc2V0OiBhc3NldAoJYnl0ZSAweDcwIC8vICJwIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyB2YWxpZCBhc3NldCBBIGF4ZmVyCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTA3CgkvLyB2ZXJpZnlUeG4oYVhmZXIsIHsKCS8vICAgICAgIHNlbmRlcjogdGhpcy50eG4uc2VuZGVyLAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IHsgZ3JlYXRlclRoYW46IDAgfSwKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IGFBc3NldCwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBheGZlcgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0QW1vdW50CglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IGF4ZmVyCglndHhucyBBc3NldEFtb3VudAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIHZlcmlmeSBhc3NldFJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IGF4ZmVyCglndHhucyBBc3NldFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSB4ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogYXhmZXIKCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC00IC8vIGFBc3NldDogYXNzZXQKCT09Cglhc3NlcnQKCgkvLyB2YWxpZCBhc3NldCBCIGF4ZmVyCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTE1CgkvLyB2ZXJpZnlUeG4oYlhmZXIsIHsKCS8vICAgICAgIHNlbmRlcjogdGhpcy50eG4uc2VuZGVyLAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IHsgZ3JlYXRlclRoYW46IDAgfSwKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IGJBc3NldCwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBheGZlcgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0QW1vdW50CglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IGF4ZmVyCglndHhucyBBc3NldEFtb3VudAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIHZlcmlmeSBhc3NldFJlY2VpdmVyCglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IGF4ZmVyCglndHhucyBBc3NldFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSB4ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogYXhmZXIKCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC01IC8vIGJBc3NldDogYXNzZXQKCT09Cglhc3NlcnQKCgkvLyBpZjBfY29uZGl0aW9uCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTIzCgkvLyB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShhQXNzZXQpID09PSBhWGZlci5hc3NldEFtb3VudCAmJgoJLy8gICAgICAgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYkFzc2V0KSA9PT0gYlhmZXIuYXNzZXRBbW91bnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTQgLy8gYUFzc2V0OiBhc3NldAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglhc3NlcnQKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogYXhmZXIKCWd0eG5zIEFzc2V0QW1vdW50Cgk9PQoJZHVwCglieiBza2lwX2FuZDAKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTUgLy8gYkFzc2V0OiBhc3NldAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglhc3NlcnQKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogYXhmZXIKCWd0eG5zIEFzc2V0QW1vdW50Cgk9PQoJJiYKCnNraXBfYW5kMDoKCWJ6IGlmMF9lbHNlCgoJLy8gaWYwX2NvbnNlcXVlbnQKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMjYKCS8vIHRoaXMudG9rZW5zVG9NaW50SW50aWFsKGFYZmVyLmFzc2V0QW1vdW50LCBiWGZlci5hc3NldEFtb3VudCkKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogYXhmZXIKCWd0eG5zIEFzc2V0QW1vdW50CglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IGF4ZmVyCglndHhucyBBc3NldEFtb3VudAoJY2FsbHN1YiB0b2tlbnNUb01pbnRJbnRpYWwKCWIgaWYwX2VuZAoKaWYwX2Vsc2U6CgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTI4CgkvLyB0b01pbnQgPSB0aGlzLnRva2Vuc1RvTWludCgKCS8vICAgICAgICAgVE9UQUxfU1VQUExZIC0gdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UocG9vbEFzc2V0KSwKCS8vICAgICAgICAgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYUFzc2V0KSAtIGFYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgICB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShiQXNzZXQpIC0gYlhmZXIuYXNzZXRBbW91bnQsCgkvLyAgICAgICAgIGFYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgICBiWGZlci5hc3NldEFtb3VudAoJLy8gICAgICAgKQoJYnl0ZSAweDsgZHVwbiAyIC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBheGZlcgoJZ3R4bnMgQXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogYXhmZXIKCWd0eG5zIEFzc2V0QW1vdW50CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC01IC8vIGJBc3NldDogYXNzZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJYXNzZXJ0CglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IGF4ZmVyCglndHhucyBBc3NldEFtb3VudAoJLQoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNCAvLyBhQXNzZXQ6IGFzc2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCWFzc2VydAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBheGZlcgoJZ3R4bnMgQXNzZXRBbW91bnQKCS0KCWludCAxMF8wMDBfMDAwXzAwMAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IGFzc2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCWFzc2VydAoJLQoJY2FsbHN1YiB0b2tlbnNUb01pbnQKCWZyYW1lX2J1cnkgLTYgLy8gdG9NaW50OiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTM2CgkvLyBhc3NlcnQodG9NaW50ID4gMCkKCWZyYW1lX2RpZyAtNiAvLyB0b01pbnQ6IHVpbnQ2NAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMzgKCS8vIHRoaXMuZG9BeGZlcih0aGlzLnR4bi5zZW5kZXIsIHBvb2xBc3NldCwgdG9NaW50KQoJZnJhbWVfZGlnIC02IC8vIHRvTWludDogdWludDY0CglmcmFtZV9kaWcgLTMgLy8gcG9vbEFzc2V0OiBhc3NldAoJdHhuIFNlbmRlcgoJY2FsbHN1YiBkb0F4ZmVyCgppZjBfZW5kOgoJcmV0c3ViCgovLyBidXJuKGFzc2V0LGFzc2V0LGFzc2V0LGF4ZmVyKXZvaWQKYWJpX3JvdXRlX2J1cm46CglieXRlIDB4OyBkdXBuIDIgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gYkFzc2V0OiBhc3NldAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwoJYnRvaQoJdHhuYXMgQXNzZXRzCgoJLy8gYUFzc2V0OiBhc3NldAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoJdHhuYXMgQXNzZXRzCgoJLy8gcG9vbEFzc2V0OiBhc3NldAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQXNzZXRzCgoJLy8gcG9vbFhmZXI6IGF4ZmVyCgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBheGZlcgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgYnVybihhc3NldCxhc3NldCxhc3NldCxheGZlcil2b2lkCgljYWxsc3ViIGJ1cm4KCWludCAxCglyZXR1cm4KCmJ1cm46Cglwcm90byA3IDAKCgkvLyB3ZWxsIGZvcm1lZCBidXJuCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTQ0CgkvLyBhc3NlcnQocG9vbEFzc2V0ID09PSB0aGlzLnBvb2xUb2tlbi52YWx1ZSkKCWZyYW1lX2RpZyAtMiAvLyBwb29sQXNzZXQ6IGFzc2V0CglieXRlIDB4NzAgLy8gInAiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNDUKCS8vIGFzc2VydChhQXNzZXQgPT09IHRoaXMuYXNzZXRBLnZhbHVlKQoJZnJhbWVfZGlnIC0zIC8vIGFBc3NldDogYXNzZXQKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE0NgoJLy8gYXNzZXJ0KGJBc3NldCA9PT0gdGhpcy5hc3NldEIudmFsdWUpCglmcmFtZV9kaWcgLTQgLy8gYkFzc2V0OiBhc3NldAoJYnl0ZSAweDYyIC8vICJiIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyB2YWxpZCBwb29sIGF4ZmVyCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTQ5CgkvLyB2ZXJpZnlUeG4ocG9vbFhmZXIsIHsKCS8vICAgICAgIHNlbmRlcjogdGhpcy50eG4uc2VuZGVyLAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IHsgZ3JlYXRlclRoYW46IDAgfSwKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IHBvb2xBc3NldCwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJZnJhbWVfZGlnIC0xIC8vIHBvb2xYZmVyOiBheGZlcgoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0QW1vdW50CglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IGF4ZmVyCglndHhucyBBc3NldEFtb3VudAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIHZlcmlmeSBhc3NldFJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IGF4ZmVyCglndHhucyBBc3NldFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSB4ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogYXhmZXIKCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBc3NldDogYXNzZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTU2CgkvLyBpc3N1ZWQgPSBUT1RBTF9TVVBQTFkgLSAodGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UocG9vbEFzc2V0KSAtIHBvb2xYZmVyLmFzc2V0QW1vdW50KQoJaW50IDEwXzAwMF8wMDBfMDAwCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBc3NldDogYXNzZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJYXNzZXJ0CglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IGF4ZmVyCglndHhucyBBc3NldEFtb3VudAoJLQoJLQoJZnJhbWVfYnVyeSAtNSAvLyBpc3N1ZWQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNTgKCS8vIGFBbXQgPSB0aGlzLnRva2Vuc1RvQnVybihpc3N1ZWQsIHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKGFBc3NldCksIHBvb2xYZmVyLmFzc2V0QW1vdW50KQoJZnJhbWVfZGlnIC0xIC8vIHBvb2xYZmVyOiBheGZlcgoJZ3R4bnMgQXNzZXRBbW91bnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTMgLy8gYUFzc2V0OiBhc3NldAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglhc3NlcnQKCWZyYW1lX2RpZyAtNSAvLyBpc3N1ZWQ6IHVpbnQ2NAoJY2FsbHN1YiB0b2tlbnNUb0J1cm4KCWZyYW1lX2J1cnkgLTYgLy8gYUFtdDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE2MAoJLy8gYkFtdCA9IHRoaXMudG9rZW5zVG9CdXJuKGlzc3VlZCwgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYkFzc2V0KSwgcG9vbFhmZXIuYXNzZXRBbW91bnQpCglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IGF4ZmVyCglndHhucyBBc3NldEFtb3VudAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNCAvLyBiQXNzZXQ6IGFzc2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCWFzc2VydAoJZnJhbWVfZGlnIC01IC8vIGlzc3VlZDogdWludDY0CgljYWxsc3ViIHRva2Vuc1RvQnVybgoJZnJhbWVfYnVyeSAtNyAvLyBiQW10OiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTYyCgkvLyB0aGlzLmRvQXhmZXIodGhpcy50eG4uc2VuZGVyLCBhQXNzZXQsIGFBbXQpCglmcmFtZV9kaWcgLTYgLy8gYUFtdDogdWludDY0CglmcmFtZV9kaWcgLTMgLy8gYUFzc2V0OiBhc3NldAoJdHhuIFNlbmRlcgoJY2FsbHN1YiBkb0F4ZmVyCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE2MwoJLy8gdGhpcy5kb0F4ZmVyKHRoaXMudHhuLnNlbmRlciwgYkFzc2V0LCBiQW10KQoJZnJhbWVfZGlnIC03IC8vIGJBbXQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC00IC8vIGJBc3NldDogYXNzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgZG9BeGZlcgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNjUKCS8vIHRoaXMucmF0aW8udmFsdWUgPSB0aGlzLmNvbXB1dGVSYXRpbygpCglieXRlIDB4NzIgLy8gInIiCgljYWxsc3ViIGNvbXB1dGVSYXRpbwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gc3dhcChhc3NldCxhc3NldCxheGZlcil2b2lkCmFiaV9yb3V0ZV9zd2FwOgoJYnl0ZSAweDsgZHVwbiAyIC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGJBc3NldDogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIGFBc3NldDogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIHN3YXBYZmVyOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09Cglhc3NlcnQKCgkvLyBleGVjdXRlIHN3YXAoYXNzZXQsYXNzZXQsYXhmZXIpdm9pZAoJY2FsbHN1YiBzd2FwCglpbnQgMQoJcmV0dXJuCgpzd2FwOgoJcHJvdG8gNiAwCgoJLy8gd2VsbCBmb3JtZWQgc3dhcAoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE3MAoJLy8gYXNzZXJ0KGFBc3NldCA9PT0gdGhpcy5hc3NldEEudmFsdWUpCglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBhc3NldAoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTcxCgkvLyBhc3NlcnQoYkFzc2V0ID09PSB0aGlzLmFzc2V0Qi52YWx1ZSkKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IGFzc2V0CglieXRlIDB4NjIgLy8gImIiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNzMKCS8vIHZlcmlmeVR4bihzd2FwWGZlciwgewoJLy8gICAgICAgYXNzZXRBbW91bnQ6IHsgZ3JlYXRlclRoYW46IDAgfSwKCS8vICAgICAgIGFzc2V0UmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MsCgkvLyAgICAgICBzZW5kZXI6IHRoaXMudHhuLnNlbmRlciwKCS8vICAgICAgIHhmZXJBc3NldDogeyBpbmNsdWRlZEluOiBbYUFzc2V0LCBiQXNzZXRdIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBhc3NldEFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIHN3YXBYZmVyOiBheGZlcgoJZ3R4bnMgQXNzZXRBbW91bnQKCWludCAwCgk+Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRSZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHN3YXBYZmVyOiBheGZlcgoJZ3R4bnMgQXNzZXRSZWNlaXZlcgoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IGF4ZmVyCglndHhucyBTZW5kZXIKCXR4biBTZW5kZXIKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgeGZlckFzc2V0CglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IGF4ZmVyCglndHhucyBYZmVyQXNzZXQKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IGFzc2V0Cgk9PQoJZnJhbWVfZGlnIC0xIC8vIHN3YXBYZmVyOiBheGZlcgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBhc3NldAoJPT0KCXx8Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTgwCgkvLyBvdXRJZCA9IHN3YXBYZmVyLnhmZXJBc3NldCA9PT0gYUFzc2V0ID8gYUFzc2V0IDogYkFzc2V0CglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IGF4ZmVyCglndHhucyBYZmVyQXNzZXQKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IGFzc2V0Cgk9PQoJYnogdGVybmFyeTNfZmFsc2UKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IGFzc2V0CgliIHRlcm5hcnkzX2VuZAoKdGVybmFyeTNfZmFsc2U6CglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBhc3NldAoKdGVybmFyeTNfZW5kOgoJZnJhbWVfYnVyeSAtNCAvLyBvdXRJZDogYXNzZXQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTgyCgkvLyBpbklkID0gc3dhcFhmZXIueGZlckFzc2V0CglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IGF4ZmVyCglndHhucyBYZmVyQXNzZXQKCWZyYW1lX2J1cnkgLTUgLy8gaW5JZDogYXNzZXQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTg0CgkvLyB0b1N3YXAgPSB0aGlzLnRva2Vuc1RvU3dhcCgKCS8vICAgICAgIHN3YXBYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoaW5JZCkgLSBzd2FwWGZlci5hc3NldEFtb3VudCwKCS8vICAgICAgIHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKG91dElkKQoJLy8gICAgICkKCWJ5dGUgMHggLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC00IC8vIG91dElkOiBhc3NldAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglhc3NlcnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTUgLy8gaW5JZDogYXNzZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJYXNzZXJ0CglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IGF4ZmVyCglndHhucyBBc3NldEFtb3VudAoJLQoJZnJhbWVfZGlnIC0xIC8vIHN3YXBYZmVyOiBheGZlcgoJZ3R4bnMgQXNzZXRBbW91bnQKCWNhbGxzdWIgdG9rZW5zVG9Td2FwCglmcmFtZV9idXJ5IC02IC8vIHRvU3dhcDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE5MAoJLy8gYXNzZXJ0KHRvU3dhcCA+IDApCglmcmFtZV9kaWcgLTYgLy8gdG9Td2FwOiB1aW50NjQKCWludCAwCgk+Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTkyCgkvLyB0aGlzLmRvQXhmZXIodGhpcy50eG4uc2VuZGVyLCBvdXRJZCwgdG9Td2FwKQoJZnJhbWVfZGlnIC02IC8vIHRvU3dhcDogdWludDY0CglmcmFtZV9kaWcgLTQgLy8gb3V0SWQ6IGFzc2V0Cgl0eG4gU2VuZGVyCgljYWxsc3ViIGRvQXhmZXIKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTk0CgkvLyB0aGlzLnJhdGlvLnZhbHVlID0gdGhpcy5jb21wdXRlUmF0aW8oKQoJYnl0ZSAweDcyIC8vICJyIgoJY2FsbHN1YiBjb21wdXRlUmF0aW8KCWFwcF9nbG9iYWxfcHV0CglyZXRzdWIKCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInNldF9nb3Zlcm5vcihhY2NvdW50KXZvaWQiCgltZXRob2QgImJvb3RzdHJhcChwYXksYXNzZXQsYXNzZXQpdWludDY0IgoJbWV0aG9kICJtaW50KGF4ZmVyLGF4ZmVyLGFzc2V0LGFzc2V0LGFzc2V0KXZvaWQiCgltZXRob2QgImJ1cm4oYXhmZXIsYXNzZXQsYXNzZXQsYXNzZXQpdm9pZCIKCW1ldGhvZCAic3dhcChheGZlcixhc3NldCxhc3NldCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3NldF9nb3Zlcm5vciBhYmlfcm91dGVfYm9vdHN0cmFwIGFiaV9yb3V0ZV9taW50IGFiaV9yb3V0ZV9idXJuIGFiaV9yb3V0ZV9zd2FwCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCS8vIGV4ZWN1dGUgY3JlYXRlQXBwbGljYXRpb24oKXZvaWQKCWNhbGxzdWIgY3JlYXRlQXBwbGljYXRpb24KCWludCAxCglyZXR1cm4KCmNyZWF0ZUFwcGxpY2F0aW9uOgoJcHJvdG8gMCAwCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjIwCgkvLyB0aGlzLmdvdmVybm9yLnZhbHVlID0gdGhpcy50eG4uc2VuZGVyCglieXRlIDB4NjcgLy8gImciCgl0eG4gU2VuZGVyCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgpkb0NyZWF0ZVBvb2xUb2tlbjoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoyNgoJLy8gcmV0dXJuIHNlbmRBc3NldENyZWF0aW9uKHsKCS8vICAgICAgIGNvbmZpZ0Fzc2V0TmFtZTogJ0RQVC0nICsgYUFzc2V0LnVuaXROYW1lICsgJy0nICsgYkFzc2V0LnVuaXROYW1lLAoJLy8gICAgICAgY29uZmlnQXNzZXRVbml0TmFtZTogJ2RwdCcsCgkvLyAgICAgICBjb25maWdBc3NldFRvdGFsOiBUT1RBTF9TVVBQTFksCgkvLyAgICAgICBjb25maWdBc3NldERlY2ltYWxzOiAzLAoJLy8gICAgICAgY29uZmlnQXNzZXRNYW5hZ2VyOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgICAgY29uZmlnQXNzZXRSZXNlcnZlOiB0aGlzLmFwcC5hZGRyZXNzLAoJLy8gICAgIH0pOwoJaXR4bl9iZWdpbgoJaW50IGFjZmcKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MjcKCS8vIGNvbmZpZ0Fzc2V0TmFtZTogJ0RQVC0nICsgYUFzc2V0LnVuaXROYW1lICsgJy0nICsgYkFzc2V0LnVuaXROYW1lCglieXRlIDB4NDQ1MDU0MmQgLy8gIkRQVC0iCglmcmFtZV9kaWcgLTEgLy8gYUFzc2V0OiBhc3NldAoJYXNzZXRfcGFyYW1zX2dldCBBc3NldFVuaXROYW1lCglhc3NlcnQKCWNvbmNhdAoJYnl0ZSAweDJkIC8vICItIgoJY29uY2F0CglmcmFtZV9kaWcgLTIgLy8gYkFzc2V0OiBhc3NldAoJYXNzZXRfcGFyYW1zX2dldCBBc3NldFVuaXROYW1lCglhc3NlcnQKCWNvbmNhdAoJaXR4bl9maWVsZCBDb25maWdBc3NldE5hbWUKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MjgKCS8vIGNvbmZpZ0Fzc2V0VW5pdE5hbWU6ICdkcHQnCglieXRlIDB4NjQ3MDc0IC8vICJkcHQiCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VW5pdE5hbWUKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MjkKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IFRPVEFMX1NVUFBMWQoJaW50IDEwXzAwMF8wMDBfMDAwCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzAKCS8vIGNvbmZpZ0Fzc2V0RGVjaW1hbHM6IDMKCWludCAzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0RGVjaW1hbHMKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzEKCS8vIGNvbmZpZ0Fzc2V0TWFuYWdlcjogdGhpcy5hcHAuYWRkcmVzcwoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWl0eG5fZmllbGQgQ29uZmlnQXNzZXRNYW5hZ2VyCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjMyCgkvLyBjb25maWdBc3NldFJlc2VydmU6IHRoaXMuYXBwLmFkZHJlc3MKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0UmVzZXJ2ZQoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIFN1Ym1pdCBpbm5lciB0cmFuc2FjdGlvbgoJaXR4bl9zdWJtaXQKCWl0eG4gQ3JlYXRlZEFzc2V0SUQKCXJldHN1YgoKZG9BeGZlcjoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czozNwoJLy8gc2VuZEFzc2V0VHJhbnNmZXIoewoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogcmVjZWl2ZXIsCgkvLyAgICAgICB4ZmVyQXNzZXQ6IGFzc2V0LAoJLy8gICAgICAgYXNzZXRBbW91bnQ6IGFtb3VudCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGF4ZmVyCglpdHhuX2ZpZWxkIFR5cGVFbnVtCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjM4CgkvLyBhc3NldFJlY2VpdmVyOiByZWNlaXZlcgoJZnJhbWVfZGlnIC0xIC8vIHJlY2VpdmVyOiBhY2NvdW50CglpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MzkKCS8vIHhmZXJBc3NldDogYXNzZXQKCWZyYW1lX2RpZyAtMiAvLyBhc3NldDogYXNzZXQKCWl0eG5fZmllbGQgWGZlckFzc2V0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjQwCgkvLyBhc3NldEFtb3VudDogYW1vdW50CglmcmFtZV9kaWcgLTMgLy8gYW1vdW50OiB1aW50NjQKCWl0eG5fZmllbGQgQXNzZXRBbW91bnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCmRvT3B0SW46Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NDUKCS8vIHRoaXMuZG9BeGZlcih0aGlzLmFwcC5hZGRyZXNzLCBhc3NldCwgMCkKCWludCAwCglmcmFtZV9kaWcgLTEgLy8gYXNzZXQ6IGFzc2V0CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJY2FsbHN1YiBkb0F4ZmVyCglyZXRzdWIKCnRva2Vuc1RvTWludEludGlhbDoKCXByb3RvIDIgMQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo0OQoJLy8gcmV0dXJuIHNxcnQoYUFtb3VudCAqIGJBbW91bnQpOwoJZnJhbWVfZGlnIC0xIC8vIGFBbW91bnQ6IHVpbnQ2NAoJZnJhbWVfZGlnIC0yIC8vIGJBbW91bnQ6IHVpbnQ2NAoJKgoJc3FydAoJcmV0c3ViCgp0b2tlbnNUb01pbnQ6Cglwcm90byA4IDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NTMKCS8vIGFSYXRpbyA9IHdpZGVSYXRpbyhbYUFtb3VudCwgU0NBTEVdLCBbYVN1cHBseV0pCglmcmFtZV9kaWcgLTQgLy8gYUFtb3VudDogdWludDY0CglpbnQgMV8wMDAKCW11bHcKCWludCAwCglmcmFtZV9kaWcgLTIgLy8gYVN1cHBseTogdWludDY0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoJYXNzZXJ0CglmcmFtZV9idXJ5IC02IC8vIGFSYXRpbzogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjU0CgkvLyBiUmF0aW8gPSB3aWRlUmF0aW8oW2JBbW91bnQsIFNDQUxFXSwgW2JTdXBwbHldKQoJZnJhbWVfZGlnIC01IC8vIGJBbW91bnQ6IHVpbnQ2NAoJaW50IDFfMDAwCgltdWx3CglpbnQgMAoJZnJhbWVfZGlnIC0zIC8vIGJTdXBwbHk6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCWFzc2VydAoJZnJhbWVfYnVyeSAtNyAvLyBiUmF0aW86IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1NgoJLy8gcmF0aW8gPSBhUmF0aW8gPCBiUmF0aW8gPyBhUmF0aW8gOiBiUmF0aW8KCWZyYW1lX2RpZyAtNiAvLyBhUmF0aW86IHVpbnQ2NAoJZnJhbWVfZGlnIC03IC8vIGJSYXRpbzogdWludDY0Cgk8CglieiB0ZXJuYXJ5MV9mYWxzZQoJZnJhbWVfZGlnIC02IC8vIGFSYXRpbzogdWludDY0CgliIHRlcm5hcnkxX2VuZAoKdGVybmFyeTFfZmFsc2U6CglmcmFtZV9kaWcgLTcgLy8gYlJhdGlvOiB1aW50NjQKCnRlcm5hcnkxX2VuZDoKCWZyYW1lX2J1cnkgLTggLy8gcmF0aW86IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo1OAoJLy8gcmV0dXJuIHdpZGVSYXRpbyhbcmF0aW8sIGlzc3VlZF0sIFtTQ0FMRV0pOwoJZnJhbWVfZGlnIC04IC8vIHJhdGlvOiB1aW50NjQKCWZyYW1lX2RpZyAtMSAvLyBpc3N1ZWQ6IHVpbnQ2NAoJbXVsdwoJaW50IDAKCWludCAxXzAwMAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCWFzc2VydAoJcmV0c3ViCgpjb21wdXRlUmF0aW86Cglwcm90byAwIDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NjIKCS8vIHJldHVybiB3aWRlUmF0aW8oCgkvLyAgICAgICBbdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UodGhpcy5hc3NldEEudmFsdWUpLCBTQ0FMRV0sCgkvLyAgICAgICBbdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UodGhpcy5hc3NldEIudmFsdWUpXQoJLy8gICAgICk7CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJYXNzZXJ0CglpbnQgMV8wMDAKCW11bHcKCWludCAwCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJYnl0ZSAweDYyIC8vICJiIgoJYXBwX2dsb2JhbF9nZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJYXNzZXJ0CglkaXZtb2R3Cglwb3AKCXBvcAoJc3dhcAoJIQoJYXNzZXJ0CglyZXRzdWIKCnRva2Vuc1RvQnVybjoKCXByb3RvIDMgMQoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo2OQoJLy8gcmV0dXJuIHdpZGVSYXRpbyhbc3VwcGx5LCBhbW91bnRdLCBbaXNzdWVkXSk7CglmcmFtZV9kaWcgLTIgLy8gc3VwcGx5OiB1aW50NjQKCWZyYW1lX2RpZyAtMyAvLyBhbW91bnQ6IHVpbnQ2NAoJbXVsdwoJaW50IDAKCWZyYW1lX2RpZyAtMSAvLyBpc3N1ZWQ6IHVpbnQ2NAoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCWFzc2VydAoJcmV0c3ViCgp0b2tlbnNUb1N3YXA6Cglwcm90byA0IDEKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NzMKCS8vIGZhY3RvciA9IFNDQUxFIC0gRkVFCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NzQKCS8vIHJldHVybiB3aWRlUmF0aW8oW2luQW1vdW50LCBmYWN0b3IsIG91dFN1cHBseV0sIFtpblN1cHBseSAqIFNDQUxFICsgaW5BbW91bnQgKiBmYWN0b3JdKTsKCWZyYW1lX2RpZyAtMSAvLyBpbkFtb3VudDogdWludDY0CglpbnQgOTk1IC8vIGZhY3RvcjogdWludDY0CgltdWx3CglmcmFtZV9kaWcgLTMgLy8gb3V0U3VwcGx5OiB1aW50NjQKCXVuY292ZXIgMgoJZGlnIDEKCSoKCWNvdmVyIDIKCW11bHcKCWNvdmVyIDIKCSsKCXN3YXAKCWludCAwCglmcmFtZV9kaWcgLTIgLy8gaW5TdXBwbHk6IHVpbnQ2NAoJaW50IDFfMDAwCgkqCglmcmFtZV9kaWcgLTEgLy8gaW5BbW91bnQ6IHVpbnQ2NAoJaW50IDk5NSAvLyBmYWN0b3I6IHVpbnQ2NAoJKgoJKwoJZGl2bW9kdwoJcG9wCglwb3AKCXN3YXAKCSEKCWFzc2VydAoJcmV0c3ViCgovLyBzZXRfZ292ZXJub3IoYWNjb3VudCl2b2lkCmFiaV9yb3V0ZV9zZXRfZ292ZXJub3I6CgkvLyBnb3Zlcm5vcjogYWNjb3VudAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQWNjb3VudHMKCgkvLyBleGVjdXRlIHNldF9nb3Zlcm5vcihhY2NvdW50KXZvaWQKCWNhbGxzdWIgc2V0X2dvdmVybm9yCglpbnQgMQoJcmV0dXJuCgpzZXRfZ292ZXJub3I6Cglwcm90byAxIDAKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6NzgKCS8vIHZlcmlmeVR4bih0aGlzLnR4biwgeyBzZW5kZXI6IHRoaXMuZ292ZXJub3IudmFsdWUgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2NyAvLyAiZyIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjc5CgkvLyB0aGlzLmdvdmVybm9yLnZhbHVlID0gZ292ZXJub3IKCWJ5dGUgMHg2NyAvLyAiZyIKCWZyYW1lX2RpZyAtMSAvLyBnb3Zlcm5vcjogYWNjb3VudAoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKLy8gYm9vdHN0cmFwKGFzc2V0LGFzc2V0LHBheSl1aW50NjQKYWJpX3JvdXRlX2Jvb3RzdHJhcDoKCS8vIGJBc3NldDogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIGFBc3NldDogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIHNlZWQ6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBib290c3RyYXAoYXNzZXQsYXNzZXQscGF5KXVpbnQ2NAoJY2FsbHN1YiBib290c3RyYXAKCWludCAxCglyZXR1cm4KCmJvb3RzdHJhcDoKCXByb3RvIDMgMAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo4MwoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuLCB7IHNlbmRlcjogdGhpcy5nb3Zlcm5vci52YWx1ZSB9KQoJLy8gdmVyaWZ5IHNlbmRlcgoJdHhuIFNlbmRlcgoJYnl0ZSAweDY3IC8vICJnIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6ODUKCS8vIGFzc2VydChnbG9iYWxzLmdyb3VwU2l6ZSA9PT0gMikKCWdsb2JhbCBHcm91cFNpemUKCWludCAyCgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjg3CgkvLyB2ZXJpZnlUeG4oc2VlZCwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiB7IGdyZWF0ZXJUaGFuRXF1YWxUbzogMzAwXzAwMCB9IH0pCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzZWVkOiBwYXkKCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzZWVkOiBwYXkKCWd0eG5zIEFtb3VudAoJaW50IDMwMF8wMDAKCT49Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6ODgKCS8vIGFzc2VydChhQXNzZXQgPCBiQXNzZXQpCglmcmFtZV9kaWcgLTIgLy8gYUFzc2V0OiBhc3NldAoJZnJhbWVfZGlnIC0zIC8vIGJBc3NldDogYXNzZXQKCTwKCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5MAoJLy8gdGhpcy5hc3NldEEudmFsdWUgPSBhQXNzZXQKCWJ5dGUgMHg2MSAvLyAiYSIKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IGFzc2V0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5MQoJLy8gdGhpcy5hc3NldEIudmFsdWUgPSBiQXNzZXQKCWJ5dGUgMHg2MiAvLyAiYiIKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IGFzc2V0CglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5MgoJLy8gdGhpcy5wb29sVG9rZW4udmFsdWUgPSB0aGlzLmRvQ3JlYXRlUG9vbFRva2VuKGFBc3NldCwgYkFzc2V0KQoJYnl0ZSAweDcwIC8vICJwIgoJZnJhbWVfZGlnIC0zIC8vIGJBc3NldDogYXNzZXQKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IGFzc2V0CgljYWxsc3ViIGRvQ3JlYXRlUG9vbFRva2VuCglhcHBfZ2xvYmFsX3B1dAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czo5NAoJLy8gdGhpcy5kb09wdEluKGFBc3NldCkKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IGFzc2V0CgljYWxsc3ViIGRvT3B0SW4KCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6OTUKCS8vIHRoaXMuZG9PcHRJbihiQXNzZXQpCglmcmFtZV9kaWcgLTMgLy8gYkFzc2V0OiBhc3NldAoJY2FsbHN1YiBkb09wdEluCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjk3CgkvLyByZXR1cm4gdGhpcy5wb29sVG9rZW4udmFsdWU7CglieXRlIDB4NzAgLy8gInAiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJYnl0ZSAweDE1MWY3Yzc1Cglzd2FwCgljb25jYXQKCWxvZwoJcmV0c3ViCgovLyBtaW50KGFzc2V0LGFzc2V0LGFzc2V0LGF4ZmVyLGF4ZmVyKXZvaWQKYWJpX3JvdXRlX21pbnQ6CglieXRlIDB4IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGJBc3NldDogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDMKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIGFBc3NldDogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIHBvb2xBc3NldDogYXNzZXQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWJ0b2kKCXR4bmFzIEFzc2V0cwoKCS8vIGJYZmVyOiBheGZlcgoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgYXhmZXIKCT09Cglhc3NlcnQKCgkvLyBhWGZlcjogYXhmZXIKCXR4biBHcm91cEluZGV4CglpbnQgMgoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IGF4ZmVyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBtaW50KGFzc2V0LGFzc2V0LGFzc2V0LGF4ZmVyLGF4ZmVyKXZvaWQKCWNhbGxzdWIgbWludAoJaW50IDEKCXJldHVybgoKbWludDoKCXByb3RvIDYgMAoKCS8vIHdlbGwgZm9ybWVkIG1pbnQKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMDIKCS8vIGFzc2VydChhQXNzZXQgPT09IHRoaXMuYXNzZXRBLnZhbHVlKQoJZnJhbWVfZGlnIC00IC8vIGFBc3NldDogYXNzZXQKCWJ5dGUgMHg2MSAvLyAiYSIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEwMwoJLy8gYXNzZXJ0KGJBc3NldCA9PT0gdGhpcy5hc3NldEIudmFsdWUpCglmcmFtZV9kaWcgLTUgLy8gYkFzc2V0OiBhc3NldAoJYnl0ZSAweDYyIC8vICJiIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTA0CgkvLyBhc3NlcnQocG9vbEFzc2V0ID09PSB0aGlzLnBvb2xUb2tlbi52YWx1ZSkKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IGFzc2V0CglieXRlIDB4NzAgLy8gInAiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIHZhbGlkIGFzc2V0IEEgYXhmZXIKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMDcKCS8vIHZlcmlmeVR4bihhWGZlciwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogYUFzc2V0LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IGF4ZmVyCglndHhucyBTZW5kZXIKCXR4biBTZW5kZXIKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogYXhmZXIKCWd0eG5zIEFzc2V0QW1vdW50CglpbnQgMAoJPgoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogYXhmZXIKCWd0eG5zIEFzc2V0UmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHhmZXJBc3NldAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBheGZlcgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTQgLy8gYUFzc2V0OiBhc3NldAoJPT0KCWFzc2VydAoKCS8vIHZhbGlkIGFzc2V0IEIgYXhmZXIKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMTUKCS8vIHZlcmlmeVR4bihiWGZlciwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogYkFzc2V0LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IGF4ZmVyCglndHhucyBTZW5kZXIKCXR4biBTZW5kZXIKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogYXhmZXIKCWd0eG5zIEFzc2V0QW1vdW50CglpbnQgMAoJPgoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogYXhmZXIKCWd0eG5zIEFzc2V0UmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHhmZXJBc3NldAoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBheGZlcgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTUgLy8gYkFzc2V0OiBhc3NldAoJPT0KCWFzc2VydAoKCS8vIGlmMF9jb25kaXRpb24KCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMjMKCS8vIHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKGFBc3NldCkgPT09IGFYZmVyLmFzc2V0QW1vdW50ICYmCgkvLyAgICAgICB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShiQXNzZXQpID09PSBiWGZlci5hc3NldEFtb3VudAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNCAvLyBhQXNzZXQ6IGFzc2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCWFzc2VydAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBheGZlcgoJZ3R4bnMgQXNzZXRBbW91bnQKCT09CglkdXAKCWJ6IHNraXBfYW5kMAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNSAvLyBiQXNzZXQ6IGFzc2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCWFzc2VydAoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBheGZlcgoJZ3R4bnMgQXNzZXRBbW91bnQKCT09CgkmJgoKc2tpcF9hbmQwOgoJYnogaWYwX2Vsc2UKCgkvLyBpZjBfY29uc2VxdWVudAoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEyNgoJLy8gdGhpcy50b2tlbnNUb01pbnRJbnRpYWwoYVhmZXIuYXNzZXRBbW91bnQsIGJYZmVyLmFzc2V0QW1vdW50KQoJZnJhbWVfZGlnIC0yIC8vIGJYZmVyOiBheGZlcgoJZ3R4bnMgQXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBhWGZlcjogYXhmZXIKCWd0eG5zIEFzc2V0QW1vdW50CgljYWxsc3ViIHRva2Vuc1RvTWludEludGlhbAoJYiBpZjBfZW5kCgppZjBfZWxzZToKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMjgKCS8vIHRvTWludCA9IHRoaXMudG9rZW5zVG9NaW50KAoJLy8gICAgICAgICBUT1RBTF9TVVBQTFkgLSB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShwb29sQXNzZXQpLAoJLy8gICAgICAgICB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShhQXNzZXQpIC0gYVhmZXIuYXNzZXRBbW91bnQsCgkvLyAgICAgICAgIHRoaXMuYXBwLmFkZHJlc3MuYXNzZXRCYWxhbmNlKGJBc3NldCkgLSBiWGZlci5hc3NldEFtb3VudCwKCS8vICAgICAgICAgYVhmZXIuYXNzZXRBbW91bnQsCgkvLyAgICAgICAgIGJYZmVyLmFzc2V0QW1vdW50CgkvLyAgICAgICApCglieXRlIDB4OyBkdXBuIDIgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCglmcmFtZV9kaWcgLTIgLy8gYlhmZXI6IGF4ZmVyCglndHhucyBBc3NldEFtb3VudAoJZnJhbWVfZGlnIC0xIC8vIGFYZmVyOiBheGZlcgoJZ3R4bnMgQXNzZXRBbW91bnQKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTUgLy8gYkFzc2V0OiBhc3NldAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglhc3NlcnQKCWZyYW1lX2RpZyAtMiAvLyBiWGZlcjogYXhmZXIKCWd0eG5zIEFzc2V0QW1vdW50CgktCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC00IC8vIGFBc3NldDogYXNzZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJYXNzZXJ0CglmcmFtZV9kaWcgLTEgLy8gYVhmZXI6IGF4ZmVyCglndHhucyBBc3NldEFtb3VudAoJLQoJaW50IDEwXzAwMF8wMDBfMDAwCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC0zIC8vIHBvb2xBc3NldDogYXNzZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJYXNzZXJ0CgktCgljYWxsc3ViIHRva2Vuc1RvTWludAoJZnJhbWVfYnVyeSAtNiAvLyB0b01pbnQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxMzYKCS8vIGFzc2VydCh0b01pbnQgPiAwKQoJZnJhbWVfZGlnIC02IC8vIHRvTWludDogdWludDY0CglpbnQgMAoJPgoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjEzOAoJLy8gdGhpcy5kb0F4ZmVyKHRoaXMudHhuLnNlbmRlciwgcG9vbEFzc2V0LCB0b01pbnQpCglmcmFtZV9kaWcgLTYgLy8gdG9NaW50OiB1aW50NjQKCWZyYW1lX2RpZyAtMyAvLyBwb29sQXNzZXQ6IGFzc2V0Cgl0eG4gU2VuZGVyCgljYWxsc3ViIGRvQXhmZXIKCmlmMF9lbmQ6CglyZXRzdWIKCi8vIGJ1cm4oYXNzZXQsYXNzZXQsYXNzZXQsYXhmZXIpdm9pZAphYmlfcm91dGVfYnVybjoKCWJ5dGUgMHg7IGR1cG4gMiAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBiQXNzZXQ6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBhQXNzZXQ6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBwb29sQXNzZXQ6IGFzc2V0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgl0eG5hcyBBc3NldHMKCgkvLyBwb29sWGZlcjogYXhmZXIKCXR4biBHcm91cEluZGV4CglpbnQgMQoJLQoJZHVwCglndHhucyBUeXBlRW51bQoJaW50IGF4ZmVyCgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSBidXJuKGFzc2V0LGFzc2V0LGFzc2V0LGF4ZmVyKXZvaWQKCWNhbGxzdWIgYnVybgoJaW50IDEKCXJldHVybgoKYnVybjoKCXByb3RvIDcgMAoKCS8vIHdlbGwgZm9ybWVkIGJ1cm4KCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNDQKCS8vIGFzc2VydChwb29sQXNzZXQgPT09IHRoaXMucG9vbFRva2VuLnZhbHVlKQoJZnJhbWVfZGlnIC0yIC8vIHBvb2xBc3NldDogYXNzZXQKCWJ5dGUgMHg3MCAvLyAicCIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE0NQoJLy8gYXNzZXJ0KGFBc3NldCA9PT0gdGhpcy5hc3NldEEudmFsdWUpCglmcmFtZV9kaWcgLTMgLy8gYUFzc2V0OiBhc3NldAoJYnl0ZSAweDYxIC8vICJhIgoJYXBwX2dsb2JhbF9nZXQKCT09Cglhc3NlcnQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTQ2CgkvLyBhc3NlcnQoYkFzc2V0ID09PSB0aGlzLmFzc2V0Qi52YWx1ZSkKCWZyYW1lX2RpZyAtNCAvLyBiQXNzZXQ6IGFzc2V0CglieXRlIDB4NjIgLy8gImIiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIHZhbGlkIHBvb2wgYXhmZXIKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNDkKCS8vIHZlcmlmeVR4bihwb29sWGZlciwgewoJLy8gICAgICAgc2VuZGVyOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHhmZXJBc3NldDogcG9vbEFzc2V0LAoJLy8gICAgIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IGF4ZmVyCglndHhucyBTZW5kZXIKCXR4biBTZW5kZXIKCT09Cglhc3NlcnQKCgkvLyB2ZXJpZnkgYXNzZXRBbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogYXhmZXIKCWd0eG5zIEFzc2V0QW1vdW50CglpbnQgMAoJPgoJYXNzZXJ0CgoJLy8gdmVyaWZ5IGFzc2V0UmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogYXhmZXIKCWd0eG5zIEFzc2V0UmVjZWl2ZXIKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgk9PQoJYXNzZXJ0CgoJLy8gdmVyaWZ5IHhmZXJBc3NldAoJZnJhbWVfZGlnIC0xIC8vIHBvb2xYZmVyOiBheGZlcgoJZ3R4bnMgWGZlckFzc2V0CglmcmFtZV9kaWcgLTIgLy8gcG9vbEFzc2V0OiBhc3NldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNTYKCS8vIGlzc3VlZCA9IFRPVEFMX1NVUFBMWSAtICh0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShwb29sQXNzZXQpIC0gcG9vbFhmZXIuYXNzZXRBbW91bnQpCglpbnQgMTBfMDAwXzAwMF8wMDAKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTIgLy8gcG9vbEFzc2V0OiBhc3NldAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglhc3NlcnQKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogYXhmZXIKCWd0eG5zIEFzc2V0QW1vdW50CgktCgktCglmcmFtZV9idXJ5IC01IC8vIGlzc3VlZDogdWludDY0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE1OAoJLy8gYUFtdCA9IHRoaXMudG9rZW5zVG9CdXJuKGlzc3VlZCwgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2UoYUFzc2V0KSwgcG9vbFhmZXIuYXNzZXRBbW91bnQpCglmcmFtZV9kaWcgLTEgLy8gcG9vbFhmZXI6IGF4ZmVyCglndHhucyBBc3NldEFtb3VudAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtMyAvLyBhQXNzZXQ6IGFzc2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCWFzc2VydAoJZnJhbWVfZGlnIC01IC8vIGlzc3VlZDogdWludDY0CgljYWxsc3ViIHRva2Vuc1RvQnVybgoJZnJhbWVfYnVyeSAtNiAvLyBhQW10OiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTYwCgkvLyBiQW10ID0gdGhpcy50b2tlbnNUb0J1cm4oaXNzdWVkLCB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShiQXNzZXQpLCBwb29sWGZlci5hc3NldEFtb3VudCkKCWZyYW1lX2RpZyAtMSAvLyBwb29sWGZlcjogYXhmZXIKCWd0eG5zIEFzc2V0QW1vdW50CglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJZnJhbWVfZGlnIC00IC8vIGJBc3NldDogYXNzZXQKCWFzc2V0X2hvbGRpbmdfZ2V0IEFzc2V0QmFsYW5jZQoJYXNzZXJ0CglmcmFtZV9kaWcgLTUgLy8gaXNzdWVkOiB1aW50NjQKCWNhbGxzdWIgdG9rZW5zVG9CdXJuCglmcmFtZV9idXJ5IC03IC8vIGJBbXQ6IHVpbnQ2NAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNjIKCS8vIHRoaXMuZG9BeGZlcih0aGlzLnR4bi5zZW5kZXIsIGFBc3NldCwgYUFtdCkKCWZyYW1lX2RpZyAtNiAvLyBhQW10OiB1aW50NjQKCWZyYW1lX2RpZyAtMyAvLyBhQXNzZXQ6IGFzc2V0Cgl0eG4gU2VuZGVyCgljYWxsc3ViIGRvQXhmZXIKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTYzCgkvLyB0aGlzLmRvQXhmZXIodGhpcy50eG4uc2VuZGVyLCBiQXNzZXQsIGJBbXQpCglmcmFtZV9kaWcgLTcgLy8gYkFtdDogdWludDY0CglmcmFtZV9kaWcgLTQgLy8gYkFzc2V0OiBhc3NldAoJdHhuIFNlbmRlcgoJY2FsbHN1YiBkb0F4ZmVyCgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE2NQoJLy8gdGhpcy5yYXRpby52YWx1ZSA9IHRoaXMuY29tcHV0ZVJhdGlvKCkKCWJ5dGUgMHg3MiAvLyAiciIKCWNhbGxzdWIgY29tcHV0ZVJhdGlvCglhcHBfZ2xvYmFsX3B1dAoJcmV0c3ViCgovLyBzd2FwKGFzc2V0LGFzc2V0LGF4ZmVyKXZvaWQKYWJpX3JvdXRlX3N3YXA6CglieXRlIDB4OyBkdXBuIDIgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gYkFzc2V0OiBhc3NldAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgoJYnRvaQoJdHhuYXMgQXNzZXRzCgoJLy8gYUFzc2V0OiBhc3NldAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoJdHhuYXMgQXNzZXRzCgoJLy8gc3dhcFhmZXI6IGF4ZmVyCgl0eG4gR3JvdXBJbmRleAoJaW50IDEKCS0KCWR1cAoJZ3R4bnMgVHlwZUVudW0KCWludCBheGZlcgoJPT0KCWFzc2VydAoKCS8vIGV4ZWN1dGUgc3dhcChhc3NldCxhc3NldCxheGZlcil2b2lkCgljYWxsc3ViIHN3YXAKCWludCAxCglyZXR1cm4KCnN3YXA6Cglwcm90byA2IDAKCgkvLyB3ZWxsIGZvcm1lZCBzd2FwCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTcwCgkvLyBhc3NlcnQoYUFzc2V0ID09PSB0aGlzLmFzc2V0QS52YWx1ZSkKCWZyYW1lX2RpZyAtMiAvLyBhQXNzZXQ6IGFzc2V0CglieXRlIDB4NjEgLy8gImEiCglhcHBfZ2xvYmFsX2dldAoJPT0KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxNzEKCS8vIGFzc2VydChiQXNzZXQgPT09IHRoaXMuYXNzZXRCLnZhbHVlKQoJZnJhbWVfZGlnIC0zIC8vIGJBc3NldDogYXNzZXQKCWJ5dGUgMHg2MiAvLyAiYiIKCWFwcF9nbG9iYWxfZ2V0Cgk9PQoJYXNzZXJ0CgoJLy8gZXhhbXBsZXMvYW1tL2FtbS5hbGdvLnRzOjE3MwoJLy8gdmVyaWZ5VHhuKHN3YXBYZmVyLCB7CgkvLyAgICAgICBhc3NldEFtb3VudDogeyBncmVhdGVyVGhhbjogMCB9LAoJLy8gICAgICAgYXNzZXRSZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywKCS8vICAgICAgIHNlbmRlcjogdGhpcy50eG4uc2VuZGVyLAoJLy8gICAgICAgeGZlckFzc2V0OiB7IGluY2x1ZGVkSW46IFthQXNzZXQsIGJBc3NldF0gfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IGFzc2V0QW1vdW50CglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IGF4ZmVyCglndHhucyBBc3NldEFtb3VudAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIHZlcmlmeSBhc3NldFJlY2VpdmVyCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IGF4ZmVyCglndHhucyBBc3NldFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSBzZW5kZXIKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogYXhmZXIKCWd0eG5zIFNlbmRlcgoJdHhuIFNlbmRlcgoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSB4ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogYXhmZXIKCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogYXNzZXQKCT09CglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IGF4ZmVyCglndHhucyBYZmVyQXNzZXQKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IGFzc2V0Cgk9PQoJfHwKCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxODAKCS8vIG91dElkID0gc3dhcFhmZXIueGZlckFzc2V0ID09PSBhQXNzZXQgPyBhQXNzZXQgOiBiQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogYXhmZXIKCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogYXNzZXQKCT09CglieiB0ZXJuYXJ5M19mYWxzZQoJZnJhbWVfZGlnIC0yIC8vIGFBc3NldDogYXNzZXQKCWIgdGVybmFyeTNfZW5kCgp0ZXJuYXJ5M19mYWxzZToKCWZyYW1lX2RpZyAtMyAvLyBiQXNzZXQ6IGFzc2V0Cgp0ZXJuYXJ5M19lbmQ6CglmcmFtZV9idXJ5IC00IC8vIG91dElkOiBhc3NldAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxODIKCS8vIGluSWQgPSBzd2FwWGZlci54ZmVyQXNzZXQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogYXhmZXIKCWd0eG5zIFhmZXJBc3NldAoJZnJhbWVfYnVyeSAtNSAvLyBpbklkOiBhc3NldAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxODQKCS8vIHRvU3dhcCA9IHRoaXMudG9rZW5zVG9Td2FwKAoJLy8gICAgICAgc3dhcFhmZXIuYXNzZXRBbW91bnQsCgkvLyAgICAgICB0aGlzLmFwcC5hZGRyZXNzLmFzc2V0QmFsYW5jZShpbklkKSAtIHN3YXBYZmVyLmFzc2V0QW1vdW50LAoJLy8gICAgICAgdGhpcy5hcHAuYWRkcmVzcy5hc3NldEJhbGFuY2Uob3V0SWQpCgkvLyAgICAgKQoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCWdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCglmcmFtZV9kaWcgLTQgLy8gb3V0SWQ6IGFzc2V0Cglhc3NldF9ob2xkaW5nX2dldCBBc3NldEJhbGFuY2UKCWFzc2VydAoJZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKCWZyYW1lX2RpZyAtNSAvLyBpbklkOiBhc3NldAoJYXNzZXRfaG9sZGluZ19nZXQgQXNzZXRCYWxhbmNlCglhc3NlcnQKCWZyYW1lX2RpZyAtMSAvLyBzd2FwWGZlcjogYXhmZXIKCWd0eG5zIEFzc2V0QW1vdW50CgktCglmcmFtZV9kaWcgLTEgLy8gc3dhcFhmZXI6IGF4ZmVyCglndHhucyBBc3NldEFtb3VudAoJY2FsbHN1YiB0b2tlbnNUb1N3YXAKCWZyYW1lX2J1cnkgLTYgLy8gdG9Td2FwOiB1aW50NjQKCgkvLyBleGFtcGxlcy9hbW0vYW1tLmFsZ28udHM6MTkwCgkvLyBhc3NlcnQodG9Td2FwID4gMCkKCWZyYW1lX2RpZyAtNiAvLyB0b1N3YXA6IHVpbnQ2NAoJaW50IDAKCT4KCWFzc2VydAoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxOTIKCS8vIHRoaXMuZG9BeGZlcih0aGlzLnR4bi5zZW5kZXIsIG91dElkLCB0b1N3YXApCglmcmFtZV9kaWcgLTYgLy8gdG9Td2FwOiB1aW50NjQKCWZyYW1lX2RpZyAtNCAvLyBvdXRJZDogYXNzZXQKCXR4biBTZW5kZXIKCWNhbGxzdWIgZG9BeGZlcgoKCS8vIGV4YW1wbGVzL2FtbS9hbW0uYWxnby50czoxOTQKCS8vIHRoaXMucmF0aW8udmFsdWUgPSB0aGlzLmNvbXB1dGVSYXRpbygpCglieXRlIDB4NzIgLy8gInIiCgljYWxsc3ViIGNvbXB1dGVSYXRpbwoJYXBwX2dsb2JhbF9wdXQKCXJldHN1YgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAic2V0X2dvdmVybm9yKGFjY291bnQpdm9pZCIKCW1ldGhvZCAiYm9vdHN0cmFwKHBheSxhc3NldCxhc3NldCl1aW50NjQiCgltZXRob2QgIm1pbnQoYXhmZXIsYXhmZXIsYXNzZXQsYXNzZXQsYXNzZXQpdm9pZCIKCW1ldGhvZCAiYnVybihheGZlcixhc3NldCxhc3NldCxhc3NldCl2b2lkIgoJbWV0aG9kICJzd2FwKGF4ZmVyLGFzc2V0LGFzc2V0KXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc2V0X2dvdmVybm9yIGFiaV9yb3V0ZV9ib290c3RyYXAgYWJpX3JvdXRlX21pbnQgYWJpX3JvdXRlX2J1cm4gYWJpX3JvdXRlX3N3YXAKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/examples/amm/tealscript_artifacts/ConstantProductAMM.src_map.json b/examples/amm/tealscript_artifacts/ConstantProductAMM.src_map.json index 1a8b93595..d1f0083ab 100644 --- a/examples/amm/tealscript_artifacts/ConstantProductAMM.src_map.json +++ b/examples/amm/tealscript_artifacts/ConstantProductAMM.src_map.json @@ -1220,65 +1220,71 @@ ] }, { - "teal": 280, - "source": 73, + "teal": 282, + "source": 74, "pc": [ 290, 291 ] }, { - "teal": 281, - "source": 73, + "teal": 283, + "source": 74, "pc": [ 292, 293 ] }, + { + "teal": 284, + "source": 74, + "pc": [ + 294 + ] + }, { "teal": 285, "source": 74, "pc": [ - 294, - 295 + 295, + 296 ] }, { "teal": 286, "source": 74, "pc": [ - 296, - 297 + 297, + 298 ] }, { "teal": 287, "source": 74, "pc": [ - 298 + 299, + 300 ] }, { "teal": 288, "source": 74, "pc": [ - 299, - 300 + 301 ] }, { "teal": 289, "source": 74, "pc": [ - 301, - 302 + 302, + 303 ] }, { "teal": 290, "source": 74, "pc": [ - 303, 304 ] }, @@ -1286,14 +1292,14 @@ "teal": 291, "source": 74, "pc": [ - 305 + 305, + 306 ] }, { "teal": 292, "source": 74, "pc": [ - 306, 307 ] }, @@ -1308,20 +1314,20 @@ "teal": 294, "source": 74, "pc": [ - 309, - 310 + 309 ] }, { "teal": 295, "source": 74, "pc": [ + 310, 311 ] }, { "teal": 296, - "source": 74, + "source": 4, "pc": [ 312 ] @@ -1343,23 +1349,23 @@ }, { "teal": 299, - "source": 4, + "source": 74, "pc": [ - 316 + 316, + 317 ] }, { "teal": 300, "source": 74, "pc": [ - 317 + 318 ] }, { "teal": 301, "source": 74, "pc": [ - 318, 319 ] }, @@ -1367,126 +1373,126 @@ "teal": 302, "source": 74, "pc": [ - 320, - 321 + 320 ] }, { "teal": 303, "source": 74, "pc": [ - 322 + 321 ] }, { "teal": 304, "source": 74, "pc": [ - 323 + 322 ] }, { "teal": 305, "source": 74, "pc": [ - 324 + 323 ] }, { "teal": 306, "source": 74, "pc": [ - 325 + 324 ] }, { "teal": 307, "source": 74, "pc": [ - 326 + 325 ] }, { "teal": 308, "source": 74, "pc": [ - 327 - ] - }, - { - "teal": 309, - "source": 74, - "pc": [ - 328 + 326 ] }, { - "teal": 310, - "source": 74, + "teal": 313, + "source": 77, "pc": [ + 327, + 328, 329 ] }, { - "teal": 311, - "source": 74, + "teal": 314, + "source": 77, "pc": [ 330 ] }, { - "teal": 316, + "teal": 315, "source": 77, "pc": [ 331, - 332, - 333 + 332 ] }, { - "teal": 317, + "teal": 318, "source": 77, "pc": [ - 334 + 333, + 334, + 335 ] }, { - "teal": 318, + "teal": 319, "source": 77, "pc": [ - 335, 336 ] }, { - "teal": 321, + "teal": 320, "source": 77, "pc": [ - 337, - 338, - 339 + 337 ] }, { - "teal": 322, + "teal": 323, "source": 77, "pc": [ + 338, + 339, 340 ] }, { - "teal": 323, - "source": 77, + "teal": 328, + "source": 78, "pc": [ - 341 + 341, + 342 ] }, { - "teal": 326, - "source": 77, + "teal": 329, + "source": 78, + "pc": [ + 343 + ] + }, + { + "teal": 330, + "source": 78, "pc": [ - 342, - 343, 344 ] }, @@ -1494,112 +1500,112 @@ "teal": 331, "source": 78, "pc": [ - 345, - 346 + 345 ] }, { "teal": 332, "source": 78, "pc": [ - 347 + 346 ] }, { - "teal": 333, - "source": 78, + "teal": 336, + "source": 79, "pc": [ - 348 + 347 ] }, { - "teal": 334, - "source": 78, + "teal": 337, + "source": 79, "pc": [ + 348, 349 ] }, { - "teal": 335, - "source": 78, + "teal": 338, + "source": 79, "pc": [ 350 ] }, { "teal": 339, - "source": 79, + "source": 77, "pc": [ 351 ] }, { - "teal": 340, - "source": 79, + "teal": 344, + "source": 82, "pc": [ 352, - 353 - ] - }, - { - "teal": 341, - "source": 79, - "pc": [ + 353, 354 ] }, { - "teal": 342, - "source": 77, + "teal": 345, + "source": 82, "pc": [ 355 ] }, { - "teal": 347, + "teal": 346, "source": 82, "pc": [ 356, - 357, - 358 + 357 ] }, { - "teal": 348, + "teal": 349, "source": 82, "pc": [ - 359 + 358, + 359, + 360 ] }, { - "teal": 349, + "teal": 350, "source": 82, "pc": [ - 360, 361 ] }, { - "teal": 352, + "teal": 351, "source": 82, "pc": [ 362, - 363, - 364 + 363 ] }, { - "teal": 353, + "teal": 354, "source": 82, "pc": [ + 364, 365 ] }, { - "teal": 354, + "teal": 355, + "source": 82, + "pc": [ + 366 + ] + }, + { + "teal": 356, "source": 82, "pc": [ - 366, 367 ] }, @@ -1607,14 +1613,14 @@ "teal": 357, "source": 82, "pc": [ - 368, - 369 + 368 ] }, { "teal": 358, "source": 82, "pc": [ + 369, 370 ] }, @@ -1636,60 +1642,60 @@ "teal": 361, "source": 82, "pc": [ - 373, - 374 + 373 ] }, { - "teal": 362, + "teal": 364, "source": 82, "pc": [ - 375 + 374, + 375, + 376 ] }, { - "teal": 363, + "teal": 365, "source": 82, "pc": [ - 376 + 377 ] }, { - "teal": 364, + "teal": 366, "source": 82, "pc": [ - 377 + 378 ] }, { - "teal": 367, + "teal": 369, "source": 82, "pc": [ - 378, 379, - 380 + 380, + 381 ] }, { - "teal": 368, - "source": 82, + "teal": 374, + "source": 83, "pc": [ - 381 + 382, + 383 ] }, { - "teal": 369, - "source": 82, + "teal": 375, + "source": 83, "pc": [ - 382 + 384 ] }, { - "teal": 372, - "source": 82, + "teal": 376, + "source": 83, "pc": [ - 383, - 384, 385 ] }, @@ -1697,86 +1703,86 @@ "teal": 377, "source": 83, "pc": [ - 386, - 387 + 386 ] }, { "teal": 378, "source": 83, "pc": [ - 388 + 387 ] }, { - "teal": 379, - "source": 83, + "teal": 382, + "source": 85, "pc": [ + 388, 389 ] }, { - "teal": 380, - "source": 83, + "teal": 383, + "source": 85, "pc": [ - 390 + 390, + 391 ] }, { - "teal": 381, - "source": 83, + "teal": 384, + "source": 85, "pc": [ - 391 + 392 ] }, { "teal": 385, "source": 85, "pc": [ - 392, 393 ] }, { - "teal": 386, - "source": 85, + "teal": 390, + "source": 87, "pc": [ 394, 395 ] }, { - "teal": 387, - "source": 85, + "teal": 391, + "source": 87, "pc": [ - 396 + 396, + 397 ] }, { - "teal": 388, - "source": 85, + "teal": 392, + "source": 87, "pc": [ - 397 + 398, + 399 ] }, { "teal": 393, "source": 87, "pc": [ - 398, - 399 + 400 ] }, { "teal": 394, "source": 87, "pc": [ - 400, 401 ] }, { - "teal": 395, + "teal": 397, "source": 87, "pc": [ 402, @@ -1784,135 +1790,129 @@ ] }, { - "teal": 396, + "teal": 398, "source": 87, "pc": [ - 404 + 404, + 405 ] }, { - "teal": 397, + "teal": 399, "source": 87, "pc": [ - 405 + 406, + 407, + 408, + 409 ] }, { "teal": 400, "source": 87, "pc": [ - 406, - 407 + 410 ] }, { "teal": 401, "source": 87, "pc": [ - 408, - 409 + 411 ] }, { - "teal": 402, - "source": 87, + "teal": 405, + "source": 88, "pc": [ - 410, - 411, 412, 413 ] }, { - "teal": 403, - "source": 87, + "teal": 406, + "source": 88, "pc": [ - 414 + 414, + 415 ] }, { - "teal": 404, - "source": 87, + "teal": 407, + "source": 88, "pc": [ - 415 + 416 ] }, { "teal": 408, "source": 88, "pc": [ - 416, 417 ] }, { - "teal": 409, - "source": 88, + "teal": 412, + "source": 90, "pc": [ - 418, - 419 + 418 ] }, { - "teal": 410, - "source": 88, + "teal": 413, + "source": 90, "pc": [ + 419, 420 ] }, { - "teal": 411, - "source": 88, + "teal": 414, + "source": 90, "pc": [ 421 ] }, { - "teal": 415, - "source": 90, + "teal": 418, + "source": 91, "pc": [ 422 ] }, { - "teal": 416, - "source": 90, + "teal": 419, + "source": 91, "pc": [ 423, 424 ] }, { - "teal": 417, - "source": 90, - "pc": [ - 425 - ] - }, - { - "teal": 421, + "teal": 420, "source": 91, "pc": [ - 426 + 425 ] }, { - "teal": 422, - "source": 91, + "teal": 424, + "source": 92, "pc": [ - 427, - 428 + 426, + 427 ] }, { - "teal": 423, - "source": 91, + "teal": 425, + "source": 92, "pc": [ + 428, 429 ] }, { - "teal": 427, + "teal": 426, "source": 92, "pc": [ 430, @@ -1920,68 +1920,74 @@ ] }, { - "teal": 428, + "teal": 427, "source": 92, "pc": [ 432, - 433 + 433, + 434 ] }, { - "teal": 429, + "teal": 428, "source": 92, "pc": [ - 434, 435 ] }, { - "teal": 430, - "source": 92, + "teal": 432, + "source": 94, "pc": [ 436, - 437, - 438 + 437 ] }, { - "teal": 431, - "source": 92, + "teal": 433, + "source": 94, "pc": [ - 439 + 438, + 439, + 440 ] }, { - "teal": 435, - "source": 94, + "teal": 437, + "source": 95, "pc": [ - 440, - 441 + 441, + 442 ] }, { - "teal": 436, - "source": 94, + "teal": 438, + "source": 95, "pc": [ - 442, 443, - 444 + 444, + 445 ] }, { - "teal": 440, - "source": 95, + "teal": 442, + "source": 97, "pc": [ - 445, - 446 + 446, + 447 ] }, { - "teal": 441, - "source": 95, + "teal": 443, + "source": 97, + "pc": [ + 448 + ] + }, + { + "teal": 444, + "source": 97, "pc": [ - 447, - 448, 449 ] }, @@ -1990,139 +1996,139 @@ "source": 97, "pc": [ 450, - 451 + 451, + 452, + 453, + 454, + 455 ] }, { "teal": 446, "source": 97, "pc": [ - 452 + 456 ] }, { "teal": 447, "source": 97, "pc": [ - 453 + 457 ] }, { "teal": 448, "source": 97, "pc": [ - 454, - 455, - 456, - 457, - 458, - 459 + 458 ] }, { "teal": 449, "source": 97, "pc": [ - 460 - ] - }, - { - "teal": 450, - "source": 97, - "pc": [ - 461 + 459 ] }, { - "teal": 451, - "source": 97, + "teal": 453, + "source": 100, "pc": [ - 462 + 460 ] }, { - "teal": 452, - "source": 97, + "teal": 456, + "source": 100, "pc": [ + 461, + 462, 463 ] }, { - "teal": 456, + "teal": 457, "source": 100, "pc": [ 464 ] }, { - "teal": 459, + "teal": 458, "source": 100, "pc": [ 465, - 466, - 467 + 466 ] }, { - "teal": 460, + "teal": 461, "source": 100, "pc": [ - 468 + 467, + 468, + 469 ] }, { - "teal": 461, + "teal": 462, "source": 100, "pc": [ - 469, 470 ] }, { - "teal": 464, + "teal": 463, "source": 100, "pc": [ 471, - 472, - 473 + 472 ] }, { - "teal": 465, + "teal": 466, "source": 100, "pc": [ - 474 + 473, + 474, + 475 ] }, { - "teal": 466, + "teal": 467, "source": 100, "pc": [ - 475, 476 ] }, { - "teal": 469, + "teal": 468, "source": 100, "pc": [ 477, - 478, - 479 + 478 ] }, { - "teal": 470, + "teal": 471, "source": 100, "pc": [ + 479, 480 ] }, { - "teal": 471, + "teal": 472, + "source": 100, + "pc": [ + 481 + ] + }, + { + "teal": 473, "source": 100, "pc": [ - 481, 482 ] }, @@ -2130,14 +2136,14 @@ "teal": 474, "source": 100, "pc": [ - 483, - 484 + 483 ] }, { "teal": 475, "source": 100, "pc": [ + 484, 485 ] }, @@ -2159,36 +2165,36 @@ "teal": 478, "source": 100, "pc": [ - 488, - 489 + 488 ] }, { - "teal": 479, + "teal": 481, "source": 100, "pc": [ + 489, 490 ] }, { - "teal": 480, + "teal": 482, "source": 100, "pc": [ - 491 + 491, + 492 ] }, { - "teal": 481, + "teal": 483, "source": 100, "pc": [ - 492 + 493 ] }, { "teal": 484, "source": 100, "pc": [ - 493, 494 ] }, @@ -2218,60 +2224,60 @@ "teal": 488, "source": 100, "pc": [ - 499, - 500 + 499 ] }, { - "teal": 489, + "teal": 491, "source": 100, "pc": [ - 501 + 500, + 501, + 502 ] }, { - "teal": 490, + "teal": 492, "source": 100, "pc": [ - 502 + 503 ] }, { - "teal": 491, + "teal": 493, "source": 100, "pc": [ - 503 + 504 ] }, { - "teal": 494, + "teal": 496, "source": 100, "pc": [ - 504, 505, - 506 + 506, + 507 ] }, { - "teal": 495, - "source": 100, + "teal": 501, + "source": 102, "pc": [ - 507 + 508, + 509 ] }, { - "teal": 496, - "source": 100, + "teal": 502, + "source": 102, "pc": [ - 508 + 510 ] }, { - "teal": 499, - "source": 100, + "teal": 503, + "source": 102, "pc": [ - 509, - 510, 511 ] }, @@ -2279,34 +2285,34 @@ "teal": 504, "source": 102, "pc": [ - 512, - 513 + 512 ] }, { "teal": 505, "source": 102, "pc": [ - 514 + 513 ] }, { - "teal": 506, - "source": 102, + "teal": 509, + "source": 103, "pc": [ + 514, 515 ] }, { - "teal": 507, - "source": 102, + "teal": 510, + "source": 103, "pc": [ 516 ] }, { - "teal": 508, - "source": 102, + "teal": 511, + "source": 103, "pc": [ 517 ] @@ -2315,43 +2321,43 @@ "teal": 512, "source": 103, "pc": [ - 518, - 519 + 518 ] }, { "teal": 513, "source": 103, "pc": [ - 520 + 519 ] }, { - "teal": 514, - "source": 103, + "teal": 517, + "source": 104, "pc": [ + 520, 521 ] }, { - "teal": 515, - "source": 103, + "teal": 518, + "source": 104, "pc": [ - 522 + 522, + 523 ] }, { - "teal": 516, - "source": 103, + "teal": 519, + "source": 104, "pc": [ - 523 + 524 ] }, { "teal": 520, "source": 104, "pc": [ - 524, 525 ] }, @@ -2359,74 +2365,74 @@ "teal": 521, "source": 104, "pc": [ - 526, - 527 + 526 ] }, { - "teal": 522, - "source": 104, + "teal": 532, + "source": 107, "pc": [ + 527, 528 ] }, { - "teal": 523, - "source": 104, + "teal": 533, + "source": 108, "pc": [ - 529 + 529, + 530 ] }, { - "teal": 524, - "source": 104, + "teal": 534, + "source": 108, "pc": [ - 530 + 531, + 532 ] }, { "teal": 535, - "source": 107, + "source": 108, "pc": [ - 531, - 532 + 533 ] }, { "teal": 536, "source": 108, "pc": [ - 533, 534 ] }, { - "teal": 537, - "source": 108, + "teal": 539, + "source": 107, "pc": [ 535, 536 ] }, { - "teal": 538, - "source": 108, + "teal": 540, + "source": 109, "pc": [ - 537 + 537, + 538 ] }, { - "teal": 539, - "source": 108, + "teal": 541, + "source": 109, "pc": [ - 538 + 539 ] }, { "teal": 542, - "source": 107, + "source": 109, "pc": [ - 539, 540 ] }, @@ -2434,150 +2440,150 @@ "teal": 543, "source": 109, "pc": [ - 541, - 542 + 541 ] }, { - "teal": 544, - "source": 109, + "teal": 546, + "source": 107, "pc": [ + 542, 543 ] }, { - "teal": 545, - "source": 109, + "teal": 547, + "source": 110, "pc": [ - 544 + 544, + 545 ] }, { - "teal": 546, - "source": 109, + "teal": 548, + "source": 110, "pc": [ - 545 + 546, + 547 ] }, { "teal": 549, - "source": 107, + "source": 110, "pc": [ - 546, - 547 + 548 ] }, { "teal": 550, "source": 110, "pc": [ - 548, 549 ] }, { - "teal": 551, - "source": 110, + "teal": 553, + "source": 107, "pc": [ 550, 551 ] }, { - "teal": 552, - "source": 110, + "teal": 554, + "source": 111, "pc": [ - 552 + 552, + 553 ] }, { - "teal": 553, - "source": 110, + "teal": 555, + "source": 111, "pc": [ - 553 + 554, + 555 ] }, { "teal": 556, - "source": 107, + "source": 111, "pc": [ - 554, - 555 + 556 ] }, { "teal": 557, "source": 111, "pc": [ - 556, 557 ] }, { - "teal": 558, - "source": 111, + "teal": 568, + "source": 115, "pc": [ 558, 559 ] }, { - "teal": 559, - "source": 111, + "teal": 569, + "source": 116, "pc": [ - 560 + 560, + 561 ] }, { - "teal": 560, - "source": 111, + "teal": 570, + "source": 116, "pc": [ - 561 + 562, + 563 ] }, { "teal": 571, - "source": 115, + "source": 116, "pc": [ - 562, - 563 + 564 ] }, { "teal": 572, "source": 116, "pc": [ - 564, 565 ] }, { - "teal": 573, - "source": 116, + "teal": 575, + "source": 115, "pc": [ 566, 567 ] }, { - "teal": 574, - "source": 116, + "teal": 576, + "source": 117, "pc": [ - 568 + 568, + 569 ] }, { - "teal": 575, - "source": 116, + "teal": 577, + "source": 117, "pc": [ - 569 + 570 ] }, { "teal": 578, - "source": 115, + "source": 117, "pc": [ - 570, 571 ] }, @@ -2585,143 +2591,143 @@ "teal": 579, "source": 117, "pc": [ - 572, - 573 + 572 ] }, { - "teal": 580, - "source": 117, + "teal": 582, + "source": 115, "pc": [ + 573, 574 ] }, { - "teal": 581, - "source": 117, + "teal": 583, + "source": 118, "pc": [ - 575 + 575, + 576 ] }, { - "teal": 582, - "source": 117, + "teal": 584, + "source": 118, "pc": [ - 576 + 577, + 578 ] }, { "teal": 585, - "source": 115, + "source": 118, "pc": [ - 577, - 578 + 579 ] }, { "teal": 586, "source": 118, "pc": [ - 579, 580 ] }, { - "teal": 587, - "source": 118, + "teal": 589, + "source": 115, "pc": [ 581, 582 ] }, { - "teal": 588, - "source": 118, + "teal": 590, + "source": 119, "pc": [ - 583 + 583, + 584 ] }, { - "teal": 589, - "source": 118, + "teal": 591, + "source": 119, "pc": [ - 584 + 585, + 586 ] }, { "teal": 592, - "source": 115, + "source": 119, "pc": [ - 585, - 586 + 587 ] }, { "teal": 593, "source": 119, "pc": [ - 587, 588 ] }, { - "teal": 594, - "source": 119, + "teal": 599, + "source": 123, "pc": [ 589, 590 ] }, { - "teal": 595, - "source": 119, + "teal": 600, + "source": 123, "pc": [ - 591 + 591, + 592 ] }, { - "teal": 596, - "source": 119, + "teal": 601, + "source": 123, "pc": [ - 592 + 593, + 594 ] }, { "teal": 602, "source": 123, "pc": [ - 593, - 594 + 595 ] }, { "teal": 603, "source": 123, "pc": [ - 595, - 596 + 596, + 597 ] }, { "teal": 604, "source": 123, "pc": [ - 597, - 598 + 598, + 599 ] }, { "teal": 605, "source": 123, "pc": [ - 599 + 600 ] }, { "teal": 606, "source": 123, "pc": [ - 600, 601 ] }, @@ -2730,104 +2736,98 @@ "source": 123, "pc": [ 602, - 603 + 603, + 604 ] }, { "teal": 608, - "source": 123, + "source": 124, "pc": [ - 604 + 605, + 606 ] }, { "teal": 609, - "source": 123, + "source": 124, "pc": [ - 605 + 607, + 608 ] }, { "teal": 610, - "source": 123, + "source": 124, "pc": [ - 606, - 607, - 608 + 609, + 610 ] }, { "teal": 611, "source": 124, "pc": [ - 609, - 610 + 611 ] }, { "teal": 612, "source": 124, "pc": [ - 611, - 612 + 612, + 613 ] }, { "teal": 613, "source": 124, "pc": [ - 613, - 614 + 614, + 615 ] }, { "teal": 614, "source": 124, "pc": [ - 615 + 616 ] }, { "teal": 615, - "source": 124, + "source": 123, "pc": [ - 616, 617 ] }, { - "teal": 616, - "source": 124, + "teal": 618, + "source": 122, "pc": [ 618, - 619 - ] - }, - { - "teal": 617, - "source": 124, - "pc": [ + 619, 620 ] }, { - "teal": 618, - "source": 123, + "teal": 623, + "source": 126, "pc": [ - 621 + 621, + 622 ] }, { - "teal": 621, - "source": 122, + "teal": 624, + "source": 126, "pc": [ - 622, 623, 624 ] }, { - "teal": 626, + "teal": 625, "source": 126, "pc": [ 625, @@ -2835,7 +2835,7 @@ ] }, { - "teal": 627, + "teal": 626, "source": 126, "pc": [ 627, @@ -2843,282 +2843,282 @@ ] }, { - "teal": 628, + "teal": 627, "source": 126, "pc": [ 629, - 630 + 630, + 631 ] }, { - "teal": 629, - "source": 126, + "teal": 628, + "source": 122, "pc": [ - 631, - 632 + 632, + 633, + 634 ] }, { - "teal": 630, - "source": 126, + "teal": 639, + "source": 128, "pc": [ - 633, - 634, - 635 + 635, + 636, + 637 ] }, { - "teal": 631, - "source": 122, + "teal": 640, + "source": 133, "pc": [ - 636, - 637, - 638 + 638, + 639 ] }, { - "teal": 642, - "source": 128, + "teal": 641, + "source": 133, "pc": [ - 639, 640, 641 ] }, { - "teal": 643, - "source": 133, + "teal": 642, + "source": 132, "pc": [ 642, 643 ] }, { - "teal": 644, - "source": 133, + "teal": 643, + "source": 132, "pc": [ 644, 645 ] }, { - "teal": 645, - "source": 132, + "teal": 644, + "source": 131, "pc": [ 646, 647 ] }, { - "teal": 646, - "source": 132, + "teal": 645, + "source": 131, "pc": [ 648, 649 ] }, { - "teal": 647, + "teal": 646, "source": 131, "pc": [ 650, 651 ] }, + { + "teal": 647, + "source": 131, + "pc": [ + 652 + ] + }, { "teal": 648, "source": 131, "pc": [ - 652, - 653 + 653, + 654 ] }, { "teal": 649, "source": 131, "pc": [ - 654, - 655 + 655, + 656 ] }, { "teal": 650, "source": 131, "pc": [ - 656 + 657 ] }, { "teal": 651, - "source": 131, + "source": 130, "pc": [ - 657, - 658 + 658, + 659 ] }, { "teal": 652, - "source": 131, + "source": 130, "pc": [ - 659, - 660 + 660, + 661 ] }, { "teal": 653, - "source": 131, + "source": 130, "pc": [ - 661 + 662, + 663 ] }, { "teal": 654, "source": 130, "pc": [ - 662, - 663 + 664 ] }, { "teal": 655, "source": 130, "pc": [ - 664, - 665 + 665, + 666 ] }, { "teal": 656, "source": 130, "pc": [ - 666, - 667 + 667, + 668 ] }, { "teal": 657, "source": 130, "pc": [ - 668 + 669 ] }, { "teal": 658, - "source": 130, + "source": 3, "pc": [ - 669, - 670 + 670, + 671 ] }, { "teal": 659, - "source": 130, + "source": 129, "pc": [ - 671, - 672 + 672, + 673 ] }, { "teal": 660, - "source": 130, + "source": 129, "pc": [ - 673 + 674, + 675 ] }, { "teal": 661, - "source": 3, + "source": 129, "pc": [ - 674, - 675 + 676, + 677 ] }, { "teal": 662, "source": 129, "pc": [ - 676, - 677 + 678 ] }, { "teal": 663, "source": 129, "pc": [ - 678, 679 ] }, { "teal": 664, - "source": 129, + "source": 128, "pc": [ 680, - 681 - ] - }, - { - "teal": 665, - "source": 129, - "pc": [ + 681, 682 ] }, { - "teal": 666, - "source": 129, + "teal": 665, + "source": 128, "pc": [ - 683 + 683, + 684 ] }, { - "teal": 667, - "source": 128, + "teal": 669, + "source": 136, "pc": [ - 684, 685, 686 ] }, { - "teal": 668, - "source": 128, + "teal": 670, + "source": 136, "pc": [ - 687, - 688 + 687 ] }, { - "teal": 672, + "teal": 671, "source": 136, "pc": [ - 689, - 690 + 688 ] }, { - "teal": 673, + "teal": 672, "source": 136, "pc": [ - 691 + 689 ] }, { - "teal": 674, - "source": 136, + "teal": 676, + "source": 138, "pc": [ - 692 + 690, + 691 ] }, { - "teal": 675, - "source": 136, + "teal": 677, + "source": 138, "pc": [ + 692, 693 ] }, { - "teal": 679, + "teal": 678, "source": 138, "pc": [ 694, @@ -3126,24 +3126,24 @@ ] }, { - "teal": 680, + "teal": 679, "source": 138, "pc": [ 696, - 697 + 697, + 698 ] }, { - "teal": 681, - "source": 138, + "teal": 682, + "source": 100, "pc": [ - 698, 699 ] }, { - "teal": 682, - "source": 138, + "teal": 686, + "source": 142, "pc": [ 700, 701, @@ -3151,90 +3151,96 @@ ] }, { - "teal": 685, - "source": 100, + "teal": 689, + "source": 142, "pc": [ - 703 + 703, + 704, + 705 ] }, { - "teal": 689, + "teal": 690, "source": 142, "pc": [ - 704, - 705, 706 ] }, { - "teal": 692, + "teal": 691, "source": 142, "pc": [ 707, - 708, - 709 + 708 ] }, { - "teal": 693, + "teal": 694, "source": 142, "pc": [ - 710 + 709, + 710, + 711 ] }, { - "teal": 694, + "teal": 695, "source": 142, "pc": [ - 711, 712 ] }, { - "teal": 697, + "teal": 696, "source": 142, "pc": [ 713, - 714, - 715 + 714 ] }, { - "teal": 698, + "teal": 699, "source": 142, "pc": [ - 716 + 715, + 716, + 717 ] }, { - "teal": 699, + "teal": 700, "source": 142, "pc": [ - 717, 718 ] }, { - "teal": 702, + "teal": 701, "source": 142, "pc": [ 719, - 720, - 721 + 720 ] }, { - "teal": 703, + "teal": 704, "source": 142, "pc": [ + 721, 722 ] }, { - "teal": 704, + "teal": 705, + "source": 142, + "pc": [ + 723 + ] + }, + { + "teal": 706, "source": 142, "pc": [ - 723, 724 ] }, @@ -3242,14 +3248,14 @@ "teal": 707, "source": 142, "pc": [ - 725, - 726 + 725 ] }, { "teal": 708, "source": 142, "pc": [ + 726, 727 ] }, @@ -3271,68 +3277,68 @@ "teal": 711, "source": 142, "pc": [ - 730, - 731 - ] - }, - { - "teal": 712, - "source": 142, - "pc": [ - 732 + 730 ] }, { - "teal": 713, + "teal": 714, "source": 142, "pc": [ + 731, + 732, 733 ] }, { - "teal": 714, + "teal": 715, "source": 142, "pc": [ 734 ] }, { - "teal": 717, + "teal": 716, "source": 142, "pc": [ - 735, - 736, - 737 + 735 ] }, { - "teal": 718, + "teal": 719, "source": 142, "pc": [ + 736, + 737, 738 ] }, { - "teal": 719, - "source": 142, + "teal": 724, + "source": 144, "pc": [ - 739 + 739, + 740 ] }, { - "teal": 722, - "source": 142, + "teal": 725, + "source": 144, "pc": [ - 740, 741, 742 ] }, + { + "teal": 726, + "source": 144, + "pc": [ + 743 + ] + }, { "teal": 727, "source": 144, "pc": [ - 743, 744 ] }, @@ -3340,27 +3346,27 @@ "teal": 728, "source": 144, "pc": [ - 745, - 746 + 745 ] }, { - "teal": 729, - "source": 144, + "teal": 732, + "source": 145, "pc": [ + 746, 747 ] }, { - "teal": 730, - "source": 144, + "teal": 733, + "source": 145, "pc": [ 748 ] }, { - "teal": 731, - "source": 144, + "teal": 734, + "source": 145, "pc": [ 749 ] @@ -3369,34 +3375,34 @@ "teal": 735, "source": 145, "pc": [ - 750, - 751 + 750 ] }, { "teal": 736, "source": 145, "pc": [ - 752 + 751 ] }, { - "teal": 737, - "source": 145, + "teal": 740, + "source": 146, "pc": [ + 752, 753 ] }, { - "teal": 738, - "source": 145, + "teal": 741, + "source": 146, "pc": [ 754 ] }, { - "teal": 739, - "source": 145, + "teal": 742, + "source": 146, "pc": [ 755 ] @@ -3405,81 +3411,81 @@ "teal": 743, "source": 146, "pc": [ - 756, - 757 + 756 ] }, { "teal": 744, "source": 146, "pc": [ - 758 + 757 ] }, { - "teal": 745, - "source": 146, + "teal": 755, + "source": 149, "pc": [ + 758, 759 ] }, { - "teal": 746, - "source": 146, + "teal": 756, + "source": 150, "pc": [ - 760 + 760, + 761 ] }, { - "teal": 747, - "source": 146, + "teal": 757, + "source": 150, "pc": [ - 761 + 762, + 763 ] }, { "teal": 758, - "source": 149, + "source": 150, "pc": [ - 762, - 763 + 764 ] }, { "teal": 759, "source": 150, "pc": [ - 764, 765 ] }, { - "teal": 760, - "source": 150, + "teal": 762, + "source": 149, "pc": [ 766, 767 ] }, { - "teal": 761, - "source": 150, + "teal": 763, + "source": 151, "pc": [ - 768 + 768, + 769 ] }, { - "teal": 762, - "source": 150, + "teal": 764, + "source": 151, "pc": [ - 769 + 770 ] }, { "teal": 765, - "source": 149, + "source": 151, "pc": [ - 770, 771 ] }, @@ -3487,151 +3493,151 @@ "teal": 766, "source": 151, "pc": [ - 772, - 773 + 772 ] }, { - "teal": 767, - "source": 151, + "teal": 769, + "source": 149, "pc": [ + 773, 774 ] }, { - "teal": 768, - "source": 151, + "teal": 770, + "source": 152, "pc": [ - 775 + 775, + 776 ] }, { - "teal": 769, - "source": 151, + "teal": 771, + "source": 152, "pc": [ - 776 + 777, + 778 ] }, { "teal": 772, - "source": 149, + "source": 152, "pc": [ - 777, - 778 + 779 ] }, { "teal": 773, "source": 152, "pc": [ - 779, 780 ] }, { - "teal": 774, - "source": 152, + "teal": 776, + "source": 149, "pc": [ 781, 782 ] }, { - "teal": 775, - "source": 152, + "teal": 777, + "source": 153, "pc": [ - 783 + 783, + 784 ] }, { - "teal": 776, - "source": 152, + "teal": 778, + "source": 153, "pc": [ - 784 + 785, + 786 ] }, { "teal": 779, - "source": 149, + "source": 153, "pc": [ - 785, - 786 + 787 ] }, { "teal": 780, "source": 153, "pc": [ - 787, 788 ] }, { - "teal": 781, - "source": 153, + "teal": 784, + "source": 3, "pc": [ 789, 790 ] }, { - "teal": 782, - "source": 153, + "teal": 785, + "source": 156, "pc": [ - 791 + 791, + 792 ] }, { - "teal": 783, - "source": 153, + "teal": 786, + "source": 156, "pc": [ - 792 + 793, + 794 ] }, { "teal": 787, - "source": 3, + "source": 156, "pc": [ - 793, - 794 + 795, + 796 ] }, { "teal": 788, "source": 156, "pc": [ - 795, - 796 + 797 ] }, { "teal": 789, "source": 156, "pc": [ - 797, - 798 + 798, + 799 ] }, { "teal": 790, "source": 156, "pc": [ - 799, - 800 + 800, + 801 ] }, { "teal": 791, "source": 156, "pc": [ - 801 + 802 ] }, { "teal": 792, "source": 156, "pc": [ - 802, 803 ] }, @@ -3644,29 +3650,23 @@ ] }, { - "teal": 794, - "source": 156, - "pc": [ - 806 - ] - }, - { - "teal": 795, - "source": 156, + "teal": 797, + "source": 158, "pc": [ + 806, 807 ] }, { - "teal": 796, - "source": 156, + "teal": 798, + "source": 158, "pc": [ 808, 809 ] }, { - "teal": 800, + "teal": 799, "source": 158, "pc": [ 810, @@ -3674,7 +3674,7 @@ ] }, { - "teal": 801, + "teal": 800, "source": 158, "pc": [ 812, @@ -3682,7 +3682,7 @@ ] }, { - "teal": 802, + "teal": 801, "source": 158, "pc": [ 814, @@ -3690,55 +3690,55 @@ ] }, { - "teal": 803, + "teal": 802, "source": 158, "pc": [ - 816, - 817 + 816 ] }, { - "teal": 804, + "teal": 803, "source": 158, "pc": [ - 818, - 819 + 817, + 818 ] }, { - "teal": 805, + "teal": 804, "source": 158, "pc": [ - 820 + 819, + 820, + 821 ] }, { - "teal": 806, + "teal": 805, "source": 158, "pc": [ - 821, - 822 + 822, + 823 ] }, { - "teal": 807, - "source": 158, + "teal": 809, + "source": 160, "pc": [ - 823, 824, 825 ] }, { - "teal": 808, - "source": 158, + "teal": 810, + "source": 160, "pc": [ 826, 827 ] }, { - "teal": 812, + "teal": 811, "source": 160, "pc": [ 828, @@ -3746,7 +3746,7 @@ ] }, { - "teal": 813, + "teal": 812, "source": 160, "pc": [ 830, @@ -3754,7 +3754,7 @@ ] }, { - "teal": 814, + "teal": 813, "source": 160, "pc": [ 832, @@ -3762,55 +3762,55 @@ ] }, { - "teal": 815, + "teal": 814, "source": 160, "pc": [ - 834, - 835 + 834 ] }, { - "teal": 816, + "teal": 815, "source": 160, "pc": [ - 836, - 837 + 835, + 836 ] }, { - "teal": 817, + "teal": 816, "source": 160, "pc": [ - 838 + 837, + 838, + 839 ] }, { - "teal": 818, + "teal": 817, "source": 160, "pc": [ - 839, - 840 + 840, + 841 ] }, { - "teal": 819, - "source": 160, + "teal": 821, + "source": 162, "pc": [ - 841, 842, 843 ] }, { - "teal": 820, - "source": 160, + "teal": 822, + "source": 162, "pc": [ 844, 845 ] }, { - "teal": 824, + "teal": 823, "source": 162, "pc": [ 846, @@ -3818,32 +3818,32 @@ ] }, { - "teal": 825, + "teal": 824, "source": 162, "pc": [ 848, - 849 + 849, + 850 ] }, { - "teal": 826, - "source": 162, + "teal": 828, + "source": 163, "pc": [ - 850, - 851 + 851, + 852 ] }, { - "teal": 827, - "source": 162, + "teal": 829, + "source": 163, "pc": [ - 852, 853, 854 ] }, { - "teal": 831, + "teal": 830, "source": 163, "pc": [ 855, @@ -3851,115 +3851,121 @@ ] }, { - "teal": 832, + "teal": 831, "source": 163, "pc": [ 857, - 858 + 858, + 859 ] }, { - "teal": 833, - "source": 163, + "teal": 835, + "source": 165, "pc": [ - 859, - 860 + 860, + 861 ] }, { - "teal": 834, - "source": 163, + "teal": 836, + "source": 165, "pc": [ - 861, 862, - 863 + 863, + 864 ] }, { - "teal": 838, + "teal": 837, "source": 165, "pc": [ - 864, 865 ] }, { - "teal": 839, - "source": 165, + "teal": 838, + "source": 142, "pc": [ - 866, - 867, - 868 + 866 ] }, { - "teal": 840, - "source": 165, + "teal": 842, + "source": 168, "pc": [ + 867, + 868, 869 ] }, { - "teal": 841, - "source": 142, + "teal": 845, + "source": 168, "pc": [ - 870 + 870, + 871, + 872 ] }, { - "teal": 845, + "teal": 846, "source": 168, "pc": [ - 871, - 872, 873 ] }, { - "teal": 848, + "teal": 847, "source": 168, "pc": [ 874, - 875, - 876 + 875 ] }, { - "teal": 849, + "teal": 850, "source": 168, "pc": [ - 877 + 876, + 877, + 878 ] }, { - "teal": 850, + "teal": 851, "source": 168, "pc": [ - 878, 879 ] }, { - "teal": 853, + "teal": 852, "source": 168, "pc": [ 880, - 881, - 882 + 881 ] }, { - "teal": 854, + "teal": 855, "source": 168, "pc": [ + 882, 883 ] }, { - "teal": 855, + "teal": 856, + "source": 168, + "pc": [ + 884 + ] + }, + { + "teal": 857, "source": 168, "pc": [ - 884, 885 ] }, @@ -3967,14 +3973,14 @@ "teal": 858, "source": 168, "pc": [ - 886, - 887 + 886 ] }, { "teal": 859, "source": 168, "pc": [ + 887, 888 ] }, @@ -3996,60 +4002,60 @@ "teal": 862, "source": 168, "pc": [ - 891, - 892 + 891 ] }, { - "teal": 863, + "teal": 865, "source": 168, "pc": [ - 893 + 892, + 893, + 894 ] }, { - "teal": 864, + "teal": 866, "source": 168, "pc": [ - 894 + 895 ] }, { - "teal": 865, + "teal": 867, "source": 168, "pc": [ - 895 + 896 ] }, { - "teal": 868, + "teal": 870, "source": 168, "pc": [ - 896, 897, - 898 + 898, + 899 ] }, { - "teal": 869, - "source": 168, + "teal": 875, + "source": 170, "pc": [ - 899 + 900, + 901 ] }, { - "teal": 870, - "source": 168, + "teal": 876, + "source": 170, "pc": [ - 900 + 902 ] }, { - "teal": 873, - "source": 168, + "teal": 877, + "source": 170, "pc": [ - 901, - 902, 903 ] }, @@ -4057,34 +4063,34 @@ "teal": 878, "source": 170, "pc": [ - 904, - 905 + 904 ] }, { "teal": 879, "source": 170, "pc": [ - 906 + 905 ] }, { - "teal": 880, - "source": 170, + "teal": 883, + "source": 171, "pc": [ + 906, 907 ] }, { - "teal": 881, - "source": 170, + "teal": 884, + "source": 171, "pc": [ 908 ] }, { - "teal": 882, - "source": 170, + "teal": 885, + "source": 171, "pc": [ 909 ] @@ -4093,43 +4099,43 @@ "teal": 886, "source": 171, "pc": [ - 910, - 911 + 910 ] }, { "teal": 887, "source": 171, "pc": [ - 912 + 911 ] }, { - "teal": 888, - "source": 171, + "teal": 897, + "source": 173, "pc": [ + 912, 913 ] }, { - "teal": 889, - "source": 171, + "teal": 898, + "source": 174, "pc": [ - 914 + 914, + 915 ] }, { - "teal": 890, - "source": 171, + "teal": 899, + "source": 174, "pc": [ - 915 + 916 ] }, { "teal": 900, - "source": 173, + "source": 174, "pc": [ - 916, 917 ] }, @@ -4137,151 +4143,151 @@ "teal": 901, "source": 174, "pc": [ - 918, - 919 + 918 ] }, { - "teal": 902, - "source": 174, + "teal": 904, + "source": 173, "pc": [ + 919, 920 ] }, { - "teal": 903, - "source": 174, + "teal": 905, + "source": 175, "pc": [ - 921 + 921, + 922 ] }, { - "teal": 904, - "source": 174, + "teal": 906, + "source": 175, "pc": [ - 922 + 923, + 924 ] }, { "teal": 907, - "source": 173, + "source": 175, "pc": [ - 923, - 924 + 925 ] }, { "teal": 908, "source": 175, "pc": [ - 925, 926 ] }, { - "teal": 909, - "source": 175, + "teal": 911, + "source": 173, "pc": [ 927, 928 ] }, { - "teal": 910, - "source": 175, + "teal": 912, + "source": 176, "pc": [ - 929 + 929, + 930 ] }, { - "teal": 911, - "source": 175, + "teal": 913, + "source": 176, "pc": [ - 930 + 931, + 932 ] }, { "teal": 914, - "source": 173, + "source": 176, "pc": [ - 931, - 932 + 933 ] }, { "teal": 915, "source": 176, "pc": [ - 933, 934 ] }, { - "teal": 916, - "source": 176, + "teal": 918, + "source": 173, "pc": [ 935, 936 ] }, { - "teal": 917, - "source": 176, + "teal": 919, + "source": 177, "pc": [ - 937 + 937, + 938 ] }, { - "teal": 918, - "source": 176, + "teal": 920, + "source": 177, "pc": [ - 938 + 939, + 940 ] }, { "teal": 921, - "source": 173, + "source": 177, "pc": [ - 939, - 940 + 941 ] }, { "teal": 922, - "source": 177, + "source": 173, "pc": [ - 941, - 942 + 942, + 943 ] }, { "teal": 923, "source": 177, "pc": [ - 943, - 944 + 944, + 945 ] }, { "teal": 924, "source": 177, "pc": [ - 945 + 946, + 947 ] }, { "teal": 925, - "source": 173, + "source": 177, "pc": [ - 946, - 947 + 948 ] }, { "teal": 926, "source": 177, "pc": [ - 948, 949 ] }, @@ -4289,33 +4295,27 @@ "teal": 927, "source": 177, "pc": [ - 950, - 951 + 950 ] }, { - "teal": 928, - "source": 177, + "teal": 931, + "source": 180, "pc": [ + 951, 952 ] }, { - "teal": 929, - "source": 177, - "pc": [ - 953 - ] - }, - { - "teal": 930, - "source": 177, + "teal": 932, + "source": 180, "pc": [ + 953, 954 ] }, { - "teal": 934, + "teal": 933, "source": 180, "pc": [ 955, @@ -4323,72 +4323,72 @@ ] }, { - "teal": 935, + "teal": 934, "source": 180, "pc": [ - 957, - 958 + 957 ] }, { - "teal": 936, + "teal": 935, "source": 180, "pc": [ + 958, 959, 960 ] }, { - "teal": 937, + "teal": 936, "source": 180, "pc": [ - 961 + 961, + 962 ] }, { - "teal": 938, + "teal": 937, "source": 180, "pc": [ - 962, 963, - 964 + 964, + 965 ] }, { - "teal": 939, + "teal": 940, "source": 180, "pc": [ - 965, - 966 + 966, + 967 ] }, { - "teal": 940, + "teal": 943, "source": 180, "pc": [ - 967, 968, 969 ] }, { - "teal": 943, - "source": 180, + "teal": 947, + "source": 182, "pc": [ 970, 971 ] }, { - "teal": 946, - "source": 180, + "teal": 948, + "source": 182, "pc": [ 972, 973 ] }, { - "teal": 950, + "teal": 949, "source": 182, "pc": [ 974, @@ -4396,30 +4396,30 @@ ] }, { - "teal": 951, - "source": 182, + "teal": 957, + "source": 184, "pc": [ - 976, - 977 + 976 ] }, { - "teal": 952, - "source": 182, + "teal": 958, + "source": 187, "pc": [ - 978, - 979 + 977, + 978 ] }, { - "teal": 960, - "source": 184, + "teal": 959, + "source": 187, "pc": [ + 979, 980 ] }, { - "teal": 961, + "teal": 960, "source": 187, "pc": [ 981, @@ -4427,30 +4427,30 @@ ] }, { - "teal": 962, + "teal": 961, "source": 187, "pc": [ - 983, - 984 + 983 ] }, { - "teal": 963, - "source": 187, + "teal": 962, + "source": 186, "pc": [ - 985, - 986 + 984, + 985 ] }, { - "teal": 964, - "source": 187, + "teal": 963, + "source": 186, "pc": [ + 986, 987 ] }, { - "teal": 965, + "teal": 964, "source": 186, "pc": [ 988, @@ -4458,115 +4458,115 @@ ] }, { - "teal": 966, + "teal": 965, "source": 186, "pc": [ - 990, - 991 + 990 ] }, { - "teal": 967, + "teal": 966, "source": 186, "pc": [ - 992, - 993 + 991, + 992 ] }, { - "teal": 968, + "teal": 967, "source": 186, "pc": [ + 993, 994 ] }, { - "teal": 969, + "teal": 968, "source": 186, "pc": [ - 995, - 996 + 995 ] }, { - "teal": 970, - "source": 186, + "teal": 969, + "source": 185, "pc": [ - 997, - 998 + 996, + 997 ] }, { - "teal": 971, - "source": 186, + "teal": 970, + "source": 185, "pc": [ + 998, 999 ] }, { - "teal": 972, - "source": 185, + "teal": 971, + "source": 184, "pc": [ 1000, - 1001 + 1001, + 1002 ] }, { - "teal": 973, - "source": 185, + "teal": 972, + "source": 184, "pc": [ - 1002, - 1003 + 1003, + 1004 ] }, { - "teal": 974, - "source": 184, + "teal": 976, + "source": 190, "pc": [ - 1004, 1005, 1006 ] }, { - "teal": 975, - "source": 184, + "teal": 977, + "source": 190, "pc": [ - 1007, - 1008 + 1007 ] }, { - "teal": 979, + "teal": 978, "source": 190, "pc": [ - 1009, - 1010 + 1008 ] }, { - "teal": 980, + "teal": 979, "source": 190, "pc": [ - 1011 + 1009 ] }, { - "teal": 981, - "source": 190, + "teal": 983, + "source": 192, "pc": [ - 1012 + 1010, + 1011 ] }, { - "teal": 982, - "source": 190, + "teal": 984, + "source": 192, "pc": [ + 1012, 1013 ] }, { - "teal": 986, + "teal": 985, "source": 192, "pc": [ 1014, @@ -4574,172 +4574,160 @@ ] }, { - "teal": 987, + "teal": 986, "source": 192, "pc": [ 1016, - 1017 + 1017, + 1018 ] }, { - "teal": 988, - "source": 192, + "teal": 990, + "source": 194, "pc": [ - 1018, - 1019 + 1019, + 1020 ] }, { - "teal": 989, - "source": 192, + "teal": 991, + "source": 194, "pc": [ - 1020, 1021, - 1022 + 1022, + 1023 ] }, { - "teal": 993, + "teal": 992, "source": 194, "pc": [ - 1023, 1024 ] }, { - "teal": 994, - "source": 194, - "pc": [ - 1025, - 1026, - 1027 - ] - }, - { - "teal": 995, - "source": 194, + "teal": 993, + "source": 168, "pc": [ - 1028 + 1025 ] }, { "teal": 996, - "source": 168, + "source": 8, "pc": [ - 1029 + 1026, + 1027, + 1028, + 1029, + 1030, + 1031 ] }, { - "teal": 999, + "teal": 997, "source": 8, "pc": [ - 1030, - 1031, 1032, 1033, - 1034, - 1035 + 1034 ] }, { - "teal": 1000, + "teal": 998, "source": 8, "pc": [ + 1035, 1036, 1037, 1038 ] }, { - "teal": 1001, + "teal": 999, "source": 8, "pc": [ - 1039, - 1040, - 1041, - 1042 + 1039 ] }, { "teal": 1002, "source": 8, "pc": [ - 1043 + 1040, + 1041, + 1042, + 1043, + 1044, + 1045 ] }, { - "teal": 1005, + "teal": 1003, "source": 8, "pc": [ - 1044, - 1045, 1046, 1047, 1048, - 1049 + 1049, + 1050, + 1051 ] }, { - "teal": 1006, + "teal": 1004, "source": 8, "pc": [ - 1050, - 1051, 1052, 1053, 1054, - 1055 + 1055, + 1056, + 1057 ] }, { - "teal": 1007, + "teal": 1005, "source": 8, "pc": [ - 1056, - 1057, 1058, 1059, 1060, - 1061 + 1061, + 1062, + 1063 ] }, { - "teal": 1008, + "teal": 1006, "source": 8, "pc": [ - 1062, - 1063, 1064, 1065, 1066, - 1067 + 1067, + 1068, + 1069 ] }, { - "teal": 1009, + "teal": 1007, "source": 8, "pc": [ - 1068, - 1069, 1070, 1071, - 1072, - 1073 + 1072 ] }, { - "teal": 1010, + "teal": 1008, "source": 8, "pc": [ + 1073, 1074, 1075, - 1076 - ] - }, - { - "teal": 1011, - "source": 8, - "pc": [ + 1076, 1077, 1078, 1079, @@ -4747,18 +4735,14 @@ 1081, 1082, 1083, - 1084, - 1085, - 1086, - 1087, - 1088 + 1084 ] }, { - "teal": 1012, + "teal": 1009, "source": 8, "pc": [ - 1089 + 1085 ] } ] \ No newline at end of file diff --git a/examples/big_box/artifacts/BigBox.src_map.json b/examples/big_box/artifacts/BigBox.src_map.json index c47840b10..5c96d0751 100644 --- a/examples/big_box/artifacts/BigBox.src_map.json +++ b/examples/big_box/artifacts/BigBox.src_map.json @@ -671,7 +671,7 @@ }, { "teal": 151, - "source": 57, + "source": 58, "pc": [ 166, 167 diff --git a/src/lib/compiler.ts b/src/lib/compiler.ts index d1396e319..8d5d00958 100644 --- a/src/lib/compiler.ts +++ b/src/lib/compiler.ts @@ -226,6 +226,7 @@ interface Subroutine extends ABIMethod { call: string[]; }; node: ts.MethodDeclaration | ts.ClassDeclaration; + inline?: boolean; } // These should probably be types rather than strings? function isNumeric(t: string): boolean { @@ -417,6 +418,8 @@ export default class Compiler { asset: this.getOpParamObjects('asset_params_get'), }; + currentInline?: string; + /** Verifies ABI types are properly decoded for runtime usage */ private checkDecoding(node: ts.Node, type: string) { if (type === 'bool') { @@ -2948,48 +2951,9 @@ export default class Compiler { if (!node.body) throw new Error(`A method body must be defined for ${node.name.getText()}`); - if (node.modifiers && node.modifiers[0].kind === ts.SyntaxKind.PrivateKeyword) { - this.processSubroutine(node); - return; - } - - if (this.currentProgram === 'lsig' && node.name.getText() !== 'logic') { - throw Error('Only one method called "logic" can be defined in a logic signature'); - } - - if (this.currentProgram === 'lsig' && returnType !== 'void') - throw Error('logic method must have a void return type'); - this.currentSubroutine.allows = { create: [], call: [] }; let bareAction = false; - const n = this.currentSubroutine.name; - if ( - [ - 'createApplication', - 'updateApplication', - 'deleteApplication', - 'optInToApplication', - 'closeOutOfApplication', - 'clearState', - ].includes(n) - ) { - const isCreate = this.currentSubroutine.name === 'createApplication'; - let oc: OnComplete; - - if (n === 'createApplication') oc = 'NoOp'; - else if (n === 'updateApplication') oc = 'UpdateApplication'; - else if (n === 'deleteApplication') oc = 'DeleteApplication'; - else if (n === 'optInToApplication') oc = 'OptIn'; - else if (n === 'closeOutOfApplication') oc = 'CloseOut'; - else if (n === 'clearState') oc = 'ClearState'; - else throw Error(); - - const action = isCreate ? 'create' : 'call'; - - this.currentSubroutine.allows[action].push(oc); - } - (ts.getDecorators(node) || []).forEach((d) => { if (ts.isPropertyAccessExpression(d.expression)) { if (d.expression.expression.getText() !== 'abi') throw Error(`Unknown decorator ${d.getText()}`); @@ -2998,6 +2962,11 @@ export default class Compiler { return; } + if (d.expression.getText() === 'inline') { + this.currentSubroutine.inline = true; + return; + } + const callExpr = d.expression; if (!ts.isCallExpression(callExpr)) throw Error(`Unknown decorator ${d.getText()}`); const propExpr = callExpr.expression; @@ -3078,6 +3047,49 @@ export default class Compiler { } }); + if (this.currentSubroutine.inline) { + return; + } + + if (node.modifiers && node.modifiers[0].kind === ts.SyntaxKind.PrivateKeyword) { + this.processSubroutine(node); + return; + } + + if (this.currentProgram === 'lsig' && node.name.getText() !== 'logic') { + throw Error('Only one method called "logic" can be defined in a logic signature'); + } + + if (this.currentProgram === 'lsig' && returnType !== 'void') + throw Error('logic method must have a void return type'); + + const n = this.currentSubroutine.name; + if ( + [ + 'createApplication', + 'updateApplication', + 'deleteApplication', + 'optInToApplication', + 'closeOutOfApplication', + 'clearState', + ].includes(n) + ) { + const isCreate = this.currentSubroutine.name === 'createApplication'; + let oc: OnComplete; + + if (n === 'createApplication') oc = 'NoOp'; + else if (n === 'updateApplication') oc = 'UpdateApplication'; + else if (n === 'deleteApplication') oc = 'DeleteApplication'; + else if (n === 'optInToApplication') oc = 'OptIn'; + else if (n === 'closeOutOfApplication') oc = 'CloseOut'; + else if (n === 'clearState') oc = 'ClearState'; + else throw Error(); + + const action = isCreate ? 'create' : 'call'; + + this.currentSubroutine.allows[action].push(oc); + } + const { allows, nonAbi } = this.currentSubroutine; if (nonAbi.call.length + nonAbi.create.length > 0) { if (allows.call.length + allows.create.length > 0) { @@ -3151,7 +3163,15 @@ export default class Compiler { } private processReturnStatement(node: ts.ReturnStatement) { + if (this.currentInline) { + if (node.expression === undefined) return; + + this.processNode(node.expression); + return; + } + this.addSourceComment(node); + const { name } = this.currentSubroutine; const returnType = this.currentSubroutine.returns.type; @@ -3289,6 +3309,8 @@ export default class Compiler { this.typeHint = leftType; if (ts.isIdentifier(node.left)) { + if (this.currentInline) throw Error('Cannot set variable value in inline function. Use ScratchSlot instead'); + const name = node.left.getText(); const processedFrame = this.processFrame(node.left, name, false); const target = this.frame[processedFrame.name]; @@ -3512,6 +3534,8 @@ export default class Compiler { } private processVariableDeclaration(node: ts.VariableDeclarationList) { + if (this.currentInline) throw Error('Cannot create variables in inline function. Use ScratchSlot instead'); + node.declarations.forEach((d) => { this.typeHint = d.type?.getText(); this.processNode(d); @@ -3593,143 +3617,150 @@ export default class Compiler { } } - private processVariableDeclarator(node: ts.VariableDeclaration) { - const name = node.name.getText(); + private initializeVariable(sourceNode: ts.Node, initializer: ts.Node, name: string) { + let initializerType = this.getStackTypeFromNode(initializer); - if (node.initializer) { - let initializerType = this.getStackTypeFromNode(node.initializer); + if (!this.customTypes[initializerType]) initializerType = this.getABIType(initializerType); - if (!this.customTypes[initializerType]) initializerType = this.getABIType(initializerType); + let lastFrameAccess: string | undefined; - let lastFrameAccess: string | undefined; + const isArray = initializerType.endsWith(']') || initializerType.endsWith('}'); - const isArray = initializerType.endsWith(']') || initializerType.endsWith('}'); + if (ts.isIdentifier(initializer) && !this.constants[initializer.getText()] && isArray) { + lastFrameAccess = initializer.getText(); - if (ts.isIdentifier(node.initializer) && !this.constants[node.initializer.getText()] && isArray) { - lastFrameAccess = node.initializer.getText(); - - this.frame[name] = { - framePointer: lastFrameAccess, - type: initializerType, - }; + this.frame[name] = { + framePointer: lastFrameAccess, + type: initializerType, + }; - return; - } + return; + } - if (ts.isElementAccessExpression(node.initializer) && isArray) { - const accessChain = this.getAccessChain(node.initializer); - lastFrameAccess = accessChain[0].expression.getText(); + if (ts.isElementAccessExpression(initializer) && isArray) { + const accessChain = this.getAccessChain(initializer); + lastFrameAccess = accessChain[0].expression.getText(); - const type = this.getStackTypeFromNode(accessChain[0].expression); + const type = this.getStackTypeFromNode(accessChain[0].expression); - if (type.endsWith(']') || type.endsWith('}')) { - // Only add source comments if there will be generated TEAL - if (accessChain.find((e) => ts.isNumericLiteral(e.argumentExpression))) { - this.addSourceComment(node); - } - const accessors = accessChain.map((e, i) => { - if (ts.isNumericLiteral(e.argumentExpression)) return e.argumentExpression; + if (type.endsWith(']') || type.endsWith('}')) { + // Only add source comments if there will be generated TEAL + if (accessChain.find((e) => ts.isNumericLiteral(e.argumentExpression))) { + this.addSourceComment(sourceNode); + } + const accessors = accessChain.map((e, i) => { + if (ts.isNumericLiteral(e.argumentExpression)) return e.argumentExpression; - if (ts.isNumericLiteral(e.argumentExpression)) { - this.push(e.argumentExpression, `int ${e.argumentExpression.getText()}`, StackType.uint64); - } else this.processNode(e.argumentExpression); + if (ts.isNumericLiteral(e.argumentExpression)) { + this.push(e.argumentExpression, `int ${e.argumentExpression.getText()}`, StackType.uint64); + } else this.processNode(e.argumentExpression); - const accName = `accessor//${i}//${name}`; - this.pushVoid(node.initializer!, `frame_bury ${this.frameIndex} // accessor: ${accName}`); + const accName = `accessor//${i}//${name}`; + this.pushVoid(initializer!, `frame_bury ${this.frameIndex} // accessor: ${accName}`); - this.frame[accName] = { - index: this.frameIndex, - type: StackType.uint64, - }; + this.frame[accName] = { + index: this.frameIndex, + type: StackType.uint64, + }; - this.frameIndex -= 1; + this.frameIndex -= 1; - return accName; - }); - - if (lastFrameAccess.startsWith('this.')) { - if (!ts.isPropertyAccessExpression(accessChain[0].expression)) throw new Error('Expected call expression'); - this.initializeStorageFrame(node, name, accessChain[0].expression, initializerType, accessors); - } else { - this.frame[name] = { - accessors, - framePointer: lastFrameAccess, - type: initializerType, - }; - } + return accName; + }); - if (node.type) this.typeComparison(this.lastType, node.type.getText()); - return; + if (lastFrameAccess.startsWith('this.')) { + if (!ts.isPropertyAccessExpression(accessChain[0].expression)) throw new Error('Expected call expression'); + this.initializeStorageFrame(sourceNode, name, accessChain[0].expression, initializerType, accessors); + } else { + this.frame[name] = { + accessors, + framePointer: lastFrameAccess, + type: initializerType, + }; } - } - if ( - ts.isPropertyAccessExpression(node.initializer) && - getStorageName(node.initializer) && - this.storageProps[getStorageName(node.initializer)!] && - isArray - ) { - this.initializeStorageFrame(node, name, node.initializer, initializerType); - - if (node.type) this.typeComparison(this.lastType, node.type.getText()); + if (ts.isVariableDeclaration(sourceNode) && sourceNode.type) + this.typeComparison(this.lastType, sourceNode.type.getText()); return; } + } - if (ts.isPropertyAccessExpression(node.initializer) && isArray) { - lastFrameAccess = node.initializer.expression.getText(); + if ( + ts.isPropertyAccessExpression(initializer) && + getStorageName(initializer) && + this.storageProps[getStorageName(initializer)!] && + isArray + ) { + this.initializeStorageFrame(sourceNode, name, initializer, initializerType); - const type = this.getStackTypeFromNode(node.initializer.expression); - if (type.endsWith(']') || type.endsWith('}')) { - const index = Object.keys(this.getObjectTypes(type)).indexOf(node.initializer.name.getText()); + if (ts.isVariableDeclaration(sourceNode) && sourceNode.type) + this.typeComparison(this.lastType, sourceNode.type.getText()); + return; + } - if (lastFrameAccess.startsWith('this.')) { - if (!ts.isPropertyAccessExpression(node.initializer.expression)) - throw new Error('Expected call expression'); + if (ts.isPropertyAccessExpression(initializer) && isArray) { + lastFrameAccess = initializer.expression.getText(); - this.initializeStorageFrame(node, name, node.initializer.expression, initializerType, [ - stringToExpression(index.toString()) as ts.Expression, - ]); - } else { - this.frame[name] = { - accessors: [stringToExpression(index.toString()) as ts.Expression], - framePointer: lastFrameAccess, - type: initializerType, - }; - } + const type = this.getStackTypeFromNode(initializer.expression); + if (type.endsWith(']') || type.endsWith('}')) { + const index = Object.keys(this.getObjectTypes(type)).indexOf(initializer.name.getText()); - if (node.type) this.typeComparison(initializerType, node.type.getText()); - return; + if (lastFrameAccess.startsWith('this.')) { + if (!ts.isPropertyAccessExpression(initializer.expression)) throw new Error('Expected call expression'); + + this.initializeStorageFrame(sourceNode, name, initializer.expression, initializerType, [ + stringToExpression(index.toString()) as ts.Expression, + ]); + } else { + this.frame[name] = { + accessors: [stringToExpression(index.toString()) as ts.Expression], + framePointer: lastFrameAccess, + type: initializerType, + }; } + + if (ts.isVariableDeclaration(sourceNode) && sourceNode.type) + this.typeComparison(initializerType, sourceNode.type.getText()); + return; } + } - this.addSourceComment(node); - const hint = node.type?.getText(); + this.addSourceComment(sourceNode); + const hint = ts.isVariableDeclaration(sourceNode) ? sourceNode.type?.getText() : undefined; - if (ts.isNumericLiteral(node.initializer) && this.typeHint) { - this.processNumericLiteralWithType(node.initializer, this.getABIType(this.typeHint)); - } else { - this.typeHint = hint; - this.processNode(node.initializer); - if (node.type) this.typeComparison(this.lastType, node.type.getText()); - } + if (ts.isNumericLiteral(initializer) && this.typeHint) { + this.processNumericLiteralWithType(initializer, this.getABIType(this.typeHint)); + } else { + this.typeHint = hint; + this.processNode(initializer); + if (ts.isVariableDeclaration(sourceNode) && sourceNode.type) + this.typeComparison(this.lastType, sourceNode.type.getText()); + } - const type = hint && this.customTypes[hint] ? hint : this.getABIType(this.lastType); + const type = hint && this.customTypes[hint] ? hint : this.getABIType(this.lastType); - this.frame[name] = { - index: this.frameIndex, - type, - }; + this.frame[name] = { + index: this.frameIndex, + type, + }; + + this.pushVoid(initializer, `frame_bury ${this.frameIndex} // ${name}: ${type}`); + this.frameIndex -= 1; + } - this.pushVoid(node, `frame_bury ${this.frameIndex} // ${name}: ${type}`); + private processVariableDeclarator(node: ts.VariableDeclaration) { + const name = node.name.getText(); + + if (node.initializer) { + this.initializeVariable(node, node.initializer, name); } else { if (!node.type) throw new Error('Uninitialized variables must have a type'); this.frame[name] = { index: this.frameIndex, type: this.getABIType(node.type.getText()), }; + this.frameIndex -= 1; } - - this.frameIndex -= 1; } private processExpressionStatement(node: ts.ExpressionStatement) { @@ -4161,10 +4192,18 @@ export default class Compiler { if (ts.isPropertyAccessExpression(chain[0]) && ts.isCallExpression(chain[1])) { const methodName = chain[0].name.getText(); const preArgsType = this.lastType; - this.pushVoid(chain[1], `PENDING_DUPN: ${methodName}`); const subroutine = this.subroutines.find((s) => s.name === methodName); if (!subroutine) throw new Error(`Unknown subroutine ${methodName}`); + if (subroutine.inline) { + if (!ts.isMethodDeclaration(subroutine.node)) throw new Error(); + this.processInline(subroutine.node, chain[1].arguments); + chain.splice(0, 2); + return; + } + + this.pushVoid(chain[1], `PENDING_DUPN: ${methodName}`); + new Array(...chain[1].arguments).reverse().forEach((a) => { this.processNode(a); }); @@ -4457,6 +4496,29 @@ export default class Compiler { ); } + private processInline(fn: ts.MethodDeclaration, args: ts.NodeArray) { + const lastInline = this.currentInline; + const preFrame = structuredClone(this.frame); + + this.currentInline = fn.name.getText(); + fn.parameters.forEach((p, i) => { + if (this.frame[p.name.getText()] !== undefined) { + throw Error( + `Cannot call "${this.currentInline}" in "${ + this.currentSubroutine.name + }" because "${p.name.getText()}" is the name of a parameter in ${ + this.currentInline + } and the name of a variable in "${this.currentSubroutine.name}"` + ); + } + this.initializeVariable(args[i], args[i], p.name.getText()); + }); + this.processNode(fn.body!); + + this.frame = preFrame; + this.currentInline = lastInline; + } + private processSubroutine(fn: ts.MethodDeclaration) { const frameStart = this.teal[this.currentProgram].length; diff --git a/src/lib/optimize.ts b/src/lib/optimize.ts index 639b59c67..f96b79a4a 100644 --- a/src/lib/optimize.ts +++ b/src/lib/optimize.ts @@ -12,7 +12,7 @@ const arglessOps = langspec.Ops.filter((op) => op.Args === undefined && op.Retur const arglessOpNames = ['byte', 'int', 'addr', ...arglessOps.map((op) => op.Name)]; export function optimizeFrames(inputTeal: NodeAndTEAL[]) { - const outputTeal = inputTeal.slice(); + const outputTeal: NodeAndTEAL[] = []; const frames: { [frameIndex: string]: { @@ -20,11 +20,12 @@ export function optimizeFrames(inputTeal: NodeAndTEAL[]) { hasWrite: boolean; reads: number; line: string; + literalWrite: boolean; }; }[] = []; let protoIndex = -1; - outputTeal.forEach((t, i) => { + inputTeal.forEach((t, i) => { const { teal } = t; if (teal.startsWith('proto')) { @@ -37,9 +38,10 @@ export function optimizeFrames(inputTeal: NodeAndTEAL[]) { if (frames[protoIndex][frameIndex]) { frames[protoIndex][frameIndex].hasWrite = true; - } else if (outputTeal[i - 1].teal.match(/^(byte|int)/)) { + } else if (inputTeal[i - 1].teal.match(/^(byte|int)/)) { frames[protoIndex][frameIndex] = { - lineBefore: outputTeal[i - 1].teal, + literalWrite: inputTeal[i - 1].teal.match(/^(byte|int|pushbyte|pushint)/) !== null, + lineBefore: inputTeal[i - 1].teal, hasWrite: false, reads: 0, line: teal, @@ -59,28 +61,35 @@ export function optimizeFrames(inputTeal: NodeAndTEAL[]) { hasWrite: true, reads: 0, line: '', + literalWrite: false, }; } } }); protoIndex = -1; - outputTeal.forEach((t, i) => { + inputTeal.forEach((t) => { const { teal } = t; - if (teal.startsWith('proto')) { - protoIndex += 1; - return; - } + if (teal.startsWith('proto')) protoIndex += 1; - if (teal.startsWith('frame_dig')) { + if (teal.startsWith('frame_')) { const frameIndex = teal.split(' ')[1]; + const f = frames[protoIndex][frameIndex]; + + if (f && !f.hasWrite && f.literalWrite) { + if (teal.startsWith('frame_dig')) { + const comment = teal.split(' ').slice(2).join(' '); + outputTeal.push({ teal: teal.replace(teal, `${f.lineBefore} ${comment}`), node: t.node }); + return; + } - if (frames[protoIndex][frameIndex] && !frames[protoIndex][frameIndex].hasWrite) { - const comment = teal.split(' ').slice(2).join(' '); - const f = frames[protoIndex][frameIndex]; - outputTeal[i].teal = outputTeal[i].teal.replace(teal, `${f.lineBefore} ${comment}`); + if (teal.startsWith('frame_bury')) { + outputTeal.pop(); + return; + } } } + outputTeal.push(t); }); return outputTeal; diff --git a/tests/contracts/artifacts/ABITestAngularCasting.approval.teal b/tests/contracts/artifacts/ABITestAngularCasting.approval.teal index f90bd589a..5292d06a1 100644 --- a/tests/contracts/artifacts/ABITestAngularCasting.approval.teal +++ b/tests/contracts/artifacts/ABITestAngularCasting.approval.teal @@ -36,9 +36,6 @@ angularCasting: // tests/contracts/abi.algo.ts:1042 // x = >1337 - byte 0x0000000000000000000000000000000000000000000000000000000000000539 - frame_bury -1 // x: uint256 - // tests/contracts/abi.algo.ts:1044 // return x; byte 0x151f7c750000000000000000000000000000000000000000000000000000000000000539 diff --git a/tests/contracts/artifacts/ABITestAngularCasting.json b/tests/contracts/artifacts/ABITestAngularCasting.json index a57747013..39931f641 100644 --- a/tests/contracts/artifacts/ABITestAngularCasting.json +++ b/tests/contracts/artifacts/ABITestAngularCasting.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGFuZ3VsYXJDYXN0aW5nKCl1aW50MjU2CmFiaV9yb3V0ZV9hbmd1bGFyQ2FzdGluZzoKCWJ5dGUgMHggLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBhbmd1bGFyQ2FzdGluZygpdWludDI1NgoJY2FsbHN1YiBhbmd1bGFyQ2FzdGluZwoJaW50IDEKCXJldHVybgoKYW5ndWxhckNhc3Rpbmc6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA0MgoJLy8geCA9IDx1aW50PDI1Nj4+MTMzNwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MzkKCWZyYW1lX2J1cnkgLTEgLy8geDogdWludDI1NgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDQ0CgkvLyByZXR1cm4geDsKCWJ5dGUgMHgxNTFmN2M3NTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1MzkKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJhbmd1bGFyQ2FzdGluZygpdWludDI1NiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9hbmd1bGFyQ2FzdGluZwoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGFuZ3VsYXJDYXN0aW5nKCl1aW50MjU2CmFiaV9yb3V0ZV9hbmd1bGFyQ2FzdGluZzoKCWJ5dGUgMHggLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBhbmd1bGFyQ2FzdGluZygpdWludDI1NgoJY2FsbHN1YiBhbmd1bGFyQ2FzdGluZwoJaW50IDEKCXJldHVybgoKYW5ndWxhckNhc3Rpbmc6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTA0MgoJLy8geCA9IDx1aW50PDI1Nj4+MTMzNwoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNDQKCS8vIHJldHVybiB4OwoJYnl0ZSAweDE1MWY3Yzc1MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUzOQoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImFuZ3VsYXJDYXN0aW5nKCl1aW50MjU2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2FuZ3VsYXJDYXN0aW5nCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayInTuple.approval.teal b/tests/contracts/artifacts/ABITestArrayInTuple.approval.teal index b16ffc86f..9777a2dc8 100644 --- a/tests/contracts/artifacts/ABITestArrayInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayInTuple.approval.teal @@ -36,9 +36,6 @@ arrayInTuple: // tests/contracts/abi.algo.ts:265 // a: [uint64, uint<16>, StaticArray, uint<16>] = [11, 22, [33, 44], 55] - byte 0x000000000000000b00160000000000000021000000000000002c0037 - frame_bury -1 // a: [uint64,uint16,uint64[2],uint16] - // tests/contracts/abi.algo.ts:267 // return a[2][1]; byte 0x151f7c75000000000000002c diff --git a/tests/contracts/artifacts/ABITestArrayInTuple.json b/tests/contracts/artifacts/ABITestArrayInTuple.json index 80003ffae..6502d6414 100644 --- a/tests/contracts/artifacts/ABITestArrayInTuple.json +++ b/tests/contracts/artifacts/ABITestArrayInTuple.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGFycmF5SW5UdXBsZSgpdWludDY0CmFiaV9yb3V0ZV9hcnJheUluVHVwbGU6CglieXRlIDB4IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgYXJyYXlJblR1cGxlKCl1aW50NjQKCWNhbGxzdWIgYXJyYXlJblR1cGxlCglpbnQgMQoJcmV0dXJuCgphcnJheUluVHVwbGU6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjY1CgkvLyBhOiBbdWludDY0LCB1aW50PDE2PiwgU3RhdGljQXJyYXk8dWludDY0LCAyPiwgdWludDwxNj5dID0gWzExLCAyMiwgWzMzLCA0NF0sIDU1XQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDM3CglmcmFtZV9idXJ5IC0xIC8vIGE6IFt1aW50NjQsdWludDE2LHVpbnQ2NFsyXSx1aW50MTZdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI2NwoJLy8gcmV0dXJuIGFbMl1bMV07CglieXRlIDB4MTUxZjdjNzUwMDAwMDAwMDAwMDAwMDJjCglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJyYXlJblR1cGxlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfYXJyYXlJblR1cGxlCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGFycmF5SW5UdXBsZSgpdWludDY0CmFiaV9yb3V0ZV9hcnJheUluVHVwbGU6CglieXRlIDB4IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgYXJyYXlJblR1cGxlKCl1aW50NjQKCWNhbGxzdWIgYXJyYXlJblR1cGxlCglpbnQgMQoJcmV0dXJuCgphcnJheUluVHVwbGU6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjY1CgkvLyBhOiBbdWludDY0LCB1aW50PDE2PiwgU3RhdGljQXJyYXk8dWludDY0LCAyPiwgdWludDwxNj5dID0gWzExLCAyMiwgWzMzLCA0NF0sIDU1XQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI2NwoJLy8gcmV0dXJuIGFbMl1bMV07CglieXRlIDB4MTUxZjdjNzUwMDAwMDAwMDAwMDAwMDJjCglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJyYXlJblR1cGxlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfYXJyYXlJblR1cGxlCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArrayLength.approval.teal b/tests/contracts/artifacts/ABITestArrayLength.approval.teal index 51be835da..3c2f801df 100644 --- a/tests/contracts/artifacts/ABITestArrayLength.approval.teal +++ b/tests/contracts/artifacts/ABITestArrayLength.approval.teal @@ -36,9 +36,6 @@ arrayLength: // tests/contracts/abi.algo.ts:744 // a: uint<8>[] = [11, 22, 33, 44, 55] - byte 0x0b16212c37 - frame_bury -1 // a: uint8[] - // tests/contracts/abi.algo.ts:746 // return a.length; byte 0x151f7c750000000000000005 diff --git a/tests/contracts/artifacts/ABITestArrayLength.json b/tests/contracts/artifacts/ABITestArrayLength.json index 9cb00ff0b..8404e67f2 100644 --- a/tests/contracts/artifacts/ABITestArrayLength.json +++ b/tests/contracts/artifacts/ABITestArrayLength.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGFycmF5TGVuZ3RoKCl1aW50NjQKYWJpX3JvdXRlX2FycmF5TGVuZ3RoOgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIGFycmF5TGVuZ3RoKCl1aW50NjQKCWNhbGxzdWIgYXJyYXlMZW5ndGgKCWludCAxCglyZXR1cm4KCmFycmF5TGVuZ3RoOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc0NAoJLy8gYTogdWludDw4PltdID0gWzExLCAyMiwgMzMsIDQ0LCA1NV0KCWJ5dGUgMHgwYjE2MjEyYzM3CglmcmFtZV9idXJ5IC0xIC8vIGE6IHVpbnQ4W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzQ2CgkvLyByZXR1cm4gYS5sZW5ndGg7CglieXRlIDB4MTUxZjdjNzUwMDAwMDAwMDAwMDAwMDA1Cglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiYXJyYXlMZW5ndGgoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9hcnJheUxlbmd0aAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGFycmF5TGVuZ3RoKCl1aW50NjQKYWJpX3JvdXRlX2FycmF5TGVuZ3RoOgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIGFycmF5TGVuZ3RoKCl1aW50NjQKCWNhbGxzdWIgYXJyYXlMZW5ndGgKCWludCAxCglyZXR1cm4KCmFycmF5TGVuZ3RoOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc0NAoJLy8gYTogdWludDw4PltdID0gWzExLCAyMiwgMzMsIDQ0LCA1NV0KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3NDYKCS8vIHJldHVybiBhLmxlbmd0aDsKCWJ5dGUgMHgxNTFmN2M3NTAwMDAwMDAwMDAwMDAwMDUKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheUxlbmd0aCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2FycmF5TGVuZ3RoCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestArraySpliceValue.approval.teal b/tests/contracts/artifacts/ABITestArraySpliceValue.approval.teal index fb40574b9..a0872d8cf 100644 --- a/tests/contracts/artifacts/ABITestArraySpliceValue.approval.teal +++ b/tests/contracts/artifacts/ABITestArraySpliceValue.approval.teal @@ -41,14 +41,8 @@ arraySpliceValue: // tests/contracts/abi.algo.ts:471 // i = 1 - int 1 - frame_bury -2 // i: uint64 - // tests/contracts/abi.algo.ts:472 // l = 7 - int 7 - frame_bury -3 // l: uint64 - // tests/contracts/abi.algo.ts:473 // v = a.splice(i, l) frame_dig -1 // a: uint16[] diff --git a/tests/contracts/artifacts/ABITestArraySpliceValue.json b/tests/contracts/artifacts/ABITestArraySpliceValue.json index bb52ab7bf..f31778bf7 100644 --- a/tests/contracts/artifacts/ABITestArraySpliceValue.json +++ b/tests/contracts/artifacts/ABITestArraySpliceValue.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGFycmF5U3BsaWNlVmFsdWUoKXVpbnQxNltdCmFiaV9yb3V0ZV9hcnJheVNwbGljZVZhbHVlOgoJYnl0ZSAweDsgZHVwbiAzIC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgYXJyYXlTcGxpY2VWYWx1ZSgpdWludDE2W10KCWNhbGxzdWIgYXJyYXlTcGxpY2VWYWx1ZQoJaW50IDEKCXJldHVybgoKYXJyYXlTcGxpY2VWYWx1ZToKCXByb3RvIDQgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NjkKCS8vIGE6IHVpbnQ8MTY+W10gPSBbMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdCglieXRlIDB4MDAwMTAwMDIwMDAzMDAwNDAwMDUwMDA2MDAwNzAwMDgwMDA5MDAwYQoJZnJhbWVfYnVyeSAtMSAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NzEKCS8vIGkgPSAxCglpbnQgMQoJZnJhbWVfYnVyeSAtMiAvLyBpOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDcyCgkvLyBsID0gNwoJaW50IDcKCWZyYW1lX2J1cnkgLTMgLy8gbDogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ3MwoJLy8gdiA9IGEuc3BsaWNlKGksIGwpCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDE2W10KCWludCA3IC8vIGw6IHVpbnQ2NAoJaW50IDIKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCAxNgoJc3RvcmUgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQxNltdCglpbnQgMAoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0CglzdWJzdHJpbmczCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQxNltdCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJaW50IDIKCS0KCWV4dHJhY3QzCglzd2FwCglmcmFtZV9idXJ5IC0xIC8vIGE6IHVpbnQxNltdCglmcmFtZV9idXJ5IC00IC8vIHY6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ3NQoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgLTQgLy8gdjogdWludDE2W10KCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJYnl0ZSAweDE1MWY3Yzc1Cglzd2FwCgljb25jYXQKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheVNwbGljZVZhbHVlKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9hcnJheVNwbGljZVZhbHVlCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGFycmF5U3BsaWNlVmFsdWUoKXVpbnQxNltdCmFiaV9yb3V0ZV9hcnJheVNwbGljZVZhbHVlOgoJYnl0ZSAweDsgZHVwbiAzIC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgYXJyYXlTcGxpY2VWYWx1ZSgpdWludDE2W10KCWNhbGxzdWIgYXJyYXlTcGxpY2VWYWx1ZQoJaW50IDEKCXJldHVybgoKYXJyYXlTcGxpY2VWYWx1ZToKCXByb3RvIDQgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NjkKCS8vIGE6IHVpbnQ8MTY+W10gPSBbMSwgMiwgMywgNCwgNSwgNiwgNywgOCwgOSwgMTBdCglieXRlIDB4MDAwMTAwMDIwMDAzMDAwNDAwMDUwMDA2MDAwNzAwMDgwMDA5MDAwYQoJZnJhbWVfYnVyeSAtMSAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NzEKCS8vIGkgPSAxCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDcyCgkvLyBsID0gNwoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ3MwoJLy8gdiA9IGEuc3BsaWNlKGksIGwpCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDE2W10KCWludCA3IC8vIGw6IHVpbnQ2NAoJaW50IDIKCXN0b3JlIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWludCAxNgoJc3RvcmUgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQxNltdCglpbnQgMAoJbG9hZCAyNDcgLy8gc3BsaWNlIHN0YXJ0CglzdWJzdHJpbmczCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDE2W10KCWR1cAoJbGVuCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJKwoJaW50IDIKCS0KCXN3YXAKCXN1YnN0cmluZzMKCWNvbmNhdAoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQxNltdCglsb2FkIDI0NyAvLyBzcGxpY2Ugc3RhcnQKCWxvYWQgMjQ2IC8vIHNwbGljZSBieXRlIGxlbmd0aAoJaW50IDIKCS0KCWV4dHJhY3QzCglzd2FwCglmcmFtZV9idXJ5IC0xIC8vIGE6IHVpbnQxNltdCglmcmFtZV9idXJ5IC00IC8vIHY6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ3NQoJLy8gcmV0dXJuIHY7CglmcmFtZV9kaWcgLTQgLy8gdjogdWludDE2W10KCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJYnl0ZSAweDE1MWY3Yzc1Cglzd2FwCgljb25jYXQKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJhcnJheVNwbGljZVZhbHVlKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9hcnJheVNwbGljZVZhbHVlCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.approval.teal b/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.approval.teal index 487801bcb..020b2aa7f 100644 --- a/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.approval.teal @@ -39,9 +39,6 @@ dynamicAccessOfDynamicElementInStaticArray: // tests/contracts/abi.algo.ts:651 // i = 1 - int 1 - frame_bury -2 // i: uint64 - // tests/contracts/abi.algo.ts:652 // return a[i]; frame_dig -1 // a: bytes[3] diff --git a/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.json b/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.json index 1cb5a778b..cb81541b0 100644 --- a/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.json +++ b/tests/contracts/artifacts/ABITestDynamicAccessOfDynamicElementInStaticArray.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGR5bmFtaWNBY2Nlc3NPZkR5bmFtaWNFbGVtZW50SW5TdGF0aWNBcnJheShzdHJpbmdbM10pc3RyaW5nCmFiaV9yb3V0ZV9keW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXk6CglieXRlIDB4IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGE6IHN0cmluZ1szXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoKCS8vIGV4ZWN1dGUgZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5KHN0cmluZ1szXSlzdHJpbmcKCWNhbGxzdWIgZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5CglpbnQgMQoJcmV0dXJuCgpkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXk6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjUxCgkvLyBpID0gMQoJaW50IDEKCWZyYW1lX2J1cnkgLTIgLy8gaTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY1MgoJLy8gcmV0dXJuIGFbaV07CglmcmFtZV9kaWcgLTEgLy8gYTogYnl0ZXNbM10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJYnl0ZSAweDE1MWY3Yzc1Cglzd2FwCgljb25jYXQKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoc3RyaW5nWzNdKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9keW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGR5bmFtaWNBY2Nlc3NPZkR5bmFtaWNFbGVtZW50SW5TdGF0aWNBcnJheShzdHJpbmdbM10pc3RyaW5nCmFiaV9yb3V0ZV9keW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXk6CglieXRlIDB4IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGE6IHN0cmluZ1szXQoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoKCS8vIGV4ZWN1dGUgZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5KHN0cmluZ1szXSlzdHJpbmcKCWNhbGxzdWIgZHluYW1pY0FjY2Vzc09mRHluYW1pY0VsZW1lbnRJblN0YXRpY0FycmF5CglpbnQgMQoJcmV0dXJuCgpkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXk6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NjUxCgkvLyBpID0gMQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjY1MgoJLy8gcmV0dXJuIGFbaV07CglmcmFtZV9kaWcgLTEgLy8gYTogYnl0ZXNbM10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5CglpbnQgMgoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJdW5jb3ZlciAyCglleHRyYWN0X3VpbnQxNgoJZHVwIC8vIGR1cGxpY2F0ZSBzdGFydCBvZiBlbGVtZW50Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5Cglzd2FwCglleHRyYWN0X3VpbnQxNiAvLyBnZXQgbnVtYmVyIG9mIGVsZW1lbnRzCglpbnQgMSAvLyBnZXQgdHlwZSBsZW5ndGgKCSogLy8gbXVsdGlwbHkgYnkgdHlwZSBsZW5ndGgKCWludCAyCgkrIC8vIGFkZCB0d28gZm9yIGxlbmd0aAoJZXh0cmFjdDMKCWV4dHJhY3QgMiAwCglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJYnl0ZSAweDE1MWY3Yzc1Cglzd2FwCgljb25jYXQKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkoc3RyaW5nWzNdKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9keW5hbWljQWNjZXNzT2ZEeW5hbWljRWxlbWVudEluU3RhdGljQXJyYXkKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicArray.approval.teal b/tests/contracts/artifacts/ABITestDynamicArray.approval.teal index b8028aac8..64edacdec 100644 --- a/tests/contracts/artifacts/ABITestDynamicArray.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicArray.approval.teal @@ -36,9 +36,6 @@ dynamicArray: // tests/contracts/abi.algo.ts:348 // a: uint64[] = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 - frame_bury -1 // a: uint64[] - // tests/contracts/abi.algo.ts:350 // return a[1]; byte 0x000000000000000b00000000000000160000000000000021 // a: uint64[] diff --git a/tests/contracts/artifacts/ABITestDynamicArray.json b/tests/contracts/artifacts/ABITestDynamicArray.json index b78d617f4..1f7193e2f 100644 --- a/tests/contracts/artifacts/ABITestDynamicArray.json +++ b/tests/contracts/artifacts/ABITestDynamicArray.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGR5bmFtaWNBcnJheSgpdWludDY0CmFiaV9yb3V0ZV9keW5hbWljQXJyYXk6CglieXRlIDB4IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgZHluYW1pY0FycmF5KCl1aW50NjQKCWNhbGxzdWIgZHluYW1pY0FycmF5CglpbnQgMQoJcmV0dXJuCgpkeW5hbWljQXJyYXk6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzQ4CgkvLyBhOiB1aW50NjRbXSA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAtMSAvLyBhOiB1aW50NjRbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNTAKCS8vIHJldHVybiBhWzFdOwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMSAvLyBhOiB1aW50NjRbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCglieXRlIDB4MTUxZjdjNzUKCXN3YXAKCWNvbmNhdAoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImR5bmFtaWNBcnJheSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2R5bmFtaWNBcnJheQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGR5bmFtaWNBcnJheSgpdWludDY0CmFiaV9yb3V0ZV9keW5hbWljQXJyYXk6CglieXRlIDB4IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgZHluYW1pY0FycmF5KCl1aW50NjQKCWNhbGxzdWIgZHluYW1pY0FycmF5CglpbnQgMQoJcmV0dXJuCgpkeW5hbWljQXJyYXk6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzQ4CgkvLyBhOiB1aW50NjRbXSA9IFsxMSwgMjIsIDMzXQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM1MAoJLy8gcmV0dXJuIGFbMV07CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxIC8vIGE6IHVpbnQ2NFtdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCWJ5dGUgMHgxNTFmN2M3NQoJc3dhcAoJY29uY2F0Cglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiZHluYW1pY0FycmF5KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfZHluYW1pY0FycmF5CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicArrayElements.approval.teal b/tests/contracts/artifacts/ABITestDynamicArrayElements.approval.teal index faf6cb7f6..bf2ea30fc 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayElements.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicArrayElements.approval.teal @@ -36,9 +36,6 @@ dynamicArrayElements: // tests/contracts/abi.algo.ts:481 // a: uint<16>[] = [1, 2, 3] - byte 0x000100020003 - frame_bury -1 // a: uint16[] - // tests/contracts/abi.algo.ts:482 // newA: uint<16>[] = [a[0], a[1], a[2]] byte 0x000100020003 // a: uint16[] diff --git a/tests/contracts/artifacts/ABITestDynamicArrayElements.json b/tests/contracts/artifacts/ABITestDynamicArrayElements.json index 72300aded..f874856c5 100644 --- a/tests/contracts/artifacts/ABITestDynamicArrayElements.json +++ b/tests/contracts/artifacts/ABITestDynamicArrayElements.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGR5bmFtaWNBcnJheUVsZW1lbnRzKCl1aW50MTZbXQphYmlfcm91dGVfZHluYW1pY0FycmF5RWxlbWVudHM6CglieXRlIDB4OyBkdXAgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBkeW5hbWljQXJyYXlFbGVtZW50cygpdWludDE2W10KCWNhbGxzdWIgZHluYW1pY0FycmF5RWxlbWVudHMKCWludCAxCglyZXR1cm4KCmR5bmFtaWNBcnJheUVsZW1lbnRzOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ4MQoJLy8gYTogdWludDwxNj5bXSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDEwMDAyMDAwMwoJZnJhbWVfYnVyeSAtMSAvLyBhOiB1aW50MTZbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0ODIKCS8vIG5ld0E6IHVpbnQ8MTY+W10gPSBbYVswXSwgYVsxXSwgYVsyXV0KCWJ5dGUgMHgwMDAxMDAwMjAwMDMgLy8gYTogdWludDE2W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgMgoJYnl0ZSAweDAwMDEwMDAyMDAwMyAvLyBhOiB1aW50MTZbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMiAyCgljb25jYXQKCWJ5dGUgMHgwMDAxMDAwMjAwMDMgLy8gYTogdWludDE2W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDQgMgoJY29uY2F0CglmcmFtZV9idXJ5IC0yIC8vIG5ld0E6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ4NAoJLy8gcmV0dXJuIG5ld0E7CglmcmFtZV9kaWcgLTIgLy8gbmV3QTogdWludDE2W10KCWR1cAoJbGVuCglpbnQgMgoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJYnl0ZSAweDE1MWY3Yzc1Cglzd2FwCgljb25jYXQKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljQXJyYXlFbGVtZW50cygpdWludDE2W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfZHluYW1pY0FycmF5RWxlbWVudHMKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGR5bmFtaWNBcnJheUVsZW1lbnRzKCl1aW50MTZbXQphYmlfcm91dGVfZHluYW1pY0FycmF5RWxlbWVudHM6CglieXRlIDB4OyBkdXAgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBkeW5hbWljQXJyYXlFbGVtZW50cygpdWludDE2W10KCWNhbGxzdWIgZHluYW1pY0FycmF5RWxlbWVudHMKCWludCAxCglyZXR1cm4KCmR5bmFtaWNBcnJheUVsZW1lbnRzOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ4MQoJLy8gYTogdWludDwxNj5bXSA9IFsxLCAyLCAzXQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ4MgoJLy8gbmV3QTogdWludDwxNj5bXSA9IFthWzBdLCBhWzFdLCBhWzJdXQoJYnl0ZSAweDAwMDEwMDAyMDAwMyAvLyBhOiB1aW50MTZbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCAyCglieXRlIDB4MDAwMTAwMDIwMDAzIC8vIGE6IHVpbnQxNltdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAyIDIKCWNvbmNhdAoJYnl0ZSAweDAwMDEwMDAyMDAwMyAvLyBhOiB1aW50MTZbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgNCAyCgljb25jYXQKCWZyYW1lX2J1cnkgLTIgLy8gbmV3QTogdWludDE2W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDg0CgkvLyByZXR1cm4gbmV3QTsKCWZyYW1lX2RpZyAtMiAvLyBuZXdBOiB1aW50MTZbXQoJZHVwCglsZW4KCWludCAyCgkvCglpdG9iCglleHRyYWN0IDYgMgoJc3dhcAoJY29uY2F0CglieXRlIDB4MTUxZjdjNzUKCXN3YXAKCWNvbmNhdAoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImR5bmFtaWNBcnJheUVsZW1lbnRzKCl1aW50MTZbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9keW5hbWljQXJyYXlFbGVtZW50cwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestDynamicTupleArray.approval.teal b/tests/contracts/artifacts/ABITestDynamicTupleArray.approval.teal index 7d1e35f3e..4cccb3b04 100644 --- a/tests/contracts/artifacts/ABITestDynamicTupleArray.approval.teal +++ b/tests/contracts/artifacts/ABITestDynamicTupleArray.approval.teal @@ -39,9 +39,6 @@ dynamicTupleArray: // [11, 22], // [33, 44], // ] - byte 0x000b00000000000000160021000000000000002c - frame_bury -1 // a: [uint16,uint64][] - // tests/contracts/abi.algo.ts:384 // return a[1][1]; byte 0x000b00000000000000160021000000000000002c // a: [uint16,uint64][] diff --git a/tests/contracts/artifacts/ABITestDynamicTupleArray.json b/tests/contracts/artifacts/ABITestDynamicTupleArray.json index 5515540f6..388477535 100644 --- a/tests/contracts/artifacts/ABITestDynamicTupleArray.json +++ b/tests/contracts/artifacts/ABITestDynamicTupleArray.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGR5bmFtaWNUdXBsZUFycmF5KCl1aW50NjQKYWJpX3JvdXRlX2R5bmFtaWNUdXBsZUFycmF5OgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIGR5bmFtaWNUdXBsZUFycmF5KCl1aW50NjQKCWNhbGxzdWIgZHluYW1pY1R1cGxlQXJyYXkKCWludCAxCglyZXR1cm4KCmR5bmFtaWNUdXBsZUFycmF5OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM3OQoJLy8gYTogW3VpbnQ8MTY+LCB1aW50NjRdW10gPSBbCgkvLyAgICAgICBbMTEsIDIyXSwKCS8vICAgICAgIFszMywgNDRdLAoJLy8gICAgIF0KCWJ5dGUgMHgwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMjEwMDAwMDAwMDAwMDAwMDJjCglmcmFtZV9idXJ5IC0xIC8vIGE6IFt1aW50MTYsdWludDY0XVtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM4NAoJLy8gcmV0dXJuIGFbMV1bMV07CglieXRlIDB4MDAwYjAwMDAwMDAwMDAwMDAwMTYwMDIxMDAwMDAwMDAwMDAwMDAyYyAvLyBhOiBbdWludDE2LHVpbnQ2NF1bXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMTIgOAoJYnRvaQoJaXRvYgoJYnl0ZSAweDE1MWY3Yzc1Cglzd2FwCgljb25jYXQKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJkeW5hbWljVHVwbGVBcnJheSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2R5bmFtaWNUdXBsZUFycmF5CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGR5bmFtaWNUdXBsZUFycmF5KCl1aW50NjQKYWJpX3JvdXRlX2R5bmFtaWNUdXBsZUFycmF5OgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIGR5bmFtaWNUdXBsZUFycmF5KCl1aW50NjQKCWNhbGxzdWIgZHluYW1pY1R1cGxlQXJyYXkKCWludCAxCglyZXR1cm4KCmR5bmFtaWNUdXBsZUFycmF5OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM3OQoJLy8gYTogW3VpbnQ8MTY+LCB1aW50NjRdW10gPSBbCgkvLyAgICAgICBbMTEsIDIyXSwKCS8vICAgICAgIFszMywgNDRdLAoJLy8gICAgIF0KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozODQKCS8vIHJldHVybiBhWzFdWzFdOwoJYnl0ZSAweDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAyMTAwMDAwMDAwMDAwMDAwMmMgLy8gYTogW3VpbnQxNix1aW50NjRdW10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDEyIDgKCWJ0b2kKCWl0b2IKCWJ5dGUgMHgxNTFmN2M3NQoJc3dhcAoJY29uY2F0Cglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiZHluYW1pY1R1cGxlQXJyYXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9keW5hbWljVHVwbGVBcnJheQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestEmptyStaticArray.approval.teal b/tests/contracts/artifacts/ABITestEmptyStaticArray.approval.teal index dcd181c7e..eba86f7a9 100644 --- a/tests/contracts/artifacts/ABITestEmptyStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestEmptyStaticArray.approval.teal @@ -36,9 +36,6 @@ emptyStaticArray: // tests/contracts/abi.algo.ts:851 // a: StaticArray, 3> = [] - byte 0x000000000000 - frame_bury -1 // a: uint16[3] - // tests/contracts/abi.algo.ts:853 // return a; byte 0x151f7c75000000000000 diff --git a/tests/contracts/artifacts/ABITestEmptyStaticArray.json b/tests/contracts/artifacts/ABITestEmptyStaticArray.json index 8357b8ea6..1a68268f6 100644 --- a/tests/contracts/artifacts/ABITestEmptyStaticArray.json +++ b/tests/contracts/artifacts/ABITestEmptyStaticArray.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGVtcHR5U3RhdGljQXJyYXkoKXVpbnQxNlszXQphYmlfcm91dGVfZW1wdHlTdGF0aWNBcnJheToKCWJ5dGUgMHggLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBlbXB0eVN0YXRpY0FycmF5KCl1aW50MTZbM10KCWNhbGxzdWIgZW1wdHlTdGF0aWNBcnJheQoJaW50IDEKCXJldHVybgoKZW1wdHlTdGF0aWNBcnJheToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NTEKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ8MTY+LCAzPiA9IFtdCglieXRlIDB4MDAwMDAwMDAwMDAwCglmcmFtZV9idXJ5IC0xIC8vIGE6IHVpbnQxNlszXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NTMKCS8vIHJldHVybiBhOwoJYnl0ZSAweDE1MWY3Yzc1MDAwMDAwMDAwMDAwCglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAiZW1wdHlTdGF0aWNBcnJheSgpdWludDE2WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2VtcHR5U3RhdGljQXJyYXkKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGVtcHR5U3RhdGljQXJyYXkoKXVpbnQxNlszXQphYmlfcm91dGVfZW1wdHlTdGF0aWNBcnJheToKCWJ5dGUgMHggLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBlbXB0eVN0YXRpY0FycmF5KCl1aW50MTZbM10KCWNhbGxzdWIgZW1wdHlTdGF0aWNBcnJheQoJaW50IDEKCXJldHVybgoKZW1wdHlTdGF0aWNBcnJheToKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NTEKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ8MTY+LCAzPiA9IFtdCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODUzCgkvLyByZXR1cm4gYTsKCWJ5dGUgMHgxNTFmN2M3NTAwMDAwMDAwMDAwMAoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImVtcHR5U3RhdGljQXJyYXkoKXVpbnQxNlszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9lbXB0eVN0YXRpY0FycmF5CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestMaxUfixed.approval.teal b/tests/contracts/artifacts/ABITestMaxUfixed.approval.teal index a25e9dbb9..cbbc4e896 100644 --- a/tests/contracts/artifacts/ABITestMaxUfixed.approval.teal +++ b/tests/contracts/artifacts/ABITestMaxUfixed.approval.teal @@ -36,9 +36,6 @@ maxUfixed: // tests/contracts/abi.algo.ts:1151 // u64max: ufixed<64, 2> = 184467440737095516.15 - byte 0xffffffffffffffff - frame_bury -1 // u64max: ufixed64x2 - // tests/contracts/abi.algo.ts:1153 // return u64max; byte 0x151f7c75ffffffffffffffff diff --git a/tests/contracts/artifacts/ABITestMaxUfixed.json b/tests/contracts/artifacts/ABITestMaxUfixed.json index de2c313ac..9d280ac74 100644 --- a/tests/contracts/artifacts/ABITestMaxUfixed.json +++ b/tests/contracts/artifacts/ABITestMaxUfixed.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIG1heFVmaXhlZCgpdWZpeGVkNjR4MgphYmlfcm91dGVfbWF4VWZpeGVkOgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIG1heFVmaXhlZCgpdWZpeGVkNjR4MgoJY2FsbHN1YiBtYXhVZml4ZWQKCWludCAxCglyZXR1cm4KCm1heFVmaXhlZDoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTUxCgkvLyB1NjRtYXg6IHVmaXhlZDw2NCwgMj4gPSAxODQ0Njc0NDA3MzcwOTU1MTYuMTUKCWJ5dGUgMHhmZmZmZmZmZmZmZmZmZmZmCglmcmFtZV9idXJ5IC0xIC8vIHU2NG1heDogdWZpeGVkNjR4MgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTUzCgkvLyByZXR1cm4gdTY0bWF4OwoJYnl0ZSAweDE1MWY3Yzc1ZmZmZmZmZmZmZmZmZmZmZgoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgIm1heFVmaXhlZCgpdWZpeGVkNjR4MiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9tYXhVZml4ZWQKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIG1heFVmaXhlZCgpdWZpeGVkNjR4MgphYmlfcm91dGVfbWF4VWZpeGVkOgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIG1heFVmaXhlZCgpdWZpeGVkNjR4MgoJY2FsbHN1YiBtYXhVZml4ZWQKCWludCAxCglyZXR1cm4KCm1heFVmaXhlZDoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTUxCgkvLyB1NjRtYXg6IHVmaXhlZDw2NCwgMj4gPSAxODQ0Njc0NDA3MzcwOTU1MTYuMTUKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTUzCgkvLyByZXR1cm4gdTY0bWF4OwoJYnl0ZSAweDE1MWY3Yzc1ZmZmZmZmZmZmZmZmZmZmZgoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgIm1heFVmaXhlZCgpdWZpeGVkNjR4MiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9tYXhVZml4ZWQKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestMixedStaticArrayElements.approval.teal b/tests/contracts/artifacts/ABITestMixedStaticArrayElements.approval.teal index 644640ce9..753cd4529 100644 --- a/tests/contracts/artifacts/ABITestMixedStaticArrayElements.approval.teal +++ b/tests/contracts/artifacts/ABITestMixedStaticArrayElements.approval.teal @@ -36,24 +36,12 @@ mixedStaticArrayElements: // tests/contracts/abi.algo.ts:44 // n1 = 3 - int 3 - frame_bury -1 // n1: uint64 - // tests/contracts/abi.algo.ts:45 // n2 = 4 - int 4 - frame_bury -2 // n2: uint64 - // tests/contracts/abi.algo.ts:46 // n3 = 5 - int 5 - frame_bury -3 // n3: uint64 - // tests/contracts/abi.algo.ts:47 // a: StaticArray = [0, 1, 2, n1, n2, n3, 6, 7, 8] - byte 0x000000000000000000000000000000010000000000000002000000000000000300000000000000040000000000000005000000000000000600000000000000070000000000000008 - frame_bury -4 // a: uint64[9] - // tests/contracts/abi.algo.ts:49 // return a[1] + a[4] + a[7]; byte 0x151f7c75000000000000000c diff --git a/tests/contracts/artifacts/ABITestMixedStaticArrayElements.json b/tests/contracts/artifacts/ABITestMixedStaticArrayElements.json index 9453addeb..349b45079 100644 --- a/tests/contracts/artifacts/ABITestMixedStaticArrayElements.json +++ b/tests/contracts/artifacts/ABITestMixedStaticArrayElements.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIG1peGVkU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0CmFiaV9yb3V0ZV9taXhlZFN0YXRpY0FycmF5RWxlbWVudHM6CglieXRlIDB4OyBkdXBuIDMgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NAoJY2FsbHN1YiBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMKCWludCAxCglyZXR1cm4KCm1peGVkU3RhdGljQXJyYXlFbGVtZW50czoKCXByb3RvIDQgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NAoJLy8gbjEgPSAzCglpbnQgMwoJZnJhbWVfYnVyeSAtMSAvLyBuMTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ1CgkvLyBuMiA9IDQKCWludCA0CglmcmFtZV9idXJ5IC0yIC8vIG4yOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDYKCS8vIG4zID0gNQoJaW50IDUKCWZyYW1lX2J1cnkgLTMgLy8gbjM6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCA5PiA9IFswLCAxLCAyLCBuMSwgbjIsIG4zLCA2LCA3LCA4XQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMwMDAwMDAwMDAwMDAwMDA0MDAwMDAwMDAwMDAwMDAwNTAwMDAwMDAwMDAwMDAwMDYwMDAwMDAwMDAwMDAwMDA3MDAwMDAwMDAwMDAwMDAwOAoJZnJhbWVfYnVyeSAtNCAvLyBhOiB1aW50NjRbOV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDkKCS8vIHJldHVybiBhWzFdICsgYVs0XSArIGFbN107CglieXRlIDB4MTUxZjdjNzUwMDAwMDAwMDAwMDAwMDBjCglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAibWl4ZWRTdGF0aWNBcnJheUVsZW1lbnRzKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfbWl4ZWRTdGF0aWNBcnJheUVsZW1lbnRzCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIG1peGVkU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0CmFiaV9yb3V0ZV9taXhlZFN0YXRpY0FycmF5RWxlbWVudHM6CglieXRlIDB4OyBkdXBuIDMgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NAoJY2FsbHN1YiBtaXhlZFN0YXRpY0FycmF5RWxlbWVudHMKCWludCAxCglyZXR1cm4KCm1peGVkU3RhdGljQXJyYXlFbGVtZW50czoKCXByb3RvIDQgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NAoJLy8gbjEgPSAzCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NDUKCS8vIG4yID0gNAoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ2CgkvLyBuMyA9IDUKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0NwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCA5PiA9IFswLCAxLCAyLCBuMSwgbjIsIG4zLCA2LCA3LCA4XQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQ5CgkvLyByZXR1cm4gYVsxXSArIGFbNF0gKyBhWzddOwoJYnl0ZSAweDE1MWY3Yzc1MDAwMDAwMDAwMDAwMDAwYwoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgIm1peGVkU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX21peGVkU3RhdGljQXJyYXlFbGVtZW50cwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNestedStaticArray.approval.teal b/tests/contracts/artifacts/ABITestNestedStaticArray.approval.teal index 6f2b141c0..b598eff7f 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestNestedStaticArray.approval.teal @@ -40,9 +40,6 @@ nestedStaticArray: // [44, 55, 66], // [77, 88, 99], // ] - byte 0x000000000000000b00000000000000160000000000000021000000000000002c00000000000000370000000000000042000000000000004d00000000000000580000000000000063 - frame_bury -1 // a: uint64[3][3] - // tests/contracts/abi.algo.ts:204 // return a[1][1]; byte 0x151f7c750000000000000037 diff --git a/tests/contracts/artifacts/ABITestNestedStaticArray.json b/tests/contracts/artifacts/ABITestNestedStaticArray.json index 698080d28..5e2ecdc64 100644 --- a/tests/contracts/artifacts/ABITestNestedStaticArray.json +++ b/tests/contracts/artifacts/ABITestNestedStaticArray.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIG5lc3RlZFN0YXRpY0FycmF5KCl1aW50NjQKYWJpX3JvdXRlX25lc3RlZFN0YXRpY0FycmF5OgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIG5lc3RlZFN0YXRpY0FycmF5KCl1aW50NjQKCWNhbGxzdWIgbmVzdGVkU3RhdGljQXJyYXkKCWludCAxCglyZXR1cm4KCm5lc3RlZFN0YXRpY0FycmF5OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE5OAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMDAwMDAwMDAwMDAwMmMwMDAwMDAwMDAwMDAwMDM3MDAwMDAwMDAwMDAwMDA0MjAwMDAwMDAwMDAwMDAwNGQwMDAwMDAwMDAwMDAwMDU4MDAwMDAwMDAwMDAwMDA2MwoJZnJhbWVfYnVyeSAtMSAvLyBhOiB1aW50NjRbM11bM10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjA0CgkvLyByZXR1cm4gYVsxXVsxXTsKCWJ5dGUgMHgxNTFmN2M3NTAwMDAwMDAwMDAwMDAwMzcKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJuZXN0ZWRTdGF0aWNBcnJheSgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX25lc3RlZFN0YXRpY0FycmF5CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIG5lc3RlZFN0YXRpY0FycmF5KCl1aW50NjQKYWJpX3JvdXRlX25lc3RlZFN0YXRpY0FycmF5OgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIG5lc3RlZFN0YXRpY0FycmF5KCl1aW50NjQKCWNhbGxzdWIgbmVzdGVkU3RhdGljQXJyYXkKCWludCAxCglyZXR1cm4KCm5lc3RlZFN0YXRpY0FycmF5OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE5OAoJLy8gYTogU3RhdGljQXJyYXk8U3RhdGljQXJyYXk8dWludDY0LCAzPiwgMz4gPSBbCgkvLyAgICAgICBbMTEsIDIyLCAzM10sCgkvLyAgICAgICBbNDQsIDU1LCA2Nl0sCgkvLyAgICAgICBbNzcsIDg4LCA5OV0sCgkvLyAgICAgXQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjIwNAoJLy8gcmV0dXJuIGFbMV1bMV07CglieXRlIDB4MTUxZjdjNzUwMDAwMDAwMDAwMDAwMDM3Cglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAibmVzdGVkU3RhdGljQXJyYXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9uZXN0ZWRTdGF0aWNBcnJheQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.approval.teal b/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.approval.teal index 4bb45e66a..e17c85c7d 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.approval.teal @@ -36,9 +36,6 @@ nonLiteralDynamicElementInTuple: // tests/contracts/abi.algo.ts:420 // e: uint<16>[] = [5, 6] - byte 0x00050006 - frame_bury -1 // e: uint16[] - // tests/contracts/abi.algo.ts:421 // a: [uint<8>, uint<16>, uint<8>[], uint<16>[], uint<8>[]] = [1, 2, [3, 4], e, [7, 8]] byte 0x // initial head diff --git a/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.json b/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.json index e008c82e3..d23bcad1b 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.json +++ b/tests/contracts/artifacts/ABITestNonLiteralDynamicElementInTuple.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIG5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGUoKSh1aW50OCx1aW50MTYsdWludDhbXSx1aW50MTZbXSx1aW50OFtdKQphYmlfcm91dGVfbm9uTGl0ZXJhbER5bmFtaWNFbGVtZW50SW5UdXBsZToKCWJ5dGUgMHg7IGR1cCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIG5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGUoKSh1aW50OCx1aW50MTYsdWludDhbXSx1aW50MTZbXSx1aW50OFtdKQoJY2FsbHN1YiBub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlCglpbnQgMQoJcmV0dXJuCgpub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQyMAoJLy8gZTogdWludDwxNj5bXSA9IFs1LCA2XQoJYnl0ZSAweDAwMDUwMDA2CglmcmFtZV9idXJ5IC0xIC8vIGU6IHVpbnQxNltdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQyMQoJLy8gYTogW3VpbnQ8OD4sIHVpbnQ8MTY+LCB1aW50PDg+W10sIHVpbnQ8MTY+W10sIHVpbnQ8OD5bXV0gPSBbMSwgMiwgWzMsIDRdLCBlLCBbNywgOF1dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA5IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMQoJY2FsbHN1YiBwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMgoJY2FsbHN1YiBwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMjAzMDQKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDAwNTAwMDYKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDcwOAoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IC0yIC8vIGE6IFt1aW50OCx1aW50MTYsdWludDhbXSx1aW50MTZbXSx1aW50OFtdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MjMKCS8vIHJldHVybiBhOwoJYnl0ZSAweDE1MWY3Yzc1CglmcmFtZV9kaWcgLTIgLy8gYTogW3VpbnQ4LHVpbnQxNix1aW50OFtdLHVpbnQxNltdLHVpbnQ4W11dCgljb25jYXQKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDgsdWludDE2LHVpbnQ4W10sdWludDE2W10sdWludDhbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfbm9uTGl0ZXJhbER5bmFtaWNFbGVtZW50SW5UdXBsZQoJZXJyCgpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIG5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGUoKSh1aW50OCx1aW50MTYsdWludDhbXSx1aW50MTZbXSx1aW50OFtdKQphYmlfcm91dGVfbm9uTGl0ZXJhbER5bmFtaWNFbGVtZW50SW5UdXBsZToKCWJ5dGUgMHg7IGR1cCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIG5vbkxpdGVyYWxEeW5hbWljRWxlbWVudEluVHVwbGUoKSh1aW50OCx1aW50MTYsdWludDhbXSx1aW50MTZbXSx1aW50OFtdKQoJY2FsbHN1YiBub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlCglpbnQgMQoJcmV0dXJuCgpub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQyMAoJLy8gZTogdWludDwxNj5bXSA9IFs1LCA2XQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjQyMQoJLy8gYTogW3VpbnQ8OD4sIHVpbnQ8MTY+LCB1aW50PDg+W10sIHVpbnQ8MTY+W10sIHVpbnQ8OD5bXV0gPSBbMSwgMiwgWzMsIDRdLCBlLCBbNywgOF1dCglieXRlIDB4IC8vIGluaXRpYWwgaGVhZAoJYnl0ZSAweCAvLyBpbml0aWFsIHRhaWwKCWJ5dGUgMHgwMDA5IC8vIGluaXRpYWwgaGVhZCBvZmZzZXQKCWJ5dGUgMHgwMQoJY2FsbHN1YiBwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMgoJY2FsbHN1YiBwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50CglieXRlIDB4MDAwMjAzMDQKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDAwNTAwMDYKCWNhbGxzdWIgcHJvY2Vzc19keW5hbWljX3R1cGxlX2VsZW1lbnQKCWJ5dGUgMHgwMDAyMDcwOAoJY2FsbHN1YiBwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudAoJcG9wIC8vIHBvcCBoZWFkIG9mZnNldAoJY29uY2F0IC8vIGNvbmNhdCBoZWFkIGFuZCB0YWlsCglmcmFtZV9idXJ5IC0yIC8vIGE6IFt1aW50OCx1aW50MTYsdWludDhbXSx1aW50MTZbXSx1aW50OFtdXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo0MjMKCS8vIHJldHVybiBhOwoJYnl0ZSAweDE1MWY3Yzc1CglmcmFtZV9kaWcgLTIgLy8gYTogW3VpbnQ4LHVpbnQxNix1aW50OFtdLHVpbnQxNltdLHVpbnQ4W11dCgljb25jYXQKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJub25MaXRlcmFsRHluYW1pY0VsZW1lbnRJblR1cGxlKCkodWludDgsdWludDE2LHVpbnQ4W10sdWludDE2W10sdWludDhbXSkiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfbm9uTGl0ZXJhbER5bmFtaWNFbGVtZW50SW5UdXBsZQoJZXJyCgpwcm9jZXNzX3N0YXRpY190dXBsZV9lbGVtZW50OgoJcHJvdG8gNCAzCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0xIC8vIGVsZW1lbnQKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3ViCgpwcm9jZXNzX2R5bmFtaWNfdHVwbGVfZWxlbWVudDoKCXByb3RvIDQgMwoJZnJhbWVfZGlnIC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJY29uY2F0CglmcmFtZV9idXJ5IC00IC8vIHR1cGxlIGhlYWQKCWZyYW1lX2RpZyAtMSAvLyBlbGVtZW50CglkdXAKCWxlbgoJZnJhbWVfZGlnIC0yIC8vIGhlYWQgb2Zmc2V0CglidG9pCgkrCglpdG9iCglleHRyYWN0IDYgMgoJZnJhbWVfYnVyeSAtMiAvLyBoZWFkIG9mZnNldAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCXN3YXAKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMyAvLyB0dXBsZSB0YWlsCglmcmFtZV9kaWcgLTQgLy8gdHVwbGUgaGVhZAoJZnJhbWVfZGlnIC0zIC8vIHR1cGxlIHRhaWwKCWZyYW1lX2RpZyAtMiAvLyBoZWFkIG9mZnNldAoJcmV0c3Vi", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.approval.teal b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.approval.teal index 41ceb5486..db9fd793c 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.approval.teal +++ b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.approval.teal @@ -36,14 +36,8 @@ nonLiteralStaticArrayAccess: // tests/contracts/abi.algo.ts:55 // a: StaticArray = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 - frame_bury -1 // a: uint64[3] - // tests/contracts/abi.algo.ts:56 // n = 2 - int 2 - frame_bury -2 // n: uint64 - // tests/contracts/abi.algo.ts:58 // return a[n]; byte 0x000000000000000b00000000000000160000000000000021 // a: uint64[3] diff --git a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.json b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.json index 9f394337e..ef57ba53e 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.json +++ b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayAccess.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIG5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcygpdWludDY0CmFiaV9yb3V0ZV9ub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3M6CglieXRlIDB4OyBkdXAgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MoKXVpbnQ2NAoJY2FsbHN1YiBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MKCWludCAxCglyZXR1cm4KCm5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzczoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NQoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAtMSAvLyBhOiB1aW50NjRbM10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTYKCS8vIG4gPSAyCglpbnQgMgoJZnJhbWVfYnVyeSAtMiAvLyBuOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NTgKCS8vIHJldHVybiBhW25dOwoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMSAvLyBhOiB1aW50NjRbM10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDE2IDgKCWJ0b2kKCWl0b2IKCWJ5dGUgMHgxNTFmN2M3NQoJc3dhcAoJY29uY2F0Cglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAibm9uTGl0ZXJhbFN0YXRpY0FycmF5QWNjZXNzKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfbm9uTGl0ZXJhbFN0YXRpY0FycmF5QWNjZXNzCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIG5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcygpdWludDY0CmFiaV9yb3V0ZV9ub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3M6CglieXRlIDB4OyBkdXAgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MoKXVpbnQ2NAoJY2FsbHN1YiBub25MaXRlcmFsU3RhdGljQXJyYXlBY2Nlc3MKCWludCAxCglyZXR1cm4KCm5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzczoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo1NQoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU2CgkvLyBuID0gMgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjU4CgkvLyByZXR1cm4gYVtuXTsKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEgLy8gYTogdWludDY0WzNdCglzdG9yZSAyNTUgLy8gZnVsbCBhcnJheQoJbG9hZCAyNTUgLy8gZnVsbCBhcnJheQoJZXh0cmFjdCAxNiA4CglidG9pCglpdG9iCglieXRlIDB4MTUxZjdjNzUKCXN3YXAKCWNvbmNhdAoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgIm5vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcygpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX25vbkxpdGVyYWxTdGF0aWNBcnJheUFjY2VzcwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.approval.teal b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.approval.teal index 0d6742e5f..a40fa5d1f 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.approval.teal +++ b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.approval.teal @@ -36,24 +36,12 @@ nonLiteralStaticArrayElements: // tests/contracts/abi.algo.ts:33 // n1 = 11 - int 11 - frame_bury -1 // n1: uint64 - // tests/contracts/abi.algo.ts:34 // n2 = 22 - int 22 - frame_bury -2 // n2: uint64 - // tests/contracts/abi.algo.ts:35 // n3 = 33 - int 33 - frame_bury -3 // n3: uint64 - // tests/contracts/abi.algo.ts:36 // a: StaticArray = [n1, n2, n3] - byte 0x000000000000000b00000000000000160000000000000021 - frame_bury -4 // a: uint64[3] - // tests/contracts/abi.algo.ts:38 // return a[1]; byte 0x151f7c750000000000000016 diff --git a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.json b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.json index 6a27f1382..a65504b12 100644 --- a/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.json +++ b/tests/contracts/artifacts/ABITestNonLiteralStaticArrayElements.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIG5vbkxpdGVyYWxTdGF0aWNBcnJheUVsZW1lbnRzKCl1aW50NjQKYWJpX3JvdXRlX25vbkxpdGVyYWxTdGF0aWNBcnJheUVsZW1lbnRzOgoJYnl0ZSAweDsgZHVwbiAzIC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NAoJY2FsbHN1YiBub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cwoJaW50IDEKCXJldHVybgoKbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHM6Cglwcm90byA0IDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzMKCS8vIG4xID0gMTEKCWludCAxMQoJZnJhbWVfYnVyeSAtMSAvLyBuMTogdWludDY0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM0CgkvLyBuMiA9IDIyCglpbnQgMjIKCWZyYW1lX2J1cnkgLTIgLy8gbjI6IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNQoJLy8gbjMgPSAzMwoJaW50IDMzCglmcmFtZV9idXJ5IC0zIC8vIG4zOiB1aW50NjQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzYKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbbjEsIG4yLCBuM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgLTQgLy8gYTogdWludDY0WzNdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM4CgkvLyByZXR1cm4gYVsxXTsKCWJ5dGUgMHgxNTFmN2M3NTAwMDAwMDAwMDAwMDAwMTYKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cygpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX25vbkxpdGVyYWxTdGF0aWNBcnJheUVsZW1lbnRzCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIG5vbkxpdGVyYWxTdGF0aWNBcnJheUVsZW1lbnRzKCl1aW50NjQKYWJpX3JvdXRlX25vbkxpdGVyYWxTdGF0aWNBcnJheUVsZW1lbnRzOgoJYnl0ZSAweDsgZHVwbiAzIC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NAoJY2FsbHN1YiBub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cwoJaW50IDEKCXJldHVybgoKbm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHM6Cglwcm90byA0IDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzMKCS8vIG4xID0gMTEKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNAoJLy8gbjIgPSAyMgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM1CgkvLyBuMyA9IDMzCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzYKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbbjEsIG4yLCBuM10KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozOAoJLy8gcmV0dXJuIGFbMV07CglieXRlIDB4MTUxZjdjNzUwMDAwMDAwMDAwMDAwMDE2Cglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAibm9uTGl0ZXJhbFN0YXRpY0FycmF5RWxlbWVudHMoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9ub25MaXRlcmFsU3RhdGljQXJyYXlFbGVtZW50cwoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestPartialStaticArray.approval.teal b/tests/contracts/artifacts/ABITestPartialStaticArray.approval.teal index e2421e1e0..5ac4b6d75 100644 --- a/tests/contracts/artifacts/ABITestPartialStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestPartialStaticArray.approval.teal @@ -36,9 +36,6 @@ partialStaticArray: // tests/contracts/abi.algo.ts:859 // a: StaticArray, 3> = [1] - byte 0x000100000000 - frame_bury -1 // a: uint16[3] - // tests/contracts/abi.algo.ts:861 // return a; byte 0x151f7c75000100000000 diff --git a/tests/contracts/artifacts/ABITestPartialStaticArray.json b/tests/contracts/artifacts/ABITestPartialStaticArray.json index 18dab72f4..cfc0e8b21 100644 --- a/tests/contracts/artifacts/ABITestPartialStaticArray.json +++ b/tests/contracts/artifacts/ABITestPartialStaticArray.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHBhcnRpYWxTdGF0aWNBcnJheSgpdWludDE2WzNdCmFiaV9yb3V0ZV9wYXJ0aWFsU3RhdGljQXJyYXk6CglieXRlIDB4IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgcGFydGlhbFN0YXRpY0FycmF5KCl1aW50MTZbM10KCWNhbGxzdWIgcGFydGlhbFN0YXRpY0FycmF5CglpbnQgMQoJcmV0dXJuCgpwYXJ0aWFsU3RhdGljQXJyYXk6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODU5CgkvLyBhOiBTdGF0aWNBcnJheTx1aW50PDE2PiwgMz4gPSBbMV0KCWJ5dGUgMHgwMDAxMDAwMDAwMDAKCWZyYW1lX2J1cnkgLTEgLy8gYTogdWludDE2WzNdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg2MQoJLy8gcmV0dXJuIGE7CglieXRlIDB4MTUxZjdjNzUwMDAxMDAwMDAwMDAKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJwYXJ0aWFsU3RhdGljQXJyYXkoKXVpbnQxNlszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9wYXJ0aWFsU3RhdGljQXJyYXkKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHBhcnRpYWxTdGF0aWNBcnJheSgpdWludDE2WzNdCmFiaV9yb3V0ZV9wYXJ0aWFsU3RhdGljQXJyYXk6CglieXRlIDB4IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgcGFydGlhbFN0YXRpY0FycmF5KCl1aW50MTZbM10KCWNhbGxzdWIgcGFydGlhbFN0YXRpY0FycmF5CglpbnQgMQoJcmV0dXJuCgpwYXJ0aWFsU3RhdGljQXJyYXk6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODU5CgkvLyBhOiBTdGF0aWNBcnJheTx1aW50PDE2PiwgMz4gPSBbMV0KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NjEKCS8vIHJldHVybiBhOwoJYnl0ZSAweDE1MWY3Yzc1MDAwMTAwMDAwMDAwCglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAicGFydGlhbFN0YXRpY0FycmF5KCl1aW50MTZbM10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfcGFydGlhbFN0YXRpY0FycmF5CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestRawBytesFunction.approval.teal b/tests/contracts/artifacts/ABITestRawBytesFunction.approval.teal index cf76c10c0..5a89c1b07 100644 --- a/tests/contracts/artifacts/ABITestRawBytesFunction.approval.teal +++ b/tests/contracts/artifacts/ABITestRawBytesFunction.approval.teal @@ -36,9 +36,6 @@ rawBytesFunction: // tests/contracts/abi.algo.ts:1062 // a: StaticArray, 3> = [1, 2, 3] - byte 0x010203 - frame_bury -1 // a: uint8[3] - // tests/contracts/abi.algo.ts:1063 // return rawBytes(a); byte 0x151f7c750003010203 diff --git a/tests/contracts/artifacts/ABITestRawBytesFunction.json b/tests/contracts/artifacts/ABITestRawBytesFunction.json index a543ad3ad..697556a6f 100644 --- a/tests/contracts/artifacts/ABITestRawBytesFunction.json +++ b/tests/contracts/artifacts/ABITestRawBytesFunction.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHJhd0J5dGVzRnVuY3Rpb24oKXN0cmluZwphYmlfcm91dGVfcmF3Qnl0ZXNGdW5jdGlvbjoKCWJ5dGUgMHggLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSByYXdCeXRlc0Z1bmN0aW9uKClzdHJpbmcKCWNhbGxzdWIgcmF3Qnl0ZXNGdW5jdGlvbgoJaW50IDEKCXJldHVybgoKcmF3Qnl0ZXNGdW5jdGlvbjoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDYyCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50PDg+LCAzPiA9IFsxLCAyLCAzXQoJYnl0ZSAweDAxMDIwMwoJZnJhbWVfYnVyeSAtMSAvLyBhOiB1aW50OFszXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDYzCgkvLyByZXR1cm4gcmF3Qnl0ZXMoYSk7CglieXRlIDB4MTUxZjdjNzUwMDAzMDEwMjAzCglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAicmF3Qnl0ZXNGdW5jdGlvbigpc3RyaW5nIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3Jhd0J5dGVzRnVuY3Rpb24KCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHJhd0J5dGVzRnVuY3Rpb24oKXN0cmluZwphYmlfcm91dGVfcmF3Qnl0ZXNGdW5jdGlvbjoKCWJ5dGUgMHggLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSByYXdCeXRlc0Z1bmN0aW9uKClzdHJpbmcKCWNhbGxzdWIgcmF3Qnl0ZXNGdW5jdGlvbgoJaW50IDEKCXJldHVybgoKcmF3Qnl0ZXNGdW5jdGlvbjoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMDYyCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50PDg+LCAzPiA9IFsxLCAyLCAzXQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEwNjMKCS8vIHJldHVybiByYXdCeXRlcyhhKTsKCWJ5dGUgMHgxNTFmN2M3NTAwMDMwMTAyMDMKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJyYXdCeXRlc0Z1bmN0aW9uKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfcmF3Qnl0ZXNGdW5jdGlvbgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestReturnDynamicArray.approval.teal b/tests/contracts/artifacts/ABITestReturnDynamicArray.approval.teal index ca0517cba..77b9c58e3 100644 --- a/tests/contracts/artifacts/ABITestReturnDynamicArray.approval.teal +++ b/tests/contracts/artifacts/ABITestReturnDynamicArray.approval.teal @@ -36,9 +36,6 @@ returnDynamicArray: // tests/contracts/abi.algo.ts:356 // a: uint64[] = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 - frame_bury -1 // a: uint64[] - // tests/contracts/abi.algo.ts:357 // return a; byte 0x151f7c750003000000000000000b00000000000000160000000000000021 diff --git a/tests/contracts/artifacts/ABITestReturnDynamicArray.json b/tests/contracts/artifacts/ABITestReturnDynamicArray.json index 2f488cc3d..0d3238b70 100644 --- a/tests/contracts/artifacts/ABITestReturnDynamicArray.json +++ b/tests/contracts/artifacts/ABITestReturnDynamicArray.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHJldHVybkR5bmFtaWNBcnJheSgpdWludDY0W10KYWJpX3JvdXRlX3JldHVybkR5bmFtaWNBcnJheToKCWJ5dGUgMHggLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSByZXR1cm5EeW5hbWljQXJyYXkoKXVpbnQ2NFtdCgljYWxsc3ViIHJldHVybkR5bmFtaWNBcnJheQoJaW50IDEKCXJldHVybgoKcmV0dXJuRHluYW1pY0FycmF5OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM1NgoJLy8gYTogdWludDY0W10gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgLTEgLy8gYTogdWludDY0W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzU3CgkvLyByZXR1cm4gYTsKCWJ5dGUgMHgxNTFmN2M3NTAwMDMwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJyZXR1cm5EeW5hbWljQXJyYXkoKXVpbnQ2NFtdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3JldHVybkR5bmFtaWNBcnJheQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHJldHVybkR5bmFtaWNBcnJheSgpdWludDY0W10KYWJpX3JvdXRlX3JldHVybkR5bmFtaWNBcnJheToKCWJ5dGUgMHggLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSByZXR1cm5EeW5hbWljQXJyYXkoKXVpbnQ2NFtdCgljYWxsc3ViIHJldHVybkR5bmFtaWNBcnJheQoJaW50IDEKCXJldHVybgoKcmV0dXJuRHluYW1pY0FycmF5OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjM1NgoJLy8gYTogdWludDY0W10gPSBbMTEsIDIyLCAzM10KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czozNTcKCS8vIHJldHVybiBhOwoJYnl0ZSAweDE1MWY3Yzc1MDAwMzAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInJldHVybkR5bmFtaWNBcnJheSgpdWludDY0W10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfcmV0dXJuRHluYW1pY0FycmF5CgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestReturnStaticArray.approval.teal b/tests/contracts/artifacts/ABITestReturnStaticArray.approval.teal index bb14af8b8..66cd9750e 100644 --- a/tests/contracts/artifacts/ABITestReturnStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestReturnStaticArray.approval.teal @@ -36,9 +36,6 @@ returnStaticArray: // tests/contracts/abi.algo.ts:19 // a: StaticArray = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 - frame_bury -1 // a: uint64[3] - // tests/contracts/abi.algo.ts:21 // return a; byte 0x151f7c75000000000000000b00000000000000160000000000000021 diff --git a/tests/contracts/artifacts/ABITestReturnStaticArray.json b/tests/contracts/artifacts/ABITestReturnStaticArray.json index 8bf4f0eb9..acd6a63f0 100644 --- a/tests/contracts/artifacts/ABITestReturnStaticArray.json +++ b/tests/contracts/artifacts/ABITestReturnStaticArray.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHJldHVyblN0YXRpY0FycmF5KCl1aW50NjRbM10KYWJpX3JvdXRlX3JldHVyblN0YXRpY0FycmF5OgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIHJldHVyblN0YXRpY0FycmF5KCl1aW50NjRbM10KCWNhbGxzdWIgcmV0dXJuU3RhdGljQXJyYXkKCWludCAxCglyZXR1cm4KCnJldHVyblN0YXRpY0FycmF5OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE5CgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzExLCAyMiwgMzNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxCglmcmFtZV9idXJ5IC0xIC8vIGE6IHVpbnQ2NFszXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoyMQoJLy8gcmV0dXJuIGE7CglieXRlIDB4MTUxZjdjNzUwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJyZXR1cm5TdGF0aWNBcnJheSgpdWludDY0WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3JldHVyblN0YXRpY0FycmF5CgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHJldHVyblN0YXRpY0FycmF5KCl1aW50NjRbM10KYWJpX3JvdXRlX3JldHVyblN0YXRpY0FycmF5OgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIHJldHVyblN0YXRpY0FycmF5KCl1aW50NjRbM10KCWNhbGxzdWIgcmV0dXJuU3RhdGljQXJyYXkKCWludCAxCglyZXR1cm4KCnJldHVyblN0YXRpY0FycmF5OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE5CgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzExLCAyMiwgMzNdCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjEKCS8vIHJldHVybiBhOwoJYnl0ZSAweDE1MWY3Yzc1MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxCglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAicmV0dXJuU3RhdGljQXJyYXkoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9yZXR1cm5TdGF0aWNBcnJheQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestReturnTuple.approval.teal b/tests/contracts/artifacts/ABITestReturnTuple.approval.teal index bcea80129..2c983e8ac 100644 --- a/tests/contracts/artifacts/ABITestReturnTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestReturnTuple.approval.teal @@ -36,9 +36,6 @@ returnTuple: // tests/contracts/abi.algo.ts:335 // a: [uint64, uint<16>, uint64] = [11, 22, 33] - byte 0x000000000000000b00160000000000000021 - frame_bury -1 // a: [uint64,uint16,uint64] - // tests/contracts/abi.algo.ts:336 // return a; byte 0x151f7c75000000000000000b00160000000000000021 diff --git a/tests/contracts/artifacts/ABITestReturnTuple.json b/tests/contracts/artifacts/ABITestReturnTuple.json index 3ec777849..10b0c72d6 100644 --- a/tests/contracts/artifacts/ABITestReturnTuple.json +++ b/tests/contracts/artifacts/ABITestReturnTuple.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHJldHVyblR1cGxlKCkodWludDY0LHVpbnQxNix1aW50NjQpCmFiaV9yb3V0ZV9yZXR1cm5UdXBsZToKCWJ5dGUgMHggLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSByZXR1cm5UdXBsZSgpKHVpbnQ2NCx1aW50MTYsdWludDY0KQoJY2FsbHN1YiByZXR1cm5UdXBsZQoJaW50IDEKCXJldHVybgoKcmV0dXJuVHVwbGU6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzM1CgkvLyBhOiBbdWludDY0LCB1aW50PDE2PiwgdWludDY0XSA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAtMSAvLyBhOiBbdWludDY0LHVpbnQxNix1aW50NjRdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjMzNgoJLy8gcmV0dXJuIGE7CglieXRlIDB4MTUxZjdjNzUwMDAwMDAwMDAwMDAwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJyZXR1cm5UdXBsZSgpKHVpbnQ2NCx1aW50MTYsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9yZXR1cm5UdXBsZQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHJldHVyblR1cGxlKCkodWludDY0LHVpbnQxNix1aW50NjQpCmFiaV9yb3V0ZV9yZXR1cm5UdXBsZToKCWJ5dGUgMHggLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSByZXR1cm5UdXBsZSgpKHVpbnQ2NCx1aW50MTYsdWludDY0KQoJY2FsbHN1YiByZXR1cm5UdXBsZQoJaW50IDEKCXJldHVybgoKcmV0dXJuVHVwbGU6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MzM1CgkvLyBhOiBbdWludDY0LCB1aW50PDE2PiwgdWludDY0XSA9IFsxMSwgMjIsIDMzXQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjMzNgoJLy8gcmV0dXJuIGE7CglieXRlIDB4MTUxZjdjNzUwMDAwMDAwMDAwMDAwMDBiMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJyZXR1cm5UdXBsZSgpKHVpbnQ2NCx1aW50MTYsdWludDY0KSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9yZXR1cm5UdXBsZQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestShortTypeNotation.approval.teal b/tests/contracts/artifacts/ABITestShortTypeNotation.approval.teal index 21e130a12..56545060e 100644 --- a/tests/contracts/artifacts/ABITestShortTypeNotation.approval.teal +++ b/tests/contracts/artifacts/ABITestShortTypeNotation.approval.teal @@ -40,9 +40,6 @@ shortTypeNotation: // [33, 44], // [55, 66], // ] - byte 0x000b00160000000000000021000000000000002c00370042 - frame_bury -1 // a: [uint16[2],uint64[2],uint16[2]] - // tests/contracts/abi.algo.ts:298 // return a[2][1]; byte 0x151f7c750042 diff --git a/tests/contracts/artifacts/ABITestShortTypeNotation.json b/tests/contracts/artifacts/ABITestShortTypeNotation.json index 64a2b48be..d9e767279 100644 --- a/tests/contracts/artifacts/ABITestShortTypeNotation.json +++ b/tests/contracts/artifacts/ABITestShortTypeNotation.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHNob3J0VHlwZU5vdGF0aW9uKCl1aW50MTYKYWJpX3JvdXRlX3Nob3J0VHlwZU5vdGF0aW9uOgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIHNob3J0VHlwZU5vdGF0aW9uKCl1aW50MTYKCWNhbGxzdWIgc2hvcnRUeXBlTm90YXRpb24KCWludCAxCglyZXR1cm4KCnNob3J0VHlwZU5vdGF0aW9uOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI5MgoJLy8gYTogW1N0YXRpY0FycmF5PHVpbnQ8MTY+LCAyPiwgU3RhdGljQXJyYXk8dWludDY0LCAyPiwgU3RhdGljQXJyYXk8dWludDwxNj4sIDI+XSA9IFsKCS8vICAgICAgIFsxMSwgMjJdLAoJLy8gICAgICAgWzMzLCA0NF0sCgkvLyAgICAgICBbNTUsIDY2XSwKCS8vICAgICBdCglieXRlIDB4MDAwYjAwMTYwMDAwMDAwMDAwMDAwMDIxMDAwMDAwMDAwMDAwMDAyYzAwMzcwMDQyCglmcmFtZV9idXJ5IC0xIC8vIGE6IFt1aW50MTZbMl0sdWludDY0WzJdLHVpbnQxNlsyXV0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjk4CgkvLyByZXR1cm4gYVsyXVsxXTsKCWJ5dGUgMHgxNTFmN2M3NTAwNDIKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJzaG9ydFR5cGVOb3RhdGlvbigpdWludDE2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3Nob3J0VHlwZU5vdGF0aW9uCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHNob3J0VHlwZU5vdGF0aW9uKCl1aW50MTYKYWJpX3JvdXRlX3Nob3J0VHlwZU5vdGF0aW9uOgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIHNob3J0VHlwZU5vdGF0aW9uKCl1aW50MTYKCWNhbGxzdWIgc2hvcnRUeXBlTm90YXRpb24KCWludCAxCglyZXR1cm4KCnNob3J0VHlwZU5vdGF0aW9uOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI5MgoJLy8gYTogW1N0YXRpY0FycmF5PHVpbnQ8MTY+LCAyPiwgU3RhdGljQXJyYXk8dWludDY0LCAyPiwgU3RhdGljQXJyYXk8dWludDwxNj4sIDI+XSA9IFsKCS8vICAgICAgIFsxMSwgMjJdLAoJLy8gICAgICAgWzMzLCA0NF0sCgkvLyAgICAgICBbNTUsIDY2XSwKCS8vICAgICBdCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjk4CgkvLyByZXR1cm4gYVsyXVsxXTsKCWJ5dGUgMHgxNTFmN2M3NTAwNDIKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJzaG9ydFR5cGVOb3RhdGlvbigpdWludDE2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3Nob3J0VHlwZU5vdGF0aW9uCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestSimpleTuple.approval.teal b/tests/contracts/artifacts/ABITestSimpleTuple.approval.teal index 75d24ebd4..a7fede823 100644 --- a/tests/contracts/artifacts/ABITestSimpleTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestSimpleTuple.approval.teal @@ -36,9 +36,6 @@ simpleTuple: // tests/contracts/abi.algo.ts:257 // a: [uint64, uint<16>, uint64, uint<16>] = [11, 22, 33, 44] - byte 0x000000000000000b00160000000000000021002c - frame_bury -1 // a: [uint64,uint16,uint64,uint16] - // tests/contracts/abi.algo.ts:259 // return a[3]; byte 0x151f7c75002c diff --git a/tests/contracts/artifacts/ABITestSimpleTuple.json b/tests/contracts/artifacts/ABITestSimpleTuple.json index 943225cda..a0ac9ed19 100644 --- a/tests/contracts/artifacts/ABITestSimpleTuple.json +++ b/tests/contracts/artifacts/ABITestSimpleTuple.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHNpbXBsZVR1cGxlKCl1aW50MTYKYWJpX3JvdXRlX3NpbXBsZVR1cGxlOgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIHNpbXBsZVR1cGxlKCl1aW50MTYKCWNhbGxzdWIgc2ltcGxlVHVwbGUKCWludCAxCglyZXR1cm4KCnNpbXBsZVR1cGxlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI1NwoJLy8gYTogW3VpbnQ2NCwgdWludDwxNj4sIHVpbnQ2NCwgdWludDwxNj5dID0gWzExLCAyMiwgMzMsIDQ0XQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDE2MDAwMDAwMDAwMDAwMDAyMTAwMmMKCWZyYW1lX2J1cnkgLTEgLy8gYTogW3VpbnQ2NCx1aW50MTYsdWludDY0LHVpbnQxNl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjU5CgkvLyByZXR1cm4gYVszXTsKCWJ5dGUgMHgxNTFmN2M3NTAwMmMKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJzaW1wbGVUdXBsZSgpdWludDE2IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3NpbXBsZVR1cGxlCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHNpbXBsZVR1cGxlKCl1aW50MTYKYWJpX3JvdXRlX3NpbXBsZVR1cGxlOgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIHNpbXBsZVR1cGxlKCl1aW50MTYKCWNhbGxzdWIgc2ltcGxlVHVwbGUKCWludCAxCglyZXR1cm4KCnNpbXBsZVR1cGxlOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI1NwoJLy8gYTogW3VpbnQ2NCwgdWludDwxNj4sIHVpbnQ2NCwgdWludDwxNj5dID0gWzExLCAyMiwgMzMsIDQ0XQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI1OQoJLy8gcmV0dXJuIGFbM107CglieXRlIDB4MTUxZjdjNzUwMDJjCglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAic2ltcGxlVHVwbGUoKXVpbnQxNiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9zaW1wbGVUdXBsZQoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticArray.approval.teal b/tests/contracts/artifacts/ABITestStaticArray.approval.teal index 3c5bd9768..d5e8317c5 100644 --- a/tests/contracts/artifacts/ABITestStaticArray.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticArray.approval.teal @@ -36,9 +36,6 @@ staticArray: // tests/contracts/abi.algo.ts:11 // a: StaticArray = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 - frame_bury -1 // a: uint64[3] - // tests/contracts/abi.algo.ts:13 // return a[1]; byte 0x151f7c750000000000000016 diff --git a/tests/contracts/artifacts/ABITestStaticArray.json b/tests/contracts/artifacts/ABITestStaticArray.json index d9259de12..1f25260f6 100644 --- a/tests/contracts/artifacts/ABITestStaticArray.json +++ b/tests/contracts/artifacts/ABITestStaticArray.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHN0YXRpY0FycmF5KCl1aW50NjQKYWJpX3JvdXRlX3N0YXRpY0FycmF5OgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIHN0YXRpY0FycmF5KCl1aW50NjQKCWNhbGxzdWIgc3RhdGljQXJyYXkKCWludCAxCglyZXR1cm4KCnN0YXRpY0FycmF5OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzExLCAyMiwgMzNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxCglmcmFtZV9idXJ5IC0xIC8vIGE6IHVpbnQ2NFszXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMwoJLy8gcmV0dXJuIGFbMV07CglieXRlIDB4MTUxZjdjNzUwMDAwMDAwMDAwMDAwMDE2Cglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAic3RhdGljQXJyYXkoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9zdGF0aWNBcnJheQoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHN0YXRpY0FycmF5KCl1aW50NjQKYWJpX3JvdXRlX3N0YXRpY0FycmF5OgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIHN0YXRpY0FycmF5KCl1aW50NjQKCWNhbGxzdWIgc3RhdGljQXJyYXkKCWludCAxCglyZXR1cm4KCnN0YXRpY0FycmF5OgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExCgkvLyBhOiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWzExLCAyMiwgMzNdCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTMKCS8vIHJldHVybiBhWzFdOwoJYnl0ZSAweDE1MWY3Yzc1MDAwMDAwMDAwMDAwMDAxNgoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInN0YXRpY0FycmF5KCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc3RhdGljQXJyYXkKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.approval.teal b/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.approval.teal index 3ac6b38a8..f7974bf89 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.approval.teal @@ -36,9 +36,6 @@ staticArrayInStorageMap: // tests/contracts/abi.algo.ts:145 // a: StaticArray = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 - frame_bury -1 // a: uint64[3] - // tests/contracts/abi.algo.ts:147 // this.gMap('gMap').value = a byte 0x674d6170 // "gMap" diff --git a/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.json b/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.json index de99676e1..7cc340169 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.json +++ b/tests/contracts/artifacts/ABITestStaticArrayInStorageMap.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIGNhbGxfT3B0SW4KCk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gc3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQphYmlfcm91dGVfc3RhdGljQXJyYXlJblN0b3JhZ2VNYXA6CglieXRlIDB4OyBkdXAgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBzdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpdWludDY0WzNdCgljYWxsc3ViIHN0YXRpY0FycmF5SW5TdG9yYWdlTWFwCglpbnQgMQoJcmV0dXJuCgpzdGF0aWNBcnJheUluU3RvcmFnZU1hcDoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDUKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgLTEgLy8gYTogdWludDY0WzNdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0NwoJLy8gdGhpcy5nTWFwKCdnTWFwJykudmFsdWUgPSBhCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxIC8vIGE6IHVpbnQ2NFszXQoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ4CgkvLyB0aGlzLmxNYXAodGhpcy50eG4uc2VuZGVyLCAnbE1hcCcpLnZhbHVlID0gYQoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNGQ2MTcwIC8vICJsTWFwIgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMSAvLyBhOiB1aW50NjRbM10KCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTQ5CgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZSA9IGEKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEgLy8gYTogdWludDY0WzNdCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1MQoJLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWwoJLy8gICAgICAgdGhpcy5nTWFwKCdnTWFwJykudmFsdWVbMV0sCgkvLyAgICAgICB0aGlzLmxNYXAodGhpcy50eG4uc2VuZGVyLCAnbE1hcCcpLnZhbHVlWzFdLAoJLy8gICAgICAgdGhpcy5iTWFwKCdiTWFwJykudmFsdWVbMV0sCgkvLyAgICAgXQoJYnl0ZSAweDY3NGQ2MTcwIC8vICJnTWFwIgoJYXBwX2dsb2JhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJY29uY2F0CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglib3hfZ2V0Cglhc3NlcnQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgLTIgLy8gcmV0OiB1aW50NjRbM10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTU3CgkvLyByZXR1cm4gcmV0OwoJYnl0ZSAweDE1MWY3Yzc1CglmcmFtZV9kaWcgLTIgLy8gcmV0OiB1aW50NjRbM10KCWNvbmNhdAoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX09wdEluOgoJbWV0aG9kICJzdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpdWludDY0WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3N0YXRpY0FycmF5SW5TdG9yYWdlTWFwCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIGNhbGxfT3B0SW4KCk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gc3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQphYmlfcm91dGVfc3RhdGljQXJyYXlJblN0b3JhZ2VNYXA6CglieXRlIDB4OyBkdXAgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBzdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpdWludDY0WzNdCgljYWxsc3ViIHN0YXRpY0FycmF5SW5TdG9yYWdlTWFwCglpbnQgMQoJcmV0dXJuCgpzdGF0aWNBcnJheUluU3RvcmFnZU1hcDoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDUKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNDcKCS8vIHRoaXMuZ01hcCgnZ01hcCcpLnZhbHVlID0gYQoJYnl0ZSAweDY3NGQ2MTcwIC8vICJnTWFwIgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMSAvLyBhOiB1aW50NjRbM10KCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0OAoJLy8gdGhpcy5sTWFwKHRoaXMudHhuLnNlbmRlciwgJ2xNYXAnKS52YWx1ZSA9IGEKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEgLy8gYTogdWludDY0WzNdCglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE0OQoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSBhCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxIC8vIGE6IHVpbnQ2NFszXQoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNTEKCS8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsKCS8vICAgICAgIHRoaXMuZ01hcCgnZ01hcCcpLnZhbHVlWzFdLAoJLy8gICAgICAgdGhpcy5sTWFwKHRoaXMudHhuLnNlbmRlciwgJ2xNYXAnKS52YWx1ZVsxXSwKCS8vICAgICAgIHRoaXMuYk1hcCgnYk1hcCcpLnZhbHVlWzFdLAoJLy8gICAgIF0KCWJ5dGUgMHg2NzRkNjE3MCAvLyAiZ01hcCIKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNGQ2MTcwIC8vICJsTWFwIgoJYXBwX2xvY2FsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDYyNGQ2MTcwIC8vICJiTWFwIgoJYm94X2dldAoJYXNzZXJ0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9idXJ5IC0yIC8vIHJldDogdWludDY0WzNdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE1NwoJLy8gcmV0dXJuIHJldDsKCWJ5dGUgMHgxNTFmN2M3NQoJZnJhbWVfZGlnIC0yIC8vIHJldDogdWludDY0WzNdCgljb25jYXQKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9PcHRJbjoKCW1ldGhvZCAic3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9zdGF0aWNBcnJheUluU3RvcmFnZU1hcAoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.approval.teal b/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.approval.teal index 8dd4c9448..61d898f7f 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.approval.teal +++ b/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.approval.teal @@ -36,9 +36,6 @@ staticArrayInStorageRef: // tests/contracts/abi.algo.ts:87 // a: StaticArray = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 - frame_bury -1 // a: uint64[3] - // tests/contracts/abi.algo.ts:89 // this.gRef.value = a byte 0x67526566 // "gRef" diff --git a/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.json b/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.json index a49dfeaf5..520f1df9e 100644 --- a/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.json +++ b/tests/contracts/artifacts/ABITestStaticArrayInStorageRef.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIGNhbGxfT3B0SW4KCk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQphYmlfcm91dGVfc3RhdGljQXJyYXlJblN0b3JhZ2VSZWY6CglieXRlIDB4OyBkdXAgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBzdGF0aWNBcnJheUluU3RvcmFnZVJlZigpdWludDY0WzNdCgljYWxsc3ViIHN0YXRpY0FycmF5SW5TdG9yYWdlUmVmCglpbnQgMQoJcmV0dXJuCgpzdGF0aWNBcnJheUluU3RvcmFnZVJlZjoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMQoJZnJhbWVfYnVyeSAtMSAvLyBhOiB1aW50NjRbM10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODkKCS8vIHRoaXMuZ1JlZi52YWx1ZSA9IGEKCWJ5dGUgMHg2NzUyNjU2NiAvLyAiZ1JlZiIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEgLy8gYTogdWludDY0WzNdCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MAoJLy8gdGhpcy5sUmVmKHRoaXMudHhuLnNlbmRlcikudmFsdWUgPSBhCgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxIC8vIGE6IHVpbnQ2NFszXQoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5MQoJLy8gdGhpcy5iUmVmLnZhbHVlID0gYQoJYnl0ZSAweDYyNTI2NTY2IC8vICJiUmVmIgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMSAvLyBhOiB1aW50NjRbM10KCWJveF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTMKCS8vIHJldDogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFt0aGlzLmdSZWYudmFsdWVbMV0sIHRoaXMubFJlZih0aGlzLnR4bi5zZW5kZXIpLnZhbHVlWzFdLCB0aGlzLmJSZWYudmFsdWVbMV1dCglieXRlIDB4Njc1MjY1NjYgLy8gImdSZWYiCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzUyNjU2NiAvLyAibFJlZiIKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWJveF9nZXQKCWFzc2VydAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMiAvLyByZXQ6IHVpbnQ2NFszXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo5NQoJLy8gcmV0dXJuIHJldDsKCWJ5dGUgMHgxNTFmN2M3NQoJZnJhbWVfZGlnIC0yIC8vIHJldDogdWludDY0WzNdCgljb25jYXQKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9PcHRJbjoKCW1ldGhvZCAic3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9zdGF0aWNBcnJheUluU3RvcmFnZVJlZgoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIGNhbGxfT3B0SW4KCk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQphYmlfcm91dGVfc3RhdGljQXJyYXlJblN0b3JhZ2VSZWY6CglieXRlIDB4OyBkdXAgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBzdGF0aWNBcnJheUluU3RvcmFnZVJlZigpdWludDY0WzNdCgljYWxsc3ViIHN0YXRpY0FycmF5SW5TdG9yYWdlUmVmCglpbnQgMQoJcmV0dXJuCgpzdGF0aWNBcnJheUluU3RvcmFnZVJlZjoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NwoJLy8gYTogU3RhdGljQXJyYXk8dWludDY0LCAzPiA9IFsxMSwgMjIsIDMzXQoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg5CgkvLyB0aGlzLmdSZWYudmFsdWUgPSBhCglieXRlIDB4Njc1MjY1NjYgLy8gImdSZWYiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxIC8vIGE6IHVpbnQ2NFszXQoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTAKCS8vIHRoaXMubFJlZih0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gYQoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNTI2NTY2IC8vICJsUmVmIgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMSAvLyBhOiB1aW50NjRbM10KCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTEKCS8vIHRoaXMuYlJlZi52YWx1ZSA9IGEKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEgLy8gYTogdWludDY0WzNdCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjkzCgkvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbdGhpcy5nUmVmLnZhbHVlWzFdLCB0aGlzLmxSZWYodGhpcy50eG4uc2VuZGVyKS52YWx1ZVsxXSwgdGhpcy5iUmVmLnZhbHVlWzFdXQoJYnl0ZSAweDY3NTI2NTY2IC8vICJnUmVmIgoJYXBwX2dsb2JhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJY29uY2F0CglieXRlIDB4NjI1MjY1NjYgLy8gImJSZWYiCglib3hfZ2V0Cglhc3NlcnQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgLTIgLy8gcmV0OiB1aW50NjRbM10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6OTUKCS8vIHJldHVybiByZXQ7CglieXRlIDB4MTUxZjdjNzUKCWZyYW1lX2RpZyAtMiAvLyByZXQ6IHVpbnQ2NFszXQoJY29uY2F0Cglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfT3B0SW46CgltZXRob2QgInN0YXRpY0FycmF5SW5TdG9yYWdlUmVmKCl1aW50NjRbM10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc3RhdGljQXJyYXlJblN0b3JhZ2VSZWYKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStringAccessor.approval.teal b/tests/contracts/artifacts/ABITestStringAccessor.approval.teal index b0db0d464..dc15afd6e 100644 --- a/tests/contracts/artifacts/ABITestStringAccessor.approval.teal +++ b/tests/contracts/artifacts/ABITestStringAccessor.approval.teal @@ -36,9 +36,6 @@ stringAccessor: // tests/contracts/abi.algo.ts:843 // s = 'Hello World' - byte 0x48656c6c6f20576f726c64 // "Hello World" - frame_bury -1 // s: bytes - // tests/contracts/abi.algo.ts:845 // return s[1]; byte 0x151f7c75000165 diff --git a/tests/contracts/artifacts/ABITestStringAccessor.json b/tests/contracts/artifacts/ABITestStringAccessor.json index bf09799ee..ecf2f53de 100644 --- a/tests/contracts/artifacts/ABITestStringAccessor.json +++ b/tests/contracts/artifacts/ABITestStringAccessor.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHN0cmluZ0FjY2Vzc29yKClzdHJpbmcKYWJpX3JvdXRlX3N0cmluZ0FjY2Vzc29yOgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIHN0cmluZ0FjY2Vzc29yKClzdHJpbmcKCWNhbGxzdWIgc3RyaW5nQWNjZXNzb3IKCWludCAxCglyZXR1cm4KCnN0cmluZ0FjY2Vzc29yOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg0MwoJLy8gcyA9ICdIZWxsbyBXb3JsZCcKCWJ5dGUgMHg0ODY1NmM2YzZmMjA1NzZmNzI2YzY0IC8vICJIZWxsbyBXb3JsZCIKCWZyYW1lX2J1cnkgLTEgLy8gczogYnl0ZXMKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6ODQ1CgkvLyByZXR1cm4gc1sxXTsKCWJ5dGUgMHgxNTFmN2M3NTAwMDE2NQoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInN0cmluZ0FjY2Vzc29yKClzdHJpbmciCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc3RyaW5nQWNjZXNzb3IKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHN0cmluZ0FjY2Vzc29yKClzdHJpbmcKYWJpX3JvdXRlX3N0cmluZ0FjY2Vzc29yOgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIHN0cmluZ0FjY2Vzc29yKClzdHJpbmcKCWNhbGxzdWIgc3RyaW5nQWNjZXNzb3IKCWludCAxCglyZXR1cm4KCnN0cmluZ0FjY2Vzc29yOgoJcHJvdG8gMSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjg0MwoJLy8gcyA9ICdIZWxsbyBXb3JsZCcKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo4NDUKCS8vIHJldHVybiBzWzFdOwoJYnl0ZSAweDE1MWY3Yzc1MDAwMTY1Cglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAic3RyaW5nQWNjZXNzb3IoKXN0cmluZyIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9zdHJpbmdBY2Nlc3NvcgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestStringLength.approval.teal b/tests/contracts/artifacts/ABITestStringLength.approval.teal index 2b7d1dd56..ac7b34219 100644 --- a/tests/contracts/artifacts/ABITestStringLength.approval.teal +++ b/tests/contracts/artifacts/ABITestStringLength.approval.teal @@ -36,9 +36,6 @@ stringLength: // tests/contracts/abi.algo.ts:752 // s = 'foo bar' - byte 0x666f6f20626172 // "foo bar" - frame_bury -1 // s: bytes - // tests/contracts/abi.algo.ts:754 // return s.length; byte 0x151f7c750000000000000007 diff --git a/tests/contracts/artifacts/ABITestStringLength.json b/tests/contracts/artifacts/ABITestStringLength.json index d3f9748dc..97c10fedb 100644 --- a/tests/contracts/artifacts/ABITestStringLength.json +++ b/tests/contracts/artifacts/ABITestStringLength.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHN0cmluZ0xlbmd0aCgpdWludDY0CmFiaV9yb3V0ZV9zdHJpbmdMZW5ndGg6CglieXRlIDB4IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgc3RyaW5nTGVuZ3RoKCl1aW50NjQKCWNhbGxzdWIgc3RyaW5nTGVuZ3RoCglpbnQgMQoJcmV0dXJuCgpzdHJpbmdMZW5ndGg6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzUyCgkvLyBzID0gJ2ZvbyBiYXInCglieXRlIDB4NjY2ZjZmMjA2MjYxNzIgLy8gImZvbyBiYXIiCglmcmFtZV9idXJ5IC0xIC8vIHM6IGJ5dGVzCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjc1NAoJLy8gcmV0dXJuIHMubGVuZ3RoOwoJYnl0ZSAweDE1MWY3Yzc1MDAwMDAwMDAwMDAwMDAwNwoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgInN0cmluZ0xlbmd0aCgpdWludDY0IgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3N0cmluZ0xlbmd0aAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHN0cmluZ0xlbmd0aCgpdWludDY0CmFiaV9yb3V0ZV9zdHJpbmdMZW5ndGg6CglieXRlIDB4IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgc3RyaW5nTGVuZ3RoKCl1aW50NjQKCWNhbGxzdWIgc3RyaW5nTGVuZ3RoCglpbnQgMQoJcmV0dXJuCgpzdHJpbmdMZW5ndGg6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzUyCgkvLyBzID0gJ2ZvbyBiYXInCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzU0CgkvLyByZXR1cm4gcy5sZW5ndGg7CglieXRlIDB4MTUxZjdjNzUwMDAwMDAwMDAwMDAwMDA3Cglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAic3RyaW5nTGVuZ3RoKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfc3RyaW5nTGVuZ3RoCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestTupleInArray.approval.teal b/tests/contracts/artifacts/ABITestTupleInArray.approval.teal index 88a85f8c2..7b1cb35ec 100644 --- a/tests/contracts/artifacts/ABITestTupleInArray.approval.teal +++ b/tests/contracts/artifacts/ABITestTupleInArray.approval.teal @@ -39,9 +39,6 @@ tupleInArray: // [11, 22], // [33, 44], // ] - byte 0x000000000000000b00160000000000000021002c - frame_bury -1 // a: [uint64,uint16][2] - // tests/contracts/abi.algo.ts:278 // return a[1][1]; byte 0x151f7c75002c diff --git a/tests/contracts/artifacts/ABITestTupleInArray.json b/tests/contracts/artifacts/ABITestTupleInArray.json index 63d26af45..b1de59638 100644 --- a/tests/contracts/artifacts/ABITestTupleInArray.json +++ b/tests/contracts/artifacts/ABITestTupleInArray.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHR1cGxlSW5BcnJheSgpdWludDE2CmFiaV9yb3V0ZV90dXBsZUluQXJyYXk6CglieXRlIDB4IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgdHVwbGVJbkFycmF5KCl1aW50MTYKCWNhbGxzdWIgdHVwbGVJbkFycmF5CglpbnQgMQoJcmV0dXJuCgp0dXBsZUluQXJyYXk6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjczCgkvLyBhOiBTdGF0aWNBcnJheTxbdWludDY0LCB1aW50PDE2Pl0sIDI+ID0gWwoJLy8gICAgICAgWzExLCAyMl0sCgkvLyAgICAgICBbMzMsIDQ0XSwKCS8vICAgICBdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMTYwMDAwMDAwMDAwMDAwMDIxMDAyYwoJZnJhbWVfYnVyeSAtMSAvLyBhOiBbdWludDY0LHVpbnQxNl1bMl0KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjc4CgkvLyByZXR1cm4gYVsxXVsxXTsKCWJ5dGUgMHgxNTFmN2M3NTAwMmMKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJ0dXBsZUluQXJyYXkoKXVpbnQxNiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV90dXBsZUluQXJyYXkKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHR1cGxlSW5BcnJheSgpdWludDE2CmFiaV9yb3V0ZV90dXBsZUluQXJyYXk6CglieXRlIDB4IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgdHVwbGVJbkFycmF5KCl1aW50MTYKCWNhbGxzdWIgdHVwbGVJbkFycmF5CglpbnQgMQoJcmV0dXJuCgp0dXBsZUluQXJyYXk6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MjczCgkvLyBhOiBTdGF0aWNBcnJheTxbdWludDY0LCB1aW50PDE2Pl0sIDI+ID0gWwoJLy8gICAgICAgWzExLCAyMl0sCgkvLyAgICAgICBbMzMsIDQ0XSwKCS8vICAgICBdCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjc4CgkvLyByZXR1cm4gYVsxXVsxXTsKCWJ5dGUgMHgxNTFmN2M3NTAwMmMKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJ0dXBsZUluQXJyYXkoKXVpbnQxNiIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV90dXBsZUluQXJyYXkKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestTupleInTuple.approval.teal b/tests/contracts/artifacts/ABITestTupleInTuple.approval.teal index 10d664dda..af0cb2340 100644 --- a/tests/contracts/artifacts/ABITestTupleInTuple.approval.teal +++ b/tests/contracts/artifacts/ABITestTupleInTuple.approval.teal @@ -36,9 +36,6 @@ tupleInTuple: // tests/contracts/abi.algo.ts:284 // a: [uint<16>, uint<16>, [uint64, uint<16>], [uint<16>, uint64]] = [11, 22, [33, 44], [55, 66]] - byte 0x000b00160000000000000021002c00370000000000000042 - frame_bury -1 // a: [uint16,uint16,[uint64,uint16],[uint16,uint64]] - // tests/contracts/abi.algo.ts:286 // return a[3][1]; byte 0x151f7c750000000000000042 diff --git a/tests/contracts/artifacts/ABITestTupleInTuple.json b/tests/contracts/artifacts/ABITestTupleInTuple.json index 7928bcbf4..ab896405d 100644 --- a/tests/contracts/artifacts/ABITestTupleInTuple.json +++ b/tests/contracts/artifacts/ABITestTupleInTuple.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHR1cGxlSW5UdXBsZSgpdWludDY0CmFiaV9yb3V0ZV90dXBsZUluVHVwbGU6CglieXRlIDB4IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgdHVwbGVJblR1cGxlKCl1aW50NjQKCWNhbGxzdWIgdHVwbGVJblR1cGxlCglpbnQgMQoJcmV0dXJuCgp0dXBsZUluVHVwbGU6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjg0CgkvLyBhOiBbdWludDwxNj4sIHVpbnQ8MTY+LCBbdWludDY0LCB1aW50PDE2Pl0sIFt1aW50PDE2PiwgdWludDY0XV0gPSBbMTEsIDIyLCBbMzMsIDQ0XSwgWzU1LCA2Nl1dCglieXRlIDB4MDAwYjAwMTYwMDAwMDAwMDAwMDAwMDIxMDAyYzAwMzcwMDAwMDAwMDAwMDAwMDQyCglmcmFtZV9idXJ5IC0xIC8vIGE6IFt1aW50MTYsdWludDE2LFt1aW50NjQsdWludDE2XSxbdWludDE2LHVpbnQ2NF1dCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjI4NgoJLy8gcmV0dXJuIGFbM11bMV07CglieXRlIDB4MTUxZjdjNzUwMDAwMDAwMDAwMDAwMDQyCglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAidHVwbGVJblR1cGxlKCl1aW50NjQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfdHVwbGVJblR1cGxlCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHR1cGxlSW5UdXBsZSgpdWludDY0CmFiaV9yb3V0ZV90dXBsZUluVHVwbGU6CglieXRlIDB4IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgdHVwbGVJblR1cGxlKCl1aW50NjQKCWNhbGxzdWIgdHVwbGVJblR1cGxlCglpbnQgMQoJcmV0dXJuCgp0dXBsZUluVHVwbGU6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjg0CgkvLyBhOiBbdWludDwxNj4sIHVpbnQ8MTY+LCBbdWludDY0LCB1aW50PDE2Pl0sIFt1aW50PDE2PiwgdWludDY0XV0gPSBbMTEsIDIyLCBbMzMsIDQ0XSwgWzU1LCA2Nl1dCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6Mjg2CgkvLyByZXR1cm4gYVszXVsxXTsKCWJ5dGUgMHgxNTFmN2M3NTAwMDAwMDAwMDAwMDAwNDIKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJ0dXBsZUluVHVwbGUoKXVpbnQ2NCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV90dXBsZUluVHVwbGUKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUfixed.approval.teal b/tests/contracts/artifacts/ABITestUfixed.approval.teal index 4ea9963a3..794daf940 100644 --- a/tests/contracts/artifacts/ABITestUfixed.approval.teal +++ b/tests/contracts/artifacts/ABITestUfixed.approval.teal @@ -36,14 +36,8 @@ ufixed: // tests/contracts/abi.algo.ts:735 // a = 1.23 as ufixed<64, 2> - byte 0x0000007b - frame_bury -1 // a: ufixed64x2 - // tests/contracts/abi.algo.ts:736 // b = 4.56 as ufixed<64, 2> - byte 0x000001c8 - frame_bury -2 // b: ufixed64x2 - // tests/contracts/abi.algo.ts:738 // return a + b; byte 0x0000007b // a: ufixed64x2 diff --git a/tests/contracts/artifacts/ABITestUfixed.json b/tests/contracts/artifacts/ABITestUfixed.json index 581a5dc3f..8b0c830e3 100644 --- a/tests/contracts/artifacts/ABITestUfixed.json +++ b/tests/contracts/artifacts/ABITestUfixed.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHVmaXhlZCgpdWZpeGVkNjR4MgphYmlfcm91dGVfdWZpeGVkOgoJYnl0ZSAweDsgZHVwIC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgdWZpeGVkKCl1Zml4ZWQ2NHgyCgljYWxsc3ViIHVmaXhlZAoJaW50IDEKCXJldHVybgoKdWZpeGVkOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjczNQoJLy8gYSA9IDEuMjMgYXMgdWZpeGVkPDY0LCAyPgoJYnl0ZSAweDAwMDAwMDdiCglmcmFtZV9idXJ5IC0xIC8vIGE6IHVmaXhlZDY0eDIKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6NzM2CgkvLyBiID0gNC41NiBhcyB1Zml4ZWQ8NjQsIDI+CglieXRlIDB4MDAwMDAxYzgKCWZyYW1lX2J1cnkgLTIgLy8gYjogdWZpeGVkNjR4MgoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czo3MzgKCS8vIHJldHVybiBhICsgYjsKCWJ5dGUgMHgwMDAwMDA3YiAvLyBhOiB1Zml4ZWQ2NHgyCglieXRlIDB4MDAwMDAxYzggLy8gYjogdWZpeGVkNjR4MgoJYisKCWJ0b2kKCWl0b2IKCWJ5dGUgMHgxNTFmN2M3NQoJc3dhcAoJY29uY2F0Cglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAidWZpeGVkKCl1Zml4ZWQ2NHgyIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3VmaXhlZAoJZXJy", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHVmaXhlZCgpdWZpeGVkNjR4MgphYmlfcm91dGVfdWZpeGVkOgoJYnl0ZSAweDsgZHVwIC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgdWZpeGVkKCl1Zml4ZWQ2NHgyCgljYWxsc3ViIHVmaXhlZAoJaW50IDEKCXJldHVybgoKdWZpeGVkOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjczNQoJLy8gYSA9IDEuMjMgYXMgdWZpeGVkPDY0LCAyPgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjczNgoJLy8gYiA9IDQuNTYgYXMgdWZpeGVkPDY0LCAyPgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjczOAoJLy8gcmV0dXJuIGEgKyBiOwoJYnl0ZSAweDAwMDAwMDdiIC8vIGE6IHVmaXhlZDY0eDIKCWJ5dGUgMHgwMDAwMDFjOCAvLyBiOiB1Zml4ZWQ2NHgyCgliKwoJYnRvaQoJaXRvYgoJYnl0ZSAweDE1MWY3Yzc1Cglzd2FwCgljb25jYXQKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJ1Zml4ZWQoKXVmaXhlZDY0eDIiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfdWZpeGVkCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.approval.teal b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.approval.teal index cea5c5f11..c1b09131b 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.approval.teal @@ -36,9 +36,6 @@ updateStaticArrayInStorageMap: // tests/contracts/abi.algo.ts:176 // a: StaticArray = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 - frame_bury -1 // a: uint64[3] - // tests/contracts/abi.algo.ts:178 // this.gMap('gMap').value = a byte 0x674d6170 // "gMap" diff --git a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.json b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.json index 24a15f06c..6555d34b5 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.json +++ b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageMap.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIGNhbGxfT3B0SW4KCk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQphYmlfcm91dGVfdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXA6CglieXRlIDB4OyBkdXAgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpdWludDY0WzNdCgljYWxsc3ViIHVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwCglpbnQgMQoJcmV0dXJuCgp1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZU1hcDoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNzYKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgLTEgLy8gYTogdWludDY0WzNdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE3OAoJLy8gdGhpcy5nTWFwKCdnTWFwJykudmFsdWUgPSBhCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxIC8vIGE6IHVpbnQ2NFszXQoJYXBwX2dsb2JhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTc5CgkvLyB0aGlzLmxNYXAodGhpcy50eG4uc2VuZGVyLCAnbE1hcCcpLnZhbHVlID0gYQoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNGQ2MTcwIC8vICJsTWFwIgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMSAvLyBhOiB1aW50NjRbM10KCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTgwCgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZSA9IGEKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEgLy8gYTogdWludDY0WzNdCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE4MgoJLy8gdGhpcy5nTWFwKCdnTWFwJykudmFsdWVbMV0gPSAxMTExCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDAwMDAwMDAwMDAwMDA0NTcKCXJlcGxhY2UyIDgKCWJ5dGUgMHg2NzRkNjE3MCAvLyAiZ01hcCIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE4MwoJLy8gdGhpcy5sTWFwKHRoaXMudHhuLnNlbmRlciwgJ2xNYXAnKS52YWx1ZVsxXSA9IDIyMjIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWFwcF9sb2NhbF9nZXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwOGFlCglyZXBsYWNlMiA4Cgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCgl1bmNvdmVyIDIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTg0CgkvLyB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZVsxXSA9IDMzMzMKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWludCA4CglieXRlIDB4MDAwMDAwMDAwMDAwMGQwNQoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTg2CgkvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbCgkvLyAgICAgICB0aGlzLmdNYXAoJ2dNYXAnKS52YWx1ZVsxXSwKCS8vICAgICAgIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWVbMV0sCgkvLyAgICAgICB0aGlzLmJNYXAoJ2JNYXAnKS52YWx1ZVsxXSwKCS8vICAgICBdCglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglhcHBfZ2xvYmFsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWFwcF9sb2NhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWJ5dGUgMHg2MjRkNjE3MCAvLyAiYk1hcCIKCWJveF9nZXQKCWFzc2VydAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMiAvLyByZXQ6IHVpbnQ2NFszXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxOTIKCS8vIHJldHVybiByZXQ7CglieXRlIDB4MTUxZjdjNzUKCWZyYW1lX2RpZyAtMiAvLyByZXQ6IHVpbnQ2NFszXQoJY29uY2F0Cglsb2cKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfT3B0SW46CgltZXRob2QgInVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwKCl1aW50NjRbM10iCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIGNhbGxfT3B0SW4KCk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXAoKXVpbnQ2NFszXQphYmlfcm91dGVfdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VNYXA6CglieXRlIDB4OyBkdXAgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpdWludDY0WzNdCgljYWxsc3ViIHVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwCglpbnQgMQoJcmV0dXJuCgp1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZU1hcDoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNzYKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxNzgKCS8vIHRoaXMuZ01hcCgnZ01hcCcpLnZhbHVlID0gYQoJYnl0ZSAweDY3NGQ2MTcwIC8vICJnTWFwIgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMSAvLyBhOiB1aW50NjRbM10KCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE3OQoJLy8gdGhpcy5sTWFwKHRoaXMudHhuLnNlbmRlciwgJ2xNYXAnKS52YWx1ZSA9IGEKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzRkNjE3MCAvLyAibE1hcCIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEgLy8gYTogdWludDY0WzNdCglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE4MAoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWUgPSBhCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxIC8vIGE6IHVpbnQ2NFszXQoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxODIKCS8vIHRoaXMuZ01hcCgnZ01hcCcpLnZhbHVlWzFdID0gMTExMQoJYnl0ZSAweDY3NGQ2MTcwIC8vICJnTWFwIgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwNDU3CglyZXBsYWNlMiA4CglieXRlIDB4Njc0ZDYxNzAgLy8gImdNYXAiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxODMKCS8vIHRoaXMubE1hcCh0aGlzLnR4bi5zZW5kZXIsICdsTWFwJykudmFsdWVbMV0gPSAyMjIyCgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCglhcHBfbG9jYWxfZ2V0CglieXRlIDB4MDAwMDAwMDAwMDAwMDhhZQoJcmVwbGFjZTIgOAoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNGQ2MTcwIC8vICJsTWFwIgoJdW5jb3ZlciAyCglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE4NAoJLy8gdGhpcy5iTWFwKCdiTWFwJykudmFsdWVbMV0gPSAzMzMzCglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglpbnQgOAoJYnl0ZSAweDAwMDAwMDAwMDAwMDBkMDUKCWJveF9yZXBsYWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjE4NgoJLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gWwoJLy8gICAgICAgdGhpcy5nTWFwKCdnTWFwJykudmFsdWVbMV0sCgkvLyAgICAgICB0aGlzLmxNYXAodGhpcy50eG4uc2VuZGVyLCAnbE1hcCcpLnZhbHVlWzFdLAoJLy8gICAgICAgdGhpcy5iTWFwKCdiTWFwJykudmFsdWVbMV0sCgkvLyAgICAgXQoJYnl0ZSAweDY3NGQ2MTcwIC8vICJnTWFwIgoJYXBwX2dsb2JhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgl0eG4gU2VuZGVyCglieXRlIDB4NmM0ZDYxNzAgLy8gImxNYXAiCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJY29uY2F0CglieXRlIDB4NjI0ZDYxNzAgLy8gImJNYXAiCglib3hfZ2V0Cglhc3NlcnQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgLTIgLy8gcmV0OiB1aW50NjRbM10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTkyCgkvLyByZXR1cm4gcmV0OwoJYnl0ZSAweDE1MWY3Yzc1CglmcmFtZV9kaWcgLTIgLy8gcmV0OiB1aW50NjRbM10KCWNvbmNhdAoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX09wdEluOgoJbWV0aG9kICJ1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZU1hcCgpdWludDY0WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlTWFwCgllcnI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.approval.teal b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.approval.teal index 7a5a6d38e..82ac59e9b 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.approval.teal +++ b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.approval.teal @@ -36,9 +36,6 @@ updateStaticArrayInStorageRef: // tests/contracts/abi.algo.ts:114 // a: StaticArray = [11, 22, 33] - byte 0x000000000000000b00000000000000160000000000000021 - frame_bury -1 // a: uint64[3] - // tests/contracts/abi.algo.ts:116 // this.gRef.value = a byte 0x67526566 // "gRef" diff --git a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.json b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.json index 3c4501ecb..2b3e90a2c 100644 --- a/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.json +++ b/tests/contracts/artifacts/ABITestUpdateStaticArrayInStorageRef.json @@ -49,7 +49,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIGNhbGxfT3B0SW4KCk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQphYmlfcm91dGVfdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWY6CglieXRlIDB4OyBkdXAgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZigpdWludDY0WzNdCgljYWxsc3ViIHVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmCglpbnQgMQoJcmV0dXJuCgp1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZjoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTQKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEKCWZyYW1lX2J1cnkgLTEgLy8gYTogdWludDY0WzNdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExNgoJLy8gdGhpcy5nUmVmLnZhbHVlID0gYQoJYnl0ZSAweDY3NTI2NTY2IC8vICJnUmVmIgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMSAvLyBhOiB1aW50NjRbM10KCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjExNwoJLy8gdGhpcy5sUmVmKHRoaXMudHhuLnNlbmRlcikudmFsdWUgPSBhCgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxIC8vIGE6IHVpbnQ2NFszXQoJYXBwX2xvY2FsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTgKCS8vIHRoaXMuYlJlZi52YWx1ZSA9IGEKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEgLy8gYTogdWludDY0WzNdCglib3hfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMAoJLy8gdGhpcy5nUmVmLnZhbHVlWzFdID0gMTExCglieXRlIDB4Njc1MjY1NjYgLy8gImdSZWYiCglhcHBfZ2xvYmFsX2dldAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwNmYKCXJlcGxhY2UyIDgKCWJ5dGUgMHg2NzUyNjU2NiAvLyAiZ1JlZiIKCXN3YXAKCWFwcF9nbG9iYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMQoJLy8gdGhpcy5sUmVmKHRoaXMudHhuLnNlbmRlcikudmFsdWVbMV0gPSAyMjIKCXR4biBTZW5kZXIKCWJ5dGUgMHg2YzUyNjU2NiAvLyAibFJlZiIKCWFwcF9sb2NhbF9nZXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMGRlCglyZXBsYWNlMiA4Cgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCgl1bmNvdmVyIDIKCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTIyCgkvLyB0aGlzLmJSZWYudmFsdWVbMV0gPSAzMzMKCWJ5dGUgMHg2MjUyNjU2NiAvLyAiYlJlZiIKCWludCA4CglieXRlIDB4MDAwMDAwMDAwMDAwMDE0ZAoJYm94X3JlcGxhY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI0CgkvLyByZXQ6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbdGhpcy5nUmVmLnZhbHVlWzFdLCB0aGlzLmxSZWYodGhpcy50eG4uc2VuZGVyKS52YWx1ZVsxXSwgdGhpcy5iUmVmLnZhbHVlWzFdXQoJYnl0ZSAweDY3NTI2NTY2IC8vICJnUmVmIgoJYXBwX2dsb2JhbF9nZXQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCglhcHBfbG9jYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJY29uY2F0CglieXRlIDB4NjI1MjY1NjYgLy8gImJSZWYiCglib3hfZ2V0Cglhc3NlcnQKCWV4dHJhY3QgOCA4CglidG9pCglpdG9iCgljb25jYXQKCWZyYW1lX2J1cnkgLTIgLy8gcmV0OiB1aW50NjRbM10KCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTI2CgkvLyByZXR1cm4gcmV0OwoJYnl0ZSAweDE1MWY3Yzc1CglmcmFtZV9kaWcgLTIgLy8gcmV0OiB1aW50NjRbM10KCWNvbmNhdAoJbG9nCglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX09wdEluOgoJbWV0aG9kICJ1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZigpdWludDY0WzNdIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3VwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmCgllcnI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIGNhbGxfT3B0SW4KCk5PVF9JTVBMRU1FTlRFRDoKCWVycgoKLy8gdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXQphYmlfcm91dGVfdXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWY6CglieXRlIDB4OyBkdXAgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSB1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZigpdWludDY0WzNdCgljYWxsc3ViIHVwZGF0ZVN0YXRpY0FycmF5SW5TdG9yYWdlUmVmCglpbnQgMQoJcmV0dXJuCgp1cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZjoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTQKCS8vIGE6IFN0YXRpY0FycmF5PHVpbnQ2NCwgMz4gPSBbMTEsIDIyLCAzM10KCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTYKCS8vIHRoaXMuZ1JlZi52YWx1ZSA9IGEKCWJ5dGUgMHg2NzUyNjU2NiAvLyAiZ1JlZiIKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDBiMDAwMDAwMDAwMDAwMDAxNjAwMDAwMDAwMDAwMDAwMjEgLy8gYTogdWludDY0WzNdCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMTcKCS8vIHRoaXMubFJlZih0aGlzLnR4bi5zZW5kZXIpLnZhbHVlID0gYQoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNTI2NTY2IC8vICJsUmVmIgoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMGIwMDAwMDAwMDAwMDAwMDE2MDAwMDAwMDAwMDAwMDAyMSAvLyBhOiB1aW50NjRbM10KCWFwcF9sb2NhbF9wdXQKCgkvLyB0ZXN0cy9jb250cmFjdHMvYWJpLmFsZ28udHM6MTE4CgkvLyB0aGlzLmJSZWYudmFsdWUgPSBhCglieXRlIDB4NjI1MjY1NjYgLy8gImJSZWYiCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwYjAwMDAwMDAwMDAwMDAwMTYwMDAwMDAwMDAwMDAwMDIxIC8vIGE6IHVpbnQ2NFszXQoJYm94X3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjAKCS8vIHRoaXMuZ1JlZi52YWx1ZVsxXSA9IDExMQoJYnl0ZSAweDY3NTI2NTY2IC8vICJnUmVmIgoJYXBwX2dsb2JhbF9nZXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDZmCglyZXBsYWNlMiA4CglieXRlIDB4Njc1MjY1NjYgLy8gImdSZWYiCglzd2FwCglhcHBfZ2xvYmFsX3B1dAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9hYmkuYWxnby50czoxMjEKCS8vIHRoaXMubFJlZih0aGlzLnR4bi5zZW5kZXIpLnZhbHVlWzFdID0gMjIyCgl0eG4gU2VuZGVyCglieXRlIDB4NmM1MjY1NjYgLy8gImxSZWYiCglhcHBfbG9jYWxfZ2V0CglieXRlIDB4MDAwMDAwMDAwMDAwMDBkZQoJcmVwbGFjZTIgOAoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNTI2NTY2IC8vICJsUmVmIgoJdW5jb3ZlciAyCglhcHBfbG9jYWxfcHV0CgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyMgoJLy8gdGhpcy5iUmVmLnZhbHVlWzFdID0gMzMzCglieXRlIDB4NjI1MjY1NjYgLy8gImJSZWYiCglpbnQgOAoJYnl0ZSAweDAwMDAwMDAwMDAwMDAxNGQKCWJveF9yZXBsYWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNAoJLy8gcmV0OiBTdGF0aWNBcnJheTx1aW50NjQsIDM+ID0gW3RoaXMuZ1JlZi52YWx1ZVsxXSwgdGhpcy5sUmVmKHRoaXMudHhuLnNlbmRlcikudmFsdWVbMV0sIHRoaXMuYlJlZi52YWx1ZVsxXV0KCWJ5dGUgMHg2NzUyNjU2NiAvLyAiZ1JlZiIKCWFwcF9nbG9iYWxfZ2V0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJdHhuIFNlbmRlcgoJYnl0ZSAweDZjNTI2NTY2IC8vICJsUmVmIgoJYXBwX2xvY2FsX2dldAoJZXh0cmFjdCA4IDgKCWJ0b2kKCWl0b2IKCWNvbmNhdAoJYnl0ZSAweDYyNTI2NTY2IC8vICJiUmVmIgoJYm94X2dldAoJYXNzZXJ0CglleHRyYWN0IDggOAoJYnRvaQoJaXRvYgoJY29uY2F0CglmcmFtZV9idXJ5IC0yIC8vIHJldDogdWludDY0WzNdCgoJLy8gdGVzdHMvY29udHJhY3RzL2FiaS5hbGdvLnRzOjEyNgoJLy8gcmV0dXJuIHJldDsKCWJ5dGUgMHgxNTFmN2M3NQoJZnJhbWVfZGlnIC0yIC8vIHJldDogdWludDY0WzNdCgljb25jYXQKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9PcHRJbjoKCW1ldGhvZCAidXBkYXRlU3RhdGljQXJyYXlJblN0b3JhZ2VSZWYoKXVpbnQ2NFszXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV91cGRhdGVTdGF0aWNBcnJheUluU3RvcmFnZVJlZgoJZXJy", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/artifacts/GeneralTest.abi.json b/tests/contracts/artifacts/GeneralTest.abi.json index 5b7bddc10..73f71113e 100644 --- a/tests/contracts/artifacts/GeneralTest.abi.json +++ b/tests/contracts/artifacts/GeneralTest.abi.json @@ -2,6 +2,24 @@ "name": "GeneralTest", "desc": "", "methods": [ + { + "name": "callAddNumber", + "args": [], + "desc": "", + "returns": { + "type": "void", + "desc": "" + } + }, + { + "name": "callInlineFunc", + "args": [], + "desc": "", + "returns": { + "type": "void", + "desc": "" + } + }, { "name": "txnTypeEnum", "args": [], diff --git a/tests/contracts/artifacts/GeneralTest.approval.teal b/tests/contracts/artifacts/GeneralTest.approval.teal index 66e44b568..08c087867 100644 --- a/tests/contracts/artifacts/GeneralTest.approval.teal +++ b/tests/contracts/artifacts/GeneralTest.approval.teal @@ -22,6 +22,65 @@ switch create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENT NOT_IMPLEMENTED: err +// callAddNumber()void +abi_route_callAddNumber: + byte 0x; dup // push empty bytes to fill the stack frame for this subroutine's local variables + + // execute callAddNumber()void + callsub callAddNumber + int 1 + return + +callAddNumber: + proto 2 0 + + // tests/contracts/general.algo.ts:20 + // nums: number[] = [1, 2, 3] + byte 0x000000000000000100000000000000020000000000000003 + frame_bury -1 // nums: uint64[] + + // tests/contracts/general.algo.ts:21 + // this.addNumber(nums, 4) + // tests/contracts/general.algo.ts:16 + // numbers.push(n) + frame_dig -1 // nums: uint64[] + byte 0x0000000000000004 + concat + frame_bury -1 // numbers: uint64[] + + // tests/contracts/general.algo.ts:22 + // assert(nums.length === 4) + frame_dig -1 // nums: uint64[] + len + int 8 + / + int 4 + == + assert + retsub + +// callInlineFunc()void +abi_route_callInlineFunc: + byte 0x; dupn 4 // push empty bytes to fill the stack frame for this subroutine's local variables + + // execute callInlineFunc()void + callsub callInlineFunc + int 1 + return + +callInlineFunc: + proto 5 0 + + // tests/contracts/general.algo.ts:26 + // x = 1 + // tests/contracts/general.algo.ts:27 + // assert(this.inlineFunc(x, 2 + 3) === 6) + int 6 + int 6 + == + assert + retsub + // txnTypeEnum()void abi_route_txnTypeEnum: // execute txnTypeEnum()void @@ -32,7 +91,7 @@ abi_route_txnTypeEnum: txnTypeEnum: proto 0 0 - // tests/contracts/general.algo.ts:10 + // tests/contracts/general.algo.ts:31 // assert(this.txnGroup[0].typeEnum === TransactionType.ApplicationCall) int 0 gtxns TypeEnum @@ -51,7 +110,7 @@ abi_route_txnGroupLength: txnGroupLength: proto 0 0 - // tests/contracts/general.algo.ts:14 + // tests/contracts/general.algo.ts:35 // assert(this.txnGroup.length === 1) global GroupSize int 1 @@ -89,7 +148,7 @@ abi_route_asserts: asserts: proto 2 0 - // tests/contracts/general.algo.ts:18 + // tests/contracts/general.algo.ts:39 // assert(arg1, arg2, arg1 === arg2) frame_dig -1 // arg1: bool assert @@ -121,7 +180,7 @@ abi_route_verifyTxnFromArg: verifyTxnFromArg: proto 1 0 - // tests/contracts/general.algo.ts:22 + // tests/contracts/general.algo.ts:43 // verifyTxn(somePay, { receiver: this.app.address, amount: 100_000 }) // verify receiver frame_dig -1 // somePay: pay @@ -148,7 +207,7 @@ abi_route_verifyTxnFromTxnGroup: verifyTxnFromTxnGroup: proto 0 0 - // tests/contracts/general.algo.ts:26 + // tests/contracts/general.algo.ts:47 // verifyTxn(this.txnGroup[0], { sender: this.txn.sender }) // verify sender int 0 @@ -168,7 +227,7 @@ abi_route_verifyTxnCondition: verifyTxnCondition: proto 0 0 - // tests/contracts/general.algo.ts:30 + // tests/contracts/general.algo.ts:51 // verifyTxn(this.txn, { // applicationID: { greaterThan: 1 }, // }) @@ -189,7 +248,7 @@ abi_route_verifyTxnIncludedIn: verifyTxnIncludedIn: proto 0 0 - // tests/contracts/general.algo.ts:36 + // tests/contracts/general.algo.ts:57 // verifyTxn(this.txn, { // sender: { includedIn: [this.txn.sender] }, // }) @@ -210,7 +269,7 @@ abi_route_verifyTxnNotIncludedIn: verifyTxnNotIncludedIn: proto 0 0 - // tests/contracts/general.algo.ts:42 + // tests/contracts/general.algo.ts:63 // verifyTxn(this.txn, { // sender: { notIncludedIn: [globals.zeroAddress] }, // }) @@ -231,18 +290,18 @@ abi_route_submitPendingGroup: submitPendingGroup: proto 0 0 - // tests/contracts/general.algo.ts:48 + // tests/contracts/general.algo.ts:69 // this.pendingGroup.addPayment({ amount: 100_000, receiver: this.app.address }) itxn_begin int pay itxn_field TypeEnum - // tests/contracts/general.algo.ts:48 + // tests/contracts/general.algo.ts:69 // amount: 100_000 int 100_000 itxn_field Amount - // tests/contracts/general.algo.ts:48 + // tests/contracts/general.algo.ts:69 // receiver: this.app.address global CurrentApplicationAddress itxn_field Receiver @@ -251,13 +310,13 @@ submitPendingGroup: int 0 itxn_field Fee - // tests/contracts/general.algo.ts:49 + // tests/contracts/general.algo.ts:70 // this.pendingGroup.addAssetCreation({ configAssetTotal: 1 }) itxn_begin int acfg itxn_field TypeEnum - // tests/contracts/general.algo.ts:49 + // tests/contracts/general.algo.ts:70 // configAssetTotal: 1 int 1 itxn_field ConfigAssetTotal @@ -266,7 +325,7 @@ submitPendingGroup: int 0 itxn_field Fee - // tests/contracts/general.algo.ts:50 + // tests/contracts/general.algo.ts:71 // this.pendingGroup.submit() itxn_submit retsub @@ -281,7 +340,7 @@ abi_route_methodWithTxnArgs: methodWithTxnArgs: proto 0 0 - // tests/contracts/general.algo.ts:54 + // tests/contracts/general.algo.ts:75 // sendMethodCall<[InnerPayment, InnerMethodCall<[uint64], void>], void>({ // name: 'foo', // methodArgs: [ @@ -297,12 +356,12 @@ methodWithTxnArgs: int pay itxn_field TypeEnum - // tests/contracts/general.algo.ts:57 + // tests/contracts/general.algo.ts:78 // amount: 100_000 int 100_000 itxn_field Amount - // tests/contracts/general.algo.ts:57 + // tests/contracts/general.algo.ts:78 // receiver: this.txn.sender txn Sender itxn_field Receiver @@ -316,12 +375,12 @@ methodWithTxnArgs: method "bar(uint64)void" itxn_field ApplicationArgs - // tests/contracts/general.algo.ts:60 + // tests/contracts/general.algo.ts:81 // applicationID: Application.fromID(1337) int 1337 itxn_field ApplicationID - // tests/contracts/general.algo.ts:61 + // tests/contracts/general.algo.ts:82 // methodArgs: [1] byte 0x0000000000000001 itxn_field ApplicationArgs @@ -335,7 +394,7 @@ methodWithTxnArgs: method "foo(pay,appl)void" itxn_field ApplicationArgs - // tests/contracts/general.algo.ts:56 + // tests/contracts/general.algo.ts:77 // methodArgs: [ // { amount: 100_000, receiver: this.txn.sender }, // { @@ -362,7 +421,7 @@ abi_route_shift: shift: proto 0 0 - // tests/contracts/general.algo.ts:68 + // tests/contracts/general.algo.ts:89 // assert(1 << 2 === 4) int 1 int 2 @@ -371,7 +430,7 @@ shift: == assert - // tests/contracts/general.algo.ts:69 + // tests/contracts/general.algo.ts:90 // assert(4 >> 1 === 2) int 4 int 1 @@ -391,7 +450,7 @@ abi_route_fromBytes: fromBytes: proto 0 0 - // tests/contracts/general.algo.ts:73 + // tests/contracts/general.algo.ts:94 // assert(Address.fromBytes('abc').minBalance) byte 0x616263 // "abc" acct_params_get AcctMinBalance @@ -409,14 +468,14 @@ abi_route_fromID: fromID: proto 0 0 - // tests/contracts/general.algo.ts:77 + // tests/contracts/general.algo.ts:98 // log(Application.fromID(123).creator) int 123 app_params_get AppCreator assert log - // tests/contracts/general.algo.ts:78 + // tests/contracts/general.algo.ts:99 // log(Asset.fromID(123).creator) int 123 asset_params_get AssetCreator @@ -436,28 +495,19 @@ abi_route_bzeroFunction: bzeroFunction: proto 4 0 - // tests/contracts/general.algo.ts:82 + // tests/contracts/general.algo.ts:103 // n = 1 - int 1 - frame_bury -1 // n: uint64 - - // tests/contracts/general.algo.ts:83 + // tests/contracts/general.algo.ts:104 // x: bytes = bzero(2) - byte 0x0000 - frame_bury -2 // x: bytes - - // tests/contracts/general.algo.ts:84 + // tests/contracts/general.algo.ts:105 // y: bytes = bzero(n) int 1 // n: uint64 bzero frame_bury -3 // y: bytes - // tests/contracts/general.algo.ts:85 + // tests/contracts/general.algo.ts:106 // z: [uint64, uint<8>] = bzero<[uint64, uint<8>]>() - byte 0x000000000000000000 - frame_bury -4 // z: [uint64,uint8] - - // tests/contracts/general.algo.ts:86 + // tests/contracts/general.algo.ts:107 // assert(len(x + y + z) === 12) byte 0x0000 // x: bytes frame_dig -3 // y: bytes @@ -480,7 +530,7 @@ abi_route_events: events: proto 0 0 - // tests/contracts/general.algo.ts:92 + // tests/contracts/general.algo.ts:113 // this.myEvent.log(this.app, 1) byte 0x87528196 // myEvent(uint64,uint64) txna Applications 0 @@ -505,7 +555,7 @@ abi_route_letOptimization: letOptimization: proto 1 0 - // tests/contracts/general.algo.ts:96 + // tests/contracts/general.algo.ts:117 // assert(a[0]) frame_dig -1 // a: uint64[] store 255 // full array @@ -514,12 +564,12 @@ letOptimization: btoi assert - // tests/contracts/general.algo.ts:98 + // tests/contracts/general.algo.ts:119 // b = [1, 2, 3] byte 0x000000000000000100000000000000020000000000000003 frame_bury -1 // b: uint64[] - // tests/contracts/general.algo.ts:100 + // tests/contracts/general.algo.ts:121 // return b; frame_dig -1 // a: uint64[] dup @@ -546,7 +596,7 @@ abi_route_staticContractProperties: staticContractProperties: proto 0 0 - // tests/contracts/general.algo.ts:104 + // tests/contracts/general.algo.ts:125 // sendAppCall({ // approvalProgram: DummyContract.approvalProgram(), // clearStateProgram: DummyContract.clearProgram(), @@ -559,32 +609,32 @@ staticContractProperties: int appl itxn_field TypeEnum - // tests/contracts/general.algo.ts:105 + // tests/contracts/general.algo.ts:126 // approvalProgram: DummyContract.approvalProgram() byte b64 CTEYgQANgQYLMRkIjQEABACBAUOABLhEezY2GgCOAf/wAA== itxn_field ApprovalProgram - // tests/contracts/general.algo.ts:106 + // tests/contracts/general.algo.ts:127 // clearStateProgram: DummyContract.clearProgram() byte b64 CQ== itxn_field ClearStateProgram - // tests/contracts/general.algo.ts:107 + // tests/contracts/general.algo.ts:128 // localNumByteSlice: DummyContract.schema.local.numByteSlice int 0 itxn_field LocalNumByteSlice - // tests/contracts/general.algo.ts:108 + // tests/contracts/general.algo.ts:129 // localNumUint: DummyContract.schema.local.numUint int 0 itxn_field LocalNumUint - // tests/contracts/general.algo.ts:109 + // tests/contracts/general.algo.ts:130 // globalNumByteSlice: DummyContract.schema.global.numByteSlice int 0 itxn_field GlobalNumByteSlice - // tests/contracts/general.algo.ts:110 + // tests/contracts/general.algo.ts:131 // globalNumUint: DummyContract.schema.global.numUint int 0 itxn_field GlobalNumUint @@ -609,17 +659,11 @@ abi_route_numberToString: numberToString: proto 2 0 - // tests/contracts/general.algo.ts:115 + // tests/contracts/general.algo.ts:136 // n = 1 - int 1 - frame_bury -1 // n: uint64 - - // tests/contracts/general.algo.ts:116 + // tests/contracts/general.algo.ts:137 // s = '1' - byte 0x31 // "1" - frame_bury -2 // s: bytes - - // tests/contracts/general.algo.ts:117 + // tests/contracts/general.algo.ts:138 // assert(n.toString() === s) int 1 // n: uint64 callsub itoa @@ -638,7 +682,7 @@ abi_route_methodOnParens: methodOnParens: proto 0 0 - // tests/contracts/general.algo.ts:121 + // tests/contracts/general.algo.ts:142 // assert((1 + 2).toString() === '3') int 3 callsub itoa @@ -659,12 +703,9 @@ abi_route_stringSubstring: stringSubstring: proto 1 0 - // tests/contracts/general.algo.ts:125 + // tests/contracts/general.algo.ts:146 // s = 'abcdef' - byte 0x616263646566 // "abcdef" - frame_bury -1 // s: bytes - - // tests/contracts/general.algo.ts:126 + // tests/contracts/general.algo.ts:147 // assert(s.substring(1, 3) === 'bc') byte 0x6263 byte 0x6263 // "bc" @@ -684,24 +725,18 @@ abi_route_idProperty: idProperty: proto 2 0 - // tests/contracts/general.algo.ts:130 + // tests/contracts/general.algo.ts:151 // app = Application.zeroIndex - int 0 - frame_bury -1 // app: application - - // tests/contracts/general.algo.ts:131 + // tests/contracts/general.algo.ts:152 // assert(Application.fromID(app.id) === app) int 0 // app: application int 0 // app: application == assert - // tests/contracts/general.algo.ts:133 + // tests/contracts/general.algo.ts:154 // asa = Asset.zeroIndex - int 0 - frame_bury -2 // asa: asset - - // tests/contracts/general.algo.ts:134 + // tests/contracts/general.algo.ts:155 // assert(Asset.fromID(asa.id) === asa) int 0 // asa: asset int 0 // asa: asset @@ -719,12 +754,12 @@ abi_route_scratchSlot: scratchSlot: proto 0 0 - // tests/contracts/general.algo.ts:138 + // tests/contracts/general.algo.ts:159 // this.scratch.value = 1337 int 1337 store 0 - // tests/contracts/general.algo.ts:139 + // tests/contracts/general.algo.ts:160 // assert(this.scratch.value === 1337) load 0 int 1337 @@ -743,6 +778,8 @@ create_NoOp: err call_NoOp: + method "callAddNumber()void" + method "callInlineFunc()void" method "txnTypeEnum()void" method "txnGroupLength()void" method "asserts(bool,bool)void" @@ -766,7 +803,7 @@ call_NoOp: method "idProperty()void" method "scratchSlot()void" txna ApplicationArgs 0 - match abi_route_txnTypeEnum abi_route_txnGroupLength abi_route_asserts abi_route_verifyTxnFromArg abi_route_verifyTxnFromTxnGroup abi_route_verifyTxnCondition abi_route_verifyTxnIncludedIn abi_route_verifyTxnNotIncludedIn abi_route_submitPendingGroup abi_route_methodWithTxnArgs abi_route_shift abi_route_fromBytes abi_route_fromID abi_route_bzeroFunction abi_route_events abi_route_letOptimization abi_route_staticContractProperties abi_route_numberToString abi_route_methodOnParens abi_route_stringSubstring abi_route_idProperty abi_route_scratchSlot + match abi_route_callAddNumber abi_route_callInlineFunc abi_route_txnTypeEnum abi_route_txnGroupLength abi_route_asserts abi_route_verifyTxnFromArg abi_route_verifyTxnFromTxnGroup abi_route_verifyTxnCondition abi_route_verifyTxnIncludedIn abi_route_verifyTxnNotIncludedIn abi_route_submitPendingGroup abi_route_methodWithTxnArgs abi_route_shift abi_route_fromBytes abi_route_fromID abi_route_bzeroFunction abi_route_events abi_route_letOptimization abi_route_staticContractProperties abi_route_numberToString abi_route_methodOnParens abi_route_stringSubstring abi_route_idProperty abi_route_scratchSlot err intToAscii: diff --git a/tests/contracts/artifacts/GeneralTest.json b/tests/contracts/artifacts/GeneralTest.json index aa5c00a52..bec6196c0 100644 --- a/tests/contracts/artifacts/GeneralTest.json +++ b/tests/contracts/artifacts/GeneralTest.json @@ -1,5 +1,15 @@ { "hints": { + "callAddNumber()void": { + "call_config": { + "no_op": "CALL" + } + }, + "callInlineFunc()void": { + "call_config": { + "no_op": "CALL" + } + }, "txnTypeEnum()void": { "call_config": { "no_op": "CALL" @@ -144,13 +154,31 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHR4blR5cGVFbnVtKCl2b2lkCmFiaV9yb3V0ZV90eG5UeXBlRW51bToKCS8vIGV4ZWN1dGUgdHhuVHlwZUVudW0oKXZvaWQKCWNhbGxzdWIgdHhuVHlwZUVudW0KCWludCAxCglyZXR1cm4KCnR4blR5cGVFbnVtOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMAoJLy8gYXNzZXJ0KHRoaXMudHhuR3JvdXBbMF0udHlwZUVudW0gPT09IFRyYW5zYWN0aW9uVHlwZS5BcHBsaWNhdGlvbkNhbGwpCglpbnQgMAoJZ3R4bnMgVHlwZUVudW0KCWludCBhcHBsCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHR4bkdyb3VwTGVuZ3RoKCl2b2lkCmFiaV9yb3V0ZV90eG5Hcm91cExlbmd0aDoKCS8vIGV4ZWN1dGUgdHhuR3JvdXBMZW5ndGgoKXZvaWQKCWNhbGxzdWIgdHhuR3JvdXBMZW5ndGgKCWludCAxCglyZXR1cm4KCnR4bkdyb3VwTGVuZ3RoOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNAoJLy8gYXNzZXJ0KHRoaXMudHhuR3JvdXAubGVuZ3RoID09PSAxKQoJZ2xvYmFsIEdyb3VwU2l6ZQoJaW50IDEKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gYXNzZXJ0cyhib29sLGJvb2wpdm9pZAphYmlfcm91dGVfYXNzZXJ0czoKCS8vIGFyZzI6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgYXNzZXJ0cyhib29sLGJvb2wpdm9pZAoJY2FsbHN1YiBhc3NlcnRzCglpbnQgMQoJcmV0dXJuCgphc3NlcnRzOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxOAoJLy8gYXNzZXJ0KGFyZzEsIGFyZzIsIGFyZzEgPT09IGFyZzIpCglmcmFtZV9kaWcgLTEgLy8gYXJnMTogYm9vbAoJYXNzZXJ0CglmcmFtZV9kaWcgLTIgLy8gYXJnMjogYm9vbAoJYXNzZXJ0CglmcmFtZV9kaWcgLTEgLy8gYXJnMTogYm9vbAoJZnJhbWVfZGlnIC0yIC8vIGFyZzI6IGJvb2wKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gdmVyaWZ5VHhuRnJvbUFyZyhwYXkpdm9pZAphYmlfcm91dGVfdmVyaWZ5VHhuRnJvbUFyZzoKCS8vIHNvbWVQYXk6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB2ZXJpZnlUeG5Gcm9tQXJnKHBheSl2b2lkCgljYWxsc3ViIHZlcmlmeVR4bkZyb21BcmcKCWludCAxCglyZXR1cm4KCnZlcmlmeVR4bkZyb21Bcmc6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIyCgkvLyB2ZXJpZnlUeG4oc29tZVBheSwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiAxMDBfMDAwIH0pCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzb21lUGF5OiBwYXkKCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzb21lUGF5OiBwYXkKCWd0eG5zIEFtb3VudAoJaW50IDEwMF8wMDAKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gdmVyaWZ5VHhuRnJvbVR4bkdyb3VwKCl2b2lkCmFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tVHhuR3JvdXA6CgkvLyBleGVjdXRlIHZlcmlmeVR4bkZyb21UeG5Hcm91cCgpdm9pZAoJY2FsbHN1YiB2ZXJpZnlUeG5Gcm9tVHhuR3JvdXAKCWludCAxCglyZXR1cm4KCnZlcmlmeVR4bkZyb21UeG5Hcm91cDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjYKCS8vIHZlcmlmeVR4bih0aGlzLnR4bkdyb3VwWzBdLCB7IHNlbmRlcjogdGhpcy50eG4uc2VuZGVyIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglpbnQgMAoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bkNvbmRpdGlvbigpdm9pZAphYmlfcm91dGVfdmVyaWZ5VHhuQ29uZGl0aW9uOgoJLy8gZXhlY3V0ZSB2ZXJpZnlUeG5Db25kaXRpb24oKXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuQ29uZGl0aW9uCglpbnQgMQoJcmV0dXJuCgp2ZXJpZnlUeG5Db25kaXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjMwCgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IGFwcGxpY2F0aW9uSUQKCXR4biBBcHBsaWNhdGlvbklECglpbnQgMQoJPgoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bkluY2x1ZGVkSW4oKXZvaWQKYWJpX3JvdXRlX3ZlcmlmeVR4bkluY2x1ZGVkSW46CgkvLyBleGVjdXRlIHZlcmlmeVR4bkluY2x1ZGVkSW4oKXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuSW5jbHVkZWRJbgoJaW50IDEKCXJldHVybgoKdmVyaWZ5VHhuSW5jbHVkZWRJbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MzYKCS8vIHZlcmlmeVR4bih0aGlzLnR4biwgewoJLy8gICAgICAgc2VuZGVyOiB7IGluY2x1ZGVkSW46IFt0aGlzLnR4bi5zZW5kZXJdIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCXR4biBTZW5kZXIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gdmVyaWZ5VHhuTm90SW5jbHVkZWRJbigpdm9pZAphYmlfcm91dGVfdmVyaWZ5VHhuTm90SW5jbHVkZWRJbjoKCS8vIGV4ZWN1dGUgdmVyaWZ5VHhuTm90SW5jbHVkZWRJbigpdm9pZAoJY2FsbHN1YiB2ZXJpZnlUeG5Ob3RJbmNsdWRlZEluCglpbnQgMQoJcmV0dXJuCgp2ZXJpZnlUeG5Ob3RJbmNsdWRlZEluOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0MgoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuLCB7CgkvLyAgICAgICBzZW5kZXI6IHsgbm90SW5jbHVkZWRJbjogW2dsb2JhbHMuemVyb0FkZHJlc3NdIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWFzc2VydAoJcmV0c3ViCgovLyBzdWJtaXRQZW5kaW5nR3JvdXAoKXZvaWQKYWJpX3JvdXRlX3N1Ym1pdFBlbmRpbmdHcm91cDoKCS8vIGV4ZWN1dGUgc3VibWl0UGVuZGluZ0dyb3VwKCl2b2lkCgljYWxsc3ViIHN1Ym1pdFBlbmRpbmdHcm91cAoJaW50IDEKCXJldHVybgoKc3VibWl0UGVuZGluZ0dyb3VwOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo0OAoJLy8gdGhpcy5wZW5kaW5nR3JvdXAuYWRkUGF5bWVudCh7IGFtb3VudDogMTAwXzAwMCwgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MgfSkKCWl0eG5fYmVnaW4KCWludCBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQ4CgkvLyBhbW91bnQ6IDEwMF8wMDAKCWludCAxMDBfMDAwCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDgKCS8vIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDkKCS8vIHRoaXMucGVuZGluZ0dyb3VwLmFkZEFzc2V0Q3JlYXRpb24oeyBjb25maWdBc3NldFRvdGFsOiAxIH0pCglpdHhuX2JlZ2luCglpbnQgYWNmZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDkKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IDEKCWludCAxCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUwCgkvLyB0aGlzLnBlbmRpbmdHcm91cC5zdWJtaXQoKQoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gbWV0aG9kV2l0aFR4bkFyZ3MoKXZvaWQKYWJpX3JvdXRlX21ldGhvZFdpdGhUeG5BcmdzOgoJLy8gZXhlY3V0ZSBtZXRob2RXaXRoVHhuQXJncygpdm9pZAoJY2FsbHN1YiBtZXRob2RXaXRoVHhuQXJncwoJaW50IDEKCXJldHVybgoKbWV0aG9kV2l0aFR4bkFyZ3M6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjU0CgkvLyBzZW5kTWV0aG9kQ2FsbDxbSW5uZXJQYXltZW50LCBJbm5lck1ldGhvZENhbGw8W3VpbnQ2NF0sIHZvaWQ+XSwgdm9pZD4oewoJLy8gICAgICAgbmFtZTogJ2ZvbycsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIHsgYW1vdW50OiAxMDBfMDAwLCByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyIH0sCgkvLyAgICAgICAgIHsKCS8vICAgICAgICAgICBuYW1lOiAnYmFyJywKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBsaWNhdGlvbi5mcm9tSUQoMTMzNyksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogWzFdLAoJLy8gICAgICAgICB9LAoJLy8gICAgICAgXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTcKCS8vIGFtb3VudDogMTAwXzAwMAoJaW50IDEwMF8wMDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo1NwoJLy8gcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiYmFyKHVpbnQ2NCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjYwCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBsaWNhdGlvbi5mcm9tSUQoMTMzNykKCWludCAxMzM3CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjYxCgkvLyBtZXRob2RBcmdzOiBbMV0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiZm9vKHBheSxhcHBsKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTYKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgeyBhbW91bnQ6IDEwMF8wMDAsIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIgfSwKCS8vICAgICAgICAgewoJLy8gICAgICAgICAgIG5hbWU6ICdiYXInLAoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcGxpY2F0aW9uLmZyb21JRCgxMzM3KSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbMV0sCgkvLyAgICAgICAgIH0sCgkvLyAgICAgICBdCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIHNoaWZ0KCl2b2lkCmFiaV9yb3V0ZV9zaGlmdDoKCS8vIGV4ZWN1dGUgc2hpZnQoKXZvaWQKCWNhbGxzdWIgc2hpZnQKCWludCAxCglyZXR1cm4KCnNoaWZ0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo2OAoJLy8gYXNzZXJ0KDEgPDwgMiA9PT0gNCkKCWludCAxCglpbnQgMgoJc2hsCglpbnQgNAoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NjkKCS8vIGFzc2VydCg0ID4+IDEgPT09IDIpCglpbnQgNAoJaW50IDEKCXNocgoJaW50IDIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gZnJvbUJ5dGVzKCl2b2lkCmFiaV9yb3V0ZV9mcm9tQnl0ZXM6CgkvLyBleGVjdXRlIGZyb21CeXRlcygpdm9pZAoJY2FsbHN1YiBmcm9tQnl0ZXMKCWludCAxCglyZXR1cm4KCmZyb21CeXRlczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NzMKCS8vIGFzc2VydChBZGRyZXNzLmZyb21CeXRlcygnYWJjJykubWluQmFsYW5jZSkKCWJ5dGUgMHg2MTYyNjMgLy8gImFiYyIKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJYXNzZXJ0Cglhc3NlcnQKCXJldHN1YgoKLy8gZnJvbUlEKCl2b2lkCmFiaV9yb3V0ZV9mcm9tSUQ6CgkvLyBleGVjdXRlIGZyb21JRCgpdm9pZAoJY2FsbHN1YiBmcm9tSUQKCWludCAxCglyZXR1cm4KCmZyb21JRDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NzcKCS8vIGxvZyhBcHBsaWNhdGlvbi5mcm9tSUQoMTIzKS5jcmVhdG9yKQoJaW50IDEyMwoJYXBwX3BhcmFtc19nZXQgQXBwQ3JlYXRvcgoJYXNzZXJ0Cglsb2cKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjc4CgkvLyBsb2coQXNzZXQuZnJvbUlEKDEyMykuY3JlYXRvcikKCWludCAxMjMKCWFzc2V0X3BhcmFtc19nZXQgQXNzZXRDcmVhdG9yCglhc3NlcnQKCWxvZwoJcmV0c3ViCgovLyBiemVyb0Z1bmN0aW9uKCl2b2lkCmFiaV9yb3V0ZV9iemVyb0Z1bmN0aW9uOgoJYnl0ZSAweDsgZHVwbiAzIC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgYnplcm9GdW5jdGlvbigpdm9pZAoJY2FsbHN1YiBiemVyb0Z1bmN0aW9uCglpbnQgMQoJcmV0dXJuCgpiemVyb0Z1bmN0aW9uOgoJcHJvdG8gNCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo4MgoJLy8gbiA9IDEKCWludCAxCglmcmFtZV9idXJ5IC0xIC8vIG46IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6ODMKCS8vIHg6IGJ5dGVzID0gYnplcm8oMikKCWJ5dGUgMHgwMDAwCglmcmFtZV9idXJ5IC0yIC8vIHg6IGJ5dGVzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo4NAoJLy8geTogYnl0ZXMgPSBiemVybyhuKQoJaW50IDEgLy8gbjogdWludDY0CgliemVybwoJZnJhbWVfYnVyeSAtMyAvLyB5OiBieXRlcwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6ODUKCS8vIHo6IFt1aW50NjQsIHVpbnQ8OD5dID0gYnplcm88W3VpbnQ2NCwgdWludDw4Pl0+KCkKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAKCWZyYW1lX2J1cnkgLTQgLy8gejogW3VpbnQ2NCx1aW50OF0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjg2CgkvLyBhc3NlcnQobGVuKHggKyB5ICsgeikgPT09IDEyKQoJYnl0ZSAweDAwMDAgLy8geDogYnl0ZXMKCWZyYW1lX2RpZyAtMyAvLyB5OiBieXRlcwoJY29uY2F0CglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMDAwIC8vIHo6IFt1aW50NjQsdWludDhdCgljb25jYXQKCWxlbgoJaW50IDEyCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIGV2ZW50cygpdm9pZAphYmlfcm91dGVfZXZlbnRzOgoJLy8gZXhlY3V0ZSBldmVudHMoKXZvaWQKCWNhbGxzdWIgZXZlbnRzCglpbnQgMQoJcmV0dXJuCgpldmVudHM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjkyCgkvLyB0aGlzLm15RXZlbnQubG9nKHRoaXMuYXBwLCAxKQoJYnl0ZSAweDg3NTI4MTk2IC8vIG15RXZlbnQodWludDY0LHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCgljb25jYXQKCWNvbmNhdAoJbG9nCglyZXRzdWIKCi8vIGxldE9wdGltaXphdGlvbih1aW50NjRbXSl1aW50NjRbXQphYmlfcm91dGVfbGV0T3B0aW1pemF0aW9uOgoJLy8gYTogdWludDY0W10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBsZXRPcHRpbWl6YXRpb24odWludDY0W10pdWludDY0W10KCWNhbGxzdWIgbGV0T3B0aW1pemF0aW9uCglpbnQgMQoJcmV0dXJuCgpsZXRPcHRpbWl6YXRpb246Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjk2CgkvLyBhc3NlcnQoYVswXSkKCWZyYW1lX2RpZyAtMSAvLyBhOiB1aW50NjRbXQoJc3RvcmUgMjU1IC8vIGZ1bGwgYXJyYXkKCWxvYWQgMjU1IC8vIGZ1bGwgYXJyYXkKCWV4dHJhY3QgMCA4CglidG9pCglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjk4CgkvLyBiID0gWzEsIDIsIDNdCglieXRlIDB4MDAwMDAwMDAwMDAwMDAwMTAwMDAwMDAwMDAwMDAwMDIwMDAwMDAwMDAwMDAwMDAzCglmcmFtZV9idXJ5IC0xIC8vIGI6IHVpbnQ2NFtdCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDAKCS8vIHJldHVybiBiOwoJZnJhbWVfZGlnIC0xIC8vIGE6IHVpbnQ2NFtdCglkdXAKCWxlbgoJaW50IDgKCS8KCWl0b2IKCWV4dHJhY3QgNiAyCglzd2FwCgljb25jYXQKCWJ5dGUgMHgxNTFmN2M3NQoJc3dhcAoJY29uY2F0Cglsb2cKCXJldHN1YgoKLy8gc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzKCl2b2lkCmFiaV9yb3V0ZV9zdGF0aWNDb250cmFjdFByb3BlcnRpZXM6CgkvLyBleGVjdXRlIHN0YXRpY0NvbnRyYWN0UHJvcGVydGllcygpdm9pZAoJY2FsbHN1YiBzdGF0aWNDb250cmFjdFByb3BlcnRpZXMKCWludCAxCglyZXR1cm4KCnN0YXRpY0NvbnRyYWN0UHJvcGVydGllczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTA0CgkvLyBzZW5kQXBwQ2FsbCh7CgkvLyAgICAgICBhcHByb3ZhbFByb2dyYW06IER1bW15Q29udHJhY3QuYXBwcm92YWxQcm9ncmFtKCksCgkvLyAgICAgICBjbGVhclN0YXRlUHJvZ3JhbTogRHVtbXlDb250cmFjdC5jbGVhclByb2dyYW0oKSwKCS8vICAgICAgIGxvY2FsTnVtQnl0ZVNsaWNlOiBEdW1teUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1CeXRlU2xpY2UsCgkvLyAgICAgICBsb2NhbE51bVVpbnQ6IER1bW15Q29udHJhY3Quc2NoZW1hLmxvY2FsLm51bVVpbnQsCgkvLyAgICAgICBnbG9iYWxOdW1CeXRlU2xpY2U6IER1bW15Q29udHJhY3Quc2NoZW1hLmdsb2JhbC5udW1CeXRlU2xpY2UsCgkvLyAgICAgICBnbG9iYWxOdW1VaW50OiBEdW1teUNvbnRyYWN0LnNjaGVtYS5nbG9iYWwubnVtVWludCwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEwNQoJLy8gYXBwcm92YWxQcm9ncmFtOiBEdW1teUNvbnRyYWN0LmFwcHJvdmFsUHJvZ3JhbSgpCglieXRlIGI2NCBDVEVZZ1FBTmdRWUxNUmtJalFFQUJBQ0JBVU9BQkxoRWV6WTJHZ0NPQWYvd0FBPT0KCWl0eG5fZmllbGQgQXBwcm92YWxQcm9ncmFtCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDYKCS8vIGNsZWFyU3RhdGVQcm9ncmFtOiBEdW1teUNvbnRyYWN0LmNsZWFyUHJvZ3JhbSgpCglieXRlIGI2NCBDUT09CglpdHhuX2ZpZWxkIENsZWFyU3RhdGVQcm9ncmFtCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDcKCS8vIGxvY2FsTnVtQnl0ZVNsaWNlOiBEdW1teUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1CeXRlU2xpY2UKCWludCAwCglpdHhuX2ZpZWxkIExvY2FsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDgKCS8vIGxvY2FsTnVtVWludDogRHVtbXlDb250cmFjdC5zY2hlbWEubG9jYWwubnVtVWludAoJaW50IDAKCWl0eG5fZmllbGQgTG9jYWxOdW1VaW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDkKCS8vIGdsb2JhbE51bUJ5dGVTbGljZTogRHVtbXlDb250cmFjdC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZQoJaW50IDAKCWl0eG5fZmllbGQgR2xvYmFsTnVtQnl0ZVNsaWNlCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMTAKCS8vIGdsb2JhbE51bVVpbnQ6IER1bW15Q29udHJhY3Quc2NoZW1hLmdsb2JhbC5udW1VaW50CglpbnQgMAoJaXR4bl9maWVsZCBHbG9iYWxOdW1VaW50CgoJLy8gRmVlIGZpZWxkIG5vdCBzZXQsIGRlZmF1bHRpbmcgdG8gMAoJaW50IDAKCWl0eG5fZmllbGQgRmVlCgoJLy8gU3VibWl0IGlubmVyIHRyYW5zYWN0aW9uCglpdHhuX3N1Ym1pdAoJcmV0c3ViCgovLyBudW1iZXJUb1N0cmluZygpdm9pZAphYmlfcm91dGVfbnVtYmVyVG9TdHJpbmc6CglieXRlIDB4OyBkdXAgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBudW1iZXJUb1N0cmluZygpdm9pZAoJY2FsbHN1YiBudW1iZXJUb1N0cmluZwoJaW50IDEKCXJldHVybgoKbnVtYmVyVG9TdHJpbmc6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjExNQoJLy8gbiA9IDEKCWludCAxCglmcmFtZV9idXJ5IC0xIC8vIG46IHVpbnQ2NAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTE2CgkvLyBzID0gJzEnCglieXRlIDB4MzEgLy8gIjEiCglmcmFtZV9idXJ5IC0yIC8vIHM6IGJ5dGVzCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMTcKCS8vIGFzc2VydChuLnRvU3RyaW5nKCkgPT09IHMpCglpbnQgMSAvLyBuOiB1aW50NjQKCWNhbGxzdWIgaXRvYQoJYnl0ZSAweDMxIC8vICIxIiAvLyBzOiBieXRlcwoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBtZXRob2RPblBhcmVucygpdm9pZAphYmlfcm91dGVfbWV0aG9kT25QYXJlbnM6CgkvLyBleGVjdXRlIG1ldGhvZE9uUGFyZW5zKCl2b2lkCgljYWxsc3ViIG1ldGhvZE9uUGFyZW5zCglpbnQgMQoJcmV0dXJuCgptZXRob2RPblBhcmVuczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTIxCgkvLyBhc3NlcnQoKDEgKyAyKS50b1N0cmluZygpID09PSAnMycpCglpbnQgMwoJY2FsbHN1YiBpdG9hCglieXRlIDB4MzMgLy8gIjMiCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHN0cmluZ1N1YnN0cmluZygpdm9pZAphYmlfcm91dGVfc3RyaW5nU3Vic3RyaW5nOgoJYnl0ZSAweCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIHN0cmluZ1N1YnN0cmluZygpdm9pZAoJY2FsbHN1YiBzdHJpbmdTdWJzdHJpbmcKCWludCAxCglyZXR1cm4KCnN0cmluZ1N1YnN0cmluZzoKCXByb3RvIDEgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTI1CgkvLyBzID0gJ2FiY2RlZicKCWJ5dGUgMHg2MTYyNjM2NDY1NjYgLy8gImFiY2RlZiIKCWZyYW1lX2J1cnkgLTEgLy8gczogYnl0ZXMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEyNgoJLy8gYXNzZXJ0KHMuc3Vic3RyaW5nKDEsIDMpID09PSAnYmMnKQoJYnl0ZSAweDYyNjMKCWJ5dGUgMHg2MjYzIC8vICJiYyIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gaWRQcm9wZXJ0eSgpdm9pZAphYmlfcm91dGVfaWRQcm9wZXJ0eToKCWJ5dGUgMHg7IGR1cCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIGlkUHJvcGVydHkoKXZvaWQKCWNhbGxzdWIgaWRQcm9wZXJ0eQoJaW50IDEKCXJldHVybgoKaWRQcm9wZXJ0eToKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTMwCgkvLyBhcHAgPSBBcHBsaWNhdGlvbi56ZXJvSW5kZXgKCWludCAwCglmcmFtZV9idXJ5IC0xIC8vIGFwcDogYXBwbGljYXRpb24KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEzMQoJLy8gYXNzZXJ0KEFwcGxpY2F0aW9uLmZyb21JRChhcHAuaWQpID09PSBhcHApCglpbnQgMCAvLyBhcHA6IGFwcGxpY2F0aW9uCglpbnQgMCAvLyBhcHA6IGFwcGxpY2F0aW9uCgk9PQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMzMKCS8vIGFzYSA9IEFzc2V0Lnplcm9JbmRleAoJaW50IDAKCWZyYW1lX2J1cnkgLTIgLy8gYXNhOiBhc3NldAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTM0CgkvLyBhc3NlcnQoQXNzZXQuZnJvbUlEKGFzYS5pZCkgPT09IGFzYSkKCWludCAwIC8vIGFzYTogYXNzZXQKCWludCAwIC8vIGFzYTogYXNzZXQKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gc2NyYXRjaFNsb3QoKXZvaWQKYWJpX3JvdXRlX3NjcmF0Y2hTbG90OgoJLy8gZXhlY3V0ZSBzY3JhdGNoU2xvdCgpdm9pZAoJY2FsbHN1YiBzY3JhdGNoU2xvdAoJaW50IDEKCXJldHVybgoKc2NyYXRjaFNsb3Q6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEzOAoJLy8gdGhpcy5zY3JhdGNoLnZhbHVlID0gMTMzNwoJaW50IDEzMzcKCXN0b3JlIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEzOQoJLy8gYXNzZXJ0KHRoaXMuc2NyYXRjaC52YWx1ZSA9PT0gMTMzNykKCWxvYWQgMAoJaW50IDEzMzcKCT09Cglhc3NlcnQKCXJldHN1YgoKYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50IDEKCXJldHVybgoKY3JlYXRlX05vT3A6CgltZXRob2QgImNyZWF0ZUFwcGxpY2F0aW9uKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uCgllcnIKCmNhbGxfTm9PcDoKCW1ldGhvZCAidHhuVHlwZUVudW0oKXZvaWQiCgltZXRob2QgInR4bkdyb3VwTGVuZ3RoKCl2b2lkIgoJbWV0aG9kICJhc3NlcnRzKGJvb2wsYm9vbCl2b2lkIgoJbWV0aG9kICJ2ZXJpZnlUeG5Gcm9tQXJnKHBheSl2b2lkIgoJbWV0aG9kICJ2ZXJpZnlUeG5Gcm9tVHhuR3JvdXAoKXZvaWQiCgltZXRob2QgInZlcmlmeVR4bkNvbmRpdGlvbigpdm9pZCIKCW1ldGhvZCAidmVyaWZ5VHhuSW5jbHVkZWRJbigpdm9pZCIKCW1ldGhvZCAidmVyaWZ5VHhuTm90SW5jbHVkZWRJbigpdm9pZCIKCW1ldGhvZCAic3VibWl0UGVuZGluZ0dyb3VwKCl2b2lkIgoJbWV0aG9kICJtZXRob2RXaXRoVHhuQXJncygpdm9pZCIKCW1ldGhvZCAic2hpZnQoKXZvaWQiCgltZXRob2QgImZyb21CeXRlcygpdm9pZCIKCW1ldGhvZCAiZnJvbUlEKCl2b2lkIgoJbWV0aG9kICJiemVyb0Z1bmN0aW9uKCl2b2lkIgoJbWV0aG9kICJldmVudHMoKXZvaWQiCgltZXRob2QgImxldE9wdGltaXphdGlvbih1aW50NjRbXSl1aW50NjRbXSIKCW1ldGhvZCAic3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzKCl2b2lkIgoJbWV0aG9kICJudW1iZXJUb1N0cmluZygpdm9pZCIKCW1ldGhvZCAibWV0aG9kT25QYXJlbnMoKXZvaWQiCgltZXRob2QgInN0cmluZ1N1YnN0cmluZygpdm9pZCIKCW1ldGhvZCAiaWRQcm9wZXJ0eSgpdm9pZCIKCW1ldGhvZCAic2NyYXRjaFNsb3QoKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfdHhuVHlwZUVudW0gYWJpX3JvdXRlX3R4bkdyb3VwTGVuZ3RoIGFiaV9yb3V0ZV9hc3NlcnRzIGFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tQXJnIGFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tVHhuR3JvdXAgYWJpX3JvdXRlX3ZlcmlmeVR4bkNvbmRpdGlvbiBhYmlfcm91dGVfdmVyaWZ5VHhuSW5jbHVkZWRJbiBhYmlfcm91dGVfdmVyaWZ5VHhuTm90SW5jbHVkZWRJbiBhYmlfcm91dGVfc3VibWl0UGVuZGluZ0dyb3VwIGFiaV9yb3V0ZV9tZXRob2RXaXRoVHhuQXJncyBhYmlfcm91dGVfc2hpZnQgYWJpX3JvdXRlX2Zyb21CeXRlcyBhYmlfcm91dGVfZnJvbUlEIGFiaV9yb3V0ZV9iemVyb0Z1bmN0aW9uIGFiaV9yb3V0ZV9ldmVudHMgYWJpX3JvdXRlX2xldE9wdGltaXphdGlvbiBhYmlfcm91dGVfc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzIGFiaV9yb3V0ZV9udW1iZXJUb1N0cmluZyBhYmlfcm91dGVfbWV0aG9kT25QYXJlbnMgYWJpX3JvdXRlX3N0cmluZ1N1YnN0cmluZyBhYmlfcm91dGVfaWRQcm9wZXJ0eSBhYmlfcm91dGVfc2NyYXRjaFNsb3QKCWVycgoKaW50VG9Bc2NpaToKCXByb3RvIDEgMQoJYnl0ZSAweDMwMzEzMjMzMzQzNTM2MzczODM5IC8vICIwMTIzNDU2Nzg5IgoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDEKCWV4dHJhY3QzCglyZXRzdWIKCQoKaXRvYToKCXByb3RvIDEgMQoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDAKCT09CglieiBpdG9hX2lmX2VuZAoJYnl0ZSAweDE1MWY3Yzc1MDAwMTMwCglsb2cKCXJldHN1YgoKaXRvYV9pZl9lbmQ6CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnQgMTAKCS8KCWludCAwCgk+CglieiBpdG9hX3Rlcm5hcnlfZmFsc2UKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCWludCAxMAoJLwoJY2FsbHN1YiBpdG9hCgliIGl0b2FfdGVybmFyeV9lbmQKCml0b2FfdGVybmFyeV9mYWxzZToKCWJ5dGUgMHggLy8gIiIKCml0b2FfdGVybmFyeV9lbmQ6CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnQgMTAKCSUKCWNhbGxzdWIgaW50VG9Bc2NpaQoJY29uY2F0CglyZXRzdWI=", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIGNhbGxBZGROdW1iZXIoKXZvaWQKYWJpX3JvdXRlX2NhbGxBZGROdW1iZXI6CglieXRlIDB4OyBkdXAgLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBjYWxsQWRkTnVtYmVyKCl2b2lkCgljYWxsc3ViIGNhbGxBZGROdW1iZXIKCWludCAxCglyZXR1cm4KCmNhbGxBZGROdW1iZXI6Cglwcm90byAyIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjIwCgkvLyBudW1zOiBudW1iZXJbXSA9IFsxLCAyLCAzXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDEwMDAwMDAwMDAwMDAwMDAyMDAwMDAwMDAwMDAwMDAwMwoJZnJhbWVfYnVyeSAtMSAvLyBudW1zOiB1aW50NjRbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjEKCS8vIHRoaXMuYWRkTnVtYmVyKG51bXMsIDQpCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE2CgkvLyBudW1iZXJzLnB1c2gobikKCWZyYW1lX2RpZyAtMSAvLyBudW1zOiB1aW50NjRbXQoJYnl0ZSAweDAwMDAwMDAwMDAwMDAwMDQKCWNvbmNhdAoJZnJhbWVfYnVyeSAtMSAvLyBudW1iZXJzOiB1aW50NjRbXQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjIKCS8vIGFzc2VydChudW1zLmxlbmd0aCA9PT0gNCkKCWZyYW1lX2RpZyAtMSAvLyBudW1zOiB1aW50NjRbXQoJbGVuCglpbnQgOAoJLwoJaW50IDQKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gY2FsbElubGluZUZ1bmMoKXZvaWQKYWJpX3JvdXRlX2NhbGxJbmxpbmVGdW5jOgoJYnl0ZSAweDsgZHVwbiA0IC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgY2FsbElubGluZUZ1bmMoKXZvaWQKCWNhbGxzdWIgY2FsbElubGluZUZ1bmMKCWludCAxCglyZXR1cm4KCmNhbGxJbmxpbmVGdW5jOgoJcHJvdG8gNSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoyNgoJLy8geCA9IDEKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MjcKCS8vIGFzc2VydCh0aGlzLmlubGluZUZ1bmMoeCwgMiArIDMpID09PSA2KQoJaW50IDYKCWludCA2Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHR4blR5cGVFbnVtKCl2b2lkCmFiaV9yb3V0ZV90eG5UeXBlRW51bToKCS8vIGV4ZWN1dGUgdHhuVHlwZUVudW0oKXZvaWQKCWNhbGxzdWIgdHhuVHlwZUVudW0KCWludCAxCglyZXR1cm4KCnR4blR5cGVFbnVtOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozMQoJLy8gYXNzZXJ0KHRoaXMudHhuR3JvdXBbMF0udHlwZUVudW0gPT09IFRyYW5zYWN0aW9uVHlwZS5BcHBsaWNhdGlvbkNhbGwpCglpbnQgMAoJZ3R4bnMgVHlwZUVudW0KCWludCBhcHBsCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHR4bkdyb3VwTGVuZ3RoKCl2b2lkCmFiaV9yb3V0ZV90eG5Hcm91cExlbmd0aDoKCS8vIGV4ZWN1dGUgdHhuR3JvdXBMZW5ndGgoKXZvaWQKCWNhbGxzdWIgdHhuR3JvdXBMZW5ndGgKCWludCAxCglyZXR1cm4KCnR4bkdyb3VwTGVuZ3RoOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozNQoJLy8gYXNzZXJ0KHRoaXMudHhuR3JvdXAubGVuZ3RoID09PSAxKQoJZ2xvYmFsIEdyb3VwU2l6ZQoJaW50IDEKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gYXNzZXJ0cyhib29sLGJvb2wpdm9pZAphYmlfcm91dGVfYXNzZXJ0czoKCS8vIGFyZzI6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDIKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGFyZzE6IGJvb2wKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWR1cAoJbGVuCglpbnQgMQoJPT0KCWFzc2VydAoJaW50IDAKCWdldGJpdAoKCS8vIGV4ZWN1dGUgYXNzZXJ0cyhib29sLGJvb2wpdm9pZAoJY2FsbHN1YiBhc3NlcnRzCglpbnQgMQoJcmV0dXJuCgphc3NlcnRzOgoJcHJvdG8gMiAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czozOQoJLy8gYXNzZXJ0KGFyZzEsIGFyZzIsIGFyZzEgPT09IGFyZzIpCglmcmFtZV9kaWcgLTEgLy8gYXJnMTogYm9vbAoJYXNzZXJ0CglmcmFtZV9kaWcgLTIgLy8gYXJnMjogYm9vbAoJYXNzZXJ0CglmcmFtZV9kaWcgLTEgLy8gYXJnMTogYm9vbAoJZnJhbWVfZGlnIC0yIC8vIGFyZzI6IGJvb2wKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gdmVyaWZ5VHhuRnJvbUFyZyhwYXkpdm9pZAphYmlfcm91dGVfdmVyaWZ5VHhuRnJvbUFyZzoKCS8vIHNvbWVQYXk6IHBheQoJdHhuIEdyb3VwSW5kZXgKCWludCAxCgktCglkdXAKCWd0eG5zIFR5cGVFbnVtCglpbnQgcGF5Cgk9PQoJYXNzZXJ0CgoJLy8gZXhlY3V0ZSB2ZXJpZnlUeG5Gcm9tQXJnKHBheSl2b2lkCgljYWxsc3ViIHZlcmlmeVR4bkZyb21BcmcKCWludCAxCglyZXR1cm4KCnZlcmlmeVR4bkZyb21Bcmc6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjQzCgkvLyB2ZXJpZnlUeG4oc29tZVBheSwgeyByZWNlaXZlcjogdGhpcy5hcHAuYWRkcmVzcywgYW1vdW50OiAxMDBfMDAwIH0pCgkvLyB2ZXJpZnkgcmVjZWl2ZXIKCWZyYW1lX2RpZyAtMSAvLyBzb21lUGF5OiBwYXkKCWd0eG5zIFJlY2VpdmVyCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJPT0KCWFzc2VydAoKCS8vIHZlcmlmeSBhbW91bnQKCWZyYW1lX2RpZyAtMSAvLyBzb21lUGF5OiBwYXkKCWd0eG5zIEFtb3VudAoJaW50IDEwMF8wMDAKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gdmVyaWZ5VHhuRnJvbVR4bkdyb3VwKCl2b2lkCmFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tVHhuR3JvdXA6CgkvLyBleGVjdXRlIHZlcmlmeVR4bkZyb21UeG5Hcm91cCgpdm9pZAoJY2FsbHN1YiB2ZXJpZnlUeG5Gcm9tVHhuR3JvdXAKCWludCAxCglyZXR1cm4KCnZlcmlmeVR4bkZyb21UeG5Hcm91cDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NDcKCS8vIHZlcmlmeVR4bih0aGlzLnR4bkdyb3VwWzBdLCB7IHNlbmRlcjogdGhpcy50eG4uc2VuZGVyIH0pCgkvLyB2ZXJpZnkgc2VuZGVyCglpbnQgMAoJZ3R4bnMgU2VuZGVyCgl0eG4gU2VuZGVyCgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bkNvbmRpdGlvbigpdm9pZAphYmlfcm91dGVfdmVyaWZ5VHhuQ29uZGl0aW9uOgoJLy8gZXhlY3V0ZSB2ZXJpZnlUeG5Db25kaXRpb24oKXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuQ29uZGl0aW9uCglpbnQgMQoJcmV0dXJuCgp2ZXJpZnlUeG5Db25kaXRpb246Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjUxCgkvLyB2ZXJpZnlUeG4odGhpcy50eG4sIHsKCS8vICAgICAgIGFwcGxpY2F0aW9uSUQ6IHsgZ3JlYXRlclRoYW46IDEgfSwKCS8vICAgICB9KQoJLy8gdmVyaWZ5IGFwcGxpY2F0aW9uSUQKCXR4biBBcHBsaWNhdGlvbklECglpbnQgMQoJPgoJYXNzZXJ0CglyZXRzdWIKCi8vIHZlcmlmeVR4bkluY2x1ZGVkSW4oKXZvaWQKYWJpX3JvdXRlX3ZlcmlmeVR4bkluY2x1ZGVkSW46CgkvLyBleGVjdXRlIHZlcmlmeVR4bkluY2x1ZGVkSW4oKXZvaWQKCWNhbGxzdWIgdmVyaWZ5VHhuSW5jbHVkZWRJbgoJaW50IDEKCXJldHVybgoKdmVyaWZ5VHhuSW5jbHVkZWRJbjoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NTcKCS8vIHZlcmlmeVR4bih0aGlzLnR4biwgewoJLy8gICAgICAgc2VuZGVyOiB7IGluY2x1ZGVkSW46IFt0aGlzLnR4bi5zZW5kZXJdIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCXR4biBTZW5kZXIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gdmVyaWZ5VHhuTm90SW5jbHVkZWRJbigpdm9pZAphYmlfcm91dGVfdmVyaWZ5VHhuTm90SW5jbHVkZWRJbjoKCS8vIGV4ZWN1dGUgdmVyaWZ5VHhuTm90SW5jbHVkZWRJbigpdm9pZAoJY2FsbHN1YiB2ZXJpZnlUeG5Ob3RJbmNsdWRlZEluCglpbnQgMQoJcmV0dXJuCgp2ZXJpZnlUeG5Ob3RJbmNsdWRlZEluOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo2MwoJLy8gdmVyaWZ5VHhuKHRoaXMudHhuLCB7CgkvLyAgICAgICBzZW5kZXI6IHsgbm90SW5jbHVkZWRJbjogW2dsb2JhbHMuemVyb0FkZHJlc3NdIH0sCgkvLyAgICAgfSkKCS8vIHZlcmlmeSBzZW5kZXIKCXR4biBTZW5kZXIKCWdsb2JhbCBaZXJvQWRkcmVzcwoJIT0KCWFzc2VydAoJcmV0c3ViCgovLyBzdWJtaXRQZW5kaW5nR3JvdXAoKXZvaWQKYWJpX3JvdXRlX3N1Ym1pdFBlbmRpbmdHcm91cDoKCS8vIGV4ZWN1dGUgc3VibWl0UGVuZGluZ0dyb3VwKCl2b2lkCgljYWxsc3ViIHN1Ym1pdFBlbmRpbmdHcm91cAoJaW50IDEKCXJldHVybgoKc3VibWl0UGVuZGluZ0dyb3VwOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo2OQoJLy8gdGhpcy5wZW5kaW5nR3JvdXAuYWRkUGF5bWVudCh7IGFtb3VudDogMTAwXzAwMCwgcmVjZWl2ZXI6IHRoaXMuYXBwLmFkZHJlc3MgfSkKCWl0eG5fYmVnaW4KCWludCBwYXkKCWl0eG5fZmllbGQgVHlwZUVudW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjY5CgkvLyBhbW91bnQ6IDEwMF8wMDAKCWludCAxMDBfMDAwCglpdHhuX2ZpZWxkIEFtb3VudAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NjkKCS8vIHJlY2VpdmVyOiB0aGlzLmFwcC5hZGRyZXNzCglnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NzAKCS8vIHRoaXMucGVuZGluZ0dyb3VwLmFkZEFzc2V0Q3JlYXRpb24oeyBjb25maWdBc3NldFRvdGFsOiAxIH0pCglpdHhuX2JlZ2luCglpbnQgYWNmZwoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NzAKCS8vIGNvbmZpZ0Fzc2V0VG90YWw6IDEKCWludCAxCglpdHhuX2ZpZWxkIENvbmZpZ0Fzc2V0VG90YWwKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjcxCgkvLyB0aGlzLnBlbmRpbmdHcm91cC5zdWJtaXQoKQoJaXR4bl9zdWJtaXQKCXJldHN1YgoKLy8gbWV0aG9kV2l0aFR4bkFyZ3MoKXZvaWQKYWJpX3JvdXRlX21ldGhvZFdpdGhUeG5BcmdzOgoJLy8gZXhlY3V0ZSBtZXRob2RXaXRoVHhuQXJncygpdm9pZAoJY2FsbHN1YiBtZXRob2RXaXRoVHhuQXJncwoJaW50IDEKCXJldHVybgoKbWV0aG9kV2l0aFR4bkFyZ3M6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjc1CgkvLyBzZW5kTWV0aG9kQ2FsbDxbSW5uZXJQYXltZW50LCBJbm5lck1ldGhvZENhbGw8W3VpbnQ2NF0sIHZvaWQ+XSwgdm9pZD4oewoJLy8gICAgICAgbmFtZTogJ2ZvbycsCgkvLyAgICAgICBtZXRob2RBcmdzOiBbCgkvLyAgICAgICAgIHsgYW1vdW50OiAxMDBfMDAwLCByZWNlaXZlcjogdGhpcy50eG4uc2VuZGVyIH0sCgkvLyAgICAgICAgIHsKCS8vICAgICAgICAgICBuYW1lOiAnYmFyJywKCS8vICAgICAgICAgICBhcHBsaWNhdGlvbklEOiBBcHBsaWNhdGlvbi5mcm9tSUQoMTMzNyksCgkvLyAgICAgICAgICAgbWV0aG9kQXJnczogWzFdLAoJLy8gICAgICAgICB9LAoJLy8gICAgICAgXSwKCS8vICAgICB9KQoJaXR4bl9iZWdpbgoJaW50IHBheQoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NzgKCS8vIGFtb3VudDogMTAwXzAwMAoJaW50IDEwMF8wMDAKCWl0eG5fZmllbGQgQW1vdW50CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo3OAoJLy8gcmVjZWl2ZXI6IHRoaXMudHhuLnNlbmRlcgoJdHhuIFNlbmRlcgoJaXR4bl9maWVsZCBSZWNlaXZlcgoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiYmFyKHVpbnQ2NCl2b2lkIgoJaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjgxCgkvLyBhcHBsaWNhdGlvbklEOiBBcHBsaWNhdGlvbi5mcm9tSUQoMTMzNykKCWludCAxMzM3CglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uSUQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjgyCgkvLyBtZXRob2RBcmdzOiBbMV0KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIEZlZSBmaWVsZCBub3Qgc2V0LCBkZWZhdWx0aW5nIHRvIDAKCWludCAwCglpdHhuX2ZpZWxkIEZlZQoJaXR4bl9iZWdpbgoJaW50IGFwcGwKCWl0eG5fZmllbGQgVHlwZUVudW0KCW1ldGhvZCAiZm9vKHBheSxhcHBsKXZvaWQiCglpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6NzcKCS8vIG1ldGhvZEFyZ3M6IFsKCS8vICAgICAgICAgeyBhbW91bnQ6IDEwMF8wMDAsIHJlY2VpdmVyOiB0aGlzLnR4bi5zZW5kZXIgfSwKCS8vICAgICAgICAgewoJLy8gICAgICAgICAgIG5hbWU6ICdiYXInLAoJLy8gICAgICAgICAgIGFwcGxpY2F0aW9uSUQ6IEFwcGxpY2F0aW9uLmZyb21JRCgxMzM3KSwKCS8vICAgICAgICAgICBtZXRob2RBcmdzOiBbMV0sCgkvLyAgICAgICAgIH0sCgkvLyAgICAgICBdCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIHNoaWZ0KCl2b2lkCmFiaV9yb3V0ZV9zaGlmdDoKCS8vIGV4ZWN1dGUgc2hpZnQoKXZvaWQKCWNhbGxzdWIgc2hpZnQKCWludCAxCglyZXR1cm4KCnNoaWZ0OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czo4OQoJLy8gYXNzZXJ0KDEgPDwgMiA9PT0gNCkKCWludCAxCglpbnQgMgoJc2hsCglpbnQgNAoJPT0KCWFzc2VydAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6OTAKCS8vIGFzc2VydCg0ID4+IDEgPT09IDIpCglpbnQgNAoJaW50IDEKCXNocgoJaW50IDIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gZnJvbUJ5dGVzKCl2b2lkCmFiaV9yb3V0ZV9mcm9tQnl0ZXM6CgkvLyBleGVjdXRlIGZyb21CeXRlcygpdm9pZAoJY2FsbHN1YiBmcm9tQnl0ZXMKCWludCAxCglyZXR1cm4KCmZyb21CeXRlczoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6OTQKCS8vIGFzc2VydChBZGRyZXNzLmZyb21CeXRlcygnYWJjJykubWluQmFsYW5jZSkKCWJ5dGUgMHg2MTYyNjMgLy8gImFiYyIKCWFjY3RfcGFyYW1zX2dldCBBY2N0TWluQmFsYW5jZQoJYXNzZXJ0Cglhc3NlcnQKCXJldHN1YgoKLy8gZnJvbUlEKCl2b2lkCmFiaV9yb3V0ZV9mcm9tSUQ6CgkvLyBleGVjdXRlIGZyb21JRCgpdm9pZAoJY2FsbHN1YiBmcm9tSUQKCWludCAxCglyZXR1cm4KCmZyb21JRDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6OTgKCS8vIGxvZyhBcHBsaWNhdGlvbi5mcm9tSUQoMTIzKS5jcmVhdG9yKQoJaW50IDEyMwoJYXBwX3BhcmFtc19nZXQgQXBwQ3JlYXRvcgoJYXNzZXJ0Cglsb2cKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjk5CgkvLyBsb2coQXNzZXQuZnJvbUlEKDEyMykuY3JlYXRvcikKCWludCAxMjMKCWFzc2V0X3BhcmFtc19nZXQgQXNzZXRDcmVhdG9yCglhc3NlcnQKCWxvZwoJcmV0c3ViCgovLyBiemVyb0Z1bmN0aW9uKCl2b2lkCmFiaV9yb3V0ZV9iemVyb0Z1bmN0aW9uOgoJYnl0ZSAweDsgZHVwbiAzIC8vIHB1c2ggZW1wdHkgYnl0ZXMgdG8gZmlsbCB0aGUgc3RhY2sgZnJhbWUgZm9yIHRoaXMgc3Vicm91dGluZSdzIGxvY2FsIHZhcmlhYmxlcwoKCS8vIGV4ZWN1dGUgYnplcm9GdW5jdGlvbigpdm9pZAoJY2FsbHN1YiBiemVyb0Z1bmN0aW9uCglpbnQgMQoJcmV0dXJuCgpiemVyb0Z1bmN0aW9uOgoJcHJvdG8gNCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDMKCS8vIG4gPSAxCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEwNAoJLy8geDogYnl0ZXMgPSBiemVybygyKQoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDUKCS8vIHk6IGJ5dGVzID0gYnplcm8obikKCWludCAxIC8vIG46IHVpbnQ2NAoJYnplcm8KCWZyYW1lX2J1cnkgLTMgLy8geTogYnl0ZXMKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEwNgoJLy8gejogW3VpbnQ2NCwgdWludDw4Pl0gPSBiemVybzxbdWludDY0LCB1aW50PDg+XT4oKQoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMDcKCS8vIGFzc2VydChsZW4oeCArIHkgKyB6KSA9PT0gMTIpCglieXRlIDB4MDAwMCAvLyB4OiBieXRlcwoJZnJhbWVfZGlnIC0zIC8vIHk6IGJ5dGVzCgljb25jYXQKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAwMDAgLy8gejogW3VpbnQ2NCx1aW50OF0KCWNvbmNhdAoJbGVuCglpbnQgMTIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gZXZlbnRzKCl2b2lkCmFiaV9yb3V0ZV9ldmVudHM6CgkvLyBleGVjdXRlIGV2ZW50cygpdm9pZAoJY2FsbHN1YiBldmVudHMKCWludCAxCglyZXR1cm4KCmV2ZW50czoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTEzCgkvLyB0aGlzLm15RXZlbnQubG9nKHRoaXMuYXBwLCAxKQoJYnl0ZSAweDg3NTI4MTk2IC8vIG15RXZlbnQodWludDY0LHVpbnQ2NCkKCXR4bmEgQXBwbGljYXRpb25zIDAKCWl0b2IKCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxCgljb25jYXQKCWNvbmNhdAoJbG9nCglyZXRzdWIKCi8vIGxldE9wdGltaXphdGlvbih1aW50NjRbXSl1aW50NjRbXQphYmlfcm91dGVfbGV0T3B0aW1pemF0aW9uOgoJLy8gYTogdWludDY0W10KCXR4bmEgQXBwbGljYXRpb25BcmdzIDEKCWV4dHJhY3QgMiAwCgoJLy8gZXhlY3V0ZSBsZXRPcHRpbWl6YXRpb24odWludDY0W10pdWludDY0W10KCWNhbGxzdWIgbGV0T3B0aW1pemF0aW9uCglpbnQgMQoJcmV0dXJuCgpsZXRPcHRpbWl6YXRpb246Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjExNwoJLy8gYXNzZXJ0KGFbMF0pCglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0W10KCXN0b3JlIDI1NSAvLyBmdWxsIGFycmF5Cglsb2FkIDI1NSAvLyBmdWxsIGFycmF5CglleHRyYWN0IDAgOAoJYnRvaQoJYXNzZXJ0CgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMTkKCS8vIGIgPSBbMSwgMiwgM10KCWJ5dGUgMHgwMDAwMDAwMDAwMDAwMDAxMDAwMDAwMDAwMDAwMDAwMjAwMDAwMDAwMDAwMDAwMDMKCWZyYW1lX2J1cnkgLTEgLy8gYjogdWludDY0W10KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEyMQoJLy8gcmV0dXJuIGI7CglmcmFtZV9kaWcgLTEgLy8gYTogdWludDY0W10KCWR1cAoJbGVuCglpbnQgOAoJLwoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJYnl0ZSAweDE1MWY3Yzc1Cglzd2FwCgljb25jYXQKCWxvZwoJcmV0c3ViCgovLyBzdGF0aWNDb250cmFjdFByb3BlcnRpZXMoKXZvaWQKYWJpX3JvdXRlX3N0YXRpY0NvbnRyYWN0UHJvcGVydGllczoKCS8vIGV4ZWN1dGUgc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzKCl2b2lkCgljYWxsc3ViIHN0YXRpY0NvbnRyYWN0UHJvcGVydGllcwoJaW50IDEKCXJldHVybgoKc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzOgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMjUKCS8vIHNlbmRBcHBDYWxsKHsKCS8vICAgICAgIGFwcHJvdmFsUHJvZ3JhbTogRHVtbXlDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSwKCS8vICAgICAgIGNsZWFyU3RhdGVQcm9ncmFtOiBEdW1teUNvbnRyYWN0LmNsZWFyUHJvZ3JhbSgpLAoJLy8gICAgICAgbG9jYWxOdW1CeXRlU2xpY2U6IER1bW15Q29udHJhY3Quc2NoZW1hLmxvY2FsLm51bUJ5dGVTbGljZSwKCS8vICAgICAgIGxvY2FsTnVtVWludDogRHVtbXlDb250cmFjdC5zY2hlbWEubG9jYWwubnVtVWludCwKCS8vICAgICAgIGdsb2JhbE51bUJ5dGVTbGljZTogRHVtbXlDb250cmFjdC5zY2hlbWEuZ2xvYmFsLm51bUJ5dGVTbGljZSwKCS8vICAgICAgIGdsb2JhbE51bVVpbnQ6IER1bW15Q29udHJhY3Quc2NoZW1hLmdsb2JhbC5udW1VaW50LAoJLy8gICAgIH0pCglpdHhuX2JlZ2luCglpbnQgYXBwbAoJaXR4bl9maWVsZCBUeXBlRW51bQoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTI2CgkvLyBhcHByb3ZhbFByb2dyYW06IER1bW15Q29udHJhY3QuYXBwcm92YWxQcm9ncmFtKCkKCWJ5dGUgYjY0IENURVlnUUFOZ1FZTE1Sa0lqUUVBQkFDQkFVT0FCTGhFZXpZMkdnQ09BZi93QUE9PQoJaXR4bl9maWVsZCBBcHByb3ZhbFByb2dyYW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEyNwoJLy8gY2xlYXJTdGF0ZVByb2dyYW06IER1bW15Q29udHJhY3QuY2xlYXJQcm9ncmFtKCkKCWJ5dGUgYjY0IENRPT0KCWl0eG5fZmllbGQgQ2xlYXJTdGF0ZVByb2dyYW0KCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEyOAoJLy8gbG9jYWxOdW1CeXRlU2xpY2U6IER1bW15Q29udHJhY3Quc2NoZW1hLmxvY2FsLm51bUJ5dGVTbGljZQoJaW50IDAKCWl0eG5fZmllbGQgTG9jYWxOdW1CeXRlU2xpY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEyOQoJLy8gbG9jYWxOdW1VaW50OiBEdW1teUNvbnRyYWN0LnNjaGVtYS5sb2NhbC5udW1VaW50CglpbnQgMAoJaXR4bl9maWVsZCBMb2NhbE51bVVpbnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEzMAoJLy8gZ2xvYmFsTnVtQnl0ZVNsaWNlOiBEdW1teUNvbnRyYWN0LnNjaGVtYS5nbG9iYWwubnVtQnl0ZVNsaWNlCglpbnQgMAoJaXR4bl9maWVsZCBHbG9iYWxOdW1CeXRlU2xpY2UKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjEzMQoJLy8gZ2xvYmFsTnVtVWludDogRHVtbXlDb250cmFjdC5zY2hlbWEuZ2xvYmFsLm51bVVpbnQKCWludCAwCglpdHhuX2ZpZWxkIEdsb2JhbE51bVVpbnQKCgkvLyBGZWUgZmllbGQgbm90IHNldCwgZGVmYXVsdGluZyB0byAwCglpbnQgMAoJaXR4bl9maWVsZCBGZWUKCgkvLyBTdWJtaXQgaW5uZXIgdHJhbnNhY3Rpb24KCWl0eG5fc3VibWl0CglyZXRzdWIKCi8vIG51bWJlclRvU3RyaW5nKCl2b2lkCmFiaV9yb3V0ZV9udW1iZXJUb1N0cmluZzoKCWJ5dGUgMHg7IGR1cCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIG51bWJlclRvU3RyaW5nKCl2b2lkCgljYWxsc3ViIG51bWJlclRvU3RyaW5nCglpbnQgMQoJcmV0dXJuCgpudW1iZXJUb1N0cmluZzoKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTM2CgkvLyBuID0gMQoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxMzcKCS8vIHMgPSAnMScKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTM4CgkvLyBhc3NlcnQobi50b1N0cmluZygpID09PSBzKQoJaW50IDEgLy8gbjogdWludDY0CgljYWxsc3ViIGl0b2EKCWJ5dGUgMHgzMSAvLyAiMSIgLy8gczogYnl0ZXMKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gbWV0aG9kT25QYXJlbnMoKXZvaWQKYWJpX3JvdXRlX21ldGhvZE9uUGFyZW5zOgoJLy8gZXhlY3V0ZSBtZXRob2RPblBhcmVucygpdm9pZAoJY2FsbHN1YiBtZXRob2RPblBhcmVucwoJaW50IDEKCXJldHVybgoKbWV0aG9kT25QYXJlbnM6Cglwcm90byAwIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE0MgoJLy8gYXNzZXJ0KCgxICsgMikudG9TdHJpbmcoKSA9PT0gJzMnKQoJaW50IDMKCWNhbGxzdWIgaXRvYQoJYnl0ZSAweDMzIC8vICIzIgoJPT0KCWFzc2VydAoJcmV0c3ViCgovLyBzdHJpbmdTdWJzdHJpbmcoKXZvaWQKYWJpX3JvdXRlX3N0cmluZ1N1YnN0cmluZzoKCWJ5dGUgMHggLy8gcHVzaCBlbXB0eSBieXRlcyB0byBmaWxsIHRoZSBzdGFjayBmcmFtZSBmb3IgdGhpcyBzdWJyb3V0aW5lJ3MgbG9jYWwgdmFyaWFibGVzCgoJLy8gZXhlY3V0ZSBzdHJpbmdTdWJzdHJpbmcoKXZvaWQKCWNhbGxzdWIgc3RyaW5nU3Vic3RyaW5nCglpbnQgMQoJcmV0dXJuCgpzdHJpbmdTdWJzdHJpbmc6Cglwcm90byAxIDAKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE0NgoJLy8gcyA9ICdhYmNkZWYnCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE0NwoJLy8gYXNzZXJ0KHMuc3Vic3RyaW5nKDEsIDMpID09PSAnYmMnKQoJYnl0ZSAweDYyNjMKCWJ5dGUgMHg2MjYzIC8vICJiYyIKCT09Cglhc3NlcnQKCXJldHN1YgoKLy8gaWRQcm9wZXJ0eSgpdm9pZAphYmlfcm91dGVfaWRQcm9wZXJ0eToKCWJ5dGUgMHg7IGR1cCAvLyBwdXNoIGVtcHR5IGJ5dGVzIHRvIGZpbGwgdGhlIHN0YWNrIGZyYW1lIGZvciB0aGlzIHN1YnJvdXRpbmUncyBsb2NhbCB2YXJpYWJsZXMKCgkvLyBleGVjdXRlIGlkUHJvcGVydHkoKXZvaWQKCWNhbGxzdWIgaWRQcm9wZXJ0eQoJaW50IDEKCXJldHVybgoKaWRQcm9wZXJ0eToKCXByb3RvIDIgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTUxCgkvLyBhcHAgPSBBcHBsaWNhdGlvbi56ZXJvSW5kZXgKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTUyCgkvLyBhc3NlcnQoQXBwbGljYXRpb24uZnJvbUlEKGFwcC5pZCkgPT09IGFwcCkKCWludCAwIC8vIGFwcDogYXBwbGljYXRpb24KCWludCAwIC8vIGFwcDogYXBwbGljYXRpb24KCT09Cglhc3NlcnQKCgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE1NAoJLy8gYXNhID0gQXNzZXQuemVyb0luZGV4CgkvLyB0ZXN0cy9jb250cmFjdHMvZ2VuZXJhbC5hbGdvLnRzOjE1NQoJLy8gYXNzZXJ0KEFzc2V0LmZyb21JRChhc2EuaWQpID09PSBhc2EpCglpbnQgMCAvLyBhc2E6IGFzc2V0CglpbnQgMCAvLyBhc2E6IGFzc2V0Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCi8vIHNjcmF0Y2hTbG90KCl2b2lkCmFiaV9yb3V0ZV9zY3JhdGNoU2xvdDoKCS8vIGV4ZWN1dGUgc2NyYXRjaFNsb3QoKXZvaWQKCWNhbGxzdWIgc2NyYXRjaFNsb3QKCWludCAxCglyZXR1cm4KCnNjcmF0Y2hTbG90OgoJcHJvdG8gMCAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNTkKCS8vIHRoaXMuc2NyYXRjaC52YWx1ZSA9IDEzMzcKCWludCAxMzM3CglzdG9yZSAwCgoJLy8gdGVzdHMvY29udHJhY3RzL2dlbmVyYWwuYWxnby50czoxNjAKCS8vIGFzc2VydCh0aGlzLnNjcmF0Y2gudmFsdWUgPT09IDEzMzcpCglsb2FkIDAKCWludCAxMzM3Cgk9PQoJYXNzZXJ0CglyZXRzdWIKCmFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbjoKCWludCAxCglyZXR1cm4KCmNyZWF0ZV9Ob09wOgoJbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jcmVhdGVBcHBsaWNhdGlvbgoJZXJyCgpjYWxsX05vT3A6CgltZXRob2QgImNhbGxBZGROdW1iZXIoKXZvaWQiCgltZXRob2QgImNhbGxJbmxpbmVGdW5jKCl2b2lkIgoJbWV0aG9kICJ0eG5UeXBlRW51bSgpdm9pZCIKCW1ldGhvZCAidHhuR3JvdXBMZW5ndGgoKXZvaWQiCgltZXRob2QgImFzc2VydHMoYm9vbCxib29sKXZvaWQiCgltZXRob2QgInZlcmlmeVR4bkZyb21BcmcocGF5KXZvaWQiCgltZXRob2QgInZlcmlmeVR4bkZyb21UeG5Hcm91cCgpdm9pZCIKCW1ldGhvZCAidmVyaWZ5VHhuQ29uZGl0aW9uKCl2b2lkIgoJbWV0aG9kICJ2ZXJpZnlUeG5JbmNsdWRlZEluKCl2b2lkIgoJbWV0aG9kICJ2ZXJpZnlUeG5Ob3RJbmNsdWRlZEluKCl2b2lkIgoJbWV0aG9kICJzdWJtaXRQZW5kaW5nR3JvdXAoKXZvaWQiCgltZXRob2QgIm1ldGhvZFdpdGhUeG5BcmdzKCl2b2lkIgoJbWV0aG9kICJzaGlmdCgpdm9pZCIKCW1ldGhvZCAiZnJvbUJ5dGVzKCl2b2lkIgoJbWV0aG9kICJmcm9tSUQoKXZvaWQiCgltZXRob2QgImJ6ZXJvRnVuY3Rpb24oKXZvaWQiCgltZXRob2QgImV2ZW50cygpdm9pZCIKCW1ldGhvZCAibGV0T3B0aW1pemF0aW9uKHVpbnQ2NFtdKXVpbnQ2NFtdIgoJbWV0aG9kICJzdGF0aWNDb250cmFjdFByb3BlcnRpZXMoKXZvaWQiCgltZXRob2QgIm51bWJlclRvU3RyaW5nKCl2b2lkIgoJbWV0aG9kICJtZXRob2RPblBhcmVucygpdm9pZCIKCW1ldGhvZCAic3RyaW5nU3Vic3RyaW5nKCl2b2lkIgoJbWV0aG9kICJpZFByb3BlcnR5KCl2b2lkIgoJbWV0aG9kICJzY3JhdGNoU2xvdCgpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9jYWxsQWRkTnVtYmVyIGFiaV9yb3V0ZV9jYWxsSW5saW5lRnVuYyBhYmlfcm91dGVfdHhuVHlwZUVudW0gYWJpX3JvdXRlX3R4bkdyb3VwTGVuZ3RoIGFiaV9yb3V0ZV9hc3NlcnRzIGFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tQXJnIGFiaV9yb3V0ZV92ZXJpZnlUeG5Gcm9tVHhuR3JvdXAgYWJpX3JvdXRlX3ZlcmlmeVR4bkNvbmRpdGlvbiBhYmlfcm91dGVfdmVyaWZ5VHhuSW5jbHVkZWRJbiBhYmlfcm91dGVfdmVyaWZ5VHhuTm90SW5jbHVkZWRJbiBhYmlfcm91dGVfc3VibWl0UGVuZGluZ0dyb3VwIGFiaV9yb3V0ZV9tZXRob2RXaXRoVHhuQXJncyBhYmlfcm91dGVfc2hpZnQgYWJpX3JvdXRlX2Zyb21CeXRlcyBhYmlfcm91dGVfZnJvbUlEIGFiaV9yb3V0ZV9iemVyb0Z1bmN0aW9uIGFiaV9yb3V0ZV9ldmVudHMgYWJpX3JvdXRlX2xldE9wdGltaXphdGlvbiBhYmlfcm91dGVfc3RhdGljQ29udHJhY3RQcm9wZXJ0aWVzIGFiaV9yb3V0ZV9udW1iZXJUb1N0cmluZyBhYmlfcm91dGVfbWV0aG9kT25QYXJlbnMgYWJpX3JvdXRlX3N0cmluZ1N1YnN0cmluZyBhYmlfcm91dGVfaWRQcm9wZXJ0eSBhYmlfcm91dGVfc2NyYXRjaFNsb3QKCWVycgoKaW50VG9Bc2NpaToKCXByb3RvIDEgMQoJYnl0ZSAweDMwMzEzMjMzMzQzNTM2MzczODM5IC8vICIwMTIzNDU2Nzg5IgoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDEKCWV4dHJhY3QzCglyZXRzdWIKCQoKaXRvYToKCXByb3RvIDEgMQoJZnJhbWVfZGlnIC0xIC8vIGk6IHVpbnQ2NAoJaW50IDAKCT09CglieiBpdG9hX2lmX2VuZAoJYnl0ZSAweDE1MWY3Yzc1MDAwMTMwCglsb2cKCXJldHN1YgoKaXRvYV9pZl9lbmQ6CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnQgMTAKCS8KCWludCAwCgk+CglieiBpdG9hX3Rlcm5hcnlfZmFsc2UKCWZyYW1lX2RpZyAtMSAvLyBpOiB1aW50NjQKCWludCAxMAoJLwoJY2FsbHN1YiBpdG9hCgliIGl0b2FfdGVybmFyeV9lbmQKCml0b2FfdGVybmFyeV9mYWxzZToKCWJ5dGUgMHggLy8gIiIKCml0b2FfdGVybmFyeV9lbmQ6CglmcmFtZV9kaWcgLTEgLy8gaTogdWludDY0CglpbnQgMTAKCSUKCWNhbGxzdWIgaW50VG9Bc2NpaQoJY29uY2F0CglyZXRzdWI=", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { "name": "GeneralTest", "desc": "", "methods": [ + { + "name": "callAddNumber", + "args": [], + "desc": "", + "returns": { + "type": "void", + "desc": "" + } + }, + { + "name": "callInlineFunc", + "args": [], + "desc": "", + "returns": { + "type": "void", + "desc": "" + } + }, { "name": "txnTypeEnum", "args": [], diff --git a/tests/contracts/artifacts/Templates.approval.teal b/tests/contracts/artifacts/Templates.approval.teal index 2670f9afa..7f1595949 100644 --- a/tests/contracts/artifacts/Templates.approval.teal +++ b/tests/contracts/artifacts/Templates.approval.teal @@ -32,12 +32,12 @@ abi_route_tmpl: tmpl: proto 0 0 - // tests/contracts/general.algo.ts:146 + // tests/contracts/general.algo.ts:167 // log(templateVar('FOO')) byte TMPL_FOO // TMPL_FOO log - // tests/contracts/general.algo.ts:147 + // tests/contracts/general.algo.ts:168 // assert(templateVar('BAR')) int TMPL_BAR // TMPL_BAR assert diff --git a/tests/contracts/artifacts/Templates.json b/tests/contracts/artifacts/Templates.json index 1fb3d4055..7bb3240cd 100644 --- a/tests/contracts/artifacts/Templates.json +++ b/tests/contracts/artifacts/Templates.json @@ -39,7 +39,7 @@ } }, "source": { - "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHRtcGwoKXZvaWQKYWJpX3JvdXRlX3RtcGw6CgkvLyBleGVjdXRlIHRtcGwoKXZvaWQKCWNhbGxzdWIgdG1wbAoJaW50IDEKCXJldHVybgoKdG1wbDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTQ2CgkvLyBsb2codGVtcGxhdGVWYXI8Ynl0ZXM+KCdGT08nKSkKCWJ5dGUgVE1QTF9GT08gLy8gVE1QTF9GT08KCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTQ3CgkvLyBhc3NlcnQodGVtcGxhdGVWYXI8dWludDY0PignQkFSJykpCglpbnQgVE1QTF9CQVIgLy8gVE1QTF9CQVIKCWFzc2VydAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJ0bXBsKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3RtcGwKCWVycg==", + "approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjEuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIHRtcGwoKXZvaWQKYWJpX3JvdXRlX3RtcGw6CgkvLyBleGVjdXRlIHRtcGwoKXZvaWQKCWNhbGxzdWIgdG1wbAoJaW50IDEKCXJldHVybgoKdG1wbDoKCXByb3RvIDAgMAoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTY3CgkvLyBsb2codGVtcGxhdGVWYXI8Ynl0ZXM+KCdGT08nKSkKCWJ5dGUgVE1QTF9GT08gLy8gVE1QTF9GT08KCWxvZwoKCS8vIHRlc3RzL2NvbnRyYWN0cy9nZW5lcmFsLmFsZ28udHM6MTY4CgkvLyBhc3NlcnQodGVtcGxhdGVWYXI8dWludDY0PignQkFSJykpCglpbnQgVE1QTF9CQVIgLy8gVE1QTF9CQVIKCWFzc2VydAoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJ0bXBsKCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggYWJpX3JvdXRlX3RtcGwKCWVycg==", "clear": "I3ByYWdtYSB2ZXJzaW9uIDk=" }, "contract": { diff --git a/tests/contracts/general.algo.ts b/tests/contracts/general.algo.ts index cf990650b..94d2a9874 100644 --- a/tests/contracts/general.algo.ts +++ b/tests/contracts/general.algo.ts @@ -6,6 +6,27 @@ class DummyContract extends Contract {} class GeneralTest extends Contract { scratch = ScratchSlot(0); + @inline + private inlineFunc(a: number, b: number): number { + return a + b; + } + + @inline + private addNumber(numbers: number[], n: number): number { + return numbers.push(n); + } + + callAddNumber(): void { + const nums: number[] = [1, 2, 3]; + this.addNumber(nums, 4); + assert(nums.length === 4); + } + + callInlineFunc(): void { + const x = 1; + assert(this.inlineFunc(x, 2 + 3) === 6); + } + txnTypeEnum(): void { assert(this.txnGroup[0].typeEnum === TransactionType.ApplicationCall); } diff --git a/tests/general.test.ts b/tests/general.test.ts index fbd232c9d..89015e979 100644 --- a/tests/general.test.ts +++ b/tests/general.test.ts @@ -27,6 +27,7 @@ describe('General', function () { 'numberToString', 'methodOnParens', 'stringSubstring', + 'callInlineFunc', ].forEach((method) => { test(method, async function () { const { appClient } = await compileAndCreate(await sender, PATH, ARTIFACTS_DIR, NAME); diff --git a/types/global.d.ts b/types/global.d.ts index e147f2027..cf4600d9c 100644 --- a/types/global.d.ts +++ b/types/global.d.ts @@ -879,6 +879,8 @@ declare function verifyTxn( declare type decorator = (target: Object, key: string | symbol, descriptor: PropertyDescriptor) => PropertyDescriptor; +declare const inline: decorator; + declare class allow { static call( onComplete: 'NoOp' | 'OptIn' | 'CloseOut' | 'ClearState' | 'UpdateApplication' | 'DeleteApplication'