āĻ…āĻ¨ā§āĻŸā§‹āĻ˛āĻœāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡ āĻĒāĻžāĻ‡āĻĨāĻ¨ā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻŸ āĻšā§āĻ•ā§āĻ¤āĻŋ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻšāĻ¯āĻŧāĨ¤ āĻĒāĻžāĻ°ā§āĻŸ 3: āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ API

āĻ…āĻ¨ā§āĻŸā§‹āĻ˛āĻœāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡ āĻĒāĻžāĻ‡āĻĨāĻ¨ā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻŸ āĻšā§āĻ•ā§āĻ¤āĻŋ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻšāĻ¯āĻŧāĨ¤ āĻĒāĻžāĻ°ā§āĻŸ 3: āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ API

āĻ…āĻ¨ā§āĻŸā§‹āĻ˛āĻœāĻŋ āĻŦā§āĻ˛āĻ•āĻšā§‡āĻ‡āĻ¨ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡ āĻĒāĻžāĻ‡āĻĨāĻ¨ā§‡ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻŸ āĻ•āĻ¨ā§āĻŸā§āĻ°āĻžāĻ•ā§āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĻ° āĻŦāĻŋāĻˇāĻ¯āĻŧā§‡ āĻļāĻŋāĻ•ā§āĻˇāĻžāĻŽā§‚āĻ˛āĻ• āĻĒā§āĻ°āĻŦāĻ¨ā§āĻ§ā§‡āĻ° āĻ¸āĻŋāĻ°āĻŋāĻœā§‡āĻ° āĻāĻŸāĻŋ āĻ¤ā§ƒāĻ¤ā§€āĻ¯āĻŧ āĻ…āĻ‚āĻļāĨ¤ āĻ†āĻ—ā§‡āĻ° āĻ˛ā§‡āĻ–āĻžāĻ—ā§āĻ˛ā§‹āĻ¤ā§‡ āĻ†āĻŽāĻ°āĻž āĻĒāĻ°āĻŋāĻšāĻŋāĻ¤ āĻšāĻ¯āĻŧā§‡āĻ›āĻŋ

  1. āĻŦā§āĻ˛āĻ•āĻšā§‡āĻ‡āĻ¨ āĻāĻŦāĻ‚ āĻŦā§āĻ˛āĻ• API
  2. āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ API.

āĻ…āĻ¨ā§āĻŸā§‹āĻ˛āĻœāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡ āĻĒāĻžāĻ‡āĻĨāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻŸ āĻ•āĻ¨ā§āĻŸā§āĻ°āĻžāĻ•ā§āĻŸ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻāĻĒāĻŋāĻ†āĻ‡āĻ•ā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ•āĻ˛ āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¸ā§‡ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•ā§‡ āĻāĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ§āĻžāĻ°āĻŖāĻž āĻ†āĻ›ā§‡, āĻ†āĻ¸ā§āĻ¨ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻļāĻŋāĻ–ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ•āĨ¤ āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ API (āĻ•āĻ¨ā§āĻŸā§āĻ°āĻžāĻ•ā§āĻŸ āĻāĻ•ā§āĻ¸āĻŋāĻ•āĻŋāĻ‰āĻļāĻ¨ āĻāĻĒāĻŋāĻ†āĻ‡)āĨ¤ āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ API-āĻāĻ° 8āĻŸāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāĻ¤ API āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡ āĻ¯āĻž āĻšā§āĻ•ā§āĻ¤āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°āĻĻā§‡āĻ° āĻĄā§‡āĻŸāĻž āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ°, āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻāĻŦāĻ‚ āĻ¯āĻžāĻšāĻžāĻ‡ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻ•āĻ°ā§‡āĨ¤

āĻ¨ā§€āĻšā§‡ 8 API āĻĄā§‡āĻŸāĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ•ā§āĻˇāĻŋāĻĒā§āĻ¤ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡:

āĻ…āĻ¨ā§āĻŸā§‹āĻ˛āĻœāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡ āĻĒāĻžāĻ‡āĻĨāĻ¨ā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻŸ āĻšā§āĻ•ā§āĻ¤āĻŋ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻšāĻ¯āĻŧāĨ¤ āĻĒāĻžāĻ°ā§āĻŸ 3: āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ API

