应用场景
基于Semantic合约的Token 2049活动
下面会通过具体的应用场景,来演示Semantic合约的使用过程。
整体的业务流程包括:
初始化合约
指定特定活动
生成SBT勋章
初始化合约
对应生成活动的Class和Predicate:调用方法initialize(owner.address,"Relation SBT","SBT","baseURI","schemaURI,["Activity"],["winner","2"]), 代表生成的是2049活动的勋章。
第一参数owner.address代表合约的部署者的地址
第二参数"Relation Activity Token2049"代表合约的名称
第三个参数"SBT",代表当前Token的symbol
第四个参数"baseURI",代表当前Token的metadata地址目录
第五个参数"schemaURI",代表当前Token的RDF数据对应的schema的地址
第六个参数"RelationActivity",代表当前活动的主体Class
第七个参数"WinnerIs",代表当前活动的Predicate,Predicate Type是String
定义主语
调用方法addSubject("Token2049","RelationActivity")。
第一参数"Token2049",活动的主语,即本次活动是“RelationActivity_Token2049”
第二个参数"RelationActivity",是在初始化时创建的Class Name
方法调用成功后会生成一个主语的索引,也就是Subject Index,用于保存时与PredicateAndObject关联。比如此时返回为1.
生成SBT勋章
调用方法mint("address",1,[],[1,"address"],[],[],[],[],[]) 。调用该方法后,相当于给地址"address" 生成了一个“RelationActivity_Token2049 WinnerIs address”的SBT
第一参数"address",是该SBT的所有者
第二个参数1,是Subject Index,此处为第二步生成的“Token2049”
第三个参数[],是Integer类型的PredicateAndObject,此处为空
第四个参数[1,"address"],是String类型的PredicateAndObject,1代表初始化的谓词"winner is", "address"指类型为String的Object
第五个参数[],是Address类型的PredicateAndObject,此处为空
第六个参数[],是Subject类型的PredicateAndObject,此处为空
第七个参数[],是BlankNode类型的PredicateAndObject,此处为空
Last updated