From 2918663efd4cb53c7b14894a68bfdee52f13a78d Mon Sep 17 00:00:00 2001 From: Joe Polny Date: Tue, 16 Dec 2025 16:36:17 -0500 Subject: [PATCH] fix: extract when one of the args > 255 --- src/lib/optimize.ts | 15 + .../artifacts/TokenInfoContract.approval.teal | 256 ++ .../artifacts/TokenInfoContract.arc32.json | 123 + .../artifacts/TokenInfoContract.arc4.json | 61 + .../artifacts/TokenInfoContract.arc56.json | 3185 +++++++++++++++++ .../artifacts/TokenInfoContract.clear.teal | 1 + tests/contracts/token_info.algo.ts | 80 + 7 files changed, 3721 insertions(+) create mode 100644 tests/contracts/artifacts/TokenInfoContract.approval.teal create mode 100644 tests/contracts/artifacts/TokenInfoContract.arc32.json create mode 100644 tests/contracts/artifacts/TokenInfoContract.arc4.json create mode 100644 tests/contracts/artifacts/TokenInfoContract.arc56.json create mode 100644 tests/contracts/artifacts/TokenInfoContract.clear.teal create mode 100644 tests/contracts/token_info.algo.ts diff --git a/src/lib/optimize.ts b/src/lib/optimize.ts index ebc5b8118..e2c2771dd 100644 --- a/src/lib/optimize.ts +++ b/src/lib/optimize.ts @@ -250,6 +250,21 @@ export function optimizeOpcodes(inputTeal: TEALInfo[]): TEALInfo[] { pushTeal(`int ${length}`, node); pushTeal('box_extract', node); optimized = true; + } else if (start > 255 || length > 255) { + // The extract opcode uses 0 to indicate that the length is the rest of the bytes + // So when the length is 0 we need to calculate the bytes length and use substring3 instead + if (length === 0) { + pushTeal('dup', node); + pushTeal('len', node); + pushTeal(`int ${start}`, node); + pushTeal('swap', node); + pushTeal('substring3', node); + } else { + pushTeal(`int ${start}`, node); + pushTeal(`int ${length}`, node); + pushTeal('extract3', node); + } + optimized = true; } } else if (teal.startsWith('substring ') && outputTeal.at(-1)?.teal.startsWith('byte 0x')) { const bytes = outputTeal.at(-1)!.teal.split(' ')[1].slice(2); diff --git a/tests/contracts/artifacts/TokenInfoContract.approval.teal b/tests/contracts/artifacts/TokenInfoContract.approval.teal new file mode 100644 index 000000000..0a2b153a3 --- /dev/null +++ b/tests/contracts/artifacts/TokenInfoContract.approval.teal @@ -0,0 +1,256 @@ +#pragma version 10 +intcblock 256 1024 0 1 +bytecblock 0x 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0x0000000000000000 + +// This TEAL was generated by TEALScript v0.107.1 +// https://github.com/algorandfoundation/TEALScript + +// This contract is compliant with and/or implements the following ARCs: [ ARC4 ] + +// The following ten lines of TEAL handle initial program flow +// This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed +// Here, action refers to the OnComplete in combination with whether the app is being created or called +// Every possible action for this contract is represented in the switch statement +// If the action is not implemented in the contract, its respective branch will be "*NOT_IMPLEMENTED" which just contains "err" +txn ApplicationID +! +pushint 6 +* +txn OnCompletion ++ +switch *call_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *create_NoOp *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED *NOT_IMPLEMENTED + +*NOT_IMPLEMENTED: + // The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID? + err + +// doMath(uint64,string,string,string,string,string,string,string,string,uint64)void +*abi_route_doMath: + // mintedAsset: uint64 + txna ApplicationArgs 10 + btoi + + // socialX: string + txna ApplicationArgs 9 + extract 2 0 + + // socialDiscord: string + txna ApplicationArgs 8 + extract 2 0 + + // socialTelegram: string + txna ApplicationArgs 7 + extract 2 0 + + // socialWebsite: string + txna ApplicationArgs 6 + extract 2 0 + + // description: string + txna ApplicationArgs 5 + extract 2 0 + + // assetUrl: string + txna ApplicationArgs 4 + extract 2 0 + + // name: string + txna ApplicationArgs 3 + extract 2 0 + + // symbol: string + txna ApplicationArgs 2 + extract 2 0 + + // k: uint64 + txna ApplicationArgs 1 + btoi + + // execute doMath(uint64,string,string,string,string,string,string,string,string,uint64)void + callsub doMath + intc 3 // 1 + return + +// doMath(k: uint64, symbol: string, name: string, assetUrl: string, description: string, socialWebsite: string, socialTelegram: string, socialDiscord: string, socialX: string, mintedAsset: AssetID): void +doMath: + proto 10 0 + + // Push empty bytes after the frame pointer to reserve space for local variables + bytec 0 // 0x + + // tests/contracts/token_info.algo.ts:57 + // tokenData: TokenInfo = { + // tokenCreator: this.txn.sender, + // currentBonding: 0, + // bondingOn: BOND_PLATFORM_UNBONDED, + // p0: P0, + // pQ: PQ, + // k: k, + // Q: this.bondSupply.value, + // launchQ: this.createSupply.value, + // feeBpsPlatform: this.feeBpsPlatform.value, + // feeBpsCreator: this.feeBpsCreator.value, + // assetId: AssetID.fromUint64(mintedAsset.id), + // symbol: symbol as bytes<8>, + // name: name as bytes<32>, + // assetUrl: assetUrl as bytes<96>, + // description: description as bytes<1024>, + // socialWebsite: socialWebsite as bytes<256>, + // socialX: socialX as bytes<64>, + // socialTelegram: socialTelegram as bytes<64>, + // socialDiscord: socialDiscord as bytes<64>, + // } + txn Sender + pushbytes 0x00000000000003e8 + concat + pushbytes 0x00000000000001f4 + concat + pushbytes 0x626f6e64537570706c79 // "bondSupply" + app_global_get + itob + concat + frame_dig -1 // k: uint64 + itob + concat + pushbytes 0x637265617465537570706c79 // "createSupply" + app_global_get + itob + concat + pushbytes 0x666565427073506c6174666f726d // "feeBpsPlatform" + app_global_get + itob + concat + pushbytes 0x66656542707343726561746f72 // "feeBpsCreator" + app_global_get + itob + concat + bytec 2 // 0x0000000000000000 + concat + pushbytes 0x000000000000007b + concat + frame_dig -10 // mintedAsset: AssetID + itob + concat + frame_dig -2 // symbol: string + bytec 2 // 0x0000000000000000 + concat + dup + extract 8 0 + bytec 0 // 0x + b== + assert + extract 0 8 + concat + frame_dig -3 // name: string + pushbytes 0x0000000000000000000000000000000000000000000000000000000000000000 + concat + dup + extract 32 0 + bytec 0 // 0x + b== + assert + extract 0 32 + concat + frame_dig -4 // assetUrl: string + pushbytes 0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + concat + dup + extract 96 0 + bytec 0 // 0x + b== + assert + extract 0 96 + concat + frame_dig -5 // description: string + pushbytes 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + concat + dup + dup + len + intc 1 // 1024 + swap + substring3 + bytec 0 // 0x + b== + assert + intc 2 // 0 + intc 1 // 1024 + extract3 + concat + frame_dig -6 // socialWebsite: string + pushbytes 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + concat + dup + dup + len + intc 0 // 256 + swap + substring3 + bytec 0 // 0x + b== + assert + intc 2 // 0 + intc 0 // 256 + extract3 + concat + frame_dig -9 // socialX: string + bytec 1 // 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + concat + dup + extract 64 0 + bytec 0 // 0x + b== + assert + extract 0 64 + concat + frame_dig -7 // socialTelegram: string + bytec 1 // 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + concat + dup + extract 64 0 + bytec 0 // 0x + b== + assert + extract 0 64 + concat + frame_dig -8 // socialDiscord: string + bytec 1 // 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 + concat + dup + extract 64 0 + bytec 0 // 0x + b== + assert + extract 0 64 + concat + frame_bury 0 // tokenData: TokenInfo + + // tests/contracts/token_info.algo.ts:78 + // this.tokenMap(mintedAsset).value = tokenData + pushbytes 0x74 // "t" + frame_dig -10 // mintedAsset: AssetID + itob + concat + frame_dig 0 // tokenData: TokenInfo + box_put + retsub + +*abi_route_createApplication: + intc 3 // 1 + return + +*create_NoOp: + pushbytes 0xb8447b36 // method "createApplication()void" + txna ApplicationArgs 0 + match *abi_route_createApplication + + // this contract does not implement the given ABI method for create NoOp + err + +*call_NoOp: + pushbytes 0x5370f8d9 // method "doMath(uint64,string,string,string,string,string,string,string,string,uint64)void" + txna ApplicationArgs 0 + match *abi_route_doMath + + // this contract does not implement the given ABI method for call NoOp + err \ No newline at end of file diff --git a/tests/contracts/artifacts/TokenInfoContract.arc32.json b/tests/contracts/artifacts/TokenInfoContract.arc32.json new file mode 100644 index 000000000..6b45bbd9b --- /dev/null +++ b/tests/contracts/artifacts/TokenInfoContract.arc32.json @@ -0,0 +1,123 @@ +{ + "hints": { + "doMath(uint64,string,string,string,string,string,string,string,string,uint64)void": { + "call_config": { + "no_op": "CALL" + } + }, + "createApplication()void": { + "call_config": { + "no_op": "CREATE" + } + } + }, + "bare_call_config": { + "no_op": "NEVER", + "opt_in": "NEVER", + "close_out": "NEVER", + "update_application": "NEVER", + "delete_application": "NEVER" + }, + "schema": { + "local": { + "declared": {}, + "reserved": {} + }, + "global": { + "declared": { + "bondSupply": { + "type": "uint64", + "key": "bondSupply" + }, + "createSupply": { + "type": "uint64", + "key": "createSupply" + }, + "feeBpsPlatform": { + "type": "uint64", + "key": "feeBpsPlatform" + }, + "feeBpsCreator": { + "type": "uint64", + "key": "feeBpsCreator" + } + }, + "reserved": {} + } + }, + "state": { + "global": { + "num_byte_slices": 0, + "num_uints": 4 + }, + "local": { + "num_byte_slices": 0, + "num_uints": 0 + } + }, + "source": { + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAyNTYgMTAyNCAwIDEKYnl0ZWNibG9jayAweCAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDcuMQovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGRvTWF0aCh1aW50NjQsc3RyaW5nLHN0cmluZyxzdHJpbmcsc3RyaW5nLHN0cmluZyxzdHJpbmcsc3RyaW5nLHN0cmluZyx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2RvTWF0aDoKCS8vIG1pbnRlZEFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEwCglidG9pCgoJLy8gc29jaWFsWDogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA5CglleHRyYWN0IDIgMAoKCS8vIHNvY2lhbERpc2NvcmQ6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgOAoJZXh0cmFjdCAyIDAKCgkvLyBzb2NpYWxUZWxlZ3JhbTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA3CglleHRyYWN0IDIgMAoKCS8vIHNvY2lhbFdlYnNpdGU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNgoJZXh0cmFjdCAyIDAKCgkvLyBkZXNjcmlwdGlvbjogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglleHRyYWN0IDIgMAoKCS8vIGFzc2V0VXJsOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWV4dHJhY3QgMiAwCgoJLy8gbmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglleHRyYWN0IDIgMAoKCS8vIHN5bWJvbDogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIGs6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZG9NYXRoKHVpbnQ2NCxzdHJpbmcsc3RyaW5nLHN0cmluZyxzdHJpbmcsc3RyaW5nLHN0cmluZyxzdHJpbmcsc3RyaW5nLHVpbnQ2NCl2b2lkCgljYWxsc3ViIGRvTWF0aAoJaW50YyAzIC8vIDEKCXJldHVybgoKLy8gZG9NYXRoKGs6IHVpbnQ2NCwgc3ltYm9sOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgYXNzZXRVcmw6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgc29jaWFsV2Vic2l0ZTogc3RyaW5nLCBzb2NpYWxUZWxlZ3JhbTogc3RyaW5nLCBzb2NpYWxEaXNjb3JkOiBzdHJpbmcsIHNvY2lhbFg6IHN0cmluZywgbWludGVkQXNzZXQ6IEFzc2V0SUQpOiB2b2lkCmRvTWF0aDoKCXByb3RvIDEwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy90b2tlbl9pbmZvLmFsZ28udHM6NTcKCS8vIHRva2VuRGF0YTogVG9rZW5JbmZvID0gewoJLy8gICAgICAgdG9rZW5DcmVhdG9yOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBjdXJyZW50Qm9uZGluZzogMCwKCS8vICAgICAgIGJvbmRpbmdPbjogQk9ORF9QTEFURk9STV9VTkJPTkRFRCwKCS8vICAgICAgIHAwOiBQMCwKCS8vICAgICAgIHBROiBQUSwKCS8vICAgICAgIGs6IGssCgkvLyAgICAgICBROiB0aGlzLmJvbmRTdXBwbHkudmFsdWUsCgkvLyAgICAgICBsYXVuY2hROiB0aGlzLmNyZWF0ZVN1cHBseS52YWx1ZSwKCS8vICAgICAgIGZlZUJwc1BsYXRmb3JtOiB0aGlzLmZlZUJwc1BsYXRmb3JtLnZhbHVlLAoJLy8gICAgICAgZmVlQnBzQ3JlYXRvcjogdGhpcy5mZWVCcHNDcmVhdG9yLnZhbHVlLAoJLy8gICAgICAgYXNzZXRJZDogQXNzZXRJRC5mcm9tVWludDY0KG1pbnRlZEFzc2V0LmlkKSwKCS8vICAgICAgIHN5bWJvbDogc3ltYm9sIGFzIGJ5dGVzPDg+LAoJLy8gICAgICAgbmFtZTogbmFtZSBhcyBieXRlczwzMj4sCgkvLyAgICAgICBhc3NldFVybDogYXNzZXRVcmwgYXMgYnl0ZXM8OTY+LAoJLy8gICAgICAgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uIGFzIGJ5dGVzPDEwMjQ+LAoJLy8gICAgICAgc29jaWFsV2Vic2l0ZTogc29jaWFsV2Vic2l0ZSBhcyBieXRlczwyNTY+LAoJLy8gICAgICAgc29jaWFsWDogc29jaWFsWCBhcyBieXRlczw2ND4sCgkvLyAgICAgICBzb2NpYWxUZWxlZ3JhbTogc29jaWFsVGVsZWdyYW0gYXMgYnl0ZXM8NjQ+LAoJLy8gICAgICAgc29jaWFsRGlzY29yZDogc29jaWFsRGlzY29yZCBhcyBieXRlczw2ND4sCgkvLyAgICAgfQoJdHhuIFNlbmRlcgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDNlOAoJY29uY2F0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMWY0Cgljb25jYXQKCXB1c2hieXRlcyAweDYyNmY2ZTY0NTM3NTcwNzA2Yzc5IC8vICJib25kU3VwcGx5IgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWNvbmNhdAoJZnJhbWVfZGlnIC0xIC8vIGs6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglwdXNoYnl0ZXMgMHg2MzcyNjU2MTc0NjU1Mzc1NzA3MDZjNzkgLy8gImNyZWF0ZVN1cHBseSIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCgljb25jYXQKCXB1c2hieXRlcyAweDY2NjU2NTQyNzA3MzUwNmM2MTc0NjY2ZjcyNmQgLy8gImZlZUJwc1BsYXRmb3JtIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4NjY2NTY1NDI3MDczNDM3MjY1NjE3NDZmNzIgLy8gImZlZUJwc0NyZWF0b3IiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJY29uY2F0CglieXRlYyAyIC8vIDB4MDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDdiCgljb25jYXQKCWZyYW1lX2RpZyAtMTAgLy8gbWludGVkQXNzZXQ6IEFzc2V0SUQKCWl0b2IKCWNvbmNhdAoJZnJhbWVfZGlnIC0yIC8vIHN5bWJvbDogc3RyaW5nCglieXRlYyAyIC8vIDB4MDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglkdXAKCWV4dHJhY3QgOCAwCglieXRlYyAwIC8vIDB4CgliPT0KCWFzc2VydAoJZXh0cmFjdCAwIDgKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIG5hbWU6IHN0cmluZwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglkdXAKCWV4dHJhY3QgMzIgMAoJYnl0ZWMgMCAvLyAweAoJYj09Cglhc3NlcnQKCWV4dHJhY3QgMCAzMgoJY29uY2F0CglmcmFtZV9kaWcgLTQgLy8gYXNzZXRVcmw6IHN0cmluZwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWR1cAoJZXh0cmFjdCA5NiAwCglieXRlYyAwIC8vIDB4CgliPT0KCWFzc2VydAoJZXh0cmFjdCAwIDk2Cgljb25jYXQKCWZyYW1lX2RpZyAtNSAvLyBkZXNjcmlwdGlvbjogc3RyaW5nCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglkdXAKCWR1cAoJbGVuCglpbnRjIDEgLy8gMTAyNAoJc3dhcAoJc3Vic3RyaW5nMwoJYnl0ZWMgMCAvLyAweAoJYj09Cglhc3NlcnQKCWludGMgMiAvLyAwCglpbnRjIDEgLy8gMTAyNAoJZXh0cmFjdDMKCWNvbmNhdAoJZnJhbWVfZGlnIC02IC8vIHNvY2lhbFdlYnNpdGU6IHN0cmluZwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJZHVwCglkdXAKCWxlbgoJaW50YyAwIC8vIDI1NgoJc3dhcAoJc3Vic3RyaW5nMwoJYnl0ZWMgMCAvLyAweAoJYj09Cglhc3NlcnQKCWludGMgMiAvLyAwCglpbnRjIDAgLy8gMjU2CglleHRyYWN0MwoJY29uY2F0CglmcmFtZV9kaWcgLTkgLy8gc29jaWFsWDogc3RyaW5nCglieXRlYyAxIC8vIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJZHVwCglleHRyYWN0IDY0IDAKCWJ5dGVjIDAgLy8gMHgKCWI9PQoJYXNzZXJ0CglleHRyYWN0IDAgNjQKCWNvbmNhdAoJZnJhbWVfZGlnIC03IC8vIHNvY2lhbFRlbGVncmFtOiBzdHJpbmcKCWJ5dGVjIDEgLy8gMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglkdXAKCWV4dHJhY3QgNjQgMAoJYnl0ZWMgMCAvLyAweAoJYj09Cglhc3NlcnQKCWV4dHJhY3QgMCA2NAoJY29uY2F0CglmcmFtZV9kaWcgLTggLy8gc29jaWFsRGlzY29yZDogc3RyaW5nCglieXRlYyAxIC8vIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJZHVwCglleHRyYWN0IDY0IDAKCWJ5dGVjIDAgLy8gMHgKCWI9PQoJYXNzZXJ0CglleHRyYWN0IDAgNjQKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIHRva2VuRGF0YTogVG9rZW5JbmZvCgoJLy8gdGVzdHMvY29udHJhY3RzL3Rva2VuX2luZm8uYWxnby50czo3OAoJLy8gdGhpcy50b2tlbk1hcChtaW50ZWRBc3NldCkudmFsdWUgPSB0b2tlbkRhdGEKCXB1c2hieXRlcyAweDc0IC8vICJ0IgoJZnJhbWVfZGlnIC0xMCAvLyBtaW50ZWRBc3NldDogQXNzZXRJRAoJaXRvYgoJY29uY2F0CglmcmFtZV9kaWcgMCAvLyB0b2tlbkRhdGE6IFRva2VuSW5mbwoJYm94X3B1dAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50YyAzIC8vIDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDUzNzBmOGQ5IC8vIG1ldGhvZCAiZG9NYXRoKHVpbnQ2NCxzdHJpbmcsc3RyaW5nLHN0cmluZyxzdHJpbmcsc3RyaW5nLHN0cmluZyxzdHJpbmcsc3RyaW5nLHVpbnQ2NCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9kb01hdGgKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" + }, + "contract": { + "name": "TokenInfoContract", + "desc": "", + "methods": [ + { + "name": "doMath", + "args": [ + { + "name": "k", + "type": "uint64" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "assetUrl", + "type": "string" + }, + { + "name": "description", + "type": "string" + }, + { + "name": "socialWebsite", + "type": "string" + }, + { + "name": "socialTelegram", + "type": "string" + }, + { + "name": "socialDiscord", + "type": "string" + }, + { + "name": "socialX", + "type": "string" + }, + { + "name": "mintedAsset", + "type": "uint64" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + } + } + ] + } +} \ No newline at end of file diff --git a/tests/contracts/artifacts/TokenInfoContract.arc4.json b/tests/contracts/artifacts/TokenInfoContract.arc4.json new file mode 100644 index 000000000..ccbd85175 --- /dev/null +++ b/tests/contracts/artifacts/TokenInfoContract.arc4.json @@ -0,0 +1,61 @@ +{ + "name": "TokenInfoContract", + "desc": "", + "methods": [ + { + "name": "doMath", + "args": [ + { + "name": "k", + "type": "uint64" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "assetUrl", + "type": "string" + }, + { + "name": "description", + "type": "string" + }, + { + "name": "socialWebsite", + "type": "string" + }, + { + "name": "socialTelegram", + "type": "string" + }, + { + "name": "socialDiscord", + "type": "string" + }, + { + "name": "socialX", + "type": "string" + }, + { + "name": "mintedAsset", + "type": "uint64" + } + ], + "returns": { + "type": "void" + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + } + } + ] +} \ No newline at end of file diff --git a/tests/contracts/artifacts/TokenInfoContract.arc56.json b/tests/contracts/artifacts/TokenInfoContract.arc56.json new file mode 100644 index 000000000..c22946696 --- /dev/null +++ b/tests/contracts/artifacts/TokenInfoContract.arc56.json @@ -0,0 +1,3185 @@ +{ + "name": "TokenInfoContract", + "desc": "", + "methods": [ + { + "name": "doMath", + "args": [ + { + "name": "k", + "type": "uint64" + }, + { + "name": "symbol", + "type": "string" + }, + { + "name": "name", + "type": "string" + }, + { + "name": "assetUrl", + "type": "string" + }, + { + "name": "description", + "type": "string" + }, + { + "name": "socialWebsite", + "type": "string" + }, + { + "name": "socialTelegram", + "type": "string" + }, + { + "name": "socialDiscord", + "type": "string" + }, + { + "name": "socialX", + "type": "string" + }, + { + "name": "mintedAsset", + "type": "uint64" + } + ], + "returns": { + "type": "void" + }, + "actions": { + "create": [], + "call": [ + "NoOp" + ] + } + }, + { + "name": "createApplication", + "args": [], + "returns": { + "type": "void" + }, + "actions": { + "create": [ + "NoOp" + ], + "call": [] + } + } + ], + "arcs": [ + 4, + 56 + ], + "structs": { + "TokenInfo": [ + { + "name": "tokenCreator", + "type": "address" + }, + { + "name": "p0", + "type": "uint64" + }, + { + "name": "pQ", + "type": "uint64" + }, + { + "name": "Q", + "type": "uint64" + }, + { + "name": "k", + "type": "uint64" + }, + { + "name": "launchQ", + "type": "uint64" + }, + { + "name": "feeBpsPlatform", + "type": "uint64" + }, + { + "name": "feeBpsCreator", + "type": "uint64" + }, + { + "name": "currentBonding", + "type": "uint64" + }, + { + "name": "bondingOn", + "type": "uint64" + }, + { + "name": "assetId", + "type": "uint64" + }, + { + "name": "symbol", + "type": "byte[8]" + }, + { + "name": "name", + "type": "byte[32]" + }, + { + "name": "assetUrl", + "type": "byte[96]" + }, + { + "name": "description", + "type": "byte[1024]" + }, + { + "name": "socialWebsite", + "type": "byte[256]" + }, + { + "name": "socialX", + "type": "byte[64]" + }, + { + "name": "socialTelegram", + "type": "byte[64]" + }, + { + "name": "socialDiscord", + "type": "byte[64]" + } + ] + }, + "state": { + "schema": { + "global": { + "bytes": 0, + "ints": 4 + }, + "local": { + "bytes": 0, + "ints": 0 + } + }, + "keys": { + "global": { + "bondSupply": { + "key": "Ym9uZFN1cHBseQ==", + "keyType": "AVMBytes", + "valueType": "uint64" + }, + "createSupply": { + "key": "Y3JlYXRlU3VwcGx5", + "keyType": "AVMBytes", + "valueType": "uint64" + }, + "feeBpsPlatform": { + "key": "ZmVlQnBzUGxhdGZvcm0=", + "keyType": "AVMBytes", + "valueType": "uint64" + }, + "feeBpsCreator": { + "key": "ZmVlQnBzQ3JlYXRvcg==", + "keyType": "AVMBytes", + "valueType": "uint64" + } + }, + "local": {}, + "box": {} + }, + "maps": { + "global": {}, + "local": {}, + "box": { + "tokenMap": { + "keyType": "uint64", + "valueType": "TokenInfo", + "prefix": "dA==" + } + } + } + }, + "bareActions": { + "create": [], + "call": [] + }, + "sourceInfo": { + "approval": { + "sourceInfo": [ + { + "teal": 1, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 0 + ] + }, + { + "teal": 2, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8 + ] + }, + { + "teal": 3, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27, + 28, + 29, + 30, + 31, + 32, + 33, + 34, + 35, + 36, + 37, + 38, + 39, + 40, + 41, + 42, + 43, + 44, + 45, + 46, + 47, + 48, + 49, + 50, + 51, + 52, + 53, + 54, + 55, + 56, + 57, + 58, + 59, + 60, + 61, + 62, + 63, + 64, + 65, + 66, + 67, + 68, + 69, + 70, + 71, + 72, + 73, + 74, + 75, + 76, + 77, + 78, + 79, + 80, + 81, + 82, + 83, + 84, + 85 + ] + }, + { + "teal": 15, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 86, + 87 + ] + }, + { + "teal": 16, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 88 + ] + }, + { + "teal": 17, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 89, + 90 + ] + }, + { + "teal": 18, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 91 + ] + }, + { + "teal": 19, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 92, + 93 + ] + }, + { + "teal": 20, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 94 + ] + }, + { + "teal": 21, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 95, + 96, + 97, + 98, + 99, + 100, + 101, + 102, + 103, + 104, + 105, + 106, + 107, + 108, + 109, + 110, + 111, + 112, + 113, + 114, + 115, + 116, + 117, + 118, + 119, + 120 + ] + }, + { + "teal": 25, + "source": "tests/contracts/token_info.algo.ts:34", + "errorMessage": "The requested action is not implemented in this contract. Are you using the correct OnComplete? Did you set your app ID?", + "pc": [ + 121 + ] + }, + { + "teal": 30, + "source": "tests/contracts/token_info.algo.ts:55", + "pc": [ + 122, + 123, + 124 + ] + }, + { + "teal": 31, + "source": "tests/contracts/token_info.algo.ts:55", + "pc": [ + 125 + ] + }, + { + "teal": 34, + "source": "tests/contracts/token_info.algo.ts:54", + "pc": [ + 126, + 127, + 128 + ] + }, + { + "teal": 35, + "source": "tests/contracts/token_info.algo.ts:54", + "pc": [ + 129, + 130, + 131 + ] + }, + { + "teal": 38, + "source": "tests/contracts/token_info.algo.ts:53", + "pc": [ + 132, + 133, + 134 + ] + }, + { + "teal": 39, + "source": "tests/contracts/token_info.algo.ts:53", + "pc": [ + 135, + 136, + 137 + ] + }, + { + "teal": 42, + "source": "tests/contracts/token_info.algo.ts:52", + "pc": [ + 138, + 139, + 140 + ] + }, + { + "teal": 43, + "source": "tests/contracts/token_info.algo.ts:52", + "pc": [ + 141, + 142, + 143 + ] + }, + { + "teal": 46, + "source": "tests/contracts/token_info.algo.ts:51", + "pc": [ + 144, + 145, + 146 + ] + }, + { + "teal": 47, + "source": "tests/contracts/token_info.algo.ts:51", + "pc": [ + 147, + 148, + 149 + ] + }, + { + "teal": 50, + "source": "tests/contracts/token_info.algo.ts:50", + "pc": [ + 150, + 151, + 152 + ] + }, + { + "teal": 51, + "source": "tests/contracts/token_info.algo.ts:50", + "pc": [ + 153, + 154, + 155 + ] + }, + { + "teal": 54, + "source": "tests/contracts/token_info.algo.ts:49", + "pc": [ + 156, + 157, + 158 + ] + }, + { + "teal": 55, + "source": "tests/contracts/token_info.algo.ts:49", + "pc": [ + 159, + 160, + 161 + ] + }, + { + "teal": 58, + "source": "tests/contracts/token_info.algo.ts:48", + "pc": [ + 162, + 163, + 164 + ] + }, + { + "teal": 59, + "source": "tests/contracts/token_info.algo.ts:48", + "pc": [ + 165, + 166, + 167 + ] + }, + { + "teal": 62, + "source": "tests/contracts/token_info.algo.ts:47", + "pc": [ + 168, + 169, + 170 + ] + }, + { + "teal": 63, + "source": "tests/contracts/token_info.algo.ts:47", + "pc": [ + 171, + 172, + 173 + ] + }, + { + "teal": 66, + "source": "tests/contracts/token_info.algo.ts:46", + "pc": [ + 174, + 175, + 176 + ] + }, + { + "teal": 67, + "source": "tests/contracts/token_info.algo.ts:46", + "pc": [ + 177 + ] + }, + { + "teal": 70, + "source": "tests/contracts/token_info.algo.ts:45", + "pc": [ + 178, + 179, + 180 + ] + }, + { + "teal": 71, + "source": "tests/contracts/token_info.algo.ts:45", + "pc": [ + 181 + ] + }, + { + "teal": 72, + "source": "tests/contracts/token_info.algo.ts:45", + "pc": [ + 182 + ] + }, + { + "teal": 76, + "source": "tests/contracts/token_info.algo.ts:45", + "pc": [ + 183, + 184, + 185 + ] + }, + { + "teal": 79, + "source": "tests/contracts/token_info.algo.ts:45", + "pc": [ + 186 + ] + }, + { + "teal": 103, + "source": "tests/contracts/token_info.algo.ts:58", + "pc": [ + 187, + 188 + ] + }, + { + "teal": 104, + "source": "tests/contracts/token_info.algo.ts:61", + "pc": [ + 189, + 190, + 191, + 192, + 193, + 194, + 195, + 196, + 197, + 198 + ] + }, + { + "teal": 105, + "source": "tests/contracts/token_info.algo.ts:61", + "pc": [ + 199 + ] + }, + { + "teal": 106, + "source": "tests/contracts/token_info.algo.ts:62", + "pc": [ + 200, + 201, + 202, + 203, + 204, + 205, + 206, + 207, + 208, + 209 + ] + }, + { + "teal": 107, + "source": "tests/contracts/token_info.algo.ts:62", + "pc": [ + 210 + ] + }, + { + "teal": 108, + "source": "tests/contracts/token_info.algo.ts:64", + "pc": [ + 211, + 212, + 213, + 214, + 215, + 216, + 217, + 218, + 219, + 220, + 221, + 222 + ] + }, + { + "teal": 109, + "source": "tests/contracts/token_info.algo.ts:64", + "pc": [ + 223 + ] + }, + { + "teal": 110, + "source": "tests/contracts/token_info.algo.ts:64", + "pc": [ + 224 + ] + }, + { + "teal": 111, + "source": "tests/contracts/token_info.algo.ts:64", + "pc": [ + 225 + ] + }, + { + "teal": 112, + "source": "tests/contracts/token_info.algo.ts:63", + "pc": [ + 226, + 227 + ] + }, + { + "teal": 113, + "source": "tests/contracts/token_info.algo.ts:63", + "pc": [ + 228 + ] + }, + { + "teal": 114, + "source": "tests/contracts/token_info.algo.ts:63", + "pc": [ + 229 + ] + }, + { + "teal": 115, + "source": "tests/contracts/token_info.algo.ts:65", + "pc": [ + 230, + 231, + 232, + 233, + 234, + 235, + 236, + 237, + 238, + 239, + 240, + 241, + 242, + 243 + ] + }, + { + "teal": 116, + "source": "tests/contracts/token_info.algo.ts:65", + "pc": [ + 244 + ] + }, + { + "teal": 117, + "source": "tests/contracts/token_info.algo.ts:65", + "pc": [ + 245 + ] + }, + { + "teal": 118, + "source": "tests/contracts/token_info.algo.ts:65", + "pc": [ + 246 + ] + }, + { + "teal": 119, + "source": "tests/contracts/token_info.algo.ts:66", + "pc": [ + 247, + 248, + 249, + 250, + 251, + 252, + 253, + 254, + 255, + 256, + 257, + 258, + 259, + 260, + 261, + 262 + ] + }, + { + "teal": 120, + "source": "tests/contracts/token_info.algo.ts:66", + "pc": [ + 263 + ] + }, + { + "teal": 121, + "source": "tests/contracts/token_info.algo.ts:66", + "pc": [ + 264 + ] + }, + { + "teal": 122, + "source": "tests/contracts/token_info.algo.ts:66", + "pc": [ + 265 + ] + }, + { + "teal": 123, + "source": "tests/contracts/token_info.algo.ts:67", + "pc": [ + 266, + 267, + 268, + 269, + 270, + 271, + 272, + 273, + 274, + 275, + 276, + 277, + 278, + 279, + 280 + ] + }, + { + "teal": 124, + "source": "tests/contracts/token_info.algo.ts:67", + "pc": [ + 281 + ] + }, + { + "teal": 125, + "source": "tests/contracts/token_info.algo.ts:67", + "pc": [ + 282 + ] + }, + { + "teal": 126, + "source": "tests/contracts/token_info.algo.ts:67", + "pc": [ + 283 + ] + }, + { + "teal": 127, + "source": "tests/contracts/token_info.algo.ts:59", + "pc": [ + 284 + ] + }, + { + "teal": 128, + "source": "tests/contracts/token_info.algo.ts:59", + "pc": [ + 285 + ] + }, + { + "teal": 129, + "source": "tests/contracts/token_info.algo.ts:60", + "pc": [ + 286, + 287, + 288, + 289, + 290, + 291, + 292, + 293, + 294, + 295 + ] + }, + { + "teal": 130, + "source": "tests/contracts/token_info.algo.ts:60", + "pc": [ + 296 + ] + }, + { + "teal": 131, + "source": "tests/contracts/token_info.algo.ts:68", + "pc": [ + 297, + 298 + ] + }, + { + "teal": 132, + "source": "tests/contracts/token_info.algo.ts:68", + "pc": [ + 299 + ] + }, + { + "teal": 133, + "source": "tests/contracts/token_info.algo.ts:68", + "pc": [ + 300 + ] + }, + { + "teal": 134, + "source": "tests/contracts/token_info.algo.ts:69", + "pc": [ + 301, + 302 + ] + }, + { + "teal": 135, + "source": "tests/contracts/token_info.algo.ts:69", + "pc": [ + 303 + ] + }, + { + "teal": 136, + "source": "tests/contracts/token_info.algo.ts:69", + "pc": [ + 304 + ] + }, + { + "teal": 137, + "source": "tests/contracts/token_info.algo.ts:69", + "pc": [ + 305 + ] + }, + { + "teal": 138, + "source": "tests/contracts/token_info.algo.ts:69", + "pc": [ + 306, + 307, + 308 + ] + }, + { + "teal": 139, + "source": "tests/contracts/token_info.algo.ts:69", + "pc": [ + 309 + ] + }, + { + "teal": 140, + "source": "tests/contracts/token_info.algo.ts:69", + "pc": [ + 310 + ] + }, + { + "teal": 141, + "source": "tests/contracts/token_info.algo.ts:69", + "pc": [ + 311 + ] + }, + { + "teal": 142, + "source": "tests/contracts/token_info.algo.ts:69", + "pc": [ + 312, + 313, + 314 + ] + }, + { + "teal": 143, + "source": "tests/contracts/token_info.algo.ts:69", + "pc": [ + 315 + ] + }, + { + "teal": 144, + "source": "tests/contracts/token_info.algo.ts:70", + "pc": [ + 316, + 317 + ] + }, + { + "teal": 145, + "source": "tests/contracts/token_info.algo.ts:70", + "pc": [ + 318, + 319, + 320, + 321, + 322, + 323, + 324, + 325, + 326, + 327, + 328, + 329, + 330, + 331, + 332, + 333, + 334, + 335, + 336, + 337, + 338, + 339, + 340, + 341, + 342, + 343, + 344, + 345, + 346, + 347, + 348, + 349, + 350, + 351 + ] + }, + { + "teal": 146, + "source": "tests/contracts/token_info.algo.ts:70", + "pc": [ + 352 + ] + }, + { + "teal": 147, + "source": "tests/contracts/token_info.algo.ts:70", + "pc": [ + 353 + ] + }, + { + "teal": 148, + "source": "tests/contracts/token_info.algo.ts:70", + "pc": [ + 354, + 355, + 356 + ] + }, + { + "teal": 149, + "source": "tests/contracts/token_info.algo.ts:70", + "pc": [ + 357 + ] + }, + { + "teal": 150, + "source": "tests/contracts/token_info.algo.ts:70", + "pc": [ + 358 + ] + }, + { + "teal": 151, + "source": "tests/contracts/token_info.algo.ts:70", + "pc": [ + 359 + ] + }, + { + "teal": 152, + "source": "tests/contracts/token_info.algo.ts:70", + "pc": [ + 360, + 361, + 362 + ] + }, + { + "teal": 153, + "source": "tests/contracts/token_info.algo.ts:70", + "pc": [ + 363 + ] + }, + { + "teal": 154, + "source": "tests/contracts/token_info.algo.ts:71", + "pc": [ + 364, + 365 + ] + }, + { + "teal": 155, + "source": "tests/contracts/token_info.algo.ts:71", + "pc": [ + 366, + 367, + 368, + 369, + 370, + 371, + 372, + 373, + 374, + 375, + 376, + 377, + 378, + 379, + 380, + 381, + 382, + 383, + 384, + 385, + 386, + 387, + 388, + 389, + 390, + 391, + 392, + 393, + 394, + 395, + 396, + 397, + 398, + 399, + 400, + 401, + 402, + 403, + 404, + 405, + 406, + 407, + 408, + 409, + 410, + 411, + 412, + 413, + 414, + 415, + 416, + 417, + 418, + 419, + 420, + 421, + 422, + 423, + 424, + 425, + 426, + 427, + 428, + 429, + 430, + 431, + 432, + 433, + 434, + 435, + 436, + 437, + 438, + 439, + 440, + 441, + 442, + 443, + 444, + 445, + 446, + 447, + 448, + 449, + 450, + 451, + 452, + 453, + 454, + 455, + 456, + 457, + 458, + 459, + 460, + 461, + 462, + 463 + ] + }, + { + "teal": 156, + "source": "tests/contracts/token_info.algo.ts:71", + "pc": [ + 464 + ] + }, + { + "teal": 157, + "source": "tests/contracts/token_info.algo.ts:71", + "pc": [ + 465 + ] + }, + { + "teal": 158, + "source": "tests/contracts/token_info.algo.ts:71", + "pc": [ + 466, + 467, + 468 + ] + }, + { + "teal": 159, + "source": "tests/contracts/token_info.algo.ts:71", + "pc": [ + 469 + ] + }, + { + "teal": 160, + "source": "tests/contracts/token_info.algo.ts:71", + "pc": [ + 470 + ] + }, + { + "teal": 161, + "source": "tests/contracts/token_info.algo.ts:71", + "pc": [ + 471 + ] + }, + { + "teal": 162, + "source": "tests/contracts/token_info.algo.ts:71", + "pc": [ + 472, + 473, + 474 + ] + }, + { + "teal": 163, + "source": "tests/contracts/token_info.algo.ts:71", + "pc": [ + 475 + ] + }, + { + "teal": 164, + "source": "tests/contracts/token_info.algo.ts:72", + "pc": [ + 476, + 477 + ] + }, + { + "teal": 165, + "source": "tests/contracts/token_info.algo.ts:72", + "pc": [ + 478, + 479, + 480, + 481, + 482, + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 492, + 493, + 494, + 495, + 496, + 497, + 498, + 499, + 500, + 501, + 502, + 503, + 504, + 505, + 506, + 507, + 508, + 509, + 510, + 511, + 512, + 513, + 514, + 515, + 516, + 517, + 518, + 519, + 520, + 521, + 522, + 523, + 524, + 525, + 526, + 527, + 528, + 529, + 530, + 531, + 532, + 533, + 534, + 535, + 536, + 537, + 538, + 539, + 540, + 541, + 542, + 543, + 544, + 545, + 546, + 547, + 548, + 549, + 550, + 551, + 552, + 553, + 554, + 555, + 556, + 557, + 558, + 559, + 560, + 561, + 562, + 563, + 564, + 565, + 566, + 567, + 568, + 569, + 570, + 571, + 572, + 573, + 574, + 575, + 576, + 577, + 578, + 579, + 580, + 581, + 582, + 583, + 584, + 585, + 586, + 587, + 588, + 589, + 590, + 591, + 592, + 593, + 594, + 595, + 596, + 597, + 598, + 599, + 600, + 601, + 602, + 603, + 604, + 605, + 606, + 607, + 608, + 609, + 610, + 611, + 612, + 613, + 614, + 615, + 616, + 617, + 618, + 619, + 620, + 621, + 622, + 623, + 624, + 625, + 626, + 627, + 628, + 629, + 630, + 631, + 632, + 633, + 634, + 635, + 636, + 637, + 638, + 639, + 640, + 641, + 642, + 643, + 644, + 645, + 646, + 647, + 648, + 649, + 650, + 651, + 652, + 653, + 654, + 655, + 656, + 657, + 658, + 659, + 660, + 661, + 662, + 663, + 664, + 665, + 666, + 667, + 668, + 669, + 670, + 671, + 672, + 673, + 674, + 675, + 676, + 677, + 678, + 679, + 680, + 681, + 682, + 683, + 684, + 685, + 686, + 687, + 688, + 689, + 690, + 691, + 692, + 693, + 694, + 695, + 696, + 697, + 698, + 699, + 700, + 701, + 702, + 703, + 704, + 705, + 706, + 707, + 708, + 709, + 710, + 711, + 712, + 713, + 714, + 715, + 716, + 717, + 718, + 719, + 720, + 721, + 722, + 723, + 724, + 725, + 726, + 727, + 728, + 729, + 730, + 731, + 732, + 733, + 734, + 735, + 736, + 737, + 738, + 739, + 740, + 741, + 742, + 743, + 744, + 745, + 746, + 747, + 748, + 749, + 750, + 751, + 752, + 753, + 754, + 755, + 756, + 757, + 758, + 759, + 760, + 761, + 762, + 763, + 764, + 765, + 766, + 767, + 768, + 769, + 770, + 771, + 772, + 773, + 774, + 775, + 776, + 777, + 778, + 779, + 780, + 781, + 782, + 783, + 784, + 785, + 786, + 787, + 788, + 789, + 790, + 791, + 792, + 793, + 794, + 795, + 796, + 797, + 798, + 799, + 800, + 801, + 802, + 803, + 804, + 805, + 806, + 807, + 808, + 809, + 810, + 811, + 812, + 813, + 814, + 815, + 816, + 817, + 818, + 819, + 820, + 821, + 822, + 823, + 824, + 825, + 826, + 827, + 828, + 829, + 830, + 831, + 832, + 833, + 834, + 835, + 836, + 837, + 838, + 839, + 840, + 841, + 842, + 843, + 844, + 845, + 846, + 847, + 848, + 849, + 850, + 851, + 852, + 853, + 854, + 855, + 856, + 857, + 858, + 859, + 860, + 861, + 862, + 863, + 864, + 865, + 866, + 867, + 868, + 869, + 870, + 871, + 872, + 873, + 874, + 875, + 876, + 877, + 878, + 879, + 880, + 881, + 882, + 883, + 884, + 885, + 886, + 887, + 888, + 889, + 890, + 891, + 892, + 893, + 894, + 895, + 896, + 897, + 898, + 899, + 900, + 901, + 902, + 903, + 904, + 905, + 906, + 907, + 908, + 909, + 910, + 911, + 912, + 913, + 914, + 915, + 916, + 917, + 918, + 919, + 920, + 921, + 922, + 923, + 924, + 925, + 926, + 927, + 928, + 929, + 930, + 931, + 932, + 933, + 934, + 935, + 936, + 937, + 938, + 939, + 940, + 941, + 942, + 943, + 944, + 945, + 946, + 947, + 948, + 949, + 950, + 951, + 952, + 953, + 954, + 955, + 956, + 957, + 958, + 959, + 960, + 961, + 962, + 963, + 964, + 965, + 966, + 967, + 968, + 969, + 970, + 971, + 972, + 973, + 974, + 975, + 976, + 977, + 978, + 979, + 980, + 981, + 982, + 983, + 984, + 985, + 986, + 987, + 988, + 989, + 990, + 991, + 992, + 993, + 994, + 995, + 996, + 997, + 998, + 999, + 1000, + 1001, + 1002, + 1003, + 1004, + 1005, + 1006, + 1007, + 1008, + 1009, + 1010, + 1011, + 1012, + 1013, + 1014, + 1015, + 1016, + 1017, + 1018, + 1019, + 1020, + 1021, + 1022, + 1023, + 1024, + 1025, + 1026, + 1027, + 1028, + 1029, + 1030, + 1031, + 1032, + 1033, + 1034, + 1035, + 1036, + 1037, + 1038, + 1039, + 1040, + 1041, + 1042, + 1043, + 1044, + 1045, + 1046, + 1047, + 1048, + 1049, + 1050, + 1051, + 1052, + 1053, + 1054, + 1055, + 1056, + 1057, + 1058, + 1059, + 1060, + 1061, + 1062, + 1063, + 1064, + 1065, + 1066, + 1067, + 1068, + 1069, + 1070, + 1071, + 1072, + 1073, + 1074, + 1075, + 1076, + 1077, + 1078, + 1079, + 1080, + 1081, + 1082, + 1083, + 1084, + 1085, + 1086, + 1087, + 1088, + 1089, + 1090, + 1091, + 1092, + 1093, + 1094, + 1095, + 1096, + 1097, + 1098, + 1099, + 1100, + 1101, + 1102, + 1103, + 1104, + 1105, + 1106, + 1107, + 1108, + 1109, + 1110, + 1111, + 1112, + 1113, + 1114, + 1115, + 1116, + 1117, + 1118, + 1119, + 1120, + 1121, + 1122, + 1123, + 1124, + 1125, + 1126, + 1127, + 1128, + 1129, + 1130, + 1131, + 1132, + 1133, + 1134, + 1135, + 1136, + 1137, + 1138, + 1139, + 1140, + 1141, + 1142, + 1143, + 1144, + 1145, + 1146, + 1147, + 1148, + 1149, + 1150, + 1151, + 1152, + 1153, + 1154, + 1155, + 1156, + 1157, + 1158, + 1159, + 1160, + 1161, + 1162, + 1163, + 1164, + 1165, + 1166, + 1167, + 1168, + 1169, + 1170, + 1171, + 1172, + 1173, + 1174, + 1175, + 1176, + 1177, + 1178, + 1179, + 1180, + 1181, + 1182, + 1183, + 1184, + 1185, + 1186, + 1187, + 1188, + 1189, + 1190, + 1191, + 1192, + 1193, + 1194, + 1195, + 1196, + 1197, + 1198, + 1199, + 1200, + 1201, + 1202, + 1203, + 1204, + 1205, + 1206, + 1207, + 1208, + 1209, + 1210, + 1211, + 1212, + 1213, + 1214, + 1215, + 1216, + 1217, + 1218, + 1219, + 1220, + 1221, + 1222, + 1223, + 1224, + 1225, + 1226, + 1227, + 1228, + 1229, + 1230, + 1231, + 1232, + 1233, + 1234, + 1235, + 1236, + 1237, + 1238, + 1239, + 1240, + 1241, + 1242, + 1243, + 1244, + 1245, + 1246, + 1247, + 1248, + 1249, + 1250, + 1251, + 1252, + 1253, + 1254, + 1255, + 1256, + 1257, + 1258, + 1259, + 1260, + 1261, + 1262, + 1263, + 1264, + 1265, + 1266, + 1267, + 1268, + 1269, + 1270, + 1271, + 1272, + 1273, + 1274, + 1275, + 1276, + 1277, + 1278, + 1279, + 1280, + 1281, + 1282, + 1283, + 1284, + 1285, + 1286, + 1287, + 1288, + 1289, + 1290, + 1291, + 1292, + 1293, + 1294, + 1295, + 1296, + 1297, + 1298, + 1299, + 1300, + 1301, + 1302, + 1303, + 1304, + 1305, + 1306, + 1307, + 1308, + 1309, + 1310, + 1311, + 1312, + 1313, + 1314, + 1315, + 1316, + 1317, + 1318, + 1319, + 1320, + 1321, + 1322, + 1323, + 1324, + 1325, + 1326, + 1327, + 1328, + 1329, + 1330, + 1331, + 1332, + 1333, + 1334, + 1335, + 1336, + 1337, + 1338, + 1339, + 1340, + 1341, + 1342, + 1343, + 1344, + 1345, + 1346, + 1347, + 1348, + 1349, + 1350, + 1351, + 1352, + 1353, + 1354, + 1355, + 1356, + 1357, + 1358, + 1359, + 1360, + 1361, + 1362, + 1363, + 1364, + 1365, + 1366, + 1367, + 1368, + 1369, + 1370, + 1371, + 1372, + 1373, + 1374, + 1375, + 1376, + 1377, + 1378, + 1379, + 1380, + 1381, + 1382, + 1383, + 1384, + 1385, + 1386, + 1387, + 1388, + 1389, + 1390, + 1391, + 1392, + 1393, + 1394, + 1395, + 1396, + 1397, + 1398, + 1399, + 1400, + 1401, + 1402, + 1403, + 1404, + 1405, + 1406, + 1407, + 1408, + 1409, + 1410, + 1411, + 1412, + 1413, + 1414, + 1415, + 1416, + 1417, + 1418, + 1419, + 1420, + 1421, + 1422, + 1423, + 1424, + 1425, + 1426, + 1427, + 1428, + 1429, + 1430, + 1431, + 1432, + 1433, + 1434, + 1435, + 1436, + 1437, + 1438, + 1439, + 1440, + 1441, + 1442, + 1443, + 1444, + 1445, + 1446, + 1447, + 1448, + 1449, + 1450, + 1451, + 1452, + 1453, + 1454, + 1455, + 1456, + 1457, + 1458, + 1459, + 1460, + 1461, + 1462, + 1463, + 1464, + 1465, + 1466, + 1467, + 1468, + 1469, + 1470, + 1471, + 1472, + 1473, + 1474, + 1475, + 1476, + 1477, + 1478, + 1479, + 1480, + 1481, + 1482, + 1483, + 1484, + 1485, + 1486, + 1487, + 1488, + 1489, + 1490, + 1491, + 1492, + 1493, + 1494, + 1495, + 1496, + 1497, + 1498, + 1499, + 1500, + 1501, + 1502, + 1503, + 1504 + ] + }, + { + "teal": 166, + "source": "tests/contracts/token_info.algo.ts:72", + "pc": [ + 1505 + ] + }, + { + "teal": 167, + "source": "tests/contracts/token_info.algo.ts:72", + "pc": [ + 1506 + ] + }, + { + "teal": 168, + "source": "tests/contracts/token_info.algo.ts:72", + "pc": [ + 1507 + ] + }, + { + "teal": 169, + "source": "tests/contracts/token_info.algo.ts:72", + "pc": [ + 1508 + ] + }, + { + "teal": 170, + "source": "tests/contracts/token_info.algo.ts:72", + "pc": [ + 1509 + ] + }, + { + "teal": 171, + "source": "tests/contracts/token_info.algo.ts:72", + "pc": [ + 1510 + ] + }, + { + "teal": 172, + "source": "tests/contracts/token_info.algo.ts:72", + "pc": [ + 1511 + ] + }, + { + "teal": 173, + "source": "tests/contracts/token_info.algo.ts:72", + "pc": [ + 1512 + ] + }, + { + "teal": 174, + "source": "tests/contracts/token_info.algo.ts:72", + "pc": [ + 1513 + ] + }, + { + "teal": 175, + "source": "tests/contracts/token_info.algo.ts:72", + "pc": [ + 1514 + ] + }, + { + "teal": 176, + "source": "tests/contracts/token_info.algo.ts:72", + "pc": [ + 1515 + ] + }, + { + "teal": 177, + "source": "tests/contracts/token_info.algo.ts:72", + "pc": [ + 1516 + ] + }, + { + "teal": 178, + "source": "tests/contracts/token_info.algo.ts:72", + "pc": [ + 1517 + ] + }, + { + "teal": 179, + "source": "tests/contracts/token_info.algo.ts:72", + "pc": [ + 1518 + ] + }, + { + "teal": 180, + "source": "tests/contracts/token_info.algo.ts:73", + "pc": [ + 1519, + 1520 + ] + }, + { + "teal": 181, + "source": "tests/contracts/token_info.algo.ts:73", + "pc": [ + 1521, + 1522, + 1523, + 1524, + 1525, + 1526, + 1527, + 1528, + 1529, + 1530, + 1531, + 1532, + 1533, + 1534, + 1535, + 1536, + 1537, + 1538, + 1539, + 1540, + 1541, + 1542, + 1543, + 1544, + 1545, + 1546, + 1547, + 1548, + 1549, + 1550, + 1551, + 1552, + 1553, + 1554, + 1555, + 1556, + 1557, + 1558, + 1559, + 1560, + 1561, + 1562, + 1563, + 1564, + 1565, + 1566, + 1567, + 1568, + 1569, + 1570, + 1571, + 1572, + 1573, + 1574, + 1575, + 1576, + 1577, + 1578, + 1579, + 1580, + 1581, + 1582, + 1583, + 1584, + 1585, + 1586, + 1587, + 1588, + 1589, + 1590, + 1591, + 1592, + 1593, + 1594, + 1595, + 1596, + 1597, + 1598, + 1599, + 1600, + 1601, + 1602, + 1603, + 1604, + 1605, + 1606, + 1607, + 1608, + 1609, + 1610, + 1611, + 1612, + 1613, + 1614, + 1615, + 1616, + 1617, + 1618, + 1619, + 1620, + 1621, + 1622, + 1623, + 1624, + 1625, + 1626, + 1627, + 1628, + 1629, + 1630, + 1631, + 1632, + 1633, + 1634, + 1635, + 1636, + 1637, + 1638, + 1639, + 1640, + 1641, + 1642, + 1643, + 1644, + 1645, + 1646, + 1647, + 1648, + 1649, + 1650, + 1651, + 1652, + 1653, + 1654, + 1655, + 1656, + 1657, + 1658, + 1659, + 1660, + 1661, + 1662, + 1663, + 1664, + 1665, + 1666, + 1667, + 1668, + 1669, + 1670, + 1671, + 1672, + 1673, + 1674, + 1675, + 1676, + 1677, + 1678, + 1679, + 1680, + 1681, + 1682, + 1683, + 1684, + 1685, + 1686, + 1687, + 1688, + 1689, + 1690, + 1691, + 1692, + 1693, + 1694, + 1695, + 1696, + 1697, + 1698, + 1699, + 1700, + 1701, + 1702, + 1703, + 1704, + 1705, + 1706, + 1707, + 1708, + 1709, + 1710, + 1711, + 1712, + 1713, + 1714, + 1715, + 1716, + 1717, + 1718, + 1719, + 1720, + 1721, + 1722, + 1723, + 1724, + 1725, + 1726, + 1727, + 1728, + 1729, + 1730, + 1731, + 1732, + 1733, + 1734, + 1735, + 1736, + 1737, + 1738, + 1739, + 1740, + 1741, + 1742, + 1743, + 1744, + 1745, + 1746, + 1747, + 1748, + 1749, + 1750, + 1751, + 1752, + 1753, + 1754, + 1755, + 1756, + 1757, + 1758, + 1759, + 1760, + 1761, + 1762, + 1763, + 1764, + 1765, + 1766, + 1767, + 1768, + 1769, + 1770, + 1771, + 1772, + 1773, + 1774, + 1775, + 1776, + 1777, + 1778, + 1779 + ] + }, + { + "teal": 182, + "source": "tests/contracts/token_info.algo.ts:73", + "pc": [ + 1780 + ] + }, + { + "teal": 183, + "source": "tests/contracts/token_info.algo.ts:73", + "pc": [ + 1781 + ] + }, + { + "teal": 184, + "source": "tests/contracts/token_info.algo.ts:73", + "pc": [ + 1782 + ] + }, + { + "teal": 185, + "source": "tests/contracts/token_info.algo.ts:73", + "pc": [ + 1783 + ] + }, + { + "teal": 186, + "source": "tests/contracts/token_info.algo.ts:73", + "pc": [ + 1784 + ] + }, + { + "teal": 187, + "source": "tests/contracts/token_info.algo.ts:73", + "pc": [ + 1785 + ] + }, + { + "teal": 188, + "source": "tests/contracts/token_info.algo.ts:73", + "pc": [ + 1786 + ] + }, + { + "teal": 189, + "source": "tests/contracts/token_info.algo.ts:73", + "pc": [ + 1787 + ] + }, + { + "teal": 190, + "source": "tests/contracts/token_info.algo.ts:73", + "pc": [ + 1788 + ] + }, + { + "teal": 191, + "source": "tests/contracts/token_info.algo.ts:73", + "pc": [ + 1789 + ] + }, + { + "teal": 192, + "source": "tests/contracts/token_info.algo.ts:73", + "pc": [ + 1790 + ] + }, + { + "teal": 193, + "source": "tests/contracts/token_info.algo.ts:73", + "pc": [ + 1791 + ] + }, + { + "teal": 194, + "source": "tests/contracts/token_info.algo.ts:73", + "pc": [ + 1792 + ] + }, + { + "teal": 195, + "source": "tests/contracts/token_info.algo.ts:73", + "pc": [ + 1793 + ] + }, + { + "teal": 196, + "source": "tests/contracts/token_info.algo.ts:74", + "pc": [ + 1794, + 1795 + ] + }, + { + "teal": 197, + "source": "tests/contracts/token_info.algo.ts:74", + "pc": [ + 1796 + ] + }, + { + "teal": 198, + "source": "tests/contracts/token_info.algo.ts:74", + "pc": [ + 1797 + ] + }, + { + "teal": 199, + "source": "tests/contracts/token_info.algo.ts:74", + "pc": [ + 1798 + ] + }, + { + "teal": 200, + "source": "tests/contracts/token_info.algo.ts:74", + "pc": [ + 1799, + 1800, + 1801 + ] + }, + { + "teal": 201, + "source": "tests/contracts/token_info.algo.ts:74", + "pc": [ + 1802 + ] + }, + { + "teal": 202, + "source": "tests/contracts/token_info.algo.ts:74", + "pc": [ + 1803 + ] + }, + { + "teal": 203, + "source": "tests/contracts/token_info.algo.ts:74", + "pc": [ + 1804 + ] + }, + { + "teal": 204, + "source": "tests/contracts/token_info.algo.ts:74", + "pc": [ + 1805, + 1806, + 1807 + ] + }, + { + "teal": 205, + "source": "tests/contracts/token_info.algo.ts:74", + "pc": [ + 1808 + ] + }, + { + "teal": 206, + "source": "tests/contracts/token_info.algo.ts:75", + "pc": [ + 1809, + 1810 + ] + }, + { + "teal": 207, + "source": "tests/contracts/token_info.algo.ts:75", + "pc": [ + 1811 + ] + }, + { + "teal": 208, + "source": "tests/contracts/token_info.algo.ts:75", + "pc": [ + 1812 + ] + }, + { + "teal": 209, + "source": "tests/contracts/token_info.algo.ts:75", + "pc": [ + 1813 + ] + }, + { + "teal": 210, + "source": "tests/contracts/token_info.algo.ts:75", + "pc": [ + 1814, + 1815, + 1816 + ] + }, + { + "teal": 211, + "source": "tests/contracts/token_info.algo.ts:75", + "pc": [ + 1817 + ] + }, + { + "teal": 212, + "source": "tests/contracts/token_info.algo.ts:75", + "pc": [ + 1818 + ] + }, + { + "teal": 213, + "source": "tests/contracts/token_info.algo.ts:75", + "pc": [ + 1819 + ] + }, + { + "teal": 214, + "source": "tests/contracts/token_info.algo.ts:75", + "pc": [ + 1820, + 1821, + 1822 + ] + }, + { + "teal": 215, + "source": "tests/contracts/token_info.algo.ts:75", + "pc": [ + 1823 + ] + }, + { + "teal": 216, + "source": "tests/contracts/token_info.algo.ts:76", + "pc": [ + 1824, + 1825 + ] + }, + { + "teal": 217, + "source": "tests/contracts/token_info.algo.ts:76", + "pc": [ + 1826 + ] + }, + { + "teal": 218, + "source": "tests/contracts/token_info.algo.ts:76", + "pc": [ + 1827 + ] + }, + { + "teal": 219, + "source": "tests/contracts/token_info.algo.ts:76", + "pc": [ + 1828 + ] + }, + { + "teal": 220, + "source": "tests/contracts/token_info.algo.ts:76", + "pc": [ + 1829, + 1830, + 1831 + ] + }, + { + "teal": 221, + "source": "tests/contracts/token_info.algo.ts:76", + "pc": [ + 1832 + ] + }, + { + "teal": 222, + "source": "tests/contracts/token_info.algo.ts:76", + "pc": [ + 1833 + ] + }, + { + "teal": 223, + "source": "tests/contracts/token_info.algo.ts:76", + "pc": [ + 1834 + ] + }, + { + "teal": 224, + "source": "tests/contracts/token_info.algo.ts:76", + "pc": [ + 1835, + 1836, + 1837 + ] + }, + { + "teal": 225, + "source": "tests/contracts/token_info.algo.ts:76", + "pc": [ + 1838 + ] + }, + { + "teal": 226, + "source": "tests/contracts/token_info.algo.ts:57", + "pc": [ + 1839, + 1840 + ] + }, + { + "teal": 230, + "source": "tests/contracts/token_info.algo.ts:78", + "pc": [ + 1841, + 1842, + 1843 + ] + }, + { + "teal": 231, + "source": "tests/contracts/token_info.algo.ts:78", + "pc": [ + 1844, + 1845 + ] + }, + { + "teal": 232, + "source": "tests/contracts/token_info.algo.ts:78", + "pc": [ + 1846 + ] + }, + { + "teal": 233, + "source": "tests/contracts/token_info.algo.ts:78", + "pc": [ + 1847 + ] + }, + { + "teal": 234, + "source": "tests/contracts/token_info.algo.ts:78", + "pc": [ + 1848, + 1849 + ] + }, + { + "teal": 235, + "source": "tests/contracts/token_info.algo.ts:78", + "pc": [ + 1850 + ] + }, + { + "teal": 236, + "source": "tests/contracts/token_info.algo.ts:45", + "pc": [ + 1851 + ] + }, + { + "teal": 239, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 1852 + ] + }, + { + "teal": 240, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 1853 + ] + }, + { + "teal": 243, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 1854, + 1855, + 1856, + 1857, + 1858, + 1859 + ] + }, + { + "teal": 244, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 1860, + 1861, + 1862 + ] + }, + { + "teal": 245, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 1863, + 1864, + 1865, + 1866 + ] + }, + { + "teal": 248, + "source": "tests/contracts/token_info.algo.ts:34", + "errorMessage": "this contract does not implement the given ABI method for create NoOp", + "pc": [ + 1867 + ] + }, + { + "teal": 251, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 1868, + 1869, + 1870, + 1871, + 1872, + 1873 + ] + }, + { + "teal": 252, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 1874, + 1875, + 1876 + ] + }, + { + "teal": 253, + "source": "tests/contracts/token_info.algo.ts:34", + "pc": [ + 1877, + 1878, + 1879, + 1880 + ] + }, + { + "teal": 256, + "source": "tests/contracts/token_info.algo.ts:34", + "errorMessage": "this contract does not implement the given ABI method for call NoOp", + "pc": [ + 1881 + ] + } + ], + "pcOffsetMethod": "none" + }, + "clear": { + "sourceInfo": [], + "pcOffsetMethod": "none" + } + }, + "source": { + "approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCmludGNibG9jayAyNTYgMTAyNCAwIDEKYnl0ZWNibG9jayAweCAweDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDB4MDAwMDAwMDAwMDAwMDAwMAoKLy8gVGhpcyBURUFMIHdhcyBnZW5lcmF0ZWQgYnkgVEVBTFNjcmlwdCB2MC4xMDcuMQovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsZW1lbnRlZCBpbiB0aGUgY29udHJhY3QsIGl0cyByZXNwZWN0aXZlIGJyYW5jaCB3aWxsIGJlICIqTk9UX0lNUExFTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECiEKcHVzaGludCA2CioKdHhuIE9uQ29tcGxldGlvbgorCnN3aXRjaCAqY2FsbF9Ob09wICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqY3JlYXRlX05vT3AgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVEICpOT1RfSU1QTEVNRU5URUQgKk5PVF9JTVBMRU1FTlRFRCAqTk9UX0lNUExFTUVOVEVECgoqTk9UX0lNUExFTUVOVEVEOgoJLy8gVGhlIHJlcXVlc3RlZCBhY3Rpb24gaXMgbm90IGltcGxlbWVudGVkIGluIHRoaXMgY29udHJhY3QuIEFyZSB5b3UgdXNpbmcgdGhlIGNvcnJlY3QgT25Db21wbGV0ZT8gRGlkIHlvdSBzZXQgeW91ciBhcHAgSUQ/CgllcnIKCi8vIGRvTWF0aCh1aW50NjQsc3RyaW5nLHN0cmluZyxzdHJpbmcsc3RyaW5nLHN0cmluZyxzdHJpbmcsc3RyaW5nLHN0cmluZyx1aW50NjQpdm9pZAoqYWJpX3JvdXRlX2RvTWF0aDoKCS8vIG1pbnRlZEFzc2V0OiB1aW50NjQKCXR4bmEgQXBwbGljYXRpb25BcmdzIDEwCglidG9pCgoJLy8gc29jaWFsWDogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA5CglleHRyYWN0IDIgMAoKCS8vIHNvY2lhbERpc2NvcmQ6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgOAoJZXh0cmFjdCAyIDAKCgkvLyBzb2NpYWxUZWxlZ3JhbTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA3CglleHRyYWN0IDIgMAoKCS8vIHNvY2lhbFdlYnNpdGU6IHN0cmluZwoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNgoJZXh0cmFjdCAyIDAKCgkvLyBkZXNjcmlwdGlvbjogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyA1CglleHRyYWN0IDIgMAoKCS8vIGFzc2V0VXJsOiBzdHJpbmcKCXR4bmEgQXBwbGljYXRpb25BcmdzIDQKCWV4dHJhY3QgMiAwCgoJLy8gbmFtZTogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAzCglleHRyYWN0IDIgMAoKCS8vIHN5bWJvbDogc3RyaW5nCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIGs6IHVpbnQ2NAoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQoJYnRvaQoKCS8vIGV4ZWN1dGUgZG9NYXRoKHVpbnQ2NCxzdHJpbmcsc3RyaW5nLHN0cmluZyxzdHJpbmcsc3RyaW5nLHN0cmluZyxzdHJpbmcsc3RyaW5nLHVpbnQ2NCl2b2lkCgljYWxsc3ViIGRvTWF0aAoJaW50YyAzIC8vIDEKCXJldHVybgoKLy8gZG9NYXRoKGs6IHVpbnQ2NCwgc3ltYm9sOiBzdHJpbmcsIG5hbWU6IHN0cmluZywgYXNzZXRVcmw6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZywgc29jaWFsV2Vic2l0ZTogc3RyaW5nLCBzb2NpYWxUZWxlZ3JhbTogc3RyaW5nLCBzb2NpYWxEaXNjb3JkOiBzdHJpbmcsIHNvY2lhbFg6IHN0cmluZywgbWludGVkQXNzZXQ6IEFzc2V0SUQpOiB2b2lkCmRvTWF0aDoKCXByb3RvIDEwIDAKCgkvLyBQdXNoIGVtcHR5IGJ5dGVzIGFmdGVyIHRoZSBmcmFtZSBwb2ludGVyIHRvIHJlc2VydmUgc3BhY2UgZm9yIGxvY2FsIHZhcmlhYmxlcwoJYnl0ZWMgMCAvLyAweAoKCS8vIHRlc3RzL2NvbnRyYWN0cy90b2tlbl9pbmZvLmFsZ28udHM6NTcKCS8vIHRva2VuRGF0YTogVG9rZW5JbmZvID0gewoJLy8gICAgICAgdG9rZW5DcmVhdG9yOiB0aGlzLnR4bi5zZW5kZXIsCgkvLyAgICAgICBjdXJyZW50Qm9uZGluZzogMCwKCS8vICAgICAgIGJvbmRpbmdPbjogQk9ORF9QTEFURk9STV9VTkJPTkRFRCwKCS8vICAgICAgIHAwOiBQMCwKCS8vICAgICAgIHBROiBQUSwKCS8vICAgICAgIGs6IGssCgkvLyAgICAgICBROiB0aGlzLmJvbmRTdXBwbHkudmFsdWUsCgkvLyAgICAgICBsYXVuY2hROiB0aGlzLmNyZWF0ZVN1cHBseS52YWx1ZSwKCS8vICAgICAgIGZlZUJwc1BsYXRmb3JtOiB0aGlzLmZlZUJwc1BsYXRmb3JtLnZhbHVlLAoJLy8gICAgICAgZmVlQnBzQ3JlYXRvcjogdGhpcy5mZWVCcHNDcmVhdG9yLnZhbHVlLAoJLy8gICAgICAgYXNzZXRJZDogQXNzZXRJRC5mcm9tVWludDY0KG1pbnRlZEFzc2V0LmlkKSwKCS8vICAgICAgIHN5bWJvbDogc3ltYm9sIGFzIGJ5dGVzPDg+LAoJLy8gICAgICAgbmFtZTogbmFtZSBhcyBieXRlczwzMj4sCgkvLyAgICAgICBhc3NldFVybDogYXNzZXRVcmwgYXMgYnl0ZXM8OTY+LAoJLy8gICAgICAgZGVzY3JpcHRpb246IGRlc2NyaXB0aW9uIGFzIGJ5dGVzPDEwMjQ+LAoJLy8gICAgICAgc29jaWFsV2Vic2l0ZTogc29jaWFsV2Vic2l0ZSBhcyBieXRlczwyNTY+LAoJLy8gICAgICAgc29jaWFsWDogc29jaWFsWCBhcyBieXRlczw2ND4sCgkvLyAgICAgICBzb2NpYWxUZWxlZ3JhbTogc29jaWFsVGVsZWdyYW0gYXMgYnl0ZXM8NjQ+LAoJLy8gICAgICAgc29jaWFsRGlzY29yZDogc29jaWFsRGlzY29yZCBhcyBieXRlczw2ND4sCgkvLyAgICAgfQoJdHhuIFNlbmRlcgoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDNlOAoJY29uY2F0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMWY0Cgljb25jYXQKCXB1c2hieXRlcyAweDYyNmY2ZTY0NTM3NTcwNzA2Yzc5IC8vICJib25kU3VwcGx5IgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWNvbmNhdAoJZnJhbWVfZGlnIC0xIC8vIGs6IHVpbnQ2NAoJaXRvYgoJY29uY2F0CglwdXNoYnl0ZXMgMHg2MzcyNjU2MTc0NjU1Mzc1NzA3MDZjNzkgLy8gImNyZWF0ZVN1cHBseSIKCWFwcF9nbG9iYWxfZ2V0CglpdG9iCgljb25jYXQKCXB1c2hieXRlcyAweDY2NjU2NTQyNzA3MzUwNmM2MTc0NjY2ZjcyNmQgLy8gImZlZUJwc1BsYXRmb3JtIgoJYXBwX2dsb2JhbF9nZXQKCWl0b2IKCWNvbmNhdAoJcHVzaGJ5dGVzIDB4NjY2NTY1NDI3MDczNDM3MjY1NjE3NDZmNzIgLy8gImZlZUJwc0NyZWF0b3IiCglhcHBfZ2xvYmFsX2dldAoJaXRvYgoJY29uY2F0CglieXRlYyAyIC8vIDB4MDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDdiCgljb25jYXQKCWZyYW1lX2RpZyAtMTAgLy8gbWludGVkQXNzZXQ6IEFzc2V0SUQKCWl0b2IKCWNvbmNhdAoJZnJhbWVfZGlnIC0yIC8vIHN5bWJvbDogc3RyaW5nCglieXRlYyAyIC8vIDB4MDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglkdXAKCWV4dHJhY3QgOCAwCglieXRlYyAwIC8vIDB4CgliPT0KCWFzc2VydAoJZXh0cmFjdCAwIDgKCWNvbmNhdAoJZnJhbWVfZGlnIC0zIC8vIG5hbWU6IHN0cmluZwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglkdXAKCWV4dHJhY3QgMzIgMAoJYnl0ZWMgMCAvLyAweAoJYj09Cglhc3NlcnQKCWV4dHJhY3QgMCAzMgoJY29uY2F0CglmcmFtZV9kaWcgLTQgLy8gYXNzZXRVcmw6IHN0cmluZwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCgljb25jYXQKCWR1cAoJZXh0cmFjdCA5NiAwCglieXRlYyAwIC8vIDB4CgliPT0KCWFzc2VydAoJZXh0cmFjdCAwIDk2Cgljb25jYXQKCWZyYW1lX2RpZyAtNSAvLyBkZXNjcmlwdGlvbjogc3RyaW5nCglwdXNoYnl0ZXMgMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglkdXAKCWR1cAoJbGVuCglpbnRjIDEgLy8gMTAyNAoJc3dhcAoJc3Vic3RyaW5nMwoJYnl0ZWMgMCAvLyAweAoJYj09Cglhc3NlcnQKCWludGMgMiAvLyAwCglpbnRjIDEgLy8gMTAyNAoJZXh0cmFjdDMKCWNvbmNhdAoJZnJhbWVfZGlnIC02IC8vIHNvY2lhbFdlYnNpdGU6IHN0cmluZwoJcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJZHVwCglkdXAKCWxlbgoJaW50YyAwIC8vIDI1NgoJc3dhcAoJc3Vic3RyaW5nMwoJYnl0ZWMgMCAvLyAweAoJYj09Cglhc3NlcnQKCWludGMgMiAvLyAwCglpbnRjIDAgLy8gMjU2CglleHRyYWN0MwoJY29uY2F0CglmcmFtZV9kaWcgLTkgLy8gc29jaWFsWDogc3RyaW5nCglieXRlYyAxIC8vIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJZHVwCglleHRyYWN0IDY0IDAKCWJ5dGVjIDAgLy8gMHgKCWI9PQoJYXNzZXJ0CglleHRyYWN0IDAgNjQKCWNvbmNhdAoJZnJhbWVfZGlnIC03IC8vIHNvY2lhbFRlbGVncmFtOiBzdHJpbmcKCWJ5dGVjIDEgLy8gMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAoJY29uY2F0CglkdXAKCWV4dHJhY3QgNjQgMAoJYnl0ZWMgMCAvLyAweAoJYj09Cglhc3NlcnQKCWV4dHJhY3QgMCA2NAoJY29uY2F0CglmcmFtZV9kaWcgLTggLy8gc29jaWFsRGlzY29yZDogc3RyaW5nCglieXRlYyAxIC8vIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKCWNvbmNhdAoJZHVwCglleHRyYWN0IDY0IDAKCWJ5dGVjIDAgLy8gMHgKCWI9PQoJYXNzZXJ0CglleHRyYWN0IDAgNjQKCWNvbmNhdAoJZnJhbWVfYnVyeSAwIC8vIHRva2VuRGF0YTogVG9rZW5JbmZvCgoJLy8gdGVzdHMvY29udHJhY3RzL3Rva2VuX2luZm8uYWxnby50czo3OAoJLy8gdGhpcy50b2tlbk1hcChtaW50ZWRBc3NldCkudmFsdWUgPSB0b2tlbkRhdGEKCXB1c2hieXRlcyAweDc0IC8vICJ0IgoJZnJhbWVfZGlnIC0xMCAvLyBtaW50ZWRBc3NldDogQXNzZXRJRAoJaXRvYgoJY29uY2F0CglmcmFtZV9kaWcgMCAvLyB0b2tlbkRhdGE6IFRva2VuSW5mbwoJYm94X3B1dAoJcmV0c3ViCgoqYWJpX3JvdXRlX2NyZWF0ZUFwcGxpY2F0aW9uOgoJaW50YyAzIC8vIDEKCXJldHVybgoKKmNyZWF0ZV9Ob09wOgoJcHVzaGJ5dGVzIDB4Yjg0NDdiMzYgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbigpdm9pZCIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoICphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY3JlYXRlIE5vT3AKCWVycgoKKmNhbGxfTm9PcDoKCXB1c2hieXRlcyAweDUzNzBmOGQ5IC8vIG1ldGhvZCAiZG9NYXRoKHVpbnQ2NCxzdHJpbmcsc3RyaW5nLHN0cmluZyxzdHJpbmcsc3RyaW5nLHN0cmluZyxzdHJpbmcsc3RyaW5nLHVpbnQ2NCl2b2lkIgoJdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAoJbWF0Y2ggKmFiaV9yb3V0ZV9kb01hdGgKCgkvLyB0aGlzIGNvbnRyYWN0IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZ2l2ZW4gQUJJIG1ldGhvZCBmb3IgY2FsbCBOb09wCgllcnI=", + "clear": "I3ByYWdtYSB2ZXJzaW9uIDEw" + }, + "byteCode": { + "approval": "CiAEgAKACAABJgMAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAxGBSBBgsxGQiNDAbTAAAAAAAAAAAAAAbFAAAAAAAAAAAAAAA2GgoXNhoJVwIANhoIVwIANhoHVwIANhoGVwIANhoFVwIANhoEVwIANhoDVwIANhoCVwIANhoBF4gAAiVDigoAKDEAgAgAAAAAAAAD6FCACAAAAAAAAAH0UIAKYm9uZFN1cHBseWQWUIv/FlCADGNyZWF0ZVN1cHBseWQWUIAOZmVlQnBzUGxhdGZvcm1kFlCADWZlZUJwc0NyZWF0b3JkFlAqUIAIAAAAAAAAAHtQi/YWUIv+KlBJVwgAKKhEVwAIUIv9gCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBJVyAAKKhEVwAgUIv8gGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQSVdgACioRFcAYFCL+4CACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQSUkVI0xSKKhEJCNYUIv6gIACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBJSRUiTFIoqEQkIlhQi/cpUElXQAAoqERXAEBQi/kpUElXQAAoqERXAEBQi/gpUElXQAAoqERXAEBQjACAAXSL9hZQiwC/iSVDgAS4RHs2NhoAjgH/8QCABFNw+Nk2GgCOAfkhAA==", + "clear": "Cg==" + }, + "compilerInfo": { + "compiler": "algod", + "compilerVersion": { + "major": 4, + "minor": 4, + "patch": 1, + "commitHash": "7b607ce4" + } + } +} \ No newline at end of file diff --git a/tests/contracts/artifacts/TokenInfoContract.clear.teal b/tests/contracts/artifacts/TokenInfoContract.clear.teal new file mode 100644 index 000000000..e9f1d65b3 --- /dev/null +++ b/tests/contracts/artifacts/TokenInfoContract.clear.teal @@ -0,0 +1 @@ +#pragma version 10 \ No newline at end of file diff --git a/tests/contracts/token_info.algo.ts b/tests/contracts/token_info.algo.ts new file mode 100644 index 000000000..f7aeee336 --- /dev/null +++ b/tests/contracts/token_info.algo.ts @@ -0,0 +1,80 @@ +import { Contract } from '../../src/lib/index'; + +export type TokenInfo = { + tokenCreator: Address; + p0: uint64; + pQ: uint64; + Q: uint64; + k: uint64; + launchQ: uint64; + + feeBpsPlatform: uint64; + feeBpsCreator: uint64; + + currentBonding: uint64; + + bondingOn: uint64; + + assetId: AssetID; + symbol: bytes<8>; + name: bytes<32>; + assetUrl: bytes<96>; + description: bytes<1024>; + socialWebsite: bytes<256>; + socialX: bytes<64>; + socialTelegram: bytes<64>; + socialDiscord: bytes<64>; +}; + +const BOND_PLATFORM_UNBONDED = 123; +const P0: uint64 = 1000; +const PQ: uint64 = 500; + +// eslint-disable-next-line no-unused-vars +class TokenInfoContract extends Contract { + tokenMap = BoxMap({ prefix: 't' }); + + bondSupply = GlobalStateKey(); + + createSupply = GlobalStateKey(); + + feeBpsPlatform = GlobalStateKey(); + + feeBpsCreator = GlobalStateKey(); + + doMath( + k: uint64, + symbol: string, + name: string, + assetUrl: string, + description: string, + socialWebsite: string, + socialTelegram: string, + socialDiscord: string, + socialX: string, + mintedAsset: AssetID + ): void { + const tokenData: TokenInfo = { + tokenCreator: this.txn.sender, + currentBonding: 0, + bondingOn: BOND_PLATFORM_UNBONDED, + p0: P0, + pQ: PQ, + k: k, + Q: this.bondSupply.value, + launchQ: this.createSupply.value, + feeBpsPlatform: this.feeBpsPlatform.value, + feeBpsCreator: this.feeBpsCreator.value, + assetId: AssetID.fromUint64(mintedAsset.id), + symbol: symbol as bytes<8>, + name: name as bytes<32>, + assetUrl: assetUrl as bytes<96>, + description: description as bytes<1024>, + socialWebsite: socialWebsite as bytes<256>, + socialX: socialX as bytes<64>, + socialTelegram: socialTelegram as bytes<64>, + socialDiscord: socialDiscord as bytes<64>, + }; + this.tokenMap(mintedAsset).value = tokenData; + } +}