āĻ†āĻ¸ā§āĻ¨ 8 API āĻĄā§‡āĻŸāĻž āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦā§‡āĻ¨ āĻ¤āĻž āĻ˜āĻ¨āĻŋāĻˇā§āĻ āĻ­āĻžāĻŦā§‡ āĻĻā§‡āĻ–ā§‡ āĻ¨ā§‡āĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻ•āĨ¤ āĻāĻ° āĻ†āĻ—ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ…āĻ¨ā§āĻŸā§‹āĻ˛āĻœāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻŸ āĻ•āĻ¨ā§āĻŸā§āĻ°āĻžāĻ•ā§āĻŸ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻŽā§‡āĻ¨ā§āĻŸ āĻŸā§āĻ˛ā§‡ āĻāĻ•āĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻšā§āĻ•ā§āĻ¤āĻŋ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻŸāĻāĻ•ā§āĻ¸ āĻāĻŦāĻ‚ āĻ¨ā§€āĻšā§‡āĻ° āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻžāĻŦāĻ˛ā§€ āĻ…āĻ¨ā§āĻ¸āĻ°āĻŖ āĻ•āĻ°ā§āĻ¨āĨ¤

āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ API āĻ•āĻŋāĻ­āĻžāĻŦā§‡ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŦā§‡āĻ¨

āĻ†āĻŽāĻĻāĻžāĻ¨āĻŋ āĻ•āĻ°āĻžāĻ° āĻĻā§āĻŸāĻŋ āĻ‰āĻĒāĻžāĻ¯āĻŧ āĻ†āĻ›ā§‡ āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ API: ontology.interop.System.Runtime и ontology.interop.Ontology.Runtime. āĻ…āĻ¨ā§āĻŸā§‹āĻ˛āĻœāĻŋ āĻĒāĻžāĻĨā§‡ āĻ¨āĻ¤ā§āĻ¨ āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž APIs āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤ āĻ¨ā§€āĻšā§‡āĻ° āĻ˛āĻžāĻ‡āĻ¨āĻ—ā§āĻ˛āĻŋ API āĻĄā§‡āĻŸāĻž āĻ†āĻŽāĻĻāĻžāĻ¨āĻŋ āĻ•āĻ°ā§‡āĨ¤

from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58, GetCurrentBlockHash

API āĻŦāĻŋāĻœā§āĻžāĻĒā§āĻ¤āĻŋ

Notify āĻĢāĻžāĻ‚āĻļāĻ¨ āĻĒā§āĻ°ā§‹ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻœā§āĻĄāĻŧā§‡ āĻ‡āĻ­ā§‡āĻ¨ā§āĻŸ āĻ¸āĻŽā§āĻĒā§āĻ°āĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ¨ā§€āĻšā§‡āĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖā§‡, āĻ¨ā§‹āĻŸāĻŋāĻĢāĻžāĻ‡ āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻšā§‡āĻ•ā§āĻ¸ āĻ¸ā§āĻŸā§āĻ°āĻŋāĻ‚ "āĻšā§āĻ¯āĻžāĻ˛ā§‹ āĻļāĻŦā§āĻĻ" āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻŦā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ•ā§‡ āĻĒā§āĻ°ā§‹ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻœā§āĻĄāĻŧā§‡ āĻ¸āĻŽā§āĻĒā§āĻ°āĻšāĻžāĻ° āĻ•āĻ°āĻŦā§‡āĨ¤

from ontology.interop.System.Runtime import Notify
def demo():
    Notify("hello world")

āĻ†āĻĒāĻ¨āĻŋ āĻ˛āĻ—āĻ—ā§āĻ˛āĻŋāĻ¤ā§‡ āĻāĻŸāĻŋ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨:

āĻ…āĻ¨ā§āĻŸā§‹āĻ˛āĻœāĻŋ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ•ā§‡ āĻĒāĻžāĻ‡āĻĨāĻ¨ā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻāĻ•āĻŸāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻŸ āĻšā§āĻ•ā§āĻ¤āĻŋ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻšāĻ¯āĻŧāĨ¤ āĻĒāĻžāĻ°ā§āĻŸ 3: āĻ°āĻžāĻ¨āĻŸāĻžāĻ‡āĻŽ API

GetTime API

GetTime āĻĢāĻžāĻ‚āĻļāĻ¨ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŸāĻžāĻ‡āĻŽāĻ¸ā§āĻŸā§āĻ¯āĻžāĻŽā§āĻĒ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡, āĻ¯āĻž āĻ‡āĻ‰āĻ¨āĻŋāĻ•ā§āĻ¸ āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡ āĻ¯ā§‡ āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻ•āĻ˛ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›āĻŋāĻ˛āĨ¤ āĻĒāĻ°āĻŋāĻŽāĻžāĻĒā§‡āĻ° āĻāĻ•āĻ• āĻĻā§āĻŦāĻŋāĻ¤ā§€āĻ¯āĻŧāĨ¤

