Skip to content

Commit

Permalink
Issue 759 (#2122)
Browse files Browse the repository at this point in the history
* feat: handle single use lock tag

Signed-off-by: Miles Zhang <mingchang555@hotmail.com>

* feat: token collection suspicious tag not include chinese

Signed-off-by: Miles Zhang <mingchang555@hotmail.com>

---------

Signed-off-by: Miles Zhang <mingchang555@hotmail.com>
  • Loading branch information
zmcNotafraid committed Aug 7, 2024
1 parent 7825000 commit 67c6515
Show file tree
Hide file tree
Showing 6 changed files with 25 additions and 3 deletions.
4 changes: 4 additions & 0 deletions app/models/ckb_sync/api.rb
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,10 @@ def btc_time_code_hash
Settings.btc_time_code_hash
end

def single_use_lock_code_hash
Settings.single_use_lock_code_hash
end

METHOD_NAMES.each do |name|
define_method name do |*params|
call_rpc(name, params:)
Expand Down
2 changes: 1 addition & 1 deletion app/models/token_collection.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
class TokenCollection < ApplicationRecord
VALID_TAGS = ["invalid", "suspicious", "out-of-length-range", "rgb++", "layer-1-asset", "layer-2-asset"]
VALID_TAGS = ["invalid", "suspicious", "out-of-length-range", "rgb++", "layer-1-asset", "layer-2-asset", "supply-limited"]

enum standard: { cota: "cota", spore: "spore", m_nft: "m_nft", nrc721: "nrc721" }

Expand Down
11 changes: 9 additions & 2 deletions app/workers/token_collection_tag_worker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ def mark_tags(token_collection)
["suspicious"]
elsif out_of_length?(token_collection.name)
["out-of-length-range"]
elsif single_use_lock?(token_collection.creator.address_hash)
["supply-limited"]
elsif rgbpp_lock?(token_collection.creator.address_hash)
["rgb++", "layer-1-asset"]
else
Expand All @@ -29,11 +31,11 @@ def mark_tags(token_collection)
end

def invalid_char?(name)
!name.ascii_only?
!name.ascii_only? && (name =~ /^[\u4E00-\u9FFF]+$/).nil?
end

def invisible_char?(name)
(name =~ /^[\x21-\x7E]+(?:\s[\x21-\x7E]+)?$/).nil?
(name =~ /^[\x21-\x7E\u4E00-\u9FFF]+(?:\s[\x21-\x7E\u4E00-\u9FFF]+)?$/).nil?
end

def out_of_length?(name)
Expand All @@ -48,4 +50,9 @@ def rgbpp_lock?(issuer_address)
address_code_hash = CkbUtils.parse_address(issuer_address).script.code_hash
issuer_address.present? && CkbSync::Api.instance.rgbpp_code_hash.include?(address_code_hash)
end

def single_use_lock?(issuer_address)
address_script = CkbUtils.parse_address(issuer_address).script
issuer_address.present? && CkbSync::Api.instance.single_use_lock_code_hash == address_script.code_hash && address_script.hash_type == "data1"
end
end
7 changes: 7 additions & 0 deletions app/workers/xudt_tag_worker.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ def mark_tags(udt)
["utility"]
elsif !first_xudt?(udt.symbol, udt.block_timestamp)
["suspicious"]
elsif single_use_lock?(udt.issuer_address)
["supply-limited"]
elsif rgbpp_lock?(udt.issuer_address)
["rgb++", "layer-1-asset", "supply-limited"]
else
Expand Down Expand Up @@ -56,6 +58,11 @@ def rgbpp_lock?(issuer_address)
issuer_address.present? && CkbSync::Api.instance.rgbpp_code_hash.include?(address_code_hash)
end

def single_use_lock?(issuer_address)
address_script = CkbUtils.parse_address(issuer_address).script
issuer_address.present? && CkbSync::Api.instance.single_use_lock_code_hash == address_script.code_hash && address_script.hash_type == "data1"
end

def utility_lp_token?(args)
args.length == 74
end
Expand Down
2 changes: 2 additions & 0 deletions config/settings.mainnet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,3 +86,5 @@ rgbpp_code_hash:
# btc time code hash
btc_time_code_hash:
- "0x70d64497a075bd651e98ac030455ea200637ee325a12ad08aff03f1a117e5a62"

single_use_lock_code_hash: "0x8290467a512e5b9a6b816469b0edabba1f4ac474e28ffdd604c2a7c76446bbaf"
2 changes: 2 additions & 0 deletions config/settings.testnet.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,3 +92,5 @@ rgbpp_code_hash:
btc_time_code_hash:
- "0x00cdf8fab0f8ac638758ebf5ea5e4052b1d71e8a77b9f43139718621f6849326"
- "0x80a09eca26d77cea1f5a69471c59481be7404febf40ee90f886c36a948385b55"

single_use_lock_code_hash: "0x8290467a512e5b9a6b816469b0edabba1f4ac474e28ffdd604c2a7c76446bbaf"

0 comments on commit 67c6515

Please sign in to comment.