public override WalletKeyPair CreateKey(byte[] privateKey) { WalletKeyPair account = base.CreateKey(privateKey); OnCreateAccount(account); AddContract(VerificationContract.CreateSignatureContract(account.PublicKey)); return(account); }
private void RestoreAccountsDialog_Load(object sender, EventArgs e) { IEnumerable <KeyPair> keys = Program.CurrentWallet.GetKeys(); keys = keys.Where(account => Program.CurrentWallet.GetContracts(account.PublicKeyHash).All(contract => !contract.IsStandard)); IEnumerable <VerificationContract> contracts = keys.Select(p => VerificationContract.CreateSignatureContract(p.PublicKey)); listView1.Items.AddRange(contracts.Select(p => new ListViewItem(p.Address) { Tag = p }).ToArray()); }
UInt160[] IVerifiable.GetScriptHashesForVerifying() { if (Blockchain.Default == null) { throw new InvalidOperationException(); } if (PrevHash != Blockchain.Default.CurrentBlockHash) { throw new InvalidOperationException(); } ECPoint[] validators = Blockchain.Default.GetValidators(); if (validators.Length <= ValidatorIndex) { throw new InvalidOperationException(); } return(new[] { VerificationContract.CreateSignatureContract(validators[ValidatorIndex]).ScriptHash }); }
public override WalletKeyPair CreateKey(byte[] privateKey, KeyType nVersion = KeyType.Transparent) { if (nVersion == KeyType.Transparent) { WalletKeyPair account = base.CreateKey(privateKey, nVersion); OnCreateAccount(account); AddContract(VerificationContract.CreateSignatureContract(account.PublicKey)); return(account); } else if (nVersion == KeyType.Anonymous) { WalletKeyPair account = base.CreateKey(privateKey, nVersion); SpendingKey sKey; sKey = new SpendingKey(new UInt256(privateKey)); OnCreateAccount(account); AddContract(VerificationContract.CreateSignatureAnonymousContract(account.PublicKey, sKey.address())); return(account); } else { return(null); } }
public RestoreAccountsViewModel( IMessagePublisher messagePublisher) { this.messagePublisher = messagePublisher; var keys = ApplicationContext.Instance.CurrentWallet.GetKeys(); keys = keys.Where(account => ApplicationContext.Instance.CurrentWallet.GetContracts(account.PublicKeyHash).All(contract => !contract.IsStandard)); this.Accounts = new ObservableCollection <SelectableVerificationContract>(keys.Select(p => VerificationContract.CreateSignatureContract(p.PublicKey)).Select(p => new SelectableVerificationContract(this, p))); }