from ontology.interop.System.Runtime import GetTime
def demo():
    time=GetTime()
    return time # return a uint num

GetCurrentBlockHash API

GetCurrentBlockHash āĻĢāĻžāĻ‚āĻļāĻ¨ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻŦā§āĻ˛āĻ•ā§‡āĻ° āĻšā§āĻ¯āĻžāĻļ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĨ¤

from ontology.interop.Ontology.Runtime import GetCurrentBlockHash
def demo():
    block_hash = GetCurrentBlockHash()
    return block_hash

āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœ āĻāĻŦāĻ‚ āĻĄāĻŋāĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœ āĻ•āĻ°ā§āĻ¨

āĻāĻŸāĻŋ āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻĄāĻŋāĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœā§‡āĻļāĻ¨ āĻĢāĻžāĻ‚āĻļāĻ¨āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻœā§‹āĻĄāĻŧāĻžāĨ¤ āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻāĻ•āĻŸāĻŋ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸāĻ•ā§‡ āĻŦāĻžāĻ‡āĻŸāĻ¯āĻŧāĻžāĻ°ā§‡ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻĄāĻŋāĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ˛āĻžāĻ‡āĻœ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ‡āĻŸāĻ¯āĻŧāĻžāĻ°ā§‡āĻ•ā§‡ āĻ†āĻ¸āĻ˛ āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ¨ā§€āĻšā§‡āĻ° āĻ•ā§‹āĻĄ āĻ¨āĻŽā§āĻ¨āĻž āĻ‡āĻ¨āĻ•āĻžāĻŽāĻŋāĻ‚ āĻĒāĻ°āĻžāĻŽāĻŋāĻ¤āĻŋ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻšā§āĻ•ā§āĻ¤āĻŋāĻ° āĻ¸ā§āĻĨāĻžāĻ¯āĻŧā§€ āĻ¸āĻžā§āĻšāĻ¯āĻŧāĻ¸ā§āĻĨāĻžāĻ¨ā§‡ āĻ¸āĻžā§āĻšāĻ¯āĻŧ āĻ•āĻ°ā§‡āĨ¤ āĻāĻŸāĻŋ āĻšā§āĻ•ā§āĻ¤āĻŋāĻ° āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻ¸ā§āĻŸā§‹āĻ°ā§‡āĻœ āĻĨā§‡āĻ•ā§‡ āĻĄā§‡āĻŸāĻž āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ° āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻāĻŸāĻŋāĻ•ā§‡ āĻŽā§‚āĻ˛ āĻŦāĻ¸ā§āĻ¤ā§āĻ¤ā§‡ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ°āĻŋāĻ¤ āĻ•āĻ°ā§‡āĨ¤

from ontology.interop.System.Runtime import GetTime, CheckWitness, Log, Notify, Serialize, Deserialize
from ontology.interop.System.Storage import Put, Get, GetContext

def Main(operation, args):
    if operation == 'serialize_to_bytearray':
        data = args[0]
        return serialize_to_bytearray(data)
    if operation == 'deserialize_from_bytearray':
        key = args[0]
        return deserialize_from_bytearray(key)
    return False


def serialize_to_bytearray(data):
    sc = GetContext()
    key = "1"
    byte_data = Serialize(data)
    Put(sc, key, byte_data)


def deserialize_from_bytearray(key):
    sc = GetContext()
    byte_data = Get(sc, key)
    data = Deserialize(byte_data)
    return data

Base58ToAddress āĻāĻŦāĻ‚ AddressToBase58

āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ…āĻ¨ā§āĻŦāĻžāĻĻ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻāĻ‡ āĻœā§‹āĻĄāĻŧāĻž. Base58ToAddress āĻĢāĻžāĻ‚āĻļāĻ¨ āĻāĻ•āĻŸāĻŋ base58 āĻāĻ¨āĻ•ā§‹āĻĄ āĻ•āĻ°āĻž āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ‡āĻŸāĻŋāĻ¯āĻŧāĻžāĻ°ā§‡ āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ¯āĻŧ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°ā§‡, āĻāĻŦāĻ‚ AddressToBase58 āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ‡āĻŸāĻŋāĻ¯āĻŧāĻžāĻ°ā§‡ āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻŸāĻŋāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ base58 āĻāĻ¨āĻ•ā§‹āĻĄ āĻ•āĻ°āĻž āĻ āĻŋāĻ•āĻžāĻ¨āĻžāĻ¯āĻŧ āĻ°ā§‚āĻĒāĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°ā§‡āĨ¤

