CoinbasePro-Powershell.psm1
Get-ChildItem -Path $PSScriptRoot -Recurse -File | Unblock-File Get-ChildItem -Path $PSScriptRoot\*.ps1 -Recurse | Foreach-Object{ . $_.FullName } $FunctionsToExport = @( 'Get-CoinbaseAccounts', 'Get-CoinbaseProAccounts', 'Get-CoinbaseProAccountHistory', 'Get-CoinbaseProFees', 'Get-CoinbaseProAccountHolds', 'Get-CoinbaseProProducts', 'Get-CoinbaseProCurrencies', 'Get-CoinbaseProTime', 'Get-CoinbaseProFills', 'Get-CoinbaseProOrder', 'Get-CoinbaseProOrders', 'Get-CoinbaseProProductOrderBook', 'Get-CoinbaseProProductTicker', 'Get-CoinbaseProProductTrades', 'Get-CoinbaseProProductStats', 'New-CoinbaseProLimitOrder', 'New-CoinbaseProMarketOrder', 'New-CoinbaseProStopOrder', 'New-CoinbaseProConversionOrder', 'Get-CoinbaseProPaymentMethods', 'Invoke-CoinbaseProDeposit', 'Invoke-CoinbaseProWithdrawal', 'Remove-CoinbaseProOrder', 'Get-CoinbaseProTransfers', 'Get-CoinbaseProProfiles', 'Get-CoinbaseProProfile', 'Invoke-CoinbaseProProfileTransfer', 'Get-CoinbaseProMarginInfo', 'Get-CoinbaseProMarginBuyingPower', 'Get-CoinbaseProMarginWithdrawalPower', 'Get-CoinbaseProMarginExitPlan', 'Get-CoinbaseProMarginStatus', 'Get-CoinbaseProMarginPositionRefreshAmounts', 'Get-CoinbaseProMarginLiquidationHistory', 'Get-CoinbaseProTrailingVolume' ) $CBProducts = Get-CoinbaseProProducts $CBCurrencies = Get-CoinbaseProCurrencies if (!$CBProducts -or !$CBCurrencies) { Throw "Unable to import Coinbase Pro products & currencies." Break } else { $CBProducts | select-object id | ConvertTo-Csv | out-file "$([system.io.path]::GetTempPath())/CoinbaseProPS-products.csv" -Force $CBCurrencies | select-object id | ConvertTo-Csv | out-file "$([system.io.path]::GetTempPath())CoinbaseProPS-currencies.csv" -Force Write-Host "Coinbase Pro Module Imported: $($CBProducts.count) Tradable Products and $($CBCurrencies.count) Currencies" -ForegroundColor Green } $Products = { $CBProducts | Select-Object -ExpandProperty id | ForEach-Object { "$_" } } $Currencies = { $CBCurrencies | Select-Object -ExpandProperty id | ForEach-Object { "$_" } } $ProductFunctions = @( 'New-CoinbaseProLimitOrder', 'Get-CoinbaseProFills', 'New-CoinbaseProMarketOrder', 'New-CoinbaseProStopOrder', 'Get-CoinbaseProOrders', 'Remove-CoinbaseProOrder', 'Get-CoinbaseProProductOrderBook', 'Get-CoinbaseProProductStats', 'Get-CoinbaseProProductTicker', 'Get-CoinbaseProProductTrades', 'Get-CoinbaseProMarginMarginInfo', 'Get-CoinbaseProMarginBuyingPower' ) Foreach ($function in $ProductFunctions) { Register-ArgumentCompleter -CommandName $function -ParameterName 'ProductID' -ScriptBlock $Products } $CurrencyFunctions = @( 'New-CoinbaseProConversionOrder', 'Get-CoinbaseProMarginWithdrawalPower' ) Foreach ($function in $CurrencyFunctions) { Register-ArgumentCompleter -CommandName $function -ParameterName 'To' -ScriptBlock $Currencies Register-ArgumentCompleter -CommandName $function -ParameterName 'From' -ScriptBlock $Currencies Register-ArgumentCompleter -CommandName $function -ParameterName 'Currency' -ScriptBlock $Currencies } Export-ModuleMember -Function $FunctionsToExport |