Обновление: сентябрь 2016 года: существует несколько инструментов, созданных сообществом, которые могут сделать это для вас:
Git не поддерживает это, но Github делает через SVN. Если вы проверите свой код с помощью subversion, Github по существу преобразует репо из git в subversion на бэкэнд, а затем обслуживает запрошенный каталог.
Вот как вы можете использовать эту функцию для загрузки определенной папки. В качестве примера я использую популярную библиотеку javascript lodash
.
/docs
из ветки master
, поэтому добавлю trunk/docs
. Полный URL-адрес теперь https://github.com/lodash/lodash/trunk/docs
. См. Мою заметку ниже для более подробного объяснения того, почему мы должны использовать этот формат URL.
svn checkout https://github.com/lodash/lodash/trunk/docs
Вы можете не видеть никакой активности сразу, потому что Github занимает до 30 секунд, чтобы конвертировать большие репозитории, поэтому будьте терпеливы.
Полное описание формата URL:
- Если вас интересует ветка
master
, вместо этого используйтеtrunk
. Таким образом, полный путьtrunk/foldername
- Если вас интересует ветка
foo
, вместо этого используйтеbranches/foo
. Полный путь выглядит какbranches/foo/foldername
- Protip: вы можете использовать
svn ls
для просмотра доступных тегов и ветвей перед загрузкой, если хотите. Это все! Github также поддерживает дополнительные функции subversion , включая поддержку для фиксации и нажатия изменений.
То, что вы сейчас делаете, ждет, пока каждая транзакция будет добыта. Вы можете сделать следующее:
var account = new Account("privateKey"); // or load it from your keystore file as you are doing.
var web3 = new Web3(account, "https://mainnet.infura.io");
Сначала создайте экземпляр web3, используя тот же объект Account, потому что мы используем учетную запись с закрытым ключом, Nethereum будет подписывать ваши транзакции в автономном режиме перед их отправкой.
Теперь, используя TransactionManager, вы можете отправить транзакцию для каждого получателя
var transactionHashes = new List<string>();
foreach(var recepient in recepients){
var transactionInput = new TransactionInput
{
From = account.Address,
GasPrice = Web3.Convert.ToWei(1.5, UnitConversion.EthUnit.Gwei);,
To = recipient.Address,
Value = new HexBigInteger(new BigInteger(recipient.Value)),
};
var transactionHash = web3.Eth.TransactionManager.SendTransactionAsync(transactionInput);
transanctionHashes.Add(transactionHash);
}
. Обратите внимание, что когда Nethereum использует тот же экземпляр учетной записи и TransactionManager (или Web3 в этом сценарии ), он создает стандартную функцию NonceMemoryService, поэтому вам не нужно отслеживать ваши номера (номер транзакции), чтобы подписать транзакцию.
Также я сделал преобразование для GasPrice от Gwei до Wei, в качестве примера преобразований Единицы, я предполагаю, что вы уже конвертировали в суммы Wei Ether, которые вы собираетесь отправить.
Наконец, еще одно примечание, чтобы еще больше упростить это, существует предстоящий EtherTransferService, который позволяет вам для ввода количества эфира и суммы цены Gwei, чтобы избежать совершения конверсий. Также будет рассчитана цена на газ для вас, если не будет передан какой-либо параметр.
web3.Eth.GetEtherTransferService().TransferEtherAsync("toAddress", EtherAmount);