mirror of
https://github.com/hanzo-labs/arcadia.git
synced 2026-10-30 18:55:41 +00:00
62 lines
3.2 KiB
JavaScript
62 lines
3.2 KiB
JavaScript
'use strict';
|
|
var addressFieldDrtv = function($compile) {
|
|
return {
|
|
restrict: "E",
|
|
link: function(scope, element, attrs) {
|
|
var varName = attrs.varName;
|
|
var varArr = varName.split('.');
|
|
var placeholder = attrs.placeholder;
|
|
var setValue = function(value) {
|
|
var temp = scope;
|
|
for (var i in varArr) {
|
|
if (i == varArr.length - 1) temp[varArr[i]] = value;
|
|
else {
|
|
temp = temp[varArr[i]];
|
|
}
|
|
}
|
|
}
|
|
scope.addressDrtv = {
|
|
showDerivedAddress: false,
|
|
ensAddressField: '',
|
|
derivedAddress: '',
|
|
readOnly: false
|
|
}
|
|
element.html('<div class=\"col-xs-11\">\n \
|
|
<label translate=\"SEND_addr\"> To Address: </label>\n \
|
|
<input class=\"form-control\" type=\"text\" placeholder=\"' + placeholder + '\" ng-model=\"addressDrtv.ensAddressField\" ng-disabled=\"addressDrtv.readOnly\" ng-class=\"Validator.isValidENSorEtherAddress(' + varName + ') ? \'is-valid\' : \'is-invalid\'\"/>\n \
|
|
<p class="ens-response" ng-show="addressDrtv.showDerivedAddress"> ↳ <span class="mono ng-binding"> {{addressDrtv.derivedAddress}} </span> </p>\n \
|
|
</div>\n \
|
|
<div class=\"col-xs-1 address-identicon-container\">\n \
|
|
<div class=\"addressIdenticon\" title=\"Address Indenticon\" blockie-address=\"{{' + varName + '}}\" watch-var=\"' + varName + '\"></div>\n \
|
|
</div>');
|
|
scope.$watch('addressDrtv.ensAddressField', function() {
|
|
var _ens = new ens();
|
|
if (Validator.isValidAddress(scope.addressDrtv.ensAddressField)) {
|
|
setValue(scope.addressDrtv.ensAddressField);
|
|
if (!Validator.isChecksumAddress(scope.addressDrtv.ensAddressField)) {
|
|
scope.notifier.info(globalFuncs.errorMsgs[35]);
|
|
}
|
|
} else if (Validator.isValidENSAddress(scope.addressDrtv.ensAddressField)) {
|
|
_ens.getAddress(scope.addressDrtv.ensAddressField, function(data) {
|
|
if (data.error) uiFuncs.notifier.danger(data.msg);
|
|
else if (data.data == '0x0000000000000000000000000000000000000000' || data.data == '0x') {
|
|
setValue('0x0000000000000000000000000000000000000000');
|
|
scope.addressDrtv.derivedAddress = '0x0000000000000000000000000000000000000000';
|
|
scope.addressDrtv.showDerivedAddress = true;
|
|
} else {
|
|
setValue(data.data);
|
|
scope.addressDrtv.derivedAddress = ethUtil.toChecksumAddress(data.data);
|
|
scope.addressDrtv.showDerivedAddress = true;
|
|
}
|
|
});
|
|
} else {
|
|
setValue('');
|
|
scope.addressDrtv.showDerivedAddress = false;
|
|
}
|
|
});
|
|
$compile(element.contents())(scope);
|
|
}
|
|
};
|
|
};
|
|
module.exports = addressFieldDrtv;
|