from ontology.interop.Ontology.Runtime import Base58ToAddress, AddressToBase58
def demo():
    base58_addr="AV1GLfVzw28vtK3d1kVGxv5xuWU59P6Sgn"
    addr=Base58ToAddress(base58_addr)
    Log(addr)
    base58_addr=AddressToBase58(addr)
    Log(base58_addr)

āĻ¸āĻžāĻ•ā§āĻˇā§€ āĻšā§‡āĻ• āĻ•āĻ°ā§āĻ¨

CheckWitness(fromAcct) āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻĻā§āĻŸāĻŋ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻžāĻ°āĻŋāĻ¤āĻž āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡:

  • āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĢāĻžāĻ‚āĻļāĻ¨ā§‡āĻ° āĻ•āĻ˛āĻžāĻ° āĻ…ā§āĻ¯āĻžāĻ•ā§āĻŸ āĻĨā§‡āĻ•ā§‡ āĻ•āĻŋāĻ¨āĻž āĻ¤āĻž āĻ¯āĻžāĻšāĻžāĻ‡ āĻ•āĻ°ā§āĻ¨āĨ¤ āĻ¯āĻĻāĻŋ āĻšā§āĻ¯āĻžāĻ (āĻ…āĻ°ā§āĻĨāĻžā§Ž, āĻ¸ā§āĻŦāĻžāĻ•ā§āĻˇāĻ° āĻ¯āĻžāĻšāĻžāĻ‡āĻ•āĻ°āĻŖ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧ), āĻĢāĻžāĻ‚āĻļāĻ¨āĻŸāĻŋ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧāĨ¤
  • āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ•āĻ˛āĻŋāĻ‚ āĻŦāĻ¸ā§āĻ¤ā§ āĻāĻ•āĻŸāĻŋ āĻšā§āĻ•ā§āĻ¤āĻŋ āĻ•āĻŋāĻ¨āĻž āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§āĻ¨. āĻ¯āĻĻāĻŋ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻšā§āĻ•ā§āĻ¤āĻŋ āĻšāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻšā§āĻ•ā§āĻ¤āĻŋ āĻĨā§‡āĻ•ā§‡ āĻ•āĻžāĻ°ā§āĻ¯āĻ•āĻ° āĻ•āĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻ¯āĻžāĻšāĻžāĻ‡āĻ•āĻ°āĻŖ āĻĒāĻžāĻ¸ āĻšāĻ¯āĻŧāĨ¤ āĻ…āĻ°ā§āĻĨāĻžā§Ž, fromAcct GetCallingScriptHash() āĻāĻ° āĻ°āĻŋāĻŸāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨ āĻ•āĻŋāĻ¨āĻž āĻ¤āĻž āĻ¯āĻžāĻšāĻžāĻ‡ āĻ•āĻ°ā§āĻ¨āĨ¤ GetCallingScriptHash() āĻĢāĻžāĻ‚āĻļāĻ¨ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻŸ āĻšā§āĻ•ā§āĻ¤āĻŋāĻ° āĻšā§āĻ•ā§āĻ¤āĻŋ āĻšā§āĻ¯āĻžāĻļ āĻŽāĻžāĻ¨ āĻ¨āĻŋāĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĨ¤

GetCallingScriptHash():

āĻ†āĻ°ā§‹ āĻ—ā§āĻĨā§āĻŦ

from ontology.interop.System.Runtime import CheckWitness
from ontology.interop.Ontology.Runtime import Base58ToAddress
def demo():
    addr=Base58ToAddress("AW8hN1KhHE3fLDoPAwrhtjD1P7vfad3v8z")
    res=CheckWitness(addr)
    return res

