2 | | - | {-# SCRIPT_TYPE ACCOUNT #-} |
---|
3 | | - | {-# CONTENT_TYPE DAPP #-} |
---|
4 | | - | let pubKey = fromBase64String("base64:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDdtRCFr5mgIRlyUiLAkbat/B8b5INC+1jGemO8MBM9mACSsFEWTY2Baw8/pXqisUL6MS4eg2p8SztclxVG5NB9wGaE7p4dg4qiRXVOaAqvLzDbJtnWvhrBQrkZKaA1FsWffgJ6syswp94ekCc06NLRwy4YhG1vpM2qHZmerCFC9QIDAQAB") |
---|
5 | | - | |
---|
6 | | - | let priv = "HkKm5jKqD4FyCvPFPpsEFehGobCF8HAnsA7pAfD8pdr1" |
---|
7 | | - | |
---|
8 | | - | let txId1 = toBytes("99gi5tM5kUeKRU3Hzgykrv5u9YU5woEFcaF5xRz76j6V") |
---|
9 | | - | |
---|
10 | | - | let sign = fromBase64String("base64:m0zwP9hJvt6oMXY8PGO1NFzLoDOPQ6MbMmxnfqpwFzxgOYMSOk+aV7PgjzuhCramncA2SM5L1/4Ga8LlanPIKimuAYndFMLKLJ7tp3S/oW/TiqU//yWBohRsuEIFjgS3Kq/kZ3HvnmBWfFFlgVRjo3OeDs1b7XLHUHsXLKOLgyU=") |
---|
11 | | - | |
---|
12 | | - | let RSAPUBLIC = fromBase64String("base64:MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqlAiANSmBpDHYKP9sKgeN/l1bAb28g/tGlgDkwT5FiMN4X3pwdvdxE7mvSR8/41dU9rx4jG+6tZpb1ULVDPs431tR2IRaTXw5Cj+Ac2vhL+5JamCerGD1UW+bh/EGQtxo8W3YLDrofXB5QHJx4Pkz2Kgf+oS/C8hHuB/U4krO76U0507GTjZPP9kRQ0uLSMeqQXt8wXS+nMp5wajqxPpDLMaSREgsKwv/AEkP4dzpTYbikLBYl4qtdJsD84HLFSkiwd3BhcOrPjoIYmLxQuBD5TIMKTKD3sdZgaY9rsyqx3A00innyxD6zp3b4gFpUOX8JxKZdEC2myEqleNgg7GzwIDAQAB") |
---|
13 | | - | |
---|
14 | | - | let privateKey = "MIICXgIBAAKBgQDGV1yyjdQDx8hfbZI/8QIRnvFgDE1HyNUg2HHllrbSXxRzK62uGagkRviGZoSgB20U/kk/N0s0B5wr5sK6uhgXOssAE9bwaqvESl1JKpb+G6oz2NtqtWdkS/AwHfboJLwx182I8aymN8KF5pfEHmo00gUJum6IdJWAEF0nK5HS9wIDAQABAoGBAMRFbVjQGs8G41Tzo/cccvSm+asXYV448hdHuSX+B7qUFjOGNJ+FiiskBAlT58hIsPxGSouBFy1MnpGfEHIhd3W+GLN8o208g10bzmoYE0a7Wmc6KwXrkhu62XMoKK3rEoAzxzD8NWpC5DAAjUG39OsWQdbzwRal1nxlbyPkucZxAkEA8yIq1b+Z3ZIvBcIEP57xc+Y/IgssGvc7feTbrdsVWwtRq04MlI01nYEEP9XIC3JEtlxZ7C8zTpjoK/cylPGUKQJBANDWYCpk34mivZP7hM7v5BTi89TjOyuvpePPOA7IUu/WOo5bLLk+0dppOLduNUpoNZnjiZu+jSmA134pqGN2Eh8CQCHuMMAnvxdW4U0SaHlgex3Lkh/0IzGYMys8lxPKMU7FY55ehA7vLf5PFQK7mPFP/xrcBIibhbOAT1ZjZyG2HRECQQDDmBUnf6TR3wdaA1eHDa18Vnfy6wQvTWq87Abf6YWsNeRQElrYAVtBCg3h1ym4T9PsFu16XkUOGys5ccDRrvMXAkEAhisdzcp7pAAIRZ7gyN2ude0DUI26W4dLd8LoE3wTJIu6p5jiApWotBbxehVlY9TVtzQTA0NXYflmVKfotVPgZQ==" |
---|
15 | | - | |
---|
16 | | - | let publicKey = fromBase64String("base64:MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDGV1yyjdQDx8hfbZI/8QIRnvFgDE1HyNUg2HHllrbSXxRzK62uGagkRviGZoSgB20U/kk/N0s0B5wr5sK6uhgXOssAE9bwaqvESl1JKpb+G6oz2NtqtWdkS/AwHfboJLwx182I8aymN8KF5pfEHmo00gUJum6IdJWAEF0nK5HS9wIDAQAB") |
---|
17 | | - | |
---|
18 | | - | let txId = toBytes("base64:OTlnaTV0TTVrVWVLUlUzSHpneWtydjV1OVlVNXdvRUZjYUY1eFJ6NzZqNlY=") |
---|
19 | | - | |
---|
20 | | - | let signature = toBytes("base64:xTZMTrqOumK2lP4UNi/U7Z/T41Nq1h4AtfbuoI74TuomM/LafIRw+wmledW3p5bTuNYfBBf5+JpCz545STWCC+/Zq1Xd6flBBCzXI1eq+6YFP4Qiri/RKquD9w2O5x0DFX2NwfrxzKLgtMaiQtL6ndt6farvotbIh0Z3YtwH+Nc=") |
---|
21 | | - | |
---|
22 | | - | @Callable(i) |
---|
23 | | - | func checkSign (number,TxId,Signature,PublicKey) = { |
---|
24 | | - | let gameId = toBytes(TxId) |
---|
25 | | - | let a = rsaVerify(SHA256, gameId, Signature, PublicKey) |
---|
26 | | - | WriteSet([DataEntry((number + "_Pub"), PublicKey), DataEntry((number + "_Private"), privateKey), DataEntry((number + "_TXID"), gameId), DataEntry((number + "_Signature"), Signature), DataEntry((number + "_Verify"), a)]) |
---|
27 | | - | } |
---|
28 | | - | |
---|
29 | | - | |
---|
30 | | - | @Verifier(tx) |
---|
31 | | - | func verify () = true |
---|
32 | | - | |
---|
| 2 | + | {-# CONTENT_TYPE EXPRESSION #-} |
---|
| 3 | + | let PubKey1 = base58'854p8BYzrj6yBPRPmfQur3oF1Rjc1AJ548qRp5FT5kDa' |
---|
| 4 | + | let PubKey2 = base58'DKGFPozLrsiR8NM4NJzqQaBYC8NyGYjuw2hDYicQVjco' |
---|
| 5 | + | let sig1 = if (sigVerify(tx.bodyBytes, tx.proofs[0], PubKey1)) |
---|
| 6 | + | then 1 |
---|
| 7 | + | else 0 |
---|
| 8 | + | let sig2 = if (sigVerify(tx.bodyBytes, tx.proofs[1], PubKey2)) |
---|
| 9 | + | then 1 |
---|
| 10 | + | else 0 |
---|
| 11 | + | ((sig1 + sig2) > 0) |
---|