App 552635992
ID 552635992
Created | 18726343(19 Jan 2022, 09:55:40 UTC) |
Creator | K3G7XHS3V4547EFGKMYXLVIEBEGG6ZYDU5IWM73D3U75RNIBPF2KPKRCWA |
Creation Tx | MQSIXIDFRVGLKYSGWQYCZTVYKTJNLD377BRSDLOPCNZTFMLCDH6A |
App Address | |
Closed | |
Extra Pages | 0 |
Global State | |
---|---|
Byte Slices | UInt |
0 | 0 |
Local State | |
Byte Slices | UInt |
0 | 16 |
Accounts
Users Opted-In
Transactions
Approval Program
#pragma version 4
intcblock 0 1 1000 997 5 18446744073709551615 1000000
bytecblock 0x6f 0x65 0x70 0x6131 0x6132 0x6c74 0x73776170 0x6d696e74 0x74 0x6331 0x7031 0x6332 0x7032
txn OnCompletion
pushint 4
==
txn OnCompletion
intc 4 // 5
==
||
txn OnCompletion
pushint 2
==
||
bnz label1
txn OnCompletion
intc_1 // 1
==
txn NumAppArgs
intc_0 // 0
==
&&
bnz label2
txna ApplicationArgs 0
pushbytes 0x637265617465 // "create"
==
bnz label2
txn OnCompletion
intc_1 // 1
==
txna ApplicationArgs 0
pushbytes 0x626f6f747374726170 // "bootstrap"
==
&&
bnz label3
gtxn 2 AssetAmount
gtxn 2 Amount
+
store 52
intc_0 // 0
bytec_3 // "a1"
app_local_get
store 101
intc_0 // 0
load 101
asset_holding_get AssetBalance
assert
store 1
intc_0 // 0
bytec 4 // "a2"
app_local_get
store 102
load 102
bnz label4
intc_0 // 0
balance
intc_0 // 0
min_balance
-
txn Fee
+
gtxn 0 Amount
-
store 2
b label5
label4:
intc_0 // 0
load 102
asset_holding_get AssetBalance
assert
store 2
label5:
intc_0 // 0
bytec 5 // "lt"
app_local_get
store 103
bytec_0 // "o"
load 101
itob
concat
store 111
intc_0 // 0
load 111
app_local_get
store 61
bytec_0 // "o"
load 102
itob
concat
store 112
intc_0 // 0
load 112
app_local_get
store 62
bytec_0 // "o"
load 103
itob
concat
store 113
intc_0 // 0
load 113
app_local_get
store 63
intc_0 // 0
bytec_2 // "p"
app_local_get
store 64
load 1
load 61
-
store 71
load 2
load 62
-
store 72
txn Sender
bytec_1 // "e"
concat
load 101
itob
concat
store 121
txn Sender
bytec_1 // "e"
concat
load 102
itob
concat
store 122
txn Sender
bytec_1 // "e"
concat
load 103
itob
concat
store 123
txna ApplicationArgs 0
pushbytes 0x72656465656d // "redeem"
==
bnz label6
txna ApplicationArgs 0
pushbytes 0x66656573 // "fees"
==
bnz label7
txna ApplicationArgs 0
bytec 6 // "swap"
==
txna ApplicationArgs 0
bytec 7 // "mint"
==
||
txna ApplicationArgs 0
pushbytes 0x6275726e // "burn"
==
||
bnz label8
err
label7:
load 103
dup
assert
gtxn 2 XferAsset
==
assert
gtxn 2 AssetAmount
assert
gtxn 2 AssetReceiver
global CreatorAddress
==
assert
load 63
gtxn 2 AssetAmount
-
store 63
load 64
gtxn 2 AssetAmount
-
store 64
intc_0 // 0
bytec_2 // "p"
load 64
app_local_put
intc_0 // 0
load 113
load 63
app_local_put
intc_1 // 1
return
label6:
gtxn 2 AssetReceiver
gtxn 2 Receiver
gtxn 2 TypeEnum
intc_1 // 1
==
select
txna Accounts 1
==
assert
load 52
assert
intc_0 // 0
bytec_0 // "o"
gtxn 2 XferAsset
itob
concat
dup2
app_local_get
load 52
-
app_local_put
intc_1 // 1
txn Sender
bytec_1 // "e"
concat
gtxn 2 XferAsset
itob
concat
dup2
app_local_get
load 52
-
dup
bz label9
app_local_put
intc_1 // 1
return
label9:
pop
app_local_del
intc_1 // 1
return
label8:
global LatestTimestamp
intc_0 // 0
bytec 8 // "t"
app_local_get
-
dup
store 250
bz label10
intc_0 // 0
bytec 9 // "c1"
app_local_get
intc_0 // 0
bytec 10 // "p1"
app_local_get
load 250
mulw
swap
bnz label10
addw
intc 5 // 18446744073709551615
intc_1 // 1
addw
divmodw
store 251
pop
pop
pop
intc_0 // 0
bytec 11 // "c2"
app_local_get
intc_0 // 0
bytec 12 // "p2"
app_local_get
load 250
mulw
swap
bnz label10
addw
intc 5 // 18446744073709551615
intc_1 // 1
addw
divmodw
store 252
pop
pop
pop
intc_0 // 0
bytec 9 // "c1"
load 251
app_local_put
intc_0 // 0
bytec 11 // "c2"
load 252
app_local_put
intc_0 // 0
bytec 8 // "t"
global LatestTimestamp
app_local_put
label10:
gtxn 3 AssetAmount
gtxn 3 Amount
+
store 53
txna Accounts 1
txn Sender
!=
assert
load 103
bz label11
intc_0 // 0
load 103
asset_holding_get AssetBalance
assert
store 6
intc_0 // 0
~
load 6
-
load 63
+
store 4
txna ApplicationArgs 0
bytec 6 // "swap"
==
bnz label12
load 103
gtxn 4 XferAsset
==
assert
label11:
txna ApplicationArgs 0
bytec 7 // "mint"
==
bnz label13
txna Accounts 1
gtxn 4 Sender
==
assert
gtxn 4 AssetAmount
load 71
mulw
load 4
intc_1 // 1
mulw
divmodw
pop
pop
swap
pop
dup
store 16
load 52
-
store 201
gtxn 4 AssetAmount
load 72
mulw
load 4
intc_1 // 1
mulw
divmodw
pop
pop
swap
pop
dup
store 17
load 53
-
store 202
load 16
load 17
&&
assert
load 71
load 16
-
store 81
load 72
load 17
-
store 82
load 4
gtxn 4 AssetAmount
-
store 83
b label14
label13:
txna Accounts 1
gtxn 2 Sender
==
assert
load 71
load 52
+
store 81
load 72
load 53
+
store 82
load 4
intc_0 // 0
==
bnz label15
load 52
load 4
mulw
load 71
intc_1 // 1
mulw
divmodw
pop
pop
swap
pop
load 53
load 4
mulw
load 72
intc_1 // 1
mulw
divmodw
pop
pop
swap
pop
dup2
>
select
dup
load 4
+
store 83
gtxn 4 AssetAmount
-
store 203
b label14
label15:
intc_0 // 0
bytec 5 // "lt"
gtxn 4 XferAsset
dup
store 103
app_local_put
bytec_0 // "o"
load 103
itob
concat
store 113
intc_0 // 0
load 103
asset_holding_get AssetBalance
assert
assert
load 103
load 101
!=
assert
load 103
load 102
!=
assert
gtxn 4 AssetAmount
intc_2 // 1000
+
dup
mulw
store 240
load 52
load 53
mulw
store 241
dup2
<
bnz label16
==
assert
load 240
load 241
<=
assert
label16:
gtxn 4 AssetAmount
intc_2 // 1000
+
intc_1 // 1
+
dup
mulw
store 240
load 52
load 53
mulw
store 241
dup2
>
bnz label17
==
assert
load 240
load 241
>
assert
label17:
intc_2 // 1000
store 63
load 4
gtxn 4 AssetAmount
intc_2 // 1000
+
+
store 83
b label14
label12:
txna Accounts 1
gtxn 2 Sender
==
assert
gtxn 2 XferAsset
load 101
==
gtxn 3 XferAsset
load 102
==
&&
dup
store 100
bnz label18
gtxn 2 XferAsset
load 102
==
gtxn 3 XferAsset
load 101
==
&&
assert
load 72
store 18
load 71
store 19
b label19
label18:
load 71
store 18
load 72
store 19
label19:
txna ApplicationArgs 1
pushbytes 0x6669 // "fi"
==
bnz label20
txna ApplicationArgs 1
pushbytes 0x666f // "fo"
==
assert
load 53
intc_2 // 1000
*
load 18
mulw
load 19
load 53
-
intc_3 // 997
mulw
divmodw
pop
pop
swap
pop
intc_1 // 1
+
dup
store 21
intc_0 // 0
>
load 53
load 19
<
&&
assert
load 52
load 21
-
load 100
bz label21
store 201
load 71
load 21
+
store 81
load 72
load 53
-
store 82
b label22
label21:
store 202
load 72
load 21
+
store 82
load 71
load 53
-
store 81
b label22
label20:
load 52
dup
store 21
intc_3 // 997
*
load 19
mulw
load 18
intc_2 // 1000
*
load 52
intc_3 // 997
*
addw
divmodw
pop
pop
swap
pop
dup
store 20
intc_0 // 0
>
load 20
load 19
<
&&
assert
load 20
load 53
-
load 100
bz label23
store 202
load 71
load 52
+
store 81
load 72
load 20
-
store 82
b label22
label23:
store 201
load 71
load 20
-
store 81
load 72
load 52
+
store 82
b label22
label22:
load 21
intc 4 // 5
*
load 4
mulw
pushint 20000
load 18
mulw
divmodw
pop
pop
swap
pop
dup
store 42
load 4
+
store 83
b label14
label3:
intc_0 // 0
bytec_3 // "a1"
txna ApplicationArgs 1
btoi
dup
store 101
app_local_put
intc_0 // 0
bytec 4 // "a2"
txna ApplicationArgs 2
btoi
dup
store 102
app_local_put
load 101
asset_params_get AssetUnitName
assert
pushbytes 0x2d // "-"
concat
pushbytes 0x414c474f // "ALGO"
load 102
bz label24
pop
load 102
asset_params_get AssetUnitName
assert
label24:
concat
gtxn 2 ConfigAssetName
dup
len
pushint 15
swap
substring3
==
return
label14:
intc_0 // 0
bytec_2 // "p"
load 64
load 42
+
app_local_put
intc_0 // 0
load 113
load 63
load 42
+
load 203
+
app_local_put
intc_0 // 0
load 111
load 61
load 201
+
app_local_put
intc_0 // 0
load 112
load 62
load 202
+
app_local_put
intc_0 // 0
pushbytes 0x7331 // "s1"
load 81
app_local_put
intc_0 // 0
pushbytes 0x7332 // "s2"
load 82
app_local_put
intc_0 // 0
bytec 10 // "p1"
load 82
intc 6 // 1000000
mulw
load 81
intc_1 // 1
mulw
divmodw
pop
pop
swap
pop
app_local_put
intc_0 // 0
bytec 12 // "p2"
load 81
intc 6 // 1000000
mulw
load 82
intc_1 // 1
mulw
divmodw
pop
pop
swap
pop
app_local_put
intc_0 // 0
pushbytes 0x696c74 // "ilt"
load 83
app_local_put
load 203
bz label25
intc_1 // 1
load 123
dup2
app_local_get
load 203
+
app_local_put
label25:
load 201
bz label26
intc_1 // 1
load 121
dup2
app_local_get
load 201
+
app_local_put
label26:
load 202
bz label27
intc_1 // 1
load 122
dup2
app_local_get
load 202
+
app_local_put
label27:
intc_1 // 1
return
label2:
intc_1 // 1
return
label1:
intc_0 // 0
return
Clear Program
#pragma version 4
pushint 1
Transactions
Tx ID | Type | Sender | Receiver | Amount | Fee |
---|