Skip to content

Commit 0451f9e

Browse files
author
Grigory Ivanov
committed
BetterToken verified assets trading
1 parent 0c122bf commit 0451f9e

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ This repository is open for contribution and we welcome all pull requests. At th
77
Examples of well documented scripts:
88
- [HotPotatoToken](/smart-assets/HotPotatoToken.ride)
99
- [Taxation](/smart-assets/Taxation.ride)
10+
- [VerifiedTrading](/smart-assets/VerifiedTrading.ride)
1011

1112

1213
**Note:** There are two folders with scripts for accounts and assets, please add your script to proper directories.
1314

1415

1516
## Discussions
1617
You are welcome to discuss scripts in this repository with issues, but consider that everybody can contribute to the repo, but not obliged to respond to opened issues.
17-

smart-assets/VerifiedTrading.ride

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# Set Smart asset to trade only with BetterTokens verified assets and Waves.
2+
#
3+
# BetterTokens Oracle address.
4+
let addr = Address(base58'3P6t5mKGwVDkyjFhtUqw4NnecyC3DRpLfkw')
5+
6+
match (tx) {
7+
case e:ExchangeTransaction =>
8+
# Determine if Smart asset is paired with Waves.
9+
let withWaves = (!isDefined(e.sellOrder.assetPair.priceAsset) || !isDefined(e.sellOrder.assetPair.amountAsset))
10+
11+
if(withWaves == false) then {
12+
# If paired with another token, check BetterToken status.
13+
#
14+
# We cannot determine if Smart asset is amount or price asset in the pair
15+
# that is why we check in both places.
16+
let priceAssetKey = "status_<" + toBase58String(extract(e.sellOrder.assetPair.priceAsset)) + ">"
17+
let priceAssetInOracle = (getInteger(addr, priceAssetKey) == 2)
18+
19+
let amountAssetKey = "status_<" + toBase58String(extract(e.sellOrder.assetPair.amountAsset)) + ">"
20+
let amountAssetInOracle = (getInteger(addr, priceAssetKey) == 2)
21+
22+
priceAssetInOracle || amountAssetInOracle
23+
} else {
24+
true
25+
}
26+
case _ => true
27+
}

0 commit comments

Comments
 (0)