;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Logo Pagbenk Seu dinheiro rende mais
Topo

Corretoras buscam formas de popularizar uso do bitcoin no Brasil

Reprodução
Imagem: Reprodução

Téo Takar

Do UOL, em São Paulo

08/08/2018 20h34

As corretoras que negociam bitcoins e outras criptomoedas querem aproximá-las cada vez mais do dia-a-dia das pessoas e tentar desmitificar a imagem de que moedas digitais são destinadas a operações especulativas ou para transações ilegais.

“As criptomoedas devem aumentar cada vez mais seu papel como meios de pagamento”, declarou Edisio Pereira Neto, presidente da Bitblue.

Leia também:

“O bitcoin ainda não tem tanta expressão como um meio de troca porque as pessoas acreditam que ele vai se valorizar muito. Por isso, elas preferem manter a moeda em carteira, como reserva de valor, do que gastar”, disse Pereira.

Ele aposta no potencial das moedas digitais para operações de câmbio e remessa de recursos para o exterior. “Já temos acordo com mais de 200 casas de câmbio. Cada vez mais estabelecimentos estão aceitando.”

Contra a instablidade, garantir valor de compra 

A instabilidade nas cotações é outra barreira que dificulta uma maior aceitação do bitcoin e de outras moedas digitais pelo comércio em geral.

Por essa razão, algumas corretoras estão elaborando ferramentas que garantam o valor de venda dos produtos comprados com criptomoedas.

“As grandes varejistas ainda têm medo da volatilidade das criptomoedas. Estamos trabalhando com elas para desenvolver uma forma de travar o valor da compra em reais”, disse Ingrid Barth, chefe de negócios da Foxbit.

Para Ingrid, a tendência é que cada moeda digital assuma uma função específica, seja como opção de reserva de valor ou como meio de troca ou pagamento.

“Com as criptomoedas, podemos ter todas essas características separadas. Não precisa acreditar só no bitcoin. Cada uma delas poderá atender a um problema específico, como reserva de valor ou para pagar a despesa em um varejista”, afirmou.

Precisa definir regulação do mercado

Outro o importante para popularizar o mercado de criptomoedas é definir a regulação do segmento, avaliam os especialistas que participaram do evento Fintouch, que reuniu as principais fintechs (empresas de tecnologia que oferecem serviços financeiros) do país, em São Paulo, nesta quarta-feira (8).

“Já há tentativas de regular esse mercado. Lá fora, o processo está mais avançado. Aqui no Brasil, estamos mantendo uma interação com os reguladores”, disse Luiz Calado, economista-chefe do Mercado Bitcoin.

“Os segmentos financeiros tradicionais no Brasil ainda são contra a criptoeconomia. No Japão, os bancos são donos de corretoras de moedas digitais. Há uma barreira cultural, mas os reguladores podem ajudar a derrubá-la, criando regras para esse mercado”, afirmou Calado.