āĻ†āĻ°ā§‹ āĻ¤āĻĨā§āĻ¯ āĻĒāĻžāĻ“āĻ¯āĻŧāĻž āĻ¯āĻžāĻŦā§‡ āĻ—ā§āĻĨā§āĻŦ. āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§‡ āĻ†āĻŽāĻ°āĻž āĻĒāĻ°āĻŋāĻšāĻ¯āĻŧ āĻ•āĻ°āĻŋāĻ¯āĻŧā§‡ āĻĻā§‡āĻŦ āĻ¨ā§‡āĻŸāĻŋāĻ­ āĻāĻĒāĻŋāĻ†āĻ‡āĻ…āĻ¨ā§āĻŸā§‹āĻ˛āĻœāĻŋ āĻ¸ā§āĻŽāĻžāĻ°ā§āĻŸ āĻšā§āĻ•ā§āĻ¤āĻŋāĻ¤ā§‡ āĻ•ā§€āĻ­āĻžāĻŦā§‡ āĻ¸āĻŽā§āĻĒāĻĻ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¤āĻž āĻļāĻŋāĻ–āĻ¤ā§‡āĨ¤

āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻŸāĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ•āĻĻā§‡āĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻ…āĻ¨ā§āĻŦāĻžāĻĻ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡ āĻšā§āĻ¯āĻžāĻļāĻ°ā§‡āĻŸ āĻāĻŦāĻ‚ āĻļā§‡āĻ¯āĻŧāĻžāĻ° āĻŦāĻŋāĻļā§‡āĻˇ āĻ•āĻ°ā§‡ āĻ…āĻ¨ā§āĻŸā§‹āĻ˛āĻœāĻŋ āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯āĨ¤

āĻ†āĻĒāĻ¨āĻŋ āĻ•āĻŋ āĻāĻ•āĻœāĻ¨ āĻĄā§‡āĻ­ā§‡āĻ˛āĻĒāĻžāĻ°? āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻĒā§āĻ°āĻ¯ā§āĻ•ā§āĻ¤āĻŋ āĻ¸āĻŽā§āĻĒā§āĻ°āĻĻāĻžāĻ¯āĻŧā§‡ āĻ¯ā§‹āĻ— āĻĻāĻŋāĻ¨ āĻ…āĻ¨ā§ˆāĻ•ā§āĻ¯. āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, āĻāĻ•āĻŸāĻŋ āĻ•āĻŸāĻžāĻ•ā§āĻˇāĻĒāĻžāĻ¤ āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€ āĻ•ā§‡āĻ¨ā§āĻĻā§āĻ° āĻ…āĻ¨ā§āĻŸā§‹āĻ˛āĻœāĻŋ, āĻ†āĻĒāĻ¨āĻŋ āĻ¸ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ†āĻ°āĻ“ āĻ¸āĻ°āĻžā§āĻœāĻžāĻŽ, āĻĄāĻ•ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻļāĻ¨ āĻāĻŦāĻ‚ āĻ†āĻ°āĻ“ āĻ…āĻ¨ā§‡āĻ• āĻ•āĻŋāĻ›ā§ āĻ–ā§āĻāĻœā§‡ āĻĒā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨āĨ¤

āĻŦāĻŋāĻ•āĻžāĻļāĻ•āĻžāĻ°ā§€āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ•āĻžāĻœāĻ—ā§āĻ˛āĻŋ āĻ–ā§āĻ˛ā§āĻ¨āĨ¤ āĻ•āĻžāĻœāĻŸāĻŋ āĻ¸āĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¸ā§āĻ•āĻžāĻ° āĻĒāĻžāĻ¨āĨ¤

āĻ†āĻŦā§‡āĻĻāĻ¨ āĻ•āĻ°ā§āĻ¨ āĻļāĻŋāĻ•ā§āĻˇāĻžāĻ°ā§āĻĨā§€āĻĻā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ…āĻ¨ā§āĻŸā§‹āĻ˛āĻœāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ­āĻž āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻœāĻ¨ā§āĻ¯

āĻ¤āĻ¤ā§āĻ¤ā§āĻŦāĻŦāĻŋāĻĻā§āĻ¯āĻž

āĻ…āĻ¨ā§āĻŸā§‹āĻ˛āĻœāĻŋ āĻ“āĻ¯āĻŧā§‡āĻŦāĻ¸āĻžāĻ‡āĻŸ - GitHub - āĻ…āĻ¨ā§ˆāĻ•ā§āĻ¯ - āĻŸā§‡āĻ˛āĻŋāĻ—ā§āĻ°āĻžāĻŽ āĻ°āĻžāĻļāĻŋāĻ¯āĻŧāĻžāĻ¨ - Twitter - Reddit

āĻ‰āĻ¤ā§āĻ¸: www.habr.com

āĻāĻ•āĻŸāĻŋ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻœā§āĻĄāĻŧā§āĻ¨